summaryrefslogtreecommitdiffstats
path: root/java/examples
diff options
context:
space:
mode:
Diffstat (limited to 'java/examples')
-rw-r--r--java/examples/datasets/runExample.sh.in4
-rw-r--r--java/examples/datatypes/runExample.sh.in4
-rw-r--r--java/examples/groups/runExample.sh.in6
-rw-r--r--java/examples/intro/runExample.sh.in4
4 files changed, 9 insertions, 9 deletions
diff --git a/java/examples/datasets/runExample.sh.in b/java/examples/datasets/runExample.sh.in
index dc63626..8d906db 100644
--- a/java/examples/datasets/runExample.sh.in
+++ b/java/examples/datasets/runExample.sh.in
@@ -119,7 +119,7 @@ CLEAN_LIBFILES_AND_BLDLIBDIR()
# skip rm if srcdir is same as destdir
# this occurs when build/test performed in source dir and
# make cp fail
- SDIR=`$DIRNAME $tstfile`
+ SDIR=`$DIRNAME $HDFLIB_HOME/slf4j-api-1.7.5.jar`
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
INODE_DDIR=`$LS -i -d $BLDLIBDIR | $AWK -F' ' '{print $1}'`
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
@@ -162,7 +162,7 @@ CLEAN_DATAFILES_AND_BLDDIR()
# skip rm if srcdir is same as destdir
# this occurs when build/test performed in source dir and
# make cp fail
- SDIR=`$DIRNAME $tstfile`
+ SDIR=`$DIRNAME $HDFTEST_HOME/../testfiles/examples.datasets.H5Ex_D_Alloc.txt`
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
INODE_DDIR=`$LS -i -d $BLDDIR | $AWK -F' ' '{print $1}'`
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
diff --git a/java/examples/datatypes/runExample.sh.in b/java/examples/datatypes/runExample.sh.in
index e92abf1..adfcea0 100644
--- a/java/examples/datatypes/runExample.sh.in
+++ b/java/examples/datatypes/runExample.sh.in
@@ -116,7 +116,7 @@ CLEAN_LIBFILES_AND_BLDLIBDIR()
# skip rm if srcdir is same as destdir
# this occurs when build/test performed in source dir and
# make cp fail
- SDIR=`$DIRNAME $tstfile`
+ SDIR=`$DIRNAME $HDFLIB_HOME/slf4j-api-1.7.5.jar`
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
INODE_DDIR=`$LS -i -d $BLDLIBDIR | $AWK -F' ' '{print $1}'`
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
@@ -159,7 +159,7 @@ CLEAN_DATAFILES_AND_BLDDIR()
# skip rm if srcdir is same as destdir
# this occurs when build/test performed in source dir and
# make cp fail
- SDIR=`$DIRNAME $tstfile`
+ SDIR=`$DIRNAME $HDFTEST_HOME/../testfiles/examples.datatypes.H5Ex_T_Array.txt`
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
INODE_DDIR=`$LS -i -d $BLDDIR | $AWK -F' ' '{print $1}'`
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
diff --git a/java/examples/groups/runExample.sh.in b/java/examples/groups/runExample.sh.in
index 1ba81fd..ebc6edd 100644
--- a/java/examples/groups/runExample.sh.in
+++ b/java/examples/groups/runExample.sh.in
@@ -111,7 +111,7 @@ CLEAN_LIBFILES_AND_BLDLIBDIR()
# skip rm if srcdir is same as destdir
# this occurs when build/test performed in source dir and
# make cp fail
- SDIR=`$DIRNAME $tstfile`
+ SDIR=`$DIRNAME $HDFLIB_HOME/slf4j-api-1.7.5.jar`
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
INODE_DDIR=`$LS -i -d $BLDLIBDIR | $AWK -F' ' '{print $1}'`
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
@@ -154,7 +154,7 @@ CLEAN_DATAFILES_AND_BLDDIR()
# skip rm if srcdir is same as destdir
# this occurs when build/test performed in source dir and
# make cp fail
- SDIR=`$DIRNAME $tstfile`
+ SDIR=`$DIRNAME $HDFTEST_HOME/../testfiles/examples.groups.H5Ex_G_Create.txt`
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
INODE_DDIR=`$LS -i -d $BLDDIR | $AWK -F' ' '{print $1}'`
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
@@ -198,7 +198,7 @@ CLEAN_REFFILES_AND_BLDREFDIR()
# skip rm if srcdir is same as destdir
# this occurs when build/test performed in source dir and
# make cp fail
- SDIR=`$DIRNAME $tstfile`
+ SDIR=`$DIRNAME $HDFTEST_HOME/h5ex_g_iterate.h5`
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
INODE_DDIR=`$LS -i -d $BLDREFDIR | $AWK -F' ' '{print $1}'`
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
diff --git a/java/examples/intro/runExample.sh.in b/java/examples/intro/runExample.sh.in
index 5b8c978..5d13fa6 100644
--- a/java/examples/intro/runExample.sh.in
+++ b/java/examples/intro/runExample.sh.in
@@ -105,7 +105,7 @@ CLEAN_LIBFILES_AND_BLDLIBDIR()
# skip rm if srcdir is same as destdir
# this occurs when build/test performed in source dir and
# make cp fail
- SDIR=`$DIRNAME $tstfile`
+ SDIR=`$DIRNAME $HDFLIB_HOME/slf4j-api-1.7.5.jar`
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
INODE_DDIR=`$LS -i -d $BLDLIBDIR | $AWK -F' ' '{print $1}'`
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
@@ -148,7 +148,7 @@ CLEAN_DATAFILES_AND_BLDDIR()
# skip rm if srcdir is same as destdir
# this occurs when build/test performed in source dir and
# make cp fail
- SDIR=`$DIRNAME $tstfile`
+ SDIR=`$DIRNAME $HDFTEST_HOME/../testfiles/examples.intro.H5_CreateDataset.txt`
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
INODE_DDIR=`$LS -i -d $BLDDIR | $AWK -F' ' '{print $1}'`
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
fcad302d86d316390c6b0f62759a067313e8a9'>config.tests/unix/clock-gettime/clock-gettime.pro4
-rw-r--r--config.tests/unix/clock-monotonic/clock-monotonic.cpp16
-rw-r--r--config.tests/unix/clock-monotonic/clock-monotonic.pro4
-rwxr-xr-xconfig.tests/unix/compile.test73
-rw-r--r--config.tests/unix/cups/cups.cpp8
-rw-r--r--config.tests/unix/cups/cups.pro4
-rw-r--r--config.tests/unix/db2/db2.cpp7
-rw-r--r--config.tests/unix/db2/db2.pro4
-rw-r--r--config.tests/unix/dbus/dbus.cpp12
-rw-r--r--config.tests/unix/dbus/dbus.pro3
-rwxr-xr-xconfig.tests/unix/doubleformat.test63
-rw-r--r--config.tests/unix/doubleformat/doubleformattest.cpp25
-rw-r--r--config.tests/unix/doubleformat/doubleformattest.pro3
-rwxr-xr-xconfig.tests/unix/endian.test55
-rw-r--r--config.tests/unix/endian/endiantest.cpp15
-rw-r--r--config.tests/unix/endian/endiantest.pro3
-rw-r--r--config.tests/unix/floatmath/floatmath.cpp17
-rw-r--r--config.tests/unix/floatmath/floatmath.pro3
-rw-r--r--config.tests/unix/freetype/freetype.cpp13
-rw-r--r--config.tests/unix/freetype/freetype.pri9
-rw-r--r--config.tests/unix/freetype/freetype.pro5
-rwxr-xr-xconfig.tests/unix/fvisibility.test54
-rw-r--r--config.tests/unix/getaddrinfo/getaddrinfo.pro4
-rw-r--r--config.tests/unix/getaddrinfo/getaddrinfotest.cpp16
-rw-r--r--config.tests/unix/getifaddrs/getifaddrs.cpp19
-rw-r--r--config.tests/unix/getifaddrs/getifaddrs.pro5
-rw-r--r--config.tests/unix/glib/glib.cpp16
-rw-r--r--config.tests/unix/glib/glib.pro2
-rw-r--r--config.tests/unix/gnu-libiconv/gnu-libiconv.cpp19
-rw-r--r--config.tests/unix/gnu-libiconv/gnu-libiconv.pro4
-rw-r--r--config.tests/unix/gstreamer/gstreamer.cpp14
-rw-r--r--config.tests/unix/gstreamer/gstreamer.pro3
-rw-r--r--config.tests/unix/ibase/ibase.cpp6
-rw-r--r--config.tests/unix/ibase/ibase.pro4
-rw-r--r--config.tests/unix/iconv/iconv.cpp19
-rw-r--r--config.tests/unix/iconv/iconv.pro3
-rw-r--r--config.tests/unix/inotify/inotify.pro3
-rw-r--r--config.tests/unix/inotify/inotifytest.cpp9
-rw-r--r--config.tests/unix/ipv6/ipv6.pro3
-rw-r--r--config.tests/unix/ipv6/ipv6test.cpp23
-rw-r--r--config.tests/unix/ipv6ifname/ipv6ifname.cpp18
-rw-r--r--config.tests/unix/ipv6ifname/ipv6ifname.pro5
-rw-r--r--config.tests/unix/iwmmxt/iwmmxt.cpp7
-rw-r--r--config.tests/unix/iwmmxt/iwmmxt.pro3
-rw-r--r--config.tests/unix/largefile/largefile.pro3
-rw-r--r--config.tests/unix/largefile/largefiletest.cpp32
-rw-r--r--config.tests/unix/libjpeg/libjpeg.cpp12
-rw-r--r--config.tests/unix/libjpeg/libjpeg.pro4
-rw-r--r--config.tests/unix/libmng/libmng.cpp13
-rw-r--r--config.tests/unix/libmng/libmng.pro4
-rw-r--r--config.tests/unix/libpng/libpng.cpp12
-rw-r--r--config.tests/unix/libpng/libpng.pro4
-rw-r--r--config.tests/unix/libtiff/libtiff.cpp19
-rw-r--r--config.tests/unix/libtiff/libtiff.pro4
-rwxr-xr-xconfig.tests/unix/makeabs19
-rw-r--r--config.tests/unix/mmx/mmx.cpp10
-rw-r--r--config.tests/unix/mmx/mmx.pro3
-rw-r--r--config.tests/unix/mremap/mremap.cpp10
-rw-r--r--config.tests/unix/mremap/mremap.pro3
-rw-r--r--config.tests/unix/mysql/mysql.cpp6
-rw-r--r--config.tests/unix/mysql/mysql.pro4
-rw-r--r--config.tests/unix/mysql_r/mysql_r.pro4
-rw-r--r--config.tests/unix/nis/nis.cpp11
-rw-r--r--config.tests/unix/nis/nis.pro5
-rwxr-xr-xconfig.tests/unix/objcopy.test29
-rw-r--r--config.tests/unix/oci/oci.cpp6
-rw-r--r--config.tests/unix/oci/oci.pro4
-rw-r--r--config.tests/unix/odbc/odbc.cpp7
-rw-r--r--config.tests/unix/odbc/odbc.pro4
-rw-r--r--config.tests/unix/opengles1/opengles1.cpp12
-rw-r--r--config.tests/unix/opengles1/opengles1.pro9
-rw-r--r--config.tests/unix/opengles1cl/opengles1cl.cpp12
-rw-r--r--config.tests/unix/opengles1cl/opengles1cl.pro9
-rw-r--r--config.tests/unix/opengles2/opengles2.cpp11
-rw-r--r--config.tests/unix/opengles2/opengles2.pro9
-rw-r--r--config.tests/unix/openssl/openssl.cpp9
-rw-r--r--config.tests/unix/openssl/openssl.pri9
-rw-r--r--config.tests/unix/openssl/openssl.pro4
-rwxr-xr-xconfig.tests/unix/padstring22
-rwxr-xr-xconfig.tests/unix/precomp.test54
-rw-r--r--config.tests/unix/psql/psql.cpp8
-rw-r--r--config.tests/unix/psql/psql.pro4
-rwxr-xr-xconfig.tests/unix/ptrsize.test32
-rw-r--r--config.tests/unix/ptrsize/ptrsizetest.cpp20
-rw-r--r--config.tests/unix/ptrsize/ptrsizetest.pro3
-rw-r--r--config.tests/unix/sqlite/sqlite.cpp6
-rw-r--r--config.tests/unix/sqlite/sqlite.pro3
-rw-r--r--config.tests/unix/sqlite2/sqlite2.cpp6
-rw-r--r--config.tests/unix/sqlite2/sqlite2.pro4
-rw-r--r--config.tests/unix/sse/sse.cpp11
-rw-r--r--config.tests/unix/sse/sse.pro3
-rw-r--r--config.tests/unix/sse2/sse2.cpp11
-rw-r--r--config.tests/unix/sse2/sse2.pro3
-rw-r--r--config.tests/unix/stdint/main.cpp8
-rw-r--r--config.tests/unix/stdint/stdint.pro4
-rw-r--r--config.tests/unix/stl/stl.pro3
-rw-r--r--config.tests/unix/stl/stltest.cpp68
-rw-r--r--config.tests/unix/tds/tds.cpp7
-rw-r--r--config.tests/unix/tds/tds.pro4
-rw-r--r--config.tests/unix/tslib/tslib.cpp7
-rw-r--r--config.tests/unix/tslib/tslib.pro3
-rwxr-xr-xconfig.tests/unix/which.test39
-rw-r--r--config.tests/unix/zlib/zlib.cpp13
-rw-r--r--config.tests/unix/zlib/zlib.pro4
-rw-r--r--config.tests/x11/fontconfig/fontconfig.cpp20
-rw-r--r--config.tests/x11/fontconfig/fontconfig.pro5
-rw-r--r--config.tests/x11/glxfbconfig/glxfbconfig.cpp10
-rw-r--r--config.tests/x11/glxfbconfig/glxfbconfig.pro10
-rw-r--r--config.tests/x11/mitshm/mitshm.cpp22
-rw-r--r--config.tests/x11/mitshm/mitshm.pro5
-rwxr-xr-xconfig.tests/x11/notype.test49
-rw-r--r--config.tests/x11/notype/notypetest.cpp11
-rw-r--r--config.tests/x11/notype/notypetest.pro5
-rw-r--r--config.tests/x11/opengl/opengl.cpp13
-rw-r--r--config.tests/x11/opengl/opengl.pro10
-rw-r--r--config.tests/x11/sm/sm.cpp8
-rw-r--r--config.tests/x11/sm/sm.pro4
-rw-r--r--config.tests/x11/xcursor/xcursor.cpp25
-rw-r--r--config.tests/x11/xcursor/xcursor.pro4
-rw-r--r--config.tests/x11/xfixes/xfixes.cpp14
-rw-r--r--config.tests/x11/xfixes/xfixes.pro3
-rw-r--r--config.tests/x11/xinerama/xinerama.cpp9
-rw-r--r--config.tests/x11/xinerama/xinerama.pro4
-rw-r--r--config.tests/x11/xinput/xinput.cpp18
-rw-r--r--config.tests/x11/xinput/xinput.pro6
-rw-r--r--config.tests/x11/xkb/xkb.cpp30
-rw-r--r--config.tests/x11/xkb/xkb.pro3
-rw-r--r--config.tests/x11/xrandr/xrandr.cpp13
-rw-r--r--config.tests/x11/xrandr/xrandr.pro4
-rw-r--r--config.tests/x11/xrender/xrender.cpp13
-rw-r--r--config.tests/x11/xrender/xrender.pro4
-rw-r--r--config.tests/x11/xshape/xshape.cpp10
-rw-r--r--config.tests/x11/xshape/xshape.pro3
-rwxr-xr-xconfigure7270
-rw-r--r--configure.exebin0 -> 1939968 bytes-rw-r--r--demos/README39
-rw-r--r--demos/affine/affine.pro23
-rw-r--r--demos/affine/affine.qrc7
-rw-r--r--demos/affine/bg1.jpgbin0 -> 23771 bytes-rw-r--r--demos/affine/main.cpp63
-rw-r--r--demos/affine/xform.cpp902
-rw-r--r--demos/affine/xform.h141
-rw-r--r--demos/affine/xform.html23
-rw-r--r--demos/arthurplugin/arthur_plugin.qrc7
-rw-r--r--demos/arthurplugin/arthurplugin.pro51
-rw-r--r--demos/arthurplugin/bg1.jpgbin0 -> 23771 bytes-rw-r--r--demos/arthurplugin/flower.jpgbin0 -> 49616 bytes-rw-r--r--demos/arthurplugin/flower_alpha.jpgbin0 -> 67326 bytes-rw-r--r--demos/arthurplugin/plugin.cpp262
-rw-r--r--demos/books/bookdelegate.cpp126
-rw-r--r--demos/books/bookdelegate.h73
-rw-r--r--demos/books/books.pro21
-rw-r--r--demos/books/books.qrc5
-rw-r--r--demos/books/bookwindow.cpp121
-rw-r--r--demos/books/bookwindow.h64
-rw-r--r--demos/books/bookwindow.ui149
-rw-r--r--demos/books/images/star.pngbin0 -> 782 bytes-rw-r--r--demos/books/initdb.h125
-rw-r--r--demos/books/main.cpp56
-rw-r--r--demos/boxes/3rdparty/fbm.c207
-rw-r--r--demos/boxes/3rdparty/fbm.h40
-rw-r--r--demos/boxes/basic.fsh73
-rw-r--r--demos/boxes/basic.vsh61
-rw-r--r--demos/boxes/boxes.pro50
-rw-r--r--demos/boxes/boxes.qrc25
-rw-r--r--demos/boxes/cubemap_negx.jpgbin0 -> 41060 bytes-rw-r--r--demos/boxes/cubemap_negy.jpgbin0 -> 15520 bytes-rw-r--r--demos/boxes/cubemap_negz.jpgbin0 -> 68911 bytes-rw-r--r--demos/boxes/cubemap_posx.jpgbin0 -> 74915 bytes-rw-r--r--demos/boxes/cubemap_posy.jpgbin0 -> 24193 bytes-rw-r--r--demos/boxes/cubemap_posz.jpgbin0 -> 57881 bytes-rw-r--r--demos/boxes/dotted.fsh66
-rw-r--r--demos/boxes/fresnel.fsh79
-rw-r--r--demos/boxes/glass.fsh76
-rw-r--r--demos/boxes/glbuffers.cpp390
-rw-r--r--demos/boxes/glbuffers.h362
-rw-r--r--demos/boxes/glextensions.cpp135
-rw-r--r--demos/boxes/glextensions.h284
-rw-r--r--demos/boxes/glshaders.cpp266
-rw-r--r--demos/boxes/glshaders.h108
-rw-r--r--demos/boxes/gltrianglemesh.h91
-rw-r--r--demos/boxes/granite.fsh76
-rw-r--r--demos/boxes/main.cpp149
-rw-r--r--demos/boxes/marble.fsh71
-rw-r--r--demos/boxes/parameters.par5
-rw-r--r--demos/boxes/qt-logo.jpgbin0 -> 40886 bytes-rw-r--r--demos/boxes/qt-logo.pngbin0 -> 13923 bytes-rw-r--r--demos/boxes/qtbox.cpp469
-rw-r--r--demos/boxes/qtbox.h116
-rw-r--r--demos/boxes/reflection.fsh54
-rw-r--r--demos/boxes/refraction.fsh70
-rw-r--r--demos/boxes/roundedbox.cpp160
-rw-r--r--demos/boxes/roundedbox.h71
-rw-r--r--demos/boxes/scene.cpp1057
-rw-r--r--demos/boxes/scene.h243
-rw-r--r--demos/boxes/smiley.pngbin0 -> 14508 bytes-rw-r--r--demos/boxes/square.jpgbin0 -> 14542 bytes-rw-r--r--demos/boxes/trackball.cpp158
-rw-r--r--demos/boxes/trackball.h78
-rw-r--r--demos/boxes/vector.h602
-rw-r--r--demos/boxes/wood.fsh70
-rw-r--r--demos/browser/Info_mac.plist43
-rw-r--r--demos/browser/addbookmarkdialog.ui98
-rw-r--r--demos/browser/autosaver.cpp94
-rw-r--r--demos/browser/autosaver.h76
-rw-r--r--demos/browser/bookmarks.cpp987
-rw-r--r--demos/browser/bookmarks.h310
-rw-r--r--demos/browser/bookmarks.ui106
-rw-r--r--demos/browser/browser.icnsbin0 -> 50218 bytes-rw-r--r--demos/browser/browser.icobin0 -> 15374 bytes-rw-r--r--demos/browser/browser.pro91
-rw-r--r--demos/browser/browser.rc2
-rw-r--r--demos/browser/browserapplication.cpp456
-rw-r--r--demos/browser/browserapplication.h119
-rw-r--r--demos/browser/browsermainwindow.cpp991
-rw-r--r--demos/browser/browsermainwindow.h169
-rw-r--r--demos/browser/chasewidget.cpp142
-rw-r--r--demos/browser/chasewidget.h85
-rw-r--r--demos/browser/cookiejar.cpp733
-rw-r--r--demos/browser/cookiejar.h204
-rw-r--r--demos/browser/cookies.ui106
-rw-r--r--demos/browser/cookiesexceptions.ui184
-rw-r--r--demos/browser/data/addtab.pngbin0 -> 469 bytes-rw-r--r--demos/browser/data/browser.svg411
-rw-r--r--demos/browser/data/closetab.pngbin0 -> 516 bytes-rw-r--r--demos/browser/data/data.qrc11
-rw-r--r--demos/browser/data/defaultbookmarks.xbel40
-rw-r--r--demos/browser/data/defaulticon.pngbin0 -> 1473 bytes-rw-r--r--demos/browser/data/history.pngbin0 -> 1527 bytes-rw-r--r--demos/browser/data/loading.gifbin0 -> 847 bytes-rw-r--r--demos/browser/downloaditem.ui134
-rw-r--r--demos/browser/downloadmanager.cpp579
-rw-r--r--demos/browser/downloadmanager.h162
-rw-r--r--demos/browser/downloads.ui83
-rw-r--r--demos/browser/edittableview.cpp78
-rw-r--r--demos/browser/edittableview.h61
-rw-r--r--demos/browser/edittreeview.cpp77
-rw-r--r--demos/browser/edittreeview.h61
-rw-r--r--demos/browser/history.cpp1282
-rw-r--r--demos/browser/history.h350
-rw-r--r--demos/browser/history.ui106
-rw-r--r--demos/browser/htmls/htmls.qrc5
-rw-r--r--demos/browser/htmls/notfound.html63
-rw-r--r--demos/browser/main.cpp53
-rw-r--r--demos/browser/modelmenu.cpp227
-rw-r--r--demos/browser/modelmenu.h105
-rw-r--r--demos/browser/networkaccessmanager.cpp171
-rw-r--r--demos/browser/networkaccessmanager.h68
-rw-r--r--demos/browser/passworddialog.ui111
-rw-r--r--demos/browser/proxy.ui104
-rw-r--r--demos/browser/searchlineedit.cpp238
-rw-r--r--demos/browser/searchlineedit.h103
-rw-r--r--demos/browser/settings.cpp324
-rw-r--r--demos/browser/settings.h74
-rw-r--r--demos/browser/settings.ui614
-rw-r--r--demos/browser/squeezelabel.cpp61
-rw-r--r--demos/browser/squeezelabel.h60
-rw-r--r--demos/browser/tabwidget.cpp830
-rw-r--r--demos/browser/tabwidget.h224
-rw-r--r--demos/browser/toolbarsearch.cpp161
-rw-r--r--demos/browser/toolbarsearch.h84
-rw-r--r--demos/browser/urllineedit.cpp340
-rw-r--r--demos/browser/urllineedit.h115
-rw-r--r--demos/browser/webview.cpp304
-rw-r--r--demos/browser/webview.h119
-rw-r--r--demos/browser/xbel.cpp320
-rw-r--r--demos/browser/xbel.h113
-rw-r--r--demos/chip/chip.cpp182
-rw-r--r--demos/chip/chip.h68
-rw-r--r--demos/chip/chip.pro19
-rw-r--r--demos/chip/fileprint.pngbin0 -> 1456 bytes-rw-r--r--demos/chip/images.qrc10
-rw-r--r--demos/chip/main.cpp57
-rw-r--r--demos/chip/mainwindow.cpp109
-rw-r--r--demos/chip/mainwindow.h68
-rw-r--r--demos/chip/qt4logo.pngbin0 -> 48333 bytes-rw-r--r--demos/chip/rotateleft.pngbin0 -> 1754 bytes-rw-r--r--demos/chip/rotateright.pngbin0 -> 1732 bytes-rw-r--r--demos/chip/view.cpp234
-rw-r--r--demos/chip/view.h84
-rw-r--r--demos/chip/zoomin.pngbin0 -> 1622 bytes-rw-r--r--demos/chip/zoomout.pngbin0 -> 1601 bytes-rw-r--r--demos/composition/composition.cpp511
-rw-r--r--demos/composition/composition.h190
-rw-r--r--demos/composition/composition.html23
-rw-r--r--demos/composition/composition.pro27
-rw-r--r--demos/composition/composition.qrc8
-rw-r--r--demos/composition/flower.jpgbin0 -> 49616 bytes-rw-r--r--demos/composition/flower_alpha.jpgbin0 -> 67326 bytes-rw-r--r--demos/composition/main.cpp62
-rw-r--r--demos/deform/deform.pro19
-rw-r--r--demos/deform/deform.qrc6
-rw-r--r--demos/deform/main.cpp72
-rw-r--r--demos/deform/pathdeform.cpp647
-rw-r--r--demos/deform/pathdeform.h153
-rw-r--r--demos/deform/pathdeform.html24
-rw-r--r--demos/demos.pro73
-rw-r--r--demos/embedded/embedded.pro13
-rw-r--r--demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp181
-rw-r--r--demos/embedded/embeddedsvgviewer/embeddedsvgviewer.h87
-rw-r--r--demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro16
-rw-r--r--demos/embedded/embeddedsvgviewer/embeddedsvgviewer.qrc7
-rw-r--r--demos/embedded/embeddedsvgviewer/files/default.svg86
-rw-r--r--demos/embedded/embeddedsvgviewer/files/v-slider-handle.svg100
-rw-r--r--demos/embedded/embeddedsvgviewer/main.cpp68
-rw-r--r--demos/embedded/embeddedsvgviewer/shapes.svg86
-rw-r--r--demos/embedded/embeddedsvgviewer/spheres.svg81
-rw-r--r--demos/embedded/fluidlauncher/config.xml26
-rw-r--r--demos/embedded/fluidlauncher/config_wince/config.xml13
-rw-r--r--demos/embedded/fluidlauncher/demoapplication.cpp116
-rw-r--r--demos/embedded/fluidlauncher/demoapplication.h82
-rw-r--r--demos/embedded/fluidlauncher/fluidlauncher.cpp221
-rw-r--r--demos/embedded/fluidlauncher/fluidlauncher.h81
-rw-r--r--demos/embedded/fluidlauncher/fluidlauncher.pro56
-rw-r--r--demos/embedded/fluidlauncher/main.cpp60
-rw-r--r--demos/embedded/fluidlauncher/pictureflow.cpp1420
-rw-r--r--demos/embedded/fluidlauncher/pictureflow.h237
-rw-r--r--demos/embedded/fluidlauncher/screenshots/concentriccircles.pngbin0 -> 29623 bytes-rw-r--r--demos/embedded/fluidlauncher/screenshots/deform.pngbin0 -> 18393 bytes-rw-r--r--demos/embedded/fluidlauncher/screenshots/elasticnodes.pngbin0 -> 13312 bytes-rw-r--r--demos/embedded/fluidlauncher/screenshots/embeddedsvgviewer.pngbin0 -> 7482 bytes-rw-r--r--demos/embedded/fluidlauncher/screenshots/mediaplayer.pngbin0 -> 7217 bytes-rw-r--r--demos/embedded/fluidlauncher/screenshots/pathstroke.pngbin0 -> 14216 bytes-rw-r--r--demos/embedded/fluidlauncher/screenshots/styledemo.pngbin0 -> 26891 bytes-rw-r--r--demos/embedded/fluidlauncher/screenshots/wiggly.pngbin0 -> 6546 bytes-rw-r--r--demos/embedded/fluidlauncher/slides/demo_1.pngbin0 -> 23539 bytes-rw-r--r--demos/embedded/fluidlauncher/slides/demo_2.pngbin0 -> 11745 bytes-rw-r--r--demos/embedded/fluidlauncher/slides/demo_3.pngbin0 -> 19791 bytes-rw-r--r--demos/embedded/fluidlauncher/slides/demo_4.pngbin0 -> 5505 bytes-rw-r--r--demos/embedded/fluidlauncher/slides/demo_5.pngbin0 -> 15890 bytes-rw-r--r--demos/embedded/fluidlauncher/slides/demo_6.pngbin0 -> 14992 bytes-rw-r--r--demos/embedded/fluidlauncher/slideshow.cpp233
-rw-r--r--demos/embedded/fluidlauncher/slideshow.h97
-rwxr-xr-xdemos/embedded/styledemo/files/add.pngbin0 -> 1474 bytes-rw-r--r--demos/embedded/styledemo/files/application.qss125
-rw-r--r--demos/embedded/styledemo/files/blue.qss39
-rw-r--r--demos/embedded/styledemo/files/khaki.qss100
-rw-r--r--demos/embedded/styledemo/files/nature_1.jpgbin0 -> 167443 bytes-rw-r--r--demos/embedded/styledemo/files/nostyle.qss0
-rwxr-xr-xdemos/embedded/styledemo/files/remove.pngbin0 -> 865 bytes-rw-r--r--demos/embedded/styledemo/files/transparent.qss140
-rw-r--r--demos/embedded/styledemo/main.cpp59
-rw-r--r--demos/embedded/styledemo/styledemo.pro12
-rw-r--r--demos/embedded/styledemo/styledemo.qrc13
-rw-r--r--demos/embedded/styledemo/stylewidget.cpp112
-rw-r--r--demos/embedded/styledemo/stylewidget.h65
-rw-r--r--demos/embedded/styledemo/stylewidget.ui429
-rw-r--r--demos/embeddeddialogs/No-Ones-Laughing-3.jpgbin0 -> 30730 bytes-rw-r--r--demos/embeddeddialogs/customproxy.cpp156
-rw-r--r--demos/embeddeddialogs/customproxy.h75
-rw-r--r--demos/embeddeddialogs/embeddeddialog.cpp106
-rw-r--r--demos/embeddeddialogs/embeddeddialog.h66
-rw-r--r--demos/embeddeddialogs/embeddeddialog.ui87
-rw-r--r--demos/embeddeddialogs/embeddeddialogs.pro17
-rw-r--r--demos/embeddeddialogs/embeddeddialogs.qrc5
-rw-r--r--demos/embeddeddialogs/main.cpp85
-rw-r--r--demos/gradients/gradients.cpp516
-rw-r--r--demos/gradients/gradients.h170
-rw-r--r--demos/gradients/gradients.html31
-rw-r--r--demos/gradients/gradients.pro18
-rw-r--r--demos/gradients/gradients.qrc6
-rw-r--r--demos/gradients/main.cpp61
-rw-r--r--demos/interview/README2
-rw-r--r--demos/interview/images/folder.pngbin0 -> 3910 bytes-rw-r--r--demos/interview/images/interview.pngbin0 -> 174 bytes-rw-r--r--demos/interview/images/services.pngbin0 -> 3749 bytes-rw-r--r--demos/interview/interview.pro18
-rw-r--r--demos/interview/interview.qrc7
-rw-r--r--demos/interview/main.cpp95
-rw-r--r--demos/interview/model.cpp147
-rw-r--r--demos/interview/model.h88
-rw-r--r--demos/macmainwindow/macmainwindow.h137
-rw-r--r--demos/macmainwindow/macmainwindow.mm347
-rw-r--r--demos/macmainwindow/macmainwindow.pro23
-rw-r--r--demos/macmainwindow/main.cpp66
-rw-r--r--demos/mainwindow/colorswatch.cpp746
-rw-r--r--demos/mainwindow/colorswatch.h136
-rw-r--r--demos/mainwindow/main.cpp164
-rw-r--r--demos/mainwindow/mainwindow.cpp510
-rw-r--r--demos/mainwindow/mainwindow.h90
-rw-r--r--demos/mainwindow/mainwindow.pro16
-rw-r--r--demos/mainwindow/mainwindow.qrc8
-rw-r--r--demos/mainwindow/qt.pngbin0 -> 2037 bytes-rw-r--r--demos/mainwindow/titlebarCenter.pngbin0 -> 146 bytes-rw-r--r--demos/mainwindow/titlebarLeft.pngbin0 -> 5148 bytes-rw-r--r--demos/mainwindow/titlebarRight.pngbin0 -> 2704 bytes-rw-r--r--demos/mainwindow/toolbar.cpp383
-rw-r--r--demos/mainwindow/toolbar.h118
-rw-r--r--demos/mediaplayer/images/screen.pngbin0 -> 4358 bytes-rw-r--r--demos/mediaplayer/main.cpp59
-rw-r--r--demos/mediaplayer/mediaplayer.cpp840
-rw-r--r--demos/mediaplayer/mediaplayer.h137
-rw-r--r--demos/mediaplayer/mediaplayer.pro28
-rw-r--r--demos/mediaplayer/mediaplayer.qrc5
-rw-r--r--demos/mediaplayer/settings.ui464
-rw-r--r--demos/pathstroke/main.cpp69
-rw-r--r--demos/pathstroke/pathstroke.cpp599
-rw-r--r--demos/pathstroke/pathstroke.h168
-rw-r--r--demos/pathstroke/pathstroke.html20
-rw-r--r--demos/pathstroke/pathstroke.pro20
-rw-r--r--demos/pathstroke/pathstroke.qrc6
-rw-r--r--demos/qtdemo/Info_mac.plist18
-rw-r--r--demos/qtdemo/colors.cpp390
-rw-r--r--demos/qtdemo/colors.h130
-rw-r--r--demos/qtdemo/demoitem.cpp280
-rw-r--r--demos/qtdemo/demoitem.h124
-rw-r--r--demos/qtdemo/demoitemanimation.cpp219
-rw-r--r--demos/qtdemo/demoitemanimation.h101
-rw-r--r--demos/qtdemo/demoscene.cpp54
-rw-r--r--demos/qtdemo/demoscene.h57
-rw-r--r--demos/qtdemo/demotextitem.cpp123
-rw-r--r--demos/qtdemo/demotextitem.h74
-rw-r--r--demos/qtdemo/dockitem.cpp108
-rw-r--r--demos/qtdemo/dockitem.h69
-rw-r--r--demos/qtdemo/examplecontent.cpp158
-rw-r--r--demos/qtdemo/examplecontent.h77
-rw-r--r--demos/qtdemo/guide.cpp144
-rw-r--r--demos/qtdemo/guide.h73
-rw-r--r--demos/qtdemo/guidecircle.cpp88
-rw-r--r--demos/qtdemo/guidecircle.h72
-rw-r--r--demos/qtdemo/guideline.cpp81
-rw-r--r--demos/qtdemo/guideline.h65
-rw-r--r--demos/qtdemo/headingitem.cpp104
-rw-r--r--demos/qtdemo/headingitem.h63
-rw-r--r--demos/qtdemo/imageitem.cpp114
-rw-r--r--demos/qtdemo/imageitem.h66
-rwxr-xr-xdemos/qtdemo/images/demobg.pngbin0 -> 20675 bytes-rw-r--r--demos/qtdemo/images/qtlogo_small.pngbin0 -> 3546 bytes-rw-r--r--demos/qtdemo/images/trolltech-logo.pngbin0 -> 23547 bytes-rw-r--r--demos/qtdemo/itemcircleanimation.cpp507
-rw-r--r--demos/qtdemo/itemcircleanimation.h110
-rw-r--r--demos/qtdemo/letteritem.cpp85
-rw-r--r--demos/qtdemo/letteritem.h62
-rw-r--r--demos/qtdemo/main.cpp74
-rw-r--r--demos/qtdemo/mainwindow.cpp483
-rw-r--r--demos/qtdemo/mainwindow.h109
-rw-r--r--demos/qtdemo/menucontent.cpp140
-rw-r--r--demos/qtdemo/menucontent.h77
-rw-r--r--demos/qtdemo/menumanager.cpp876
-rw-r--r--demos/qtdemo/menumanager.h134
-rw-r--r--demos/qtdemo/qtdemo.icnsbin0 -> 129539 bytes-rw-r--r--demos/qtdemo/qtdemo.icobin0 -> 355574 bytes-rw-r--r--demos/qtdemo/qtdemo.pro72
-rw-r--r--demos/qtdemo/qtdemo.qrc8
-rw-r--r--demos/qtdemo/qtdemo.rc2
-rw-r--r--demos/qtdemo/scanitem.cpp80
-rw-r--r--demos/qtdemo/scanitem.h60
-rw-r--r--demos/qtdemo/score.cpp149
-rw-r--r--demos/qtdemo/score.h86
-rw-r--r--demos/qtdemo/textbutton.cpp384
-rw-r--r--demos/qtdemo/textbutton.h100
-rw-r--r--demos/qtdemo/xml/examples.xml227
-rw-r--r--demos/shared/arthurstyle.cpp452
-rw-r--r--demos/shared/arthurstyle.h79
-rw-r--r--demos/shared/arthurwidgets.cpp371
-rw-r--r--demos/shared/arthurwidgets.h118
-rw-r--r--demos/shared/hoverpoints.cpp333
-rw-r--r--demos/shared/hoverpoints.h160
-rw-r--r--demos/shared/images/bg_pattern.pngbin0 -> 104 bytes-rw-r--r--demos/shared/images/button_normal_cap_left.pngbin0 -> 654 bytes-rw-r--r--demos/shared/images/button_normal_cap_right.pngbin0 -> 674 bytes-rw-r--r--demos/shared/images/button_normal_stretch.pngbin0 -> 185 bytes-rw-r--r--demos/shared/images/button_pressed_cap_left.pngbin0 -> 710 bytes-rw-r--r--demos/shared/images/button_pressed_cap_right.pngbin0 -> 785 bytes-rw-r--r--demos/shared/images/button_pressed_stretch.pngbin0 -> 217 bytes-rw-r--r--demos/shared/images/curve_thing_edit-6.pngbin0 -> 58097 bytes-rw-r--r--demos/shared/images/frame_bottom.pngbin0 -> 166 bytes-rw-r--r--demos/shared/images/frame_bottomleft.pngbin0 -> 602 bytes-rw-r--r--demos/shared/images/frame_bottomright.pngbin0 -> 553 bytes-rw-r--r--demos/shared/images/frame_left.pngbin0 -> 182 bytes-rw-r--r--demos/shared/images/frame_right.pngbin0 -> 175 bytes-rw-r--r--demos/shared/images/frame_top.pngbin0 -> 188 bytes-rw-r--r--demos/shared/images/frame_topleft.pngbin0 -> 801 bytes-rw-r--r--demos/shared/images/frame_topright.pngbin0 -> 851 bytes-rw-r--r--demos/shared/images/groupframe_bottom_left.pngbin0 -> 397 bytes-rw-r--r--demos/shared/images/groupframe_bottom_right.pngbin0 -> 383 bytes-rw-r--r--demos/shared/images/groupframe_bottom_stretch.pngbin0 -> 141 bytes-rw-r--r--demos/shared/images/groupframe_left_stretch.pngbin0 -> 132 bytes-rw-r--r--demos/shared/images/groupframe_right_stretch.pngbin0 -> 113 bytes-rw-r--r--demos/shared/images/groupframe_top_stretch.pngbin0 -> 115 bytes-rw-r--r--demos/shared/images/groupframe_topleft.pngbin0 -> 412 bytes-rw-r--r--demos/shared/images/groupframe_topright.pngbin0 -> 449 bytes-rw-r--r--demos/shared/images/line_dash_dot.pngbin0 -> 151 bytes-rw-r--r--demos/shared/images/line_dash_dot_dot.pngbin0 -> 155 bytes-rw-r--r--demos/shared/images/line_dashed.pngbin0 -> 121 bytes-rw-r--r--demos/shared/images/line_dotted.pngbin0 -> 116 bytes-rw-r--r--demos/shared/images/line_solid.pngbin0 -> 110 bytes-rw-r--r--demos/shared/images/radiobutton-off.pngbin0 -> 442 bytes-rw-r--r--demos/shared/images/radiobutton-on.pngbin0 -> 474 bytes-rw-r--r--demos/shared/images/radiobutton_off.pngbin0 -> 442 bytes-rw-r--r--demos/shared/images/radiobutton_on.pngbin0 -> 499 bytes-rw-r--r--demos/shared/images/slider_bar.pngbin0 -> 748 bytes-rw-r--r--demos/shared/images/slider_thumb_off.pngbin0 -> 823 bytes-rw-r--r--demos/shared/images/slider_thumb_on.pngbin0 -> 798 bytes-rw-r--r--demos/shared/images/title_cap_left.pngbin0 -> 179 bytes-rw-r--r--demos/shared/images/title_cap_right.pngbin0 -> 184 bytes-rw-r--r--demos/shared/images/title_stretch.pngbin0 -> 106 bytes-rw-r--r--demos/shared/shared.pri20
-rw-r--r--demos/shared/shared.pro33
-rw-r--r--demos/shared/shared.qrc39
-rw-r--r--demos/spreadsheet/images/interview.pngbin0 -> 174 bytes-rw-r--r--demos/spreadsheet/main.cpp55
-rw-r--r--demos/spreadsheet/printview.cpp59
-rw-r--r--demos/spreadsheet/printview.h60
-rw-r--r--demos/spreadsheet/spreadsheet.cpp631
-rw-r--r--demos/spreadsheet/spreadsheet.h124
-rw-r--r--demos/spreadsheet/spreadsheet.pro33
-rw-r--r--demos/spreadsheet/spreadsheet.qrc5
-rw-r--r--demos/spreadsheet/spreadsheetdelegate.cpp114
-rw-r--r--demos/spreadsheet/spreadsheetdelegate.h65
-rw-r--r--demos/spreadsheet/spreadsheetitem.cpp167
-rw-r--r--demos/spreadsheet/spreadsheetitem.h73
-rw-r--r--demos/sqlbrowser/browser.cpp247
-rw-r--r--demos/sqlbrowser/browser.h99
-rw-r--r--demos/sqlbrowser/browserwidget.ui199
-rw-r--r--demos/sqlbrowser/connectionwidget.cpp165
-rw-r--r--demos/sqlbrowser/connectionwidget.h79
-rw-r--r--demos/sqlbrowser/main.cpp91
-rw-r--r--demos/sqlbrowser/qsqlconnectiondialog.cpp115
-rw-r--r--demos/sqlbrowser/qsqlconnectiondialog.h74
-rw-r--r--demos/sqlbrowser/qsqlconnectiondialog.ui224
-rw-r--r--demos/sqlbrowser/sqlbrowser.pro23
-rw-r--r--demos/textedit/example.html79
-rw-r--r--demos/textedit/images/logo32.pngbin0 -> 1410 bytes-rw-r--r--demos/textedit/images/mac/editcopy.pngbin0 -> 1468 bytes-rw-r--r--demos/textedit/images/mac/editcut.pngbin0 -> 1512 bytes-rw-r--r--demos/textedit/images/mac/editpaste.pngbin0 -> 1906 bytes-rw-r--r--demos/textedit/images/mac/editredo.pngbin0 -> 1752 bytes-rw-r--r--demos/textedit/images/mac/editundo.pngbin0 -> 1746 bytes-rw-r--r--demos/textedit/images/mac/exportpdf.pngbin0 -> 1215 bytes-rw-r--r--demos/textedit/images/mac/filenew.pngbin0 -> 1172 bytes-rw-r--r--demos/textedit/images/mac/fileopen.pngbin0 -> 2168 bytes-rw-r--r--demos/textedit/images/mac/fileprint.pngbin0 -> 2087 bytes-rw-r--r--demos/textedit/images/mac/filesave.pngbin0 -> 1206 bytes-rw-r--r--demos/textedit/images/mac/textbold.pngbin0 -> 1611 bytes-rw-r--r--demos/textedit/images/mac/textcenter.pngbin0 -> 1404 bytes-rw-r--r--demos/textedit/images/mac/textitalic.pngbin0 -> 1164 bytes-rw-r--r--demos/textedit/images/mac/textjustify.pngbin0 -> 1257 bytes-rw-r--r--demos/textedit/images/mac/textleft.pngbin0 -> 1235 bytes-rw-r--r--demos/textedit/images/mac/textright.pngbin0 -> 1406 bytes-rw-r--r--demos/textedit/images/mac/textunder.pngbin0 -> 1183 bytes-rw-r--r--demos/textedit/images/mac/zoomin.pngbin0 -> 1696 bytes-rw-r--r--demos/textedit/images/mac/zoomout.pngbin0 -> 1662 bytes-rw-r--r--demos/textedit/images/win/editcopy.pngbin0 -> 1325 bytes-rw-r--r--demos/textedit/images/win/editcut.pngbin0 -> 1896 bytes-rw-r--r--demos/textedit/images/win/editpaste.pngbin0 -> 1482 bytes-rw-r--r--demos/textedit/images/win/editredo.pngbin0 -> 1787 bytes-rw-r--r--demos/textedit/images/win/editundo.pngbin0 -> 1768 bytes-rw-r--r--demos/textedit/images/win/exportpdf.pngbin0 -> 1059 bytes-rw-r--r--demos/textedit/images/win/filenew.pngbin0 -> 768 bytes-rw-r--r--demos/textedit/images/win/fileopen.pngbin0 -> 1662 bytes-rw-r--r--demos/textedit/images/win/fileprint.pngbin0 -> 1456 bytes-rw-r--r--demos/textedit/images/win/filesave.pngbin0 -> 1205 bytes-rw-r--r--demos/textedit/images/win/textbold.pngbin0 -> 1134 bytes-rw-r--r--demos/textedit/images/win/textcenter.pngbin0 -> 627 bytes-rw-r--r--demos/textedit/images/win/textitalic.pngbin0 -> 829 bytes-rw-r--r--demos/textedit/images/win/textjustify.pngbin0 -> 695 bytes-rw-r--r--demos/textedit/images/win/textleft.pngbin0 -> 673 bytes-rw-r--r--demos/textedit/images/win/textright.pngbin0 -> 677 bytes-rw-r--r--demos/textedit/images/win/textunder.pngbin0 -> 971 bytes-rw-r--r--demos/textedit/images/win/zoomin.pngbin0 -> 1208 bytes-rw-r--r--demos/textedit/images/win/zoomout.pngbin0 -> 1226 bytes-rw-r--r--demos/textedit/main.cpp54
-rw-r--r--demos/textedit/textedit.cpp688
-rw-r--r--demos/textedit/textedit.doc18
-rw-r--r--demos/textedit/textedit.h129
-rw-r--r--demos/textedit/textedit.pro21
-rw-r--r--demos/textedit/textedit.qrc44
-rw-r--r--demos/undo/commands.cpp180
-rw-r--r--demos/undo/commands.h112
-rw-r--r--demos/undo/document.cpp445
-rw-r--r--demos/undo/document.h125
-rw-r--r--demos/undo/icons/background.pngbin0 -> 93 bytes-rw-r--r--demos/undo/icons/blue.pngbin0 -> 1659 bytes-rw-r--r--demos/undo/icons/circle.pngbin0 -> 1359 bytes-rw-r--r--demos/undo/icons/exit.pngbin0 -> 1731 bytes-rw-r--r--demos/undo/icons/fileclose.pngbin0 -> 1121 bytes-rw-r--r--demos/undo/icons/filenew.pngbin0 -> 1266 bytes-rw-r--r--demos/undo/icons/fileopen.pngbin0 -> 1771 bytes-rw-r--r--demos/undo/icons/filesave.pngbin0 -> 1022 bytes-rw-r--r--demos/undo/icons/green.pngbin0 -> 1766 bytes-rw-r--r--demos/undo/icons/ok.pngbin0 -> 979 bytes-rw-r--r--demos/undo/icons/rectangle.pngbin0 -> 690 bytes-rw-r--r--demos/undo/icons/red.pngbin0 -> 1653 bytes-rw-r--r--demos/undo/icons/redo.pngbin0 -> 985 bytes-rw-r--r--demos/undo/icons/remove.pngbin0 -> 1833 bytes-rw-r--r--demos/undo/icons/triangle.pngbin0 -> 850 bytes-rw-r--r--demos/undo/icons/undo.pngbin0 -> 962 bytes-rw-r--r--demos/undo/main.cpp56
-rw-r--r--demos/undo/mainwindow.cpp446
-rw-r--r--demos/undo/mainwindow.h87
-rw-r--r--demos/undo/mainwindow.ui322
-rw-r--r--demos/undo/undo.pro17
-rw-r--r--demos/undo/undo.qrc20
-rw-r--r--dist/README134
-rw-r--r--dist/changes-0.92101
-rw-r--r--dist/changes-0.9374
-rw-r--r--dist/changes-0.9433
-rw-r--r--dist/changes-0.9554
-rw-r--r--dist/changes-0.96263
-rw-r--r--dist/changes-0.9898
-rw-r--r--dist/changes-0.9960
-rw-r--r--dist/changes-1.062
-rw-r--r--dist/changes-1.1110
-rw-r--r--dist/changes-1.2119
-rw-r--r--dist/changes-1.30278
-rw-r--r--dist/changes-1.3134
-rw-r--r--dist/changes-1.39-19980327963
-rw-r--r--dist/changes-1.39-19980406286
-rw-r--r--dist/changes-1.39-19980414173
-rw-r--r--dist/changes-1.39-19980506555
-rw-r--r--dist/changes-1.39-19980529232
-rw-r--r--dist/changes-1.39-19980611194
-rw-r--r--dist/changes-1.39-19980616810
-rw-r--r--dist/changes-1.39-19980623545
-rw-r--r--dist/changes-1.39-19980625119
-rw-r--r--dist/changes-1.39-19980706320
-rw-r--r--dist/changes-1.40291
-rw-r--r--dist/changes-1.4176
-rw-r--r--dist/changes-1.4271
-rw-r--r--dist/changes-2.0.1101
-rw-r--r--dist/changes-2.00151
-rw-r--r--dist/changes-2.00beta161
-rw-r--r--dist/changes-2.00beta285
-rw-r--r--dist/changes-2.00beta335
-rw-r--r--dist/changes-2.1.0314
-rw-r--r--dist/changes-2.1.171
-rw-r--r--dist/changes-2.2.0223
-rw-r--r--dist/changes-2.2.1160
-rw-r--r--dist/changes-2.2.2154
-rw-r--r--dist/changes-3.0.0720
-rw-r--r--dist/changes-3.0.0-beta11239
-rw-r--r--dist/changes-3.0.0-beta2363
-rw-r--r--dist/changes-3.0.0-beta3278
-rw-r--r--dist/changes-3.0.0-beta4688
-rw-r--r--dist/changes-3.0.0-beta5316
-rw-r--r--dist/changes-3.0.0-beta6272
-rw-r--r--dist/changes-3.0.1540
-rw-r--r--dist/changes-3.0.2325
-rw-r--r--dist/changes-3.0.4214
-rw-r--r--dist/changes-3.0.7375
-rw-r--r--dist/changes-3.1.0334
-rw-r--r--dist/changes-3.1.0-b1692
-rw-r--r--dist/changes-3.1.0-b2220
-rw-r--r--dist/changes-3.1.1212
-rw-r--r--dist/changes-3.1.2631
-rw-r--r--dist/changes-3.2.0327
-rw-r--r--dist/changes-3.2.0-b1296
-rw-r--r--dist/changes-3.2.0-b2121
-rw-r--r--dist/changes-3.2.1143
-rw-r--r--dist/changes-3.2.2155
-rw-r--r--dist/changes-3.2.3150
-rw-r--r--dist/changes-3.3.0313
-rw-r--r--dist/changes-3.3.0-b1284
-rw-r--r--dist/changes-3.3.1141
-rw-r--r--dist/changes-3.3.2390
-rw-r--r--dist/changes-3.3.3442
-rw-r--r--dist/changes-3.3.5617
-rw-r--r--dist/changes-3.3.627
-rw-r--r--dist/changes-3.3.712
-rw-r--r--dist/changes-3.3.8273
-rw-r--r--dist/changes-4.0.1786
-rw-r--r--dist/changes-4.1.0573
-rw-r--r--dist/changes-4.1.0-rc1554
-rw-r--r--dist/changes-4.1.1693
-rw-r--r--dist/changes-4.1.1141
-rw-r--r--dist/changes-4.1.3879
-rw-r--r--dist/changes-4.1.4125
-rw-r--r--dist/changes-4.1.514
-rw-r--r--dist/changes-4.2.02506
-rw-r--r--dist/changes-4.2.0-tp120
-rw-r--r--dist/changes-4.2.114
-rw-r--r--dist/changes-4.2.2827
-rw-r--r--dist/changes-4.2.3373
-rw-r--r--dist/changes-4.2CEping73
-rw-r--r--dist/changes-4.3.02445
-rw-r--r--dist/changes-4.3.1519
-rw-r--r--dist/changes-4.3.2604
-rw-r--r--dist/changes-4.3.3358
-rw-r--r--dist/changes-4.3.4112
-rw-r--r--dist/changes-4.3.5109
-rw-r--r--dist/changes-4.3CE-tp153
-rw-r--r--dist/changes-4.3CEconan72
-rw-r--r--dist/changes-4.3CEkicker53
-rw-r--r--dist/changes-4.3CEsweetandsour43
-rw-r--r--dist/changes-4.4.02419
-rw-r--r--dist/changes-4.4.1619
-rw-r--r--dist/changes-4.4.2512
-rw-r--r--dist/changes-4.4.331
-rw-r--r--dist/changes-4.5.01496
-rw-r--r--doc/doc.pri72
-rw-r--r--doc/src/3rdparty.qdoc272
-rw-r--r--doc/src/accelerators.qdoc137
-rw-r--r--doc/src/accessible.qdoc600
-rw-r--r--doc/src/activeqt-dumpcpp.qdoc143
-rw-r--r--doc/src/activeqt-dumpdoc.qdoc83
-rw-r--r--doc/src/activeqt-idc.qdoc82
-rw-r--r--doc/src/activeqt-testcon.qdoc77
-rw-r--r--doc/src/activeqt.qdoc88
-rw-r--r--doc/src/annotated.qdoc62
-rw-r--r--doc/src/appicon.qdoc226
-rw-r--r--doc/src/assistant-manual.qdoc810
-rw-r--r--doc/src/atomic-operations.qdoc89
-rw-r--r--doc/src/bughowto.qdoc71
-rw-r--r--doc/src/classes.qdoc68
-rw-r--r--doc/src/codecs.qdoc534
-rw-r--r--doc/src/commercialeditions.qdoc135
-rw-r--r--doc/src/compatclasses.qdoc54
-rw-r--r--doc/src/containers.qdoc775
-rw-r--r--doc/src/coordsys.qdoc486
-rw-r--r--doc/src/credits.qdoc348
-rw-r--r--doc/src/custom-types.qdoc178
-rw-r--r--doc/src/datastreamformat.qdoc312
-rw-r--r--doc/src/debug.qdoc256
-rw-r--r--doc/src/demos.qdoc151
-rw-r--r--doc/src/demos/affine.qdoc62
-rw-r--r--doc/src/demos/arthurplugin.qdoc56
-rw-r--r--doc/src/demos/books.qdoc60
-rw-r--r--doc/src/demos/boxes.qdoc63
-rw-r--r--doc/src/demos/browser.qdoc53
-rw-r--r--doc/src/demos/chip.qdoc52
-rw-r--r--doc/src/demos/composition.qdoc58
-rw-r--r--doc/src/demos/deform.qdoc65
-rw-r--r--doc/src/demos/embeddeddialogs.qdoc51
-rw-r--r--doc/src/demos/gradients.qdoc69
-rw-r--r--doc/src/demos/interview.qdoc51
-rw-r--r--doc/src/demos/macmainwindow.qdoc56
-rw-r--r--doc/src/demos/mainwindow.qdoc50
-rw-r--r--doc/src/demos/mediaplayer.qdoc50
-rw-r--r--doc/src/demos/pathstroke.qdoc61
-rw-r--r--doc/src/demos/spreadsheet.qdoc51
-rw-r--r--doc/src/demos/sqlbrowser.qdoc50
-rw-r--r--doc/src/demos/textedit.qdoc50
-rw-r--r--doc/src/demos/undo.qdoc57
-rw-r--r--doc/src/deployment.qdoc1472
-rw-r--r--doc/src/designer-manual.qdoc2762
-rw-r--r--doc/src/desktop-integration.qdoc90
-rw-r--r--doc/src/developing-on-mac.qdoc254
-rw-r--r--doc/src/diagrams/arthurplugin-demo.pngbin0 -> 60226 bytes-rw-r--r--doc/src/diagrams/arthurplugin-demo.ui58
-rw-r--r--doc/src/diagrams/assistant-manual/assistant-assistant.pngbin0 -> 119764 bytes-rw-r--r--doc/src/diagrams/assistant-manual/assistant-assistant.zipbin0 -> 71811 bytes-rw-r--r--doc/src/diagrams/assistant-manual/assistant-temp-toolbar.pngbin0 -> 12602 bytes-rw-r--r--doc/src/diagrams/boat.pngbin0 -> 2506 bytes-rw-r--r--doc/src/diagrams/boat.sk65
-rw-r--r--doc/src/diagrams/car.pngbin0 -> 2030 bytes-rw-r--r--doc/src/diagrams/car.sk69
-rw-r--r--doc/src/diagrams/chip-demo.pngbin0 -> 145269 bytes-rw-r--r--doc/src/diagrams/chip-demo.zipbin0 -> 204025 bytes-rw-r--r--doc/src/diagrams/cleanlooks-dialogbuttonbox.pngbin0 -> 1462 bytes-rw-r--r--doc/src/diagrams/clock.pngbin0 -> 2901 bytes-rw-r--r--doc/src/diagrams/completer-example-shaped.pngbin0 -> 16734 bytes-rw-r--r--doc/src/diagrams/complexwizard-flow.sk62
-rw-r--r--doc/src/diagrams/composition-demo.pngbin0 -> 268282 bytes-rw-r--r--doc/src/diagrams/contentspropagation/background.pngbin0 -> 530823 bytes-rw-r--r--doc/src/diagrams/contentspropagation/base.pngbin0 -> 173 bytes-rwxr-xr-xdoc/src/diagrams/contentspropagation/customwidget.py135
-rw-r--r--doc/src/diagrams/contentspropagation/lightbackground.pngbin0 -> 528522 bytes-rwxr-xr-xdoc/src/diagrams/contentspropagation/standardwidgets.py144
-rw-r--r--doc/src/diagrams/coordinatesystem-line-antialias.sk310
-rw-r--r--doc/src/diagrams/coordinatesystem-line-raster.sk301
-rw-r--r--doc/src/diagrams/coordinatesystem-line.sk297
-rw-r--r--doc/src/diagrams/coordinatesystem-rect-antialias.sk334
-rw-r--r--doc/src/diagrams/coordinatesystem-rect-raster.sk314
-rw-r--r--doc/src/diagrams/coordinatesystem-rect.sk305
-rw-r--r--doc/src/diagrams/coordinatesystem-transformations.sk121
-rw-r--r--doc/src/diagrams/customcompleter-example.pngbin0 -> 11636 bytes-rw-r--r--doc/src/diagrams/customcompleter-example.zipbin0 -> 20617 bytes-rw-r--r--doc/src/diagrams/customwidgetplugin-example.pngbin0 -> 1919 bytes-rw-r--r--doc/src/diagrams/datetimewidgets.ui116
-rw-r--r--doc/src/diagrams/datetimewidgets.zipbin0 -> 8503 bytes-rw-r--r--doc/src/diagrams/dbus-chat-example.pngbin0 -> 23785 bytes-rw-r--r--doc/src/diagrams/dependencies.lout106
-rw-r--r--doc/src/diagrams/designer-adding-actions.txt15
-rw-r--r--doc/src/diagrams/designer-adding-dockwidget.txt8
-rw-r--r--doc/src/diagrams/designer-adding-dockwidget1.pngbin0 -> 8897 bytes-rw-r--r--doc/src/diagrams/designer-adding-dockwidget1.zipbin0 -> 12252 bytes-rw-r--r--doc/src/diagrams/designer-adding-dynamic-property.pngbin0 -> 9568 bytes-rw-r--r--doc/src/diagrams/designer-adding-menu-action1.pngbin0 -> 16173 bytes-rw-r--r--doc/src/diagrams/designer-adding-menu-action1.zipbin0 -> 19245 bytes-rw-r--r--doc/src/diagrams/designer-adding-menu-action2.zipbin0 -> 19587 bytes-rw-r--r--doc/src/diagrams/designer-adding-toolbar-action1.pngbin0 -> 14911 bytes-rw-r--r--doc/src/diagrams/designer-adding-toolbar-action1.zipbin0 -> 17515 bytes-rw-r--r--doc/src/diagrams/designer-adding-toolbar-action2.zipbin0 -> 15433 bytes-rw-r--r--doc/src/diagrams/designer-creating-dynamic-property.pngbin0 -> 7561 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry1.pngbin0 -> 9618 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry1.zipbin0 -> 11753 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry2.pngbin0 -> 9090 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry2.zipbin0 -> 11709 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry3.pngbin0 -> 5435 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry3.zipbin0 -> 11520 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry4.pngbin0 -> 10141 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry4.zipbin0 -> 12473 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu.txt49
-rw-r--r--doc/src/diagrams/designer-creating-menu1.pngbin0 -> 4733 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu1.zipbin0 -> 5279 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu2.pngbin0 -> 4296 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu2.zipbin0 -> 5295 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu3.pngbin0 -> 5053 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu3.zipbin0 -> 6197 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu4.pngbin0 -> 5274 bytes-rw-r--r--doc/src/diagrams/designer-creating-menubar.pngbin0 -> 7024 bytes-rw-r--r--doc/src/diagrams/designer-creating-menubar.zipbin0 -> 10485 bytes-rw-r--r--doc/src/diagrams/designer-edit-resource.zipbin0 -> 11195 bytes-rw-r--r--doc/src/diagrams/designer-find-icon.zipbin0 -> 47820 bytes-rw-r--r--doc/src/diagrams/designer-form-layoutfunction-crop.pngbin0 -> 5132 bytes-rw-r--r--doc/src/diagrams/designer-form-layoutfunction.pngbin0 -> 15912 bytes-rw-r--r--doc/src/diagrams/designer-form-layoutfunction.zipbin0 -> 21179 bytes-rw-r--r--doc/src/diagrams/designer-main-window.zipbin0 -> 35959 bytes-rw-r--r--doc/src/diagrams/designer-mainwindow-actions.ui88
-rw-r--r--doc/src/diagrams/designer-palette-brush-editor.zipbin0 -> 17703 bytes-rw-r--r--doc/src/diagrams/designer-palette-editor.zipbin0 -> 30588 bytes-rw-r--r--doc/src/diagrams/designer-palette-gradient-editor.zipbin0 -> 55456 bytes-rw-r--r--doc/src/diagrams/designer-palette-pattern-editor.zipbin0 -> 15845 bytes-rw-r--r--doc/src/diagrams/designer-resource-editor.zipbin0 -> 12287 bytes-rw-r--r--doc/src/diagrams/designer-widget-box.zipbin0 -> 30530 bytes-rw-r--r--doc/src/diagrams/diagrams.txt16
-rw-r--r--doc/src/diagrams/dockwidget-cross.sk110
-rw-r--r--doc/src/diagrams/dockwidget-neighbors.sk136
-rw-r--r--doc/src/diagrams/fontsampler-example.zipbin0 -> 36245 bytes-rw-r--r--doc/src/diagrams/framebufferobject-example.pngbin0 -> 256882 bytes-rw-r--r--doc/src/diagrams/framebufferobject2-example.pngbin0 -> 90661 bytes-rw-r--r--doc/src/diagrams/ftp-example.zipbin0 -> 14383 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-calendarwidget.pngbin0 -> 9161 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-checkbox.pngbin0 -> 825 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-combobox.pngbin0 -> 1269 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-dateedit.pngbin0 -> 702 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-datetimeedit.pngbin0 -> 1132 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-dial.pngbin0 -> 3184 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-doublespinbox.pngbin0 -> 530 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-fontcombobox.pngbin0 -> 1040 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-frame.pngbin0 -> 2298 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-groupbox.pngbin0 -> 1839 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-horizontalscrollbar.pngbin0 -> 194 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-label.pngbin0 -> 606 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-lcdnumber.pngbin0 -> 161 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-lineedit.pngbin0 -> 830 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-listview.pngbin0 -> 2906 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-progressbar.pngbin0 -> 517 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-pushbutton.pngbin0 -> 639 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-radiobutton.pngbin0 -> 1045 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-slider.pngbin0 -> 136 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-spinbox.pngbin0 -> 407 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-tableview.pngbin0 -> 1872 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-tabwidget.pngbin0 -> 1820 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-textedit.pngbin0 -> 3442 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-timeedit.pngbin0 -> 702 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-toolbox.pngbin0 -> 1217 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-toolbutton.pngbin0 -> 706 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-treeview.pngbin0 -> 5320 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-calendarwidget.pngbin0 -> 8767 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-checkbox.pngbin0 -> 875 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-combobox.pngbin0 -> 1475 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-dateedit.pngbin0 -> 810 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-datetimeedit.pngbin0 -> 1257 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-dial.pngbin0 -> 2795 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-doublespinbox.pngbin0 -> 610 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-fontcombobox.pngbin0 -> 1249 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-frame.pngbin0 -> 2313 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-groupbox.pngbin0 -> 1924 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-horizontalscrollbar.pngbin0 -> 389 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-label.pngbin0 -> 606 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-lcdnumber.pngbin0 -> 161 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-lineedit.pngbin0 -> 888 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-listview.pngbin0 -> 6221 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-progressbar.pngbin0 -> 780 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-pushbutton.pngbin0 -> 903 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-radiobutton.pngbin0 -> 1208 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-slider.pngbin0 -> 246 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-spinbox.pngbin0 -> 485 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-tableview.pngbin0 -> 2225 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-tabwidget.pngbin0 -> 3852 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-textedit.pngbin0 -> 3517 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-timeedit.pngbin0 -> 814 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-toolbox.pngbin0 -> 833 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-toolbutton.pngbin0 -> 1039 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-treeview.pngbin0 -> 5686 bytes-rw-r--r--doc/src/diagrams/gallery-images/designer-creating-menubar.pngbin0 -> 7687 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-calendarwidget.pngbin0 -> 11754 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-checkbox.pngbin0 -> 1450 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-columnview.pngbin0 -> 577 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-combobox.pngbin0 -> 1910 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-dateedit.pngbin0 -> 1210 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-datetimeedit.pngbin0 -> 1861 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-dial.pngbin0 -> 4589 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-doublespinbox.pngbin0 -> 1342 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-fontcombobox.pngbin0 -> 1840 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-frame.pngbin0 -> 1139 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-groupbox.pngbin0 -> 4188 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-horizontalscrollbar.pngbin0 -> 903 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-label.pngbin0 -> 761 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-lcdnumber.pngbin0 -> 334 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-lineedit.pngbin0 -> 1435 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-listview.pngbin0 -> 5531 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-progressbar.pngbin0 -> 1318 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-pushbutton.pngbin0 -> 1251 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-radiobutton.pngbin0 -> 2074 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-slider.pngbin0 -> 583 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-spinbox.pngbin0 -> 1139 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-tableview.pngbin0 -> 5418 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-tabwidget.pngbin0 -> 5278 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-textedit.pngbin0 -> 8068 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-timeedit.pngbin0 -> 1582 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-toolbox.pngbin0 -> 1940 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-toolbutton.pngbin0 -> 1299 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-treeview.pngbin0 -> 6284 bytes-rw-r--r--doc/src/diagrams/gallery-images/linguist-menubar.pngbin0 -> 1301 bytes-rw-r--r--doc/src/diagrams/gallery-images/macintosh-tabwidget.pngbin0 -> 7673 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-calendarwidget.pngbin0 -> 8892 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-checkbox.pngbin0 -> 775 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-combobox.pngbin0 -> 1276 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-dateedit.pngbin0 -> 706 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-datetimeedit.pngbin0 -> 1145 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-dial.pngbin0 -> 2212 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-doublespinbox.pngbin0 -> 525 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-fontcombobox.pngbin0 -> 1052 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-frame.pngbin0 -> 2225 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-groupbox.pngbin0 -> 1772 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-horizontalscrollbar.pngbin0 -> 216 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-label.pngbin0 -> 349 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-lcdnumber.pngbin0 -> 161 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-lineedit.pngbin0 -> 835 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-listview.pngbin0 -> 2844 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-menubar.pngbin0 -> 936 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-progressbar.pngbin0 -> 505 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-pushbutton.pngbin0 -> 609 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-radiobutton.pngbin0 -> 1017 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-slider.pngbin0 -> 154 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-spinbox.pngbin0 -> 402 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-tableview.pngbin0 -> 1885 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-tabwidget.pngbin0 -> 1849 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-textedit.pngbin0 -> 3534 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-timeedit.pngbin0 -> 704 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-toolbox.pngbin0 -> 883 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-toolbutton.pngbin0 -> 681 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-treeview.pngbin0 -> 5049 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-calendarwidget.pngbin0 -> 9185 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-checkbox.pngbin0 -> 590 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-colordialog.pngbin0 -> 20896 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-combobox.pngbin0 -> 1714 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-dateedit.pngbin0 -> 834 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-datetimeedit.pngbin0 -> 1276 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-dial.pngbin0 -> 2286 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-doublespinbox.pngbin0 -> 685 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-fontcombobox.pngbin0 -> 1320 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-fontdialog.pngbin0 -> 19414 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-frame.pngbin0 -> 1888 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-groupbox.pngbin0 -> 1629 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-horizontalscrollbar.pngbin0 -> 398 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-label.pngbin0 -> 351 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-lcdnumber.pngbin0 -> 161 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-lineedit.pngbin0 -> 534 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-listview.pngbin0 -> 4741 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-menubar.pngbin0 -> 570 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-messagebox.pngbin0 -> 6502 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-progressbar.pngbin0 -> 561 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-progressdialog.pngbin0 -> 5359 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-pushbutton.pngbin0 -> 913 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-radiobutton.pngbin0 -> 781 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-sizegrip.pngbin0 -> 9289 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-slider.pngbin0 -> 216 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-spinbox.pngbin0 -> 558 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-statusbar.pngbin0 -> 442 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-tabbar-truncated.pngbin0 -> 2318 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-tabbar.pngbin0 -> 2116 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-tableview.pngbin0 -> 2639 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-tabwidget.pngbin0 -> 3833 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-textedit.pngbin0 -> 3032 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-timeedit.pngbin0 -> 844 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-toolbox.pngbin0 -> 1281 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-toolbutton.pngbin0 -> 828 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-treeview.pngbin0 -> 6365 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-calendarwidget.pngbin0 -> 9206 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-checkbox.pngbin0 -> 835 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-combobox.pngbin0 -> 920 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-dateedit.pngbin0 -> 654 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-datetimeedit.pngbin0 -> 1093 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-dial.pngbin0 -> 3073 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-doublespinbox.pngbin0 -> 492 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-fontcombobox.pngbin0 -> 1039 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-frame.pngbin0 -> 2303 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-groupbox.pngbin0 -> 1855 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-horizontalscrollbar.pngbin0 -> 177 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-label.pngbin0 -> 602 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-lcdnumber.pngbin0 -> 161 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-lineedit.pngbin0 -> 837 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-listview.pngbin0 -> 2950 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-progressbar.pngbin0 -> 520 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-pushbutton.pngbin0 -> 618 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-radiobutton.pngbin0 -> 1072 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-slider.pngbin0 -> 142 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-spinbox.pngbin0 -> 366 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-tableview.pngbin0 -> 1899 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-tabwidget.pngbin0 -> 1860 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-textedit.pngbin0 -> 3461 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-timeedit.pngbin0 -> 664 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-toolbox.pngbin0 -> 819 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-toolbutton.pngbin0 -> 713 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-treeview.pngbin0 -> 5186 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-calendarwidget.pngbin0 -> 4161 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-checkbox.pngbin0 -> 694 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-combobox.pngbin0 -> 873 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-dateedit.pngbin0 -> 489 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-datetimeedit.pngbin0 -> 640 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-dial.pngbin0 -> 1656 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-doublespinbox.pngbin0 -> 480 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-fontcombobox.pngbin0 -> 524 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-frame.pngbin0 -> 1413 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-groupbox.pngbin0 -> 1568 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-horizontalscrollbar.pngbin0 -> 743 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-label.pngbin0 -> 290 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-lcdnumber.pngbin0 -> 167 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-lineedit.pngbin0 -> 482 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-listview.pngbin0 -> 5783 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-progressbar.pngbin0 -> 1070 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-pushbutton.pngbin0 -> 735 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-radiobutton.pngbin0 -> 877 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-slider.pngbin0 -> 350 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-spinbox.pngbin0 -> 405 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-tableview.pngbin0 -> 2502 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-tabwidget.pngbin0 -> 2490 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-textedit.pngbin0 -> 2691 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-timeedit.pngbin0 -> 405 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-toolbox.pngbin0 -> 503 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-toolbutton.pngbin0 -> 543 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-treeview.pngbin0 -> 4721 bytes-rw-r--r--doc/src/diagrams/graphicsview-map.pngbin0 -> 168801 bytes-rw-r--r--doc/src/diagrams/graphicsview-map.zipbin0 -> 259717 bytes-rw-r--r--doc/src/diagrams/graphicsview-shapes.pngbin0 -> 474377 bytes-rw-r--r--doc/src/diagrams/graphicsview-text.pngbin0 -> 96354 bytes-rw-r--r--doc/src/diagrams/hellogl-example.pngbin0 -> 7711 bytes-rw-r--r--doc/src/diagrams/house.pngbin0 -> 2035 bytes-rw-r--r--doc/src/diagrams/house.sk33
-rw-r--r--doc/src/diagrams/httpstack.sk112
-rw-r--r--doc/src/diagrams/itemviews/editabletreemodel-indexes.sk92
-rw-r--r--doc/src/diagrams/itemviews/editabletreemodel-items.sk119
-rw-r--r--doc/src/diagrams/itemviews/editabletreemodel-model.sk392
-rw-r--r--doc/src/diagrams/itemviews/editabletreemodel-values.sk263
-rw-r--r--doc/src/diagrams/licensewizard-flow.sk54
-rw-r--r--doc/src/diagrams/linguist-icons/appicon.pngbin0 -> 2238 bytes-rw-r--r--doc/src/diagrams/linguist-icons/linguist.qrc51
-rw-r--r--doc/src/diagrams/linguist-icons/pagecurl.pngbin0 -> 1247 bytes-rw-r--r--doc/src/diagrams/linguist-icons/s_check_danger.pngbin0 -> 304 bytes-rw-r--r--doc/src/diagrams/linguist-icons/s_check_empty.pngbin0 -> 404 bytes-rw-r--r--doc/src/diagrams/linguist-icons/s_check_obsolete.pngbin0 -> 192 bytes-rw-r--r--doc/src/diagrams/linguist-icons/s_check_off.pngbin0 -> 434 bytes-rw-r--r--doc/src/diagrams/linguist-icons/s_check_on.pngbin0 -> 192 bytes-rw-r--r--doc/src/diagrams/linguist-icons/s_check_warning.pngbin0 -> 192 bytes-rw-r--r--doc/src/diagrams/linguist-icons/splash.pngbin0 -> 35908 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/accelerator.pngbin0 -> 2159 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/book.pngbin0 -> 1571 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/doneandnext.pngbin0 -> 1849 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/editcopy.pngbin0 -> 1614 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/editcut.pngbin0 -> 1896 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/editpaste.pngbin0 -> 1989 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/filenew.pngbin0 -> 977 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/fileopen.pngbin0 -> 2309 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/fileprint.pngbin0 -> 741 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/filesave.pngbin0 -> 1894 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/next.pngbin0 -> 908 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/nextunfinished.pngbin0 -> 1928 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/phrase.pngbin0 -> 2251 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/prev.pngbin0 -> 911 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/prevunfinished.pngbin0 -> 1883 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/print.pngbin0 -> 1732 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/punctuation.pngbin0 -> 1851 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/redo.pngbin0 -> 1787 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/searchfind.pngbin0 -> 1944 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/undo.pngbin0 -> 1768 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/whatsthis.pngbin0 -> 1948 bytes-rw-r--r--doc/src/diagrams/linguist-linguist.pngbin0 -> 112638 bytes-rw-r--r--doc/src/diagrams/linguist-menubar.ui123
-rw-r--r--doc/src/diagrams/linguist-previewtool.pngbin0 -> 46784 bytes-rw-r--r--doc/src/diagrams/linguist-toolbar.pngbin0 -> 18680 bytes-rw-r--r--doc/src/diagrams/linguist-toolbar.ui252
-rw-r--r--doc/src/diagrams/linguist-toolbar.zipbin0 -> 25052 bytes-rw-r--r--doc/src/diagrams/macintosh-menu.pngbin0 -> 6440 bytes-rw-r--r--doc/src/diagrams/macintosh-unified-toolbar.pngbin0 -> 29365 bytes-rw-r--r--doc/src/diagrams/mainwindow-contextmenu.pngbin0 -> 4198 bytes-rw-r--r--doc/src/diagrams/mainwindow-custom-dock.pngbin0 -> 37420 bytes-rw-r--r--doc/src/diagrams/mainwindow-docks.sk78
-rw-r--r--doc/src/diagrams/mainwindow-vertical-dock.pngbin0 -> 13088 bytes-rw-r--r--doc/src/diagrams/mainwindow-vertical-tabs.pngbin0 -> 28949 bytes-rw-r--r--doc/src/diagrams/modelview-begin-append-columns.sk176
-rw-r--r--doc/src/diagrams/modelview-begin-append-rows.sk122
-rw-r--r--doc/src/diagrams/modelview-begin-insert-columns.sk193
-rw-r--r--doc/src/diagrams/modelview-begin-insert-rows.sk157
-rw-r--r--doc/src/diagrams/modelview-begin-remove-columns.sk193
-rw-r--r--doc/src/diagrams/modelview-begin-remove-rows.sk130
-rw-r--r--doc/src/diagrams/modelview-listmodel.sk87
-rw-r--r--doc/src/diagrams/modelview-models.pngbin0 -> 25109 bytes-rw-r--r--doc/src/diagrams/modelview-models.sk287
-rw-r--r--doc/src/diagrams/modelview-overview.sk82
-rw-r--r--doc/src/diagrams/modelview-tablemodel.sk142
-rw-r--r--doc/src/diagrams/modelview-treemodel.sk139
-rw-r--r--doc/src/diagrams/paintsystem-core.sk76
-rw-r--r--doc/src/diagrams/paintsystem-devices.sk220
-rw-r--r--doc/src/diagrams/paintsystem-gradients.sk94
-rw-r--r--doc/src/diagrams/paintsystem-stylepainter.sk58
-rw-r--r--doc/src/diagrams/palette-diagram/dialog-crop-fade.pngbin0 -> 14239 bytes-rw-r--r--doc/src/diagrams/palette-diagram/dialog-crop.pngbin0 -> 9776 bytes-rw-r--r--doc/src/diagrams/palette-diagram/dialog.pngbin0 -> 23016 bytes-rw-r--r--doc/src/diagrams/palette-diagram/palette.sk95
-rw-r--r--doc/src/diagrams/parent-child-widgets.pngbin0 -> 8016 bytes-rw-r--r--doc/src/diagrams/parent-child-widgets.sk130
-rw-r--r--doc/src/diagrams/pathstroke-demo.pngbin0 -> 72909 bytes-rw-r--r--doc/src/diagrams/patternist-importFlow.odgbin0 -> 13718 bytes-rw-r--r--doc/src/diagrams/patternist-wordProcessor.odgbin0 -> 14221 bytes-rw-r--r--doc/src/diagrams/pbuffers-example.pngbin0 -> 87330 bytes-rw-r--r--doc/src/diagrams/pbuffers2-example.pngbin0 -> 317052 bytes-rw-r--r--doc/src/diagrams/plaintext-layout.pngbin0 -> 19745 bytes-rw-r--r--doc/src/diagrams/plastique-dialogbuttonbox.pngbin0 -> 1443 bytes-rw-r--r--doc/src/diagrams/plastique-filedialog.pngbin0 -> 16844 bytes-rw-r--r--doc/src/diagrams/plastique-fontcombobox-open.pngbin0 -> 20164 bytes-rw-r--r--doc/src/diagrams/plastique-fontcombobox-open.zipbin0 -> 34573 bytes-rw-r--r--doc/src/diagrams/plastique-menu.pngbin0 -> 3044 bytes-rw-r--r--doc/src/diagrams/plastique-printdialog-properties.pngbin0 -> 13230 bytes-rw-r--r--doc/src/diagrams/plastique-printdialog.pngbin0 -> 19863 bytes-rw-r--r--doc/src/diagrams/plastique-sizegrip.pngbin0 -> 31932 bytes-rw-r--r--doc/src/diagrams/printer-rects.sk114
-rw-r--r--doc/src/diagrams/programs/mdiarea.py71
-rw-r--r--doc/src/diagrams/programs/qpen-dashpattern.py70
-rw-r--r--doc/src/diagrams/qactiongroup-align.pngbin0 -> 2787 bytes-rw-r--r--doc/src/diagrams/qcolor-cmyk.sk77
-rw-r--r--doc/src/diagrams/qcolor-hsv.sk77
-rw-r--r--doc/src/diagrams/qcolor-hue.sk71
-rw-r--r--doc/src/diagrams/qcolor-rgb.sk77
-rw-r--r--doc/src/diagrams/qcolor-saturation.sk26
-rw-r--r--doc/src/diagrams/qcolor-value.sk26
-rw-r--r--doc/src/diagrams/qfiledialog-expanded.pngbin0 -> 21291 bytes-rw-r--r--doc/src/diagrams/qfiledialog-small.pngbin0 -> 8979 bytes-rw-r--r--doc/src/diagrams/qframe-shapes-table.ui12964
-rw-r--r--doc/src/diagrams/qimage-32bit.sk18
-rw-r--r--doc/src/diagrams/qimage-8bit.sk50
-rw-r--r--doc/src/diagrams/qline-coordinates.sk61
-rw-r--r--doc/src/diagrams/qline-point.sk61
-rw-r--r--doc/src/diagrams/qlinef-angle-identicaldirection.sk28
-rw-r--r--doc/src/diagrams/qlinef-angle-oppositedirection.sk28
-rw-r--r--doc/src/diagrams/qlistview.pngbin0 -> 3826 bytes-rw-r--r--doc/src/diagrams/qmatrix.sk74
-rw-r--r--doc/src/diagrams/qpainter-pathstroking.pngbin0 -> 215825 bytes-rw-r--r--doc/src/diagrams/qrect-coordinates.sk102
-rw-r--r--doc/src/diagrams/qrect-diagram-one.sk69
-rw-r--r--doc/src/diagrams/qrect-diagram-three.sk67
-rw-r--r--doc/src/diagrams/qrect-diagram-two.sk67
-rw-r--r--doc/src/diagrams/qrect-diagram-zero.sk48
-rw-r--r--doc/src/diagrams/qrect-intersect.sk62
-rw-r--r--doc/src/diagrams/qrect-unite.sk63
-rw-r--r--doc/src/diagrams/qrectf-coordinates.sk102
-rw-r--r--doc/src/diagrams/qrectf-diagram-one.sk69
-rw-r--r--doc/src/diagrams/qrectf-diagram-three.sk67
-rw-r--r--doc/src/diagrams/qrectf-diagram-two.sk67
-rw-r--r--doc/src/diagrams/qstyleoptiontoolbar-position.sk125
-rw-r--r--doc/src/diagrams/qt-embedded-vnc-screen.pngbin0 -> 36094 bytes-rw-r--r--doc/src/diagrams/qtableview-resized.pngbin0 -> 21066 bytes-rw-r--r--doc/src/diagrams/qtableview-small.pngbin0 -> 17120 bytes-rw-r--r--doc/src/diagrams/qtableview-stretched.pngbin0 -> 17044 bytes-rw-r--r--doc/src/diagrams/qtableview.pngbin0 -> 7701 bytes-rw-r--r--doc/src/diagrams/qtconfig-appearance.pngbin0 -> 57484 bytes-rw-r--r--doc/src/diagrams/qtdemo-example.pngbin0 -> 66312 bytes-rw-r--r--doc/src/diagrams/qtdemo.pngbin0 -> 158843 bytes-rw-r--r--doc/src/diagrams/qtdesignerextensions.sk254
-rw-r--r--doc/src/diagrams/qtexttable-cells.sk107
-rw-r--r--doc/src/diagrams/qtexttableformat-cell.sk67
-rw-r--r--doc/src/diagrams/qtopiacore/architecture-emb.sk425
-rw-r--r--doc/src/diagrams/qtopiacore/clamshell-phone.pngbin0 -> 50799 bytes-rw-r--r--doc/src/diagrams/qtopiacore/launcher.pngbin0 -> 107532 bytes-rw-r--r--doc/src/diagrams/qtopiacore/qt-embedded-opengl1.sk410
-rw-r--r--doc/src/diagrams/qtopiacore/qt-embedded-opengl2.sk592
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-accelerateddriver.sk70
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-architecture-emb.svg257
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-architecture.sk136
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-characterinputlayer.sk118
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-client.sk51
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-clientrendering.sk166
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-clientservercommunication.sk130
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-drawingonscreen.sk144
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-opengl.sk38
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-pointerhandlinglayer.sk94
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-reserveregion.sk89
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-setwindowattribute.sk102
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-vanilla.sk43
-rw-r--r--doc/src/diagrams/qtreeview.pngbin0 -> 7490 bytes-rw-r--r--doc/src/diagrams/qtscript-calculator.pngbin0 -> 9015 bytes-rw-r--r--doc/src/diagrams/qtscript-context2d.pngbin0 -> 14722 bytes-rw-r--r--doc/src/diagrams/qtwizard-page.sk144
-rw-r--r--doc/src/diagrams/qwsserver_keyboardfilter.sk39
-rw-r--r--doc/src/diagrams/resources.sk125
-rw-r--r--doc/src/diagrams/shapedclock.sk46
-rw-r--r--doc/src/diagrams/sharedmodel-tableviews.zipbin0 -> 22069 bytes-rw-r--r--doc/src/diagrams/sharedselection-tableviews.zipbin0 -> 19208 bytes-rw-r--r--doc/src/diagrams/standard-views.sk16
-rw-r--r--doc/src/diagrams/standarddialogs-example.pngbin0 -> 38484 bytes-rw-r--r--doc/src/diagrams/standarddialogs-example.zipbin0 -> 47130 bytes-rw-r--r--doc/src/diagrams/stylesheet/coffee-plastique.pngbin0 -> 14902 bytes-rw-r--r--doc/src/diagrams/stylesheet/coffee-windows.pngbin0 -> 10399 bytes-rw-r--r--doc/src/diagrams/stylesheet/coffee-xp.pngbin0 -> 15249 bytes-rw-r--r--doc/src/diagrams/stylesheet/pagefold.pngbin0 -> 17797 bytes-rw-r--r--doc/src/diagrams/stylesheet/pagefold.svg1678
-rw-r--r--doc/src/diagrams/stylesheet/stylesheet-boxmodel.svg220
-rw-r--r--doc/src/diagrams/stylesheet/treeview.svg284
-rw-r--r--doc/src/diagrams/tcpstream.sk48
-rw-r--r--doc/src/diagrams/threadsandobjects.sk149
-rw-r--r--doc/src/diagrams/treemodel-structure.sk114
-rw-r--r--doc/src/diagrams/tutorial8-layout.sk55
-rw-r--r--doc/src/diagrams/udppackets.sk128
-rw-r--r--doc/src/diagrams/wVista-Cert-border.pngbin0 -> 20044 bytes-rw-r--r--doc/src/diagrams/widgetmapper/sql-widget-mapper.pngbin0 -> 11459 bytes-rw-r--r--doc/src/diagrams/widgetmapper/widgetmapper-sql-mapping.sk246
-rw-r--r--doc/src/diagrams/windowsxp-menu.pngbin0 -> 1060 bytes-rw-r--r--doc/src/diagrams/worldtimeclock-connection.zipbin0 -> 15307 bytes-rw-r--r--doc/src/diagrams/worldtimeclockplugin-example.zipbin0 -> 17816 bytes-rw-r--r--doc/src/diagrams/x11_dependencies.sk1416
-rw-r--r--doc/src/diagrams/xmlpatterns-qobjectxmlmodel.pngbin0 -> 52489 bytes-rw-r--r--doc/src/distributingqt.qdoc154
-rw-r--r--doc/src/dnd.qdoc543
-rw-r--r--doc/src/ecmascript.qdoc313
-rw-r--r--doc/src/editions.qdoc76
-rw-r--r--doc/src/emb-accel.qdoc143
-rw-r--r--doc/src/emb-charinput.qdoc126
-rw-r--r--doc/src/emb-crosscompiling.qdoc191
-rw-r--r--doc/src/emb-deployment.qdoc111
-rw-r--r--doc/src/emb-differences.qdoc72
-rw-r--r--doc/src/emb-envvars.qdoc168
-rw-r--r--doc/src/emb-features.qdoc147
-rw-r--r--doc/src/emb-fonts.qdoc201
-rw-r--r--doc/src/emb-framebuffer-howto.qdoc53
-rw-r--r--doc/src/emb-install.qdoc197
-rw-r--r--doc/src/emb-makeqpf.qdoc50
-rw-r--r--doc/src/emb-performance.qdoc152
-rw-r--r--doc/src/emb-pointer.qdoc216
-rw-r--r--doc/src/emb-porting.qdoc193
-rw-r--r--doc/src/emb-qvfb.qdoc296
-rw-r--r--doc/src/emb-running.qdoc210
-rw-r--r--doc/src/emb-vnc.qdoc141
-rw-r--r--doc/src/eventsandfilters.qdoc221
-rw-r--r--doc/src/examples-overview.qdoc348
-rw-r--r--doc/src/examples.qdoc402
-rw-r--r--doc/src/examples/2dpainting.qdoc224
-rw-r--r--doc/src/examples/activeqt/comapp.qdoc124
-rw-r--r--doc/src/examples/activeqt/dotnet.qdoc355
-rw-r--r--doc/src/examples/activeqt/hierarchy-demo.qdocinc43
-rw-r--r--doc/src/examples/activeqt/hierarchy.qdoc102
-rw-r--r--doc/src/examples/activeqt/menus.qdoc74
-rw-r--r--doc/src/examples/activeqt/multiple-demo.qdocinc39
-rw-r--r--doc/src/examples/activeqt/multiple.qdoc84
-rw-r--r--doc/src/examples/activeqt/opengl-demo.qdocinc27
-rw-r--r--doc/src/examples/activeqt/opengl.qdoc145
-rw-r--r--doc/src/examples/activeqt/qutlook.qdoc116
-rw-r--r--doc/src/examples/activeqt/simple-demo.qdocinc45
-rw-r--r--doc/src/examples/activeqt/simple.qdoc130
-rw-r--r--doc/src/examples/activeqt/webbrowser.qdoc87
-rw-r--r--doc/src/examples/activeqt/wrapper-demo.qdocinc51
-rw-r--r--doc/src/examples/activeqt/wrapper.qdoc77
-rw-r--r--doc/src/examples/addressbook.qdoc456
-rw-r--r--doc/src/examples/ahigl.qdoc572
-rw-r--r--doc/src/examples/analogclock.qdoc168
-rw-r--r--doc/src/examples/application.qdoc410
-rw-r--r--doc/src/examples/arrowpad.qdoc237
-rw-r--r--doc/src/examples/basicdrawing.qdoc468
-rw-r--r--doc/src/examples/basicgraphicslayouts.qdoc151
-rw-r--r--doc/src/examples/basiclayouts.qdoc204
-rw-r--r--doc/src/examples/basicsortfiltermodel.qdoc51
-rw-r--r--doc/src/examples/blockingfortuneclient.qdoc230
-rw-r--r--doc/src/examples/borderlayout.qdoc50
-rw-r--r--doc/src/examples/broadcastreceiver.qdoc50
-rw-r--r--doc/src/examples/broadcastsender.qdoc50
-rw-r--r--doc/src/examples/cachedtable.qdoc211
-rw-r--r--doc/src/examples/calculator.qdoc389
-rw-r--r--doc/src/examples/calculatorbuilder.qdoc133
-rw-r--r--doc/src/examples/calculatorform.qdoc126
-rw-r--r--doc/src/examples/calendar.qdoc237
-rw-r--r--doc/src/examples/calendarwidget.qdoc305
-rw-r--r--doc/src/examples/capabilitiesexample.qdoc171
-rw-r--r--doc/src/examples/charactermap.qdoc288
-rw-r--r--doc/src/examples/chart.qdoc96
-rw-r--r--doc/src/examples/classwizard.qdoc204
-rw-r--r--doc/src/examples/codecs.qdoc51
-rw-r--r--doc/src/examples/codeeditor.qdoc209
-rw-r--r--doc/src/examples/collidingmice-example.qdoc279
-rw-r--r--doc/src/examples/coloreditorfactory.qdoc169
-rw-r--r--doc/src/examples/combowidgetmapper.qdoc181
-rw-r--r--doc/src/examples/completer.qdoc255
-rw-r--r--doc/src/examples/complexpingpong.qdoc50
-rw-r--r--doc/src/examples/concentriccircles.qdoc245
-rw-r--r--doc/src/examples/configdialog.qdoc50
-rw-r--r--doc/src/examples/containerextension.qdoc518
-rw-r--r--doc/src/examples/context2d.qdoc353
-rw-r--r--doc/src/examples/customcompleter.qdoc201
-rw-r--r--doc/src/examples/customsortfiltermodel.qdoc303
-rw-r--r--doc/src/examples/customtype.qdoc157
-rw-r--r--doc/src/examples/customtypesending.qdoc128
-rw-r--r--doc/src/examples/customwidgetplugin.qdoc252
-rw-r--r--doc/src/examples/dbscreen.qdoc200
-rw-r--r--doc/src/examples/dbus-chat.qdoc50
-rw-r--r--doc/src/examples/dbus-listnames.qdoc47
-rw-r--r--doc/src/examples/dbus-pingpong.qdoc9
-rw-r--r--doc/src/examples/dbus-remotecontrolledcar.qdoc50
-rw-r--r--doc/src/examples/defaultprototypes.qdoc138
-rw-r--r--doc/src/examples/delayedencoding.qdoc125
-rw-r--r--doc/src/examples/diagramscene.qdoc846
-rw-r--r--doc/src/examples/digitalclock.qdoc88
-rw-r--r--doc/src/examples/dirview.qdoc50
-rw-r--r--doc/src/examples/dockwidgets.qdoc177
-rw-r--r--doc/src/examples/dombookmarks.qdoc54
-rw-r--r--doc/src/examples/draganddroppuzzle.qdoc56
-rw-r--r--doc/src/examples/dragdroprobot.qdoc51
-rw-r--r--doc/src/examples/draggableicons.qdoc104
-rw-r--r--doc/src/examples/draggabletext.qdoc50
-rw-r--r--doc/src/examples/drilldown.qdoc552
-rw-r--r--doc/src/examples/dropsite.qdoc263
-rw-r--r--doc/src/examples/dynamiclayouts.qdoc48
-rw-r--r--doc/src/examples/echoplugin.qdoc222
-rw-r--r--doc/src/examples/editabletreemodel.qdoc459
-rw-r--r--doc/src/examples/elasticnodes.qdoc49
-rw-r--r--doc/src/examples/extension.qdoc153
-rw-r--r--doc/src/examples/fetchmore.qdoc84
-rw-r--r--doc/src/examples/filetree.qdoc421
-rw-r--r--doc/src/examples/findfiles.qdoc263
-rw-r--r--doc/src/examples/flowlayout.qdoc50
-rw-r--r--doc/src/examples/fontsampler.qdoc49
-rw-r--r--doc/src/examples/formextractor.qdoc51
-rw-r--r--doc/src/examples/fortuneclient.qdoc174
-rw-r--r--doc/src/examples/fortuneserver.qdoc119
-rw-r--r--doc/src/examples/framebufferobject.qdoc51
-rw-r--r--doc/src/examples/framebufferobject2.qdoc51
-rw-r--r--doc/src/examples/fridgemagnets.qdoc374
-rw-r--r--doc/src/examples/ftp.qdoc211
-rw-r--r--doc/src/examples/globalVariables.qdoc238
-rw-r--r--doc/src/examples/grabber.qdoc49
-rw-r--r--doc/src/examples/groupbox.qdoc154
-rw-r--r--doc/src/examples/hellogl.qdoc272
-rw-r--r--doc/src/examples/hellogl_es.qdoc124
-rw-r--r--doc/src/examples/helloscript.qdoc142
-rw-r--r--doc/src/examples/hellotr.qdoc188
-rw-r--r--doc/src/examples/http.qdoc50
-rw-r--r--doc/src/examples/i18n.qdoc51
-rw-r--r--doc/src/examples/icons.qdoc794
-rw-r--r--doc/src/examples/imagecomposition.qdoc179
-rw-r--r--doc/src/examples/imageviewer.qdoc340
-rw-r--r--doc/src/examples/itemviewspuzzle.qdoc57
-rw-r--r--doc/src/examples/licensewizard.qdoc232
-rw-r--r--doc/src/examples/lineedits.qdoc175
-rw-r--r--doc/src/examples/localfortuneclient.qdoc52
-rw-r--r--doc/src/examples/localfortuneserver.qdoc51
-rw-r--r--doc/src/examples/loopback.qdoc50
-rw-r--r--doc/src/examples/mandelbrot.qdoc382
-rw-r--r--doc/src/examples/masterdetail.qdoc57
-rw-r--r--doc/src/examples/mdi.qdoc51
-rw-r--r--doc/src/examples/menus.qdoc232
-rw-r--r--doc/src/examples/mousecalibration.qdoc207
-rw-r--r--doc/src/examples/movie.qdoc53
-rw-r--r--doc/src/examples/multipleinheritance.qdoc108
-rw-r--r--doc/src/examples/musicplayerexample.qdoc248
-rw-r--r--doc/src/examples/network-chat.qdoc51
-rw-r--r--doc/src/examples/orderform.qdoc378
-rw-r--r--doc/src/examples/overpainting.qdoc249
-rw-r--r--doc/src/examples/padnavigator.qdoc51
-rw-r--r--doc/src/examples/painterpaths.qdoc432
-rw-r--r--doc/src/examples/pbuffers.qdoc51
-rw-r--r--doc/src/examples/pbuffers2.qdoc51
-rw-r--r--doc/src/examples/pixelator.qdoc271
-rw-r--r--doc/src/examples/plugandpaint.qdoc554
-rw-r--r--doc/src/examples/portedasteroids.qdoc50
-rw-r--r--doc/src/examples/portedcanvas.qdoc52
-rw-r--r--doc/src/examples/previewer.qdoc181
-rw-r--r--doc/src/examples/qobjectxmlmodel.qdoc353
-rw-r--r--doc/src/examples/qtconcurrent-imagescaling.qdoc48
-rw-r--r--doc/src/examples/qtconcurrent-map.qdoc48
-rw-r--r--doc/src/examples/qtconcurrent-progressdialog.qdoc50
-rw-r--r--doc/src/examples/qtconcurrent-runfunction.qdoc49
-rw-r--r--doc/src/examples/qtconcurrent-wordcount.qdoc49
-rw-r--r--doc/src/examples/qtscriptcalculator.qdoc105
-rw-r--r--doc/src/examples/qtscriptcustomclass.qdoc198
-rw-r--r--doc/src/examples/qtscripttetrix.qdoc92
-rw-r--r--doc/src/examples/querymodel.qdoc51
-rw-r--r--doc/src/examples/queuedcustomtype.qdoc177
-rw-r--r--doc/src/examples/qxmlstreambookmarks.qdoc200
-rw-r--r--doc/src/examples/recentfiles.qdoc50
-rw-r--r--doc/src/examples/recipes.qdoc164
-rw-r--r--doc/src/examples/regexp.qdoc51
-rw-r--r--doc/src/examples/relationaltablemodel.qdoc50
-rw-r--r--doc/src/examples/remotecontrol.qdoc48
-rw-r--r--doc/src/examples/rsslisting.qdoc50
-rw-r--r--doc/src/examples/samplebuffers.qdoc50
-rw-r--r--doc/src/examples/saxbookmarks.qdoc54
-rw-r--r--doc/src/examples/screenshot.qdoc262
-rw-r--r--doc/src/examples/scribble.qdoc432
-rw-r--r--doc/src/examples/sdi.qdoc50
-rw-r--r--doc/src/examples/securesocketclient.qdoc53
-rw-r--r--doc/src/examples/semaphores.qdoc159
-rw-r--r--doc/src/examples/settingseditor.qdoc51
-rw-r--r--doc/src/examples/shapedclock.qdoc145
-rw-r--r--doc/src/examples/sharedmemory.qdoc142
-rw-r--r--doc/src/examples/simpledecoration.qdoc266
-rw-r--r--doc/src/examples/simpledommodel.qdoc294
-rw-r--r--doc/src/examples/simpletextviewer.qdoc466
-rw-r--r--doc/src/examples/simpletreemodel.qdoc346
-rw-r--r--doc/src/examples/simplewidgetmapper.qdoc139
-rw-r--r--doc/src/examples/sipdialog.qdoc141
-rw-r--r--doc/src/examples/sliders.qdoc269
-rw-r--r--doc/src/examples/spinboxdelegate.qdoc151
-rw-r--r--doc/src/examples/spinboxes.qdoc205
-rw-r--r--doc/src/examples/sqlwidgetmapper.qdoc199
-rw-r--r--doc/src/examples/standarddialogs.qdoc49
-rw-r--r--doc/src/examples/stardelegate.qdoc310
-rw-r--r--doc/src/examples/styleplugin.qdoc147
-rw-r--r--doc/src/examples/styles.qdoc486
-rw-r--r--doc/src/examples/stylesheet.qdoc50
-rw-r--r--doc/src/examples/svgalib.qdoc360
-rw-r--r--doc/src/examples/svgviewer.qdoc60
-rw-r--r--doc/src/examples/syntaxhighlighter.qdoc256
-rw-r--r--doc/src/examples/systray.qdoc197
-rw-r--r--doc/src/examples/tabdialog.qdoc148
-rw-r--r--doc/src/examples/tablemodel.qdoc50
-rw-r--r--doc/src/examples/tablet.qdoc380
-rw-r--r--doc/src/examples/taskmenuextension.qdoc457
-rw-r--r--doc/src/examples/tetrix.qdoc445
-rw-r--r--doc/src/examples/textfinder.qdoc173
-rw-r--r--doc/src/examples/textobject.qdoc170
-rw-r--r--doc/src/examples/textures.qdoc50
-rw-r--r--doc/src/examples/threadedfortuneserver.qdoc121
-rw-r--r--doc/src/examples/tooltips.qdoc408
-rw-r--r--doc/src/examples/torrent.qdoc83
-rw-r--r--doc/src/examples/trafficinfo.qdoc163
-rw-r--r--doc/src/examples/transformations.qdoc385
-rw-r--r--doc/src/examples/treemodelcompleter.qdoc185
-rw-r--r--doc/src/examples/trivialwizard.qdoc96
-rw-r--r--doc/src/examples/trollprint.qdoc275
-rw-r--r--doc/src/examples/undoframework.qdoc306
-rw-r--r--doc/src/examples/waitconditions.qdoc166
-rw-r--r--doc/src/examples/wiggly.qdoc181
-rw-r--r--doc/src/examples/windowflags.qdoc230
-rw-r--r--doc/src/examples/worldtimeclockbuilder.qdoc111
-rw-r--r--doc/src/examples/worldtimeclockplugin.qdoc210
-rw-r--r--doc/src/examples/xmlstreamlint.qdoc86
-rw-r--r--doc/src/exportedfunctions.qdoc136
-rw-r--r--doc/src/external-resources.qdoc349
-rw-r--r--doc/src/focus.qdoc213
-rw-r--r--doc/src/functions.qdoc63
-rw-r--r--doc/src/gallery-cde.qdoc392
-rw-r--r--doc/src/gallery-cleanlooks.qdoc392
-rw-r--r--doc/src/gallery-gtk.qdoc358
-rw-r--r--doc/src/gallery-macintosh.qdoc392
-rw-r--r--doc/src/gallery-motif.qdoc392
-rw-r--r--doc/src/gallery-plastique.qdoc392
-rw-r--r--doc/src/gallery-windows.qdoc392
-rw-r--r--doc/src/gallery-windowsvista.qdoc392
-rw-r--r--doc/src/gallery-windowsxp.qdoc392
-rw-r--r--doc/src/gallery.qdoc151
-rw-r--r--doc/src/geometry.qdoc150
-rw-r--r--doc/src/gpl.qdoc84
-rw-r--r--doc/src/graphicsview.qdoc544
-rw-r--r--doc/src/groups.qdoc599
-rw-r--r--doc/src/guibooks.qdoc121
-rw-r--r--doc/src/hierarchy.qdoc52
-rw-r--r--doc/src/how-to-learn-qt.qdoc115
-rw-r--r--doc/src/i18n.qdoc508
-rw-r--r--doc/src/images/2dpainting-example.pngbin0 -> 32682 bytes-rw-r--r--doc/src/images/abstract-connections.pngbin0 -> 19849 bytes-rw-r--r--doc/src/images/accessibilityarchitecture.pngbin0 -> 6871 bytes-rw-r--r--doc/src/images/accessibleobjecttree.pngbin0 -> 3306 bytes-rw-r--r--doc/src/images/addressbook-adddialog.pngbin0 -> 27516 bytes-rw-r--r--doc/src/images/addressbook-classes.pngbin0 -> 2685 bytes-rw-r--r--doc/src/images/addressbook-editdialog.pngbin0 -> 8669 bytes-rw-r--r--doc/src/images/addressbook-example.pngbin0 -> 12388 bytes-rw-r--r--doc/src/images/addressbook-filemenu.pngbin0 -> 20278 bytes-rw-r--r--doc/src/images/addressbook-newaddresstab.pngbin0 -> 12556 bytes-rw-r--r--doc/src/images/addressbook-signals.pngbin0 -> 4713 bytes-rw-r--r--doc/src/images/addressbook-toolsmenu.pngbin0 -> 20979 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part1-labeled-layout.pngbin0 -> 20739 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part1-labeled-screenshot.pngbin0 -> 26594 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part1-screenshot.pngbin0 -> 7180 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part2-add-contact.pngbin0 -> 10255 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part2-add-flowchart.pngbin0 -> 23533 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part2-add-successful.pngbin0 -> 8089 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part2-labeled-layout.pngbin0 -> 31947 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part2-signals-and-slots.pngbin0 -> 9968 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part2-stretch-effects.pngbin0 -> 12268 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part3-labeled-layout.pngbin0 -> 39500 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part3-linkedlist.pngbin0 -> 10209 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part3-screenshot.pngbin0 -> 10460 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part4-remove.pngbin0 -> 13860 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part5-finddialog.pngbin0 -> 6982 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part5-notfound.pngbin0 -> 8177 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part5-screenshot.pngbin0 -> 12557 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part5-signals-and-slots.pngbin0 -> 5542 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part6-load.pngbin0 -> 40623 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part6-save.pngbin0 -> 40406 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part6-screenshot.pngbin0 -> 13598 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part7-screenshot.pngbin0 -> 14822 bytes-rw-r--r--doc/src/images/addressbook-tutorial-screenshot.pngbin0 -> 11916 bytes-rw-r--r--doc/src/images/addressbook-tutorial.pngbin0 -> 11481 bytes-rw-r--r--doc/src/images/affine-demo.pngbin0 -> 63959 bytes-rw-r--r--doc/src/images/alphachannelimage.pngbin0 -> 4105 bytes-rw-r--r--doc/src/images/alphafill.pngbin0 -> 156 bytes-rw-r--r--doc/src/images/analogclock-example.pngbin0 -> 2383 bytes-rw-r--r--doc/src/images/analogclock-viewport.pngbin0 -> 29668 bytes-rw-r--r--doc/src/images/antialiased.pngbin0 -> 398 bytes-rw-r--r--doc/src/images/application-menus.pngbin0 -> 8864 bytes-rw-r--r--doc/src/images/application.pngbin0 -> 26272 bytes-rw-r--r--doc/src/images/arthurplugin-demo.pngbin0 -> 77481 bytes-rw-r--r--doc/src/images/assistant-address-toolbar.pngbin0 -> 3130 bytes-rw-r--r--doc/src/images/assistant-assistant.pngbin0 -> 119764 bytes-rw-r--r--doc/src/images/assistant-dockwidgets.pngbin0 -> 50554 bytes-rw-r--r--doc/src/images/assistant-docwindow.pngbin0 -> 55582 bytes-rw-r--r--doc/src/images/assistant-examples.pngbin0 -> 9799 bytes-rw-r--r--doc/src/images/assistant-filter-toolbar.pngbin0 -> 1939 bytes-rw-r--r--doc/src/images/assistant-preferences-documentation.pngbin0 -> 21663 bytes-rw-r--r--doc/src/images/assistant-preferences-filters.pngbin0 -> 23997 bytes-rw-r--r--doc/src/images/assistant-preferences-fonts.pngbin0 -> 19652 bytes-rw-r--r--doc/src/images/assistant-preferences-options.pngbin0 -> 20264 bytes-rw-r--r--doc/src/images/assistant-search.pngbin0 -> 59254 bytes-rw-r--r--doc/src/images/assistant-toolbar.pngbin0 -> 6532 bytes-rw-r--r--doc/src/images/basicdrawing-example.pngbin0 -> 19371 bytes-rw-r--r--doc/src/images/basicgraphicslayouts-example.pngbin0 -> 119062 bytes-rw-r--r--doc/src/images/basiclayouts-example.pngbin0 -> 28406 bytes-rw-r--r--doc/src/images/basicsortfiltermodel-example.pngbin0 -> 81912 bytes-rw-r--r--doc/src/images/bearings.pngbin0 -> 1133 bytes-rw-r--r--doc/src/images/blockingfortuneclient-example.pngbin0 -> 9199 bytes-rw-r--r--doc/src/images/books-demo.pngbin0 -> 29155 bytes-rw-r--r--doc/src/images/borderlayout-example.pngbin0 -> 6163 bytes-rw-r--r--doc/src/images/boxes-demo.pngbin0 -> 216134 bytes-rw-r--r--doc/src/images/broadcastreceiver-example.pngbin0 -> 7447 bytes-rw-r--r--doc/src/images/broadcastsender-example.pngbin0 -> 5688 bytes-rw-r--r--doc/src/images/browser-demo.pngbin0 -> 157205 bytes-rw-r--r--doc/src/images/brush-outline.pngbin0 -> 452 bytes-rw-r--r--doc/src/images/brush-styles.pngbin0 -> 13980 bytes-rw-r--r--doc/src/images/buttonbox-gnomelayout-horizontal.pngbin0 -> 4188 bytes-rw-r--r--doc/src/images/buttonbox-gnomelayout-vertical.pngbin0 -> 5027 bytes-rw-r--r--doc/src/images/buttonbox-kdelayout-horizontal.pngbin0 -> 2862 bytes-rw-r--r--doc/src/images/buttonbox-kdelayout-vertical.pngbin0 -> 3298 bytes-rw-r--r--doc/src/images/buttonbox-mac-modeless-horizontal.pngbin0 -> 4123 bytes-rw-r--r--doc/src/images/buttonbox-mac-modeless-vertical.pngbin0 -> 5177 bytes-rw-r--r--doc/src/images/buttonbox-maclayout-horizontal.pngbin0 -> 5409 bytes-rw-r--r--doc/src/images/buttonbox-maclayout-vertical.pngbin0 -> 7340 bytes-rw-r--r--doc/src/images/buttonbox-winlayout-horizontal.pngbin0 -> 2780 bytes-rw-r--r--doc/src/images/buttonbox-winlayout-vertical.pngbin0 -> 3184 bytes-rw-r--r--doc/src/images/cachedtable-example.pngbin0 -> 15908 bytes-rw-r--r--doc/src/images/calculator-example.pngbin0 -> 10742 bytes-rw-r--r--doc/src/images/calculator-ugly.pngbin0 -> 9774 bytes-rw-r--r--doc/src/images/calculatorbuilder-example.pngbin0 -> 4326 bytes-rw-r--r--doc/src/images/calculatorform-example.pngbin0 -> 3967 bytes-rw-r--r--doc/src/images/calendar-example.pngbin0 -> 13539 bytes-rw-r--r--doc/src/images/calendarwidgetexample.pngbin0 -> 38434 bytes-rw-r--r--doc/src/images/cannon-tutorial.pngbin0 -> 1237 bytes-rw-r--r--doc/src/images/capabilitiesexample.pngbin0 -> 18955 bytes-rw-r--r--doc/src/images/cde-calendarwidget.pngbin0 -> 10187 bytes-rw-r--r--doc/src/images/cde-checkbox.pngbin0 -> 1331 bytes-rw-r--r--doc/src/images/cde-combobox.pngbin0 -> 1269 bytes-rw-r--r--doc/src/images/cde-dateedit.pngbin0 -> 1183 bytes-rw-r--r--doc/src/images/cde-datetimeedit.pngbin0 -> 1701 bytes-rw-r--r--doc/src/images/cde-dial.pngbin0 -> 4481 bytes-rw-r--r--doc/src/images/cde-doublespinbox.pngbin0 -> 1007 bytes-rw-r--r--doc/src/images/cde-fontcombobox.pngbin0 -> 1603 bytes-rw-r--r--doc/src/images/cde-frame.pngbin0 -> 2976 bytes-rw-r--r--doc/src/images/cde-groupbox.pngbin0 -> 2592 bytes-rw-r--r--doc/src/images/cde-horizontalscrollbar.pngbin0 -> 569 bytes-rw-r--r--doc/src/images/cde-label.pngbin0 -> 1043 bytes-rw-r--r--doc/src/images/cde-lcdnumber.pngbin0 -> 538 bytes-rw-r--r--doc/src/images/cde-lineedit.pngbin0 -> 1355 bytes-rw-r--r--doc/src/images/cde-listview.pngbin0 -> 5166 bytes-rw-r--r--doc/src/images/cde-progressbar.pngbin0 -> 934 bytes-rw-r--r--doc/src/images/cde-pushbutton.pngbin0 -> 1099 bytes-rw-r--r--doc/src/images/cde-radiobutton.pngbin0 -> 1562 bytes-rw-r--r--doc/src/images/cde-slider.pngbin0 -> 526 bytes-rw-r--r--doc/src/images/cde-spinbox.pngbin0 -> 863 bytes-rw-r--r--doc/src/images/cde-tableview.pngbin0 -> 2467 bytes-rw-r--r--doc/src/images/cde-tabwidget.pngbin0 -> 2483 bytes-rw-r--r--doc/src/images/cde-textedit.pngbin0 -> 7374 bytes-rw-r--r--doc/src/images/cde-timeedit.pngbin0 -> 1248 bytes-rw-r--r--doc/src/images/cde-toolbox.pngbin0 -> 1813 bytes-rw-r--r--doc/src/images/cde-toolbutton.pngbin0 -> 1169 bytes-rw-r--r--doc/src/images/cde-treeview.pngbin0 -> 6703 bytes-rw-r--r--doc/src/images/charactermap-example.pngbin0 -> 27937 bytes-rw-r--r--doc/src/images/chart-example.pngbin0 -> 51979 bytes-rw-r--r--doc/src/images/chip-demo.pngbin0 -> 223121 bytes-rw-r--r--doc/src/images/classwizard-flow.pngbin0 -> 9745 bytes-rw-r--r--doc/src/images/classwizard.pngbin0 -> 8348 bytes-rw-r--r--doc/src/images/cleanlooks-calendarwidget.pngbin0 -> 9748 bytes-rw-r--r--doc/src/images/cleanlooks-checkbox.pngbin0 -> 1416 bytes-rw-r--r--doc/src/images/cleanlooks-combobox.pngbin0 -> 2348 bytes-rw-r--r--doc/src/images/cleanlooks-dateedit.pngbin0 -> 1369 bytes-rw-r--r--doc/src/images/cleanlooks-datetimeedit.pngbin0 -> 1892 bytes-rw-r--r--doc/src/images/cleanlooks-dial.pngbin0 -> 4297 bytes-rw-r--r--doc/src/images/cleanlooks-dialogbuttonbox.pngbin0 -> 2293 bytes-rw-r--r--doc/src/images/cleanlooks-doublespinbox.pngbin0 -> 1141 bytes-rw-r--r--doc/src/images/cleanlooks-fontcombobox.pngbin0 -> 1835 bytes-rw-r--r--doc/src/images/cleanlooks-frame.pngbin0 -> 2989 bytes-rw-r--r--doc/src/images/cleanlooks-groupbox.pngbin0 -> 2630 bytes-rw-r--r--doc/src/images/cleanlooks-horizontalscrollbar.pngbin0 -> 837 bytes-rw-r--r--doc/src/images/cleanlooks-label.pngbin0 -> 1043 bytes-rw-r--r--doc/src/images/cleanlooks-lcdnumber.pngbin0 -> 538 bytes-rw-r--r--doc/src/images/cleanlooks-lineedit.pngbin0 -> 1406 bytes-rw-r--r--doc/src/images/cleanlooks-listview.pngbin0 -> 5559 bytes-rw-r--r--doc/src/images/cleanlooks-progressbar.pngbin0 -> 1292 bytes-rw-r--r--doc/src/images/cleanlooks-pushbutton-menu.pngbin0 -> 3177 bytes-rw-r--r--doc/src/images/cleanlooks-pushbutton.pngbin0 -> 1332 bytes-rw-r--r--doc/src/images/cleanlooks-radiobutton.pngbin0 -> 1782 bytes-rw-r--r--doc/src/images/cleanlooks-slider.pngbin0 -> 671 bytes-rw-r--r--doc/src/images/cleanlooks-spinbox.pngbin0 -> 983 bytes-rw-r--r--doc/src/images/cleanlooks-tableview.pngbin0 -> 2465 bytes-rw-r--r--doc/src/images/cleanlooks-tabwidget.pngbin0 -> 5007 bytes-rw-r--r--doc/src/images/cleanlooks-textedit.pngbin0 -> 7560 bytes-rw-r--r--doc/src/images/cleanlooks-timeedit.pngbin0 -> 1388 bytes-rw-r--r--doc/src/images/cleanlooks-toolbox.pngbin0 -> 1445 bytes-rw-r--r--doc/src/images/cleanlooks-toolbutton.pngbin0 -> 1469 bytes-rw-r--r--doc/src/images/cleanlooks-treeview.pngbin0 -> 6981 bytes-rw-r--r--doc/src/images/codecs-example.pngbin0 -> 20593 bytes-rw-r--r--doc/src/images/codeeditor-example.pngbin0 -> 9202 bytes-rw-r--r--doc/src/images/collidingmice-example.pngbin0 -> 59824 bytes-rw-r--r--doc/src/images/coloreditorfactoryimage.pngbin0 -> 12209 bytes-rw-r--r--doc/src/images/combo-widget-mapper.pngbin0 -> 10801 bytes-rw-r--r--doc/src/images/completer-example-country.pngbin0 -> 12387 bytes-rw-r--r--doc/src/images/completer-example-dirmodel.pngbin0 -> 14389 bytes-rw-r--r--doc/src/images/completer-example-qdirmodel.pngbin0 -> 13896 bytes-rw-r--r--doc/src/images/completer-example-word.pngbin0 -> 11702 bytes-rw-r--r--doc/src/images/completer-example.pngbin0 -> 10486 bytes-rw-r--r--doc/src/images/complexwizard-detailspage.pngbin0 -> 3525 bytes-rw-r--r--doc/src/images/complexwizard-evaluatepage.pngbin0 -> 4324 bytes-rw-r--r--doc/src/images/complexwizard-finishpage.pngbin0 -> 4640 bytes-rw-r--r--doc/src/images/complexwizard-flow.pngbin0 -> 32766 bytes-rw-r--r--doc/src/images/complexwizard-registerpage.pngbin0 -> 4326 bytes-rw-r--r--doc/src/images/complexwizard-titlepage.pngbin0 -> 4952 bytes-rw-r--r--doc/src/images/complexwizard.pngbin0 -> 4952 bytes-rw-r--r--doc/src/images/composition-demo.pngbin0 -> 210701 bytes-rw-r--r--doc/src/images/concentriccircles-example.pngbin0 -> 29623 bytes-rw-r--r--doc/src/images/conceptaudio.pngbin0 -> 10708 bytes-rw-r--r--doc/src/images/conceptprocessor.png1
-rw-r--r--doc/src/images/conceptvideo.pngbin0 -> 15989 bytes-rw-r--r--doc/src/images/configdialog-example.pngbin0 -> 35741 bytes-rw-r--r--doc/src/images/conicalGradient.pngbin0 -> 5152 bytes-rw-r--r--doc/src/images/containerextension-example.pngbin0 -> 43032 bytes-rw-r--r--doc/src/images/context2d-example-smileysmile.pngbin0 -> 3457 bytes-rw-r--r--doc/src/images/context2d-example.pngbin0 -> 14160 bytes-rw-r--r--doc/src/images/coordinatesystem-analogclock.pngbin0 -> 9762 bytes-rw-r--r--doc/src/images/coordinatesystem-line-antialias.pngbin0 -> 17979 bytes-rw-r--r--doc/src/images/coordinatesystem-line-raster.pngbin0 -> 18152 bytes-rw-r--r--doc/src/images/coordinatesystem-line.pngbin0 -> 26694 bytes-rw-r--r--doc/src/images/coordinatesystem-rect-antialias.pngbin0 -> 19058 bytes-rw-r--r--doc/src/images/coordinatesystem-rect-raster.pngbin0 -> 18455 bytes-rw-r--r--doc/src/images/coordinatesystem-rect.pngbin0 -> 32307 bytes-rw-r--r--doc/src/images/coordinatesystem-transformations.pngbin0 -> 59180 bytes-rw-r--r--doc/src/images/coordsys.pngbin0 -> 718 bytes-rw-r--r--doc/src/images/cursor-arrow.pngbin0 -> 171 bytes-rw-r--r--doc/src/images/cursor-busy.pngbin0 -> 201 bytes-rw-r--r--doc/src/images/cursor-closedhand.pngbin0 -> 147 bytes-rw-r--r--doc/src/images/cursor-cross.pngbin0 -> 130 bytes-rw-r--r--doc/src/images/cursor-forbidden.pngbin0 -> 199 bytes-rw-r--r--doc/src/images/cursor-hand.pngbin0 -> 159 bytes-rw-r--r--doc/src/images/cursor-hsplit.pngbin0 -> 161 bytes-rw-r--r--doc/src/images/cursor-ibeam.pngbin0 -> 124 bytes-rw-r--r--doc/src/images/cursor-openhand.pngbin0 -> 160 bytes-rw-r--r--doc/src/images/cursor-sizeall.pngbin0 -> 174 bytes-rw-r--r--doc/src/images/cursor-sizeb.pngbin0 -> 161 bytes-rw-r--r--doc/src/images/cursor-sizef.pngbin0 -> 161 bytes-rw-r--r--doc/src/images/cursor-sizeh.pngbin0 -> 145 bytes-rw-r--r--doc/src/images/cursor-sizev.pngbin0 -> 141 bytes-rw-r--r--doc/src/images/cursor-uparrow.pngbin0 -> 132 bytes-rw-r--r--doc/src/images/cursor-vsplit.pngbin0 -> 155 bytes-rw-r--r--doc/src/images/cursor-wait.pngbin0 -> 172 bytes-rw-r--r--doc/src/images/cursor-whatsthis.pngbin0 -> 191 bytes-rw-r--r--doc/src/images/customcompleter-example.pngbin0 -> 11636 bytes-rw-r--r--doc/src/images/customcompleter-insertcompletion.pngbin0 -> 1371 bytes-rw-r--r--doc/src/images/customsortfiltermodel-example.pngbin0 -> 74359 bytes-rw-r--r--doc/src/images/customtypesending-example.pngbin0 -> 13305 bytes-rw-r--r--doc/src/images/customwidgetplugin-example.pngbin0 -> 2175 bytes-rw-r--r--doc/src/images/datetimewidgets.pngbin0 -> 6434 bytes-rw-r--r--doc/src/images/dbus-chat-example.pngbin0 -> 38530 bytes-rw-r--r--doc/src/images/defaultprototypes-example.pngbin0 -> 5840 bytes-rw-r--r--doc/src/images/deform-demo.pngbin0 -> 88656 bytes-rw-r--r--doc/src/images/delayedecoding-example.pngbin0 -> 22793 bytes-rw-r--r--doc/src/images/deployment-mac-application.pngbin0 -> 88074 bytes-rw-r--r--doc/src/images/deployment-mac-bundlestructure.pngbin0 -> 37382 bytes-rw-r--r--doc/src/images/deployment-windows-depends.pngbin0 -> 106931 bytes-rw-r--r--doc/src/images/designer-action-editor.pngbin0 -> 46233 bytes-rw-r--r--doc/src/images/designer-add-custom-toolbar.pngbin0 -> 940 bytes-rw-r--r--doc/src/images/designer-add-files-button.pngbin0 -> 1130 bytes-rw-r--r--doc/src/images/designer-add-resource-entry-button.pngbin0 -> 899 bytes-rw-r--r--doc/src/images/designer-adding-dockwidget.pngbin0 -> 7138 bytes-rw-r--r--doc/src/images/designer-adding-dynamic-property.pngbin0 -> 9658 bytes-rw-r--r--doc/src/images/designer-adding-menu-action.pngbin0 -> 6168 bytes-rw-r--r--doc/src/images/designer-adding-toolbar-action.pngbin0 -> 5644 bytes-rw-r--r--doc/src/images/designer-buddy-making.pngbin0 -> 8885 bytes-rw-r--r--doc/src/images/designer-buddy-mode.pngbin0 -> 8008 bytes-rw-r--r--doc/src/images/designer-buddy-tool.pngbin0 -> 2046 bytes-rw-r--r--doc/src/images/designer-choosing-form.pngbin0 -> 38078 bytes-rw-r--r--doc/src/images/designer-code-viewer.pngbin0 -> 107457 bytes-rw-r--r--doc/src/images/designer-connection-dialog.pngbin0 -> 31669 bytes-rw-r--r--doc/src/images/designer-connection-editing.pngbin0 -> 9350 bytes-rw-r--r--doc/src/images/designer-connection-editor.pngbin0 -> 8650 bytes-rw-r--r--doc/src/images/designer-connection-highlight.pngbin0 -> 5297 bytes-rw-r--r--doc/src/images/designer-connection-making.pngbin0 -> 6869 bytes-rw-r--r--doc/src/images/designer-connection-mode.pngbin0 -> 9727 bytes-rw-r--r--doc/src/images/designer-connection-to-form.pngbin0 -> 4504 bytes-rw-r--r--doc/src/images/designer-connection-tool.pngbin0 -> 1989 bytes-rw-r--r--doc/src/images/designer-containers-dockwidget.pngbin0 -> 3259 bytes-rw-r--r--doc/src/images/designer-containers-frame.pngbin0 -> 744 bytes-rw-r--r--doc/src/images/designer-containers-groupbox.pngbin0 -> 1969 bytes-rw-r--r--doc/src/images/designer-containers-stackedwidget.pngbin0 -> 2192 bytes-rw-r--r--doc/src/images/designer-containers-tabwidget.pngbin0 -> 1681 bytes-rw-r--r--doc/src/images/designer-containers-toolbox.pngbin0 -> 6279 bytes-rw-r--r--doc/src/images/designer-creating-dynamic-property.pngbin0 -> 8640 bytes-rw-r--r--doc/src/images/designer-creating-menu-entry1.pngbin0 -> 5397 bytes-rw-r--r--doc/src/images/designer-creating-menu-entry2.pngbin0 -> 5479 bytes-rw-r--r--doc/src/images/designer-creating-menu-entry3.pngbin0 -> 6097 bytes-rw-r--r--doc/src/images/designer-creating-menu-entry4.pngbin0 -> 7307 bytes-rw-r--r--doc/src/images/designer-creating-menu.pngbin0 -> 2806 bytes-rw-r--r--doc/src/images/designer-creating-menu1.pngbin0 -> 2733 bytes-rw-r--r--doc/src/images/designer-creating-menu2.pngbin0 -> 2806 bytes-rw-r--r--doc/src/images/designer-creating-menu3.pngbin0 -> 2587 bytes-rw-r--r--doc/src/images/designer-creating-menu4.pngbin0 -> 2897 bytes-rw-r--r--doc/src/images/designer-creating-menubar.pngbin0 -> 7687 bytes-rw-r--r--doc/src/images/designer-custom-widget-box.pngbin0 -> 10330 bytes-rw-r--r--doc/src/images/designer-customize-toolbar.pngbin0 -> 98083 bytes-rw-r--r--doc/src/images/designer-dialog-final.pngbin0 -> 7464 bytes-rw-r--r--doc/src/images/designer-dialog-initial.pngbin0 -> 26582 bytes-rw-r--r--doc/src/images/designer-dialog-layout.pngbin0 -> 18892 bytes-rw-r--r--doc/src/images/designer-dialog-preview.pngbin0 -> 11766 bytes-rw-r--r--doc/src/images/designer-disambiguation.pngbin0 -> 5844 bytes-rw-r--r--doc/src/images/designer-dragging-onto-form.pngbin0 -> 6291 bytes-rw-r--r--doc/src/images/designer-edit-resource.pngbin0 -> 18989 bytes-rw-r--r--doc/src/images/designer-edit-resources-button.pngbin0 -> 850 bytes-rw-r--r--doc/src/images/designer-editing-mode.pngbin0 -> 8131 bytes-rw-r--r--doc/src/images/designer-embedded-preview.pngbin0 -> 6494 bytes-rw-r--r--doc/src/images/designer-english-dialog.pngbin0 -> 22253 bytes-rw-r--r--doc/src/images/designer-examples.pngbin0 -> 8936 bytes-rw-r--r--doc/src/images/designer-file-menu.pngbin0 -> 4992 bytes-rw-r--r--doc/src/images/designer-find-icon.pngbin0 -> 52951 bytes-rw-r--r--doc/src/images/designer-form-layout-cleanlooks.pngbin0 -> 8296 bytes-rw-r--r--doc/src/images/designer-form-layout-macintosh.pngbin0 -> 6720 bytes-rw-r--r--doc/src/images/designer-form-layout-windowsXP.pngbin0 -> 8269 bytes-rw-r--r--doc/src/images/designer-form-layout.pngbin0 -> 8065 bytes-rw-r--r--doc/src/images/designer-form-layoutfunction.pngbin0 -> 6890 bytes-rw-r--r--doc/src/images/designer-form-settings.pngbin0 -> 15262 bytes-rw-r--r--doc/src/images/designer-form-viewcode.pngbin0 -> 21674 bytes-rw-r--r--doc/src/images/designer-french-dialog.pngbin0 -> 25444 bytes-rw-r--r--doc/src/images/designer-getting-started.pngbin0 -> 8643 bytes-rw-r--r--doc/src/images/designer-layout-inserting.pngbin0 -> 7763 bytes-rw-r--r--doc/src/images/designer-main-window.pngbin0 -> 38403 bytes-rw-r--r--doc/src/images/designer-making-connection.pngbin0 -> 9580 bytes-rw-r--r--doc/src/images/designer-manual-containerextension.pngbin0 -> 12183 bytes-rw-r--r--doc/src/images/designer-manual-membersheetextension.pngbin0 -> 19526 bytes-rw-r--r--doc/src/images/designer-manual-propertysheetextension.pngbin0 -> 28707 bytes-rw-r--r--doc/src/images/designer-manual-taskmenuextension.pngbin0 -> 12821 bytes-rw-r--r--doc/src/images/designer-multiple-screenshot.pngbin0 -> 182639 bytes-rw-r--r--doc/src/images/designer-object-inspector.pngbin0 -> 8529 bytes-rw-r--r--doc/src/images/designer-palette-brush-editor.pngbin0 -> 31141 bytes-rw-r--r--doc/src/images/designer-palette-editor.pngbin0 -> 46052 bytes-rw-r--r--doc/src/images/designer-palette-gradient-editor.pngbin0 -> 73055 bytes-rw-r--r--doc/src/images/designer-palette-pattern-editor.pngbin0 -> 29948 bytes-rw-r--r--doc/src/images/designer-preview-device-skin.pngbin0 -> 65513 bytes-rw-r--r--doc/src/images/designer-preview-deviceskin-selection.pngbin0 -> 7562 bytes-rw-r--r--doc/src/images/designer-preview-style-selection.pngbin0 -> 5913 bytes-rw-r--r--doc/src/images/designer-preview-style.pngbin0 -> 40601 bytes-rw-r--r--doc/src/images/designer-preview-stylesheet.pngbin0 -> 33386 bytes-rw-r--r--doc/src/images/designer-promoting-widgets.pngbin0 -> 16816 bytes-rw-r--r--doc/src/images/designer-property-editor-add-dynamic.pngbin0 -> 807 bytes-rw-r--r--doc/src/images/designer-property-editor-configure.pngbin0 -> 981 bytes-rw-r--r--doc/src/images/designer-property-editor-link.pngbin0 -> 18143 bytes-rw-r--r--doc/src/images/designer-property-editor-remove-dynamic.pngbin0 -> 362 bytes-rw-r--r--doc/src/images/designer-property-editor-toolbar.pngbin0 -> 3409 bytes-rw-r--r--doc/src/images/designer-property-editor.pngbin0 -> 45934 bytes-rw-r--r--doc/src/images/designer-reload-resources-button.pngbin0 -> 1107 bytes-rw-r--r--doc/src/images/designer-remove-custom-toolbar.pngbin0 -> 751 bytes-rw-r--r--doc/src/images/designer-remove-resource-entry-button.pngbin0 -> 680 bytes-rw-r--r--doc/src/images/designer-resource-browser.pngbin0 -> 13610 bytes-rw-r--r--doc/src/images/designer-resource-selector.pngbin0 -> 16664 bytes-rw-r--r--doc/src/images/designer-resource-tool.pngbin0 -> 2171 bytes-rw-r--r--doc/src/images/designer-resources-adding.pngbin0 -> 12014 bytes-rw-r--r--doc/src/images/designer-resources-editing.pngbin0 -> 16219 bytes-rw-r--r--doc/src/images/designer-resources-empty.pngbin0 -> 8297 bytes-rw-r--r--doc/src/images/designer-resources-using.pngbin0 -> 4311 bytes-rw-r--r--doc/src/images/designer-screenshot-small.pngbin0 -> 109684 bytes-rw-r--r--doc/src/images/designer-screenshot.pngbin0 -> 169618 bytes-rw-r--r--doc/src/images/designer-selecting-widget.pngbin0 -> 7266 bytes-rw-r--r--doc/src/images/designer-selecting-widgets.pngbin0 -> 8095 bytes-rw-r--r--doc/src/images/designer-set-layout.pngbin0 -> 4126 bytes-rw-r--r--doc/src/images/designer-set-layout2.pngbin0 -> 8356 bytes-rw-r--r--doc/src/images/designer-splitter-layout.pngbin0 -> 81481 bytes-rw-r--r--doc/src/images/designer-stylesheet-options.pngbin0 -> 18914 bytes-rw-r--r--doc/src/images/designer-stylesheet-usage.pngbin0 -> 8128 bytes-rw-r--r--doc/src/images/designer-tab-order-mode.pngbin0 -> 9744 bytes-rw-r--r--doc/src/images/designer-tab-order-tool.pngbin0 -> 1963 bytes-rw-r--r--doc/src/images/designer-validator-highlighter.pngbin0 -> 27153 bytes-rw-r--r--doc/src/images/designer-widget-box.pngbin0 -> 13120 bytes-rw-r--r--doc/src/images/designer-widget-filter.pngbin0 -> 16325 bytes-rw-r--r--doc/src/images/designer-widget-final.pngbin0 -> 9462 bytes-rw-r--r--doc/src/images/designer-widget-initial.pngbin0 -> 15323 bytes-rw-r--r--doc/src/images/designer-widget-layout.pngbin0 -> 14885 bytes-rw-r--r--doc/src/images/designer-widget-morph.pngbin0 -> 21957 bytes-rw-r--r--doc/src/images/designer-widget-preview.pngbin0 -> 9991 bytes-rw-r--r--doc/src/images/designer-widget-tool.pngbin0 -> 1874 bytes-rw-r--r--doc/src/images/desktop-examples.pngbin0 -> 6430 bytes-rw-r--r--doc/src/images/diagonalGradient.pngbin0 -> 611 bytes-rw-r--r--doc/src/images/diagramscene.pngbin0 -> 21070 bytes-rw-r--r--doc/src/images/dialog-examples.pngbin0 -> 7049 bytes-rw-r--r--doc/src/images/dialogbuttonboxexample.pngbin0 -> 16426 bytes-rw-r--r--doc/src/images/dialogs-examples.pngbin0 -> 7049 bytes-rw-r--r--doc/src/images/digitalclock-example.pngbin0 -> 6142 bytes-rw-r--r--doc/src/images/directapproach-calculatorform.pngbin0 -> 7978 bytes-rw-r--r--doc/src/images/dirview-example.pngbin0 -> 22348 bytes-rw-r--r--doc/src/images/dockwidget-cross.pngbin0 -> 28926 bytes-rw-r--r--doc/src/images/dockwidget-neighbors.pngbin0 -> 21011 bytes-rw-r--r--doc/src/images/dockwidgets-example.pngbin0 -> 17312 bytes-rw-r--r--doc/src/images/dombookmarks-example.pngbin0 -> 19405 bytes-rw-r--r--doc/src/images/draganddrop-examples.pngbin0 -> 14216 bytes-rw-r--r--doc/src/images/draganddroppuzzle-example.pngbin0 -> 191122 bytes-rw-r--r--doc/src/images/dragdroprobot-example.pngbin0 -> 28679 bytes-rw-r--r--doc/src/images/draggableicons-example.pngbin0 -> 20277 bytes-rw-r--r--doc/src/images/draggabletext-example.pngbin0 -> 10616 bytes-rw-r--r--doc/src/images/draw_arc.pngbin0 -> 2268 bytes-rw-r--r--doc/src/images/draw_chord.pngbin0 -> 2232 bytes-rw-r--r--doc/src/images/drilldown-example.pngbin0 -> 128081 bytes-rw-r--r--doc/src/images/dropsite-example.pngbin0 -> 118905 bytes-rw-r--r--doc/src/images/dynamiclayouts-example.pngbin0 -> 11597 bytes-rw-r--r--doc/src/images/echopluginexample.pngbin0 -> 5921 bytes-rw-r--r--doc/src/images/effectwidget.pngbin0 -> 6125 bytes-rw-r--r--doc/src/images/elasticnodes-example.pngbin0 -> 20101 bytes-rw-r--r--doc/src/images/embedded-demo-launcher.pngbin0 -> 92072 bytes-rw-r--r--doc/src/images/embedded-simpledecoration-example-styles.pngbin0 -> 17654 bytes-rw-r--r--doc/src/images/embedded-simpledecoration-example.pngbin0 -> 41636 bytes-rw-r--r--doc/src/images/embeddeddialogs-demo.pngbin0 -> 126932 bytes-rw-r--r--doc/src/images/extension-example.pngbin0 -> 7676 bytes-rw-r--r--doc/src/images/extension_more.pngbin0 -> 9309 bytes-rw-r--r--doc/src/images/fetchmore-example.pngbin0 -> 13407 bytes-rw-r--r--doc/src/images/filedialogurls.pngbin0 -> 29132 bytes-rw-r--r--doc/src/images/filetree_1-example.pngbin0 -> 116931 bytes-rw-r--r--doc/src/images/filetree_2-example.pngbin0 -> 121356 bytes-rw-r--r--doc/src/images/findfiles-example.pngbin0 -> 11219 bytes-rw-r--r--doc/src/images/findfiles_progress_dialog.pngbin0 -> 6759 bytes-rw-r--r--doc/src/images/flowlayout-example.pngbin0 -> 5054 bytes-rw-r--r--doc/src/images/fontsampler-example.pngbin0 -> 56819 bytes-rw-r--r--doc/src/images/foreignkeys.pngbin0 -> 3739 bytes-rw-r--r--doc/src/images/formextractor-example.pngbin0 -> 80692 bytes-rw-r--r--doc/src/images/fortuneclient-example.pngbin0 -> 8282 bytes-rw-r--r--doc/src/images/fortuneserver-example.pngbin0 -> 7883 bytes-rw-r--r--doc/src/images/framebufferobject-example.pngbin0 -> 117430 bytes-rw-r--r--doc/src/images/framebufferobject2-example.pngbin0 -> 203754 bytes-rw-r--r--doc/src/images/frames.pngbin0 -> 25735 bytes-rw-r--r--doc/src/images/fridgemagnets-example.pngbin0 -> 33012 bytes-rw-r--r--doc/src/images/ftp-example.pngbin0 -> 12371 bytes-rw-r--r--doc/src/images/geometry.pngbin0 -> 7847 bytes-rw-r--r--doc/src/images/grabber-example.pngbin0 -> 9893 bytes-rw-r--r--doc/src/images/gradientText.pngbin0 -> 11155 bytes-rw-r--r--doc/src/images/gradients-demo.pngbin0 -> 93147 bytes-rw-r--r--doc/src/images/graphicsview-ellipseitem-pie.pngbin0 -> 6683 bytes-rw-r--r--doc/src/images/graphicsview-ellipseitem.pngbin0 -> 5801 bytes-rw-r--r--doc/src/images/graphicsview-examples.pngbin0 -> 26994 bytes-rw-r--r--doc/src/images/graphicsview-items.pngbin0 -> 62593 bytes-rw-r--r--doc/src/images/graphicsview-lineitem.pngbin0 -> 3685 bytes-rw-r--r--doc/src/images/graphicsview-map.pngbin0 -> 116541 bytes-rw-r--r--doc/src/images/graphicsview-parentchild.pngbin0 -> 7944 bytes-rw-r--r--doc/src/images/graphicsview-pathitem.pngbin0 -> 5710 bytes-rw-r--r--doc/src/images/graphicsview-pixmapitem.pngbin0 -> 10764 bytes-rw-r--r--doc/src/images/graphicsview-polygonitem.pngbin0 -> 5829 bytes-rw-r--r--doc/src/images/graphicsview-rectitem.pngbin0 -> 3305 bytes-rw-r--r--doc/src/images/graphicsview-shapes.pngbin0 -> 232704 bytes-rw-r--r--doc/src/images/graphicsview-simpletextitem.pngbin0 -> 7297 bytes-rw-r--r--doc/src/images/graphicsview-text.pngbin0 -> 82252 bytes-rw-r--r--doc/src/images/graphicsview-textitem.pngbin0 -> 6950 bytes-rw-r--r--doc/src/images/graphicsview-view.pngbin0 -> 53967 bytes-rw-r--r--doc/src/images/graphicsview-zorder.pngbin0 -> 6724 bytes-rw-r--r--doc/src/images/gridlayout.pngbin0 -> 1445 bytes-rw-r--r--doc/src/images/groupbox-example.pngbin0 -> 18620 bytes-rw-r--r--doc/src/images/gtk-calendarwidget.pngbin0 -> 16761 bytes-rw-r--r--doc/src/images/gtk-checkbox.pngbin0 -> 2323 bytes-rw-r--r--doc/src/images/gtk-columnview.pngbin0 -> 2889 bytes-rw-r--r--doc/src/images/gtk-combobox.pngbin0 -> 2730 bytes-rw-r--r--doc/src/images/gtk-dateedit.pngbin0 -> 2163 bytes-rw-r--r--doc/src/images/gtk-datetimeedit.pngbin0 -> 2923 bytes-rw-r--r--doc/src/images/gtk-dial.pngbin0 -> 7221 bytes-rw-r--r--doc/src/images/gtk-doublespinbox.pngbin0 -> 2325 bytes-rw-r--r--doc/src/images/gtk-fontcombobox.pngbin0 -> 3022 bytes-rw-r--r--doc/src/images/gtk-frame.pngbin0 -> 2340 bytes-rw-r--r--doc/src/images/gtk-groupbox.pngbin0 -> 6650 bytes-rw-r--r--doc/src/images/gtk-horizontalscrollbar.pngbin0 -> 1701 bytes-rw-r--r--doc/src/images/gtk-label.pngbin0 -> 1582 bytes-rw-r--r--doc/src/images/gtk-lcdnumber.pngbin0 -> 1193 bytes-rw-r--r--doc/src/images/gtk-lineedit.pngbin0 -> 2528 bytes-rw-r--r--doc/src/images/gtk-listview.pngbin0 -> 8493 bytes-rw-r--r--doc/src/images/gtk-progressbar.pngbin0 -> 2228 bytes-rw-r--r--doc/src/images/gtk-pushbutton.pngbin0 -> 2153 bytes-rw-r--r--doc/src/images/gtk-radiobutton.pngbin0 -> 3142 bytes-rw-r--r--doc/src/images/gtk-slider.pngbin0 -> 1359 bytes-rw-r--r--doc/src/images/gtk-spinbox.pngbin0 -> 2078 bytes-rw-r--r--doc/src/images/gtk-style-screenshot.pngbin0 -> 24295 bytes-rw-r--r--doc/src/images/gtk-tableview.pngbin0 -> 8364 bytes-rw-r--r--doc/src/images/gtk-tabwidget.pngbin0 -> 8179 bytes-rw-r--r--doc/src/images/gtk-textedit.pngbin0 -> 12641 bytes-rw-r--r--doc/src/images/gtk-timeedit.pngbin0 -> 2621 bytes-rw-r--r--doc/src/images/gtk-toolbox.pngbin0 -> 4240 bytes-rw-r--r--doc/src/images/gtk-toolbutton.pngbin0 -> 2260 bytes-rw-r--r--doc/src/images/gtk-treeview.pngbin0 -> 9722 bytes-rw-r--r--doc/src/images/hellogl-es-example.pngbin0 -> 61110 bytes-rw-r--r--doc/src/images/hellogl-example.pngbin0 -> 9520 bytes-rw-r--r--doc/src/images/http-example.pngbin0 -> 7006 bytes-rw-r--r--doc/src/images/httpstack.pngbin0 -> 29855 bytes-rw-r--r--doc/src/images/i18n-example.pngbin0 -> 22531 bytes-rw-r--r--doc/src/images/icon.pngbin0 -> 40790 bytes-rw-r--r--doc/src/images/icons-example.pngbin0 -> 60906 bytes-rw-r--r--doc/src/images/icons-view-menu.pngbin0 -> 2392 bytes-rw-r--r--doc/src/images/icons_find_normal.pngbin0 -> 25313 bytes-rw-r--r--doc/src/images/icons_find_normal_disabled.pngbin0 -> 27271 bytes-rw-r--r--doc/src/images/icons_images_groupbox.pngbin0 -> 2316 bytes-rw-r--r--doc/src/images/icons_monkey.pngbin0 -> 43975 bytes-rw-r--r--doc/src/images/icons_monkey_active.pngbin0 -> 37222 bytes-rw-r--r--doc/src/images/icons_monkey_mess.pngbin0 -> 42785 bytes-rw-r--r--doc/src/images/icons_preview_area.pngbin0 -> 2315 bytes-rw-r--r--doc/src/images/icons_qt_extended_16x16.pngbin0 -> 1184 bytes-rw-r--r--doc/src/images/icons_qt_extended_17x17.pngbin0 -> 1219 bytes-rw-r--r--doc/src/images/icons_qt_extended_32x32.pngbin0 -> 2185 bytes-rw-r--r--doc/src/images/icons_qt_extended_33x33.pngbin0 -> 2435 bytes-rw-r--r--doc/src/images/icons_qt_extended_48x48.pngbin0 -> 3805 bytes-rw-r--r--doc/src/images/icons_qt_extended_64x64.pngbin0 -> 3805 bytes-rw-r--r--doc/src/images/icons_qt_extended_8x8.pngbin0 -> 685 bytes-rw-r--r--doc/src/images/icons_size_groupbox.pngbin0 -> 2651 bytes-rw-r--r--doc/src/images/icons_size_spinbox.pngbin0 -> 561 bytes-rw-r--r--doc/src/images/imagecomposition-example.pngbin0 -> 32905 bytes-rw-r--r--doc/src/images/imageviewer-example.pngbin0 -> 168586 bytes-rw-r--r--doc/src/images/imageviewer-fit_to_window_1.pngbin0 -> 84584 bytes-rw-r--r--doc/src/images/imageviewer-fit_to_window_2.pngbin0 -> 145998 bytes-rw-r--r--doc/src/images/imageviewer-original_size.pngbin0 -> 61567 bytes-rw-r--r--doc/src/images/imageviewer-zoom_in_1.pngbin0 -> 84559 bytes-rw-r--r--doc/src/images/imageviewer-zoom_in_2.pngbin0 -> 85537 bytes-rw-r--r--doc/src/images/inputdialogs.pngbin0 -> 4244 bytes-rw-r--r--doc/src/images/insertrowinmodelview.pngbin0 -> 3867 bytes-rw-r--r--doc/src/images/interview-demo.pngbin0 -> 29651 bytes-rw-r--r--doc/src/images/interview-shareddirmodel.pngbin0 -> 10153 bytes-rw-r--r--doc/src/images/itemview-examples.pngbin0 -> 15264 bytes-rw-r--r--doc/src/images/itemviews-editabletreemodel-indexes.pngbin0 -> 23239 bytes-rw-r--r--doc/src/images/itemviews-editabletreemodel-items.pngbin0 -> 26317 bytes-rw-r--r--doc/src/images/itemviews-editabletreemodel-model.pngbin0 -> 18629 bytes-rw-r--r--doc/src/images/itemviews-editabletreemodel-values.pngbin0 -> 22202 bytes-rw-r--r--doc/src/images/itemviews-editabletreemodel.pngbin0 -> 32534 bytes-rw-r--r--doc/src/images/itemviews-examples.pngbin0 -> 15264 bytes-rw-r--r--doc/src/images/itemviewspuzzle-example.pngbin0 -> 211091 bytes-rw-r--r--doc/src/images/javaiterators1.pngbin0 -> 1062 bytes-rw-r--r--doc/src/images/javaiterators2.pngbin0 -> 2011 bytes-rw-r--r--doc/src/images/javastyle/branchindicatorimage.pngbin0 -> 18867 bytes-rw-r--r--doc/src/images/javastyle/button.pngbin0 -> 5475 bytes-rw-r--r--doc/src/images/javastyle/checkbox.pngbin0 -> 3634 bytes-rw-r--r--doc/src/images/javastyle/checkboxexample.pngbin0 -> 911 bytes-rw-r--r--doc/src/images/javastyle/checkingsomestuff.pngbin0 -> 14952 bytes-rw-r--r--doc/src/images/javastyle/combobox.pngbin0 -> 3537 bytes-rw-r--r--doc/src/images/javastyle/comboboximage.pngbin0 -> 6527 bytes-rw-r--r--doc/src/images/javastyle/conceptualpushbuttontree.pngbin0 -> 3590 bytes-rw-r--r--doc/src/images/javastyle/dockwidget.pngbin0 -> 7181 bytes-rw-r--r--doc/src/images/javastyle/dockwidgetimage.pngbin0 -> 21774 bytes-rw-r--r--doc/src/images/javastyle/groupbox.pngbin0 -> 2010 bytes-rw-r--r--doc/src/images/javastyle/groupboximage.pngbin0 -> 7067 bytes-rw-r--r--doc/src/images/javastyle/header.pngbin0 -> 4399 bytes-rw-r--r--doc/src/images/javastyle/headerimage.pngbin0 -> 6474 bytes-rw-r--r--doc/src/images/javastyle/menu.pngbin0 -> 6508 bytes-rw-r--r--doc/src/images/javastyle/menubar.pngbin0 -> 4315 bytes-rw-r--r--doc/src/images/javastyle/menubarimage.pngbin0 -> 4487 bytes-rw-r--r--doc/src/images/javastyle/menuimage.pngbin0 -> 5584 bytes-rw-r--r--doc/src/images/javastyle/plastiquetabimage.pngbin0 -> 6061 bytes-rw-r--r--doc/src/images/javastyle/plastiquetabtest.pngbin0 -> 5798 bytes-rw-r--r--doc/src/images/javastyle/progressbar.pngbin0 -> 4493 bytes-rw-r--r--doc/src/images/javastyle/progressbarimage.pngbin0 -> 6921 bytes-rw-r--r--doc/src/images/javastyle/pushbutton.pngbin0 -> 6820 bytes-rw-r--r--doc/src/images/javastyle/rubberband.pngbin0 -> 765 bytes-rw-r--r--doc/src/images/javastyle/rubberbandimage.pngbin0 -> 6452 bytes-rw-r--r--doc/src/images/javastyle/scrollbar.pngbin0 -> 7199 bytes-rw-r--r--doc/src/images/javastyle/scrollbarimage.pngbin0 -> 6196 bytes-rw-r--r--doc/src/images/javastyle/sizegrip.pngbin0 -> 708 bytes-rw-r--r--doc/src/images/javastyle/sizegripimage.pngbin0 -> 1793 bytes-rw-r--r--doc/src/images/javastyle/slider.pngbin0 -> 2844 bytes-rw-r--r--doc/src/images/javastyle/sliderhandle.pngbin0 -> 6304 bytes-rw-r--r--doc/src/images/javastyle/sliderimage.pngbin0 -> 3442 bytes-rw-r--r--doc/src/images/javastyle/slidertroubble.pngbin0 -> 23927 bytes-rw-r--r--doc/src/images/javastyle/spinbox.pngbin0 -> 2864 bytes-rw-r--r--doc/src/images/javastyle/spinboximage.pngbin0 -> 4544 bytes-rw-r--r--doc/src/images/javastyle/splitter.pngbin0 -> 817 bytes-rw-r--r--doc/src/images/javastyle/tab.pngbin0 -> 12176 bytes-rw-r--r--doc/src/images/javastyle/tabwidget.pngbin0 -> 4725 bytes-rw-r--r--doc/src/images/javastyle/titlebar.pngbin0 -> 2609 bytes-rw-r--r--doc/src/images/javastyle/titlebarimage.pngbin0 -> 6882 bytes-rw-r--r--doc/src/images/javastyle/toolbar.pngbin0 -> 6303 bytes-rw-r--r--doc/src/images/javastyle/toolbarimage.pngbin0 -> 8245 bytes-rw-r--r--doc/src/images/javastyle/toolbox.pngbin0 -> 3211 bytes-rw-r--r--doc/src/images/javastyle/toolboximage.pngbin0 -> 5580 bytes-rw-r--r--doc/src/images/javastyle/toolbutton.pngbin0 -> 4487 bytes-rw-r--r--doc/src/images/javastyle/toolbuttonimage.pngbin0 -> 5124 bytes-rw-r--r--doc/src/images/javastyle/windowstabimage.pngbin0 -> 6898 bytes-rw-r--r--doc/src/images/layout-examples.pngbin0 -> 13670 bytes-rw-r--r--doc/src/images/layout1.pngbin0 -> 106 bytes-rw-r--r--doc/src/images/layout2.pngbin0 -> 233 bytes-rw-r--r--doc/src/images/layouts-examples.pngbin0 -> 13670 bytes-rw-r--r--doc/src/images/licensewizard-example.pngbin0 -> 65778 bytes-rw-r--r--doc/src/images/licensewizard-flow.pngbin0 -> 15306 bytes-rw-r--r--doc/src/images/licensewizard.pngbin0 -> 43131 bytes-rw-r--r--doc/src/images/lineedits-example.pngbin0 -> 14584 bytes-rw-r--r--doc/src/images/linguist-arrowpad_en.pngbin0 -> 1429 bytes-rw-r--r--doc/src/images/linguist-arrowpad_fr.pngbin0 -> 1671 bytes-rw-r--r--doc/src/images/linguist-arrowpad_nl.pngbin0 -> 1706 bytes-rw-r--r--doc/src/images/linguist-auxlanguages.pngbin0 -> 13023 bytes-rw-r--r--doc/src/images/linguist-batchtranslation.pngbin0 -> 17116 bytes-rw-r--r--doc/src/images/linguist-check-empty.pngbin0 -> 404 bytes-rw-r--r--doc/src/images/linguist-check-obsolete.pngbin0 -> 192 bytes-rw-r--r--doc/src/images/linguist-check-off.pngbin0 -> 434 bytes-rw-r--r--doc/src/images/linguist-check-on.pngbin0 -> 192 bytes-rw-r--r--doc/src/images/linguist-check-warning.pngbin0 -> 192 bytes-rw-r--r--doc/src/images/linguist-danger.pngbin0 -> 304 bytes-rw-r--r--doc/src/images/linguist-doneandnext.pngbin0 -> 1849 bytes-rw-r--r--doc/src/images/linguist-editcopy.pngbin0 -> 1614 bytes-rw-r--r--doc/src/images/linguist-editcut.pngbin0 -> 1896 bytes-rw-r--r--doc/src/images/linguist-editfind.pngbin0 -> 1944 bytes-rw-r--r--doc/src/images/linguist-editpaste.pngbin0 -> 1989 bytes-rw-r--r--doc/src/images/linguist-editredo.pngbin0 -> 1787 bytes-rw-r--r--doc/src/images/linguist-editundo.pngbin0 -> 1768 bytes-rw-r--r--doc/src/images/linguist-examples.pngbin0 -> 8571 bytes-rw-r--r--doc/src/images/linguist-fileopen.pngbin0 -> 2309 bytes-rw-r--r--doc/src/images/linguist-fileprint.pngbin0 -> 1732 bytes-rw-r--r--doc/src/images/linguist-filesave.pngbin0 -> 1894 bytes-rw-r--r--doc/src/images/linguist-finddialog.pngbin0 -> 12457 bytes-rw-r--r--doc/src/images/linguist-hellotr_en.pngbin0 -> 3367 bytes-rw-r--r--doc/src/images/linguist-hellotr_la.pngbin0 -> 753 bytes-rw-r--r--doc/src/images/linguist-linguist.pngbin0 -> 201717 bytes-rw-r--r--doc/src/images/linguist-linguist_2.pngbin0 -> 260946 bytes-rw-r--r--doc/src/images/linguist-menubar.pngbin0 -> 1492 bytes-rw-r--r--doc/src/images/linguist-next.pngbin0 -> 908 bytes-rw-r--r--doc/src/images/linguist-nextunfinished.pngbin0 -> 1928 bytes-rw-r--r--doc/src/images/linguist-phrasebookdialog.pngbin0 -> 36034 bytes-rw-r--r--doc/src/images/linguist-phrasebookopen.pngbin0 -> 1571 bytes-rw-r--r--doc/src/images/linguist-prev.pngbin0 -> 911 bytes-rw-r--r--doc/src/images/linguist-previewtool.pngbin0 -> 74735 bytes-rw-r--r--doc/src/images/linguist-prevunfinished.pngbin0 -> 1883 bytes-rw-r--r--doc/src/images/linguist-toolbar.pngbin0 -> 19941 bytes-rw-r--r--doc/src/images/linguist-translationfilesettings.pngbin0 -> 49604 bytes-rw-r--r--doc/src/images/linguist-trollprint_10_en.pngbin0 -> 1951 bytes-rw-r--r--doc/src/images/linguist-trollprint_10_pt_bad.pngbin0 -> 2073 bytes-rw-r--r--doc/src/images/linguist-trollprint_10_pt_good.pngbin0 -> 2120 bytes-rw-r--r--doc/src/images/linguist-trollprint_11_en.pngbin0 -> 2019 bytes-rw-r--r--doc/src/images/linguist-trollprint_11_pt.pngbin0 -> 2152 bytes-rw-r--r--doc/src/images/linguist-validateaccelerators.pngbin0 -> 2159 bytes-rw-r--r--doc/src/images/linguist-validatephrases.pngbin0 -> 2251 bytes-rw-r--r--doc/src/images/linguist-validateplacemarkers.pngbin0 -> 1994 bytes-rw-r--r--doc/src/images/linguist-validatepunctuation.pngbin0 -> 1851 bytes-rw-r--r--doc/src/images/linguist-whatsthis.pngbin0 -> 1948 bytes-rw-r--r--doc/src/images/localfortuneclient-example.pngbin0 -> 8402 bytes-rw-r--r--doc/src/images/localfortuneserver-example.pngbin0 -> 5715 bytes-rw-r--r--doc/src/images/loopback-example.pngbin0 -> 6195 bytes-rw-r--r--doc/src/images/mac-cocoa.pngbin0 -> 7229 bytes-rw-r--r--doc/src/images/macintosh-calendarwidget.pngbin0 -> 13560 bytes-rw-r--r--doc/src/images/macintosh-checkbox.pngbin0 -> 2473 bytes-rw-r--r--doc/src/images/macintosh-combobox.pngbin0 -> 3273 bytes-rw-r--r--doc/src/images/macintosh-dateedit.pngbin0 -> 1703 bytes-rw-r--r--doc/src/images/macintosh-datetimeedit.pngbin0 -> 2633 bytes-rw-r--r--doc/src/images/macintosh-dial.pngbin0 -> 2563 bytes-rw-r--r--doc/src/images/macintosh-doublespinbox.pngbin0 -> 2306 bytes-rw-r--r--doc/src/images/macintosh-fontcombobox.pngbin0 -> 2967 bytes-rw-r--r--doc/src/images/macintosh-frame.pngbin0 -> 6187 bytes-rw-r--r--doc/src/images/macintosh-groupbox.pngbin0 -> 6469 bytes-rw-r--r--doc/src/images/macintosh-horizontalscrollbar.pngbin0 -> 2242 bytes-rw-r--r--doc/src/images/macintosh-label.pngbin0 -> 1450 bytes-rw-r--r--doc/src/images/macintosh-lcdnumber.pngbin0 -> 492 bytes-rw-r--r--doc/src/images/macintosh-lineedit.pngbin0 -> 1854 bytes-rw-r--r--doc/src/images/macintosh-listview.pngbin0 -> 9987 bytes-rw-r--r--doc/src/images/macintosh-menu.pngbin0 -> 6891 bytes-rw-r--r--doc/src/images/macintosh-progressbar.pngbin0 -> 1127 bytes-rw-r--r--doc/src/images/macintosh-pushbutton.pngbin0 -> 2966 bytes-rw-r--r--doc/src/images/macintosh-radiobutton.pngbin0 -> 2914 bytes-rw-r--r--doc/src/images/macintosh-slider.pngbin0 -> 1694 bytes-rw-r--r--doc/src/images/macintosh-spinbox.pngbin0 -> 1964 bytes-rw-r--r--doc/src/images/macintosh-tableview.pngbin0 -> 10024 bytes-rw-r--r--doc/src/images/macintosh-tabwidget.pngbin0 -> 9562 bytes-rw-r--r--doc/src/images/macintosh-textedit.pngbin0 -> 7845 bytes-rw-r--r--doc/src/images/macintosh-timeedit.pngbin0 -> 2244 bytes-rw-r--r--doc/src/images/macintosh-toolbox.pngbin0 -> 2576 bytes-rw-r--r--doc/src/images/macintosh-toolbutton.pngbin0 -> 2003 bytes-rw-r--r--doc/src/images/macintosh-treeview.pngbin0 -> 11728 bytes-rw-r--r--doc/src/images/macintosh-unified-toolbar.pngbin0 -> 28974 bytes-rw-r--r--doc/src/images/macmainwindow.pngbin0 -> 39579 bytes-rw-r--r--doc/src/images/mainwindow-contextmenu.pngbin0 -> 4971 bytes-rw-r--r--doc/src/images/mainwindow-custom-dock.pngbin0 -> 37983 bytes-rw-r--r--doc/src/images/mainwindow-demo.pngbin0 -> 62759 bytes-rw-r--r--doc/src/images/mainwindow-docks-example.pngbin0 -> 14427 bytes-rw-r--r--doc/src/images/mainwindow-docks.pngbin0 -> 37240 bytes-rw-r--r--doc/src/images/mainwindow-examples.pngbin0 -> 10271 bytes-rw-r--r--doc/src/images/mainwindow-vertical-dock.pngbin0 -> 14773 bytes-rw-r--r--doc/src/images/mainwindow-vertical-tabs.pngbin0 -> 29591 bytes-rw-r--r--doc/src/images/mainwindowlayout.pngbin0 -> 6782 bytes-rw-r--r--doc/src/images/mainwindows-examples.pngbin0 -> 7049 bytes-rw-r--r--doc/src/images/mandelbrot-example.pngbin0 -> 84202 bytes-rw-r--r--doc/src/images/mandelbrot_scroll1.pngbin0 -> 19615 bytes-rw-r--r--doc/src/images/mandelbrot_scroll2.pngbin0 -> 13901 bytes-rw-r--r--doc/src/images/mandelbrot_scroll3.pngbin0 -> 18976 bytes-rw-r--r--doc/src/images/mandelbrot_zoom1.pngbin0 -> 16000 bytes-rw-r--r--doc/src/images/mandelbrot_zoom2.pngbin0 -> 8163 bytes-rw-r--r--doc/src/images/mandelbrot_zoom3.pngbin0 -> 9848 bytes-rw-r--r--doc/src/images/masterdetail-example.pngbin0 -> 104228 bytes-rw-r--r--doc/src/images/mdi-cascade.pngbin0 -> 14590 bytes-rw-r--r--doc/src/images/mdi-example.pngbin0 -> 33375 bytes-rw-r--r--doc/src/images/mdi-tile.pngbin0 -> 31624 bytes-rw-r--r--doc/src/images/mediaplayer-demo.pngbin0 -> 12868 bytes-rw-r--r--doc/src/images/menus-example.pngbin0 -> 12487 bytes-rw-r--r--doc/src/images/modelindex-no-parent.pngbin0 -> 7407 bytes-rw-r--r--doc/src/images/modelindex-parent.pngbin0 -> 50172 bytes-rw-r--r--doc/src/images/modelview-begin-append-columns.pngbin0 -> 12798 bytes-rw-r--r--doc/src/images/modelview-begin-append-rows.pngbin0 -> 8967 bytes-rw-r--r--doc/src/images/modelview-begin-insert-columns.pngbin0 -> 14476 bytes-rw-r--r--doc/src/images/modelview-begin-insert-rows.pngbin0 -> 12565 bytes-rw-r--r--doc/src/images/modelview-begin-remove-columns.pngbin0 -> 14518 bytes-rw-r--r--doc/src/images/modelview-begin-remove-rows.pngbin0 -> 10896 bytes-rw-r--r--doc/src/images/modelview-listmodel.pngbin0 -> 5478 bytes-rw-r--r--doc/src/images/modelview-models.pngbin0 -> 20540 bytes-rw-r--r--doc/src/images/modelview-overview.pngbin0 -> 15042 bytes-rw-r--r--doc/src/images/modelview-roles.pngbin0 -> 24954 bytes-rw-r--r--doc/src/images/modelview-tablemodel.pngbin0 -> 12256 bytes-rw-r--r--doc/src/images/modelview-treemodel.pngbin0 -> 9193 bytes-rw-r--r--doc/src/images/motif-calendarwidget.pngbin0 -> 9989 bytes-rw-r--r--doc/src/images/motif-checkbox.pngbin0 -> 1284 bytes-rw-r--r--doc/src/images/motif-combobox.pngbin0 -> 1276 bytes-rw-r--r--doc/src/images/motif-dateedit.pngbin0 -> 1214 bytes-rw-r--r--doc/src/images/motif-datetimeedit.pngbin0 -> 1730 bytes-rw-r--r--doc/src/images/motif-dial.pngbin0 -> 2017 bytes-rw-r--r--doc/src/images/motif-doublespinbox.pngbin0 -> 1019 bytes-rw-r--r--doc/src/images/motif-fontcombobox.pngbin0 -> 1633 bytes-rw-r--r--doc/src/images/motif-frame.pngbin0 -> 5631 bytes-rw-r--r--doc/src/images/motif-groupbox.pngbin0 -> 2514 bytes-rw-r--r--doc/src/images/motif-horizontalscrollbar.pngbin0 -> 628 bytes-rw-r--r--doc/src/images/motif-label.pngbin0 -> 699 bytes-rw-r--r--doc/src/images/motif-lcdnumber.pngbin0 -> 538 bytes-rw-r--r--doc/src/images/motif-lineedit.pngbin0 -> 1360 bytes-rw-r--r--doc/src/images/motif-listview.pngbin0 -> 5189 bytes-rw-r--r--doc/src/images/motif-menubar.pngbin0 -> 1350 bytes-rw-r--r--doc/src/images/motif-progressbar.pngbin0 -> 927 bytes-rw-r--r--doc/src/images/motif-pushbutton.pngbin0 -> 1045 bytes-rw-r--r--doc/src/images/motif-radiobutton.pngbin0 -> 1545 bytes-rw-r--r--doc/src/images/motif-slider.pngbin0 -> 543 bytes-rw-r--r--doc/src/images/motif-spinbox.pngbin0 -> 875 bytes-rw-r--r--doc/src/images/motif-tableview.pngbin0 -> 3102 bytes-rw-r--r--doc/src/images/motif-tabwidget.pngbin0 -> 2490 bytes-rw-r--r--doc/src/images/motif-textedit.pngbin0 -> 7378 bytes-rw-r--r--doc/src/images/motif-timeedit.pngbin0 -> 1280 bytes-rw-r--r--doc/src/images/motif-todo.pngbin0 -> 4075 bytes-rw-r--r--doc/src/images/motif-toolbox.pngbin0 -> 1667 bytes-rw-r--r--doc/src/images/motif-toolbutton.pngbin0 -> 1152 bytes-rw-r--r--doc/src/images/motif-treeview.pngbin0 -> 6386 bytes-rw-r--r--doc/src/images/movie-example.pngbin0 -> 12361 bytes-rw-r--r--doc/src/images/msgbox1.pngbin0 -> 4529 bytes-rw-r--r--doc/src/images/msgbox2.pngbin0 -> 9175 bytes-rw-r--r--doc/src/images/msgbox3.pngbin0 -> 9589 bytes-rw-r--r--doc/src/images/msgbox4.pngbin0 -> 17520 bytes-rw-r--r--doc/src/images/multipleinheritance-example.pngbin0 -> 6974 bytes-rw-r--r--doc/src/images/musicplayer.pngbin0 -> 10714 bytes-rw-r--r--doc/src/images/network-chat-example.pngbin0 -> 17453 bytes-rw-r--r--doc/src/images/network-examples.pngbin0 -> 8946 bytes-rw-r--r--doc/src/images/noforeignkeys.pngbin0 -> 3282 bytes-rw-r--r--doc/src/images/opengl-examples.pngbin0 -> 25685 bytes-rw-r--r--doc/src/images/orderform-example-detailsdialog.pngbin0 -> 13070 bytes-rw-r--r--doc/src/images/orderform-example.pngbin0 -> 17404 bytes-rw-r--r--doc/src/images/overpainting-example.pngbin0 -> 67841 bytes-rw-r--r--doc/src/images/padnavigator-example.pngbin0 -> 219818 bytes-rw-r--r--doc/src/images/painterpaths-example.pngbin0 -> 28285 bytes-rw-r--r--doc/src/images/painting-examples.pngbin0 -> 10442 bytes-rw-r--r--doc/src/images/paintsystem-antialiasing.pngbin0 -> 995 bytes-rw-r--r--doc/src/images/paintsystem-core.pngbin0 -> 22101 bytes-rw-r--r--doc/src/images/paintsystem-devices.pngbin0 -> 47404 bytes-rw-r--r--doc/src/images/paintsystem-fancygradient.pngbin0 -> 39213 bytes-rw-r--r--doc/src/images/paintsystem-gradients.pngbin0 -> 16931 bytes-rw-r--r--doc/src/images/paintsystem-icon.pngbin0 -> 5458 bytes-rw-r--r--doc/src/images/paintsystem-movie.pngbin0 -> 4992 bytes-rw-r--r--doc/src/images/paintsystem-painterpath.pngbin0 -> 7503 bytes-rw-r--r--doc/src/images/paintsystem-stylepainter.pngbin0 -> 16572 bytes-rw-r--r--doc/src/images/paintsystem-svg.pngbin0 -> 66692 bytes-rw-r--r--doc/src/images/palette.pngbin0 -> 66359 bytes-rw-r--r--doc/src/images/parent-child-widgets.pngbin0 -> 47824 bytes-rw-r--r--doc/src/images/pathexample.pngbin0 -> 1516 bytes-rw-r--r--doc/src/images/pathstroke-demo.pngbin0 -> 90746 bytes-rw-r--r--doc/src/images/patternist-importFlow.pngbin0 -> 12832 bytes-rw-r--r--doc/src/images/patternist-wordProcessor.pngbin0 -> 10264 bytes-rw-r--r--doc/src/images/pbuffers-example.pngbin0 -> 203754 bytes-rw-r--r--doc/src/images/pbuffers2-example.pngbin0 -> 176171 bytes-rw-r--r--doc/src/images/phonon-examples.pngbin0 -> 41140 bytes-rw-r--r--doc/src/images/pixelator-example.pngbin0 -> 45506 bytes-rw-r--r--doc/src/images/pixmapfilter-example.pngbin0 -> 18249 bytes-rw-r--r--doc/src/images/pixmapfilterexample-colorize.pngbin0 -> 17271 bytes-rw-r--r--doc/src/images/pixmapfilterexample-dropshadow.pngbin0 -> 23930 bytes-rw-r--r--doc/src/images/plaintext-layout.pngbin0 -> 46384 bytes-rw-r--r--doc/src/images/plastique-calendarwidget.pngbin0 -> 9629 bytes-rw-r--r--doc/src/images/plastique-checkbox.pngbin0 -> 1069 bytes-rw-r--r--doc/src/images/plastique-colordialog.pngbin0 -> 22595 bytes-rw-r--r--doc/src/images/plastique-combobox.pngbin0 -> 1714 bytes-rw-r--r--doc/src/images/plastique-dateedit.pngbin0 -> 1271 bytes-rw-r--r--doc/src/images/plastique-datetimeedit.pngbin0 -> 1771 bytes-rw-r--r--doc/src/images/plastique-dial.pngbin0 -> 2995 bytes-rw-r--r--doc/src/images/plastique-dialogbuttonbox.pngbin0 -> 2269 bytes-rw-r--r--doc/src/images/plastique-doublespinbox.pngbin0 -> 1102 bytes-rw-r--r--doc/src/images/plastique-filedialog.pngbin0 -> 19125 bytes-rw-r--r--doc/src/images/plastique-fontcombobox-open.pngbin0 -> 21720 bytes-rw-r--r--doc/src/images/plastique-fontcombobox.pngbin0 -> 1904 bytes-rw-r--r--doc/src/images/plastique-fontdialog.pngbin0 -> 23835 bytes-rw-r--r--doc/src/images/plastique-frame.pngbin0 -> 5616 bytes-rw-r--r--doc/src/images/plastique-groupbox.pngbin0 -> 2704 bytes-rw-r--r--doc/src/images/plastique-horizontalscrollbar.pngbin0 -> 868 bytes-rw-r--r--doc/src/images/plastique-label.pngbin0 -> 696 bytes-rw-r--r--doc/src/images/plastique-lcdnumber.pngbin0 -> 470 bytes-rw-r--r--doc/src/images/plastique-lineedit.pngbin0 -> 1015 bytes-rw-r--r--doc/src/images/plastique-listview.pngbin0 -> 4895 bytes-rw-r--r--doc/src/images/plastique-menu.pngbin0 -> 3867 bytes-rw-r--r--doc/src/images/plastique-menubar.pngbin0 -> 1030 bytes-rw-r--r--doc/src/images/plastique-messagebox.pngbin0 -> 7536 bytes-rw-r--r--doc/src/images/plastique-printdialog-properties.pngbin0 -> 27720 bytes-rw-r--r--doc/src/images/plastique-printdialog.pngbin0 -> 44150 bytes-rw-r--r--doc/src/images/plastique-progressbar.pngbin0 -> 1044 bytes-rw-r--r--doc/src/images/plastique-progressdialog.pngbin0 -> 6311 bytes-rw-r--r--doc/src/images/plastique-pushbutton-menu.pngbin0 -> 3354 bytes-rw-r--r--doc/src/images/plastique-pushbutton.pngbin0 -> 1409 bytes-rw-r--r--doc/src/images/plastique-radiobutton.pngbin0 -> 1667 bytes-rw-r--r--doc/src/images/plastique-sizegrip.pngbin0 -> 8168 bytes-rw-r--r--doc/src/images/plastique-slider.pngbin0 -> 632 bytes-rw-r--r--doc/src/images/plastique-spinbox.pngbin0 -> 968 bytes-rw-r--r--doc/src/images/plastique-statusbar.pngbin0 -> 878 bytes-rw-r--r--doc/src/images/plastique-tabbar-truncated.pngbin0 -> 2986 bytes-rw-r--r--doc/src/images/plastique-tabbar.pngbin0 -> 2721 bytes-rw-r--r--doc/src/images/plastique-tableview.pngbin0 -> 6052 bytes-rw-r--r--doc/src/images/plastique-tabwidget.pngbin0 -> 4705 bytes-rw-r--r--doc/src/images/plastique-textedit.pngbin0 -> 5141 bytes-rw-r--r--doc/src/images/plastique-timeedit.pngbin0 -> 1336 bytes-rw-r--r--doc/src/images/plastique-toolbox.pngbin0 -> 1858 bytes-rw-r--r--doc/src/images/plastique-toolbutton.pngbin0 -> 1254 bytes-rw-r--r--doc/src/images/plastique-treeview.pngbin0 -> 8453 bytes-rw-r--r--doc/src/images/plugandpaint-plugindialog.pngbin0 -> 8706 bytes-rw-r--r--doc/src/images/plugandpaint.pngbin0 -> 7540 bytes-rw-r--r--doc/src/images/portedasteroids-example.pngbin0 -> 27086 bytes-rw-r--r--doc/src/images/portedcanvas-example.pngbin0 -> 259679 bytes-rw-r--r--doc/src/images/previewer-example.pngbin0 -> 16323 bytes-rw-r--r--doc/src/images/previewer-ui.pngbin0 -> 10345 bytes-rw-r--r--doc/src/images/printer-rects.pngbin0 -> 30319 bytes-rw-r--r--doc/src/images/progressBar-stylesheet.pngbin0 -> 455 bytes-rw-r--r--doc/src/images/progressBar2-stylesheet.pngbin0 -> 494 bytes-rw-r--r--doc/src/images/propagation-custom.pngbin0 -> 163413 bytes-rw-r--r--doc/src/images/propagation-standard.pngbin0 -> 83382 bytes-rw-r--r--doc/src/images/q3painter_rationale.pngbin0 -> 1526 bytes-rw-r--r--doc/src/images/qactiongroup-align.pngbin0 -> 3550 bytes-rw-r--r--doc/src/images/qcalendarwidget-grid.pngbin0 -> 9601 bytes-rw-r--r--doc/src/images/qcalendarwidget-maximum.pngbin0 -> 9709 bytes-rw-r--r--doc/src/images/qcalendarwidget-minimum.pngbin0 -> 9770 bytes-rw-r--r--doc/src/images/qcalendarwidget.pngbin0 -> 1223 bytes-rw-r--r--doc/src/images/qcanvasellipse.pngbin0 -> 2251 bytes-rw-r--r--doc/src/images/qcdestyle.pngbin0 -> 25954 bytes-rw-r--r--doc/src/images/qcolor-cmyk.pngbin0 -> 18878 bytes-rw-r--r--doc/src/images/qcolor-hsv.pngbin0 -> 21046 bytes-rw-r--r--doc/src/images/qcolor-hue.pngbin0 -> 26820 bytes-rw-r--r--doc/src/images/qcolor-rgb.pngbin0 -> 17798 bytes-rw-r--r--doc/src/images/qcolor-saturation.pngbin0 -> 2150 bytes-rw-r--r--doc/src/images/qcolor-value.pngbin0 -> 1241 bytes-rw-r--r--doc/src/images/qcolumnview.pngbin0 -> 3075 bytes-rw-r--r--doc/src/images/qconicalgradient.pngbin0 -> 52823 bytes-rw-r--r--doc/src/images/qdatawidgetmapper-simple.pngbin0 -> 26994 bytes-rw-r--r--doc/src/images/qdesktopwidget.pngbin0 -> 42328 bytes-rw-r--r--doc/src/images/qdockwindow.pngbin0 -> 1177 bytes-rw-r--r--doc/src/images/qerrormessage.pngbin0 -> 7100 bytes-rw-r--r--doc/src/images/qfiledialog-expanded.pngbin0 -> 32017 bytes-rw-r--r--doc/src/images/qfiledialog-small.pngbin0 -> 12273 bytes-rw-r--r--doc/src/images/qformlayout-kde.pngbin0 -> 1703 bytes-rw-r--r--doc/src/images/qformlayout-mac.pngbin0 -> 1706 bytes-rw-r--r--doc/src/images/qformlayout-qpe.pngbin0 -> 1764 bytes-rw-r--r--doc/src/images/qformlayout-win.pngbin0 -> 1743 bytes-rw-r--r--doc/src/images/qformlayout-with-6-children.pngbin0 -> 3264 bytes-rw-r--r--doc/src/images/qgradient-conical.pngbin0 -> 3995 bytes-rw-r--r--doc/src/images/qgradient-linear.pngbin0 -> 714 bytes-rw-r--r--doc/src/images/qgradient-radial.pngbin0 -> 2352 bytes-rw-r--r--doc/src/images/qgraphicsproxywidget-embed.pngbin0 -> 2199 bytes-rw-r--r--doc/src/images/qgridlayout-with-5-children.pngbin0 -> 3201 bytes-rw-r--r--doc/src/images/qhbox-m.pngbin0 -> 303 bytes-rw-r--r--doc/src/images/qhboxlayout-with-5-children.pngbin0 -> 2652 bytes-rw-r--r--doc/src/images/qimage-32bit.pngbin0 -> 20018 bytes-rw-r--r--doc/src/images/qimage-32bit_scaled.pngbin0 -> 25098 bytes-rw-r--r--doc/src/images/qimage-8bit.pngbin0 -> 22490 bytes-rw-r--r--doc/src/images/qimage-8bit_scaled.pngbin0 -> 24761 bytes-rw-r--r--doc/src/images/qimage-scaling.pngbin0 -> 34785 bytes-rw-r--r--doc/src/images/qline-coordinates.pngbin0 -> 9459 bytes-rw-r--r--doc/src/images/qline-point.pngbin0 -> 8484 bytes-rw-r--r--doc/src/images/qlineargradient-pad.pngbin0 -> 2260 bytes-rw-r--r--doc/src/images/qlineargradient-reflect.pngbin0 -> 2746 bytes-rw-r--r--doc/src/images/qlineargradient-repeat.pngbin0 -> 2590 bytes-rw-r--r--doc/src/images/qlinef-angle-identicaldirection.pngbin0 -> 6004 bytes-rw-r--r--doc/src/images/qlinef-angle-oppositedirection.pngbin0 -> 5834 bytes-rw-r--r--doc/src/images/qlinef-bounded.pngbin0 -> 4183 bytes-rw-r--r--doc/src/images/qlinef-normalvector.pngbin0 -> 9432 bytes-rw-r--r--doc/src/images/qlinef-unbounded.pngbin0 -> 3992 bytes-rw-r--r--doc/src/images/qlistbox-m.pngbin0 -> 805 bytes-rw-r--r--doc/src/images/qlistbox-w.pngbin0 -> 810 bytes-rw-r--r--doc/src/images/qlistviewitems.pngbin0 -> 8523 bytes-rw-r--r--doc/src/images/qmacstyle.pngbin0 -> 56256 bytes-rw-r--r--doc/src/images/qmainwindow-qdockareas.pngbin0 -> 5351 bytes-rw-r--r--doc/src/images/qmatrix-combinedtransformation.pngbin0 -> 1707 bytes-rw-r--r--doc/src/images/qmatrix-representation.pngbin0 -> 10410 bytes-rw-r--r--doc/src/images/qmatrix-simpletransformation.pngbin0 -> 2047 bytes-rw-r--r--doc/src/images/qmdiarea-arrange.pngbin0 -> 45629 bytes-rw-r--r--doc/src/images/qmdisubwindowlayout.pngbin0 -> 3153 bytes-rw-r--r--doc/src/images/qmessagebox-crit.pngbin0 -> 237 bytes-rw-r--r--doc/src/images/qmessagebox-info.pngbin0 -> 242 bytes-rw-r--r--doc/src/images/qmessagebox-quest.pngbin0 -> 253 bytes-rw-r--r--doc/src/images/qmessagebox-warn.pngbin0 -> 219 bytes-rw-r--r--doc/src/images/qmotifstyle.pngbin0 -> 25573 bytes-rw-r--r--doc/src/images/qobjectxmlmodel-example.pngbin0 -> 111515 bytes-rw-r--r--doc/src/images/qpainter-affinetransformations.pngbin0 -> 66241 bytes-rw-r--r--doc/src/images/qpainter-angles.pngbin0 -> 7450 bytes-rw-r--r--doc/src/images/qpainter-arc.pngbin0 -> 635 bytes-rw-r--r--doc/src/images/qpainter-basicdrawing.pngbin0 -> 18164 bytes-rw-r--r--doc/src/images/qpainter-chord.pngbin0 -> 632 bytes-rw-r--r--doc/src/images/qpainter-clock.pngbin0 -> 3128 bytes-rw-r--r--doc/src/images/qpainter-compositiondemo.pngbin0 -> 61015 bytes-rw-r--r--doc/src/images/qpainter-compositionmode.pngbin0 -> 3858 bytes-rw-r--r--doc/src/images/qpainter-compositionmode1.pngbin0 -> 2418 bytes-rw-r--r--doc/src/images/qpainter-compositionmode2.pngbin0 -> 2131 bytes-rw-r--r--doc/src/images/qpainter-concentriccircles.pngbin0 -> 31294 bytes-rw-r--r--doc/src/images/qpainter-ellipse.pngbin0 -> 1022 bytes-rw-r--r--doc/src/images/qpainter-gradients.pngbin0 -> 24231 bytes-rw-r--r--doc/src/images/qpainter-line.pngbin0 -> 759 bytes-rw-r--r--doc/src/images/qpainter-painterpaths.pngbin0 -> 31985 bytes-rw-r--r--doc/src/images/qpainter-path.pngbin0 -> 963 bytes-rw-r--r--doc/src/images/qpainter-pathstroking.pngbin0 -> 30794 bytes-rw-r--r--doc/src/images/qpainter-pie.pngbin0 -> 1018 bytes-rw-r--r--doc/src/images/qpainter-polygon.pngbin0 -> 699 bytes-rw-r--r--doc/src/images/qpainter-rectangle.pngbin0 -> 194 bytes-rw-r--r--doc/src/images/qpainter-rotation.pngbin0 -> 3768 bytes-rw-r--r--doc/src/images/qpainter-roundrect.pngbin0 -> 433 bytes-rw-r--r--doc/src/images/qpainter-scale.pngbin0 -> 2828 bytes-rw-r--r--doc/src/images/qpainter-text.pngbin0 -> 791 bytes-rw-r--r--doc/src/images/qpainter-translation.pngbin0 -> 3909 bytes-rw-r--r--doc/src/images/qpainter-vectordeformation.pngbin0 -> 30591 bytes-rw-r--r--doc/src/images/qpainterpath-addellipse.pngbin0 -> 3509 bytes-rw-r--r--doc/src/images/qpainterpath-addpolygon.pngbin0 -> 7625 bytes-rw-r--r--doc/src/images/qpainterpath-addrectangle.pngbin0 -> 1839 bytes-rw-r--r--doc/src/images/qpainterpath-addtext.pngbin0 -> 7406 bytes-rw-r--r--doc/src/images/qpainterpath-arcto.pngbin0 -> 5063 bytes-rw-r--r--doc/src/images/qpainterpath-construction.pngbin0 -> 2523 bytes-rw-r--r--doc/src/images/qpainterpath-cubicto.pngbin0 -> 4749 bytes-rw-r--r--doc/src/images/qpainterpath-demo.pngbin0 -> 51334 bytes-rw-r--r--doc/src/images/qpainterpath-example.pngbin0 -> 38746 bytes-rw-r--r--doc/src/images/qpen-bevel.pngbin0 -> 11527 bytes-rw-r--r--doc/src/images/qpen-custom.pngbin0 -> 6254 bytes-rw-r--r--doc/src/images/qpen-dash.pngbin0 -> 8221 bytes-rw-r--r--doc/src/images/qpen-dashdot.pngbin0 -> 5961 bytes-rw-r--r--doc/src/images/qpen-dashdotdot.pngbin0 -> 5999 bytes-rw-r--r--doc/src/images/qpen-dashpattern.pngbin0 -> 1605 bytes-rw-r--r--doc/src/images/qpen-demo.pngbin0 -> 49784 bytes-rw-r--r--doc/src/images/qpen-dot.pngbin0 -> 5386 bytes-rw-r--r--doc/src/images/qpen-flat.pngbin0 -> 1885 bytes-rw-r--r--doc/src/images/qpen-miter.pngbin0 -> 11734 bytes-rw-r--r--doc/src/images/qpen-miterlimit.pngbin0 -> 24816 bytes-rw-r--r--doc/src/images/qpen-roundcap.pngbin0 -> 1920 bytes-rw-r--r--doc/src/images/qpen-roundjoin.pngbin0 -> 11878 bytes-rw-r--r--doc/src/images/qpen-solid.pngbin0 -> 7416 bytes-rw-r--r--doc/src/images/qpen-square.pngbin0 -> 2651 bytes-rw-r--r--doc/src/images/qplastiquestyle.pngbin0 -> 31420 bytes-rw-r--r--doc/src/images/qprintpreviewdialog.pngbin0 -> 44891 bytes-rw-r--r--doc/src/images/qprogbar-m.pngbin0 -> 193 bytes-rw-r--r--doc/src/images/qprogbar-w.pngbin0 -> 198 bytes-rw-r--r--doc/src/images/qprogdlg-m.pngbin0 -> 826 bytes-rw-r--r--doc/src/images/qprogdlg-w.pngbin0 -> 830 bytes-rw-r--r--doc/src/images/qradialgradient-pad.pngbin0 -> 11385 bytes-rw-r--r--doc/src/images/qradialgradient-reflect.pngbin0 -> 33668 bytes-rw-r--r--doc/src/images/qradialgradient-repeat.pngbin0 -> 40528 bytes-rw-r--r--doc/src/images/qrect-coordinates.pngbin0 -> 22218 bytes-rw-r--r--doc/src/images/qrect-diagram-one.pngbin0 -> 9616 bytes-rw-r--r--doc/src/images/qrect-diagram-three.pngbin0 -> 9458 bytes-rw-r--r--doc/src/images/qrect-diagram-two.pngbin0 -> 9378 bytes-rw-r--r--doc/src/images/qrect-diagram-zero.pngbin0 -> 5198 bytes-rw-r--r--doc/src/images/qrect-intersect.pngbin0 -> 8742 bytes-rw-r--r--doc/src/images/qrect-unite.pngbin0 -> 4626 bytes-rw-r--r--doc/src/images/qrectf-coordinates.pngbin0 -> 21749 bytes-rw-r--r--doc/src/images/qrectf-diagram-one.pngbin0 -> 9594 bytes-rw-r--r--doc/src/images/qrectf-diagram-three.pngbin0 -> 9392 bytes-rw-r--r--doc/src/images/qrectf-diagram-two.pngbin0 -> 9387 bytes-rw-r--r--doc/src/images/qscrollarea-noscrollbars.pngbin0 -> 54671 bytes-rw-r--r--doc/src/images/qscrollarea-onescrollbar.pngbin0 -> 77476 bytes-rw-r--r--doc/src/images/qscrollarea-twoscrollbars.pngbin0 -> 78046 bytes-rw-r--r--doc/src/images/qscrollbar-picture.pngbin0 -> 6568 bytes-rw-r--r--doc/src/images/qscrollbar-values.pngbin0 -> 15902 bytes-rw-r--r--doc/src/images/qscrollview-cl.pngbin0 -> 8579 bytes-rw-r--r--doc/src/images/qscrollview-vp.pngbin0 -> 6302 bytes-rw-r--r--doc/src/images/qscrollview-vp2.pngbin0 -> 7720 bytes-rw-r--r--doc/src/images/qsortfilterproxymodel-sorting.pngbin0 -> 11005 bytes-rw-r--r--doc/src/images/qspinbox-plusminus.pngbin0 -> 375 bytes-rw-r--r--doc/src/images/qspinbox-updown.pngbin0 -> 402 bytes-rw-r--r--doc/src/images/qstatustipevent-action.pngbin0 -> 10741 bytes-rw-r--r--doc/src/images/qstatustipevent-widget.pngbin0 -> 9417 bytes-rw-r--r--doc/src/images/qstyle-comboboxes.pngbin0 -> 19437 bytes-rw-r--r--doc/src/images/qstyleoptiontoolbar-position.pngbin0 -> 13707 bytes-rw-r--r--doc/src/images/qt-colors.pngbin0 -> 3711 bytes-rw-r--r--doc/src/images/qt-embedded-accelerateddriver.pngbin0 -> 22753 bytes-rw-r--r--doc/src/images/qt-embedded-architecture.pngbin0 -> 37198 bytes-rw-r--r--doc/src/images/qt-embedded-architecture2.pngbin0 -> 98633 bytes-rw-r--r--doc/src/images/qt-embedded-characterinputlayer.pngbin0 -> 46629 bytes-rw-r--r--doc/src/images/qt-embedded-clamshellphone-closed.pngbin0 -> 19313 bytes-rw-r--r--doc/src/images/qt-embedded-clamshellphone-pressed.pngbin0 -> 74449 bytes-rw-r--r--doc/src/images/qt-embedded-clamshellphone.pngbin0 -> 71951 bytes-rw-r--r--doc/src/images/qt-embedded-client.pngbin0 -> 16899 bytes-rw-r--r--doc/src/images/qt-embedded-clientrendering.pngbin0 -> 56074 bytes-rw-r--r--doc/src/images/qt-embedded-clientservercommunication.pngbin0 -> 45973 bytes-rw-r--r--doc/src/images/qt-embedded-drawingonscreen.pngbin0 -> 60716 bytes-rw-r--r--doc/src/images/qt-embedded-examples.pngbin0 -> 18243 bytes-rw-r--r--doc/src/images/qt-embedded-fontfeatures.pngbin0 -> 50773 bytes-rw-r--r--doc/src/images/qt-embedded-opengl1.pngbin0 -> 26209 bytes-rw-r--r--doc/src/images/qt-embedded-opengl2.pngbin0 -> 31047 bytes-rw-r--r--doc/src/images/qt-embedded-opengl3.pngbin0 -> 15287 bytes-rw-r--r--doc/src/images/qt-embedded-pda.pngbin0 -> 67286 bytes-rw-r--r--doc/src/images/qt-embedded-phone.pngbin0 -> 60687 bytes-rw-r--r--doc/src/images/qt-embedded-pointerhandlinglayer.pngbin0 -> 43394 bytes-rw-r--r--doc/src/images/qt-embedded-qconfigtool.pngbin0 -> 108429 bytes-rw-r--r--doc/src/images/qt-embedded-qvfbfilemenu.pngbin0 -> 24405 bytes-rw-r--r--doc/src/images/qt-embedded-qvfbviewmenu.pngbin0 -> 28380 bytes-rw-r--r--doc/src/images/qt-embedded-reserveregion.pngbin0 -> 71553 bytes-rw-r--r--doc/src/images/qt-embedded-runningapplication.pngbin0 -> 43384 bytes-rw-r--r--doc/src/images/qt-embedded-setwindowattribute.pngbin0 -> 52808 bytes-rw-r--r--doc/src/images/qt-embedded-virtualframebuffer.pngbin0 -> 102022 bytes-rw-r--r--doc/src/images/qt-embedded-vnc-screen.pngbin0 -> 51386 bytes-rw-r--r--doc/src/images/qt-fillrule-oddeven.pngbin0 -> 7057 bytes-rw-r--r--doc/src/images/qt-fillrule-winding.pngbin0 -> 7205 bytes-rw-r--r--doc/src/images/qt-for-wince-landscape.pngbin0 -> 115052 bytes-rw-r--r--doc/src/images/qt-logo.pngbin0 -> 5149 bytes-rw-r--r--doc/src/images/qt.pngbin0 -> 514 bytes-rw-r--r--doc/src/images/qtableitems.pngbin0 -> 2958 bytes-rw-r--r--doc/src/images/qtabletevent-tilt.pngbin0 -> 8312 bytes-rw-r--r--doc/src/images/qtableview-resized.pngbin0 -> 42232 bytes-rw-r--r--doc/src/images/qtconcurrent-progressdialog.pngbin0 -> 4608 bytes-rw-r--r--doc/src/images/qtconfig-appearance.pngbin0 -> 135939 bytes-rw-r--r--doc/src/images/qtdemo-small.pngbin0 -> 23755 bytes-rw-r--r--doc/src/images/qtdemo.pngbin0 -> 243710 bytes-rw-r--r--doc/src/images/qtdesignerextensions.pngbin0 -> 52694 bytes-rw-r--r--doc/src/images/qtdesignerscreenshot.pngbin0 -> 144869 bytes-rw-r--r--doc/src/images/qtextblock-fragments.pngbin0 -> 7910 bytes-rw-r--r--doc/src/images/qtextblock-sequence.pngbin0 -> 17445 bytes-rw-r--r--doc/src/images/qtextdocument-frames.pngbin0 -> 56766 bytes-rw-r--r--doc/src/images/qtextfragment-split.pngbin0 -> 18109 bytes-rw-r--r--doc/src/images/qtextframe-style.pngbin0 -> 29420 bytes-rw-r--r--doc/src/images/qtexttable-cells.pngbin0 -> 9080 bytes-rw-r--r--doc/src/images/qtexttableformat-cell.pngbin0 -> 24454 bytes-rw-r--r--doc/src/images/qtransform-combinedtransformation.pngbin0 -> 935 bytes-rw-r--r--doc/src/images/qtransform-combinedtransformation2.pngbin0 -> 930 bytes-rw-r--r--doc/src/images/qtransform-representation.pngbin0 -> 17892 bytes-rw-r--r--doc/src/images/qtransform-simpletransformation.pngbin0 -> 1201 bytes-rw-r--r--doc/src/images/qtscript-calculator-example.pngbin0 -> 8807 bytes-rw-r--r--doc/src/images/qtscript-calculator.pngbin0 -> 13259 bytes-rw-r--r--doc/src/images/qtscript-context2d.pngbin0 -> 21838 bytes-rw-r--r--doc/src/images/qtscript-debugger-small.pngbin0 -> 61249 bytes-rw-r--r--doc/src/images/qtscript-debugger.pngbin0 -> 127509 bytes-rw-r--r--doc/src/images/qtscript-examples.pngbin0 -> 6213 bytes-rw-r--r--doc/src/images/qtscripttools-examples.pngbin0 -> 3457 bytes-rw-r--r--doc/src/images/qtwizard-aero1.pngbin0 -> 11749 bytes-rw-r--r--doc/src/images/qtwizard-aero2.pngbin0 -> 16560 bytes-rw-r--r--doc/src/images/qtwizard-classic1.pngbin0 -> 39640 bytes-rw-r--r--doc/src/images/qtwizard-classic2.pngbin0 -> 8616 bytes-rw-r--r--doc/src/images/qtwizard-mac1.pngbin0 -> 25478 bytes-rw-r--r--doc/src/images/qtwizard-mac2.pngbin0 -> 29591 bytes-rw-r--r--doc/src/images/qtwizard-macpage.pngbin0 -> 23095 bytes-rw-r--r--doc/src/images/qtwizard-modern1.pngbin0 -> 45093 bytes-rw-r--r--doc/src/images/qtwizard-modern2.pngbin0 -> 15081 bytes-rw-r--r--doc/src/images/qtwizard-nonmacpage.pngbin0 -> 26557 bytes-rw-r--r--doc/src/images/querymodel-example.pngbin0 -> 30882 bytes-rw-r--r--doc/src/images/queuedcustomtype-example.pngbin0 -> 44851 bytes-rw-r--r--doc/src/images/qundoview.pngbin0 -> 5993 bytes-rw-r--r--doc/src/images/qurl-authority.pngbin0 -> 5099 bytes-rw-r--r--doc/src/images/qurl-authority2.pngbin0 -> 2350 bytes-rw-r--r--doc/src/images/qurl-authority3.pngbin0 -> 3552 bytes-rw-r--r--doc/src/images/qurl-fragment.pngbin0 -> 2333 bytes-rw-r--r--doc/src/images/qurl-ftppath.pngbin0 -> 1974 bytes-rw-r--r--doc/src/images/qurl-mailtopath.pngbin0 -> 1679 bytes-rw-r--r--doc/src/images/qurl-querystring.pngbin0 -> 2955 bytes-rw-r--r--doc/src/images/qvbox-m.pngbin0 -> 274 bytes-rw-r--r--doc/src/images/qvboxlayout-with-5-children.pngbin0 -> 2974 bytes-rw-r--r--doc/src/images/qwebview-diagram.pngbin0 -> 9036 bytes-rw-r--r--doc/src/images/qwebview-url.pngbin0 -> 191610 bytes-rw-r--r--doc/src/images/qwindowsstyle.pngbin0 -> 26349 bytes-rw-r--r--doc/src/images/qwindowsxpstyle.pngbin0 -> 20847 bytes-rw-r--r--doc/src/images/qwsserver_keyboardfilter.pngbin0 -> 15553 bytes-rw-r--r--doc/src/images/radialGradient.pngbin0 -> 5692 bytes-rw-r--r--doc/src/images/recentfiles-example.pngbin0 -> 5400 bytes-rw-r--r--doc/src/images/recipes-example.pngbin0 -> 44457 bytes-rw-r--r--doc/src/images/regexp-example.pngbin0 -> 16250 bytes-rw-r--r--doc/src/images/relationaltable.pngbin0 -> 4274 bytes-rw-r--r--doc/src/images/relationaltablemodel-example.pngbin0 -> 10188 bytes-rw-r--r--doc/src/images/remotecontrolledcar-car-example.pngbin0 -> 8833 bytes-rw-r--r--doc/src/images/remotecontrolledcar-controller-example.pngbin0 -> 6535 bytes-rw-r--r--doc/src/images/resources.pngbin0 -> 49998 bytes-rw-r--r--doc/src/images/richtext-document.pngbin0 -> 8126 bytes-rw-r--r--doc/src/images/richtext-examples.pngbin0 -> 6173 bytes-rw-r--r--doc/src/images/rintersect.pngbin0 -> 221 bytes-rw-r--r--doc/src/images/rsslistingexample.pngbin0 -> 35923 bytes-rw-r--r--doc/src/images/rsubtract.pngbin0 -> 224 bytes-rw-r--r--doc/src/images/runion.pngbin0 -> 221 bytes-rw-r--r--doc/src/images/rxor.pngbin0 -> 222 bytes-rw-r--r--doc/src/images/samplebuffers-example.pngbin0 -> 16292 bytes-rw-r--r--doc/src/images/saxbookmarks-example.pngbin0 -> 26219 bytes-rw-r--r--doc/src/images/screenshot-example.pngbin0 -> 24606 bytes-rw-r--r--doc/src/images/scribble-example.pngbin0 -> 9053 bytes-rw-r--r--doc/src/images/sdi-example.pngbin0 -> 28749 bytes-rw-r--r--doc/src/images/securesocketclient.pngbin0 -> 12056 bytes-rw-r--r--doc/src/images/securesocketclient2.pngbin0 -> 15532 bytes-rw-r--r--doc/src/images/selected-items1.pngbin0 -> 31870 bytes-rw-r--r--doc/src/images/selected-items2.pngbin0 -> 32025 bytes-rw-r--r--doc/src/images/selected-items3.pngbin0 -> 32100 bytes-rw-r--r--doc/src/images/selection-extended.pngbin0 -> 11401 bytes-rw-r--r--doc/src/images/selection-multi.pngbin0 -> 13058 bytes-rw-r--r--doc/src/images/selection-single.pngbin0 -> 7849 bytes-rw-r--r--doc/src/images/session.pngbin0 -> 6265 bytes-rw-r--r--doc/src/images/settingseditor-example.pngbin0 -> 19473 bytes-rw-r--r--doc/src/images/shapedclock-dragging.pngbin0 -> 18913 bytes-rw-r--r--doc/src/images/shapedclock-example.pngbin0 -> 15701 bytes-rw-r--r--doc/src/images/shareddirmodel.pngbin0 -> 33024 bytes-rw-r--r--doc/src/images/sharedmemory-example_1.pngbin0 -> 14926 bytes-rw-r--r--doc/src/images/sharedmemory-example_2.pngbin0 -> 21976 bytes-rw-r--r--doc/src/images/sharedmodel-tableviews.pngbin0 -> 16811 bytes-rw-r--r--doc/src/images/sharedselection-tableviews.pngbin0 -> 14212 bytes-rw-r--r--doc/src/images/signals-n-slots-aw-nat.pngbin0 -> 9393 bytes-rw-r--r--doc/src/images/simpledommodel-example.pngbin0 -> 18442 bytes-rw-r--r--doc/src/images/simpletextviewer-example.pngbin0 -> 63132 bytes-rw-r--r--doc/src/images/simpletextviewer-findfiledialog.pngbin0 -> 12421 bytes-rw-r--r--doc/src/images/simpletextviewer-mainwindow.pngbin0 -> 14167 bytes-rw-r--r--doc/src/images/simpletreemodel-example.pngbin0 -> 21791 bytes-rw-r--r--doc/src/images/simplewidgetmapper-example.pngbin0 -> 9848 bytes-rw-r--r--doc/src/images/simplewizard-page1.pngbin0 -> 12994 bytes-rw-r--r--doc/src/images/simplewizard-page2.pngbin0 -> 12041 bytes-rw-r--r--doc/src/images/simplewizard-page3.pngbin0 -> 10619 bytes-rw-r--r--doc/src/images/simplewizard.pngbin0 -> 7053 bytes-rw-r--r--doc/src/images/sipdialog-closed.pngbin0 -> 9275 bytes-rw-r--r--doc/src/images/sipdialog-opened.pngbin0 -> 11220 bytes-rw-r--r--doc/src/images/sliders-example.pngbin0 -> 9317 bytes-rw-r--r--doc/src/images/smooth.pngbin0 -> 371 bytes-rw-r--r--doc/src/images/sortingmodel-example.pngbin0 -> 41115 bytes-rw-r--r--doc/src/images/spinboxdelegate-example.pngbin0 -> 4762 bytes-rw-r--r--doc/src/images/spinboxes-example.pngbin0 -> 24842 bytes-rw-r--r--doc/src/images/spreadsheet-demo.pngbin0 -> 40187 bytes-rw-r--r--doc/src/images/sql-examples.pngbin0 -> 17669 bytes-rw-r--r--doc/src/images/sql-widget-mapper.pngbin0 -> 13040 bytes-rw-r--r--doc/src/images/sqlbrowser-demo.pngbin0 -> 20671 bytes-rw-r--r--doc/src/images/standard-views.pngbin0 -> 78278 bytes-rw-r--r--doc/src/images/standarddialogs-example.pngbin0 -> 18852 bytes-rw-r--r--doc/src/images/stardelegate.pngbin0 -> 12230 bytes-rw-r--r--doc/src/images/stliterators1.pngbin0 -> 1671 bytes-rw-r--r--doc/src/images/stringlistmodel.pngbin0 -> 4849 bytes-rw-r--r--doc/src/images/stylepluginexample.pngbin0 -> 5259 bytes-rw-r--r--doc/src/images/styles-3d.pngbin0 -> 10753 bytes-rw-r--r--doc/src/images/styles-aliasing.pngbin0 -> 10078 bytes-rw-r--r--doc/src/images/styles-disabledwood.pngbin0 -> 134596 bytes-rw-r--r--doc/src/images/styles-enabledwood.pngbin0 -> 130767 bytes-rw-r--r--doc/src/images/styles-woodbuttons.pngbin0 -> 25032 bytes-rw-r--r--doc/src/images/stylesheet-border-image-normal.pngbin0 -> 5769 bytes-rw-r--r--doc/src/images/stylesheet-border-image-stretched.pngbin0 -> 12170 bytes-rw-r--r--doc/src/images/stylesheet-border-image-wrong.pngbin0 -> 12887 bytes-rw-r--r--doc/src/images/stylesheet-boxmodel.pngbin0 -> 18144 bytes-rw-r--r--doc/src/images/stylesheet-branch-closed.pngbin0 -> 334 bytes-rw-r--r--doc/src/images/stylesheet-branch-end.pngbin0 -> 182 bytes-rw-r--r--doc/src/images/stylesheet-branch-more.pngbin0 -> 136 bytes-rw-r--r--doc/src/images/stylesheet-branch-open.pngbin0 -> 346 bytes-rw-r--r--doc/src/images/stylesheet-coffee-cleanlooks.pngbin0 -> 14820 bytes-rw-r--r--doc/src/images/stylesheet-coffee-plastique.pngbin0 -> 18179 bytes-rw-r--r--doc/src/images/stylesheet-coffee-xp.pngbin0 -> 14200 bytes-rw-r--r--doc/src/images/stylesheet-designer-options.pngbin0 -> 8421 bytes-rw-r--r--doc/src/images/stylesheet-pagefold-mac.pngbin0 -> 20618 bytes-rw-r--r--doc/src/images/stylesheet-pagefold.pngbin0 -> 15989 bytes-rw-r--r--doc/src/images/stylesheet-redbutton1.pngbin0 -> 378 bytes-rw-r--r--doc/src/images/stylesheet-redbutton2.pngbin0 -> 410 bytes-rw-r--r--doc/src/images/stylesheet-redbutton3.pngbin0 -> 664 bytes-rw-r--r--doc/src/images/stylesheet-scrollbar1.pngbin0 -> 150 bytes-rw-r--r--doc/src/images/stylesheet-scrollbar2.pngbin0 -> 169 bytes-rw-r--r--doc/src/images/stylesheet-treeview.pngbin0 -> 2412 bytes-rw-r--r--doc/src/images/stylesheet-vline.pngbin0 -> 124 bytes-rw-r--r--doc/src/images/svg-image.pngbin0 -> 42578 bytes-rw-r--r--doc/src/images/svgviewer-example.pngbin0 -> 48184 bytes-rw-r--r--doc/src/images/syntaxhighlighter-example.pngbin0 -> 12398 bytes-rw-r--r--doc/src/images/system-tray.pngbin0 -> 6326 bytes-rw-r--r--doc/src/images/systemtray-editor.pngbin0 -> 18147 bytes-rw-r--r--doc/src/images/systemtray-example.pngbin0 -> 47588 bytes-rw-r--r--doc/src/images/t1.pngbin0 -> 1002 bytes-rw-r--r--doc/src/images/t10.pngbin0 -> 3006 bytes-rw-r--r--doc/src/images/t11.pngbin0 -> 3530 bytes-rw-r--r--doc/src/images/t12.pngbin0 -> 3928 bytes-rw-r--r--doc/src/images/t13.pngbin0 -> 5452 bytes-rw-r--r--doc/src/images/t14.pngbin0 -> 5490 bytes-rw-r--r--doc/src/images/t2.pngbin0 -> 1328 bytes-rw-r--r--doc/src/images/t3.pngbin0 -> 1908 bytes-rw-r--r--doc/src/images/t4.pngbin0 -> 1751 bytes-rw-r--r--doc/src/images/t5.pngbin0 -> 1977 bytes-rw-r--r--doc/src/images/t6.pngbin0 -> 2634 bytes-rw-r--r--doc/src/images/t7.pngbin0 -> 2676 bytes-rw-r--r--doc/src/images/t8.pngbin0 -> 3435 bytes-rw-r--r--doc/src/images/t9.pngbin0 -> 2983 bytes-rw-r--r--doc/src/images/t9_1.pngbin0 -> 141 bytes-rw-r--r--doc/src/images/t9_2.pngbin0 -> 162 bytes-rw-r--r--doc/src/images/tabWidget-stylesheet1.pngbin0 -> 1321 bytes-rw-r--r--doc/src/images/tabWidget-stylesheet2.pngbin0 -> 1434 bytes-rw-r--r--doc/src/images/tabWidget-stylesheet3.pngbin0 -> 1206 bytes-rw-r--r--doc/src/images/tabdialog-example.pngbin0 -> 11885 bytes-rw-r--r--doc/src/images/tableWidget-stylesheet.pngbin0 -> 3478 bytes-rw-r--r--doc/src/images/tablemodel-example.pngbin0 -> 20904 bytes-rw-r--r--doc/src/images/tabletexample.pngbin0 -> 9900 bytes-rw-r--r--doc/src/images/taskmenuextension-dialog.pngbin0 -> 15163 bytes-rw-r--r--doc/src/images/taskmenuextension-example-faded.pngbin0 -> 5596 bytes-rw-r--r--doc/src/images/taskmenuextension-example.pngbin0 -> 5014 bytes-rw-r--r--doc/src/images/taskmenuextension-menu.pngbin0 -> 3067 bytes-rw-r--r--doc/src/images/tcpstream.pngbin0 -> 11470 bytes-rw-r--r--doc/src/images/tetrix-example.pngbin0 -> 9980 bytes-rw-r--r--doc/src/images/textedit-demo.pngbin0 -> 46980 bytes-rw-r--r--doc/src/images/textfinder-example-find.pngbin0 -> 15837 bytes-rw-r--r--doc/src/images/textfinder-example-find2.pngbin0 -> 15745 bytes-rw-r--r--doc/src/images/textfinder-example-userinterface.pngbin0 -> 7900 bytes-rw-r--r--doc/src/images/textfinder-example.pngbin0 -> 15424 bytes-rw-r--r--doc/src/images/textobject-example.pngbin0 -> 16591 bytes-rw-r--r--doc/src/images/texttable-merge.pngbin0 -> 746 bytes-rw-r--r--doc/src/images/texttable-split.pngbin0 -> 753 bytes-rw-r--r--doc/src/images/textures-example.pngbin0 -> 46640 bytes-rw-r--r--doc/src/images/thread-examples.pngbin0 -> 30113 bytes-rw-r--r--doc/src/images/threadedfortuneserver-example.pngbin0 -> 8528 bytes-rw-r--r--doc/src/images/threadsandobjects.pngbin0 -> 66096 bytes-rw-r--r--doc/src/images/tool-examples.pngbin0 -> 5958 bytes-rw-r--r--doc/src/images/tooltips-example.pngbin0 -> 12479 bytes-rw-r--r--doc/src/images/torrent-example.pngbin0 -> 18915 bytes-rw-r--r--doc/src/images/trafficinfo-example.pngbin0 -> 28082 bytes-rw-r--r--doc/src/images/transformations-example.pngbin0 -> 15993 bytes-rw-r--r--doc/src/images/treemodel-structure.pngbin0 -> 8362 bytes-rw-r--r--doc/src/images/treemodelcompleter-example.pngbin0 -> 25235 bytes-rw-r--r--doc/src/images/trivialwizard-example-conclusion.pngbin0 -> 9859 bytes-rw-r--r--doc/src/images/trivialwizard-example-flow.pngbin0 -> 12730 bytes-rw-r--r--doc/src/images/trivialwizard-example-introduction.pngbin0 -> 9994 bytes-rw-r--r--doc/src/images/trivialwizard-example-registration.pngbin0 -> 10644 bytes-rw-r--r--doc/src/images/trolltech-logo.pngbin0 -> 1512 bytes-rw-r--r--doc/src/images/tutorial8-layout.pngbin0 -> 6703 bytes-rw-r--r--doc/src/images/tutorial8-reallayout.pngbin0 -> 1254 bytes-rw-r--r--doc/src/images/udppackets.pngbin0 -> 24707 bytes-rw-r--r--doc/src/images/uitools-examples.pngbin0 -> 12021 bytes-rw-r--r--doc/src/images/undodemo.pngbin0 -> 84941 bytes-rw-r--r--doc/src/images/undoframeworkexample.pngbin0 -> 18026 bytes-rw-r--r--doc/src/images/unsmooth.pngbin0 -> 272 bytes-rw-r--r--doc/src/images/wVista-Cert-border-small.pngbin0 -> 12371 bytes-rw-r--r--doc/src/images/webkit-examples.pngbin0 -> 26874 bytes-rw-r--r--doc/src/images/webkit-netscape-plugin.pngbin0 -> 176059 bytes-rw-r--r--doc/src/images/whatsthis.pngbin0 -> 2983 bytes-rw-r--r--doc/src/images/widget-examples.pngbin0 -> 6128 bytes-rw-r--r--doc/src/images/widgetdelegate.pngbin0 -> 7449 bytes-rw-r--r--doc/src/images/widgetmapper-combo-mapping.pngbin0 -> 63045 bytes-rw-r--r--doc/src/images/widgetmapper-simple-mapping.pngbin0 -> 55498 bytes-rw-r--r--doc/src/images/widgetmapper-sql-mapping-table.pngbin0 -> 39681 bytes-rw-r--r--doc/src/images/widgetmapper-sql-mapping.pngbin0 -> 60265 bytes-rw-r--r--doc/src/images/widgets-examples.pngbin0 -> 6128 bytes-rw-r--r--doc/src/images/widgets-tutorial-childwidget.pngbin0 -> 8547 bytes-rw-r--r--doc/src/images/widgets-tutorial-nestedlayouts.pngbin0 -> 23287 bytes-rw-r--r--doc/src/images/widgets-tutorial-toplevel.pngbin0 -> 6087 bytes-rw-r--r--doc/src/images/widgets-tutorial-windowlayout.pngbin0 -> 5849 bytes-rw-r--r--doc/src/images/wiggly-example.pngbin0 -> 6546 bytes-rw-r--r--doc/src/images/windowflags-example.pngbin0 -> 22945 bytes-rw-r--r--doc/src/images/windowflags_controllerwindow.pngbin0 -> 20898 bytes-rw-r--r--doc/src/images/windowflags_previewwindow.pngbin0 -> 4716 bytes-rw-r--r--doc/src/images/windows-calendarwidget.pngbin0 -> 5055 bytes-rw-r--r--doc/src/images/windows-checkbox.pngbin0 -> 929 bytes-rw-r--r--doc/src/images/windows-combobox.pngbin0 -> 1002 bytes-rw-r--r--doc/src/images/windows-dateedit.pngbin0 -> 817 bytes-rw-r--r--doc/src/images/windows-datetimeedit.pngbin0 -> 1026 bytes-rw-r--r--doc/src/images/windows-dial.pngbin0 -> 4598 bytes-rw-r--r--doc/src/images/windows-doublespinbox.pngbin0 -> 762 bytes-rw-r--r--doc/src/images/windows-fontcombobox.pngbin0 -> 1022 bytes-rw-r--r--doc/src/images/windows-frame.pngbin0 -> 1837 bytes-rw-r--r--doc/src/images/windows-groupbox.pngbin0 -> 1617 bytes-rw-r--r--doc/src/images/windows-horizontalscrollbar.pngbin0 -> 566 bytes-rw-r--r--doc/src/images/windows-label.pngbin0 -> 696 bytes-rw-r--r--doc/src/images/windows-lcdnumber.pngbin0 -> 491 bytes-rw-r--r--doc/src/images/windows-lineedit.pngbin0 -> 884 bytes-rw-r--r--doc/src/images/windows-listview.pngbin0 -> 2781 bytes-rw-r--r--doc/src/images/windows-progressbar.pngbin0 -> 674 bytes-rw-r--r--doc/src/images/windows-pushbutton.pngbin0 -> 722 bytes-rw-r--r--doc/src/images/windows-radiobutton.pngbin0 -> 1005 bytes-rw-r--r--doc/src/images/windows-slider.pngbin0 -> 485 bytes-rw-r--r--doc/src/images/windows-spinbox.pngbin0 -> 667 bytes-rw-r--r--doc/src/images/windows-tableview.pngbin0 -> 1738 bytes-rw-r--r--doc/src/images/windows-tabwidget.pngbin0 -> 1707 bytes-rw-r--r--doc/src/images/windows-textedit.pngbin0 -> 3192 bytes-rw-r--r--doc/src/images/windows-timeedit.pngbin0 -> 873 bytes-rw-r--r--doc/src/images/windows-toolbox.pngbin0 -> 925 bytes-rw-r--r--doc/src/images/windows-toolbutton.pngbin0 -> 771 bytes-rw-r--r--doc/src/images/windows-treeview.pngbin0 -> 2723 bytes-rw-r--r--doc/src/images/windowsvista-calendarwidget.pngbin0 -> 5144 bytes-rw-r--r--doc/src/images/windowsvista-checkbox.pngbin0 -> 1115 bytes-rw-r--r--doc/src/images/windowsvista-combobox.pngbin0 -> 1457 bytes-rw-r--r--doc/src/images/windowsvista-dateedit.pngbin0 -> 855 bytes-rw-r--r--doc/src/images/windowsvista-datetimeedit.pngbin0 -> 1034 bytes-rw-r--r--doc/src/images/windowsvista-dial.pngbin0 -> 2431 bytes-rw-r--r--doc/src/images/windowsvista-doublespinbox.pngbin0 -> 852 bytes-rw-r--r--doc/src/images/windowsvista-fontcombobox.pngbin0 -> 919 bytes-rw-r--r--doc/src/images/windowsvista-frame.pngbin0 -> 1800 bytes-rw-r--r--doc/src/images/windowsvista-groupbox.pngbin0 -> 1991 bytes-rw-r--r--doc/src/images/windowsvista-horizontalscrollbar.pngbin0 -> 1049 bytes-rw-r--r--doc/src/images/windowsvista-label.pngbin0 -> 599 bytes-rw-r--r--doc/src/images/windowsvista-lcdnumber.pngbin0 -> 491 bytes-rw-r--r--doc/src/images/windowsvista-lineedit.pngbin0 -> 873 bytes-rw-r--r--doc/src/images/windowsvista-listview.pngbin0 -> 6872 bytes-rw-r--r--doc/src/images/windowsvista-progressbar.pngbin0 -> 1437 bytes-rw-r--r--doc/src/images/windowsvista-pushbutton.pngbin0 -> 1085 bytes-rw-r--r--doc/src/images/windowsvista-radiobutton.pngbin0 -> 1266 bytes-rw-r--r--doc/src/images/windowsvista-slider.pngbin0 -> 624 bytes-rw-r--r--doc/src/images/windowsvista-spinbox.pngbin0 -> 767 bytes-rw-r--r--doc/src/images/windowsvista-tableview.pngbin0 -> 3941 bytes-rw-r--r--doc/src/images/windowsvista-tabwidget.pngbin0 -> 3286 bytes-rw-r--r--doc/src/images/windowsvista-textedit.pngbin0 -> 3122 bytes-rw-r--r--doc/src/images/windowsvista-timeedit.pngbin0 -> 764 bytes-rw-r--r--doc/src/images/windowsvista-toolbox.pngbin0 -> 891 bytes-rw-r--r--doc/src/images/windowsvista-toolbutton.pngbin0 -> 981 bytes-rw-r--r--doc/src/images/windowsvista-treeview.pngbin0 -> 5760 bytes-rw-r--r--doc/src/images/windowsxp-calendarwidget.pngbin0 -> 5009 bytes-rw-r--r--doc/src/images/windowsxp-checkbox.pngbin0 -> 1006 bytes-rw-r--r--doc/src/images/windowsxp-combobox.pngbin0 -> 1450 bytes-rw-r--r--doc/src/images/windowsxp-dateedit.pngbin0 -> 1107 bytes-rw-r--r--doc/src/images/windowsxp-datetimeedit.pngbin0 -> 1321 bytes-rw-r--r--doc/src/images/windowsxp-dial.pngbin0 -> 4598 bytes-rw-r--r--doc/src/images/windowsxp-doublespinbox.pngbin0 -> 1065 bytes-rw-r--r--doc/src/images/windowsxp-fontcombobox.pngbin0 -> 1408 bytes-rw-r--r--doc/src/images/windowsxp-frame.pngbin0 -> 1837 bytes-rw-r--r--doc/src/images/windowsxp-groupbox.pngbin0 -> 2016 bytes-rw-r--r--doc/src/images/windowsxp-horizontalscrollbar.pngbin0 -> 1498 bytes-rw-r--r--doc/src/images/windowsxp-label.pngbin0 -> 696 bytes-rw-r--r--doc/src/images/windowsxp-lcdnumber.pngbin0 -> 493 bytes-rw-r--r--doc/src/images/windowsxp-lineedit.pngbin0 -> 861 bytes-rw-r--r--doc/src/images/windowsxp-listview.pngbin0 -> 5391 bytes-rw-r--r--doc/src/images/windowsxp-menu.pngbin0 -> 1442 bytes-rw-r--r--doc/src/images/windowsxp-progressbar.pngbin0 -> 1007 bytes-rw-r--r--doc/src/images/windowsxp-pushbutton.pngbin0 -> 1462 bytes-rw-r--r--doc/src/images/windowsxp-radiobutton.pngbin0 -> 1270 bytes-rw-r--r--doc/src/images/windowsxp-slider.pngbin0 -> 732 bytes-rw-r--r--doc/src/images/windowsxp-spinbox.pngbin0 -> 974 bytes-rw-r--r--doc/src/images/windowsxp-tableview.pngbin0 -> 3204 bytes-rw-r--r--doc/src/images/windowsxp-tabwidget.pngbin0 -> 5220 bytes-rw-r--r--doc/src/images/windowsxp-textedit.pngbin0 -> 3159 bytes-rw-r--r--doc/src/images/windowsxp-timeedit.pngbin0 -> 1172 bytes-rw-r--r--doc/src/images/windowsxp-toolbox.pngbin0 -> 925 bytes-rw-r--r--doc/src/images/windowsxp-toolbutton.pngbin0 -> 1549 bytes-rw-r--r--doc/src/images/windowsxp-treeview.pngbin0 -> 5795 bytes-rw-r--r--doc/src/images/worldtimeclock-connection.pngbin0 -> 12119 bytes-rw-r--r--doc/src/images/worldtimeclock-signalandslot.pngbin0 -> 9907 bytes-rw-r--r--doc/src/images/worldtimeclockbuilder-example.pngbin0 -> 8168 bytes-rw-r--r--doc/src/images/worldtimeclockplugin-example.pngbin0 -> 13232 bytes-rw-r--r--doc/src/images/x11_dependencies.pngbin0 -> 93480 bytes-rw-r--r--doc/src/images/xform.pngbin0 -> 50488 bytes-rw-r--r--doc/src/images/xml-examples.pngbin0 -> 8947 bytes-rw-r--r--doc/src/images/xmlstreamexample-filemenu.pngbin0 -> 9380 bytes-rw-r--r--doc/src/images/xmlstreamexample-helpmenu.pngbin0 -> 10856 bytes-rw-r--r--doc/src/images/xmlstreamexample-screenshot.pngbin0 -> 22323 bytes-rw-r--r--doc/src/index.qdoc244
-rw-r--r--doc/src/installation.qdoc759
-rw-r--r--doc/src/introtodbus.qdoc212
-rw-r--r--doc/src/ipc.qdoc91
-rw-r--r--doc/src/known-issues.qdoc151
-rw-r--r--doc/src/layout.qdoc381
-rw-r--r--doc/src/licenses.qdoc465
-rw-r--r--doc/src/linguist-manual.qdoc1513
-rw-r--r--doc/src/mac-differences.qdoc339
-rw-r--r--doc/src/mainclasses.qdoc51
-rw-r--r--doc/src/metaobjects.qdoc149
-rw-r--r--doc/src/moc.qdoc336
-rw-r--r--doc/src/model-view-programming.qdoc2447
-rw-r--r--doc/src/modules.qdoc105
-rw-r--r--doc/src/object.qdoc132
-rw-r--r--doc/src/objecttrees.qdoc117
-rw-r--r--doc/src/opensourceedition.qdoc91
-rw-r--r--doc/src/overviews.qdoc48
-rw-r--r--doc/src/paintsystem.qdoc485
-rw-r--r--doc/src/phonon-api.qdoc4993
-rw-r--r--doc/src/phonon.qdoc642
-rw-r--r--doc/src/platform-notes.qdoc740
-rw-r--r--doc/src/plugins-howto.qdoc471
-rw-r--r--doc/src/porting-qsa.qdoc475
-rw-r--r--doc/src/porting4-canvas.qdoc703
-rw-r--r--doc/src/porting4-designer.qdoc349
-rw-r--r--doc/src/porting4-modifiedvirtual.qdocinc63
-rw-r--r--doc/src/porting4-obsoletedmechanism.qdocinc3
-rw-r--r--doc/src/porting4-overview.qdoc367
-rw-r--r--doc/src/porting4-removedenumvalues.qdocinc6
-rw-r--r--doc/src/porting4-removedtypes.qdocinc1
-rw-r--r--doc/src/porting4-removedvariantfunctions.qdocinc16
-rw-r--r--doc/src/porting4-removedvirtual.qdocinc605
-rw-r--r--doc/src/porting4-renamedclasses.qdocinc3
-rw-r--r--doc/src/porting4-renamedenumvalues.qdocinc234
-rw-r--r--doc/src/porting4-renamedfunctions.qdocinc6
-rw-r--r--doc/src/porting4-renamedstatic.qdocinc3
-rw-r--r--doc/src/porting4-renamedtypes.qdocinc26
-rw-r--r--doc/src/porting4.qdoc4215
-rw-r--r--doc/src/printing.qdoc175
-rw-r--r--doc/src/properties.qdoc263
-rw-r--r--doc/src/q3asciicache.qdoc465
-rw-r--r--doc/src/q3asciidict.qdoc416
-rw-r--r--doc/src/q3cache.qdoc461
-rw-r--r--doc/src/q3dict.qdoc446
-rw-r--r--doc/src/q3intcache.qdoc446
-rw-r--r--doc/src/q3intdict.qdoc390
-rw-r--r--doc/src/q3memarray.qdoc523
-rw-r--r--doc/src/q3popupmenu.qdoc76
-rw-r--r--doc/src/q3ptrdict.qdoc388
-rw-r--r--doc/src/q3ptrlist.qdoc1157
-rw-r--r--doc/src/q3ptrqueue.qdoc230
-rw-r--r--doc/src/q3ptrstack.qdoc217
-rw-r--r--doc/src/q3ptrvector.qdoc427
-rw-r--r--doc/src/q3sqlfieldinfo.qdoc234
-rw-r--r--doc/src/q3sqlrecordinfo.qdoc89
-rw-r--r--doc/src/q3valuelist.qdoc569
-rw-r--r--doc/src/q3valuestack.qdoc149
-rw-r--r--doc/src/q3valuevector.qdoc274
-rw-r--r--doc/src/qalgorithms.qdoc648
-rw-r--r--doc/src/qaxcontainer.qdoc260
-rw-r--r--doc/src/qaxserver.qdoc898
-rw-r--r--doc/src/qcache.qdoc244
-rw-r--r--doc/src/qcolormap.qdoc152
-rw-r--r--doc/src/qdbusadaptors.qdoc518
-rw-r--r--doc/src/qdesktopwidget.qdoc240
-rw-r--r--doc/src/qiterator.qdoc1431
-rw-r--r--doc/src/qmake-manual.qdoc4175
-rw-r--r--doc/src/qmsdev.qdoc137
-rw-r--r--doc/src/qnamespace.qdoc2660
-rw-r--r--doc/src/qpagesetupdialog.qdoc84
-rw-r--r--doc/src/qpaintdevice.qdoc289
-rw-r--r--doc/src/qpair.qdoc229
-rw-r--r--doc/src/qpatternistdummy.cpp1010
-rw-r--r--doc/src/qplugin.qdoc135
-rw-r--r--doc/src/qprintdialog.qdoc64
-rw-r--r--doc/src/qprinterinfo.qdoc137
-rw-r--r--doc/src/qset.qdoc942
-rw-r--r--doc/src/qsignalspy.qdoc98
-rw-r--r--doc/src/qsizepolicy.qdoc522
-rw-r--r--doc/src/qsql.qdoc138
-rw-r--r--doc/src/qt-conf.qdoc136
-rw-r--r--doc/src/qt-embedded.qdoc76
-rw-r--r--doc/src/qt3support.qdoc81
-rw-r--r--doc/src/qt3to4.qdoc179
-rw-r--r--doc/src/qt4-accessibility.qdoc163
-rw-r--r--doc/src/qt4-arthur.qdoc336
-rw-r--r--doc/src/qt4-designer.qdoc298
-rw-r--r--doc/src/qt4-interview.qdoc293
-rw-r--r--doc/src/qt4-intro.qdoc641
-rw-r--r--doc/src/qt4-mainwindow.qdoc250
-rw-r--r--doc/src/qt4-network.qdoc243
-rw-r--r--doc/src/qt4-scribe.qdoc257
-rw-r--r--doc/src/qt4-sql.qdoc175
-rw-r--r--doc/src/qt4-styles.qdoc157
-rw-r--r--doc/src/qt4-threads.qdoc101
-rw-r--r--doc/src/qt4-tulip.qdoc200
-rw-r--r--doc/src/qtassistant.qdoc54
-rw-r--r--doc/src/qtcocoa-known-issues.qdoc168
-rw-r--r--doc/src/qtconfig.qdoc56
-rw-r--r--doc/src/qtcore.qdoc60
-rw-r--r--doc/src/qtdbus.qdoc124
-rw-r--r--doc/src/qtdemo.qdoc67
-rw-r--r--doc/src/qtdesigner.qdoc1541
-rw-r--r--doc/src/qtendian.qdoc168
-rw-r--r--doc/src/qtestevent.qdoc191
-rw-r--r--doc/src/qtestlib.qdoc779
-rw-r--r--doc/src/qtgui.qdoc59
-rw-r--r--doc/src/qthelp.qdoc403
-rw-r--r--doc/src/qtmac-as-native.qdoc202
-rw-r--r--doc/src/qtmain.qdoc93
-rw-r--r--doc/src/qtnetwork.qdoc358
-rw-r--r--doc/src/qtopengl.qdoc163
-rw-r--r--doc/src/qtopiacore-architecture.qdoc338
-rw-r--r--doc/src/qtopiacore-displaymanagement.qdoc205
-rw-r--r--doc/src/qtopiacore-opengl.qdoc227
-rw-r--r--doc/src/qtopiacore.qdoc114
-rw-r--r--doc/src/qtscript.qdoc1934
-rw-r--r--doc/src/qtscriptdebugger-manual.qdoc437
-rw-r--r--doc/src/qtscriptextensions.qdoc126
-rw-r--r--doc/src/qtscripttools.qdoc72
-rw-r--r--doc/src/qtsql.qdoc568
-rw-r--r--doc/src/qtsvg.qdoc135
-rw-r--r--doc/src/qttest.qdoc70
-rw-r--r--doc/src/qtuiloader.qdoc82
-rw-r--r--doc/src/qtwebkit.qdoc189
-rw-r--r--doc/src/qtxml.qdoc615
-rw-r--r--doc/src/qtxmlpatterns.qdoc893
-rw-r--r--doc/src/qundo.qdoc113
-rw-r--r--doc/src/qvarlengtharray.qdoc274
-rw-r--r--doc/src/qwaitcondition.qdoc188
-rw-r--r--doc/src/rcc.qdoc96
-rw-r--r--doc/src/resources.qdoc192
-rw-r--r--doc/src/richtext.qdoc1073
-rw-r--r--doc/src/session.qdoc177
-rw-r--r--doc/src/signalsandslots.qdoc418
-rw-r--r--doc/src/snippets/accessibilityfactorysnippet.cpp68
-rw-r--r--doc/src/snippets/accessibilitypluginsnippet.cpp75
-rw-r--r--doc/src/snippets/accessibilityslidersnippet.cpp262
-rw-r--r--doc/src/snippets/alphachannel.cpp114
-rw-r--r--doc/src/snippets/audioeffects.cpp42
-rw-r--r--doc/src/snippets/brush/brush.cpp87
-rw-r--r--doc/src/snippets/brush/brush.pro1
-rw-r--r--doc/src/snippets/brush/gradientcreationsnippet.cpp63
-rw-r--r--doc/src/snippets/brushstyles/brushstyles.pro12
-rw-r--r--doc/src/snippets/brushstyles/main.cpp52
-rw-r--r--doc/src/snippets/brushstyles/qt-logo.pngbin0 -> 1422 bytes-rw-r--r--doc/src/snippets/brushstyles/renderarea.cpp79
-rw-r--r--doc/src/snippets/brushstyles/renderarea.h62
-rw-r--r--doc/src/snippets/brushstyles/stylewidget.cpp145
-rw-r--r--doc/src/snippets/brushstyles/stylewidget.h99
-rw-r--r--doc/src/snippets/buffer/buffer.cpp125
-rw-r--r--doc/src/snippets/buffer/buffer.pro14
-rw-r--r--doc/src/snippets/clipboard/clipboard.pro3
-rw-r--r--doc/src/snippets/clipboard/clipwindow.cpp104
-rw-r--r--doc/src/snippets/clipboard/clipwindow.h73
-rw-r--r--doc/src/snippets/clipboard/main.cpp53
-rw-r--r--doc/src/snippets/code/doc.src.qtscripttools.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_activeqt-dumpcpp.qdoc25
-rw-r--r--doc/src/snippets/code/doc_src_appicon.qdoc23
-rw-r--r--doc/src/snippets/code/doc_src_assistant-manual.qdoc110
-rw-r--r--doc/src/snippets/code/doc_src_atomic-operations.qdoc71
-rw-r--r--doc/src/snippets/code/doc_src_compiler-notes.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_containers.qdoc235
-rw-r--r--doc/src/snippets/code/doc_src_coordsys.qdoc47
-rw-r--r--doc/src/snippets/code/doc_src_debug.qdoc24
-rw-r--r--doc/src/snippets/code/doc_src_deployment.qdoc414
-rw-r--r--doc/src/snippets/code/doc_src_designer-manual.qdoc98
-rw-r--r--doc/src/snippets/code/doc_src_dnd.qdoc34
-rw-r--r--doc/src/snippets/code/doc_src_emb-charinput.qdoc20
-rw-r--r--doc/src/snippets/code/doc_src_emb-crosscompiling.qdoc36
-rw-r--r--doc/src/snippets/code/doc_src_emb-envvars.qdoc38
-rw-r--r--doc/src/snippets/code/doc_src_emb-features.qdoc18
-rw-r--r--doc/src/snippets/code/doc_src_emb-fonts.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_emb-install.qdoc37
-rw-r--r--doc/src/snippets/code/doc_src_emb-performance.qdoc36
-rw-r--r--doc/src/snippets/code/doc_src_emb-pointer.qdoc68
-rw-r--r--doc/src/snippets/code/doc_src_emb-qvfb.qdoc70
-rw-r--r--doc/src/snippets/code/doc_src_emb-running.qdoc61
-rw-r--r--doc/src/snippets/code/doc_src_emb-vnc.qdoc25
-rw-r--r--doc/src/snippets/code/doc_src_examples_activeqt_comapp.qdoc39
-rw-r--r--doc/src/snippets/code/doc_src_examples_activeqt_dotnet.qdoc4
-rw-r--r--doc/src/snippets/code/doc_src_examples_activeqt_menus.qdoc6
-rw-r--r--doc/src/snippets/code/doc_src_examples_ahigl.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_examples_application.qdoc5
-rw-r--r--doc/src/snippets/code/doc_src_examples_arrowpad.qdoc19
-rw-r--r--doc/src/snippets/code/doc_src_examples_containerextension.qdoc4
-rw-r--r--doc/src/snippets/code/doc_src_examples_customwidgetplugin.qdoc4
-rw-r--r--doc/src/snippets/code/doc_src_examples_dropsite.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_examples_editabletreemodel.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_examples_hellotr.qdoc31
-rw-r--r--doc/src/snippets/code/doc_src_examples_icons.qdoc14
-rw-r--r--doc/src/snippets/code/doc_src_examples_imageviewer.qdoc24
-rw-r--r--doc/src/snippets/code/doc_src_examples_qtscriptcustomclass.qdoc35
-rw-r--r--doc/src/snippets/code/doc_src_examples_simpledommodel.qdoc20
-rw-r--r--doc/src/snippets/code/doc_src_examples_simpletreemodel.qdoc12
-rw-r--r--doc/src/snippets/code/doc_src_examples_svgalib.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_examples_taskmenuextension.qdoc4
-rw-r--r--doc/src/snippets/code/doc_src_examples_textfinder.qdoc6
-rw-r--r--doc/src/snippets/code/doc_src_examples_trollprint.qdoc35
-rw-r--r--doc/src/snippets/code/doc_src_examples_tutorial.qdoc10
-rw-r--r--doc/src/snippets/code/doc_src_examples_worldtimeclockplugin.qdoc4
-rw-r--r--doc/src/snippets/code/doc_src_exportedfunctions.qdoc17
-rw-r--r--doc/src/snippets/code/doc_src_gpl.qdoc679
-rw-r--r--doc/src/snippets/code/doc_src_graphicsview.qdoc77
-rw-r--r--doc/src/snippets/code/doc_src_groups.qdoc26
-rw-r--r--doc/src/snippets/code/doc_src_i18n.qdoc155
-rw-r--r--doc/src/snippets/code/doc_src_installation.qdoc127
-rw-r--r--doc/src/snippets/code/doc_src_introtodbus.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_layout.qdoc119
-rw-r--r--doc/src/snippets/code/doc_src_lgpl.qdoc507
-rw-r--r--doc/src/snippets/code/doc_src_licenses.qdoc108
-rw-r--r--doc/src/snippets/code/doc_src_linguist-manual.qdoc183
-rw-r--r--doc/src/snippets/code/doc_src_mac-differences.qdoc36
-rw-r--r--doc/src/snippets/code/doc_src_moc.qdoc124
-rw-r--r--doc/src/snippets/code/doc_src_model-view-programming.qdoc36
-rw-r--r--doc/src/snippets/code/doc_src_modules.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_objecttrees.qdoc20
-rw-r--r--doc/src/snippets/code/doc_src_phonon-api.qdoc224
-rw-r--r--doc/src/snippets/code/doc_src_phonon.qdoc13
-rw-r--r--doc/src/snippets/code/doc_src_platform-notes.qdoc39
-rw-r--r--doc/src/snippets/code/doc_src_plugins-howto.qdoc67
-rw-r--r--doc/src/snippets/code/doc_src_porting-qsa.qdoc187
-rw-r--r--doc/src/snippets/code/doc_src_porting4-canvas.qdoc116
-rw-r--r--doc/src/snippets/code/doc_src_porting4-designer.qdoc159
-rw-r--r--doc/src/snippets/code/doc_src_porting4.qdoc473
-rw-r--r--doc/src/snippets/code/doc_src_properties.qdoc77
-rw-r--r--doc/src/snippets/code/doc_src_q3asciidict.qdoc52
-rw-r--r--doc/src/snippets/code/doc_src_q3dict.qdoc29
-rw-r--r--doc/src/snippets/code/doc_src_q3intdict.qdoc51
-rw-r--r--doc/src/snippets/code/doc_src_q3memarray.qdoc80
-rw-r--r--doc/src/snippets/code/doc_src_q3ptrdict.qdoc66
-rw-r--r--doc/src/snippets/code/doc_src_q3ptrlist.qdoc82
-rw-r--r--doc/src/snippets/code/doc_src_q3valuelist.qdoc95
-rw-r--r--doc/src/snippets/code/doc_src_q3valuestack.qdoc13
-rw-r--r--doc/src/snippets/code/doc_src_q3valuevector.qdoc85
-rw-r--r--doc/src/snippets/code/doc_src_qalgorithms.qdoc314
-rw-r--r--doc/src/snippets/code/doc_src_qaxcontainer.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qaxserver.qdoc223
-rw-r--r--doc/src/snippets/code/doc_src_qcache.qdoc17
-rw-r--r--doc/src/snippets/code/doc_src_qdbusadaptors.qdoc253
-rw-r--r--doc/src/snippets/code/doc_src_qiterator.qdoc380
-rw-r--r--doc/src/snippets/code/doc_src_qmake-manual.qdoc813
-rw-r--r--doc/src/snippets/code/doc_src_qnamespace.qdoc24
-rw-r--r--doc/src/snippets/code/doc_src_qpair.qdoc15
-rw-r--r--doc/src/snippets/code/doc_src_qplugin.qdoc24
-rw-r--r--doc/src/snippets/code/doc_src_qset.qdoc126
-rw-r--r--doc/src/snippets/code/doc_src_qsignalspy.qdoc41
-rw-r--r--doc/src/snippets/code/doc_src_qt-conf.qdoc14
-rw-r--r--doc/src/snippets/code/doc_src_qt-embedded-displaymanagement.qdoc51
-rw-r--r--doc/src/snippets/code/doc_src_qt3support.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qt3to4.qdoc26
-rw-r--r--doc/src/snippets/code/doc_src_qt4-accessibility.qdoc59
-rw-r--r--doc/src/snippets/code/doc_src_qt4-arthur.qdoc104
-rw-r--r--doc/src/snippets/code/doc_src_qt4-intro.qdoc101
-rw-r--r--doc/src/snippets/code/doc_src_qt4-mainwindow.qdoc70
-rw-r--r--doc/src/snippets/code/doc_src_qt4-sql.qdoc19
-rw-r--r--doc/src/snippets/code/doc_src_qt4-styles.qdoc42
-rw-r--r--doc/src/snippets/code/doc_src_qt4-tulip.qdoc100
-rw-r--r--doc/src/snippets/code/doc_src_qtcore.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_qtdbus.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtdesigner.qdoc293
-rw-r--r--doc/src/snippets/code/doc_src_qtestevent.qdoc11
-rw-r--r--doc/src/snippets/code/doc_src_qtestlib.qdoc102
-rw-r--r--doc/src/snippets/code/doc_src_qtgui.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_qthelp.qdoc161
-rw-r--r--doc/src/snippets/code/doc_src_qtmac-as-native.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_qtnetwork.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtopengl.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtscript.qdoc948
-rw-r--r--doc/src/snippets/code/doc_src_qtscriptextensions.qdoc7
-rw-r--r--doc/src/snippets/code/doc_src_qtsql.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtsvg.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qttest.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtuiloader.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtwebkit.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtxml.qdoc77
-rw-r--r--doc/src/snippets/code/doc_src_qtxmlpatterns.qdoc349
-rw-r--r--doc/src/snippets/code/doc_src_qvarlengtharray.qdoc38
-rw-r--r--doc/src/snippets/code/doc_src_rcc.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_resources.qdoc41
-rw-r--r--doc/src/snippets/code/doc_src_richtext.qdoc50
-rw-r--r--doc/src/snippets/code/doc_src_session.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_sql-driver.qdoc239
-rw-r--r--doc/src/snippets/code/doc_src_styles.qdoc94
-rw-r--r--doc/src/snippets/code/doc_src_stylesheet.qdoc1911
-rw-r--r--doc/src/snippets/code/doc_src_uic.qdoc15
-rw-r--r--doc/src/snippets/code/doc_src_unicode.qdoc18
-rw-r--r--doc/src/snippets/code/doc_src_unix-signal-handlers.qdoc110
-rw-r--r--doc/src/snippets/code/doc_src_wince-customization.qdoc70
-rw-r--r--doc/src/snippets/code/doc_src_wince-introduction.qdoc9
-rw-r--r--doc/src/snippets/code/doc_src_wince-opengl.qdoc3
-rw-r--r--doc/src/snippets/code/src.gui.text.qtextdocumentwriter.cpp5
-rw-r--r--doc/src/snippets/code/src.qdbus.qdbuspendingcall.cpp24
-rw-r--r--doc/src/snippets/code/src.qdbus.qdbuspendingreply.cpp23
-rw-r--r--doc/src/snippets/code/src.scripttools.qscriptenginedebugger.cpp9
-rw-r--r--doc/src/snippets/code/src_3rdparty_webkit_WebKit_qt_Api_qwebview.cpp35
-rw-r--r--doc/src/snippets/code/src_activeqt_container_qaxbase.cpp159
-rw-r--r--doc/src/snippets/code/src_activeqt_container_qaxscript.cpp18
-rw-r--r--doc/src/snippets/code/src_activeqt_control_qaxbindable.cpp60
-rw-r--r--doc/src/snippets/code/src_activeqt_control_qaxfactory.cpp155
-rw-r--r--doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp34
-rw-r--r--doc/src/snippets/code/src_corelib_codecs_qtextcodecplugin.cpp16
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qfuture.cpp24
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qfuturesynchronizer.cpp13
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qfuturewatcher.cpp10
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qtconcurrentexception.cpp35
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qtconcurrentfilter.cpp131
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qtconcurrentmap.cpp144
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp60
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qthreadpool.cpp13
-rw-r--r--doc/src/snippets/code/src_corelib_global_qglobal.cpp458
-rw-r--r--doc/src/snippets/code/src_corelib_io_qabstractfileengine.cpp80
-rw-r--r--doc/src/snippets/code/src_corelib_io_qdatastream.cpp81
-rw-r--r--doc/src/snippets/code/src_corelib_io_qdir.cpp135
-rw-r--r--doc/src/snippets/code/src_corelib_io_qdiriterator.cpp12
-rw-r--r--doc/src/snippets/code/src_corelib_io_qfile.cpp35
-rw-r--r--doc/src/snippets/code/src_corelib_io_qfileinfo.cpp106
-rw-r--r--doc/src/snippets/code/src_corelib_io_qiodevice.cpp59
-rw-r--r--doc/src/snippets/code/src_corelib_io_qprocess.cpp94
-rw-r--r--doc/src/snippets/code/src_corelib_io_qsettings.cpp276
-rw-r--r--doc/src/snippets/code/src_corelib_io_qtemporaryfile.cpp13
-rw-r--r--doc/src/snippets/code/src_corelib_io_qtextstream.cpp89
-rw-r--r--doc/src/snippets/code/src_corelib_io_qurl.cpp47
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qabstracteventdispatcher.cpp3
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp28
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp86
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qmetaobject.cpp96
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qmetatype.cpp69
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qmimedata.cpp68
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qobject.cpp381
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qsystemsemaphore.cpp21
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qtimer.cpp12
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qvariant.cpp97
-rw-r--r--doc/src/snippets/code/src_corelib_plugin_qlibrary.cpp44
-rw-r--r--doc/src/snippets/code/src_corelib_plugin_quuid.cpp4
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qatomic.cpp58
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qmutex.cpp153
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qmutexpool.cpp21
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp69
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qsemaphore.cpp33
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qthread.cpp16
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp49
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qbitarray.cpp136
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qbytearray.cpp364
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qdatetime.cpp106
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qhash.cpp259
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qlinkedlist.cpp164
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qlistdata.cpp227
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qlocale.cpp55
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qmap.cpp273
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qpoint.cpp109
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qqueue.cpp8
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qrect.cpp10
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qregexp.cpp184
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qsize.cpp96
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qstring.cpp47
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qtimeline.cpp15
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qvector.cpp143
-rw-r--r--doc/src/snippets/code/src_corelib_xml_qxmlstream.cpp27
-rw-r--r--doc/src/snippets/code/src_gui_accessible_qaccessible.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_dialogs_qabstractprintdialog.cpp6
-rw-r--r--doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp91
-rw-r--r--doc/src/snippets/code/src_gui_dialogs_qfontdialog.cpp45
-rw-r--r--doc/src/snippets/code/src_gui_dialogs_qmessagebox.cpp108
-rw-r--r--doc/src/snippets/code/src_gui_dialogs_qwizard.cpp40
-rw-r--r--doc/src/snippets/code/src_gui_embedded_qcopchannel_qws.cpp26
-rw-r--r--doc/src/snippets/code/src_gui_embedded_qmouse_qws.cpp4
-rw-r--r--doc/src/snippets/code/src_gui_embedded_qmousetslib_qws.cpp9
-rw-r--r--doc/src/snippets/code/src_gui_embedded_qscreen_qws.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_embedded_qtransportauth_qws.cpp47
-rw-r--r--doc/src/snippets/code/src_gui_embedded_qwindowsystem_qws.cpp45
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicsgridlayout.cpp13
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp221
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicslinearlayout.cpp13
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicsproxywidget.cpp47
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicsscene.cpp82
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicssceneevent.cpp5
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicsview.cpp92
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicswidget.cpp26
-rw-r--r--doc/src/snippets/code/src_gui_image_qbitmap.cpp4
-rw-r--r--doc/src/snippets/code/src_gui_image_qicon.cpp22
-rw-r--r--doc/src/snippets/code/src_gui_image_qimage.cpp42
-rw-r--r--doc/src/snippets/code/src_gui_image_qimagereader.cpp26
-rw-r--r--doc/src/snippets/code/src_gui_image_qimagewriter.cpp19
-rw-r--r--doc/src/snippets/code/src_gui_image_qmovie.cpp13
-rw-r--r--doc/src/snippets/code/src_gui_image_qpixmap.cpp12
-rw-r--r--doc/src/snippets/code/src_gui_image_qpixmapcache.cpp21
-rw-r--r--doc/src/snippets/code/src_gui_image_qpixmapfilter.cpp22
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qabstractitemview.cpp18
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qdatawidgetmapper.cpp23
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qitemeditorfactory.cpp23
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qitemselectionmodel.cpp10
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qstandarditemmodel.cpp42
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qtablewidget.cpp5
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qtreewidget.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qaction.cpp9
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qapplication.cpp143
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qapplication_x11.cpp5
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qclipboard.cpp13
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qevent.cpp14
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qformlayout.cpp36
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qkeysequence.cpp19
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qlayout.cpp27
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qlayoutitem.cpp13
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qshortcut.cpp15
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qshortcutmap.cpp3
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qsound.cpp9
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qwidget.cpp97
-rw-r--r--doc/src/snippets/code/src_gui_painting_qbrush.cpp11
-rw-r--r--doc/src/snippets/code/src_gui_painting_qcolor.cpp9
-rw-r--r--doc/src/snippets/code/src_gui_painting_qdrawutil.cpp58
-rw-r--r--doc/src/snippets/code/src_gui_painting_qmatrix.cpp22
-rw-r--r--doc/src/snippets/code/src_gui_painting_qpainter.cpp202
-rw-r--r--doc/src/snippets/code/src_gui_painting_qpainterpath.cpp109
-rw-r--r--doc/src/snippets/code/src_gui_painting_qpen.cpp41
-rw-r--r--doc/src/snippets/code/src_gui_painting_qregion.cpp13
-rw-r--r--doc/src/snippets/code/src_gui_painting_qregion_unix.cpp18
-rw-r--r--doc/src/snippets/code/src_gui_painting_qtransform.cpp42
-rw-r--r--doc/src/snippets/code/src_gui_styles_qstyle.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_styles_qstyleoption.cpp14
-rw-r--r--doc/src/snippets/code/src_gui_text_qfont.cpp27
-rw-r--r--doc/src/snippets/code/src_gui_text_qfontmetrics.cpp14
-rw-r--r--doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp86
-rw-r--r--doc/src/snippets/code/src_gui_text_qtextcursor.cpp40
-rw-r--r--doc/src/snippets/code/src_gui_text_qtextdocument.cpp10
-rw-r--r--doc/src/snippets/code/src_gui_text_qtextlayout.cpp24
-rw-r--r--doc/src/snippets/code/src_gui_util_qcompleter.cpp23
-rw-r--r--doc/src/snippets/code/src_gui_util_qdesktopservices.cpp17
-rw-r--r--doc/src/snippets/code/src_gui_util_qundostack.cpp69
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qabstractbutton.cpp20
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qabstractspinbox.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qcalendarwidget.cpp39
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qcheckbox.cpp3
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qdatetimeedit.cpp39
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qdockwidget.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qframe.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qgroupbox.cpp3
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qlabel.cpp24
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qlineedit.cpp10
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qmenu.cpp37
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qmenubar.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qplaintextedit.cpp15
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qpushbutton.cpp3
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qradiobutton.cpp3
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qrubberband.cpp22
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qscrollarea.cpp9
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qspinbox.cpp40
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qsplashscreen.cpp15
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qsplitter.cpp7
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qstatusbar.cpp3
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qtextbrowser.cpp4
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qtextedit.cpp20
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qvalidator.cpp95
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qworkspace.cpp8
-rw-r--r--doc/src/snippets/code/src_network_access_qftp.cpp59
-rw-r--r--doc/src/snippets/code/src_network_access_qhttp.cpp85
-rw-r--r--doc/src/snippets/code/src_network_access_qnetworkaccessmanager.cpp21
-rw-r--r--doc/src/snippets/code/src_network_access_qnetworkrequest.cpp3
-rw-r--r--doc/src/snippets/code/src_network_kernel_qhostaddress.cpp8
-rw-r--r--doc/src/snippets/code/src_network_kernel_qhostinfo.cpp50
-rw-r--r--doc/src/snippets/code/src_network_kernel_qnetworkproxy.cpp14
-rw-r--r--doc/src/snippets/code/src_network_socket_qabstractsocket.cpp30
-rw-r--r--doc/src/snippets/code/src_network_socket_qlocalsocket_unix.cpp12
-rw-r--r--doc/src/snippets/code/src_network_socket_qnativesocketengine.cpp21
-rw-r--r--doc/src/snippets/code/src_network_socket_qtcpserver.cpp3
-rw-r--r--doc/src/snippets/code/src_network_socket_qudpsocket.cpp25
-rw-r--r--doc/src/snippets/code/src_network_ssl_qsslcertificate.cpp6
-rw-r--r--doc/src/snippets/code/src_network_ssl_qsslconfiguration.cpp5
-rw-r--r--doc/src/snippets/code/src_network_ssl_qsslsocket.cpp56
-rw-r--r--doc/src/snippets/code/src_opengl_qgl.cpp132
-rw-r--r--doc/src/snippets/code/src_opengl_qglcolormap.cpp21
-rw-r--r--doc/src/snippets/code/src_opengl_qglpixelbuffer.cpp19
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbusabstractinterface.cpp20
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbusargument.cpp151
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbuscontext.cpp32
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbusinterface.cpp11
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbusmetatype.cpp3
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbusreply.cpp14
-rw-r--r--doc/src/snippets/code/src_qt3support_canvas_q3canvas.cpp51
-rw-r--r--doc/src/snippets/code/src_qt3support_dialogs_q3filedialog.cpp229
-rw-r--r--doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp41
-rw-r--r--doc/src/snippets/code/src_qt3support_itemviews_q3iconview.cpp75
-rw-r--r--doc/src/snippets/code/src_qt3support_itemviews_q3listview.cpp73
-rw-r--r--doc/src/snippets/code/src_qt3support_itemviews_q3table.cpp57
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3dns.cpp58
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3ftp.cpp65
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3http.cpp74
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3localfs.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3networkprotocol.cpp8
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3socket.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3socketdevice.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3url.cpp43
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3urloperator.cpp37
-rw-r--r--doc/src/snippets/code/src_qt3support_other_q3accel.cpp40
-rw-r--r--doc/src/snippets/code/src_qt3support_other_q3mimefactory.cpp32
-rw-r--r--doc/src/snippets/code/src_qt3support_other_q3process.cpp8
-rw-r--r--doc/src/snippets/code/src_qt3support_other_q3process_unix.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_painting_q3paintdevicemetrics.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_painting_q3painter.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_painting_q3picture.cpp14
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3databrowser.cpp8
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3datatable.cpp8
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3dataview.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3sqlcursor.cpp100
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3sqlform.cpp26
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3sqlmanager_p.cpp11
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3sqlpropertymap.cpp35
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3sqlselectcursor.cpp11
-rw-r--r--doc/src/snippets/code/src_qt3support_text_q3simplerichtext.cpp3
-rw-r--r--doc/src/snippets/code/src_qt3support_text_q3textbrowser.cpp3
-rw-r--r--doc/src/snippets/code/src_qt3support_text_q3textedit.cpp31
-rw-r--r--doc/src/snippets/code/src_qt3support_text_q3textstream.cpp29
-rw-r--r--doc/src/snippets/code/src_qt3support_tools_q3cstring.cpp40
-rw-r--r--doc/src/snippets/code/src_qt3support_tools_q3deepcopy.cpp58
-rw-r--r--doc/src/snippets/code/src_qt3support_tools_q3garray.cpp20
-rw-r--r--doc/src/snippets/code/src_qt3support_tools_q3signal.cpp38
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3combobox.cpp15
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3datetimeedit.cpp28
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3dockarea.cpp8
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3dockwindow.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3gridview.cpp6
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3header.cpp6
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3mainwindow.cpp45
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3scrollview.cpp61
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3whatsthis.cpp3
-rw-r--r--doc/src/snippets/code/src_qtestlib_qtestcase.cpp188
-rw-r--r--doc/src/snippets/code/src_script_qscriptable.cpp25
-rw-r--r--doc/src/snippets/code/src_script_qscriptclass.cpp10
-rw-r--r--doc/src/snippets/code/src_script_qscriptcontext.cpp28
-rw-r--r--doc/src/snippets/code/src_script_qscriptengine.cpp292
-rw-r--r--doc/src/snippets/code/src_script_qscriptengineagent.cpp12
-rw-r--r--doc/src/snippets/code/src_script_qscriptvalue.cpp40
-rw-r--r--doc/src/snippets/code/src_script_qscriptvalueiterator.cpp32
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp95
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqldriver.cpp24
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqlerror.cpp6
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqlindex.cpp8
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqlquery.cpp40
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqlresult.cpp45
-rw-r--r--doc/src/snippets/code/src_sql_models_qsqlquerymodel.cpp12
-rw-r--r--doc/src/snippets/code/src_svg_qgraphicssvgitem.cpp11
-rw-r--r--doc/src/snippets/code/src_xml_dom_qdom.cpp178
-rw-r--r--doc/src/snippets/code/src_xml_sax_qxml.cpp3
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qabstracturiresolver.cpp3
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlforwarditerator.cpp3
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlnodemodel.cpp22
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlreceiver.cpp7
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qsimplexmlnodemodel.cpp19
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qxmlformatter.cpp8
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qxmlname.cpp8
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qxmlquery.cpp152
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qxmlresultitems.cpp16
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qxmlserializer.cpp7
-rw-r--r--doc/src/snippets/code/tools_assistant_compat_lib_qassistantclient.cpp25
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_extension_default_extensionfactory.cpp35
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_extension_extension.cpp15
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_extension_qextensionmanager.cpp17
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformeditor.cpp11
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindow.cpp25
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindowcursor.cpp8
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindowmanager.cpp11
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractobjectinspector.cpp11
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractpropertyeditor.cpp23
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractwidgetbox.cpp30
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_uilib_abstractformbuilder.cpp17
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_uilib_formbuilder.cpp26
-rw-r--r--doc/src/snippets/code/tools_patternist_qapplicationargumentparser.cpp5
-rw-r--r--doc/src/snippets/code/tools_shared_qtgradienteditor_qtgradientdialog.cpp44
-rw-r--r--doc/src/snippets/code/tools_shared_qtpropertybrowser_qtpropertybrowser.cpp47
-rw-r--r--doc/src/snippets/code/tools_shared_qtpropertybrowser_qtvariantproperty.cpp16
-rw-r--r--doc/src/snippets/code/tools_shared_qttoolbardialog_qttoolbardialog.cpp12
-rw-r--r--doc/src/snippets/complexpingpong-example.qdoc4
-rw-r--r--doc/src/snippets/console/dbus_pingpong.txt3
-rw-r--r--doc/src/snippets/coordsys/coordsys.cpp77
-rw-r--r--doc/src/snippets/coordsys/coordsys.pro1
-rw-r--r--doc/src/snippets/customstyle/customstyle.cpp93
-rw-r--r--doc/src/snippets/customstyle/customstyle.h61
-rw-r--r--doc/src/snippets/customstyle/customstyle.pro2
-rw-r--r--doc/src/snippets/customstyle/main.cpp55
-rw-r--r--doc/src/snippets/customviewstyle.cpp29
-rw-r--r--doc/src/snippets/dbus-pingpong-example.qdoc3
-rw-r--r--doc/src/snippets/designer/autoconnection/autoconnection.pro5
-rw-r--r--doc/src/snippets/designer/autoconnection/imagedialog.cpp70
-rw-r--r--doc/src/snippets/designer/autoconnection/imagedialog.h60
-rw-r--r--doc/src/snippets/designer/autoconnection/imagedialog.ui389
-rw-r--r--doc/src/snippets/designer/autoconnection/main.cpp52
-rw-r--r--doc/src/snippets/designer/designer.pro6
-rw-r--r--doc/src/snippets/designer/imagedialog/imagedialog.pro3
-rw-r--r--doc/src/snippets/designer/imagedialog/imagedialog.ui389
-rw-r--r--doc/src/snippets/designer/imagedialog/main.cpp54
-rw-r--r--doc/src/snippets/designer/multipleinheritance/imagedialog.cpp60
-rw-r--r--doc/src/snippets/designer/multipleinheritance/imagedialog.h55
-rw-r--r--doc/src/snippets/designer/multipleinheritance/imagedialog.ui389
-rw-r--r--doc/src/snippets/designer/multipleinheritance/main.cpp52
-rw-r--r--doc/src/snippets/designer/multipleinheritance/multipleinheritance.pro5
-rw-r--r--doc/src/snippets/designer/noautoconnection/imagedialog.cpp77
-rw-r--r--doc/src/snippets/designer/noautoconnection/imagedialog.h60
-rw-r--r--doc/src/snippets/designer/noautoconnection/imagedialog.ui389
-rw-r--r--doc/src/snippets/designer/noautoconnection/main.cpp52
-rw-r--r--doc/src/snippets/designer/noautoconnection/noautoconnection.pro5
-rw-r--r--doc/src/snippets/designer/singleinheritance/imagedialog.cpp60
-rw-r--r--doc/src/snippets/designer/singleinheritance/imagedialog.h58
-rw-r--r--doc/src/snippets/designer/singleinheritance/imagedialog.ui389
-rw-r--r--doc/src/snippets/designer/singleinheritance/main.cpp52
-rw-r--r--doc/src/snippets/designer/singleinheritance/singleinheritance.pro5
-rw-r--r--doc/src/snippets/dialogs/dialogs.cpp269
-rw-r--r--doc/src/snippets/dialogs/dialogs.pro1
-rw-r--r--doc/src/snippets/dockwidgets/Resources/modules.html28
-rw-r--r--doc/src/snippets/dockwidgets/Resources/qtcore.html122
-rw-r--r--doc/src/snippets/dockwidgets/Resources/qtgui.html276
-rw-r--r--doc/src/snippets/dockwidgets/Resources/qtnetwork.html35
-rw-r--r--doc/src/snippets/dockwidgets/Resources/qtopengl.html27
-rw-r--r--doc/src/snippets/dockwidgets/Resources/qtsql.html39
-rw-r--r--doc/src/snippets/dockwidgets/Resources/qtxml.html53
-rw-r--r--doc/src/snippets/dockwidgets/Resources/titles.txt7
-rw-r--r--doc/src/snippets/dockwidgets/dockwidgets.pro4
-rw-r--r--doc/src/snippets/dockwidgets/dockwidgets.qrc12
-rw-r--r--doc/src/snippets/dockwidgets/main.cpp53
-rw-r--r--doc/src/snippets/dockwidgets/mainwindow.cpp123
-rw-r--r--doc/src/snippets/dockwidgets/mainwindow.h71
-rw-r--r--doc/src/snippets/draganddrop/draganddrop.pro5
-rw-r--r--doc/src/snippets/draganddrop/dragwidget.cpp154
-rw-r--r--doc/src/snippets/draganddrop/dragwidget.h80
-rw-r--r--doc/src/snippets/draganddrop/main.cpp54
-rw-r--r--doc/src/snippets/draganddrop/mainwindow.cpp85
-rw-r--r--doc/src/snippets/draganddrop/mainwindow.h72
-rw-r--r--doc/src/snippets/dragging/dragging.pro4
-rw-r--r--doc/src/snippets/dragging/images.qrc5
-rw-r--r--doc/src/snippets/dragging/images/file.pngbin0 -> 313 bytes-rw-r--r--doc/src/snippets/dragging/main.cpp52
-rw-r--r--doc/src/snippets/dragging/mainwindow.cpp111
-rw-r--r--doc/src/snippets/dragging/mainwindow.h72
-rw-r--r--doc/src/snippets/dropactions/dropactions.pro3
-rw-r--r--doc/src/snippets/dropactions/main.cpp52
-rw-r--r--doc/src/snippets/dropactions/window.cpp106
-rw-r--r--doc/src/snippets/dropactions/window.h72
-rw-r--r--doc/src/snippets/droparea.cpp139
-rw-r--r--doc/src/snippets/dropevents/dropevents.pro3
-rw-r--r--doc/src/snippets/dropevents/main.cpp53
-rw-r--r--doc/src/snippets/dropevents/window.cpp88
-rw-r--r--doc/src/snippets/dropevents/window.h72
-rw-r--r--doc/src/snippets/droprectangle/droprectangle.pro3
-rw-r--r--doc/src/snippets/droprectangle/main.cpp52
-rw-r--r--doc/src/snippets/droprectangle/window.cpp97
-rw-r--r--doc/src/snippets/droprectangle/window.h72
-rw-r--r--doc/src/snippets/eventfilters/eventfilters.pro3
-rw-r--r--doc/src/snippets/eventfilters/filterobject.cpp75
-rw-r--r--doc/src/snippets/eventfilters/filterobject.h60
-rw-r--r--doc/src/snippets/eventfilters/main.cpp55
-rw-r--r--doc/src/snippets/events/events.cpp98
-rw-r--r--doc/src/snippets/events/events.pro1
-rw-r--r--doc/src/snippets/explicitlysharedemployee/employee.cpp110
-rw-r--r--doc/src/snippets/explicitlysharedemployee/employee.h75
-rw-r--r--doc/src/snippets/explicitlysharedemployee/explicitlysharedemployee.pro3
-rw-r--r--doc/src/snippets/explicitlysharedemployee/main.cpp51
-rw-r--r--doc/src/snippets/file/file.cpp124
-rw-r--r--doc/src/snippets/file/file.pro14
-rw-r--r--doc/src/snippets/filedialogurls.cpp22
-rw-r--r--doc/src/snippets/fileinfo/fileinfo.pro11
-rw-r--r--doc/src/snippets/fileinfo/main.cpp93
-rw-r--r--doc/src/snippets/graphicssceneadditemsnippet.cpp81
-rw-r--r--doc/src/snippets/i18n-non-qt-class/i18n-non-qt-class.pro7
-rw-r--r--doc/src/snippets/i18n-non-qt-class/main.cpp55
-rw-r--r--doc/src/snippets/i18n-non-qt-class/myclass.cpp48
-rw-r--r--doc/src/snippets/i18n-non-qt-class/myclass.h60
-rw-r--r--doc/src/snippets/i18n-non-qt-class/myclass.ts12
-rw-r--r--doc/src/snippets/i18n-non-qt-class/resources.qrc6
-rw-r--r--doc/src/snippets/i18n-non-qt-class/translations/i18n-non-qt-class_en.ts12
-rw-r--r--doc/src/snippets/i18n-non-qt-class/translations/i18n-non-qt-class_fr.ts13
-rw-r--r--doc/src/snippets/image/image.cpp105
-rw-r--r--doc/src/snippets/image/image.pro1
-rw-r--r--doc/src/snippets/image/supportedformat.cpp53
-rw-r--r--doc/src/snippets/inherited-slot/button.cpp54
-rw-r--r--doc/src/snippets/inherited-slot/button.h60
-rw-r--r--doc/src/snippets/inherited-slot/inherited-slot.pro3
-rw-r--r--doc/src/snippets/inherited-slot/main.cpp67
-rw-r--r--doc/src/snippets/itemselection/itemselection.pro3
-rw-r--r--doc/src/snippets/itemselection/main.cpp116
-rw-r--r--doc/src/snippets/itemselection/model.cpp239
-rw-r--r--doc/src/snippets/itemselection/model.h75
-rw-r--r--doc/src/snippets/javastyle.cpp2746
-rw-r--r--doc/src/snippets/layouts/layouts.cpp130
-rw-r--r--doc/src/snippets/layouts/layouts.pro12
-rw-r--r--doc/src/snippets/mainwindowsnippet.cpp93
-rw-r--r--doc/src/snippets/matrix/matrix.cpp141
-rw-r--r--doc/src/snippets/matrix/matrix.pro11
-rw-r--r--doc/src/snippets/mdiareasnippets.cpp98
-rw-r--r--doc/src/snippets/medianodesnippet.cpp29
-rw-r--r--doc/src/snippets/moc/main.cpp66
-rw-r--r--doc/src/snippets/moc/moc.pro2
-rw-r--r--doc/src/snippets/moc/myclass1.h66
-rw-r--r--doc/src/snippets/moc/myclass2.h67
-rw-r--r--doc/src/snippets/moc/myclass3.h60
-rw-r--r--doc/src/snippets/modelview-subclasses/main.cpp69
-rw-r--r--doc/src/snippets/modelview-subclasses/model.cpp153
-rw-r--r--doc/src/snippets/modelview-subclasses/model.h71
-rw-r--r--doc/src/snippets/modelview-subclasses/view.cpp315
-rw-r--r--doc/src/snippets/modelview-subclasses/view.h91
-rw-r--r--doc/src/snippets/modelview-subclasses/window.cpp113
-rw-r--r--doc/src/snippets/modelview-subclasses/window.h69
-rw-r--r--doc/src/snippets/myscrollarea.cpp129
-rw-r--r--doc/src/snippets/network/tcpwait.cpp70
-rw-r--r--doc/src/snippets/ntfsp.cpp11
-rw-r--r--doc/src/snippets/painterpath/painterpath.cpp77
-rw-r--r--doc/src/snippets/painterpath/painterpath.pro1
-rw-r--r--doc/src/snippets/patternist/anyHTMLElement.xq1
-rw-r--r--doc/src/snippets/patternist/anyXLinkAttribute.xq2
-rw-r--r--doc/src/snippets/patternist/bracesIncluded.xq1
-rw-r--r--doc/src/snippets/patternist/bracesIncludedResult.xml1
-rw-r--r--doc/src/snippets/patternist/bracesOmitted.xq1
-rw-r--r--doc/src/snippets/patternist/bracesOmittedResult.xml2
-rw-r--r--doc/src/snippets/patternist/computedTreeFragment.xq14
-rw-r--r--doc/src/snippets/patternist/copyAttribute.xq9
-rw-r--r--doc/src/snippets/patternist/copyID.xq3
-rw-r--r--doc/src/snippets/patternist/directTreeFragment.xq7
-rw-r--r--doc/src/snippets/patternist/doc.txt35
-rw-r--r--doc/src/snippets/patternist/docPlainHTML.xq1
-rw-r--r--doc/src/snippets/patternist/docPlainHTML2.xq1
-rw-r--r--doc/src/snippets/patternist/embedDataInXHTML.xq10
-rw-r--r--doc/src/snippets/patternist/embedDataInXHTML2.xq10
-rw-r--r--doc/src/snippets/patternist/emptyParagraphs.xq1
-rw-r--r--doc/src/snippets/patternist/escapeCurlyBraces.xq4
-rw-r--r--doc/src/snippets/patternist/escapeStringLiterals.xml2
-rw-r--r--doc/src/snippets/patternist/escapeStringLiterals.xq7
-rw-r--r--doc/src/snippets/patternist/expressionInsideAttribute.xq2
-rw-r--r--doc/src/snippets/patternist/filterOnPath.xq2
-rw-r--r--doc/src/snippets/patternist/filterOnStep.xq2
-rw-r--r--doc/src/snippets/patternist/firstParagraph.xq1
-rw-r--r--doc/src/snippets/patternist/fnStringOnAttribute.xq9
-rw-r--r--doc/src/snippets/patternist/forClause.xq3
-rw-r--r--doc/src/snippets/patternist/forClause2.xq3
-rw-r--r--doc/src/snippets/patternist/forClauseOnFeed.xq6
-rw-r--r--doc/src/snippets/patternist/indented.xml5
-rw-r--r--doc/src/snippets/patternist/introAcneRemover.xq8
-rw-r--r--doc/src/snippets/patternist/introExample2.xq5
-rw-r--r--doc/src/snippets/patternist/introFileHierarchy.xml14
-rw-r--r--doc/src/snippets/patternist/introNavigateFS.xq12
-rw-r--r--doc/src/snippets/patternist/introductionExample.xq3
-rw-r--r--doc/src/snippets/patternist/invalidLetOrderBy.xq3
-rw-r--r--doc/src/snippets/patternist/items.xq5
-rw-r--r--doc/src/snippets/patternist/letOrderBy.xq4
-rw-r--r--doc/src/snippets/patternist/literalsAndOperators.xq2
-rw-r--r--doc/src/snippets/patternist/mobeyDick.xml4
-rw-r--r--doc/src/snippets/patternist/nextLastParagraph.xq1
-rw-r--r--doc/src/snippets/patternist/nodeConstructorsAreExpressions.xq4
-rw-r--r--doc/src/snippets/patternist/nodeConstructorsInPaths.xq1
-rw-r--r--doc/src/snippets/patternist/nodeTestChildElement.xq1
-rw-r--r--doc/src/snippets/patternist/notIndented.xml1
-rw-r--r--doc/src/snippets/patternist/oneElementConstructor.xq1
-rw-r--r--doc/src/snippets/patternist/paragraphsExceptTheFiveFirst.xq1
-rw-r--r--doc/src/snippets/patternist/paragraphsWithTables.xq1
-rw-r--r--doc/src/snippets/patternist/pathAB.xq1
-rw-r--r--doc/src/snippets/patternist/pathsAllParagraphs.xq1
-rw-r--r--doc/src/snippets/patternist/simpleHTML.xq1
-rw-r--r--doc/src/snippets/patternist/simpleXHTML.xq2
-rw-r--r--doc/src/snippets/patternist/svgDocumentElement.xml1
-rw-r--r--doc/src/snippets/patternist/tablesInParagraphs.xq1
-rw-r--r--doc/src/snippets/patternist/twoSVGElements.xq5
-rw-r--r--doc/src/snippets/patternist/xmlStylesheet.xq1
-rw-r--r--doc/src/snippets/patternist/xsBooleanTrue.xq1
-rw-r--r--doc/src/snippets/patternist/xsvgDocumentElement.xml1
-rw-r--r--doc/src/snippets/persistentindexes/main.cpp52
-rw-r--r--doc/src/snippets/persistentindexes/mainwindow.cpp121
-rw-r--r--doc/src/snippets/persistentindexes/mainwindow.h71
-rw-r--r--doc/src/snippets/persistentindexes/model.cpp169
-rw-r--r--doc/src/snippets/persistentindexes/model.h72
-rw-r--r--doc/src/snippets/persistentindexes/persistentindexes.pro5
-rw-r--r--doc/src/snippets/phonon.cpp96
-rw-r--r--doc/src/snippets/phonon/samplebackend/main.cpp115
-rw-r--r--doc/src/snippets/phononeffectparameter.cpp35
-rw-r--r--doc/src/snippets/phononobjectdescription.cpp40
-rw-r--r--doc/src/snippets/picture/picture.cpp152
-rw-r--r--doc/src/snippets/picture/picture.pro12
-rw-r--r--doc/src/snippets/plaintextlayout/main.cpp53
-rw-r--r--doc/src/snippets/plaintextlayout/plaintextlayout.pro3
-rw-r--r--doc/src/snippets/plaintextlayout/window.cpp109
-rw-r--r--doc/src/snippets/plaintextlayout/window.h62
-rw-r--r--doc/src/snippets/pointer/pointer.cpp61
-rw-r--r--doc/src/snippets/polygon/polygon.cpp113
-rw-r--r--doc/src/snippets/polygon/polygon.pro1
-rw-r--r--doc/src/snippets/porting4-dropevents/main.cpp53
-rw-r--r--doc/src/snippets/porting4-dropevents/porting4-dropevents.pro3
-rw-r--r--doc/src/snippets/porting4-dropevents/window.cpp125
-rw-r--r--doc/src/snippets/porting4-dropevents/window.h73
-rw-r--r--doc/src/snippets/printing-qprinter/errors.cpp25
-rw-r--r--doc/src/snippets/printing-qprinter/main.cpp54
-rw-r--r--doc/src/snippets/printing-qprinter/object.cpp72
-rw-r--r--doc/src/snippets/printing-qprinter/object.h53
-rw-r--r--doc/src/snippets/printing-qprinter/printing-qprinter.pro3
-rw-r--r--doc/src/snippets/process/process.cpp77
-rw-r--r--doc/src/snippets/process/process.pro1
-rw-r--r--doc/src/snippets/qabstractsliderisnippet.cpp510
-rw-r--r--doc/src/snippets/qcalendarwidget/main.cpp65
-rw-r--r--doc/src/snippets/qcalendarwidget/qcalendarwidget.pro1
-rw-r--r--doc/src/snippets/qcolumnview/main.cpp80
-rw-r--r--doc/src/snippets/qcolumnview/qcolumnview.pro1
-rw-r--r--doc/src/snippets/qdbusextratypes/qdbusextratypes.cpp67
-rw-r--r--doc/src/snippets/qdbusextratypes/qdbusextratypes.pro2
-rw-r--r--doc/src/snippets/qdebug/qdebug.pro1
-rw-r--r--doc/src/snippets/qdebug/qdebugsnippet.cpp74
-rw-r--r--doc/src/snippets/qdir-filepaths/main.cpp55
-rw-r--r--doc/src/snippets/qdir-filepaths/qdir-filepaths.pro1
-rw-r--r--doc/src/snippets/qdir-listfiles/main.cpp63
-rw-r--r--doc/src/snippets/qdir-listfiles/qdir-listfiles.pro1
-rw-r--r--doc/src/snippets/qdir-namefilters/main.cpp66
-rw-r--r--doc/src/snippets/qdir-namefilters/qdir-namefilters.pro1
-rw-r--r--doc/src/snippets/qfontdatabase/main.cpp75
-rw-r--r--doc/src/snippets/qfontdatabase/qfontdatabase.pro1
-rw-r--r--doc/src/snippets/qgl-namespace/main.cpp47
-rw-r--r--doc/src/snippets/qgl-namespace/qgl-namespace.pro2
-rw-r--r--doc/src/snippets/qlabel/main.cpp89
-rw-r--r--doc/src/snippets/qlabel/qlabel.pro1
-rw-r--r--doc/src/snippets/qlineargradient/main.cpp51
-rw-r--r--doc/src/snippets/qlineargradient/paintwidget.cpp68
-rw-r--r--doc/src/snippets/qlineargradient/paintwidget.h60
-rw-r--r--doc/src/snippets/qlineargradient/qlineargradient.pro3
-rw-r--r--doc/src/snippets/qlistview-dnd/main.cpp52
-rw-r--r--doc/src/snippets/qlistview-dnd/mainwindow.cpp84
-rw-r--r--doc/src/snippets/qlistview-dnd/mainwindow.h62
-rw-r--r--doc/src/snippets/qlistview-dnd/model.cpp168
-rw-r--r--doc/src/snippets/qlistview-dnd/model.h74
-rw-r--r--doc/src/snippets/qlistview-dnd/qlistview-dnd.pro5
-rw-r--r--doc/src/snippets/qlistview-using/main.cpp52
-rw-r--r--doc/src/snippets/qlistview-using/mainwindow.cpp138
-rw-r--r--doc/src/snippets/qlistview-using/mainwindow.h73
-rw-r--r--doc/src/snippets/qlistview-using/model.cpp175
-rw-r--r--doc/src/snippets/qlistview-using/model.h83
-rw-r--r--doc/src/snippets/qlistview-using/qlistview-using.pro5
-rw-r--r--doc/src/snippets/qlistwidget-dnd/main.cpp52
-rw-r--r--doc/src/snippets/qlistwidget-dnd/mainwindow.cpp88
-rw-r--r--doc/src/snippets/qlistwidget-dnd/mainwindow.h63
-rw-r--r--doc/src/snippets/qlistwidget-dnd/qlistwidget-dnd.pro3
-rw-r--r--doc/src/snippets/qlistwidget-using/main.cpp52
-rw-r--r--doc/src/snippets/qlistwidget-using/mainwindow.cpp159
-rw-r--r--doc/src/snippets/qlistwidget-using/mainwindow.h73
-rw-r--r--doc/src/snippets/qlistwidget-using/qlistwidget-using.pro3
-rw-r--r--doc/src/snippets/qmacnativewidget/main.mm94
-rw-r--r--doc/src/snippets/qmacnativewidget/qmacnativewidget.pro8
-rw-r--r--doc/src/snippets/qmake/comments.pro10
-rw-r--r--doc/src/snippets/qmake/configscopes.pro23
-rw-r--r--doc/src/snippets/qmake/debug_and_release.pro14
-rw-r--r--doc/src/snippets/qmake/delegate.h41
-rw-r--r--doc/src/snippets/qmake/dereferencing.pro5
-rw-r--r--doc/src/snippets/qmake/destdir.pro2
-rw-r--r--doc/src/snippets/qmake/dirname.pro6
-rw-r--r--doc/src/snippets/qmake/environment.pro9
-rw-r--r--doc/src/snippets/qmake/functions.pro34
-rw-r--r--doc/src/snippets/qmake/include.pro3
-rw-r--r--doc/src/snippets/qmake/main.cpp41
-rw-r--r--doc/src/snippets/qmake/model.cpp41
-rw-r--r--doc/src/snippets/qmake/model.h41
-rw-r--r--doc/src/snippets/qmake/other.pro0
-rw-r--r--doc/src/snippets/qmake/paintwidget_mac.cpp41
-rw-r--r--doc/src/snippets/qmake/paintwidget_unix.cpp45
-rw-r--r--doc/src/snippets/qmake/paintwidget_win.cpp41
-rw-r--r--doc/src/snippets/qmake/project_location.pro6
-rw-r--r--doc/src/snippets/qmake/qtconfiguration.pro19
-rw-r--r--doc/src/snippets/qmake/quoting.pro8
-rw-r--r--doc/src/snippets/qmake/replace.pro4
-rw-r--r--doc/src/snippets/qmake/replacefunction.pro46
-rw-r--r--doc/src/snippets/qmake/scopes.pro42
-rw-r--r--doc/src/snippets/qmake/shared_or_static.pro8
-rw-r--r--doc/src/snippets/qmake/specifications.pro7
-rw-r--r--doc/src/snippets/qmake/testfunction.pro20
-rw-r--r--doc/src/snippets/qmake/variables.pro7
-rw-r--r--doc/src/snippets/qmake/view.h41
-rw-r--r--doc/src/snippets/qmetaobject-invokable/main.cpp53
-rw-r--r--doc/src/snippets/qmetaobject-invokable/qmetaobject-invokable.pro3
-rw-r--r--doc/src/snippets/qmetaobject-invokable/window.cpp58
-rw-r--r--doc/src/snippets/qmetaobject-invokable/window.h59
-rw-r--r--doc/src/snippets/qprocess-environment/main.cpp61
-rw-r--r--doc/src/snippets/qprocess-environment/qprocess-environment.pro1
-rw-r--r--doc/src/snippets/qprocess/qprocess-simpleexecution.cpp67
-rw-r--r--doc/src/snippets/qprocess/qprocess.pro11
-rw-r--r--doc/src/snippets/qsignalmapper/buttonwidget.cpp67
-rw-r--r--doc/src/snippets/qsignalmapper/buttonwidget.h68
-rw-r--r--doc/src/snippets/qsignalmapper/main.cpp62
-rw-r--r--doc/src/snippets/qsignalmapper/mainwindow.h60
-rw-r--r--doc/src/snippets/qsignalmapper/qsignalmapper.pro10
-rw-r--r--doc/src/snippets/qsortfilterproxymodel-details/main.cpp100
-rw-r--r--doc/src/snippets/qsortfilterproxymodel-details/qsortfilterproxymodel-details.pro1
-rw-r--r--doc/src/snippets/qsortfilterproxymodel/main.cpp78
-rw-r--r--doc/src/snippets/qsortfilterproxymodel/qsortfilterproxymodel.pro1
-rw-r--r--doc/src/snippets/qsplashscreen/main.cpp64
-rw-r--r--doc/src/snippets/qsplashscreen/mainwindow.cpp51
-rw-r--r--doc/src/snippets/qsplashscreen/mainwindow.h55
-rw-r--r--doc/src/snippets/qsplashscreen/qsplashscreen.pro4
-rw-r--r--doc/src/snippets/qsplashscreen/qsplashscreen.qrc5
-rw-r--r--doc/src/snippets/qsplashscreen/splash.pngbin0 -> 27926 bytes-rw-r--r--doc/src/snippets/qsql-namespace/main.cpp47
-rw-r--r--doc/src/snippets/qsql-namespace/qsql-namespace.pro2
-rw-r--r--doc/src/snippets/qstack/main.cpp56
-rw-r--r--doc/src/snippets/qstack/qstack.pro11
-rw-r--r--doc/src/snippets/qstackedlayout/main.cpp90
-rw-r--r--doc/src/snippets/qstackedlayout/qstackedlayout.pro11
-rw-r--r--doc/src/snippets/qstackedwidget/main.cpp88
-rw-r--r--doc/src/snippets/qstackedwidget/qstackedwidget.pro11
-rw-r--r--doc/src/snippets/qstandarditemmodel/main.cpp72
-rw-r--r--doc/src/snippets/qstandarditemmodel/qstandarditemmodel.pro11
-rw-r--r--doc/src/snippets/qstatustipevent/main.cpp83
-rw-r--r--doc/src/snippets/qstatustipevent/qstatustipevent.pro11
-rw-r--r--doc/src/snippets/qstring/main.cpp942
-rw-r--r--doc/src/snippets/qstring/qstring.pro11
-rw-r--r--doc/src/snippets/qstringlist/main.cpp156
-rw-r--r--doc/src/snippets/qstringlist/qstringlist.pro11
-rw-r--r--doc/src/snippets/qstringlistmodel/main.cpp67
-rw-r--r--doc/src/snippets/qstringlistmodel/qstringlistmodel.pro11
-rw-r--r--doc/src/snippets/qstyleoption/main.cpp140
-rw-r--r--doc/src/snippets/qstyleoption/qstyleoption.pro11
-rw-r--r--doc/src/snippets/qstyleplugin/main.cpp98
-rw-r--r--doc/src/snippets/qstyleplugin/qstyleplugin.pro11
-rw-r--r--doc/src/snippets/qsvgwidget/main.cpp60
-rw-r--r--doc/src/snippets/qsvgwidget/qsvgwidget.pro3
-rw-r--r--doc/src/snippets/qsvgwidget/qsvgwidget.qrc5
-rw-r--r--doc/src/snippets/qsvgwidget/spheres.svg79
-rw-r--r--doc/src/snippets/qsvgwidget/sunflower.svg188
-rw-r--r--doc/src/snippets/qt-namespace/main.cpp47
-rw-r--r--doc/src/snippets/qt-namespace/qt-namespace.pro1
-rw-r--r--doc/src/snippets/qtablewidget-dnd/Images/cubed.pngbin0 -> 437 bytes-rw-r--r--doc/src/snippets/qtablewidget-dnd/Images/squared.pngbin0 -> 440 bytes-rw-r--r--doc/src/snippets/qtablewidget-dnd/images.qrc6
-rw-r--r--doc/src/snippets/qtablewidget-dnd/main.cpp52
-rw-r--r--doc/src/snippets/qtablewidget-dnd/mainwindow.cpp144
-rw-r--r--doc/src/snippets/qtablewidget-dnd/mainwindow.h69
-rw-r--r--doc/src/snippets/qtablewidget-dnd/qtablewidget-dnd.pro4
-rw-r--r--doc/src/snippets/qtablewidget-resizing/main.cpp52
-rw-r--r--doc/src/snippets/qtablewidget-resizing/mainwindow.cpp116
-rw-r--r--doc/src/snippets/qtablewidget-resizing/mainwindow.h68
-rw-r--r--doc/src/snippets/qtablewidget-resizing/qtablewidget-resizing.pro3
-rw-r--r--doc/src/snippets/qtablewidget-using/Images/cubed.pngbin0 -> 437 bytes-rw-r--r--doc/src/snippets/qtablewidget-using/Images/squared.pngbin0 -> 440 bytes-rw-r--r--doc/src/snippets/qtablewidget-using/images.qrc6
-rw-r--r--doc/src/snippets/qtablewidget-using/main.cpp52
-rw-r--r--doc/src/snippets/qtablewidget-using/mainwindow.cpp151
-rw-r--r--doc/src/snippets/qtablewidget-using/mainwindow.h71
-rw-r--r--doc/src/snippets/qtablewidget-using/qtablewidget-using.pro4
-rw-r--r--doc/src/snippets/qtcast/qtcast.cpp80
-rw-r--r--doc/src/snippets/qtcast/qtcast.h55
-rw-r--r--doc/src/snippets/qtcast/qtcast.pro2
-rw-r--r--doc/src/snippets/qtest-namespace/main.cpp48
-rw-r--r--doc/src/snippets/qtest-namespace/qtest-namespace.pro2
-rw-r--r--doc/src/snippets/qtreeview-dnd/dragdropmodel.cpp147
-rw-r--r--doc/src/snippets/qtreeview-dnd/dragdropmodel.h73
-rw-r--r--doc/src/snippets/qtreeview-dnd/main.cpp52
-rw-r--r--doc/src/snippets/qtreeview-dnd/mainwindow.cpp91
-rw-r--r--doc/src/snippets/qtreeview-dnd/mainwindow.h62
-rw-r--r--doc/src/snippets/qtreeview-dnd/qtreeview-dnd.pro9
-rw-r--r--doc/src/snippets/qtreeview-dnd/treeitem.cpp126
-rw-r--r--doc/src/snippets/qtreeview-dnd/treeitem.h72
-rw-r--r--doc/src/snippets/qtreeview-dnd/treemodel.cpp263
-rw-r--r--doc/src/snippets/qtreeview-dnd/treemodel.h80
-rw-r--r--doc/src/snippets/qtreewidget-using/main.cpp52
-rw-r--r--doc/src/snippets/qtreewidget-using/mainwindow.cpp231
-rw-r--r--doc/src/snippets/qtreewidget-using/mainwindow.h78
-rw-r--r--doc/src/snippets/qtreewidget-using/qtreewidget-using.pro3
-rw-r--r--doc/src/snippets/qtreewidgetitemiterator-using/main.cpp52
-rw-r--r--doc/src/snippets/qtreewidgetitemiterator-using/mainwindow.cpp198
-rw-r--r--doc/src/snippets/qtreewidgetitemiterator-using/mainwindow.h78
-rw-r--r--doc/src/snippets/qtreewidgetitemiterator-using/qtreewidgetitemiterator-using.pro3
-rw-r--r--doc/src/snippets/qtscript/evaluation/evaluation.pro2
-rw-r--r--doc/src/snippets/qtscript/evaluation/main.cpp51
-rw-r--r--doc/src/snippets/qtscript/registeringobjects/main.cpp57
-rw-r--r--doc/src/snippets/qtscript/registeringobjects/myobject.cpp54
-rw-r--r--doc/src/snippets/qtscript/registeringobjects/myobject.h58
-rw-r--r--doc/src/snippets/qtscript/registeringobjects/registeringobjects.pro4
-rw-r--r--doc/src/snippets/qtscript/registeringvalues/main.cpp53
-rw-r--r--doc/src/snippets/qtscript/registeringvalues/registeringvalues.pro2
-rw-r--r--doc/src/snippets/qtscript/scriptedslot/main.cpp73
-rw-r--r--doc/src/snippets/qtscript/scriptedslot/object.js18
-rw-r--r--doc/src/snippets/qtscript/scriptedslot/scriptedslot.pro3
-rw-r--r--doc/src/snippets/qtscript/scriptedslot/scriptedslot.qrc5
-rw-r--r--doc/src/snippets/quiloader/main.cpp71
-rw-r--r--doc/src/snippets/quiloader/myform.ui130
-rw-r--r--doc/src/snippets/quiloader/mywidget.cpp61
-rw-r--r--doc/src/snippets/quiloader/mywidget.h53
-rw-r--r--doc/src/snippets/quiloader/mywidget.qrc5
-rw-r--r--doc/src/snippets/quiloader/quiloader.pro4
-rw-r--r--doc/src/snippets/qx11embedcontainer/main.cpp68
-rw-r--r--doc/src/snippets/qx11embedcontainer/qx11embedcontainer.pro1
-rw-r--r--doc/src/snippets/qx11embedwidget/embedwidget.cpp67
-rw-r--r--doc/src/snippets/qx11embedwidget/embedwidget.h66
-rw-r--r--doc/src/snippets/qx11embedwidget/main.cpp62
-rw-r--r--doc/src/snippets/qx11embedwidget/qx11embedwidget.pro3
-rw-r--r--doc/src/snippets/qxmlquery/bindingExample.cpp9
-rw-r--r--doc/src/snippets/qxmlstreamwriter/main.cpp77
-rw-r--r--doc/src/snippets/qxmlstreamwriter/qxmlstreamwriter.pro2
-rw-r--r--doc/src/snippets/reading-selections/main.cpp60
-rw-r--r--doc/src/snippets/reading-selections/model.cpp239
-rw-r--r--doc/src/snippets/reading-selections/model.h75
-rw-r--r--doc/src/snippets/reading-selections/reading-selections.pro2
-rw-r--r--doc/src/snippets/reading-selections/window.cpp121
-rw-r--r--doc/src/snippets/reading-selections/window.h68
-rw-r--r--doc/src/snippets/scribe-overview/main.cpp74
-rw-r--r--doc/src/snippets/scribe-overview/scribe-overview.pro1
-rw-r--r--doc/src/snippets/scriptdebugger.cpp64
-rw-r--r--doc/src/snippets/seekslider.cpp26
-rw-r--r--doc/src/snippets/separations/finalwidget.cpp127
-rw-r--r--doc/src/snippets/separations/finalwidget.h78
-rw-r--r--doc/src/snippets/separations/main.cpp51
-rw-r--r--doc/src/snippets/separations/screenwidget.cpp218
-rw-r--r--doc/src/snippets/separations/screenwidget.h87
-rw-r--r--doc/src/snippets/separations/separations.pro7
-rw-r--r--doc/src/snippets/separations/separations.qdoc55
-rw-r--r--doc/src/snippets/separations/viewer.cpp329
-rw-r--r--doc/src/snippets/separations/viewer.h90
-rw-r--r--doc/src/snippets/settings/settings.cpp185
-rw-r--r--doc/src/snippets/shareddirmodel/main.cpp81
-rw-r--r--doc/src/snippets/shareddirmodel/shareddirmodel.pro1
-rw-r--r--doc/src/snippets/sharedemployee/employee.cpp42
-rw-r--r--doc/src/snippets/sharedemployee/employee.h95
-rw-r--r--doc/src/snippets/sharedemployee/main.cpp51
-rw-r--r--doc/src/snippets/sharedemployee/sharedemployee.pro3
-rw-r--r--doc/src/snippets/sharedtablemodel/main.cpp90
-rw-r--r--doc/src/snippets/sharedtablemodel/model.cpp237
-rw-r--r--doc/src/snippets/sharedtablemodel/model.h75
-rw-r--r--doc/src/snippets/sharedtablemodel/sharedtablemodel.pro2
-rw-r--r--doc/src/snippets/signalmapper/accountsfile.txt1
-rw-r--r--doc/src/snippets/signalmapper/filereader.cpp59
-rw-r--r--doc/src/snippets/signalmapper/filereader.h28
-rw-r--r--doc/src/snippets/signalmapper/main.cpp13
-rw-r--r--doc/src/snippets/signalmapper/reportfile.txt2
-rw-r--r--doc/src/snippets/signalmapper/signalmapper.pro12
-rw-r--r--doc/src/snippets/signalmapper/taxfile.txt1
-rw-r--r--doc/src/snippets/signalsandslots/lcdnumber.cpp78
-rw-r--r--doc/src/snippets/signalsandslots/lcdnumber.h89
-rw-r--r--doc/src/snippets/signalsandslots/signalsandslots.cpp85
-rw-r--r--doc/src/snippets/signalsandslots/signalsandslots.h90
-rw-r--r--doc/src/snippets/simplemodel-use/main.cpp96
-rw-r--r--doc/src/snippets/simplemodel-use/simplemodel-use.pro1
-rw-r--r--doc/src/snippets/snippets.pro109
-rw-r--r--doc/src/snippets/splitter/splitter.cpp85
-rw-r--r--doc/src/snippets/splitter/splitter.pro1
-rw-r--r--doc/src/snippets/splitterhandle/main.cpp58
-rw-r--r--doc/src/snippets/splitterhandle/splitter.cpp79
-rw-r--r--doc/src/snippets/splitterhandle/splitter.h74
-rw-r--r--doc/src/snippets/splitterhandle/splitterhandle.pro3
-rw-r--r--doc/src/snippets/sqldatabase/sqldatabase.cpp560
-rw-r--r--doc/src/snippets/sqldatabase/sqldatabase.pro2
-rw-r--r--doc/src/snippets/streaming/main.cpp109
-rw-r--r--doc/src/snippets/streaming/streaming.pro2
-rw-r--r--doc/src/snippets/stringlistmodel/main.cpp84
-rw-r--r--doc/src/snippets/stringlistmodel/model.cpp182
-rw-r--r--doc/src/snippets/stringlistmodel/model.h83
-rw-r--r--doc/src/snippets/stringlistmodel/stringlistmodel.pro3
-rw-r--r--doc/src/snippets/styles/styles.cpp92
-rw-r--r--doc/src/snippets/stylesheet/common-mistakes.cpp12
-rw-r--r--doc/src/snippets/textblock-formats/main.cpp119
-rw-r--r--doc/src/snippets/textblock-formats/textblock-formats.pro2
-rw-r--r--doc/src/snippets/textblock-fragments/main.cpp53
-rw-r--r--doc/src/snippets/textblock-fragments/mainwindow.cpp149
-rw-r--r--doc/src/snippets/textblock-fragments/mainwindow.h66
-rw-r--r--doc/src/snippets/textblock-fragments/textblock-fragments.pro6
-rw-r--r--doc/src/snippets/textblock-fragments/xmlwriter.cpp119
-rw-r--r--doc/src/snippets/textblock-fragments/xmlwriter.h65
-rw-r--r--doc/src/snippets/textdocument-blocks/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-blocks/mainwindow.cpp157
-rw-r--r--doc/src/snippets/textdocument-blocks/mainwindow.h66
-rw-r--r--doc/src/snippets/textdocument-blocks/textdocument-blocks.pro6
-rw-r--r--doc/src/snippets/textdocument-blocks/xmlwriter.cpp85
-rw-r--r--doc/src/snippets/textdocument-blocks/xmlwriter.h62
-rw-r--r--doc/src/snippets/textdocument-charformats/main.cpp93
-rw-r--r--doc/src/snippets/textdocument-charformats/textdocument-charformats.pro1
-rw-r--r--doc/src/snippets/textdocument-css/main.cpp60
-rw-r--r--doc/src/snippets/textdocument-css/textdocument-css.pro1
-rw-r--r--doc/src/snippets/textdocument-cursors/main.cpp80
-rw-r--r--doc/src/snippets/textdocument-cursors/textdocument-cursors.pro1
-rw-r--r--doc/src/snippets/textdocument-find/main.cpp92
-rw-r--r--doc/src/snippets/textdocument-find/textdocument-find.pro1
-rw-r--r--doc/src/snippets/textdocument-frames/main.cpp54
-rw-r--r--doc/src/snippets/textdocument-frames/mainwindow.cpp162
-rw-r--r--doc/src/snippets/textdocument-frames/mainwindow.h65
-rw-r--r--doc/src/snippets/textdocument-frames/textdocument-frames.pro6
-rw-r--r--doc/src/snippets/textdocument-frames/xmlwriter.cpp117
-rw-r--r--doc/src/snippets/textdocument-frames/xmlwriter.h65
-rw-r--r--doc/src/snippets/textdocument-imagedrop/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-imagedrop/textdocument-imagedrop.pro2
-rw-r--r--doc/src/snippets/textdocument-imagedrop/textedit.cpp72
-rw-r--r--doc/src/snippets/textdocument-imagedrop/textedit.h57
-rw-r--r--doc/src/snippets/textdocument-imageformat/images.qrc6
-rw-r--r--doc/src/snippets/textdocument-imageformat/images/advert.pngbin0 -> 16291 bytes-rw-r--r--doc/src/snippets/textdocument-imageformat/images/newimage.pngbin0 -> 5490 bytes-rw-r--r--doc/src/snippets/textdocument-imageformat/main.cpp99
-rw-r--r--doc/src/snippets/textdocument-imageformat/textdocument-imageformat.pro2
-rw-r--r--doc/src/snippets/textdocument-images/images.qrc5
-rw-r--r--doc/src/snippets/textdocument-images/images/advert.pngbin0 -> 16291 bytes-rw-r--r--doc/src/snippets/textdocument-images/main.cpp73
-rw-r--r--doc/src/snippets/textdocument-images/textdocument-images.pro2
-rw-r--r--doc/src/snippets/textdocument-listitems/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-listitems/mainwindow.cpp198
-rw-r--r--doc/src/snippets/textdocument-listitems/mainwindow.h76
-rw-r--r--doc/src/snippets/textdocument-listitems/textdocument-listitems.pro3
-rw-r--r--doc/src/snippets/textdocument-lists/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-lists/mainwindow.cpp193
-rw-r--r--doc/src/snippets/textdocument-lists/mainwindow.h80
-rw-r--r--doc/src/snippets/textdocument-lists/textdocument-lists.pro3
-rw-r--r--doc/src/snippets/textdocument-printing/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-printing/mainwindow.cpp125
-rw-r--r--doc/src/snippets/textdocument-printing/mainwindow.h73
-rw-r--r--doc/src/snippets/textdocument-printing/textdocument-printing.pro3
-rw-r--r--doc/src/snippets/textdocument-resources/main.cpp84
-rw-r--r--doc/src/snippets/textdocument-resources/textdocument-resources.pro1
-rw-r--r--doc/src/snippets/textdocument-selections/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-selections/mainwindow.cpp204
-rw-r--r--doc/src/snippets/textdocument-selections/mainwindow.h80
-rw-r--r--doc/src/snippets/textdocument-selections/textdocument-selections.pro4
-rw-r--r--doc/src/snippets/textdocument-tables/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-tables/mainwindow.cpp205
-rw-r--r--doc/src/snippets/textdocument-tables/mainwindow.h66
-rw-r--r--doc/src/snippets/textdocument-tables/textdocument-tables.pro6
-rw-r--r--doc/src/snippets/textdocument-tables/xmlwriter.cpp154
-rw-r--r--doc/src/snippets/textdocument-tables/xmlwriter.h65
-rw-r--r--doc/src/snippets/textdocument-texttable/main.cpp85
-rw-r--r--doc/src/snippets/textdocumentendsnippet.cpp57
-rw-r--r--doc/src/snippets/threads/threads.cpp121
-rw-r--r--doc/src/snippets/threads/threads.h52
-rw-r--r--doc/src/snippets/timeline/main.cpp73
-rw-r--r--doc/src/snippets/timeline/timeline.pro1
-rw-r--r--doc/src/snippets/timers/timers.cpp79
-rw-r--r--doc/src/snippets/timers/timers.pro1
-rw-r--r--doc/src/snippets/transform/main.cpp141
-rw-r--r--doc/src/snippets/transform/transform.pro1
-rw-r--r--doc/src/snippets/uitools/calculatorform/calculatorform.pro5
-rw-r--r--doc/src/snippets/uitools/calculatorform/calculatorform.ui303
-rw-r--r--doc/src/snippets/uitools/calculatorform/main.cpp58
-rw-r--r--doc/src/snippets/updating-selections/main.cpp60
-rw-r--r--doc/src/snippets/updating-selections/model.cpp237
-rw-r--r--doc/src/snippets/updating-selections/model.h75
-rw-r--r--doc/src/snippets/updating-selections/updating-selections.pro2
-rw-r--r--doc/src/snippets/updating-selections/window.cpp110
-rw-r--r--doc/src/snippets/updating-selections/window.h68
-rw-r--r--doc/src/snippets/videomedia.cpp19
-rw-r--r--doc/src/snippets/volumeslider.cpp29
-rw-r--r--doc/src/snippets/webkit/simple/main.cpp56
-rw-r--r--doc/src/snippets/webkit/simple/simple.pro2
-rw-r--r--doc/src/snippets/webkit/webpage/main.cpp62
-rw-r--r--doc/src/snippets/webkit/webpage/webpage.pro3
-rw-r--r--doc/src/snippets/whatsthis/whatsthis.cpp65
-rw-r--r--doc/src/snippets/whatsthis/whatsthis.pro1
-rw-r--r--doc/src/snippets/widget-mask/main.cpp55
-rw-r--r--doc/src/snippets/widget-mask/mask.qrc5
-rw-r--r--doc/src/snippets/widget-mask/tux.pngbin0 -> 12191 bytes-rw-r--r--doc/src/snippets/widget-mask/widget-mask.pro3
-rw-r--r--doc/src/snippets/widgetdelegate.cpp27
-rw-r--r--doc/src/snippets/widgets-tutorial/childwidget/childwidget.pro1
-rw-r--r--doc/src/snippets/widgets-tutorial/childwidget/main.cpp17
-rw-r--r--doc/src/snippets/widgets-tutorial/nestedlayouts/main.cpp48
-rw-r--r--doc/src/snippets/widgets-tutorial/nestedlayouts/nestedlayouts.pro1
-rw-r--r--doc/src/snippets/widgets-tutorial/toplevel/main.cpp13
-rw-r--r--doc/src/snippets/widgets-tutorial/toplevel/toplevel.pro1
-rw-r--r--doc/src/snippets/widgets-tutorial/windowlayout/main.cpp19
-rw-r--r--doc/src/snippets/widgets-tutorial/windowlayout/windowlayout.pro1
-rw-r--r--doc/src/snippets/xml/prettyprint/main.cpp144
-rw-r--r--doc/src/snippets/xml/prettyprint/prettyprint.pro4
-rw-r--r--doc/src/snippets/xml/rsslisting/handler.cpp183
-rw-r--r--doc/src/snippets/xml/rsslisting/handler.h75
-rw-r--r--doc/src/snippets/xml/rsslisting/main.cpp64
-rw-r--r--doc/src/snippets/xml/rsslisting/rsslisting.cpp252
-rw-r--r--doc/src/snippets/xml/rsslisting/rsslisting.h87
-rw-r--r--doc/src/snippets/xml/simpleparse/handler.cpp139
-rw-r--r--doc/src/snippets/xml/simpleparse/handler.h68
-rw-r--r--doc/src/snippets/xml/simpleparse/main.cpp88
-rw-r--r--doc/src/snippets/xml/simpleparse/simpleparse.pro4
-rw-r--r--doc/src/snippets/xml/xml.pro8
-rw-r--r--doc/src/sql-driver.qdoc762
-rw-r--r--doc/src/styles.qdoc2059
-rw-r--r--doc/src/stylesheet.qdoc3964
-rw-r--r--doc/src/tech-preview/images/mainwindow-docks-example.pngbin0 -> 14427 bytes-rw-r--r--doc/src/tech-preview/images/mainwindow-docks.pngbin0 -> 10168 bytes-rw-r--r--doc/src/tech-preview/images/plaintext-layout.pngbin0 -> 40981 bytes-rw-r--r--doc/src/tech-preview/known-issues.html110
-rw-r--r--doc/src/templates.qdoc230
-rw-r--r--doc/src/threads.qdoc609
-rw-r--r--doc/src/timers.qdoc136
-rw-r--r--doc/src/tools-list.qdoc87
-rw-r--r--doc/src/topics.qdoc304
-rw-r--r--doc/src/trademarks.qdoc75
-rw-r--r--doc/src/trolltech-webpages.qdoc245
-rw-r--r--doc/src/tutorials/addressbook-fr.qdoc1064
-rw-r--r--doc/src/tutorials/addressbook-sdk.qdoc179
-rw-r--r--doc/src/tutorials/addressbook.qdoc1006
-rw-r--r--doc/src/tutorials/widgets-tutorial.qdoc193
-rw-r--r--doc/src/uic.qdoc89
-rw-r--r--doc/src/unicode.qdoc165
-rw-r--r--doc/src/unix-signal-handlers.qdoc103
-rw-r--r--doc/src/wince-customization.qdoc264
-rw-r--r--doc/src/wince-introduction.qdoc110
-rw-r--r--doc/src/wince-opengl.qdoc98
-rw-r--r--doc/src/winsystem.qdoc99
-rw-r--r--doc/src/xquery-introduction.qdoc1024
-rw-r--r--examples/README39
-rw-r--r--examples/activeqt/README39
-rw-r--r--examples/activeqt/activeqt.pro20
-rw-r--r--examples/activeqt/comapp/comapp.pro13
-rw-r--r--examples/activeqt/comapp/comapp.rc1
-rw-r--r--examples/activeqt/comapp/main.cpp272
-rw-r--r--examples/activeqt/dotnet/walkthrough/Form1.cs127
-rw-r--r--examples/activeqt/dotnet/walkthrough/Form1.resx131
-rw-r--r--examples/activeqt/dotnet/walkthrough/Form1.vb88
-rw-r--r--examples/activeqt/dotnet/walkthrough/csharp.csproj143
-rw-r--r--examples/activeqt/dotnet/walkthrough/vb.vbproj147
-rw-r--r--examples/activeqt/dotnet/wrapper/app.csproj93
-rw-r--r--examples/activeqt/dotnet/wrapper/lib/lib.vcproj149
-rw-r--r--examples/activeqt/dotnet/wrapper/lib/networker.cpp70
-rw-r--r--examples/activeqt/dotnet/wrapper/lib/networker.h67
-rw-r--r--examples/activeqt/dotnet/wrapper/lib/tools.cpp61
-rw-r--r--examples/activeqt/dotnet/wrapper/lib/tools.h54
-rw-r--r--examples/activeqt/dotnet/wrapper/lib/worker.cpp59
-rw-r--r--examples/activeqt/dotnet/wrapper/lib/worker.h69
-rw-r--r--examples/activeqt/dotnet/wrapper/main.cs40
-rw-r--r--examples/activeqt/dotnet/wrapper/wrapper.sln28
-rw-r--r--examples/activeqt/hierarchy/hierarchy.inf9
-rw-r--r--examples/activeqt/hierarchy/hierarchy.pro16
-rw-r--r--examples/activeqt/hierarchy/main.cpp50
-rw-r--r--examples/activeqt/hierarchy/objects.cpp108
-rw-r--r--examples/activeqt/hierarchy/objects.h100
-rw-r--r--examples/activeqt/menus/fileopen.xpm22
-rw-r--r--examples/activeqt/menus/filesave.xpm22
-rw-r--r--examples/activeqt/menus/main.cpp64
-rw-r--r--examples/activeqt/menus/menus.cpp178
-rw-r--r--examples/activeqt/menus/menus.h76
-rw-r--r--examples/activeqt/menus/menus.inf9
-rw-r--r--examples/activeqt/menus/menus.pro14
-rw-r--r--examples/activeqt/multiple/ax1.h87
-rw-r--r--examples/activeqt/multiple/ax2.h94
-rw-r--r--examples/activeqt/multiple/main.cpp53
-rw-r--r--examples/activeqt/multiple/multiple.inf9
-rw-r--r--examples/activeqt/multiple/multiple.pro16
-rw-r--r--examples/activeqt/multiple/multipleax.rc32
-rw-r--r--examples/activeqt/opengl/glbox.cpp250
-rw-r--r--examples/activeqt/opengl/glbox.h90
-rw-r--r--examples/activeqt/opengl/globjwin.cpp111
-rw-r--r--examples/activeqt/opengl/globjwin.h62
-rw-r--r--examples/activeqt/opengl/main.cpp91
-rw-r--r--examples/activeqt/opengl/opengl.inf9
-rw-r--r--examples/activeqt/opengl/opengl.pro19
-rw-r--r--examples/activeqt/qutlook/addressview.cpp289
-rw-r--r--examples/activeqt/qutlook/addressview.h79
-rw-r--r--examples/activeqt/qutlook/fileopen.xpm22
-rw-r--r--examples/activeqt/qutlook/fileprint.xpm24
-rw-r--r--examples/activeqt/qutlook/filesave.xpm22
-rw-r--r--examples/activeqt/qutlook/main.cpp56
-rw-r--r--examples/activeqt/qutlook/qutlook.pro23
-rw-r--r--examples/activeqt/simple/main.cpp137
-rw-r--r--examples/activeqt/simple/simple.inf11
-rw-r--r--examples/activeqt/simple/simple.pro13
-rw-r--r--examples/activeqt/webbrowser/main.cpp189
-rw-r--r--examples/activeqt/webbrowser/mainwindow.ui306
-rw-r--r--examples/activeqt/webbrowser/webaxwidget.h67
-rw-r--r--examples/activeqt/webbrowser/webbrowser.pro17
-rw-r--r--examples/activeqt/webbrowser/wincemainwindow.ui299
-rw-r--r--examples/activeqt/wrapper/main.cpp161
-rw-r--r--examples/activeqt/wrapper/wrapper.inf9
-rw-r--r--examples/activeqt/wrapper/wrapper.pro15
-rw-r--r--examples/activeqt/wrapper/wrapperax.rc32
-rw-r--r--examples/assistant/README38
-rw-r--r--examples/assistant/assistant.pro8
-rw-r--r--examples/assistant/simpletextviewer/documentation/about.txt9
-rw-r--r--examples/assistant/simpletextviewer/documentation/browse.html34
-rw-r--r--examples/assistant/simpletextviewer/documentation/filedialog.html48
-rw-r--r--examples/assistant/simpletextviewer/documentation/findfile.html32
-rw-r--r--examples/assistant/simpletextviewer/documentation/images/browse.pngbin0 -> 21553 bytes-rw-r--r--examples/assistant/simpletextviewer/documentation/images/fadedfilemenu.pngbin0 -> 9589 bytes-rw-r--r--examples/assistant/simpletextviewer/documentation/images/filedialog.pngbin0 -> 12318 bytes-rw-r--r--examples/assistant/simpletextviewer/documentation/images/handbook.pngbin0 -> 1060 bytes-rw-r--r--examples/assistant/simpletextviewer/documentation/images/mainwindow.pngbin0 -> 12769 bytes-rw-r--r--examples/assistant/simpletextviewer/documentation/images/open.pngbin0 -> 11697 bytes-rw-r--r--examples/assistant/simpletextviewer/documentation/images/wildcard.pngbin0 -> 11266 bytes-rw-r--r--examples/assistant/simpletextviewer/documentation/index.html41
-rw-r--r--examples/assistant/simpletextviewer/documentation/intro.html28
-rw-r--r--examples/assistant/simpletextviewer/documentation/openfile.html36
-rw-r--r--examples/assistant/simpletextviewer/documentation/simpletextviewer.adp40
-rw-r--r--examples/assistant/simpletextviewer/documentation/wildcardmatching.html57
-rw-r--r--examples/assistant/simpletextviewer/findfiledialog.cpp221
-rw-r--r--examples/assistant/simpletextviewer/findfiledialog.h99
-rw-r--r--examples/assistant/simpletextviewer/main.cpp52
-rw-r--r--examples/assistant/simpletextviewer/mainwindow.cpp154
-rw-r--r--examples/assistant/simpletextviewer/mainwindow.h91
-rw-r--r--examples/assistant/simpletextviewer/simpletextviewer.pro16
-rw-r--r--examples/dbus/complexpingpong/complexping.cpp118
-rw-r--r--examples/dbus/complexpingpong/complexping.h59
-rw-r--r--examples/dbus/complexpingpong/complexping.pro16
-rw-r--r--examples/dbus/complexpingpong/complexpingpong.pro4
-rw-r--r--examples/dbus/complexpingpong/complexpong.cpp105
-rw-r--r--examples/dbus/complexpingpong/complexpong.h68
-rw-r--r--examples/dbus/complexpingpong/complexpong.pro16
-rw-r--r--examples/dbus/complexpingpong/ping-common.h42
-rw-r--r--examples/dbus/dbus-chat/chat.cpp164
-rw-r--r--examples/dbus/dbus-chat/chat.h82
-rw-r--r--examples/dbus/dbus-chat/chat_adaptor.cpp35
-rw-r--r--examples/dbus/dbus-chat/chat_adaptor.h57
-rw-r--r--examples/dbus/dbus-chat/chat_interface.cpp25
-rw-r--r--examples/dbus/dbus-chat/chat_interface.h49
-rw-r--r--examples/dbus/dbus-chat/chatmainwindow.ui185
-rw-r--r--examples/dbus/dbus-chat/chatsetnickname.ui149
-rw-r--r--examples/dbus/dbus-chat/com.trolltech.chat.xml15
-rw-r--r--examples/dbus/dbus-chat/dbus-chat.pro19
-rw-r--r--examples/dbus/dbus.pro12
-rw-r--r--examples/dbus/listnames/listnames.cpp92
-rw-r--r--examples/dbus/listnames/listnames.pro17
-rw-r--r--examples/dbus/pingpong/ping-common.h42
-rw-r--r--examples/dbus/pingpong/ping.cpp75
-rw-r--r--examples/dbus/pingpong/ping.pro16
-rw-r--r--examples/dbus/pingpong/pingpong.pro4
-rw-r--r--examples/dbus/pingpong/pong.cpp80
-rw-r--r--examples/dbus/pingpong/pong.h54
-rw-r--r--examples/dbus/pingpong/pong.pro16
-rw-r--r--examples/dbus/remotecontrolledcar/car/car.cpp138
-rw-r--r--examples/dbus/remotecontrolledcar/car/car.h76
-rw-r--r--examples/dbus/remotecontrolledcar/car/car.pro20
-rw-r--r--examples/dbus/remotecontrolledcar/car/car.xml11
-rw-r--r--examples/dbus/remotecontrolledcar/car/car_adaptor.cpp59
-rw-r--r--examples/dbus/remotecontrolledcar/car/car_adaptor_p.h57
-rw-r--r--examples/dbus/remotecontrolledcar/car/main.cpp73
-rw-r--r--examples/dbus/remotecontrolledcar/controller/car.xml11
-rw-r--r--examples/dbus/remotecontrolledcar/controller/car_interface.cpp26
-rw-r--r--examples/dbus/remotecontrolledcar/controller/car_interface_p.h74
-rw-r--r--examples/dbus/remotecontrolledcar/controller/controller.cpp83
-rw-r--r--examples/dbus/remotecontrolledcar/controller/controller.h71
-rw-r--r--examples/dbus/remotecontrolledcar/controller/controller.pro21
-rw-r--r--examples/dbus/remotecontrolledcar/controller/controller.ui64
-rw-r--r--examples/dbus/remotecontrolledcar/controller/main.cpp53
-rw-r--r--examples/dbus/remotecontrolledcar/remotecontrolledcar.pro8
-rw-r--r--examples/designer/README37
-rw-r--r--examples/designer/calculatorbuilder/calculatorbuilder.pro14
-rw-r--r--examples/designer/calculatorbuilder/calculatorbuilder.qrc5
-rw-r--r--examples/designer/calculatorbuilder/calculatorform.cpp92
-rw-r--r--examples/designer/calculatorbuilder/calculatorform.h71
-rw-r--r--examples/designer/calculatorbuilder/calculatorform.ui303
-rw-r--r--examples/designer/calculatorbuilder/main.cpp54
-rw-r--r--examples/designer/calculatorform/calculatorform.cpp66
-rw-r--r--examples/designer/calculatorform/calculatorform.h66
-rw-r--r--examples/designer/calculatorform/calculatorform.pro13
-rw-r--r--examples/designer/calculatorform/calculatorform.ui284
-rw-r--r--examples/designer/calculatorform/main.cpp53
-rw-r--r--examples/designer/containerextension/containerextension.pro26
-rw-r--r--examples/designer/containerextension/multipagewidget.cpp131
-rw-r--r--examples/designer/containerextension/multipagewidget.h88
-rw-r--r--examples/designer/containerextension/multipagewidgetcontainerextension.cpp101
-rw-r--r--examples/designer/containerextension/multipagewidgetcontainerextension.h75
-rw-r--r--examples/designer/containerextension/multipagewidgetextensionfactory.cpp65
-rw-r--r--examples/designer/containerextension/multipagewidgetextensionfactory.h64
-rw-r--r--examples/designer/containerextension/multipagewidgetplugin.cpp197
-rw-r--r--examples/designer/containerextension/multipagewidgetplugin.h81
-rw-r--r--examples/designer/customwidgetplugin/analogclock.cpp111
-rw-r--r--examples/designer/customwidgetplugin/analogclock.h59
-rw-r--r--examples/designer/customwidgetplugin/customwidgetplugin.cpp156
-rw-r--r--examples/designer/customwidgetplugin/customwidgetplugin.h73
-rw-r--r--examples/designer/customwidgetplugin/customwidgetplugin.pro21
-rw-r--r--examples/designer/designer.pro19
-rw-r--r--examples/designer/taskmenuextension/taskmenuextension.pro25
-rw-r--r--examples/designer/taskmenuextension/tictactoe.cpp176
-rw-r--r--examples/designer/taskmenuextension/tictactoe.h83
-rw-r--r--examples/designer/taskmenuextension/tictactoedialog.cpp99
-rw-r--r--examples/designer/taskmenuextension/tictactoedialog.h73
-rw-r--r--examples/designer/taskmenuextension/tictactoeplugin.cpp134
-rw-r--r--examples/designer/taskmenuextension/tictactoeplugin.h78
-rw-r--r--examples/designer/taskmenuextension/tictactoetaskmenu.cpp104
-rw-r--r--examples/designer/taskmenuextension/tictactoetaskmenu.h88
-rw-r--r--examples/designer/worldtimeclockbuilder/form.ui162
-rw-r--r--examples/designer/worldtimeclockbuilder/main.cpp70
-rw-r--r--examples/designer/worldtimeclockbuilder/worldtimeclockbuilder.pro11
-rw-r--r--examples/designer/worldtimeclockbuilder/worldtimeclockbuilder.qrc5
-rw-r--r--examples/designer/worldtimeclockplugin/worldtimeclock.cpp122
-rw-r--r--examples/designer/worldtimeclockplugin/worldtimeclock.h73
-rw-r--r--examples/designer/worldtimeclockplugin/worldtimeclockplugin.cpp124
-rw-r--r--examples/designer/worldtimeclockplugin/worldtimeclockplugin.h74
-rw-r--r--examples/designer/worldtimeclockplugin/worldtimeclockplugin.pro21
-rw-r--r--examples/desktop/README41
-rw-r--r--examples/desktop/desktop.pro11
-rw-r--r--examples/desktop/screenshot/main.cpp52
-rw-r--r--examples/desktop/screenshot/screenshot.cpp198
-rw-r--r--examples/desktop/screenshot/screenshot.h100
-rw-r--r--examples/desktop/screenshot/screenshot.pro9
-rw-r--r--examples/desktop/systray/images/bad.svg64
-rw-r--r--examples/desktop/systray/images/heart.svg55
-rw-r--r--examples/desktop/systray/images/trash.svg58
-rw-r--r--examples/desktop/systray/main.cpp63
-rw-r--r--examples/desktop/systray/systray.pro22
-rw-r--r--examples/desktop/systray/systray.qrc7
-rw-r--r--examples/desktop/systray/window.cpp259
-rw-r--r--examples/desktop/systray/window.h113
-rw-r--r--examples/dialogs/README40
-rw-r--r--examples/dialogs/classwizard/classwizard.cpp431
-rw-r--r--examples/dialogs/classwizard/classwizard.h157
-rw-r--r--examples/dialogs/classwizard/classwizard.pro10
-rw-r--r--examples/dialogs/classwizard/classwizard.qrc11
-rw-r--r--examples/dialogs/classwizard/images/background.pngbin0 -> 22578 bytes-rw-r--r--examples/dialogs/classwizard/images/banner.pngbin0 -> 3947 bytes-rw-r--r--examples/dialogs/classwizard/images/logo1.pngbin0 -> 1619 bytes-rw-r--r--examples/dialogs/classwizard/images/logo2.pngbin0 -> 1619 bytes-rw-r--r--examples/dialogs/classwizard/images/logo3.pngbin0 -> 1619 bytes-rw-r--r--examples/dialogs/classwizard/images/watermark1.pngbin0 -> 14516 bytes-rw-r--r--examples/dialogs/classwizard/images/watermark2.pngbin0 -> 14912 bytes-rw-r--r--examples/dialogs/classwizard/main.cpp64
-rw-r--r--examples/dialogs/configdialog/configdialog.cpp117
-rw-r--r--examples/dialogs/configdialog/configdialog.h70
-rw-r--r--examples/dialogs/configdialog/configdialog.pro14
-rw-r--r--examples/dialogs/configdialog/configdialog.qrc7
-rw-r--r--examples/dialogs/configdialog/images/config.pngbin0 -> 6758 bytes-rw-r--r--examples/dialogs/configdialog/images/query.pngbin0 -> 2116 bytes-rw-r--r--examples/dialogs/configdialog/images/update.pngbin0 -> 7890 bytes-rw-r--r--examples/dialogs/configdialog/main.cpp53
-rw-r--r--examples/dialogs/configdialog/pages.cpp152
-rw-r--r--examples/dialogs/configdialog/pages.h65
-rw-r--r--examples/dialogs/dialogs.pro17
-rw-r--r--examples/dialogs/extension/extension.pro9
-rw-r--r--examples/dialogs/extension/finddialog.cpp113
-rw-r--r--examples/dialogs/extension/finddialog.h79
-rw-r--r--examples/dialogs/extension/main.cpp51
-rw-r--r--examples/dialogs/findfiles/findfiles.pro9
-rw-r--r--examples/dialogs/findfiles/main.cpp52
-rw-r--r--examples/dialogs/findfiles/window.cpp250
-rw-r--r--examples/dialogs/findfiles/window.h91
-rw-r--r--examples/dialogs/licensewizard/images/logo.pngbin0 -> 1810 bytes-rw-r--r--examples/dialogs/licensewizard/images/watermark.pngbin0 -> 34998 bytes-rw-r--r--examples/dialogs/licensewizard/licensewizard.cpp360
-rw-r--r--examples/dialogs/licensewizard/licensewizard.h164
-rw-r--r--examples/dialogs/licensewizard/licensewizard.pro10
-rw-r--r--examples/dialogs/licensewizard/licensewizard.qrc6
-rw-r--r--examples/dialogs/licensewizard/main.cpp64
-rw-r--r--examples/dialogs/sipdialog/dialog.cpp124
-rw-r--r--examples/dialogs/sipdialog/dialog.h64
-rw-r--r--examples/dialogs/sipdialog/main.cpp53
-rw-r--r--examples/dialogs/sipdialog/sipdialog.pro12
-rw-r--r--examples/dialogs/standarddialogs/dialog.cpp390
-rw-r--r--examples/dialogs/standarddialogs/dialog.h99
-rw-r--r--examples/dialogs/standarddialogs/main.cpp61
-rw-r--r--examples/dialogs/standarddialogs/standarddialogs.pro11
-rw-r--r--examples/dialogs/tabdialog/main.cpp58
-rw-r--r--examples/dialogs/tabdialog/tabdialog.cpp196
-rw-r--r--examples/dialogs/tabdialog/tabdialog.h100
-rw-r--r--examples/dialogs/tabdialog/tabdialog.pro10
-rw-r--r--examples/dialogs/trivialwizard/trivialwizard.cpp136
-rw-r--r--examples/dialogs/trivialwizard/trivialwizard.pro7
-rw-r--r--examples/draganddrop/README40
-rw-r--r--examples/draganddrop/delayedencoding/delayedencoding.pro14
-rw-r--r--examples/draganddrop/delayedencoding/delayedencoding.qrc6
-rw-r--r--examples/draganddrop/delayedencoding/images/drag.pngbin0 -> 977 bytes-rw-r--r--examples/draganddrop/delayedencoding/images/example.svg59
-rw-r--r--examples/draganddrop/delayedencoding/main.cpp52
-rw-r--r--examples/draganddrop/delayedencoding/mimedata.cpp66
-rw-r--r--examples/draganddrop/delayedencoding/mimedata.h64
-rw-r--r--examples/draganddrop/delayedencoding/sourcewidget.cpp115
-rw-r--r--examples/draganddrop/delayedencoding/sourcewidget.h71
-rw-r--r--examples/draganddrop/draganddrop.pro15
-rw-r--r--examples/draganddrop/draggableicons/draggableicons.pro10
-rw-r--r--examples/draganddrop/draggableicons/draggableicons.qrc7
-rw-r--r--examples/draganddrop/draggableicons/dragwidget.cpp169
-rw-r--r--examples/draganddrop/draggableicons/dragwidget.h66
-rw-r--r--examples/draganddrop/draggableicons/images/boat.pngbin0 -> 2772 bytes-rw-r--r--examples/draganddrop/draggableicons/images/car.pngbin0 -> 2963 bytes-rw-r--r--examples/draganddrop/draggableicons/images/house.pngbin0 -> 3292 bytes-rw-r--r--examples/draganddrop/draggableicons/main.cpp62
-rw-r--r--examples/draganddrop/draggabletext/draggabletext.pro12
-rw-r--r--examples/draganddrop/draggabletext/draggabletext.qrc5
-rw-r--r--examples/draganddrop/draggabletext/draglabel.cpp52
-rw-r--r--examples/draganddrop/draggabletext/draglabel.h59
-rw-r--r--examples/draganddrop/draggabletext/dragwidget.cpp164
-rw-r--r--examples/draganddrop/draggabletext/dragwidget.h63
-rw-r--r--examples/draganddrop/draggabletext/main.cpp53
-rw-r--r--examples/draganddrop/draggabletext/words.txt41
-rw-r--r--examples/draganddrop/dropsite/droparea.cpp127
-rw-r--r--examples/draganddrop/dropsite/droparea.h78
-rw-r--r--examples/draganddrop/dropsite/dropsite.pro12
-rw-r--r--examples/draganddrop/dropsite/dropsitewindow.cpp146
-rw-r--r--examples/draganddrop/dropsite/dropsitewindow.h78
-rw-r--r--examples/draganddrop/dropsite/main.cpp54
-rw-r--r--examples/draganddrop/fridgemagnets/draglabel.cpp90
-rw-r--r--examples/draganddrop/fridgemagnets/draglabel.h65
-rw-r--r--examples/draganddrop/fridgemagnets/dragwidget.cpp212
-rw-r--r--examples/draganddrop/fridgemagnets/dragwidget.h66
-rw-r--r--examples/draganddrop/fridgemagnets/fridgemagnets.pro12
-rw-r--r--examples/draganddrop/fridgemagnets/fridgemagnets.qrc5
-rw-r--r--examples/draganddrop/fridgemagnets/main.cpp53
-rw-r--r--examples/draganddrop/fridgemagnets/words.txt48
-rw-r--r--examples/draganddrop/puzzle/example.jpgbin0 -> 42654 bytes-rw-r--r--examples/draganddrop/puzzle/main.cpp55
-rw-r--r--examples/draganddrop/puzzle/mainwindow.cpp151
-rw-r--r--examples/draganddrop/puzzle/mainwindow.h77
-rw-r--r--examples/draganddrop/puzzle/pieceslist.cpp122
-rw-r--r--examples/draganddrop/puzzle/pieceslist.h62
-rw-r--r--examples/draganddrop/puzzle/puzzle.pro20
-rw-r--r--examples/draganddrop/puzzle/puzzle.qrc5
-rw-r--r--examples/draganddrop/puzzle/puzzlewidget.cpp205
-rw-r--r--examples/draganddrop/puzzle/puzzlewidget.h86
-rw-r--r--examples/examples.pro43
-rw-r--r--examples/graphicsview/README40
-rw-r--r--examples/graphicsview/basicgraphicslayouts/basicgraphicslayouts.pro12
-rw-r--r--examples/graphicsview/basicgraphicslayouts/basicgraphicslayouts.qrc5
-rw-r--r--examples/graphicsview/basicgraphicslayouts/images/block.pngbin0 -> 2146 bytes-rw-r--r--examples/graphicsview/basicgraphicslayouts/layoutitem.cpp99
-rw-r--r--examples/graphicsview/basicgraphicslayouts/layoutitem.h62
-rw-r--r--examples/graphicsview/basicgraphicslayouts/main.cpp59
-rw-r--r--examples/graphicsview/basicgraphicslayouts/window.cpp91
-rw-r--r--examples/graphicsview/basicgraphicslayouts/window.h58
-rw-r--r--examples/graphicsview/collidingmice/collidingmice.pro14
-rw-r--r--examples/graphicsview/collidingmice/images/cheese.jpgbin0 -> 3029 bytes-rw-r--r--examples/graphicsview/collidingmice/main.cpp88
-rw-r--r--examples/graphicsview/collidingmice/mice.qrc5
-rw-r--r--examples/graphicsview/collidingmice/mouse.cpp200
-rw-r--r--examples/graphicsview/collidingmice/mouse.h72
-rw-r--r--examples/graphicsview/diagramscene/arrow.cpp147
-rw-r--r--examples/graphicsview/diagramscene/arrow.h94
-rw-r--r--examples/graphicsview/diagramscene/diagramitem.cpp152
-rw-r--r--examples/graphicsview/diagramscene/diagramitem.h97
-rw-r--r--examples/graphicsview/diagramscene/diagramscene.cpp241
-rw-r--r--examples/graphicsview/diagramscene/diagramscene.h113
-rw-r--r--examples/graphicsview/diagramscene/diagramscene.pro20
-rw-r--r--examples/graphicsview/diagramscene/diagramscene.qrc20
-rw-r--r--examples/graphicsview/diagramscene/diagramtextitem.cpp82
-rw-r--r--examples/graphicsview/diagramscene/diagramtextitem.h79
-rw-r--r--examples/graphicsview/diagramscene/images/background1.pngbin0 -> 112 bytes-rw-r--r--examples/graphicsview/diagramscene/images/background2.pngbin0 -> 114 bytes-rw-r--r--examples/graphicsview/diagramscene/images/background3.pngbin0 -> 116 bytes-rw-r--r--examples/graphicsview/diagramscene/images/background4.pngbin0 -> 96 bytes-rw-r--r--examples/graphicsview/diagramscene/images/bold.pngbin0 -> 274 bytes-rw-r--r--examples/graphicsview/diagramscene/images/bringtofront.pngbin0 -> 293 bytes-rw-r--r--examples/graphicsview/diagramscene/images/delete.pngbin0 -> 831 bytes-rw-r--r--examples/graphicsview/diagramscene/images/floodfill.pngbin0 -> 282 bytes-rw-r--r--examples/graphicsview/diagramscene/images/italic.pngbin0 -> 247 bytes-rw-r--r--examples/graphicsview/diagramscene/images/linecolor.pngbin0 -> 145 bytes-rw-r--r--examples/graphicsview/diagramscene/images/linepointer.pngbin0 -> 141 bytes-rw-r--r--examples/graphicsview/diagramscene/images/pointer.pngbin0 -> 173 bytes-rw-r--r--examples/graphicsview/diagramscene/images/sendtoback.pngbin0 -> 318 bytes-rw-r--r--examples/graphicsview/diagramscene/images/textpointer.pngbin0 -> 753 bytes-rw-r--r--examples/graphicsview/diagramscene/images/underline.pngbin0 -> 250 bytes-rw-r--r--examples/graphicsview/diagramscene/main.cpp56
-rw-r--r--examples/graphicsview/diagramscene/mainwindow.cpp651
-rw-r--r--examples/graphicsview/diagramscene/mainwindow.h151
-rw-r--r--examples/graphicsview/dragdroprobot/coloritem.cpp129
-rw-r--r--examples/graphicsview/dragdroprobot/coloritem.h64
-rw-r--r--examples/graphicsview/dragdroprobot/dragdroprobot.pro18
-rw-r--r--examples/graphicsview/dragdroprobot/images/head.pngbin0 -> 14972 bytes-rw-r--r--examples/graphicsview/dragdroprobot/main.cpp78
-rw-r--r--examples/graphicsview/dragdroprobot/robot.cpp273
-rw-r--r--examples/graphicsview/dragdroprobot/robot.h110
-rw-r--r--examples/graphicsview/dragdroprobot/robot.qrc5
-rw-r--r--examples/graphicsview/elasticnodes/edge.cpp144
-rw-r--r--examples/graphicsview/elasticnodes/edge.h78
-rw-r--r--examples/graphicsview/elasticnodes/elasticnodes.pro16
-rw-r--r--examples/graphicsview/elasticnodes/graphwidget.cpp224
-rw-r--r--examples/graphicsview/elasticnodes/graphwidget.h71
-rw-r--r--examples/graphicsview/elasticnodes/main.cpp54
-rw-r--r--examples/graphicsview/elasticnodes/node.cpp185
-rw-r--r--examples/graphicsview/elasticnodes/node.h84
-rw-r--r--examples/graphicsview/graphicsview.pro18
-rw-r--r--examples/graphicsview/padnavigator/backside.ui208
-rw-r--r--examples/graphicsview/padnavigator/images/artsfftscope.pngbin0 -> 1291 bytes-rw-r--r--examples/graphicsview/padnavigator/images/blue_angle_swirl.jpgbin0 -> 11826 bytes-rw-r--r--examples/graphicsview/padnavigator/images/kontact_contacts.pngbin0 -> 4382 bytes-rw-r--r--examples/graphicsview/padnavigator/images/kontact_journal.pngbin0 -> 3261 bytes-rw-r--r--examples/graphicsview/padnavigator/images/kontact_mail.pngbin0 -> 3202 bytes-rw-r--r--examples/graphicsview/padnavigator/images/kontact_notes.pngbin0 -> 3893 bytes-rw-r--r--examples/graphicsview/padnavigator/images/kopeteavailable.pngbin0 -> 2380 bytes-rw-r--r--examples/graphicsview/padnavigator/images/metacontact_online.pngbin0 -> 2545 bytes-rw-r--r--examples/graphicsview/padnavigator/images/minitools.pngbin0 -> 2087 bytes-rw-r--r--examples/graphicsview/padnavigator/main.cpp59
-rw-r--r--examples/graphicsview/padnavigator/padnavigator.pro24
-rw-r--r--examples/graphicsview/padnavigator/padnavigator.qrc14
-rw-r--r--examples/graphicsview/padnavigator/panel.cpp238
-rw-r--r--examples/graphicsview/padnavigator/panel.h92
-rw-r--r--examples/graphicsview/padnavigator/roundrectitem.cpp164
-rw-r--r--examples/graphicsview/padnavigator/roundrectitem.h83
-rw-r--r--examples/graphicsview/padnavigator/splashitem.cpp92
-rw-r--r--examples/graphicsview/padnavigator/splashitem.h63
-rw-r--r--examples/graphicsview/portedasteroids/animateditem.cpp95
-rw-r--r--examples/graphicsview/portedasteroids/animateditem.h84
-rw-r--r--examples/graphicsview/portedasteroids/bg.pngbin0 -> 3793 bytes-rw-r--r--examples/graphicsview/portedasteroids/ledmeter.cpp161
-rw-r--r--examples/graphicsview/portedasteroids/ledmeter.h96
-rw-r--r--examples/graphicsview/portedasteroids/main.cpp60
-rw-r--r--examples/graphicsview/portedasteroids/portedasteroids.pro19
-rw-r--r--examples/graphicsview/portedasteroids/portedasteroids.qrc163
-rw-r--r--examples/graphicsview/portedasteroids/sounds/Explosion.wavbin0 -> 18427 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites.h170
-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits.ini9
-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits.pov31
-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0000.pngbin0 -> 215 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0001.pngbin0 -> 236 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0002.pngbin0 -> 244 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0003.pngbin0 -> 277 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0004.pngbin0 -> 259 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0005.pngbin0 -> 251 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0006.pngbin0 -> 214 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0007.pngbin0 -> 177 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0008.pngbin0 -> 175 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0009.pngbin0 -> 221 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0010.pngbin0 -> 243 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0011.pngbin0 -> 272 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0012.pngbin0 -> 265 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0013.pngbin0 -> 253 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0014.pngbin0 -> 214 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/bits/bits0015.pngbin0 -> 196 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/exhaust/exhaust.pngbin0 -> 92 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/missile/missile.pngbin0 -> 89 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/powerups/brake.pngbin0 -> 151 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/powerups/energy.pngbin0 -> 134 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/powerups/shield.pngbin0 -> 171 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/powerups/shoot.pngbin0 -> 181 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/powerups/teleport.pngbin0 -> 160 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock1.ini9
-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock1.pov26
-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10000.pngbin0 -> 2502 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10001.pngbin0 -> 2483 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10002.pngbin0 -> 2519 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10003.pngbin0 -> 2460 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10004.pngbin0 -> 2486 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10005.pngbin0 -> 2416 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10006.pngbin0 -> 2419 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10007.pngbin0 -> 2374 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10008.pngbin0 -> 2329 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10009.pngbin0 -> 2227 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10010.pngbin0 -> 2218 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10011.pngbin0 -> 2178 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10012.pngbin0 -> 2172 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10013.pngbin0 -> 2229 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10014.pngbin0 -> 2270 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10015.pngbin0 -> 2348 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10016.pngbin0 -> 2402 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10017.pngbin0 -> 2489 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10018.pngbin0 -> 2530 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10019.pngbin0 -> 2591 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10020.pngbin0 -> 2540 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10021.pngbin0 -> 2606 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10022.pngbin0 -> 2591 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10023.pngbin0 -> 2566 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10024.pngbin0 -> 2512 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10025.pngbin0 -> 2456 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10026.pngbin0 -> 2420 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10027.pngbin0 -> 2557 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10028.pngbin0 -> 2567 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10029.pngbin0 -> 2572 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10030.pngbin0 -> 2620 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock1/rock10031.pngbin0 -> 2558 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock2.ini9
-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock2.pov26
-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20000.pngbin0 -> 1338 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20001.pngbin0 -> 1363 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20002.pngbin0 -> 1385 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20003.pngbin0 -> 1389 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20004.pngbin0 -> 1361 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20005.pngbin0 -> 1393 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20006.pngbin0 -> 1361 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20007.pngbin0 -> 1369 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20008.pngbin0 -> 1368 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20009.pngbin0 -> 1311 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20010.pngbin0 -> 1340 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20011.pngbin0 -> 1322 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20012.pngbin0 -> 1350 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20013.pngbin0 -> 1337 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20014.pngbin0 -> 1341 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20015.pngbin0 -> 1373 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20016.pngbin0 -> 1357 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20017.pngbin0 -> 1354 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20018.pngbin0 -> 1320 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20019.pngbin0 -> 1356 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20020.pngbin0 -> 1379 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20021.pngbin0 -> 1401 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20022.pngbin0 -> 1418 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20023.pngbin0 -> 1401 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20024.pngbin0 -> 1383 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20025.pngbin0 -> 1360 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20026.pngbin0 -> 1376 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20027.pngbin0 -> 1331 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20028.pngbin0 -> 1353 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20029.pngbin0 -> 1376 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20030.pngbin0 -> 1290 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock2/rock20031.pngbin0 -> 1313 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock3.ini9
-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock3.pov26
-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30000.pngbin0 -> 738 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30001.pngbin0 -> 730 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30002.pngbin0 -> 769 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30003.pngbin0 -> 766 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30004.pngbin0 -> 770 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30005.pngbin0 -> 756 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30006.pngbin0 -> 760 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30007.pngbin0 -> 750 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30008.pngbin0 -> 747 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30009.pngbin0 -> 752 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30010.pngbin0 -> 727 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30011.pngbin0 -> 737 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30012.pngbin0 -> 724 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30013.pngbin0 -> 751 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30014.pngbin0 -> 720 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30015.pngbin0 -> 741 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30016.pngbin0 -> 723 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30017.pngbin0 -> 722 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30018.pngbin0 -> 716 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30019.pngbin0 -> 735 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30020.pngbin0 -> 735 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30021.pngbin0 -> 731 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30022.pngbin0 -> 735 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30023.pngbin0 -> 732 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30024.pngbin0 -> 727 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30025.pngbin0 -> 721 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30026.pngbin0 -> 716 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30027.pngbin0 -> 721 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30028.pngbin0 -> 739 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30029.pngbin0 -> 740 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30030.pngbin0 -> 725 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/rock3/rock30031.pngbin0 -> 715 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/shield/shield0000.pngbin0 -> 1702 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/shield/shield0001.pngbin0 -> 1690 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/shield/shield0002.pngbin0 -> 1849 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/shield/shield0003.pngbin0 -> 1858 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/shield/shield0004.pngbin0 -> 1725 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/shield/shield0005.pngbin0 -> 1876 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/shield/shield0006.pngbin0 -> 1848 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship.ini9
-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship.pov128
-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0000.pngbin0 -> 1772 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0001.pngbin0 -> 1893 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0002.pngbin0 -> 1899 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0003.pngbin0 -> 1878 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0004.pngbin0 -> 1979 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0005.pngbin0 -> 2054 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0006.pngbin0 -> 1956 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0007.pngbin0 -> 1929 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0008.pngbin0 -> 1790 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0009.pngbin0 -> 1913 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0010.pngbin0 -> 1954 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0011.pngbin0 -> 1975 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0012.pngbin0 -> 1953 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0013.pngbin0 -> 1924 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0014.pngbin0 -> 1900 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0015.pngbin0 -> 1799 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0016.pngbin0 -> 1738 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0017.pngbin0 -> 1868 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0018.pngbin0 -> 1945 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0019.pngbin0 -> 1972 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0020.pngbin0 -> 2014 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0021.pngbin0 -> 2002 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0022.pngbin0 -> 1920 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0023.pngbin0 -> 1840 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0024.pngbin0 -> 1733 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0025.pngbin0 -> 1880 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0026.pngbin0 -> 1951 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0027.pngbin0 -> 2014 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0028.pngbin0 -> 2019 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0029.pngbin0 -> 2022 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0030.pngbin0 -> 1969 bytes-rw-r--r--examples/graphicsview/portedasteroids/sprites/ship/ship0031.pngbin0 -> 1880 bytes-rw-r--r--examples/graphicsview/portedasteroids/toplevel.cpp543
-rw-r--r--examples/graphicsview/portedasteroids/toplevel.h126
-rw-r--r--examples/graphicsview/portedasteroids/view.cpp967
-rw-r--r--examples/graphicsview/portedasteroids/view.h184
-rw-r--r--examples/graphicsview/portedcanvas/blendshadow.cpp94
-rw-r--r--examples/graphicsview/portedcanvas/butterfly.pngbin0 -> 36868 bytes-rw-r--r--examples/graphicsview/portedcanvas/canvas.cpp733
-rw-r--r--examples/graphicsview/portedcanvas/canvas.doc29
-rw-r--r--examples/graphicsview/portedcanvas/canvas.h131
-rw-r--r--examples/graphicsview/portedcanvas/main.cpp92
-rw-r--r--examples/graphicsview/portedcanvas/makeimg.cpp133
-rw-r--r--examples/graphicsview/portedcanvas/portedcanvas.pro16
-rw-r--r--examples/graphicsview/portedcanvas/portedcanvas.qrc7
-rw-r--r--examples/graphicsview/portedcanvas/qt-trans.xpm54
-rw-r--r--examples/graphicsview/portedcanvas/qtlogo.pngbin0 -> 21921 bytes-rw-r--r--examples/help/README38
-rw-r--r--examples/help/contextsensitivehelp/contextsensitivehelp.pro18
-rw-r--r--examples/help/contextsensitivehelp/doc/amount.html11
-rw-r--r--examples/help/contextsensitivehelp/doc/filter.html12
-rw-r--r--examples/help/contextsensitivehelp/doc/plants.html44
-rw-r--r--examples/help/contextsensitivehelp/doc/rain.html11
-rw-r--r--examples/help/contextsensitivehelp/doc/source.html33
-rw-r--r--examples/help/contextsensitivehelp/doc/temperature.html13
-rw-r--r--examples/help/contextsensitivehelp/doc/time.html11
-rw-r--r--examples/help/contextsensitivehelp/doc/wateringmachine.qchbin0 -> 27648 bytes-rw-r--r--examples/help/contextsensitivehelp/doc/wateringmachine.qhcbin0 -> 10240 bytes-rw-r--r--examples/help/contextsensitivehelp/doc/wateringmachine.qhcp14
-rw-r--r--examples/help/contextsensitivehelp/doc/wateringmachine.qhp25
-rw-r--r--examples/help/contextsensitivehelp/helpbrowser.cpp81
-rw-r--r--examples/help/contextsensitivehelp/helpbrowser.h65
-rw-r--r--examples/help/contextsensitivehelp/main.cpp51
-rw-r--r--examples/help/contextsensitivehelp/wateringconfigdialog.cpp69
-rw-r--r--examples/help/contextsensitivehelp/wateringconfigdialog.h62
-rw-r--r--examples/help/contextsensitivehelp/wateringconfigdialog.ui446
-rw-r--r--examples/help/help.pro11
-rw-r--r--examples/help/remotecontrol/enter.pngbin0 -> 315 bytes-rw-r--r--examples/help/remotecontrol/main.cpp54
-rw-r--r--examples/help/remotecontrol/remotecontrol.cpp175
-rw-r--r--examples/help/remotecontrol/remotecontrol.h79
-rw-r--r--examples/help/remotecontrol/remotecontrol.pro13
-rw-r--r--examples/help/remotecontrol/remotecontrol.qrc5
-rw-r--r--examples/help/remotecontrol/remotecontrol.ui228
-rw-r--r--examples/help/simpletextviewer/assistant.cpp110
-rw-r--r--examples/help/simpletextviewer/assistant.h63
-rw-r--r--examples/help/simpletextviewer/documentation/about.txt9
-rw-r--r--examples/help/simpletextviewer/documentation/browse.html34
-rw-r--r--examples/help/simpletextviewer/documentation/filedialog.html48
-rw-r--r--examples/help/simpletextviewer/documentation/findfile.html32
-rw-r--r--examples/help/simpletextviewer/documentation/images/browse.pngbin0 -> 21553 bytes-rw-r--r--examples/help/simpletextviewer/documentation/images/fadedfilemenu.pngbin0 -> 9589 bytes-rw-r--r--examples/help/simpletextviewer/documentation/images/filedialog.pngbin0 -> 12318 bytes-rw-r--r--examples/help/simpletextviewer/documentation/images/handbook.pngbin0 -> 1060 bytes-rw-r--r--examples/help/simpletextviewer/documentation/images/icon.pngbin0 -> 5513 bytes-rw-r--r--examples/help/simpletextviewer/documentation/images/mainwindow.pngbin0 -> 12769 bytes-rw-r--r--examples/help/simpletextviewer/documentation/images/open.pngbin0 -> 11697 bytes-rw-r--r--examples/help/simpletextviewer/documentation/images/wildcard.pngbin0 -> 11266 bytes-rw-r--r--examples/help/simpletextviewer/documentation/index.html41
-rw-r--r--examples/help/simpletextviewer/documentation/intro.html28
-rw-r--r--examples/help/simpletextviewer/documentation/openfile.html36
-rw-r--r--examples/help/simpletextviewer/documentation/simpletextviewer.qchbin0 -> 108544 bytes-rw-r--r--examples/help/simpletextviewer/documentation/simpletextviewer.qhcbin0 -> 18432 bytes-rw-r--r--examples/help/simpletextviewer/documentation/simpletextviewer.qhcp30
-rw-r--r--examples/help/simpletextviewer/documentation/simpletextviewer.qhp49
-rw-r--r--examples/help/simpletextviewer/documentation/wildcardmatching.html57
-rw-r--r--examples/help/simpletextviewer/findfiledialog.cpp222
-rw-r--r--examples/help/simpletextviewer/findfiledialog.h99
-rw-r--r--examples/help/simpletextviewer/main.cpp52
-rw-r--r--examples/help/simpletextviewer/mainwindow.cpp147
-rw-r--r--examples/help/simpletextviewer/mainwindow.h84
-rw-r--r--examples/help/simpletextviewer/simpletextviewer.pro16
-rw-r--r--examples/help/simpletextviewer/textedit.cpp75
-rw-r--r--examples/help/simpletextviewer/textedit.h61
-rw-r--r--examples/ipc/README35
-rw-r--r--examples/ipc/ipc.pro8
-rw-r--r--examples/ipc/localfortuneclient/client.cpp153
-rw-r--r--examples/ipc/localfortuneclient/client.h82
-rw-r--r--examples/ipc/localfortuneclient/localfortuneclient.pro12
-rw-r--r--examples/ipc/localfortuneclient/main.cpp52
-rw-r--r--examples/ipc/localfortuneserver/localfortuneserver.pro12
-rw-r--r--examples/ipc/localfortuneserver/main.cpp56
-rw-r--r--examples/ipc/localfortuneserver/server.cpp111
-rw-r--r--examples/ipc/localfortuneserver/server.h70
-rw-r--r--examples/ipc/sharedmemory/dialog.cpp189
-rw-r--r--examples/ipc/sharedmemory/dialog.h71
-rw-r--r--examples/ipc/sharedmemory/dialog.ui47
-rw-r--r--examples/ipc/sharedmemory/image.pngbin0 -> 10199 bytes-rw-r--r--examples/ipc/sharedmemory/main.cpp54
-rw-r--r--examples/ipc/sharedmemory/qt.pngbin0 -> 2383 bytes-rw-r--r--examples/ipc/sharedmemory/sharedmemory.pro13
-rw-r--r--examples/itemviews/README39
-rw-r--r--examples/itemviews/addressbook/adddialog.cpp83
-rw-r--r--examples/itemviews/addressbook/adddialog.h72
-rw-r--r--examples/itemviews/addressbook/addressbook.pro17
-rw-r--r--examples/itemviews/addressbook/addresswidget.cpp238
-rw-r--r--examples/itemviews/addressbook/addresswidget.h83
-rw-r--r--examples/itemviews/addressbook/main.cpp53
-rw-r--r--examples/itemviews/addressbook/mainwindow.cpp138
-rw-r--r--examples/itemviews/addressbook/mainwindow.h76
-rw-r--r--examples/itemviews/addressbook/newaddresstab.cpp78
-rw-r--r--examples/itemviews/addressbook/newaddresstab.h75
-rw-r--r--examples/itemviews/addressbook/tablemodel.cpp185
-rw-r--r--examples/itemviews/addressbook/tablemodel.h73
-rw-r--r--examples/itemviews/basicsortfiltermodel/basicsortfiltermodel.pro10
-rw-r--r--examples/itemviews/basicsortfiltermodel/main.cpp94
-rw-r--r--examples/itemviews/basicsortfiltermodel/window.cpp157
-rw-r--r--examples/itemviews/basicsortfiltermodel/window.h89
-rw-r--r--examples/itemviews/chart/chart.pro13
-rw-r--r--examples/itemviews/chart/chart.qrc5
-rw-r--r--examples/itemviews/chart/main.cpp54
-rw-r--r--examples/itemviews/chart/mainwindow.cpp173
-rw-r--r--examples/itemviews/chart/mainwindow.h73
-rw-r--r--examples/itemviews/chart/mydata.cht8
-rw-r--r--examples/itemviews/chart/pieview.cpp562
-rw-r--r--examples/itemviews/chart/pieview.h115
-rw-r--r--examples/itemviews/chart/qtdata.cht14
-rw-r--r--examples/itemviews/coloreditorfactory/coloreditorfactory.pro11
-rw-r--r--examples/itemviews/coloreditorfactory/colorlisteditor.cpp77
-rw-r--r--examples/itemviews/coloreditorfactory/colorlisteditor.h70
-rw-r--r--examples/itemviews/coloreditorfactory/main.cpp54
-rw-r--r--examples/itemviews/coloreditorfactory/window.cpp95
-rw-r--r--examples/itemviews/coloreditorfactory/window.h58
-rw-r--r--examples/itemviews/combowidgetmapper/combowidgetmapper.pro9
-rw-r--r--examples/itemviews/combowidgetmapper/main.cpp52
-rw-r--r--examples/itemviews/combowidgetmapper/window.cpp137
-rw-r--r--examples/itemviews/combowidgetmapper/window.h87
-rw-r--r--examples/itemviews/customsortfiltermodel/customsortfiltermodel.pro12
-rw-r--r--examples/itemviews/customsortfiltermodel/main.cpp96
-rw-r--r--examples/itemviews/customsortfiltermodel/mysortfilterproxymodel.cpp116
-rw-r--r--examples/itemviews/customsortfiltermodel/mysortfilterproxymodel.h74
-rw-r--r--examples/itemviews/customsortfiltermodel/window.cpp168
-rw-r--r--examples/itemviews/customsortfiltermodel/window.h91
-rw-r--r--examples/itemviews/dirview/dirview.pro7
-rw-r--r--examples/itemviews/dirview/main.cpp62
-rw-r--r--examples/itemviews/editabletreemodel/default.txt40
-rw-r--r--examples/itemviews/editabletreemodel/editabletreemodel.pro16
-rw-r--r--examples/itemviews/editabletreemodel/editabletreemodel.qrc5
-rw-r--r--examples/itemviews/editabletreemodel/main.cpp54
-rw-r--r--examples/itemviews/editabletreemodel/mainwindow.cpp181
-rw-r--r--examples/itemviews/editabletreemodel/mainwindow.h72
-rw-r--r--examples/itemviews/editabletreemodel/mainwindow.ui128
-rw-r--r--examples/itemviews/editabletreemodel/treeitem.cpp180
-rw-r--r--examples/itemviews/editabletreemodel/treeitem.h75
-rw-r--r--examples/itemviews/editabletreemodel/treemodel.cpp289
-rw-r--r--examples/itemviews/editabletreemodel/treemodel.h98
-rw-r--r--examples/itemviews/fetchmore/fetchmore.pro12
-rw-r--r--examples/itemviews/fetchmore/filelistmodel.cpp116
-rw-r--r--examples/itemviews/fetchmore/filelistmodel.h76
-rw-r--r--examples/itemviews/fetchmore/main.cpp51
-rw-r--r--examples/itemviews/fetchmore/window.cpp82
-rw-r--r--examples/itemviews/fetchmore/window.h65
-rw-r--r--examples/itemviews/itemviews.pro22
-rw-r--r--examples/itemviews/pixelator/imagemodel.cpp92
-rw-r--r--examples/itemviews/pixelator/imagemodel.h69
-rw-r--r--examples/itemviews/pixelator/images.qrc5
-rw-r--r--examples/itemviews/pixelator/images/qt.pngbin0 -> 656 bytes-rw-r--r--examples/itemviews/pixelator/main.cpp55
-rw-r--r--examples/itemviews/pixelator/mainwindow.cpp245
-rw-r--r--examples/itemviews/pixelator/mainwindow.h75
-rw-r--r--examples/itemviews/pixelator/pixelator.pro14
-rw-r--r--examples/itemviews/pixelator/pixeldelegate.cpp108
-rw-r--r--examples/itemviews/pixelator/pixeldelegate.h80
-rw-r--r--examples/itemviews/puzzle/example.jpgbin0 -> 42654 bytes-rw-r--r--examples/itemviews/puzzle/main.cpp55
-rw-r--r--examples/itemviews/puzzle/mainwindow.cpp150
-rw-r--r--examples/itemviews/puzzle/mainwindow.h78
-rw-r--r--examples/itemviews/puzzle/piecesmodel.cpp204
-rw-r--r--examples/itemviews/puzzle/piecesmodel.h81
-rw-r--r--examples/itemviews/puzzle/puzzle.pro14
-rw-r--r--examples/itemviews/puzzle/puzzle.qrc5
-rw-r--r--examples/itemviews/puzzle/puzzlewidget.cpp205
-rw-r--r--examples/itemviews/puzzle/puzzlewidget.h86
-rw-r--r--examples/itemviews/simpledommodel/domitem.cpp102
-rw-r--r--examples/itemviews/simpledommodel/domitem.h67
-rw-r--r--examples/itemviews/simpledommodel/dommodel.cpp190
-rw-r--r--examples/itemviews/simpledommodel/dommodel.h77
-rw-r--r--examples/itemviews/simpledommodel/main.cpp53
-rw-r--r--examples/itemviews/simpledommodel/mainwindow.cpp85
-rw-r--r--examples/itemviews/simpledommodel/mainwindow.h71
-rw-r--r--examples/itemviews/simpledommodel/simpledommodel.pro15
-rw-r--r--examples/itemviews/simpletreemodel/default.txt40
-rw-r--r--examples/itemviews/simpletreemodel/main.cpp62
-rw-r--r--examples/itemviews/simpletreemodel/simpletreemodel.pro13
-rw-r--r--examples/itemviews/simpletreemodel/simpletreemodel.qrc5
-rw-r--r--examples/itemviews/simpletreemodel/treeitem.cpp117
-rw-r--r--examples/itemviews/simpletreemodel/treeitem.h71
-rw-r--r--examples/itemviews/simpletreemodel/treemodel.cpp219
-rw-r--r--examples/itemviews/simpletreemodel/treemodel.h77
-rw-r--r--examples/itemviews/simplewidgetmapper/main.cpp52
-rw-r--r--examples/itemviews/simplewidgetmapper/simplewidgetmapper.pro9
-rw-r--r--examples/itemviews/simplewidgetmapper/window.cpp134
-rw-r--r--examples/itemviews/simplewidgetmapper/window.h85
-rw-r--r--examples/itemviews/spinboxdelegate/delegate.cpp103
-rw-r--r--examples/itemviews/spinboxdelegate/delegate.h71
-rw-r--r--examples/itemviews/spinboxdelegate/main.cpp87
-rw-r--r--examples/itemviews/spinboxdelegate/spinboxdelegate.pro9
-rw-r--r--examples/itemviews/stardelegate/main.cpp108
-rw-r--r--examples/itemviews/stardelegate/stardelegate.cpp130
-rw-r--r--examples/itemviews/stardelegate/stardelegate.h70
-rw-r--r--examples/itemviews/stardelegate/stardelegate.pro14
-rw-r--r--examples/itemviews/stardelegate/stareditor.cpp99
-rw-r--r--examples/itemviews/stardelegate/stareditor.h78
-rw-r--r--examples/itemviews/stardelegate/starrating.cpp103
-rw-r--r--examples/itemviews/stardelegate/starrating.h77
-rw-r--r--examples/layouts/README41
-rw-r--r--examples/layouts/basiclayouts/basiclayouts.pro9
-rw-r--r--examples/layouts/basiclayouts/dialog.cpp150
-rw-r--r--examples/layouts/basiclayouts/dialog.h91
-rw-r--r--examples/layouts/basiclayouts/main.cpp51
-rw-r--r--examples/layouts/borderlayout/borderlayout.cpp214
-rw-r--r--examples/layouts/borderlayout/borderlayout.h89
-rw-r--r--examples/layouts/borderlayout/borderlayout.pro11
-rw-r--r--examples/layouts/borderlayout/main.cpp52
-rw-r--r--examples/layouts/borderlayout/window.cpp69
-rw-r--r--examples/layouts/borderlayout/window.h62
-rw-r--r--examples/layouts/dynamiclayouts/dialog.cpp170
-rw-r--r--examples/layouts/dynamiclayouts/dialog.h91
-rw-r--r--examples/layouts/dynamiclayouts/dynamiclayouts.pro9
-rw-r--r--examples/layouts/dynamiclayouts/main.cpp51
-rw-r--r--examples/layouts/flowlayout/flowlayout.cpp154
-rw-r--r--examples/layouts/flowlayout/flowlayout.h73
-rw-r--r--examples/layouts/flowlayout/flowlayout.pro11
-rw-r--r--examples/layouts/flowlayout/main.cpp52
-rw-r--r--examples/layouts/flowlayout/window.cpp59
-rw-r--r--examples/layouts/flowlayout/window.h59
-rw-r--r--examples/layouts/layouts.pro10
-rw-r--r--examples/linguist/README37
-rw-r--r--examples/linguist/arrowpad/arrowpad.cpp65
-rw-r--r--examples/linguist/arrowpad/arrowpad.h69
-rw-r--r--examples/linguist/arrowpad/arrowpad.pro16
-rw-r--r--examples/linguist/arrowpad/main.cpp64
-rw-r--r--examples/linguist/arrowpad/mainwindow.cpp62
-rw-r--r--examples/linguist/arrowpad/mainwindow.h69
-rw-r--r--examples/linguist/hellotr/hellotr.pro11
-rw-r--r--examples/linguist/hellotr/main.cpp71
-rw-r--r--examples/linguist/linguist.pro9
-rw-r--r--examples/linguist/trollprint/main.cpp61
-rw-r--r--examples/linguist/trollprint/mainwindow.cpp96
-rw-r--r--examples/linguist/trollprint/mainwindow.h75
-rw-r--r--examples/linguist/trollprint/printpanel.cpp86
-rw-r--r--examples/linguist/trollprint/printpanel.h70
-rw-r--r--examples/linguist/trollprint/trollprint.pro12
-rw-r--r--examples/linguist/trollprint/trollprint_pt.ts65
-rw-r--r--examples/mainwindows/README40
-rw-r--r--examples/mainwindows/application/application.pro12
-rw-r--r--examples/mainwindows/application/application.qrc10
-rw-r--r--examples/mainwindows/application/images/copy.pngbin0 -> 1338 bytes-rw-r--r--examples/mainwindows/application/images/cut.pngbin0 -> 1323 bytes-rw-r--r--examples/mainwindows/application/images/new.pngbin0 -> 852 bytes-rw-r--r--examples/mainwindows/application/images/open.pngbin0 -> 2073 bytes-rw-r--r--examples/mainwindows/application/images/paste.pngbin0 -> 1645 bytes-rw-r--r--examples/mainwindows/application/images/save.pngbin0 -> 1187 bytes-rw-r--r--examples/mainwindows/application/main.cpp56
-rw-r--r--examples/mainwindows/application/mainwindow.cpp388
-rw-r--r--examples/mainwindows/application/mainwindow.h106
-rw-r--r--examples/mainwindows/dockwidgets/dockwidgets.pro10
-rw-r--r--examples/mainwindows/dockwidgets/dockwidgets.qrc8
-rw-r--r--examples/mainwindows/dockwidgets/images/new.pngbin0 -> 977 bytes-rw-r--r--examples/mainwindows/dockwidgets/images/print.pngbin0 -> 1732 bytes-rw-r--r--examples/mainwindows/dockwidgets/images/save.pngbin0 -> 1894 bytes-rw-r--r--examples/mainwindows/dockwidgets/images/undo.pngbin0 -> 1768 bytes-rw-r--r--examples/mainwindows/dockwidgets/main.cpp53
-rw-r--r--examples/mainwindows/dockwidgets/mainwindow.cpp343
-rw-r--r--examples/mainwindows/dockwidgets/mainwindow.h98
-rw-r--r--examples/mainwindows/mainwindows.pro13
-rw-r--r--examples/mainwindows/mdi/images/copy.pngbin0 -> 1338 bytes-rw-r--r--examples/mainwindows/mdi/images/cut.pngbin0 -> 1323 bytes-rw-r--r--examples/mainwindows/mdi/images/new.pngbin0 -> 852 bytes-rw-r--r--examples/mainwindows/mdi/images/open.pngbin0 -> 2073 bytes-rw-r--r--examples/mainwindows/mdi/images/paste.pngbin0 -> 1645 bytes-rw-r--r--examples/mainwindows/mdi/images/save.pngbin0 -> 1187 bytes-rw-r--r--examples/mainwindows/mdi/main.cpp54
-rw-r--r--examples/mainwindows/mdi/mainwindow.cpp399
-rw-r--r--examples/mainwindows/mdi/mainwindow.h119
-rw-r--r--examples/mainwindows/mdi/mdi.pro12
-rw-r--r--examples/mainwindows/mdi/mdi.qrc10
-rw-r--r--examples/mainwindows/mdi/mdichild.cpp176
-rw-r--r--examples/mainwindows/mdi/mdichild.h77
-rw-r--r--examples/mainwindows/menus/main.cpp52
-rw-r--r--examples/mainwindows/menus/mainwindow.cpp371
-rw-r--r--examples/mainwindows/menus/mainwindow.h125
-rw-r--r--examples/mainwindows/menus/menus.pro9
-rw-r--r--examples/mainwindows/recentfiles/main.cpp52
-rw-r--r--examples/mainwindows/recentfiles/mainwindow.cpp256
-rw-r--r--examples/mainwindows/recentfiles/mainwindow.h97
-rw-r--r--examples/mainwindows/recentfiles/recentfiles.pro9
-rw-r--r--examples/mainwindows/sdi/images/copy.pngbin0 -> 1338 bytes-rw-r--r--examples/mainwindows/sdi/images/cut.pngbin0 -> 1323 bytes-rw-r--r--examples/mainwindows/sdi/images/new.pngbin0 -> 852 bytes-rw-r--r--examples/mainwindows/sdi/images/open.pngbin0 -> 2073 bytes-rw-r--r--examples/mainwindows/sdi/images/paste.pngbin0 -> 1645 bytes-rw-r--r--examples/mainwindows/sdi/images/save.pngbin0 -> 1187 bytes-rw-r--r--examples/mainwindows/sdi/main.cpp53
-rw-r--r--examples/mainwindows/sdi/mainwindow.cpp375
-rw-r--r--examples/mainwindows/sdi/mainwindow.h109
-rw-r--r--examples/mainwindows/sdi/sdi.pro10
-rw-r--r--examples/mainwindows/sdi/sdi.qrc10
-rw-r--r--examples/network/README40
-rw-r--r--examples/network/blockingfortuneclient/blockingclient.cpp154
-rw-r--r--examples/network/blockingfortuneclient/blockingclient.h85
-rw-r--r--examples/network/blockingfortuneclient/blockingfortuneclient.pro12
-rw-r--r--examples/network/blockingfortuneclient/fortunethread.cpp138
-rw-r--r--examples/network/blockingfortuneclient/fortunethread.h74
-rw-r--r--examples/network/blockingfortuneclient/main.cpp52
-rw-r--r--examples/network/broadcastreceiver/broadcastreceiver.pro10
-rw-r--r--examples/network/broadcastreceiver/main.cpp52
-rw-r--r--examples/network/broadcastreceiver/receiver.cpp88
-rw-r--r--examples/network/broadcastreceiver/receiver.h69
-rw-r--r--examples/network/broadcastsender/broadcastsender.pro10
-rw-r--r--examples/network/broadcastsender/main.cpp52
-rw-r--r--examples/network/broadcastsender/sender.cpp92
-rw-r--r--examples/network/broadcastsender/sender.h76
-rw-r--r--examples/network/download/download.pro19
-rw-r--r--examples/network/download/main.cpp176
-rw-r--r--examples/network/downloadmanager/downloadmanager.cpp173
-rw-r--r--examples/network/downloadmanager/downloadmanager.h85
-rw-r--r--examples/network/downloadmanager/downloadmanager.pro20
-rw-r--r--examples/network/downloadmanager/main.cpp68
-rw-r--r--examples/network/downloadmanager/textprogressbar.cpp99
-rw-r--r--examples/network/downloadmanager/textprogressbar.h64
-rw-r--r--examples/network/fortuneclient/client.cpp191
-rw-r--r--examples/network/fortuneclient/client.h86
-rw-r--r--examples/network/fortuneclient/fortuneclient.pro10
-rw-r--r--examples/network/fortuneclient/main.cpp52
-rw-r--r--examples/network/fortuneserver/fortuneserver.pro10
-rw-r--r--examples/network/fortuneserver/main.cpp56
-rw-r--r--examples/network/fortuneserver/server.cpp123
-rw-r--r--examples/network/fortuneserver/server.h72
-rw-r--r--examples/network/ftp/ftp.pro11
-rw-r--r--examples/network/ftp/ftp.qrc7
-rw-r--r--examples/network/ftp/ftpwindow.cpp349
-rw-r--r--examples/network/ftp/ftpwindow.h104
-rw-r--r--examples/network/ftp/images/cdtoparent.pngbin0 -> 139 bytes-rw-r--r--examples/network/ftp/images/dir.pngbin0 -> 154 bytes-rw-r--r--examples/network/ftp/images/file.pngbin0 -> 129 bytes-rw-r--r--examples/network/ftp/main.cpp54
-rw-r--r--examples/network/http/authenticationdialog.ui129
-rw-r--r--examples/network/http/http.pro11
-rw-r--r--examples/network/http/httpwindow.cpp262
-rw-r--r--examples/network/http/httpwindow.h94
-rw-r--r--examples/network/http/main.cpp52
-rw-r--r--examples/network/loopback/dialog.cpp187
-rw-r--r--examples/network/loopback/dialog.h90
-rw-r--r--examples/network/loopback/loopback.pro10
-rw-r--r--examples/network/loopback/main.cpp52
-rw-r--r--examples/network/network-chat/chatdialog.cpp141
-rw-r--r--examples/network/network-chat/chatdialog.h70
-rw-r--r--examples/network/network-chat/chatdialog.ui79
-rw-r--r--examples/network/network-chat/client.cpp140
-rw-r--r--examples/network/network-chat/client.h83
-rw-r--r--examples/network/network-chat/connection.cpp276
-rw-r--r--examples/network/network-chat/connection.h108
-rw-r--r--examples/network/network-chat/main.cpp52
-rw-r--r--examples/network/network-chat/network-chat.pro19
-rw-r--r--examples/network/network-chat/peermanager.cpp170
-rw-r--r--examples/network/network-chat/peermanager.h85
-rw-r--r--examples/network/network-chat/server.cpp58
-rw-r--r--examples/network/network-chat/server.h63
-rw-r--r--examples/network/network.pro21
-rw-r--r--examples/network/securesocketclient/certificateinfo.cpp100
-rw-r--r--examples/network/securesocketclient/certificateinfo.h69
-rw-r--r--examples/network/securesocketclient/certificateinfo.ui85
-rw-r--r--examples/network/securesocketclient/encrypted.pngbin0 -> 750 bytes-rw-r--r--examples/network/securesocketclient/main.cpp63
-rw-r--r--examples/network/securesocketclient/securesocketclient.pro16
-rw-r--r--examples/network/securesocketclient/securesocketclient.qrc5
-rw-r--r--examples/network/securesocketclient/sslclient.cpp218
-rw-r--r--examples/network/securesocketclient/sslclient.h81
-rw-r--r--examples/network/securesocketclient/sslclient.ui190
-rw-r--r--examples/network/securesocketclient/sslerrors.ui110
-rw-r--r--examples/network/threadedfortuneserver/dialog.cpp82
-rw-r--r--examples/network/threadedfortuneserver/dialog.h66
-rw-r--r--examples/network/threadedfortuneserver/fortuneserver.cpp69
-rw-r--r--examples/network/threadedfortuneserver/fortuneserver.h64
-rw-r--r--examples/network/threadedfortuneserver/fortunethread.cpp77
-rw-r--r--examples/network/threadedfortuneserver/fortunethread.h67
-rw-r--r--examples/network/threadedfortuneserver/main.cpp56
-rw-r--r--examples/network/threadedfortuneserver/threadedfortuneserver.pro14
-rw-r--r--examples/network/torrent/addtorrentdialog.cpp170
-rw-r--r--examples/network/torrent/addtorrentdialog.h74
-rw-r--r--examples/network/torrent/bencodeparser.cpp235
-rw-r--r--examples/network/torrent/bencodeparser.h81
-rw-r--r--examples/network/torrent/connectionmanager.cpp89
-rw-r--r--examples/network/torrent/connectionmanager.h66
-rw-r--r--examples/network/torrent/filemanager.cpp447
-rw-r--r--examples/network/torrent/filemanager.h144
-rw-r--r--examples/network/torrent/forms/addtorrentform.ui266
-rw-r--r--examples/network/torrent/icons.qrc12
-rw-r--r--examples/network/torrent/icons/1downarrow.pngbin0 -> 895 bytes-rw-r--r--examples/network/torrent/icons/1uparrow.pngbin0 -> 822 bytes-rw-r--r--examples/network/torrent/icons/bottom.pngbin0 -> 1632 bytes-rw-r--r--examples/network/torrent/icons/edit_add.pngbin0 -> 394 bytes-rw-r--r--examples/network/torrent/icons/edit_remove.pngbin0 -> 368 bytes-rw-r--r--examples/network/torrent/icons/exit.pngbin0 -> 1426 bytes-rw-r--r--examples/network/torrent/icons/peertopeer.pngbin0 -> 10072 bytes-rw-r--r--examples/network/torrent/icons/player_pause.pngbin0 -> 690 bytes-rw-r--r--examples/network/torrent/icons/player_play.pngbin0 -> 900 bytes-rw-r--r--examples/network/torrent/icons/player_stop.pngbin0 -> 627 bytes-rw-r--r--examples/network/torrent/icons/stop.pngbin0 -> 1252 bytes-rw-r--r--examples/network/torrent/main.cpp57
-rw-r--r--examples/network/torrent/mainwindow.cpp713
-rw-r--r--examples/network/torrent/mainwindow.h132
-rw-r--r--examples/network/torrent/metainfo.cpp218
-rw-r--r--examples/network/torrent/metainfo.h122
-rw-r--r--examples/network/torrent/peerwireclient.cpp665
-rw-r--r--examples/network/torrent/peerwireclient.h210
-rw-r--r--examples/network/torrent/ratecontroller.cpp156
-rw-r--r--examples/network/torrent/ratecontroller.h80
-rw-r--r--examples/network/torrent/torrent.pro37
-rw-r--r--examples/network/torrent/torrentclient.cpp1529
-rw-r--r--examples/network/torrent/torrentclient.h205
-rw-r--r--examples/network/torrent/torrentserver.cpp104
-rw-r--r--examples/network/torrent/torrentserver.h72
-rw-r--r--examples/network/torrent/trackerclient.cpp237
-rw-r--r--examples/network/torrent/trackerclient.h104
-rw-r--r--examples/opengl/2dpainting/2dpainting.pro17
-rw-r--r--examples/opengl/2dpainting/glwidget.cpp73
-rw-r--r--examples/opengl/2dpainting/glwidget.h73
-rw-r--r--examples/opengl/2dpainting/helper.cpp91
-rw-r--r--examples/opengl/2dpainting/helper.h72
-rw-r--r--examples/opengl/2dpainting/main.cpp51
-rw-r--r--examples/opengl/2dpainting/widget.cpp73
-rw-r--r--examples/opengl/2dpainting/widget.h72
-rw-r--r--examples/opengl/2dpainting/window.cpp72
-rw-r--r--examples/opengl/2dpainting/window.h67
-rw-r--r--examples/opengl/README41
-rw-r--r--examples/opengl/framebufferobject/bubbles.svg215
-rw-r--r--examples/opengl/framebufferobject/designer.pngbin0 -> 2810 bytes-rw-r--r--examples/opengl/framebufferobject/framebufferobject.pro22
-rw-r--r--examples/opengl/framebufferobject/framebufferobject.qrc6
-rw-r--r--examples/opengl/framebufferobject/glwidget.cpp309
-rw-r--r--examples/opengl/framebufferobject/glwidget.h82
-rw-r--r--examples/opengl/framebufferobject/main.cpp62
-rw-r--r--examples/opengl/framebufferobject2/cubelogo.pngbin0 -> 5920 bytes-rw-r--r--examples/opengl/framebufferobject2/framebufferobject2.pro11
-rw-r--r--examples/opengl/framebufferobject2/framebufferobject2.qrc5
-rw-r--r--examples/opengl/framebufferobject2/glwidget.cpp249
-rw-r--r--examples/opengl/framebufferobject2/glwidget.h66
-rw-r--r--examples/opengl/framebufferobject2/main.cpp62
-rw-r--r--examples/opengl/grabber/glwidget.cpp284
-rw-r--r--examples/opengl/grabber/glwidget.h98
-rw-r--r--examples/opengl/grabber/grabber.pro12
-rw-r--r--examples/opengl/grabber/main.cpp52
-rw-r--r--examples/opengl/grabber/mainwindow.cpp207
-rw-r--r--examples/opengl/grabber/mainwindow.h95
-rw-r--r--examples/opengl/hellogl/glwidget.cpp266
-rw-r--r--examples/opengl/hellogl/glwidget.h99
-rw-r--r--examples/opengl/hellogl/hellogl.pro12
-rw-r--r--examples/opengl/hellogl/main.cpp52
-rw-r--r--examples/opengl/hellogl/window.cpp90
-rw-r--r--examples/opengl/hellogl/window.h70
-rw-r--r--examples/opengl/hellogl_es/bubble.cpp140
-rw-r--r--examples/opengl/hellogl_es/bubble.h77
-rw-r--r--examples/opengl/hellogl_es/cl_helper.h133
-rw-r--r--examples/opengl/hellogl_es/glwidget.cpp457
-rw-r--r--examples/opengl/hellogl_es/glwidget.h87
-rw-r--r--examples/opengl/hellogl_es/hellogl_es.pro34
-rw-r--r--examples/opengl/hellogl_es/main.cpp53
-rw-r--r--examples/opengl/hellogl_es/mainwindow.cpp108
-rw-r--r--examples/opengl/hellogl_es/mainwindow.h60
-rw-r--r--examples/opengl/hellogl_es/qt.pngbin0 -> 5174 bytes-rw-r--r--examples/opengl/hellogl_es/texture.qrc5
-rw-r--r--examples/opengl/hellogl_es2/bubble.cpp140
-rw-r--r--examples/opengl/hellogl_es2/bubble.h77
-rw-r--r--examples/opengl/hellogl_es2/glwidget.cpp642
-rw-r--r--examples/opengl/hellogl_es2/glwidget.h94
-rw-r--r--examples/opengl/hellogl_es2/hellogl_es2.pro27
-rw-r--r--examples/opengl/hellogl_es2/main.cpp53
-rw-r--r--examples/opengl/hellogl_es2/mainwindow.cpp108
-rw-r--r--examples/opengl/hellogl_es2/mainwindow.h60
-rw-r--r--examples/opengl/hellogl_es2/qt.pngbin0 -> 5174 bytes-rw-r--r--examples/opengl/hellogl_es2/texture.qrc5
-rw-r--r--examples/opengl/opengl.pro29
-rw-r--r--examples/opengl/overpainting/bubble.cpp113
-rw-r--r--examples/opengl/overpainting/bubble.h76
-rw-r--r--examples/opengl/overpainting/glwidget.cpp360
-rw-r--r--examples/opengl/overpainting/glwidget.h114
-rw-r--r--examples/opengl/overpainting/main.cpp51
-rw-r--r--examples/opengl/overpainting/overpainting.pro13
-rw-r--r--examples/opengl/pbuffers/cubelogo.pngbin0 -> 5920 bytes-rw-r--r--examples/opengl/pbuffers/glwidget.cpp260
-rw-r--r--examples/opengl/pbuffers/glwidget.h70
-rw-r--r--examples/opengl/pbuffers/main.cpp62
-rw-r--r--examples/opengl/pbuffers/pbuffers.pro11
-rw-r--r--examples/opengl/pbuffers/pbuffers.qrc5
-rw-r--r--examples/opengl/pbuffers2/bubbles.svg215
-rw-r--r--examples/opengl/pbuffers2/designer.pngbin0 -> 2810 bytes-rw-r--r--examples/opengl/pbuffers2/glwidget.cpp326
-rw-r--r--examples/opengl/pbuffers2/glwidget.h85
-rw-r--r--examples/opengl/pbuffers2/main.cpp62
-rw-r--r--examples/opengl/pbuffers2/pbuffers2.pro21
-rw-r--r--examples/opengl/pbuffers2/pbuffers2.qrc6
-rw-r--r--examples/opengl/samplebuffers/glwidget.cpp165
-rw-r--r--examples/opengl/samplebuffers/glwidget.h62
-rw-r--r--examples/opengl/samplebuffers/main.cpp72
-rw-r--r--examples/opengl/samplebuffers/samplebuffers.pro10
-rw-r--r--examples/opengl/textures/glwidget.cpp182
-rw-r--r--examples/opengl/textures/glwidget.h84
-rw-r--r--examples/opengl/textures/images/side1.pngbin0 -> 935 bytes-rw-r--r--examples/opengl/textures/images/side2.pngbin0 -> 1622 bytes-rw-r--r--examples/opengl/textures/images/side3.pngbin0 -> 2117 bytes-rw-r--r--examples/opengl/textures/images/side4.pngbin0 -> 1222 bytes-rw-r--r--examples/opengl/textures/images/side5.pngbin0 -> 1806 bytes-rw-r--r--examples/opengl/textures/images/side6.pngbin0 -> 2215 bytes-rw-r--r--examples/opengl/textures/main.cpp54
-rw-r--r--examples/opengl/textures/textures.pro13
-rw-r--r--examples/opengl/textures/textures.qrc10
-rw-r--r--examples/opengl/textures/window.cpp89
-rw-r--r--examples/opengl/textures/window.h67
-rw-r--r--examples/painting/README42
-rw-r--r--examples/painting/basicdrawing/basicdrawing.pro12
-rw-r--r--examples/painting/basicdrawing/basicdrawing.qrc6
-rw-r--r--examples/painting/basicdrawing/images/brick.pngbin0 -> 767 bytes-rw-r--r--examples/painting/basicdrawing/images/qt-logo.pngbin0 -> 3696 bytes-rw-r--r--examples/painting/basicdrawing/main.cpp54
-rw-r--r--examples/painting/basicdrawing/renderarea.cpp209
-rw-r--r--examples/painting/basicdrawing/renderarea.h84
-rw-r--r--examples/painting/basicdrawing/window.cpp262
-rw-r--r--examples/painting/basicdrawing/window.h88
-rw-r--r--examples/painting/concentriccircles/circlewidget.cpp125
-rw-r--r--examples/painting/concentriccircles/circlewidget.h74
-rw-r--r--examples/painting/concentriccircles/concentriccircles.pro11
-rw-r--r--examples/painting/concentriccircles/main.cpp52
-rw-r--r--examples/painting/concentriccircles/window.cpp94
-rw-r--r--examples/painting/concentriccircles/window.h71
-rw-r--r--examples/painting/fontsampler/fontsampler.pro10
-rw-r--r--examples/painting/fontsampler/main.cpp52
-rw-r--r--examples/painting/fontsampler/mainwindow.cpp373
-rw-r--r--examples/painting/fontsampler/mainwindow.h83
-rw-r--r--examples/painting/fontsampler/mainwindowbase.ui140
-rw-r--r--examples/painting/imagecomposition/imagecomposer.cpp209
-rw-r--r--examples/painting/imagecomposition/imagecomposer.h88
-rw-r--r--examples/painting/imagecomposition/imagecomposition.pro11
-rw-r--r--examples/painting/imagecomposition/imagecomposition.qrc6
-rw-r--r--examples/painting/imagecomposition/images/background.pngbin0 -> 18579 bytes-rw-r--r--examples/painting/imagecomposition/images/blackrectangle.pngbin0 -> 90 bytes-rw-r--r--examples/painting/imagecomposition/images/butterfly.pngbin0 -> 36868 bytes-rw-r--r--examples/painting/imagecomposition/images/checker.pngbin0 -> 10384 bytes-rw-r--r--examples/painting/imagecomposition/main.cpp56
-rw-r--r--examples/painting/painterpaths/main.cpp52
-rw-r--r--examples/painting/painterpaths/painterpaths.pro12
-rw-r--r--examples/painting/painterpaths/renderarea.cpp131
-rw-r--r--examples/painting/painterpaths/renderarea.h81
-rw-r--r--examples/painting/painterpaths/window.cpp289
-rw-r--r--examples/painting/painterpaths/window.h93
-rw-r--r--examples/painting/painting.pro16
-rw-r--r--examples/painting/svgviewer/files/bubbles.svg215
-rw-r--r--examples/painting/svgviewer/files/cubic.svg77
-rw-r--r--examples/painting/svgviewer/files/spheres.svg72
-rw-r--r--examples/painting/svgviewer/main.cpp63
-rw-r--r--examples/painting/svgviewer/mainwindow.cpp164
-rw-r--r--examples/painting/svgviewer/mainwindow.h81
-rw-r--r--examples/painting/svgviewer/svgview.cpp188
-rw-r--r--examples/painting/svgviewer/svgview.h84
-rw-r--r--examples/painting/svgviewer/svgviewer.pro23
-rw-r--r--examples/painting/svgviewer/svgviewer.qrc6
-rw-r--r--examples/painting/transformations/main.cpp52
-rw-r--r--examples/painting/transformations/renderarea.cpp173
-rw-r--r--examples/painting/transformations/renderarea.h91
-rw-r--r--examples/painting/transformations/transformations.pro11
-rw-r--r--examples/painting/transformations/window.cpp181
-rw-r--r--examples/painting/transformations/window.h81
-rw-r--r--examples/phonon/README39
-rw-r--r--examples/phonon/capabilities/capabilities.pro16
-rw-r--r--examples/phonon/capabilities/main.cpp58
-rw-r--r--examples/phonon/capabilities/window.cpp166
-rw-r--r--examples/phonon/capabilities/window.h97
-rw-r--r--examples/phonon/musicplayer/main.cpp57
-rw-r--r--examples/phonon/musicplayer/mainwindow.cpp352
-rw-r--r--examples/phonon/musicplayer/mainwindow.h112
-rw-r--r--examples/phonon/musicplayer/musicplayer.pro16
-rw-r--r--examples/phonon/phonon.pro10
-rw-r--r--examples/qmake/precompile/main.cpp61
-rw-r--r--examples/qmake/precompile/mydialog.cpp48
-rw-r--r--examples/qmake/precompile/mydialog.h55
-rw-r--r--examples/qmake/precompile/mydialog.ui47
-rw-r--r--examples/qmake/precompile/myobject.cpp58
-rw-r--r--examples/qmake/precompile/myobject.h56
-rw-r--r--examples/qmake/precompile/precompile.pro22
-rw-r--r--examples/qmake/precompile/stable.h53
-rw-r--r--examples/qmake/precompile/util.cpp50
-rw-r--r--examples/qmake/tutorial/hello.cpp50
-rw-r--r--examples/qmake/tutorial/hello.h48
-rw-r--r--examples/qmake/tutorial/hellounix.cpp43
-rw-r--r--examples/qmake/tutorial/hellowin.cpp43
-rw-r--r--examples/qmake/tutorial/main.cpp54
-rw-r--r--examples/qtconcurrent/README38
-rw-r--r--examples/qtconcurrent/imagescaling/imagescaling.cpp147
-rw-r--r--examples/qtconcurrent/imagescaling/imagescaling.h82
-rw-r--r--examples/qtconcurrent/imagescaling/imagescaling.pro13
-rw-r--r--examples/qtconcurrent/imagescaling/main.cpp64
-rw-r--r--examples/qtconcurrent/map/main.cpp82
-rw-r--r--examples/qtconcurrent/map/map.pro14
-rw-r--r--examples/qtconcurrent/progressdialog/main.cpp100
-rw-r--r--examples/qtconcurrent/progressdialog/progressdialog.pro14
-rw-r--r--examples/qtconcurrent/qtconcurrent.pro12
-rw-r--r--examples/qtconcurrent/runfunction/main.cpp73
-rw-r--r--examples/qtconcurrent/runfunction/runfunction.pro14
-rw-r--r--examples/qtconcurrent/wordcount/main.cpp167
-rw-r--r--examples/qtconcurrent/wordcount/wordcount.pro14
-rw-r--r--examples/qtestlib/README38
-rw-r--r--examples/qtestlib/qtestlib.pro8
-rw-r--r--examples/qtestlib/tutorial1/testqstring.cpp65
-rw-r--r--examples/qtestlib/tutorial1/tutorial1.pro8
-rw-r--r--examples/qtestlib/tutorial2/testqstring.cpp81
-rw-r--r--examples/qtestlib/tutorial2/tutorial2.pro8
-rw-r--r--examples/qtestlib/tutorial3/testgui.cpp71
-rw-r--r--examples/qtestlib/tutorial3/tutorial3.pro8
-rw-r--r--examples/qtestlib/tutorial4/testgui.cpp91
-rw-r--r--examples/qtestlib/tutorial4/tutorial4.pro8
-rw-r--r--examples/qtestlib/tutorial5/benchmarking.cpp135
-rw-r--r--examples/qtestlib/tutorial5/tutorial5.pro8
-rw-r--r--examples/qws/README38
-rw-r--r--examples/qws/ahigl/ahigl.pro16
-rw-r--r--examples/qws/ahigl/qscreenahigl_qws.cpp963
-rw-r--r--examples/qws/ahigl/qscreenahigl_qws.h91
-rw-r--r--examples/qws/ahigl/qscreenahiglplugin.cpp97
-rw-r--r--examples/qws/ahigl/qwindowsurface_ahigl.cpp349
-rw-r--r--examples/qws/ahigl/qwindowsurface_ahigl_p.h92
-rw-r--r--examples/qws/dbscreen/dbscreen.cpp99
-rw-r--r--examples/qws/dbscreen/dbscreen.h70
-rw-r--r--examples/qws/dbscreen/dbscreen.pro11
-rw-r--r--examples/qws/dbscreen/dbscreendriverplugin.cpp80
-rw-r--r--examples/qws/framebuffer/framebuffer.pro11
-rw-r--r--examples/qws/framebuffer/main.c586
-rw-r--r--examples/qws/mousecalibration/calibration.cpp145
-rw-r--r--examples/qws/mousecalibration/calibration.h68
-rw-r--r--examples/qws/mousecalibration/main.cpp93
-rw-r--r--examples/qws/mousecalibration/mousecalibration.pro11
-rw-r--r--examples/qws/mousecalibration/scribblewidget.cpp93
-rw-r--r--examples/qws/mousecalibration/scribblewidget.h71
-rw-r--r--examples/qws/qws.pro7
-rw-r--r--examples/qws/simpledecoration/analogclock.cpp111
-rw-r--r--examples/qws/simpledecoration/analogclock.h58
-rw-r--r--examples/qws/simpledecoration/main.cpp60
-rw-r--r--examples/qws/simpledecoration/mydecoration.cpp375
-rw-r--r--examples/qws/simpledecoration/mydecoration.h73
-rw-r--r--examples/qws/simpledecoration/simpledecoration.pro12
-rw-r--r--examples/qws/svgalib/README5
-rw-r--r--examples/qws/svgalib/svgalib.pro19
-rw-r--r--examples/qws/svgalib/svgalibpaintdevice.cpp67
-rw-r--r--examples/qws/svgalib/svgalibpaintdevice.h66
-rw-r--r--examples/qws/svgalib/svgalibpaintengine.cpp192
-rw-r--r--examples/qws/svgalib/svgalibpaintengine.h79
-rw-r--r--examples/qws/svgalib/svgalibplugin.cpp75
-rw-r--r--examples/qws/svgalib/svgalibscreen.cpp354
-rw-r--r--examples/qws/svgalib/svgalibscreen.h84
-rw-r--r--examples/qws/svgalib/svgalibsurface.cpp87
-rw-r--r--examples/qws/svgalib/svgalibsurface.h76
-rw-r--r--examples/richtext/README42
-rw-r--r--examples/richtext/calendar/calendar.pro9
-rw-r--r--examples/richtext/calendar/main.cpp53
-rw-r--r--examples/richtext/calendar/mainwindow.cpp215
-rw-r--r--examples/richtext/calendar/mainwindow.h74
-rw-r--r--examples/richtext/orderform/detailsdialog.cpp157
-rw-r--r--examples/richtext/orderform/detailsdialog.h91
-rw-r--r--examples/richtext/orderform/main.cpp56
-rw-r--r--examples/richtext/orderform/mainwindow.cpp250
-rw-r--r--examples/richtext/orderform/mainwindow.h77
-rw-r--r--examples/richtext/orderform/orderform.pro11
-rw-r--r--examples/richtext/richtext.pro12
-rw-r--r--examples/richtext/syntaxhighlighter/highlighter.cpp148
-rw-r--r--examples/richtext/syntaxhighlighter/highlighter.h85
-rw-r--r--examples/richtext/syntaxhighlighter/main.cpp53
-rw-r--r--examples/richtext/syntaxhighlighter/mainwindow.cpp130
-rw-r--r--examples/richtext/syntaxhighlighter/mainwindow.h76
-rw-r--r--examples/richtext/syntaxhighlighter/syntaxhighlighter.pro17
-rw-r--r--examples/richtext/textobject/files/heart.svg55
-rw-r--r--examples/richtext/textobject/main.cpp55
-rw-r--r--examples/richtext/textobject/svgtextobject.cpp72
-rw-r--r--examples/richtext/textobject/svgtextobject.h70
-rw-r--r--examples/richtext/textobject/textobject.pro14
-rw-r--r--examples/richtext/textobject/window.cpp117
-rw-r--r--examples/richtext/textobject/window.h81
-rw-r--r--examples/script/README40
-rw-r--r--examples/script/calculator/calculator.js264
-rw-r--r--examples/script/calculator/calculator.pro12
-rw-r--r--examples/script/calculator/calculator.qrc6
-rw-r--r--examples/script/calculator/calculator.ui406
-rw-r--r--examples/script/calculator/main.cpp101
-rw-r--r--examples/script/context2d/context2d.cpp825
-rw-r--r--examples/script/context2d/context2d.h261
-rw-r--r--examples/script/context2d/context2d.pro23
-rw-r--r--examples/script/context2d/context2d.qrc5
-rw-r--r--examples/script/context2d/domimage.cpp157
-rw-r--r--examples/script/context2d/domimage.h87
-rw-r--r--examples/script/context2d/environment.cpp561
-rw-r--r--examples/script/context2d/environment.h145
-rw-r--r--examples/script/context2d/main.cpp53
-rw-r--r--examples/script/context2d/qcontext2dcanvas.cpp143
-rw-r--r--examples/script/context2d/qcontext2dcanvas.h98
-rw-r--r--examples/script/context2d/scripts/alpha.js21
-rw-r--r--examples/script/context2d/scripts/arc.js30
-rw-r--r--examples/script/context2d/scripts/bezier.js26
-rw-r--r--examples/script/context2d/scripts/clock.js99
-rw-r--r--examples/script/context2d/scripts/fill1.js8
-rw-r--r--examples/script/context2d/scripts/grad.js20
-rw-r--r--examples/script/context2d/scripts/linecap.js24
-rw-r--r--examples/script/context2d/scripts/linestye.js10
-rw-r--r--examples/script/context2d/scripts/moveto.js20
-rw-r--r--examples/script/context2d/scripts/moveto2.js24
-rw-r--r--examples/script/context2d/scripts/pacman.js83
-rw-r--r--examples/script/context2d/scripts/plasma.js58
-rw-r--r--examples/script/context2d/scripts/pong.js235
-rw-r--r--examples/script/context2d/scripts/quad.js21
-rw-r--r--examples/script/context2d/scripts/rgba.js19
-rw-r--r--examples/script/context2d/scripts/rotate.js16
-rw-r--r--examples/script/context2d/scripts/scale.js67
-rw-r--r--examples/script/context2d/scripts/stroke1.js10
-rw-r--r--examples/script/context2d/scripts/translate.js29
-rw-r--r--examples/script/context2d/window.cpp174
-rw-r--r--examples/script/context2d/window.h81
-rw-r--r--examples/script/customclass/bytearrayclass.cpp304
-rw-r--r--examples/script/customclass/bytearrayclass.h90
-rw-r--r--examples/script/customclass/bytearrayclass.pri6
-rw-r--r--examples/script/customclass/bytearrayprototype.cpp136
-rw-r--r--examples/script/customclass/bytearrayprototype.h80
-rw-r--r--examples/script/customclass/customclass.pro13
-rw-r--r--examples/script/customclass/main.cpp70
-rw-r--r--examples/script/defaultprototypes/code.js20
-rw-r--r--examples/script/defaultprototypes/defaultprototypes.pro10
-rw-r--r--examples/script/defaultprototypes/defaultprototypes.qrc5
-rw-r--r--examples/script/defaultprototypes/main.cpp84
-rw-r--r--examples/script/defaultprototypes/prototypes.cpp110
-rw-r--r--examples/script/defaultprototypes/prototypes.h78
-rw-r--r--examples/script/helloscript/helloscript.pro9
-rw-r--r--examples/script/helloscript/helloscript.qrc5
-rw-r--r--examples/script/helloscript/helloscript.qs5
-rw-r--r--examples/script/helloscript/main.cpp97
-rw-r--r--examples/script/marshal/main.cpp106
-rw-r--r--examples/script/marshal/marshal.pro9
-rw-r--r--examples/script/qscript/main.cpp221
-rw-r--r--examples/script/qscript/qscript.pro14
-rw-r--r--examples/script/qsdbg/example.qs17
-rw-r--r--examples/script/qsdbg/main.cpp74
-rw-r--r--examples/script/qsdbg/qsdbg.pri9
-rw-r--r--examples/script/qsdbg/qsdbg.pro19
-rw-r--r--examples/script/qsdbg/scriptbreakpointmanager.cpp159
-rw-r--r--examples/script/qsdbg/scriptbreakpointmanager.h122
-rw-r--r--examples/script/qsdbg/scriptdebugger.cpp737
-rw-r--r--examples/script/qsdbg/scriptdebugger.h85
-rw-r--r--examples/script/qstetrix/main.cpp142
-rw-r--r--examples/script/qstetrix/qstetrix.pro17
-rw-r--r--examples/script/qstetrix/tetrix.qrc8
-rw-r--r--examples/script/qstetrix/tetrixboard.cpp139
-rw-r--r--examples/script/qstetrix/tetrixboard.h102
-rw-r--r--examples/script/qstetrix/tetrixboard.js261
-rw-r--r--examples/script/qstetrix/tetrixpiece.js131
-rw-r--r--examples/script/qstetrix/tetrixwindow.js16
-rw-r--r--examples/script/qstetrix/tetrixwindow.ui175
-rw-r--r--examples/script/script.pro11
-rw-r--r--examples/sql/README40
-rw-r--r--examples/sql/cachedtable/cachedtable.pro11
-rw-r--r--examples/sql/cachedtable/main.cpp58
-rw-r--r--examples/sql/cachedtable/tableeditor.cpp106
-rw-r--r--examples/sql/cachedtable/tableeditor.h73
-rw-r--r--examples/sql/connection.h136
-rw-r--r--examples/sql/drilldown/drilldown.pro16
-rw-r--r--examples/sql/drilldown/drilldown.qrc11
-rw-r--r--examples/sql/drilldown/imageitem.cpp124
-rw-r--r--examples/sql/drilldown/imageitem.h75
-rw-r--r--examples/sql/drilldown/images/beijing.pngbin0 -> 99093 bytes-rw-r--r--examples/sql/drilldown/images/berlin.pngbin0 -> 81944 bytes-rw-r--r--examples/sql/drilldown/images/brisbane.pngbin0 -> 57785 bytes-rw-r--r--examples/sql/drilldown/images/munich.pngbin0 -> 59769 bytes-rw-r--r--examples/sql/drilldown/images/oslo.pngbin0 -> 41781 bytes-rw-r--r--examples/sql/drilldown/images/redwood.pngbin0 -> 39050 bytes-rw-r--r--examples/sql/drilldown/informationwindow.cpp170
-rw-r--r--examples/sql/drilldown/informationwindow.h91
-rw-r--r--examples/sql/drilldown/logo.pngbin0 -> 13378 bytes-rw-r--r--examples/sql/drilldown/main.cpp59
-rw-r--r--examples/sql/drilldown/view.cpp179
-rw-r--r--examples/sql/drilldown/view.h81
-rw-r--r--examples/sql/masterdetail/albumdetails.xml98
-rw-r--r--examples/sql/masterdetail/database.h97
-rw-r--r--examples/sql/masterdetail/dialog.cpp283
-rw-r--r--examples/sql/masterdetail/dialog.h83
-rw-r--r--examples/sql/masterdetail/images/icon.pngbin0 -> 30095 bytes-rw-r--r--examples/sql/masterdetail/images/image.pngbin0 -> 166692 bytes-rw-r--r--examples/sql/masterdetail/main.cpp60
-rw-r--r--examples/sql/masterdetail/mainwindow.cpp430
-rw-r--r--examples/sql/masterdetail/mainwindow.h104
-rw-r--r--examples/sql/masterdetail/masterdetail.pro16
-rw-r--r--examples/sql/masterdetail/masterdetail.qrc6
-rw-r--r--examples/sql/querymodel/customsqlmodel.cpp65
-rw-r--r--examples/sql/querymodel/customsqlmodel.h59
-rw-r--r--examples/sql/querymodel/editablesqlmodel.cpp110
-rw-r--r--examples/sql/querymodel/editablesqlmodel.h63
-rw-r--r--examples/sql/querymodel/main.cpp87
-rw-r--r--examples/sql/querymodel/querymodel.pro13
-rw-r--r--examples/sql/relationaltablemodel/relationaltablemodel.cpp115
-rw-r--r--examples/sql/relationaltablemodel/relationaltablemodel.pro9
-rw-r--r--examples/sql/sql.pro12
-rw-r--r--examples/sql/sqlwidgetmapper/main.cpp52
-rw-r--r--examples/sql/sqlwidgetmapper/sqlwidgetmapper.pro10
-rw-r--r--examples/sql/sqlwidgetmapper/window.cpp159
-rw-r--r--examples/sql/sqlwidgetmapper/window.h90
-rw-r--r--examples/sql/tablemodel/tablemodel.cpp84
-rw-r--r--examples/sql/tablemodel/tablemodel.pro9
-rw-r--r--examples/threads/README40
-rw-r--r--examples/threads/mandelbrot/main.cpp54
-rw-r--r--examples/threads/mandelbrot/mandelbrot.pro13
-rw-r--r--examples/threads/mandelbrot/mandelbrotwidget.cpp240
-rw-r--r--examples/threads/mandelbrot/mandelbrotwidget.h85
-rw-r--r--examples/threads/mandelbrot/renderthread.cpp216
-rw-r--r--examples/threads/mandelbrot/renderthread.h89
-rw-r--r--examples/threads/queuedcustomtype/block.cpp74
-rw-r--r--examples/threads/queuedcustomtype/block.h71
-rw-r--r--examples/threads/queuedcustomtype/main.cpp129
-rw-r--r--examples/threads/queuedcustomtype/queuedcustomtype.pro7
-rw-r--r--examples/threads/queuedcustomtype/renderthread.cpp110
-rw-r--r--examples/threads/queuedcustomtype/renderthread.h77
-rw-r--r--examples/threads/queuedcustomtype/window.cpp137
-rw-r--r--examples/threads/queuedcustomtype/window.h77
-rw-r--r--examples/threads/semaphores/semaphores.cpp107
-rw-r--r--examples/threads/semaphores/semaphores.pro10
-rw-r--r--examples/threads/threads.pro10
-rw-r--r--examples/threads/waitconditions/waitconditions.cpp126
-rw-r--r--examples/threads/waitconditions/waitconditions.pro20
-rw-r--r--examples/tools/README40
-rw-r--r--examples/tools/codecs/codecs.pro11
-rw-r--r--examples/tools/codecs/encodedfiles/.gitattributes2
-rw-r--r--examples/tools/codecs/encodedfiles/iso-8859-1.txt6
-rw-r--r--examples/tools/codecs/encodedfiles/iso-8859-15.txt8
-rw-r--r--examples/tools/codecs/encodedfiles/utf-16.txtbin0 -> 162 bytes-rw-r--r--examples/tools/codecs/encodedfiles/utf-16be.txtbin0 -> 160 bytes-rw-r--r--examples/tools/codecs/encodedfiles/utf-16le.txtbin0 -> 160 bytes-rw-r--r--examples/tools/codecs/encodedfiles/utf-8.txt6
-rw-r--r--examples/tools/codecs/main.cpp52
-rw-r--r--examples/tools/codecs/mainwindow.cpp203
-rw-r--r--examples/tools/codecs/mainwindow.h88
-rw-r--r--examples/tools/codecs/previewform.cpp102
-rw-r--r--examples/tools/codecs/previewform.h80
-rw-r--r--examples/tools/completer/completer.pro12
-rw-r--r--examples/tools/completer/completer.qrc6
-rw-r--r--examples/tools/completer/dirmodel.cpp63
-rw-r--r--examples/tools/completer/dirmodel.h61
-rw-r--r--examples/tools/completer/main.cpp55
-rw-r--r--examples/tools/completer/mainwindow.cpp264
-rw-r--r--examples/tools/completer/mainwindow.h87
-rw-r--r--examples/tools/completer/resources/countries.txt241
-rw-r--r--examples/tools/completer/resources/wordlist.txt1486
-rw-r--r--examples/tools/customcompleter/customcompleter.pro12
-rw-r--r--examples/tools/customcompleter/customcompleter.qrc5
-rw-r--r--examples/tools/customcompleter/main.cpp55
-rw-r--r--examples/tools/customcompleter/mainwindow.cpp118
-rw-r--r--examples/tools/customcompleter/mainwindow.h77
-rw-r--r--examples/tools/customcompleter/resources/wordlist.txt1455
-rw-r--r--examples/tools/customcompleter/textedit.cpp174
-rw-r--r--examples/tools/customcompleter/textedit.h79
-rw-r--r--examples/tools/customtype/customtype.pro3
-rw-r--r--examples/tools/customtype/main.cpp74
-rw-r--r--examples/tools/customtype/message.cpp90
-rw-r--r--examples/tools/customtype/message.h76
-rw-r--r--examples/tools/customtypesending/customtypesending.pro5
-rw-r--r--examples/tools/customtypesending/main.cpp68
-rw-r--r--examples/tools/customtypesending/message.cpp72
-rw-r--r--examples/tools/customtypesending/message.h72
-rw-r--r--examples/tools/customtypesending/window.cpp80
-rw-r--r--examples/tools/customtypesending/window.h73
-rw-r--r--examples/tools/echoplugin/echoplugin.pro11
-rw-r--r--examples/tools/echoplugin/echowindow/echointerface.h62
-rw-r--r--examples/tools/echoplugin/echowindow/echowindow.cpp119
-rw-r--r--examples/tools/echoplugin/echowindow/echowindow.h80
-rw-r--r--examples/tools/echoplugin/echowindow/echowindow.pro18
-rw-r--r--examples/tools/echoplugin/echowindow/main.cpp57
-rw-r--r--examples/tools/echoplugin/plugin/echoplugin.cpp55
-rw-r--r--examples/tools/echoplugin/plugin/echoplugin.h60
-rw-r--r--examples/tools/echoplugin/plugin/plugin.pro15
-rw-r--r--examples/tools/i18n/i18n.pro26
-rw-r--r--examples/tools/i18n/i18n.qrc18
-rw-r--r--examples/tools/i18n/languagechooser.cpp167
-rw-r--r--examples/tools/i18n/languagechooser.h86
-rw-r--r--examples/tools/i18n/main.cpp55
-rw-r--r--examples/tools/i18n/mainwindow.cpp96
-rw-r--r--examples/tools/i18n/mainwindow.h77
-rw-r--r--examples/tools/i18n/translations/i18n_ar.qmbin0 -> 736 bytes-rw-r--r--examples/tools/i18n/translations/i18n_ar.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_cs.qmbin0 -> 796 bytes-rw-r--r--examples/tools/i18n/translations/i18n_cs.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_de.qmbin0 -> 848 bytes-rw-r--r--examples/tools/i18n/translations/i18n_de.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_el.qmbin0 -> 804 bytes-rw-r--r--examples/tools/i18n/translations/i18n_el.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_en.qmbin0 -> 810 bytes-rw-r--r--examples/tools/i18n/translations/i18n_en.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_eo.qmbin0 -> 806 bytes-rw-r--r--examples/tools/i18n/translations/i18n_eo.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_fr.qmbin0 -> 844 bytes-rw-r--r--examples/tools/i18n/translations/i18n_fr.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_it.qmbin0 -> 808 bytes-rw-r--r--examples/tools/i18n/translations/i18n_it.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_jp.qmbin0 -> 722 bytes-rw-r--r--examples/tools/i18n/translations/i18n_jp.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_ko.qmbin0 -> 690 bytes-rw-r--r--examples/tools/i18n/translations/i18n_ko.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_no.qmbin0 -> 804 bytes-rw-r--r--examples/tools/i18n/translations/i18n_no.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_ru.qmbin0 -> 806 bytes-rw-r--r--examples/tools/i18n/translations/i18n_ru.ts59
-rw-r--r--examples/tools/i18n/translations/i18n_sv.qmbin0 -> 814 bytes-rw-r--r--examples/tools/i18n/translations/i18n_sv.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_zh.qmbin0 -> 700 bytes-rw-r--r--examples/tools/i18n/translations/i18n_zh.ts57
-rw-r--r--examples/tools/plugandpaint/interfaces.h111
-rw-r--r--examples/tools/plugandpaint/main.cpp58
-rw-r--r--examples/tools/plugandpaint/mainwindow.cpp310
-rw-r--r--examples/tools/plugandpaint/mainwindow.h104
-rw-r--r--examples/tools/plugandpaint/paintarea.cpp196
-rw-r--r--examples/tools/plugandpaint/paintarea.h92
-rw-r--r--examples/tools/plugandpaint/plugandpaint.pro22
-rw-r--r--examples/tools/plugandpaint/plugindialog.cpp157
-rw-r--r--examples/tools/plugandpaint/plugindialog.h77
-rw-r--r--examples/tools/plugandpaintplugins/basictools/basictools.pro15
-rw-r--r--examples/tools/plugandpaintplugins/basictools/basictoolsplugin.cpp198
-rw-r--r--examples/tools/plugandpaintplugins/basictools/basictoolsplugin.h88
-rw-r--r--examples/tools/plugandpaintplugins/extrafilters/extrafilters.pro15
-rw-r--r--examples/tools/plugandpaintplugins/extrafilters/extrafiltersplugin.cpp125
-rw-r--r--examples/tools/plugandpaintplugins/extrafilters/extrafiltersplugin.h64
-rw-r--r--examples/tools/plugandpaintplugins/plugandpaintplugins.pro9
-rw-r--r--examples/tools/regexp/main.cpp52
-rw-r--r--examples/tools/regexp/regexp.pro9
-rw-r--r--examples/tools/regexp/regexpdialog.cpp188
-rw-r--r--examples/tools/regexp/regexpdialog.h86
-rw-r--r--examples/tools/settingseditor/inifiles/licensepage.ini46
-rw-r--r--examples/tools/settingseditor/inifiles/qsa.ini26
-rw-r--r--examples/tools/settingseditor/locationdialog.cpp217
-rw-r--r--examples/tools/settingseditor/locationdialog.h85
-rw-r--r--examples/tools/settingseditor/main.cpp52
-rw-r--r--examples/tools/settingseditor/mainwindow.cpp223
-rw-r--r--examples/tools/settingseditor/mainwindow.h92
-rw-r--r--examples/tools/settingseditor/settingseditor.pro15
-rw-r--r--examples/tools/settingseditor/settingstree.cpp263
-rw-r--r--examples/tools/settingseditor/settingstree.h91
-rw-r--r--examples/tools/settingseditor/variantdelegate.cpp317
-rw-r--r--examples/tools/settingseditor/variantdelegate.h82
-rw-r--r--examples/tools/styleplugin/plugin/plugin.pro21
-rw-r--r--examples/tools/styleplugin/plugin/simplestyle.cpp49
-rw-r--r--examples/tools/styleplugin/plugin/simplestyle.h61
-rw-r--r--examples/tools/styleplugin/plugin/simplestyleplugin.cpp65
-rw-r--r--examples/tools/styleplugin/plugin/simplestyleplugin.h65
-rw-r--r--examples/tools/styleplugin/styleplugin.pro9
-rw-r--r--examples/tools/styleplugin/stylewindow/main.cpp58
-rw-r--r--examples/tools/styleplugin/stylewindow/stylewindow.cpp61
-rw-r--r--examples/tools/styleplugin/stylewindow/stylewindow.h55
-rw-r--r--examples/tools/styleplugin/stylewindow/stylewindow.pro17
-rw-r--r--examples/tools/tools.pro22
-rw-r--r--examples/tools/treemodelcompleter/main.cpp55
-rw-r--r--examples/tools/treemodelcompleter/mainwindow.cpp247
-rw-r--r--examples/tools/treemodelcompleter/mainwindow.h89
-rw-r--r--examples/tools/treemodelcompleter/resources/treemodel.txt20
-rw-r--r--examples/tools/treemodelcompleter/treemodelcompleter.cpp98
-rw-r--r--examples/tools/treemodelcompleter/treemodelcompleter.h71
-rw-r--r--examples/tools/treemodelcompleter/treemodelcompleter.pro12
-rw-r--r--examples/tools/treemodelcompleter/treemodelcompleter.qrc5
-rw-r--r--examples/tools/undoframework/commands.cpp163
-rw-r--r--examples/tools/undoframework/commands.h104
-rw-r--r--examples/tools/undoframework/diagramitem.cpp66
-rw-r--r--examples/tools/undoframework/diagramitem.h73
-rw-r--r--examples/tools/undoframework/diagramscene.cpp76
-rw-r--r--examples/tools/undoframework/diagramscene.h75
-rw-r--r--examples/tools/undoframework/images/cross.pngbin0 -> 114 bytes-rw-r--r--examples/tools/undoframework/main.cpp58
-rw-r--r--examples/tools/undoframework/mainwindow.cpp209
-rw-r--r--examples/tools/undoframework/mainwindow.h100
-rw-r--r--examples/tools/undoframework/undoframework.pro16
-rw-r--r--examples/tools/undoframework/undoframework.qrc6
-rw-r--r--examples/tutorials/README37
-rw-r--r--examples/tutorials/addressbook-fr/README42
-rw-r--r--examples/tutorials/addressbook-fr/addressbook-fr.pro8
-rw-r--r--examples/tutorials/addressbook-fr/part1/addressbook.cpp68
-rw-r--r--examples/tutorials/addressbook-fr/part1/addressbook.h67
-rw-r--r--examples/tutorials/addressbook-fr/part1/main.cpp55
-rw-r--r--examples/tutorials/addressbook-fr/part1/part1.pro9
-rw-r--r--examples/tutorials/addressbook-fr/part2/addressbook.cpp158
-rw-r--r--examples/tutorials/addressbook-fr/part2/addressbook.h85
-rw-r--r--examples/tutorials/addressbook-fr/part2/main.cpp55
-rw-r--r--examples/tutorials/addressbook-fr/part2/part2.pro9
-rw-r--r--examples/tutorials/addressbook-fr/part3/addressbook.cpp217
-rw-r--r--examples/tutorials/addressbook-fr/part3/addressbook.h87
-rw-r--r--examples/tutorials/addressbook-fr/part3/main.cpp53
-rw-r--r--examples/tutorials/addressbook-fr/part3/part3.pro9
-rw-r--r--examples/tutorials/addressbook-fr/part4/addressbook.cpp291
-rw-r--r--examples/tutorials/addressbook-fr/part4/addressbook.h100
-rw-r--r--examples/tutorials/addressbook-fr/part4/main.cpp53
-rw-r--r--examples/tutorials/addressbook-fr/part4/part4.pro9
-rw-r--r--examples/tutorials/addressbook-fr/part5/addressbook.cpp315
-rw-r--r--examples/tutorials/addressbook-fr/part5/addressbook.h103
-rw-r--r--examples/tutorials/addressbook-fr/part5/finddialog.cpp87
-rw-r--r--examples/tutorials/addressbook-fr/part5/finddialog.h69
-rw-r--r--examples/tutorials/addressbook-fr/part5/main.cpp53
-rw-r--r--examples/tutorials/addressbook-fr/part5/part5.pro11
-rw-r--r--examples/tutorials/addressbook-fr/part6/addressbook.cpp396
-rw-r--r--examples/tutorials/addressbook-fr/part6/addressbook.h104
-rw-r--r--examples/tutorials/addressbook-fr/part6/finddialog.cpp83
-rw-r--r--examples/tutorials/addressbook-fr/part6/finddialog.h69
-rw-r--r--examples/tutorials/addressbook-fr/part6/main.cpp53
-rw-r--r--examples/tutorials/addressbook-fr/part6/part6.pro11
-rw-r--r--examples/tutorials/addressbook-fr/part7/addressbook.cpp449
-rw-r--r--examples/tutorials/addressbook-fr/part7/addressbook.h106
-rw-r--r--examples/tutorials/addressbook-fr/part7/finddialog.cpp83
-rw-r--r--examples/tutorials/addressbook-fr/part7/finddialog.h69
-rw-r--r--examples/tutorials/addressbook-fr/part7/main.cpp53
-rw-r--r--examples/tutorials/addressbook-fr/part7/part7.pro11
-rw-r--r--examples/tutorials/addressbook/README42
-rw-r--r--examples/tutorials/addressbook/addressbook.pro8
-rw-r--r--examples/tutorials/addressbook/part1/addressbook.cpp68
-rw-r--r--examples/tutorials/addressbook/part1/addressbook.h67
-rw-r--r--examples/tutorials/addressbook/part1/main.cpp55
-rw-r--r--examples/tutorials/addressbook/part1/part1.pro9
-rw-r--r--examples/tutorials/addressbook/part2/addressbook.cpp158
-rw-r--r--examples/tutorials/addressbook/part2/addressbook.h85
-rw-r--r--examples/tutorials/addressbook/part2/main.cpp55
-rw-r--r--examples/tutorials/addressbook/part2/part2.pro9
-rw-r--r--examples/tutorials/addressbook/part3/addressbook.cpp217
-rw-r--r--examples/tutorials/addressbook/part3/addressbook.h87
-rw-r--r--examples/tutorials/addressbook/part3/main.cpp53
-rw-r--r--examples/tutorials/addressbook/part3/part3.pro9
-rw-r--r--examples/tutorials/addressbook/part4/addressbook.cpp291
-rw-r--r--examples/tutorials/addressbook/part4/addressbook.h100
-rw-r--r--examples/tutorials/addressbook/part4/main.cpp53
-rw-r--r--examples/tutorials/addressbook/part4/part4.pro9
-rw-r--r--examples/tutorials/addressbook/part5/addressbook.cpp315
-rw-r--r--examples/tutorials/addressbook/part5/addressbook.h103
-rw-r--r--examples/tutorials/addressbook/part5/finddialog.cpp87
-rw-r--r--examples/tutorials/addressbook/part5/finddialog.h69
-rw-r--r--examples/tutorials/addressbook/part5/main.cpp53
-rw-r--r--examples/tutorials/addressbook/part5/part5.pro11
-rw-r--r--examples/tutorials/addressbook/part6/addressbook.cpp396
-rw-r--r--examples/tutorials/addressbook/part6/addressbook.h104
-rw-r--r--examples/tutorials/addressbook/part6/finddialog.cpp83
-rw-r--r--examples/tutorials/addressbook/part6/finddialog.h69
-rw-r--r--examples/tutorials/addressbook/part6/main.cpp53
-rw-r--r--examples/tutorials/addressbook/part6/part6.pro11
-rw-r--r--examples/tutorials/addressbook/part7/addressbook.cpp449
-rw-r--r--examples/tutorials/addressbook/part7/addressbook.h106
-rw-r--r--examples/tutorials/addressbook/part7/finddialog.cpp83
-rw-r--r--examples/tutorials/addressbook/part7/finddialog.h69
-rw-r--r--examples/tutorials/addressbook/part7/main.cpp53
-rw-r--r--examples/tutorials/addressbook/part7/part7.pro11
-rw-r--r--examples/tutorials/tutorials.pro8
-rw-r--r--examples/uitools/multipleinheritance/calculatorform.cpp66
-rw-r--r--examples/uitools/multipleinheritance/calculatorform.h63
-rw-r--r--examples/uitools/multipleinheritance/calculatorform.ui303
-rw-r--r--examples/uitools/multipleinheritance/main.cpp53
-rw-r--r--examples/uitools/multipleinheritance/multipleinheritance.pro11
-rw-r--r--examples/uitools/textfinder/forms/input.txt9
-rw-r--r--examples/uitools/textfinder/forms/textfinder.ui89
-rw-r--r--examples/uitools/textfinder/main.cpp56
-rw-r--r--examples/uitools/textfinder/textfinder.cpp156
-rw-r--r--examples/uitools/textfinder/textfinder.h75
-rw-r--r--examples/uitools/textfinder/textfinder.pro10
-rw-r--r--examples/uitools/textfinder/textfinder.qrc6
-rw-r--r--examples/uitools/uitools.pro10
-rwxr-xr-xexamples/webkit/formextractor/form.html64
-rw-r--r--examples/webkit/formextractor/formextractor.cpp74
-rw-r--r--examples/webkit/formextractor/formextractor.h67
-rw-r--r--examples/webkit/formextractor/formextractor.pro16
-rw-r--r--examples/webkit/formextractor/formextractor.qrc5
-rw-r--r--examples/webkit/formextractor/formextractor.ui159
-rw-r--r--examples/webkit/formextractor/main.cpp53
-rw-r--r--examples/webkit/formextractor/mainwindow.cpp87
-rw-r--r--examples/webkit/formextractor/mainwindow.h75
-rw-r--r--examples/webkit/previewer/main.cpp53
-rw-r--r--examples/webkit/previewer/mainwindow.cpp197
-rw-r--r--examples/webkit/previewer/mainwindow.h87
-rw-r--r--examples/webkit/previewer/previewer.cpp65
-rw-r--r--examples/webkit/previewer/previewer.h65
-rw-r--r--examples/webkit/previewer/previewer.pro13
-rw-r--r--examples/webkit/previewer/previewer.ui99
-rw-r--r--examples/webkit/webkit.pro9
-rw-r--r--examples/widgets/README44
-rw-r--r--examples/widgets/analogclock/analogclock.cpp146
-rw-r--r--examples/widgets/analogclock/analogclock.h60
-rw-r--r--examples/widgets/analogclock/analogclock.pro9
-rw-r--r--examples/widgets/analogclock/main.cpp52
-rw-r--r--examples/widgets/calculator/button.cpp64
-rw-r--r--examples/widgets/calculator/button.h59
-rw-r--r--examples/widgets/calculator/calculator.cpp398
-rw-r--r--examples/widgets/calculator/calculator.h108
-rw-r--r--examples/widgets/calculator/calculator.pro11
-rw-r--r--examples/widgets/calculator/main.cpp52
-rw-r--r--examples/widgets/calendarwidget/calendarwidget.pro9
-rw-r--r--examples/widgets/calendarwidget/main.cpp52
-rw-r--r--examples/widgets/calendarwidget/window.cpp462
-rw-r--r--examples/widgets/calendarwidget/window.h128
-rw-r--r--examples/widgets/charactermap/charactermap.pro11
-rw-r--r--examples/widgets/charactermap/characterwidget.cpp178
-rw-r--r--examples/widgets/charactermap/characterwidget.h87
-rw-r--r--examples/widgets/charactermap/main.cpp52
-rw-r--r--examples/widgets/charactermap/mainwindow.cpp196
-rw-r--r--examples/widgets/charactermap/mainwindow.h84
-rw-r--r--examples/widgets/codeeditor/codeeditor.cpp171
-rw-r--r--examples/widgets/codeeditor/codeeditor.h106
-rw-r--r--examples/widgets/codeeditor/codeeditor.pro9
-rw-r--r--examples/widgets/codeeditor/main.cpp56
-rw-r--r--examples/widgets/digitalclock/digitalclock.cpp73
-rw-r--r--examples/widgets/digitalclock/digitalclock.h60
-rw-r--r--examples/widgets/digitalclock/digitalclock.pro9
-rw-r--r--examples/widgets/digitalclock/main.cpp52
-rw-r--r--examples/widgets/groupbox/groupbox.pro9
-rw-r--r--examples/widgets/groupbox/main.cpp52
-rw-r--r--examples/widgets/groupbox/window.cpp190
-rw-r--r--examples/widgets/groupbox/window.h67
-rw-r--r--examples/widgets/icons/iconpreviewarea.cpp142
-rw-r--r--examples/widgets/icons/iconpreviewarea.h78
-rw-r--r--examples/widgets/icons/icons.pro25
-rw-r--r--examples/widgets/icons/iconsizespinbox.cpp71
-rw-r--r--examples/widgets/icons/iconsizespinbox.h60
-rw-r--r--examples/widgets/icons/imagedelegate.cpp106
-rw-r--r--examples/widgets/icons/imagedelegate.h69
-rw-r--r--examples/widgets/icons/images/designer.pngbin0 -> 4205 bytes-rw-r--r--examples/widgets/icons/images/find_disabled.pngbin0 -> 501 bytes-rw-r--r--examples/widgets/icons/images/find_normal.pngbin0 -> 838 bytes-rw-r--r--examples/widgets/icons/images/monkey_off_128x128.pngbin0 -> 7045 bytes-rw-r--r--examples/widgets/icons/images/monkey_off_16x16.pngbin0 -> 683 bytes-rw-r--r--examples/widgets/icons/images/monkey_off_32x32.pngbin0 -> 1609 bytes-rw-r--r--examples/widgets/icons/images/monkey_off_64x64.pngbin0 -> 3533 bytes-rw-r--r--examples/widgets/icons/images/monkey_on_128x128.pngbin0 -> 6909 bytes-rw-r--r--examples/widgets/icons/images/monkey_on_16x16.pngbin0 -> 681 bytes-rw-r--r--examples/widgets/icons/images/monkey_on_32x32.pngbin0 -> 1577 bytes-rw-r--r--examples/widgets/icons/images/monkey_on_64x64.pngbin0 -> 3479 bytes-rw-r--r--examples/widgets/icons/images/qt_extended_16x16.pngbin0 -> 834 bytes-rw-r--r--examples/widgets/icons/images/qt_extended_32x32.pngbin0 -> 1892 bytes-rw-r--r--examples/widgets/icons/images/qt_extended_48x48.pngbin0 -> 3672 bytes-rw-r--r--examples/widgets/icons/main.cpp52
-rw-r--r--examples/widgets/icons/mainwindow.cpp443
-rw-r--r--examples/widgets/icons/mainwindow.h117
-rw-r--r--examples/widgets/imageviewer/imageviewer.cpp278
-rw-r--r--examples/widgets/imageviewer/imageviewer.h104
-rw-r--r--examples/widgets/imageviewer/imageviewer.pro13
-rw-r--r--examples/widgets/imageviewer/main.cpp52
-rw-r--r--examples/widgets/lineedits/lineedits.pro9
-rw-r--r--examples/widgets/lineedits/main.cpp52
-rw-r--r--examples/widgets/lineedits/window.cpp257
-rw-r--r--examples/widgets/lineedits/window.h76
-rw-r--r--examples/widgets/movie/animation.mngbin0 -> 5464 bytes-rw-r--r--examples/widgets/movie/main.cpp52
-rw-r--r--examples/widgets/movie/movie.pro9
-rw-r--r--examples/widgets/movie/movieplayer.cpp211
-rw-r--r--examples/widgets/movie/movieplayer.h97
-rw-r--r--examples/widgets/scribble/main.cpp52
-rw-r--r--examples/widgets/scribble/mainwindow.cpp251
-rw-r--r--examples/widgets/scribble/mainwindow.h93
-rw-r--r--examples/widgets/scribble/scribble.pro11
-rw-r--r--examples/widgets/scribble/scribblearea.cpp215
-rw-r--r--examples/widgets/scribble/scribblearea.h91
-rw-r--r--examples/widgets/shapedclock/main.cpp52
-rw-r--r--examples/widgets/shapedclock/shapedclock.cpp159
-rw-r--r--examples/widgets/shapedclock/shapedclock.h67
-rw-r--r--examples/widgets/shapedclock/shapedclock.pro9
-rw-r--r--examples/widgets/sliders/main.cpp52
-rw-r--r--examples/widgets/sliders/sliders.pro11
-rw-r--r--examples/widgets/sliders/slidersgroup.cpp133
-rw-r--r--examples/widgets/sliders/slidersgroup.h79
-rw-r--r--examples/widgets/sliders/window.cpp146
-rw-r--r--examples/widgets/sliders/window.h85
-rw-r--r--examples/widgets/spinboxes/main.cpp52
-rw-r--r--examples/widgets/spinboxes/spinboxes.pro9
-rw-r--r--examples/widgets/spinboxes/window.cpp252
-rw-r--r--examples/widgets/spinboxes/window.h82
-rw-r--r--examples/widgets/styles/images/woodbackground.pngbin0 -> 7691 bytes-rw-r--r--examples/widgets/styles/images/woodbutton.pngbin0 -> 7689 bytes-rw-r--r--examples/widgets/styles/main.cpp54
-rw-r--r--examples/widgets/styles/norwegianwoodstyle.cpp331
-rw-r--r--examples/widgets/styles/norwegianwoodstyle.h79
-rw-r--r--examples/widgets/styles/styles.pro14
-rw-r--r--examples/widgets/styles/styles.qrc6
-rw-r--r--examples/widgets/styles/widgetgallery.cpp276
-rw-r--r--examples/widgets/styles/widgetgallery.h122
-rw-r--r--examples/widgets/stylesheet/images/checkbox_checked.pngbin0 -> 263 bytes-rw-r--r--examples/widgets/stylesheet/images/checkbox_checked_hover.pngbin0 -> 266 bytes-rw-r--r--examples/widgets/stylesheet/images/checkbox_checked_pressed.pngbin0 -> 425 bytes-rw-r--r--examples/widgets/stylesheet/images/checkbox_unchecked.pngbin0 -> 159 bytes-rw-r--r--examples/widgets/stylesheet/images/checkbox_unchecked_hover.pngbin0 -> 159 bytes-rw-r--r--examples/widgets/stylesheet/images/checkbox_unchecked_pressed.pngbin0 -> 320 bytes-rw-r--r--examples/widgets/stylesheet/images/down_arrow.pngbin0 -> 175 bytes-rw-r--r--examples/widgets/stylesheet/images/down_arrow_disabled.pngbin0 -> 174 bytes-rw-r--r--examples/widgets/stylesheet/images/frame.pngbin0 -> 253 bytes-rw-r--r--examples/widgets/stylesheet/images/pagefold.pngbin0 -> 1545 bytes-rw-r--r--examples/widgets/stylesheet/images/pushbutton.pngbin0 -> 533 bytes-rw-r--r--examples/widgets/stylesheet/images/pushbutton_hover.pngbin0 -> 525 bytes-rw-r--r--examples/widgets/stylesheet/images/pushbutton_pressed.pngbin0 -> 513 bytes-rw-r--r--examples/widgets/stylesheet/images/radiobutton_checked.pngbin0 -> 355 bytes-rw-r--r--examples/widgets/stylesheet/images/radiobutton_checked_hover.pngbin0 -> 532 bytes-rw-r--r--examples/widgets/stylesheet/images/radiobutton_checked_pressed.pngbin0 -> 599 bytes-rw-r--r--examples/widgets/stylesheet/images/radiobutton_unchecked.pngbin0 -> 240 bytes-rw-r--r--examples/widgets/stylesheet/images/radiobutton_unchecked_hover.pngbin0 -> 492 bytes-rw-r--r--examples/widgets/stylesheet/images/radiobutton_unchecked_pressed.pngbin0 -> 556 bytes-rw-r--r--examples/widgets/stylesheet/images/sizegrip.pngbin0 -> 129 bytes-rw-r--r--examples/widgets/stylesheet/images/spindown.pngbin0 -> 276 bytes-rw-r--r--examples/widgets/stylesheet/images/spindown_hover.pngbin0 -> 268 bytes-rw-r--r--examples/widgets/stylesheet/images/spindown_off.pngbin0 -> 249 bytes-rw-r--r--examples/widgets/stylesheet/images/spindown_pressed.pngbin0 -> 264 bytes-rw-r--r--examples/widgets/stylesheet/images/spinup.pngbin0 -> 283 bytes-rw-r--r--examples/widgets/stylesheet/images/spinup_hover.pngbin0 -> 277 bytes-rw-r--r--examples/widgets/stylesheet/images/spinup_off.pngbin0 -> 274 bytes-rw-r--r--examples/widgets/stylesheet/images/spinup_pressed.pngbin0 -> 277 bytes-rw-r--r--examples/widgets/stylesheet/images/up_arrow.pngbin0 -> 197 bytes-rw-r--r--examples/widgets/stylesheet/images/up_arrow_disabled.pngbin0 -> 172 bytes-rw-r--r--examples/widgets/stylesheet/layouts/default.ui329
-rw-r--r--examples/widgets/stylesheet/layouts/pagefold.ui349
-rw-r--r--examples/widgets/stylesheet/main.cpp54
-rw-r--r--examples/widgets/stylesheet/mainwindow.cpp75
-rw-r--r--examples/widgets/stylesheet/mainwindow.h67
-rw-r--r--examples/widgets/stylesheet/mainwindow.ui356
-rw-r--r--examples/widgets/stylesheet/qss/coffee.qss112
-rw-r--r--examples/widgets/stylesheet/qss/default.qss1
-rw-r--r--examples/widgets/stylesheet/qss/pagefold.qss299
-rw-r--r--examples/widgets/stylesheet/stylesheet.pro14
-rw-r--r--examples/widgets/stylesheet/stylesheet.qrc39
-rw-r--r--examples/widgets/stylesheet/stylesheeteditor.cpp94
-rw-r--r--examples/widgets/stylesheet/stylesheeteditor.h68
-rw-r--r--examples/widgets/stylesheet/stylesheeteditor.ui171
-rw-r--r--examples/widgets/tablet/main.cpp61
-rw-r--r--examples/widgets/tablet/mainwindow.cpp275
-rw-r--r--examples/widgets/tablet/mainwindow.h114
-rw-r--r--examples/widgets/tablet/tablet.pro13
-rw-r--r--examples/widgets/tablet/tabletapplication.cpp57
-rw-r--r--examples/widgets/tablet/tabletapplication.h67
-rw-r--r--examples/widgets/tablet/tabletcanvas.cpp257
-rw-r--r--examples/widgets/tablet/tabletcanvas.h115
-rw-r--r--examples/widgets/tetrix/main.cpp55
-rw-r--r--examples/widgets/tetrix/tetrix.pro13
-rw-r--r--examples/widgets/tetrix/tetrixboard.cpp409
-rw-r--r--examples/widgets/tetrix/tetrixboard.h117
-rw-r--r--examples/widgets/tetrix/tetrixpiece.cpp146
-rw-r--r--examples/widgets/tetrix/tetrixpiece.h76
-rw-r--r--examples/widgets/tetrix/tetrixwindow.cpp116
-rw-r--r--examples/widgets/tetrix/tetrixwindow.h77
-rw-r--r--examples/widgets/tooltips/images/circle.pngbin0 -> 165 bytes-rw-r--r--examples/widgets/tooltips/images/square.pngbin0 -> 94 bytes-rw-r--r--examples/widgets/tooltips/images/triangle.pngbin0 -> 170 bytes-rw-r--r--examples/widgets/tooltips/main.cpp55
-rw-r--r--examples/widgets/tooltips/shapeitem.cpp100
-rw-r--r--examples/widgets/tooltips/shapeitem.h71
-rw-r--r--examples/widgets/tooltips/sortingbox.cpp302
-rw-r--r--examples/widgets/tooltips/sortingbox.h107
-rw-r--r--examples/widgets/tooltips/tooltips.pro12
-rw-r--r--examples/widgets/tooltips/tooltips.qrc7
-rw-r--r--examples/widgets/validators/ledoff.pngbin0 -> 562 bytes-rw-r--r--examples/widgets/validators/ledon.pngbin0 -> 486 bytes-rw-r--r--examples/widgets/validators/ledwidget.cpp63
-rw-r--r--examples/widgets/validators/ledwidget.h65
-rw-r--r--examples/widgets/validators/localeselector.cpp313
-rw-r--r--examples/widgets/validators/localeselector.h61
-rw-r--r--examples/widgets/validators/main.cpp137
-rw-r--r--examples/widgets/validators/validators.pro21
-rw-r--r--examples/widgets/validators/validators.qrc6
-rw-r--r--examples/widgets/validators/validators.ui467
-rw-r--r--examples/widgets/widgets.pro31
-rw-r--r--examples/widgets/wiggly/dialog.cpp67
-rw-r--r--examples/widgets/wiggly/dialog.h57
-rw-r--r--examples/widgets/wiggly/main.cpp53
-rw-r--r--examples/widgets/wiggly/wiggly.pro11
-rw-r--r--examples/widgets/wiggly/wigglywidget.cpp101
-rw-r--r--examples/widgets/wiggly/wigglywidget.h70
-rw-r--r--examples/widgets/windowflags/controllerwindow.cpp221
-rw-r--r--examples/widgets/windowflags/controllerwindow.h105
-rw-r--r--examples/widgets/windowflags/main.cpp52
-rw-r--r--examples/widgets/windowflags/previewwindow.cpp119
-rw-r--r--examples/widgets/windowflags/previewwindow.h68
-rw-r--r--examples/widgets/windowflags/windowflags.pro11
-rw-r--r--examples/xml/README40
-rw-r--r--examples/xml/dombookmarks/dombookmarks.pro18
-rw-r--r--examples/xml/dombookmarks/frank.xbel230
-rw-r--r--examples/xml/dombookmarks/jennifer.xbel93
-rw-r--r--examples/xml/dombookmarks/main.cpp53
-rw-r--r--examples/xml/dombookmarks/mainwindow.cpp146
-rw-r--r--examples/xml/dombookmarks/mainwindow.h76
-rw-r--r--examples/xml/dombookmarks/xbeltree.cpp187
-rw-r--r--examples/xml/dombookmarks/xbeltree.h75
-rw-r--r--examples/xml/rsslisting/main.cpp64
-rw-r--r--examples/xml/rsslisting/rsslisting.cpp239
-rw-r--r--examples/xml/rsslisting/rsslisting.h87
-rw-r--r--examples/xml/rsslisting/rsslisting.pro10
-rw-r--r--examples/xml/saxbookmarks/frank.xbel230
-rw-r--r--examples/xml/saxbookmarks/jennifer.xbel93
-rw-r--r--examples/xml/saxbookmarks/main.cpp53
-rw-r--r--examples/xml/saxbookmarks/mainwindow.cpp161
-rw-r--r--examples/xml/saxbookmarks/mainwindow.h78
-rw-r--r--examples/xml/saxbookmarks/saxbookmarks.pro20
-rw-r--r--examples/xml/saxbookmarks/xbelgenerator.cpp115
-rw-r--r--examples/xml/saxbookmarks/xbelgenerator.h69
-rw-r--r--examples/xml/saxbookmarks/xbelhandler.cpp147
-rw-r--r--examples/xml/saxbookmarks/xbelhandler.h79
-rw-r--r--examples/xml/streambookmarks/frank.xbel230
-rw-r--r--examples/xml/streambookmarks/jennifer.xbel93
-rw-r--r--examples/xml/streambookmarks/main.cpp55
-rw-r--r--examples/xml/streambookmarks/mainwindow.cpp177
-rw-r--r--examples/xml/streambookmarks/mainwindow.h80
-rw-r--r--examples/xml/streambookmarks/streambookmarks.pro14
-rw-r--r--examples/xml/streambookmarks/xbelreader.cpp205
-rw-r--r--examples/xml/streambookmarks/xbelreader.h82
-rw-r--r--examples/xml/streambookmarks/xbelwriter.cpp93
-rw-r--r--examples/xml/streambookmarks/xbelwriter.h65
-rw-r--r--examples/xml/xml.pro12
-rw-r--r--examples/xml/xmlstreamlint/main.cpp128
-rw-r--r--examples/xml/xmlstreamlint/xmlstreamlint.pro10
-rw-r--r--examples/xmlpatterns/README38
-rw-r--r--examples/xmlpatterns/filetree/filetree.cpp372
-rw-r--r--examples/xmlpatterns/filetree/filetree.h103
-rw-r--r--examples/xmlpatterns/filetree/filetree.pro13
-rw-r--r--examples/xmlpatterns/filetree/forms/mainwindow.ui200
-rw-r--r--examples/xmlpatterns/filetree/main.cpp54
-rw-r--r--examples/xmlpatterns/filetree/mainwindow.cpp166
-rw-r--r--examples/xmlpatterns/filetree/mainwindow.h73
-rw-r--r--examples/xmlpatterns/filetree/queries.qrc7
-rw-r--r--examples/xmlpatterns/filetree/queries/listCPPFiles.xq19
-rw-r--r--examples/xmlpatterns/filetree/queries/wholeTree.xq1
-rw-r--r--examples/xmlpatterns/qobjectxmlmodel/forms/mainwindow.ui196
-rw-r--r--examples/xmlpatterns/qobjectxmlmodel/main.cpp53
-rw-r--r--examples/xmlpatterns/qobjectxmlmodel/mainwindow.cpp135
-rw-r--r--examples/xmlpatterns/qobjectxmlmodel/mainwindow.h64
-rw-r--r--examples/xmlpatterns/qobjectxmlmodel/qobjectxmlmodel.cpp459
-rw-r--r--examples/xmlpatterns/qobjectxmlmodel/qobjectxmlmodel.h139
-rw-r--r--examples/xmlpatterns/qobjectxmlmodel/qobjectxmlmodel.pro13
-rw-r--r--examples/xmlpatterns/qobjectxmlmodel/queries.qrc7
-rw-r--r--examples/xmlpatterns/qobjectxmlmodel/queries/statisticsInHTML.xq58
-rw-r--r--examples/xmlpatterns/qobjectxmlmodel/queries/wholeTree.xq3
-rw-r--r--examples/xmlpatterns/recipes/files/allRecipes.xq4
-rw-r--r--examples/xmlpatterns/recipes/files/cookbook.xml62
-rw-r--r--examples/xmlpatterns/recipes/files/liquidIngredientsInSoup.xq5
-rw-r--r--examples/xmlpatterns/recipes/files/mushroomSoup.xq5
-rw-r--r--examples/xmlpatterns/recipes/files/preparationLessThan30.xq9
-rw-r--r--examples/xmlpatterns/recipes/files/preparationTimes.xq5
-rw-r--r--examples/xmlpatterns/recipes/forms/querywidget.ui151
-rw-r--r--examples/xmlpatterns/recipes/main.cpp54
-rw-r--r--examples/xmlpatterns/recipes/querymainwindow.cpp124
-rw-r--r--examples/xmlpatterns/recipes/querymainwindow.h72
-rw-r--r--examples/xmlpatterns/recipes/recipes.pro11
-rw-r--r--examples/xmlpatterns/recipes/recipes.qrc11
-rw-r--r--examples/xmlpatterns/shared/xmlsyntaxhighlighter.cpp106
-rw-r--r--examples/xmlpatterns/shared/xmlsyntaxhighlighter.h72
-rw-r--r--examples/xmlpatterns/trafficinfo/main.cpp54
-rw-r--r--examples/xmlpatterns/trafficinfo/mainwindow.cpp181
-rw-r--r--examples/xmlpatterns/trafficinfo/mainwindow.h77
-rw-r--r--examples/xmlpatterns/trafficinfo/station_example.wml31
-rw-r--r--examples/xmlpatterns/trafficinfo/stationdialog.cpp164
-rw-r--r--examples/xmlpatterns/trafficinfo/stationdialog.h70
-rw-r--r--examples/xmlpatterns/trafficinfo/stationdialog.ui104
-rw-r--r--examples/xmlpatterns/trafficinfo/stationquery.cpp94
-rw-r--r--examples/xmlpatterns/trafficinfo/stationquery.h74
-rw-r--r--examples/xmlpatterns/trafficinfo/time_example.wml56
-rw-r--r--examples/xmlpatterns/trafficinfo/timequery.cpp116
-rw-r--r--examples/xmlpatterns/trafficinfo/timequery.h74
-rw-r--r--examples/xmlpatterns/trafficinfo/trafficinfo.pro9
-rw-r--r--examples/xmlpatterns/xmlpatterns.pro14
-rw-r--r--examples/xmlpatterns/xquery/globalVariables/globalVariables.pro9
-rw-r--r--examples/xmlpatterns/xquery/globalVariables/globals.cpp67
-rw-r--r--examples/xmlpatterns/xquery/globalVariables/globals.gccxml33
-rw-r--r--examples/xmlpatterns/xquery/globalVariables/globals.html40
-rw-r--r--examples/xmlpatterns/xquery/globalVariables/reportGlobals.xq110
-rw-r--r--examples/xmlpatterns/xquery/xquery.pro8
-rw-r--r--lib/README1
-rw-r--r--lib/fonts/DejaVuSans-Bold.ttfbin0 -> 466696 bytes-rw-r--r--lib/fonts/DejaVuSans-BoldOblique.ttfbin0 -> 441736 bytes-rw-r--r--lib/fonts/DejaVuSans-Oblique.ttfbin0 -> 434576 bytes-rw-r--r--lib/fonts/DejaVuSans.ttfbin0 -> 493564 bytes-rw-r--r--lib/fonts/DejaVuSansMono-Bold.ttfbin0 -> 229460 bytes-rw-r--r--lib/fonts/DejaVuSansMono-BoldOblique.ttfbin0 -> 177780 bytes-rw-r--r--lib/fonts/DejaVuSansMono-Oblique.ttfbin0 -> 184896 bytes-rw-r--r--lib/fonts/DejaVuSansMono.ttfbin0 -> 237788 bytes-rw-r--r--lib/fonts/DejaVuSerif-Bold.ttfbin0 -> 201516 bytes-rw-r--r--lib/fonts/DejaVuSerif-BoldOblique.ttfbin0 -> 180948 bytes-rw-r--r--lib/fonts/DejaVuSerif-Oblique.ttfbin0 -> 179872 bytes-rw-r--r--lib/fonts/DejaVuSerif.ttfbin0 -> 210416 bytes-rw-r--r--lib/fonts/README21
-rw-r--r--lib/fonts/UTBI____.pfa1172
-rw-r--r--lib/fonts/UTB_____.pfa1134
-rw-r--r--lib/fonts/UTI_____.pfa1165
-rw-r--r--lib/fonts/UTRG____.pfa1126
-rw-r--r--lib/fonts/Vera.ttfbin0 -> 65932 bytes-rw-r--r--lib/fonts/VeraBI.ttfbin0 -> 63208 bytes-rw-r--r--lib/fonts/VeraBd.ttfbin0 -> 58716 bytes-rw-r--r--lib/fonts/VeraIt.ttfbin0 -> 63684 bytes-rw-r--r--lib/fonts/VeraMoBI.ttfbin0 -> 55032 bytes-rw-r--r--lib/fonts/VeraMoBd.ttfbin0 -> 49052 bytes-rw-r--r--lib/fonts/VeraMoIt.ttfbin0 -> 54508 bytes-rw-r--r--lib/fonts/VeraMono.ttfbin0 -> 49224 bytes-rw-r--r--lib/fonts/VeraSe.ttfbin0 -> 60280 bytes-rw-r--r--lib/fonts/VeraSeBd.ttfbin0 -> 58736 bytes-rw-r--r--lib/fonts/c0419bt_.pfbbin0 -> 40766 bytes-rw-r--r--lib/fonts/c0582bt_.pfbbin0 -> 39511 bytes-rw-r--r--lib/fonts/c0583bt_.pfbbin0 -> 40008 bytes-rw-r--r--lib/fonts/c0611bt_.pfbbin0 -> 39871 bytes-rw-r--r--lib/fonts/c0632bt_.pfbbin0 -> 33799 bytes-rw-r--r--lib/fonts/c0633bt_.pfbbin0 -> 35229 bytes-rw-r--r--lib/fonts/c0648bt_.pfbbin0 -> 34869 bytes-rw-r--r--lib/fonts/c0649bt_.pfbbin0 -> 35118 bytes-rw-r--r--lib/fonts/cour.pfa1954
-rw-r--r--lib/fonts/courb.pfa1966
-rw-r--r--lib/fonts/courbi.pfa1940
-rw-r--r--lib/fonts/couri.pfa1893
-rw-r--r--lib/fonts/cursor.pfa954
-rw-r--r--lib/fonts/fixed_120_50.qpfbin0 -> 3109 bytes-rw-r--r--lib/fonts/fixed_70_50.qpfbin0 -> 2567 bytes-rw-r--r--lib/fonts/helvetica_100_50.qpfbin0 -> 3046 bytes-rw-r--r--lib/fonts/helvetica_100_50i.qpfbin0 -> 3052 bytes-rw-r--r--lib/fonts/helvetica_100_75.qpfbin0 -> 3040 bytes-rw-r--r--lib/fonts/helvetica_100_75i.qpfbin0 -> 3081 bytes-rw-r--r--lib/fonts/helvetica_120_50.qpfbin0 -> 3301 bytes-rw-r--r--lib/fonts/helvetica_120_50i.qpfbin0 -> 3560 bytes-rw-r--r--lib/fonts/helvetica_120_75.qpfbin0 -> 3326 bytes-rw-r--r--lib/fonts/helvetica_120_75i.qpfbin0 -> 3759 bytes-rw-r--r--lib/fonts/helvetica_140_50.qpfbin0 -> 3860 bytes-rw-r--r--lib/fonts/helvetica_140_50i.qpfbin0 -> 4208 bytes-rw-r--r--lib/fonts/helvetica_140_75.qpfbin0 -> 4035 bytes-rw-r--r--lib/fonts/helvetica_140_75i.qpfbin0 -> 4498 bytes-rw-r--r--lib/fonts/helvetica_180_50.qpfbin0 -> 5179 bytes-rw-r--r--lib/fonts/helvetica_180_50i.qpfbin0 -> 5778 bytes-rw-r--r--lib/fonts/helvetica_180_75.qpfbin0 -> 5712 bytes-rw-r--r--lib/fonts/helvetica_180_75i.qpfbin0 -> 5977 bytes-rw-r--r--lib/fonts/helvetica_240_50.qpfbin0 -> 7691 bytes-rw-r--r--lib/fonts/helvetica_240_50i.qpfbin0 -> 8333 bytes-rw-r--r--lib/fonts/helvetica_240_75.qpfbin0 -> 7912 bytes-rw-r--r--lib/fonts/helvetica_240_75i.qpfbin0 -> 8588 bytes-rw-r--r--lib/fonts/helvetica_80_50.qpfbin0 -> 2735 bytes-rw-r--r--lib/fonts/helvetica_80_50i.qpfbin0 -> 2742 bytes-rw-r--r--lib/fonts/helvetica_80_75.qpfbin0 -> 2745 bytes-rw-r--r--lib/fonts/helvetica_80_75i.qpfbin0 -> 2750 bytes-rw-r--r--lib/fonts/japanese_230_50.qpfbin0 -> 263331 bytes-rw-r--r--lib/fonts/l047013t.pfa1346
-rw-r--r--lib/fonts/l047016t.pfa1356
-rw-r--r--lib/fonts/l047033t.pfa1353
-rw-r--r--lib/fonts/l047036t.pfa1361
-rw-r--r--lib/fonts/l048013t.pfa1233
-rw-r--r--lib/fonts/l048016t.pfa1269
-rw-r--r--lib/fonts/l048033t.pfa1267
-rw-r--r--lib/fonts/l048036t.pfa1260
-rw-r--r--lib/fonts/l049013t.pfa1598
-rw-r--r--lib/fonts/l049016t.pfa1582
-rw-r--r--lib/fonts/l049033t.pfa1735
-rw-r--r--lib/fonts/l049036t.pfa1613
-rw-r--r--lib/fonts/micro_40_50.qpfbin0 -> 1602 bytes-rw-r--r--lib/fonts/unifont_160_50.qpfbin0 -> 1215089 bytes-rw-r--r--mkspecs/aix-g++-64/qmake.conf86
-rw-r--r--mkspecs/aix-g++-64/qplatformdefs.h170
-rw-r--r--mkspecs/aix-g++/qmake.conf86
-rw-r--r--mkspecs/aix-g++/qplatformdefs.h170
-rw-r--r--mkspecs/aix-xlc-64/qmake.conf85
-rw-r--r--mkspecs/aix-xlc-64/qplatformdefs.h156
-rw-r--r--mkspecs/aix-xlc/qmake.conf86
-rw-r--r--mkspecs/aix-xlc/qplatformdefs.h166
-rw-r--r--mkspecs/common/g++.conf52
-rw-r--r--mkspecs/common/linux.conf49
-rw-r--r--mkspecs/common/llvm.conf49
-rw-r--r--mkspecs/common/mac-g++.conf76
-rw-r--r--mkspecs/common/mac-llvm.conf76
-rw-r--r--mkspecs/common/mac.conf45
-rw-r--r--mkspecs/common/qws.conf19
-rw-r--r--mkspecs/common/unix.conf11
-rw-r--r--mkspecs/common/wince.conf87
-rw-r--r--mkspecs/cygwin-g++/qmake.conf87
-rw-r--r--mkspecs/cygwin-g++/qplatformdefs.h137
-rw-r--r--mkspecs/darwin-g++/qmake.conf105
-rw-r--r--mkspecs/darwin-g++/qplatformdefs.h126
-rw-r--r--mkspecs/features/assistant.prf9
-rw-r--r--mkspecs/features/build_pass.prf1
-rw-r--r--mkspecs/features/dbusadaptors.prf44
-rw-r--r--mkspecs/features/dbusinterfaces.prf45
-rw-r--r--mkspecs/features/debug.prf8
-rw-r--r--mkspecs/features/debug_and_release.prf1
-rw-r--r--mkspecs/features/default_post.prf10
-rw-r--r--mkspecs/features/default_pre.prf2
-rw-r--r--mkspecs/features/designer.prf6
-rw-r--r--mkspecs/features/dll.prf2
-rw-r--r--mkspecs/features/exclusive_builds.prf100
-rw-r--r--mkspecs/features/help.prf4
-rw-r--r--mkspecs/features/incredibuild_xge.prf11
-rw-r--r--mkspecs/features/lex.prf24
-rw-r--r--mkspecs/features/link_pkgconfig.prf6
-rw-r--r--mkspecs/features/mac/default_post.prf2
-rw-r--r--mkspecs/features/mac/default_pre.prf3
-rw-r--r--mkspecs/features/mac/dwarf2.prf6
-rw-r--r--mkspecs/features/mac/objective_c.prf24
-rw-r--r--mkspecs/features/mac/ppc.prf7
-rw-r--r--mkspecs/features/mac/ppc64.prf7
-rw-r--r--mkspecs/features/mac/rez.prf16
-rw-r--r--mkspecs/features/mac/sdk.prf8
-rw-r--r--mkspecs/features/mac/x86.prf7
-rw-r--r--mkspecs/features/mac/x86_64.prf7
-rw-r--r--mkspecs/features/moc.prf86
-rw-r--r--mkspecs/features/no_debug_info.prf5
-rw-r--r--mkspecs/features/qdbus.prf2
-rw-r--r--mkspecs/features/qt.prf183
-rw-r--r--mkspecs/features/qt_config.prf14
-rw-r--r--mkspecs/features/qt_functions.prf66
-rw-r--r--mkspecs/features/qtestlib.prf4
-rw-r--r--mkspecs/features/qtopia.prf1
-rw-r--r--mkspecs/features/qtopiainc.prf1
-rw-r--r--mkspecs/features/qtopialib.prf2
-rw-r--r--mkspecs/features/qttest_p4.prf101
-rw-r--r--mkspecs/features/release.prf7
-rw-r--r--mkspecs/features/resources.prf31
-rw-r--r--mkspecs/features/shared.prf7
-rw-r--r--mkspecs/features/silent.prf6
-rw-r--r--mkspecs/features/static.prf9
-rw-r--r--mkspecs/features/static_and_shared.prf3
-rw-r--r--mkspecs/features/staticlib.prf1
-rw-r--r--mkspecs/features/uic.prf111
-rw-r--r--mkspecs/features/uitools.prf12
-rw-r--r--mkspecs/features/unix/bsymbolic_functions.prf6
-rw-r--r--mkspecs/features/unix/dylib.prf1
-rw-r--r--mkspecs/features/unix/hide_symbols.prf4
-rw-r--r--mkspecs/features/unix/largefile.prf2
-rw-r--r--mkspecs/features/unix/opengl.prf4
-rw-r--r--mkspecs/features/unix/separate_debug_info.prf17
-rw-r--r--mkspecs/features/unix/thread.prf14
-rw-r--r--mkspecs/features/unix/x11.prf1
-rw-r--r--mkspecs/features/unix/x11inc.prf3
-rw-r--r--mkspecs/features/unix/x11lib.prf2
-rw-r--r--mkspecs/features/unix/x11sm.prf2
-rw-r--r--mkspecs/features/use_c_linker.prf5
-rw-r--r--mkspecs/features/warn_off.prf4
-rw-r--r--mkspecs/features/warn_on.prf5
-rw-r--r--mkspecs/features/win32/console.prf2
-rw-r--r--mkspecs/features/win32/default_post.prf11
-rw-r--r--mkspecs/features/win32/default_pre.prf3
-rw-r--r--mkspecs/features/win32/dumpcpp.prf11
-rw-r--r--mkspecs/features/win32/embed_manifest_dll.prf11
-rw-r--r--mkspecs/features/win32/embed_manifest_exe.prf11
-rw-r--r--mkspecs/features/win32/exceptions.prf5
-rw-r--r--mkspecs/features/win32/exceptions_off.prf5
-rw-r--r--mkspecs/features/win32/opengl.prf3
-rw-r--r--mkspecs/features/win32/qaxcontainer.prf34
-rw-r--r--mkspecs/features/win32/qaxserver.prf64
-rw-r--r--mkspecs/features/win32/qt_dll.prf1
-rw-r--r--mkspecs/features/win32/rtti.prf3
-rw-r--r--mkspecs/features/win32/rtti_off.prf3
-rw-r--r--mkspecs/features/win32/stl.prf3
-rw-r--r--mkspecs/features/win32/stl_off.prf3
-rw-r--r--mkspecs/features/win32/thread.prf30
-rw-r--r--mkspecs/features/win32/thread_off.prf2
-rw-r--r--mkspecs/features/win32/windows.prf15
-rw-r--r--mkspecs/features/yacc.prf42
-rw-r--r--mkspecs/freebsd-g++/qmake.conf52
-rw-r--r--mkspecs/freebsd-g++/qplatformdefs.h146
-rw-r--r--mkspecs/freebsd-g++34/qmake.conf86
-rw-r--r--mkspecs/freebsd-g++34/qplatformdefs.h42
-rw-r--r--mkspecs/freebsd-g++40/qmake.conf86
-rw-r--r--mkspecs/freebsd-g++40/qplatformdefs.h42
-rw-r--r--mkspecs/freebsd-icc/qmake.conf109
-rw-r--r--mkspecs/freebsd-icc/qplatformdefs.h42
-rw-r--r--mkspecs/hpux-acc-64/qmake.conf130
-rw-r--r--mkspecs/hpux-acc-64/qplatformdefs.h149
-rw-r--r--mkspecs/hpux-acc-o64/qmake.conf128
-rw-r--r--mkspecs/hpux-acc-o64/qplatformdefs.h150
-rw-r--r--mkspecs/hpux-acc/qmake.conf109
-rw-r--r--mkspecs/hpux-acc/qplatformdefs.h158
-rw-r--r--mkspecs/hpux-g++-64/qmake.conf92
-rw-r--r--mkspecs/hpux-g++-64/qplatformdefs.h149
-rw-r--r--mkspecs/hpux-g++/qmake.conf92
-rw-r--r--mkspecs/hpux-g++/qplatformdefs.h157
-rw-r--r--mkspecs/hpuxi-acc-32/qmake.conf84
-rw-r--r--mkspecs/hpuxi-acc-32/qplatformdefs.h149
-rw-r--r--mkspecs/hpuxi-acc-64/qmake.conf127
-rw-r--r--mkspecs/hpuxi-acc-64/qplatformdefs.h149
-rw-r--r--mkspecs/hpuxi-g++-64/qmake.conf95
-rw-r--r--mkspecs/hpuxi-g++-64/qplatformdefs.h148
-rw-r--r--mkspecs/hurd-g++/qmake.conf89
-rw-r--r--mkspecs/hurd-g++/qplatformdefs.h137
-rw-r--r--mkspecs/irix-cc-64/qmake.conf119
-rw-r--r--mkspecs/irix-cc-64/qplatformdefs.h158
-rw-r--r--mkspecs/irix-cc/qmake.conf119
-rw-r--r--mkspecs/irix-cc/qplatformdefs.h158
-rw-r--r--mkspecs/irix-g++-64/qmake.conf92
-rw-r--r--mkspecs/irix-g++-64/qplatformdefs.h42
-rw-r--r--mkspecs/irix-g++/qmake.conf92
-rw-r--r--mkspecs/irix-g++/qplatformdefs.h163
-rw-r--r--mkspecs/linux-cxx/qmake.conf81
-rw-r--r--mkspecs/linux-cxx/qplatformdefs.h164
-rw-r--r--mkspecs/linux-ecc-64/qmake.conf88
-rw-r--r--mkspecs/linux-ecc-64/qplatformdefs.h164
-rw-r--r--mkspecs/linux-g++-32/qmake.conf16
-rw-r--r--mkspecs/linux-g++-32/qplatformdefs.h42
-rw-r--r--mkspecs/linux-g++-64/qmake.conf23
-rw-r--r--mkspecs/linux-g++-64/qplatformdefs.h42
-rw-r--r--mkspecs/linux-g++/qmake.conf13
-rw-r--r--mkspecs/linux-g++/qplatformdefs.h164
-rw-r--r--mkspecs/linux-icc-32/qmake.conf10
-rw-r--r--mkspecs/linux-icc-32/qplatformdefs.h42
-rw-r--r--mkspecs/linux-icc-64/qmake.conf16
-rw-r--r--mkspecs/linux-icc-64/qplatformdefs.h42
-rw-r--r--mkspecs/linux-icc/qmake.conf109
-rw-r--r--mkspecs/linux-icc/qplatformdefs.h42
-rw-r--r--mkspecs/linux-kcc/qmake.conf97
-rw-r--r--mkspecs/linux-kcc/qplatformdefs.h167
-rw-r--r--mkspecs/linux-llvm/qmake.conf13
-rw-r--r--mkspecs/linux-llvm/qplatformdefs.h164
-rw-r--r--mkspecs/linux-lsb-g++/qmake.conf96
-rw-r--r--mkspecs/linux-lsb-g++/qplatformdefs.h173
-rw-r--r--mkspecs/linux-pgcc/qmake.conf86
-rw-r--r--mkspecs/linux-pgcc/qplatformdefs.h164
-rw-r--r--mkspecs/lynxos-g++/qmake.conf91
-rw-r--r--mkspecs/lynxos-g++/qplatformdefs.h134
-rw-r--r--mkspecs/macx-g++/Info.plist.app20
-rw-r--r--mkspecs/macx-g++/Info.plist.lib18
-rw-r--r--mkspecs/macx-g++/qmake.conf20
-rw-r--r--mkspecs/macx-g++/qplatformdefs.h132
-rw-r--r--mkspecs/macx-g++42/Info.plist.app20
-rw-r--r--mkspecs/macx-g++42/Info.plist.lib18
-rw-r--r--mkspecs/macx-g++42/qmake.conf21
-rw-r--r--mkspecs/macx-g++42/qplatformdefs.h132
-rw-r--r--mkspecs/macx-icc/qmake.conf81
-rw-r--r--mkspecs/macx-icc/qplatformdefs.h43
-rw-r--r--mkspecs/macx-llvm/Info.plist.app20
-rw-r--r--mkspecs/macx-llvm/Info.plist.lib18
-rw-r--r--mkspecs/macx-llvm/qmake.conf19
-rw-r--r--mkspecs/macx-llvm/qplatformdefs.h132
-rwxr-xr-xmkspecs/macx-pbuilder/Info.plist.app20
-rwxr-xr-xmkspecs/macx-pbuilder/qmake.conf7
-rw-r--r--mkspecs/macx-pbuilder/qplatformdefs.h132
-rwxr-xr-xmkspecs/macx-xcode/Info.plist.app20
-rw-r--r--mkspecs/macx-xcode/Info.plist.lib18
-rwxr-xr-xmkspecs/macx-xcode/qmake.conf26
-rw-r--r--mkspecs/macx-xcode/qplatformdefs.h132
-rw-r--r--mkspecs/macx-xlc/qmake.conf98
-rw-r--r--mkspecs/macx-xlc/qplatformdefs.h128
-rw-r--r--mkspecs/netbsd-g++/qmake.conf87
-rw-r--r--mkspecs/netbsd-g++/qplatformdefs.h135
-rw-r--r--mkspecs/openbsd-g++/qmake.conf88
-rw-r--r--mkspecs/openbsd-g++/qplatformdefs.h151
-rw-r--r--mkspecs/qws/freebsd-generic-g++/qmake.conf84
-rw-r--r--mkspecs/qws/freebsd-generic-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-arm-g++/qmake.conf20
-rw-r--r--mkspecs/qws/linux-arm-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-armv6-g++/qmake.conf22
-rw-r--r--mkspecs/qws/linux-armv6-g++/qplatformdefs.h1
-rw-r--r--mkspecs/qws/linux-avr32-g++/qmake.conf20
-rw-r--r--mkspecs/qws/linux-avr32-g++/qplatformdefs.h1
-rw-r--r--mkspecs/qws/linux-cellon-g++/qmake.conf29
-rw-r--r--mkspecs/qws/linux-cellon-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-dm7000-g++/qmake.conf26
-rw-r--r--mkspecs/qws/linux-dm7000-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-dm800-g++/qmake.conf24
-rw-r--r--mkspecs/qws/linux-dm800-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-generic-g++-32/qmake.conf14
-rw-r--r--mkspecs/qws/linux-generic-g++-32/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-generic-g++/qmake.conf9
-rw-r--r--mkspecs/qws/linux-generic-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-ipaq-g++/qmake.conf21
-rw-r--r--mkspecs/qws/linux-ipaq-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-lsb-g++/qmake.conf22
-rw-r--r--mkspecs/qws/linux-lsb-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-mips-g++/qmake.conf22
-rw-r--r--mkspecs/qws/linux-mips-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-ppc-g++/qmake.conf9
-rw-r--r--mkspecs/qws/linux-ppc-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-sh-g++/qmake.conf20
-rw-r--r--mkspecs/qws/linux-sh-g++/qplatformdefs.h1
-rw-r--r--mkspecs/qws/linux-sh4al-g++/qmake.conf23
-rw-r--r--mkspecs/qws/linux-sh4al-g++/qplatformdefs.h1
-rw-r--r--mkspecs/qws/linux-sharp-g++/qmake.conf23
-rw-r--r--mkspecs/qws/linux-sharp-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-x86-g++/qmake.conf9
-rw-r--r--mkspecs/qws/linux-x86-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-x86_64-g++/qmake.conf14
-rw-r--r--mkspecs/qws/linux-x86_64-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/linux-zylonite-g++/qmake.conf25
-rw-r--r--mkspecs/qws/linux-zylonite-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/macx-generic-g++/qmake.conf87
-rw-r--r--mkspecs/qws/macx-generic-g++/qplatformdefs.h42
-rw-r--r--mkspecs/qws/solaris-generic-g++/qmake.conf88
-rw-r--r--mkspecs/qws/solaris-generic-g++/qplatformdefs.h42
-rw-r--r--mkspecs/sco-cc/qmake.conf82
-rw-r--r--mkspecs/sco-cc/qplatformdefs.h129
-rw-r--r--mkspecs/sco-g++/qmake.conf83
-rw-r--r--mkspecs/sco-g++/qplatformdefs.h133
-rw-r--r--mkspecs/solaris-cc-64/qmake.conf107
-rw-r--r--mkspecs/solaris-cc-64/qplatformdefs.h161
-rw-r--r--mkspecs/solaris-cc/qmake.conf90
-rw-r--r--mkspecs/solaris-cc/qplatformdefs.h183
-rw-r--r--mkspecs/solaris-g++-64/qmake.conf111
-rw-r--r--mkspecs/solaris-g++-64/qplatformdefs.h170
-rw-r--r--mkspecs/solaris-g++/qmake.conf94
-rw-r--r--mkspecs/solaris-g++/qplatformdefs.h192
-rw-r--r--mkspecs/tru64-cxx/qmake.conf83
-rw-r--r--mkspecs/tru64-cxx/qplatformdefs.h146
-rw-r--r--mkspecs/tru64-g++/qmake.conf85
-rw-r--r--mkspecs/tru64-g++/qplatformdefs.h146
-rw-r--r--mkspecs/unixware-cc/qmake.conf88
-rw-r--r--mkspecs/unixware-cc/qplatformdefs.h129
-rw-r--r--mkspecs/unixware-g++/qmake.conf87
-rw-r--r--mkspecs/unixware-g++/qplatformdefs.h129
-rw-r--r--mkspecs/win32-borland/qmake.conf90
-rw-r--r--mkspecs/win32-borland/qplatformdefs.h215
-rw-r--r--mkspecs/win32-g++/qmake.conf106
-rw-r--r--mkspecs/win32-g++/qplatformdefs.h164
-rw-r--r--mkspecs/win32-icc/qmake.conf89
-rw-r--r--mkspecs/win32-icc/qplatformdefs.h151
-rw-r--r--mkspecs/win32-msvc.net/qmake.conf89
-rw-r--r--mkspecs/win32-msvc.net/qplatformdefs.h145
-rw-r--r--mkspecs/win32-msvc/features/incremental.prf2
-rw-r--r--mkspecs/win32-msvc/features/incremental_off.prf2
-rw-r--r--mkspecs/win32-msvc/qmake.conf86
-rw-r--r--mkspecs/win32-msvc/qplatformdefs.h148
-rw-r--r--mkspecs/win32-msvc2002/qmake.conf88
-rw-r--r--mkspecs/win32-msvc2002/qplatformdefs.h42
-rw-r--r--mkspecs/win32-msvc2003/qmake.conf88
-rw-r--r--mkspecs/win32-msvc2003/qplatformdefs.h42
-rw-r--r--mkspecs/win32-msvc2005/qmake.conf88
-rw-r--r--mkspecs/win32-msvc2005/qplatformdefs.h147
-rw-r--r--mkspecs/win32-msvc2008/qmake.conf88
-rw-r--r--mkspecs/win32-msvc2008/qplatformdefs.h42
-rw-r--r--mkspecs/wince50standard-armv4i-msvc2005/default_post.prf7
-rw-r--r--mkspecs/wince50standard-armv4i-msvc2005/qmake.conf23
-rw-r--r--mkspecs/wince50standard-armv4i-msvc2005/qplatformdefs.h131
-rw-r--r--mkspecs/wince50standard-armv4i-msvc2008/default_post.prf1
-rw-r--r--mkspecs/wince50standard-armv4i-msvc2008/qmake.conf3
-rw-r--r--mkspecs/wince50standard-armv4i-msvc2008/qplatformdefs.h43
-rw-r--r--mkspecs/wince50standard-mipsii-msvc2005/default_post.prf7
-rw-r--r--mkspecs/wince50standard-mipsii-msvc2005/qmake.conf24
-rw-r--r--mkspecs/wince50standard-mipsii-msvc2005/qplatformdefs.h131
-rw-r--r--mkspecs/wince50standard-mipsii-msvc2008/default_post.prf1
-rw-r--r--mkspecs/wince50standard-mipsii-msvc2008/qmake.conf3
-rw-r--r--mkspecs/wince50standard-mipsii-msvc2008/qplatformdefs.h43
-rw-r--r--mkspecs/wince50standard-mipsiv-msvc2005/qmake.conf24
-rw-r--r--mkspecs/wince50standard-mipsiv-msvc2005/qplatformdefs.h131
-rw-r--r--mkspecs/wince50standard-mipsiv-msvc2008/qmake.conf3
-rw-r--r--mkspecs/wince50standard-mipsiv-msvc2008/qplatformdefs.h43
-rw-r--r--mkspecs/wince50standard-sh4-msvc2005/qmake.conf23
-rw-r--r--mkspecs/wince50standard-sh4-msvc2005/qplatformdefs.h131
-rw-r--r--mkspecs/wince50standard-sh4-msvc2008/qmake.conf3
-rw-r--r--mkspecs/wince50standard-sh4-msvc2008/qplatformdefs.h43
-rw-r--r--mkspecs/wince50standard-x86-msvc2005/default_post.prf6
-rw-r--r--mkspecs/wince50standard-x86-msvc2005/qmake.conf21
-rw-r--r--mkspecs/wince50standard-x86-msvc2005/qplatformdefs.h131
-rw-r--r--mkspecs/wince50standard-x86-msvc2008/default_post.prf1
-rw-r--r--mkspecs/wince50standard-x86-msvc2008/qmake.conf3
-rw-r--r--mkspecs/wince50standard-x86-msvc2008/qplatformdefs.h43
-rw-r--r--mkspecs/wince60standard-armv4i-msvc2005/qmake.conf94
-rw-r--r--mkspecs/wince60standard-armv4i-msvc2005/qplatformdefs.h131
-rw-r--r--mkspecs/wincewm50pocket-msvc2005/default_post.prf7
-rw-r--r--mkspecs/wincewm50pocket-msvc2005/qmake.conf21
-rw-r--r--mkspecs/wincewm50pocket-msvc2005/qplatformdefs.h131
-rw-r--r--mkspecs/wincewm50pocket-msvc2008/default_post.prf1
-rw-r--r--mkspecs/wincewm50pocket-msvc2008/qmake.conf3
-rw-r--r--mkspecs/wincewm50pocket-msvc2008/qplatformdefs.h43
-rw-r--r--mkspecs/wincewm50smart-msvc2005/default_post.prf7
-rw-r--r--mkspecs/wincewm50smart-msvc2005/qmake.conf21
-rw-r--r--mkspecs/wincewm50smart-msvc2005/qplatformdefs.h131
-rw-r--r--mkspecs/wincewm50smart-msvc2008/default_post.prf1
-rw-r--r--mkspecs/wincewm50smart-msvc2008/qmake.conf3
-rw-r--r--mkspecs/wincewm50smart-msvc2008/qplatformdefs.h43
-rw-r--r--mkspecs/wincewm60professional-msvc2005/default_post.prf7
-rw-r--r--mkspecs/wincewm60professional-msvc2005/qmake.conf13
-rw-r--r--mkspecs/wincewm60professional-msvc2005/qplatformdefs.h131
-rw-r--r--mkspecs/wincewm60professional-msvc2008/default_post.prf1
-rw-r--r--mkspecs/wincewm60professional-msvc2008/qmake.conf3
-rw-r--r--mkspecs/wincewm60professional-msvc2008/qplatformdefs.h43
-rw-r--r--mkspecs/wincewm60standard-msvc2005/default_post.prf7
-rw-r--r--mkspecs/wincewm60standard-msvc2005/qmake.conf18
-rw-r--r--mkspecs/wincewm60standard-msvc2005/qplatformdefs.h131
-rw-r--r--mkspecs/wincewm60standard-msvc2008/default_post.prf1
-rw-r--r--mkspecs/wincewm60standard-msvc2008/qmake.conf3
-rw-r--r--mkspecs/wincewm60standard-msvc2008/qplatformdefs.h43
-rw-r--r--projects.pro142
-rw-r--r--qmake/CHANGES99
-rw-r--r--qmake/Makefile.unix416
-rw-r--r--qmake/Makefile.win32591
-rw-r--r--qmake/Makefile.win32-g++439
-rw-r--r--qmake/Makefile.win32-g++-sh438
-rw-r--r--qmake/cachekeys.h183
-rw-r--r--qmake/generators/mac/pbuilder_pbx.cpp1860
-rw-r--r--qmake/generators/mac/pbuilder_pbx.h88
-rw-r--r--qmake/generators/makefile.cpp3023
-rw-r--r--qmake/generators/makefile.h267
-rw-r--r--qmake/generators/makefiledeps.cpp963
-rw-r--r--qmake/generators/makefiledeps.h132
-rw-r--r--qmake/generators/metamakefile.cpp490
-rw-r--r--qmake/generators/metamakefile.h77
-rw-r--r--qmake/generators/projectgenerator.cpp510
-rw-r--r--qmake/generators/projectgenerator.h71
-rw-r--r--qmake/generators/unix/unixmake.cpp865
-rw-r--r--qmake/generators/unix/unixmake.h88
-rw-r--r--qmake/generators/unix/unixmake2.cpp1477
-rw-r--r--qmake/generators/win32/borland_bmake.cpp177
-rw-r--r--qmake/generators/win32/borland_bmake.h68
-rw-r--r--qmake/generators/win32/mingw_make.cpp460
-rw-r--r--qmake/generators/win32/mingw_make.h87
-rw-r--r--qmake/generators/win32/msvc_dsp.cpp1207
-rw-r--r--qmake/generators/win32/msvc_dsp.h122
-rw-r--r--qmake/generators/win32/msvc_nmake.cpp322
-rw-r--r--qmake/generators/win32/msvc_nmake.h76
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp2636
-rw-r--r--qmake/generators/win32/msvc_objectmodel.h1078
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp1785
-rw-r--r--qmake/generators/win32/msvc_vcproj.h152
-rw-r--r--qmake/generators/win32/winmakefile.cpp821
-rw-r--r--qmake/generators/win32/winmakefile.h96
-rw-r--r--qmake/generators/xmloutput.cpp340
-rw-r--r--qmake/generators/xmloutput.h210
-rw-r--r--qmake/main.cpp196
-rw-r--r--qmake/meta.cpp206
-rw-r--r--qmake/meta.h103
-rw-r--r--qmake/option.cpp776
-rw-r--r--qmake/option.h214
-rw-r--r--qmake/project.cpp3201
-rw-r--r--qmake/project.h208
-rw-r--r--qmake/property.cpp234
-rw-r--r--qmake/property.h71
-rw-r--r--qmake/qmake.pri131
-rw-r--r--qmake/qmake.pro25
-rw-r--r--qmake/qmake_pch.h71
-rw-r--r--src/3rdparty/.gitattributes19
-rw-r--r--src/3rdparty/Makefile9
-rw-r--r--src/3rdparty/README22
-rw-r--r--src/3rdparty/clucene/APACHE.license201
-rw-r--r--src/3rdparty/clucene/AUTHORS22
-rw-r--r--src/3rdparty/clucene/COPYING30
-rw-r--r--src/3rdparty/clucene/ChangeLog0
-rw-r--r--src/3rdparty/clucene/LGPL.license475
-rw-r--r--src/3rdparty/clucene/README92
-rw-r--r--src/3rdparty/clucene/src/CLucene.h38
-rw-r--r--src/3rdparty/clucene/src/CLucene/CLBackwards.h87
-rw-r--r--src/3rdparty/clucene/src/CLucene/CLConfig.h304
-rw-r--r--src/3rdparty/clucene/src/CLucene/CLMonolithic.cpp115
-rw-r--r--src/3rdparty/clucene/src/CLucene/LuceneThreads.h72
-rw-r--r--src/3rdparty/clucene/src/CLucene/StdHeader.cpp132
-rw-r--r--src/3rdparty/clucene/src/CLucene/StdHeader.h491
-rw-r--r--src/3rdparty/clucene/src/CLucene/analysis/AnalysisHeader.cpp200
-rw-r--r--src/3rdparty/clucene/src/CLucene/analysis/AnalysisHeader.h234
-rw-r--r--src/3rdparty/clucene/src/CLucene/analysis/Analyzers.cpp389
-rw-r--r--src/3rdparty/clucene/src/CLucene/analysis/Analyzers.h309
-rw-r--r--src/3rdparty/clucene/src/CLucene/analysis/standard/StandardAnalyzer.cpp46
-rw-r--r--src/3rdparty/clucene/src/CLucene/analysis/standard/StandardAnalyzer.h47
-rw-r--r--src/3rdparty/clucene/src/CLucene/analysis/standard/StandardFilter.cpp58
-rw-r--r--src/3rdparty/clucene/src/CLucene/analysis/standard/StandardFilter.h37
-rw-r--r--src/3rdparty/clucene/src/CLucene/analysis/standard/StandardTokenizer.cpp446
-rw-r--r--src/3rdparty/clucene/src/CLucene/analysis/standard/StandardTokenizer.h88
-rw-r--r--src/3rdparty/clucene/src/CLucene/analysis/standard/StandardTokenizerConstants.h30
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/CompilerAcc.h166
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/CompilerBcb.h68
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/CompilerGcc.h175
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/CompilerMsvc.h134
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/PlatformMac.h19
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/PlatformUnix.h12
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/PlatformWin32.h11
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/compiler.h259
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/define_std.h110
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/gunichartables.cpp386
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/gunichartables.h11264
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/repl_lltot.cpp47
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/repl_tchar.h106
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/repl_tcscasecmp.cpp21
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/repl_tcslwr.cpp15
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/repl_tcstod.cpp23
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/repl_tcstoll.cpp46
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/repl_tprintf.cpp149
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/repl_wchar.h121
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/threadCSection.h71
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/threadPthread.h59
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/threads.cpp162
-rw-r--r--src/3rdparty/clucene/src/CLucene/config/utf8.cpp237
-rw-r--r--src/3rdparty/clucene/src/CLucene/debug/condition.cpp80
-rw-r--r--src/3rdparty/clucene/src/CLucene/debug/condition.h64
-rw-r--r--src/3rdparty/clucene/src/CLucene/debug/error.cpp73
-rw-r--r--src/3rdparty/clucene/src/CLucene/debug/error.h74
-rw-r--r--src/3rdparty/clucene/src/CLucene/debug/lucenebase.h75
-rw-r--r--src/3rdparty/clucene/src/CLucene/debug/mem.h130
-rw-r--r--src/3rdparty/clucene/src/CLucene/debug/memtracking.cpp371
-rw-r--r--src/3rdparty/clucene/src/CLucene/document/DateField.cpp60
-rw-r--r--src/3rdparty/clucene/src/CLucene/document/DateField.h64
-rw-r--r--src/3rdparty/clucene/src/CLucene/document/Document.cpp237
-rw-r--r--src/3rdparty/clucene/src/CLucene/document/Document.h158
-rw-r--r--src/3rdparty/clucene/src/CLucene/document/Field.cpp315
-rw-r--r--src/3rdparty/clucene/src/CLucene/document/Field.h261
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/CompoundFile.cpp380
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/CompoundFile.h219
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/DocumentWriter.cpp571
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/DocumentWriter.h107
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/FieldInfo.h16
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/FieldInfos.cpp236
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/FieldInfos.h171
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/FieldsReader.cpp231
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/FieldsReader.h60
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/FieldsWriter.cpp186
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/FieldsWriter.h49
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/IndexModifier.cpp254
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/IndexModifier.h316
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/IndexReader.cpp668
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/IndexReader.h485
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/IndexWriter.cpp697
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/IndexWriter.h425
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/MultiReader.cpp722
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/MultiReader.h202
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentHeader.h314
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentInfos.cpp259
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentInfos.h128
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentMergeInfo.cpp104
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentMergeInfo.h47
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentMergeQueue.cpp74
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentMergeQueue.h38
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentMerger.cpp723
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentMerger.h169
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentReader.cpp816
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentTermDocs.cpp212
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentTermEnum.cpp389
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentTermEnum.h138
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentTermPositions.cpp101
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/SegmentTermVector.cpp188
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/Term.cpp179
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/Term.h146
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/TermInfo.cpp53
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/TermInfo.h61
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/TermInfosReader.cpp443
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/TermInfosReader.h106
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/TermInfosWriter.cpp185
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/TermInfosWriter.h89
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/TermVector.h418
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/TermVectorReader.cpp393
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/TermVectorWriter.cpp349
-rw-r--r--src/3rdparty/clucene/src/CLucene/index/Terms.h174
-rw-r--r--src/3rdparty/clucene/src/CLucene/queryParser/Lexer.cpp371
-rw-r--r--src/3rdparty/clucene/src/CLucene/queryParser/Lexer.h67
-rw-r--r--src/3rdparty/clucene/src/CLucene/queryParser/MultiFieldQueryParser.cpp204
-rw-r--r--src/3rdparty/clucene/src/CLucene/queryParser/MultiFieldQueryParser.h136
-rw-r--r--src/3rdparty/clucene/src/CLucene/queryParser/QueryParser.cpp509
-rw-r--r--src/3rdparty/clucene/src/CLucene/queryParser/QueryParser.h165
-rw-r--r--src/3rdparty/clucene/src/CLucene/queryParser/QueryParserBase.cpp369
-rw-r--r--src/3rdparty/clucene/src/CLucene/queryParser/QueryParserBase.h204
-rw-r--r--src/3rdparty/clucene/src/CLucene/queryParser/QueryToken.cpp73
-rw-r--r--src/3rdparty/clucene/src/CLucene/queryParser/QueryToken.h76
-rw-r--r--src/3rdparty/clucene/src/CLucene/queryParser/TokenList.cpp79
-rw-r--r--src/3rdparty/clucene/src/CLucene/queryParser/TokenList.h38
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/BooleanClause.h90
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/BooleanQuery.cpp363
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/BooleanQuery.h126
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/BooleanScorer.cpp248
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/BooleanScorer.h99
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/CachingWrapperFilter.cpp86
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/CachingWrapperFilter.h80
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/ChainedFilter.cpp213
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/ChainedFilter.h86
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/Compare.h161
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/ConjunctionScorer.cpp144
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/ConjunctionScorer.h50
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/DateFilter.cpp93
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/DateFilter.h59
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/ExactPhraseScorer.cpp85
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/ExactPhraseScorer.h31
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/Explanation.cpp133
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/Explanation.h66
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FieldCache.cpp55
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FieldCache.h182
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FieldCacheImpl.cpp529
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FieldCacheImpl.h144
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FieldDoc.h70
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FieldDocSortedHitQueue.cpp171
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FieldDocSortedHitQueue.h159
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FieldSortedHitQueue.cpp212
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FieldSortedHitQueue.h216
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/Filter.h46
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FilteredTermEnum.cpp136
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FilteredTermEnum.h61
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FuzzyQuery.cpp357
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/FuzzyQuery.h156
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/HitQueue.cpp107
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/HitQueue.h55
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/Hits.cpp174
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/IndexSearcher.cpp362
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/IndexSearcher.h73
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/MultiSearcher.cpp227
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/MultiSearcher.h95
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/MultiTermQuery.cpp98
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/MultiTermQuery.h62
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/PhrasePositions.cpp116
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/PhrasePositions.h41
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/PhraseQuery.cpp463
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/PhraseQuery.h127
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/PhraseQueue.h36
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/PhraseScorer.cpp225
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/PhraseScorer.h65
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/PrefixQuery.cpp273
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/PrefixQuery.h75
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/QueryFilter.cpp73
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/QueryFilter.h44
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/RangeFilter.cpp150
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/RangeFilter.h51
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/RangeQuery.cpp204
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/RangeQuery.h71
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/Scorer.h80
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/SearchHeader.cpp141
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/SearchHeader.h456
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/Similarity.cpp233
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/Similarity.h268
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/SloppyPhraseScorer.cpp106
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/SloppyPhraseScorer.h34
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/Sort.cpp345
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/Sort.h356
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/TermQuery.cpp213
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/TermQuery.h81
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/TermScorer.cpp120
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/TermScorer.h53
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/WildcardQuery.cpp147
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/WildcardQuery.h69
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/WildcardTermEnum.cpp150
-rw-r--r--src/3rdparty/clucene/src/CLucene/search/WildcardTermEnum.h67
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/Directory.h108
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/FSDirectory.cpp637
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/FSDirectory.h216
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/IndexInput.cpp233
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/IndexInput.h190
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/IndexOutput.cpp163
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/IndexOutput.h152
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/InputStream.h21
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/Lock.cpp27
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/Lock.h106
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/MMapInput.cpp203
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/OutputStream.h23
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/RAMDirectory.cpp446
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/RAMDirectory.h195
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/TransactionalRAMDirectory.cpp212
-rw-r--r--src/3rdparty/clucene/src/CLucene/store/TransactionalRAMDirectory.h76
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/Arrays.h164
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/BitSet.cpp119
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/BitSet.h62
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/Equators.cpp180
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/Equators.h274
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/FastCharStream.cpp107
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/FastCharStream.h55
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/Misc.cpp288
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/Misc.h75
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/PriorityQueue.h177
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/Reader.cpp186
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/Reader.h138
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/StringBuffer.cpp335
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/StringBuffer.h77
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/StringIntern.cpp158
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/StringIntern.h61
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/ThreadLocal.cpp55
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/ThreadLocal.h143
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/VoidList.h175
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/VoidMap.h270
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/bufferedstream.h155
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/dirent.cpp221
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/dirent.h105
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/fileinputstream.cpp98
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/fileinputstream.h38
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/inputstreambuffer.h126
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/jstreamsconfig.h9
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/streambase.h148
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/stringreader.h124
-rw-r--r--src/3rdparty/clucene/src/CLucene/util/subinputstream.h141
-rw-r--r--src/3rdparty/des/des.cpp602
-rw-r--r--src/3rdparty/freetype/ChangeLog3368
-rw-r--r--src/3rdparty/freetype/ChangeLog.202613
-rw-r--r--src/3rdparty/freetype/ChangeLog.219439
-rw-r--r--src/3rdparty/freetype/ChangeLog.222837
-rw-r--r--src/3rdparty/freetype/Jamfile203
-rw-r--r--src/3rdparty/freetype/Jamrules71
-rw-r--r--src/3rdparty/freetype/Makefile34
-rw-r--r--src/3rdparty/freetype/README64
-rw-r--r--src/3rdparty/freetype/README.CVS50
-rw-r--r--src/3rdparty/freetype/autogen.sh61
-rw-r--r--src/3rdparty/freetype/builds/amiga/README110
-rw-r--r--src/3rdparty/freetype/builds/amiga/include/freetype/config/ftconfig.h55
-rw-r--r--src/3rdparty/freetype/builds/amiga/include/freetype/config/ftmodule.h160
-rw-r--r--src/3rdparty/freetype/builds/amiga/makefile284
-rw-r--r--src/3rdparty/freetype/builds/amiga/makefile.os4287
-rw-r--r--src/3rdparty/freetype/builds/amiga/smakefile291
-rw-r--r--src/3rdparty/freetype/builds/amiga/src/base/ftdebug.c279
-rw-r--r--src/3rdparty/freetype/builds/amiga/src/base/ftsystem.c522
-rw-r--r--src/3rdparty/freetype/builds/ansi/ansi-def.mk74
-rw-r--r--src/3rdparty/freetype/builds/ansi/ansi.mk21
-rw-r--r--src/3rdparty/freetype/builds/atari/ATARI.H16
-rw-r--r--src/3rdparty/freetype/builds/atari/FNames.SIC37
-rw-r--r--src/3rdparty/freetype/builds/atari/FREETYPE.PRJ32
-rw-r--r--src/3rdparty/freetype/builds/atari/README.TXT51
-rw-r--r--src/3rdparty/freetype/builds/beos/beos-def.mk76
-rw-r--r--src/3rdparty/freetype/builds/beos/beos.mk19
-rw-r--r--src/3rdparty/freetype/builds/beos/detect.mk41
-rw-r--r--src/3rdparty/freetype/builds/compiler/ansi-cc.mk80
-rw-r--r--src/3rdparty/freetype/builds/compiler/bcc-dev.mk78
-rw-r--r--src/3rdparty/freetype/builds/compiler/bcc.mk78
-rw-r--r--src/3rdparty/freetype/builds/compiler/emx.mk77
-rw-r--r--src/3rdparty/freetype/builds/compiler/gcc-dev.mk95
-rw-r--r--src/3rdparty/freetype/builds/compiler/gcc.mk77
-rw-r--r--src/3rdparty/freetype/builds/compiler/intelc.mk85
-rw-r--r--src/3rdparty/freetype/builds/compiler/unix-lcc.mk83
-rw-r--r--src/3rdparty/freetype/builds/compiler/visualage.mk76
-rw-r--r--src/3rdparty/freetype/builds/compiler/visualc.mk82
-rw-r--r--src/3rdparty/freetype/builds/compiler/watcom.mk81
-rw-r--r--src/3rdparty/freetype/builds/compiler/win-lcc.mk81
-rw-r--r--src/3rdparty/freetype/builds/detect.mk154
-rw-r--r--src/3rdparty/freetype/builds/dos/detect.mk142
-rw-r--r--src/3rdparty/freetype/builds/dos/dos-def.mk45
-rw-r--r--src/3rdparty/freetype/builds/dos/dos-emx.mk21
-rw-r--r--src/3rdparty/freetype/builds/dos/dos-gcc.mk21
-rw-r--r--src/3rdparty/freetype/builds/dos/dos-wat.mk20
-rw-r--r--src/3rdparty/freetype/builds/exports.mk76
-rw-r--r--src/3rdparty/freetype/builds/freetype.mk361
-rw-r--r--src/3rdparty/freetype/builds/link_dos.mk42
-rw-r--r--src/3rdparty/freetype/builds/link_std.mk42
-rw-r--r--src/3rdparty/freetype/builds/mac/FreeType.m68k_cfm.make.txt202
-rw-r--r--src/3rdparty/freetype/builds/mac/FreeType.m68k_far.make.txt201
-rw-r--r--src/3rdparty/freetype/builds/mac/FreeType.ppc_carbon.make.txt202
-rw-r--r--src/3rdparty/freetype/builds/mac/FreeType.ppc_classic.make.txt203
-rw-r--r--src/3rdparty/freetype/builds/mac/README403
-rwxr-xr-xsrc/3rdparty/freetype/builds/mac/ascii2mpw.py24
-rw-r--r--src/3rdparty/freetype/builds/mac/ftlib.prj.xml1194
-rw-r--r--src/3rdparty/freetype/builds/mac/ftmac.c1600
-rw-r--r--src/3rdparty/freetype/builds/modules.mk79
-rw-r--r--src/3rdparty/freetype/builds/newline1
-rw-r--r--src/3rdparty/freetype/builds/os2/detect.mk73
-rw-r--r--src/3rdparty/freetype/builds/os2/os2-def.mk44
-rw-r--r--src/3rdparty/freetype/builds/os2/os2-dev.mk30
-rw-r--r--src/3rdparty/freetype/builds/os2/os2-gcc.mk26
-rw-r--r--src/3rdparty/freetype/builds/symbian/bld.inf66
-rw-r--r--src/3rdparty/freetype/builds/symbian/freetype.mmp136
-rw-r--r--src/3rdparty/freetype/builds/toplevel.mk245
-rw-r--r--src/3rdparty/freetype/builds/unix/aclocal.m47912
-rwxr-xr-xsrc/3rdparty/freetype/builds/unix/config.guess1526
-rwxr-xr-xsrc/3rdparty/freetype/builds/unix/config.sub1669
-rwxr-xr-xsrc/3rdparty/freetype/builds/unix/configure15767
-rw-r--r--src/3rdparty/freetype/builds/unix/configure.ac540
-rw-r--r--src/3rdparty/freetype/builds/unix/configure.raw540
-rw-r--r--src/3rdparty/freetype/builds/unix/detect.mk91
-rw-r--r--src/3rdparty/freetype/builds/unix/freetype-config.in157
-rw-r--r--src/3rdparty/freetype/builds/unix/freetype2.in11
-rw-r--r--src/3rdparty/freetype/builds/unix/freetype2.m4192
-rw-r--r--src/3rdparty/freetype/builds/unix/ft-munmap.m432
-rw-r--r--src/3rdparty/freetype/builds/unix/ft2unix.h61
-rw-r--r--src/3rdparty/freetype/builds/unix/ftconfig.h262
-rw-r--r--src/3rdparty/freetype/builds/unix/ftconfig.in349
-rw-r--r--src/3rdparty/freetype/builds/unix/ftsystem.c414
-rwxr-xr-xsrc/3rdparty/freetype/builds/unix/install-sh519
-rw-r--r--src/3rdparty/freetype/builds/unix/install.mk97
-rwxr-xr-xsrc/3rdparty/freetype/builds/unix/ltmain.sh7874
-rwxr-xr-xsrc/3rdparty/freetype/builds/unix/mkinstalldirs161
-rw-r--r--src/3rdparty/freetype/builds/unix/unix-cc.in113
-rw-r--r--src/3rdparty/freetype/builds/unix/unix-def.in81
-rw-r--r--src/3rdparty/freetype/builds/unix/unix-dev.mk26
-rw-r--r--src/3rdparty/freetype/builds/unix/unix-lcc.mk24
-rw-r--r--src/3rdparty/freetype/builds/unix/unix.mk62
-rw-r--r--src/3rdparty/freetype/builds/unix/unixddef.mk45
-rw-r--r--src/3rdparty/freetype/builds/vms/ftconfig.h338
-rw-r--r--src/3rdparty/freetype/builds/vms/ftsystem.c321
-rw-r--r--src/3rdparty/freetype/builds/win32/detect.mk183
-rw-r--r--src/3rdparty/freetype/builds/win32/ftdebug.c248
-rw-r--r--src/3rdparty/freetype/builds/win32/visualc/freetype.dsp396
-rw-r--r--src/3rdparty/freetype/builds/win32/visualc/freetype.dsw29
-rw-r--r--src/3rdparty/freetype/builds/win32/visualc/freetype.sln31
-rw-r--r--src/3rdparty/freetype/builds/win32/visualc/freetype.vcproj2155
-rw-r--r--src/3rdparty/freetype/builds/win32/visualc/index.html37
-rw-r--r--src/3rdparty/freetype/builds/win32/visualce/freetype.dsp396
-rw-r--r--src/3rdparty/freetype/builds/win32/visualce/freetype.dsw29
-rw-r--r--src/3rdparty/freetype/builds/win32/visualce/freetype.vcproj13861
-rw-r--r--src/3rdparty/freetype/builds/win32/visualce/index.html47
-rw-r--r--src/3rdparty/freetype/builds/win32/w32-bcc.mk28
-rw-r--r--src/3rdparty/freetype/builds/win32/w32-bccd.mk26
-rw-r--r--src/3rdparty/freetype/builds/win32/w32-dev.mk32
-rw-r--r--src/3rdparty/freetype/builds/win32/w32-gcc.mk31
-rw-r--r--src/3rdparty/freetype/builds/win32/w32-icc.mk28
-rw-r--r--src/3rdparty/freetype/builds/win32/w32-intl.mk28
-rw-r--r--src/3rdparty/freetype/builds/win32/w32-lcc.mk24
-rw-r--r--src/3rdparty/freetype/builds/win32/w32-mingw32.mk33
-rw-r--r--src/3rdparty/freetype/builds/win32/w32-vcc.mk28
-rw-r--r--src/3rdparty/freetype/builds/win32/w32-wat.mk28
-rw-r--r--src/3rdparty/freetype/builds/win32/win32-def.mk46
-rwxr-xr-xsrc/3rdparty/freetype/configure100
-rw-r--r--src/3rdparty/freetype/devel/ft2build.h41
-rw-r--r--src/3rdparty/freetype/devel/ftoption.h672
-rw-r--r--src/3rdparty/freetype/docs/CHANGES3148
-rw-r--r--src/3rdparty/freetype/docs/CUSTOMIZE150
-rw-r--r--src/3rdparty/freetype/docs/DEBUG199
-rw-r--r--src/3rdparty/freetype/docs/FTL.TXT169
-rw-r--r--src/3rdparty/freetype/docs/GPL.TXT340
-rw-r--r--src/3rdparty/freetype/docs/INSTALL89
-rw-r--r--src/3rdparty/freetype/docs/INSTALL.ANY139
-rw-r--r--src/3rdparty/freetype/docs/INSTALL.CROSS135
-rw-r--r--src/3rdparty/freetype/docs/INSTALL.GNU159
-rw-r--r--src/3rdparty/freetype/docs/INSTALL.MAC32
-rw-r--r--src/3rdparty/freetype/docs/INSTALL.UNIX96
-rw-r--r--src/3rdparty/freetype/docs/INSTALL.VMS62
-rw-r--r--src/3rdparty/freetype/docs/LICENSE.TXT28
-rw-r--r--src/3rdparty/freetype/docs/MAKEPP5
-rw-r--r--src/3rdparty/freetype/docs/PATENTS27
-rw-r--r--src/3rdparty/freetype/docs/PROBLEMS77
-rw-r--r--src/3rdparty/freetype/docs/TODO40
-rw-r--r--src/3rdparty/freetype/docs/TRUETYPE40
-rw-r--r--src/3rdparty/freetype/docs/UPGRADE.UNIX137
-rw-r--r--src/3rdparty/freetype/docs/VERSION.DLL132
-rw-r--r--src/3rdparty/freetype/docs/formats.txt154
-rw-r--r--src/3rdparty/freetype/docs/raster.txt635
-rw-r--r--src/3rdparty/freetype/docs/reference/README5
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-base_interface.html3425
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-basic_types.html1160
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-bdf_fonts.html254
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-bitmap_handling.html264
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-cache_subsystem.html1165
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-cid_fonts.html102
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-computations.html828
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-font_formats.html79
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-gasp_table.html137
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-glyph_management.html633
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-glyph_stroker.html924
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-glyph_variants.html263
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-gx_validation.html352
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-gzip.html90
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-header_file_macros.html816
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-incremental.html393
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-index.html279
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-lcd_filtering.html145
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-list_processing.html479
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-lzw.html90
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-mac_specific.html364
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-module_management.html622
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-multiple_masters.html507
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-ot_validation.html204
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-outline_processing.html1086
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-pfr_fonts.html202
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-raster.html602
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-sfnt_names.html186
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-sizes_management.html160
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-system_interface.html411
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-toc.html203
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-truetype_engine.html128
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-truetype_tables.html1213
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-type1_tables.html518
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-user_allocation.html43
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-version.html209
-rw-r--r--src/3rdparty/freetype/docs/reference/ft2-winfnt_fonts.html274
-rw-r--r--src/3rdparty/freetype/docs/release166
-rw-r--r--src/3rdparty/freetype/include/freetype/config/ftconfig.h415
-rw-r--r--src/3rdparty/freetype/include/freetype/config/ftheader.h768
-rw-r--r--src/3rdparty/freetype/include/freetype/config/ftmodule.h32
-rw-r--r--src/3rdparty/freetype/include/freetype/config/ftoption.h671
-rw-r--r--src/3rdparty/freetype/include/freetype/config/ftstdlib.h180
-rw-r--r--src/3rdparty/freetype/include/freetype/freetype.h3706
-rw-r--r--src/3rdparty/freetype/include/freetype/ftbbox.h94
-rw-r--r--src/3rdparty/freetype/include/freetype/ftbdf.h200
-rw-r--r--src/3rdparty/freetype/include/freetype/ftbitmap.h206
-rw-r--r--src/3rdparty/freetype/include/freetype/ftcache.h1121
-rw-r--r--src/3rdparty/freetype/include/freetype/ftchapters.h102
-rw-r--r--src/3rdparty/freetype/include/freetype/ftcid.h98
-rw-r--r--src/3rdparty/freetype/include/freetype/fterrdef.h239
-rw-r--r--src/3rdparty/freetype/include/freetype/fterrors.h206
-rw-r--r--src/3rdparty/freetype/include/freetype/ftgasp.h113
-rw-r--r--src/3rdparty/freetype/include/freetype/ftglyph.h575
-rw-r--r--src/3rdparty/freetype/include/freetype/ftgxval.h358
-rw-r--r--src/3rdparty/freetype/include/freetype/ftgzip.h102
-rw-r--r--src/3rdparty/freetype/include/freetype/ftimage.h1246
-rw-r--r--src/3rdparty/freetype/include/freetype/ftincrem.h349
-rw-r--r--src/3rdparty/freetype/include/freetype/ftlcdfil.h166
-rw-r--r--src/3rdparty/freetype/include/freetype/ftlist.h273
-rw-r--r--src/3rdparty/freetype/include/freetype/ftlzw.h99
-rw-r--r--src/3rdparty/freetype/include/freetype/ftmac.h274
-rw-r--r--src/3rdparty/freetype/include/freetype/ftmm.h378
-rw-r--r--src/3rdparty/freetype/include/freetype/ftmodapi.h441
-rw-r--r--src/3rdparty/freetype/include/freetype/ftmoderr.h155
-rw-r--r--src/3rdparty/freetype/include/freetype/ftotval.h203
-rw-r--r--src/3rdparty/freetype/include/freetype/ftoutln.h526
-rw-r--r--src/3rdparty/freetype/include/freetype/ftpfr.h172
-rw-r--r--src/3rdparty/freetype/include/freetype/ftrender.h234
-rw-r--r--src/3rdparty/freetype/include/freetype/ftsizes.h159
-rw-r--r--src/3rdparty/freetype/include/freetype/ftsnames.h170
-rw-r--r--src/3rdparty/freetype/include/freetype/ftstroke.h716
-rw-r--r--src/3rdparty/freetype/include/freetype/ftsynth.h73
-rw-r--r--src/3rdparty/freetype/include/freetype/ftsystem.h346
-rw-r--r--src/3rdparty/freetype/include/freetype/fttrigon.h350
-rw-r--r--src/3rdparty/freetype/include/freetype/fttypes.h587
-rw-r--r--src/3rdparty/freetype/include/freetype/ftwinfnt.h274
-rw-r--r--src/3rdparty/freetype/include/freetype/ftxf86.h80
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/autohint.h205
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftcalc.h178
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftdebug.h250
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftdriver.h248
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftgloadr.h168
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftmemory.h368
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftobjs.h875
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftrfork.h196
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftserv.h328
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftstream.h539
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/fttrace.h134
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftvalid.h150
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/internal.h50
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/pcftypes.h56
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/psaux.h871
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/pshints.h687
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svbdf.h57
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svcid.h49
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svgldict.h60
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svgxval.h72
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svkern.h51
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svmm.h79
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svotval.h55
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svpfr.h66
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svpostnm.h58
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svpscmap.h129
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svpsinfo.h60
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svsfnt.h80
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svttcmap.h78
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svtteng.h53
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svttglyf.h48
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svwinfnt.h50
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svxf86nm.h55
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/sfnt.h762
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/t1types.h252
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/tttypes.h1543
-rw-r--r--src/3rdparty/freetype/include/freetype/t1tables.h504
-rw-r--r--src/3rdparty/freetype/include/freetype/ttnameid.h1146
-rw-r--r--src/3rdparty/freetype/include/freetype/tttables.h756
-rw-r--r--src/3rdparty/freetype/include/freetype/tttags.h100
-rw-r--r--src/3rdparty/freetype/include/freetype/ttunpat.h59
-rw-r--r--src/3rdparty/freetype/include/ft2build.h39
-rw-r--r--src/3rdparty/freetype/modules.cfg245
-rw-r--r--src/3rdparty/freetype/objs/README2
-rw-r--r--src/3rdparty/freetype/src/Jamfile25
-rw-r--r--src/3rdparty/freetype/src/autofit/Jamfile39
-rw-r--r--src/3rdparty/freetype/src/autofit/afangles.c292
-rw-r--r--src/3rdparty/freetype/src/autofit/afangles.h7
-rw-r--r--src/3rdparty/freetype/src/autofit/afcjk.c1508
-rw-r--r--src/3rdparty/freetype/src/autofit/afcjk.h58
-rw-r--r--src/3rdparty/freetype/src/autofit/afdummy.c62
-rw-r--r--src/3rdparty/freetype/src/autofit/afdummy.h43
-rw-r--r--src/3rdparty/freetype/src/autofit/aferrors.h40
-rw-r--r--src/3rdparty/freetype/src/autofit/afglobal.c289
-rw-r--r--src/3rdparty/freetype/src/autofit/afglobal.h67
-rw-r--r--src/3rdparty/freetype/src/autofit/afhints.c1264
-rw-r--r--src/3rdparty/freetype/src/autofit/afhints.h333
-rw-r--r--src/3rdparty/freetype/src/autofit/afindic.c134
-rw-r--r--src/3rdparty/freetype/src/autofit/afindic.h41
-rw-r--r--src/3rdparty/freetype/src/autofit/aflatin.c2168
-rw-r--r--src/3rdparty/freetype/src/autofit/aflatin.h209
-rw-r--r--src/3rdparty/freetype/src/autofit/aflatin2.c2286
-rw-r--r--src/3rdparty/freetype/src/autofit/aflatin2.h40
-rw-r--r--src/3rdparty/freetype/src/autofit/afloader.c535
-rw-r--r--src/3rdparty/freetype/src/autofit/afloader.h73
-rw-r--r--src/3rdparty/freetype/src/autofit/afmodule.c97
-rw-r--r--src/3rdparty/freetype/src/autofit/afmodule.h37
-rw-r--r--src/3rdparty/freetype/src/autofit/aftypes.h349
-rw-r--r--src/3rdparty/freetype/src/autofit/afwarp.c338
-rw-r--r--src/3rdparty/freetype/src/autofit/afwarp.h64
-rw-r--r--src/3rdparty/freetype/src/autofit/autofit.c40
-rw-r--r--src/3rdparty/freetype/src/autofit/module.mk23
-rw-r--r--src/3rdparty/freetype/src/autofit/rules.mk78
-rw-r--r--src/3rdparty/freetype/src/base/Jamfile50
-rw-r--r--src/3rdparty/freetype/src/base/ftapi.c121
-rw-r--r--src/3rdparty/freetype/src/base/ftbase.c38
-rw-r--r--src/3rdparty/freetype/src/base/ftbbox.c659
-rw-r--r--src/3rdparty/freetype/src/base/ftbdf.c88
-rw-r--r--src/3rdparty/freetype/src/base/ftbitmap.c630
-rw-r--r--src/3rdparty/freetype/src/base/ftcalc.c873
-rw-r--r--src/3rdparty/freetype/src/base/ftcid.c63
-rw-r--r--src/3rdparty/freetype/src/base/ftdbgmem.c998
-rw-r--r--src/3rdparty/freetype/src/base/ftdebug.c246
-rw-r--r--src/3rdparty/freetype/src/base/ftgasp.c61
-rw-r--r--src/3rdparty/freetype/src/base/ftgloadr.c394
-rw-r--r--src/3rdparty/freetype/src/base/ftglyph.c688
-rw-r--r--src/3rdparty/freetype/src/base/ftgxval.c129
-rw-r--r--src/3rdparty/freetype/src/base/ftinit.c163
-rw-r--r--src/3rdparty/freetype/src/base/ftlcdfil.c351
-rw-r--r--src/3rdparty/freetype/src/base/ftmac.c1130
-rw-r--r--src/3rdparty/freetype/src/base/ftmm.c202
-rw-r--r--src/3rdparty/freetype/src/base/ftnames.c94
-rw-r--r--src/3rdparty/freetype/src/base/ftobjs.c4198
-rw-r--r--src/3rdparty/freetype/src/base/ftotval.c83
-rw-r--r--src/3rdparty/freetype/src/base/ftoutln.c1090
-rw-r--r--src/3rdparty/freetype/src/base/ftpatent.c281
-rw-r--r--src/3rdparty/freetype/src/base/ftpfr.c132
-rw-r--r--src/3rdparty/freetype/src/base/ftrfork.c811
-rw-r--r--src/3rdparty/freetype/src/base/ftstream.c845
-rw-r--r--src/3rdparty/freetype/src/base/ftstroke.c2010
-rw-r--r--src/3rdparty/freetype/src/base/ftsynth.c159
-rw-r--r--src/3rdparty/freetype/src/base/ftsystem.c301
-rw-r--r--src/3rdparty/freetype/src/base/fttrigon.c546
-rw-r--r--src/3rdparty/freetype/src/base/fttype1.c94
-rw-r--r--src/3rdparty/freetype/src/base/ftutil.c501
-rw-r--r--src/3rdparty/freetype/src/base/ftwinfnt.c51
-rw-r--r--src/3rdparty/freetype/src/base/ftxf86.c40
-rw-r--r--src/3rdparty/freetype/src/base/rules.mk90
-rw-r--r--src/3rdparty/freetype/src/bdf/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/bdf/README148
-rw-r--r--src/3rdparty/freetype/src/bdf/bdf.c34
-rw-r--r--src/3rdparty/freetype/src/bdf/bdf.h295
-rw-r--r--src/3rdparty/freetype/src/bdf/bdfdrivr.c850
-rw-r--r--src/3rdparty/freetype/src/bdf/bdfdrivr.h76
-rw-r--r--src/3rdparty/freetype/src/bdf/bdferror.h44
-rw-r--r--src/3rdparty/freetype/src/bdf/bdflib.c2472
-rw-r--r--src/3rdparty/freetype/src/bdf/module.mk34
-rw-r--r--src/3rdparty/freetype/src/bdf/rules.mk80
-rw-r--r--src/3rdparty/freetype/src/cache/Jamfile43
-rw-r--r--src/3rdparty/freetype/src/cache/ftcache.c31
-rw-r--r--src/3rdparty/freetype/src/cache/ftcbasic.c811
-rw-r--r--src/3rdparty/freetype/src/cache/ftccache.c592
-rw-r--r--src/3rdparty/freetype/src/cache/ftccache.h317
-rw-r--r--src/3rdparty/freetype/src/cache/ftccback.h90
-rw-r--r--src/3rdparty/freetype/src/cache/ftccmap.c413
-rw-r--r--src/3rdparty/freetype/src/cache/ftcerror.h40
-rw-r--r--src/3rdparty/freetype/src/cache/ftcglyph.c211
-rw-r--r--src/3rdparty/freetype/src/cache/ftcglyph.h322
-rw-r--r--src/3rdparty/freetype/src/cache/ftcimage.c163
-rw-r--r--src/3rdparty/freetype/src/cache/ftcimage.h107
-rw-r--r--src/3rdparty/freetype/src/cache/ftcmanag.c732
-rw-r--r--src/3rdparty/freetype/src/cache/ftcmanag.h175
-rw-r--r--src/3rdparty/freetype/src/cache/ftcmru.c357
-rw-r--r--src/3rdparty/freetype/src/cache/ftcmru.h247
-rw-r--r--src/3rdparty/freetype/src/cache/ftcsbits.c401
-rw-r--r--src/3rdparty/freetype/src/cache/ftcsbits.h98
-rw-r--r--src/3rdparty/freetype/src/cache/rules.mk78
-rw-r--r--src/3rdparty/freetype/src/cff/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/cff/cff.c29
-rw-r--r--src/3rdparty/freetype/src/cff/cffcmap.c224
-rw-r--r--src/3rdparty/freetype/src/cff/cffcmap.h69
-rw-r--r--src/3rdparty/freetype/src/cff/cffdrivr.c585
-rw-r--r--src/3rdparty/freetype/src/cff/cffdrivr.h39
-rw-r--r--src/3rdparty/freetype/src/cff/cfferrs.h41
-rw-r--r--src/3rdparty/freetype/src/cff/cffgload.c2701
-rw-r--r--src/3rdparty/freetype/src/cff/cffgload.h202
-rw-r--r--src/3rdparty/freetype/src/cff/cffload.c1605
-rw-r--r--src/3rdparty/freetype/src/cff/cffload.h79
-rw-r--r--src/3rdparty/freetype/src/cff/cffobjs.c962
-rw-r--r--src/3rdparty/freetype/src/cff/cffobjs.h181
-rw-r--r--src/3rdparty/freetype/src/cff/cffparse.c843
-rw-r--r--src/3rdparty/freetype/src/cff/cffparse.h69
-rw-r--r--src/3rdparty/freetype/src/cff/cfftoken.h97
-rw-r--r--src/3rdparty/freetype/src/cff/cfftypes.h274
-rw-r--r--src/3rdparty/freetype/src/cff/module.mk23
-rw-r--r--src/3rdparty/freetype/src/cff/rules.mk72
-rw-r--r--src/3rdparty/freetype/src/cid/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/cid/ciderrs.h40
-rw-r--r--src/3rdparty/freetype/src/cid/cidgload.c433
-rw-r--r--src/3rdparty/freetype/src/cid/cidgload.h51
-rw-r--r--src/3rdparty/freetype/src/cid/cidload.c644
-rw-r--r--src/3rdparty/freetype/src/cid/cidload.h53
-rw-r--r--src/3rdparty/freetype/src/cid/cidobjs.c480
-rw-r--r--src/3rdparty/freetype/src/cid/cidobjs.h154
-rw-r--r--src/3rdparty/freetype/src/cid/cidparse.c226
-rw-r--r--src/3rdparty/freetype/src/cid/cidparse.h123
-rw-r--r--src/3rdparty/freetype/src/cid/cidriver.c198
-rw-r--r--src/3rdparty/freetype/src/cid/cidriver.h39
-rw-r--r--src/3rdparty/freetype/src/cid/cidtoken.h103
-rw-r--r--src/3rdparty/freetype/src/cid/module.mk23
-rw-r--r--src/3rdparty/freetype/src/cid/rules.mk70
-rw-r--r--src/3rdparty/freetype/src/cid/type1cid.c29
-rw-r--r--src/3rdparty/freetype/src/gxvalid/Jamfile33
-rw-r--r--src/3rdparty/freetype/src/gxvalid/README532
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvalid.c46
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvalid.h107
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvbsln.c333
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvcommn.c1758
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvcommn.h560
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxverror.h51
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvfeat.c344
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvfeat.h172
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvfgen.c482
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvjust.c630
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvkern.c876
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvlcar.c223
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmod.c285
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmod.h46
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort.c285
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort.h93
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort0.c137
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort1.c258
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort2.c282
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort4.c125
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort5.c226
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx.c183
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx.h67
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx0.c103
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx1.c274
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx2.c285
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx4.c55
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx5.c217
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvopbd.c217
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvprop.c301
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvtrak.c277
-rw-r--r--src/3rdparty/freetype/src/gxvalid/module.mk23
-rw-r--r--src/3rdparty/freetype/src/gxvalid/rules.mk94
-rw-r--r--src/3rdparty/freetype/src/gzip/Jamfile16
-rw-r--r--src/3rdparty/freetype/src/gzip/adler32.c48
-rw-r--r--src/3rdparty/freetype/src/gzip/ftgzip.c682
-rw-r--r--src/3rdparty/freetype/src/gzip/infblock.c387
-rw-r--r--src/3rdparty/freetype/src/gzip/infblock.h36
-rw-r--r--src/3rdparty/freetype/src/gzip/infcodes.c250
-rw-r--r--src/3rdparty/freetype/src/gzip/infcodes.h31
-rw-r--r--src/3rdparty/freetype/src/gzip/inffixed.h151
-rw-r--r--src/3rdparty/freetype/src/gzip/inflate.c273
-rw-r--r--src/3rdparty/freetype/src/gzip/inftrees.c465
-rw-r--r--src/3rdparty/freetype/src/gzip/inftrees.h63
-rw-r--r--src/3rdparty/freetype/src/gzip/infutil.c86
-rw-r--r--src/3rdparty/freetype/src/gzip/infutil.h98
-rw-r--r--src/3rdparty/freetype/src/gzip/rules.mk75
-rw-r--r--src/3rdparty/freetype/src/gzip/zconf.h278
-rw-r--r--src/3rdparty/freetype/src/gzip/zlib.h830
-rw-r--r--src/3rdparty/freetype/src/gzip/zutil.c181
-rw-r--r--src/3rdparty/freetype/src/gzip/zutil.h215
-rw-r--r--src/3rdparty/freetype/src/lzw/Jamfile16
-rw-r--r--src/3rdparty/freetype/src/lzw/ftlzw.c413
-rw-r--r--src/3rdparty/freetype/src/lzw/ftzopen.c398
-rw-r--r--src/3rdparty/freetype/src/lzw/ftzopen.h171
-rw-r--r--src/3rdparty/freetype/src/lzw/rules.mk70
-rw-r--r--src/3rdparty/freetype/src/otvalid/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/otvalid/module.mk23
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvalid.c31
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvalid.h77
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvbase.c318
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvcommn.c1086
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvcommn.h437
-rw-r--r--src/3rdparty/freetype/src/otvalid/otverror.h43
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvgdef.c219
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvgpos.c1013
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvgpos.h36
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvgsub.c584
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvjstf.c258
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvmath.c450
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvmod.c267
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvmod.h39
-rw-r--r--src/3rdparty/freetype/src/otvalid/rules.mk78
-rw-r--r--src/3rdparty/freetype/src/pcf/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/pcf/README114
-rw-r--r--src/3rdparty/freetype/src/pcf/module.mk34
-rw-r--r--src/3rdparty/freetype/src/pcf/pcf.c36
-rw-r--r--src/3rdparty/freetype/src/pcf/pcf.h237
-rw-r--r--src/3rdparty/freetype/src/pcf/pcfdrivr.c674
-rw-r--r--src/3rdparty/freetype/src/pcf/pcfdrivr.h44
-rw-r--r--src/3rdparty/freetype/src/pcf/pcferror.h40
-rw-r--r--src/3rdparty/freetype/src/pcf/pcfread.c1267
-rw-r--r--src/3rdparty/freetype/src/pcf/pcfread.h45
-rw-r--r--src/3rdparty/freetype/src/pcf/pcfutil.c104
-rw-r--r--src/3rdparty/freetype/src/pcf/pcfutil.h55
-rw-r--r--src/3rdparty/freetype/src/pcf/rules.mk80
-rw-r--r--src/3rdparty/freetype/src/pfr/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/pfr/module.mk23
-rw-r--r--src/3rdparty/freetype/src/pfr/pfr.c29
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrcmap.c167
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrcmap.h46
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrdrivr.c207
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrdrivr.h39
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrerror.h40
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrgload.c828
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrgload.h49
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrload.c938
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrload.h118
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrobjs.c576
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrobjs.h96
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrsbit.c680
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrsbit.h36
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrtypes.h362
-rw-r--r--src/3rdparty/freetype/src/pfr/rules.mk73
-rw-r--r--src/3rdparty/freetype/src/psaux/Jamfile31
-rw-r--r--src/3rdparty/freetype/src/psaux/afmparse.c960
-rw-r--r--src/3rdparty/freetype/src/psaux/afmparse.h87
-rw-r--r--src/3rdparty/freetype/src/psaux/module.mk23
-rw-r--r--src/3rdparty/freetype/src/psaux/psaux.c34
-rw-r--r--src/3rdparty/freetype/src/psaux/psauxerr.h41
-rw-r--r--src/3rdparty/freetype/src/psaux/psauxmod.c139
-rw-r--r--src/3rdparty/freetype/src/psaux/psauxmod.h38
-rw-r--r--src/3rdparty/freetype/src/psaux/psconv.c474
-rw-r--r--src/3rdparty/freetype/src/psaux/psconv.h71
-rw-r--r--src/3rdparty/freetype/src/psaux/psobjs.c1692
-rw-r--r--src/3rdparty/freetype/src/psaux/psobjs.h212
-rw-r--r--src/3rdparty/freetype/src/psaux/rules.mk73
-rw-r--r--src/3rdparty/freetype/src/psaux/t1cmap.c341
-rw-r--r--src/3rdparty/freetype/src/psaux/t1cmap.h105
-rw-r--r--src/3rdparty/freetype/src/psaux/t1decode.c1475
-rw-r--r--src/3rdparty/freetype/src/psaux/t1decode.h64
-rw-r--r--src/3rdparty/freetype/src/pshinter/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/pshinter/module.mk23
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshalgo.c2302
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshalgo.h255
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshglob.c750
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshglob.h196
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshinter.c28
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshmod.c121
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshmod.h39
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshnterr.h40
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshrec.c1215
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshrec.h176
-rw-r--r--src/3rdparty/freetype/src/pshinter/rules.mk72
-rw-r--r--src/3rdparty/freetype/src/psnames/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/psnames/module.mk23
-rw-r--r--src/3rdparty/freetype/src/psnames/psmodule.c565
-rw-r--r--src/3rdparty/freetype/src/psnames/psmodule.h38
-rw-r--r--src/3rdparty/freetype/src/psnames/psnamerr.h41
-rw-r--r--src/3rdparty/freetype/src/psnames/psnames.c25
-rw-r--r--src/3rdparty/freetype/src/psnames/pstables.h4090
-rw-r--r--src/3rdparty/freetype/src/psnames/rules.mk70
-rw-r--r--src/3rdparty/freetype/src/raster/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/raster/ftmisc.h83
-rw-r--r--src/3rdparty/freetype/src/raster/ftraster.c3382
-rw-r--r--src/3rdparty/freetype/src/raster/ftraster.h46
-rw-r--r--src/3rdparty/freetype/src/raster/ftrend1.c273
-rw-r--r--src/3rdparty/freetype/src/raster/ftrend1.h44
-rw-r--r--src/3rdparty/freetype/src/raster/module.mk23
-rw-r--r--src/3rdparty/freetype/src/raster/raster.c26
-rw-r--r--src/3rdparty/freetype/src/raster/rasterrs.h41
-rw-r--r--src/3rdparty/freetype/src/raster/rules.mk69
-rw-r--r--src/3rdparty/freetype/src/sfnt/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/sfnt/module.mk23
-rw-r--r--src/3rdparty/freetype/src/sfnt/rules.mk76
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfdriver.c618
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfdriver.h38
-rw-r--r--src/3rdparty/freetype/src/sfnt/sferrors.h41
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfnt.c41
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfobjs.c1116
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfobjs.h54
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttbdf.c250
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttbdf.h46
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttcmap.c3123
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttcmap.h85
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttkern.c292
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttkern.h52
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttload.c1185
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttload.h112
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttmtx.c466
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttmtx.h55
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttpost.c521
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttpost.h46
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttsbit.c1502
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttsbit.h79
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttsbit0.c996
-rw-r--r--src/3rdparty/freetype/src/smooth/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/smooth/ftgrays.c1986
-rw-r--r--src/3rdparty/freetype/src/smooth/ftgrays.h57
-rw-r--r--src/3rdparty/freetype/src/smooth/ftsmerrs.h41
-rw-r--r--src/3rdparty/freetype/src/smooth/ftsmooth.c467
-rw-r--r--src/3rdparty/freetype/src/smooth/ftsmooth.h49
-rw-r--r--src/3rdparty/freetype/src/smooth/module.mk27
-rw-r--r--src/3rdparty/freetype/src/smooth/rules.mk69
-rw-r--r--src/3rdparty/freetype/src/smooth/smooth.c26
-rw-r--r--src/3rdparty/freetype/src/tools/Jamfile5
-rw-r--r--src/3rdparty/freetype/src/tools/apinames.c443
-rw-r--r--src/3rdparty/freetype/src/tools/cordic.py79
-rw-r--r--src/3rdparty/freetype/src/tools/docmaker/content.py582
-rw-r--r--src/3rdparty/freetype/src/tools/docmaker/docbeauty.py113
-rw-r--r--src/3rdparty/freetype/src/tools/docmaker/docmaker.py106
-rw-r--r--src/3rdparty/freetype/src/tools/docmaker/formatter.py188
-rw-r--r--src/3rdparty/freetype/src/tools/docmaker/sources.py347
-rw-r--r--src/3rdparty/freetype/src/tools/docmaker/tohtml.py527
-rw-r--r--src/3rdparty/freetype/src/tools/docmaker/utils.py132
-rw-r--r--src/3rdparty/freetype/src/tools/ftrandom/Makefile35
-rw-r--r--src/3rdparty/freetype/src/tools/ftrandom/README48
-rw-r--r--src/3rdparty/freetype/src/tools/ftrandom/ftrandom.c659
-rw-r--r--src/3rdparty/freetype/src/tools/glnames.py5282
-rw-r--r--src/3rdparty/freetype/src/tools/test_afm.c157
-rw-r--r--src/3rdparty/freetype/src/tools/test_bbox.c160
-rw-r--r--src/3rdparty/freetype/src/tools/test_trig.c236
-rw-r--r--src/3rdparty/freetype/src/truetype/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/truetype/module.mk23
-rw-r--r--src/3rdparty/freetype/src/truetype/rules.mk72
-rw-r--r--src/3rdparty/freetype/src/truetype/truetype.c36
-rw-r--r--src/3rdparty/freetype/src/truetype/ttdriver.c418
-rw-r--r--src/3rdparty/freetype/src/truetype/ttdriver.h38
-rw-r--r--src/3rdparty/freetype/src/truetype/tterrors.h40
-rw-r--r--src/3rdparty/freetype/src/truetype/ttgload.c1976
-rw-r--r--src/3rdparty/freetype/src/truetype/ttgload.h49
-rw-r--r--src/3rdparty/freetype/src/truetype/ttgxvar.c1539
-rw-r--r--src/3rdparty/freetype/src/truetype/ttgxvar.h182
-rw-r--r--src/3rdparty/freetype/src/truetype/ttinterp.c7837
-rw-r--r--src/3rdparty/freetype/src/truetype/ttinterp.h311
-rw-r--r--src/3rdparty/freetype/src/truetype/ttobjs.c943
-rw-r--r--src/3rdparty/freetype/src/truetype/ttobjs.h459
-rw-r--r--src/3rdparty/freetype/src/truetype/ttpload.c523
-rw-r--r--src/3rdparty/freetype/src/truetype/ttpload.h75
-rw-r--r--src/3rdparty/freetype/src/type1/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/type1/module.mk23
-rw-r--r--src/3rdparty/freetype/src/type1/rules.mk73
-rw-r--r--src/3rdparty/freetype/src/type1/t1afm.c385
-rw-r--r--src/3rdparty/freetype/src/type1/t1afm.h54
-rw-r--r--src/3rdparty/freetype/src/type1/t1driver.c313
-rw-r--r--src/3rdparty/freetype/src/type1/t1driver.h38
-rw-r--r--src/3rdparty/freetype/src/type1/t1errors.h40
-rw-r--r--src/3rdparty/freetype/src/type1/t1gload.c422
-rw-r--r--src/3rdparty/freetype/src/type1/t1gload.h46
-rw-r--r--src/3rdparty/freetype/src/type1/t1load.c2233
-rw-r--r--src/3rdparty/freetype/src/type1/t1load.h102
-rw-r--r--src/3rdparty/freetype/src/type1/t1objs.c568
-rw-r--r--src/3rdparty/freetype/src/type1/t1objs.h171
-rw-r--r--src/3rdparty/freetype/src/type1/t1parse.c484
-rw-r--r--src/3rdparty/freetype/src/type1/t1parse.h135
-rw-r--r--src/3rdparty/freetype/src/type1/t1tokens.h134
-rw-r--r--src/3rdparty/freetype/src/type1/type1.c33
-rw-r--r--src/3rdparty/freetype/src/type42/Jamfile29
-rw-r--r--src/3rdparty/freetype/src/type42/module.mk23
-rw-r--r--src/3rdparty/freetype/src/type42/rules.mk69
-rw-r--r--src/3rdparty/freetype/src/type42/t42drivr.c232
-rw-r--r--src/3rdparty/freetype/src/type42/t42drivr.h38
-rw-r--r--src/3rdparty/freetype/src/type42/t42error.h40
-rw-r--r--src/3rdparty/freetype/src/type42/t42objs.c647
-rw-r--r--src/3rdparty/freetype/src/type42/t42objs.h124
-rw-r--r--src/3rdparty/freetype/src/type42/t42parse.c1167
-rw-r--r--src/3rdparty/freetype/src/type42/t42parse.h90
-rw-r--r--src/3rdparty/freetype/src/type42/t42types.h54
-rw-r--r--src/3rdparty/freetype/src/type42/type42.c25
-rw-r--r--src/3rdparty/freetype/src/winfonts/Jamfile16
-rw-r--r--src/3rdparty/freetype/src/winfonts/fnterrs.h41
-rw-r--r--src/3rdparty/freetype/src/winfonts/module.mk23
-rw-r--r--src/3rdparty/freetype/src/winfonts/rules.mk65
-rw-r--r--src/3rdparty/freetype/src/winfonts/winfnt.c1130
-rw-r--r--src/3rdparty/freetype/src/winfonts/winfnt.h167
-rw-r--r--src/3rdparty/freetype/version.sed5
-rw-r--r--src/3rdparty/freetype/vms_make.com1286
-rw-r--r--src/3rdparty/harfbuzz/.gitignore20
-rw-r--r--src/3rdparty/harfbuzz/AUTHORS6
-rw-r--r--src/3rdparty/harfbuzz/COPYING24
-rw-r--r--src/3rdparty/harfbuzz/ChangeLog0
-rw-r--r--src/3rdparty/harfbuzz/Makefile.am2
-rw-r--r--src/3rdparty/harfbuzz/NEWS0
-rw-r--r--src/3rdparty/harfbuzz/README7
-rwxr-xr-xsrc/3rdparty/harfbuzz/autogen.sh116
-rw-r--r--src/3rdparty/harfbuzz/configure.ac54
-rw-r--r--src/3rdparty/harfbuzz/src/.gitignore7
-rw-r--r--src/3rdparty/harfbuzz/src/Makefile.am68
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-arabic.c1090
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-buffer-private.h107
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-buffer.c383
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-buffer.h94
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-dump-main.c97
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-dump.c765
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-dump.h41
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-external.h157
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-gdef-private.h124
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-gdef.c1159
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-gdef.h135
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-global.h118
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-gpos-private.h712
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-gpos.c6053
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-gpos.h149
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-gsub-private.h476
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-gsub.c4329
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-gsub.h141
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-hangul.c268
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-hebrew.c188
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-impl.c84
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-impl.h131
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp1852
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-khmer.c667
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-myanmar.c542
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-open-private.h102
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-open.c1414
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-open.h282
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-shape.h199
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-shaper-all.cpp36
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-shaper-private.h167
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp1312
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-shaper.h271
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-stream-private.h81
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-stream.c114
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-stream.h45
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-thai.c87
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-tibetan.c274
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz.c32
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz.h38
-rw-r--r--src/3rdparty/harfbuzz/tests/Makefile.am7
-rw-r--r--src/3rdparty/harfbuzz/tests/linebreaking/.gitignore4
-rw-r--r--src/3rdparty/harfbuzz/tests/linebreaking/Makefile.am12
-rw-r--r--src/3rdparty/harfbuzz/tests/linebreaking/harfbuzz-qt.cpp108
-rw-r--r--src/3rdparty/harfbuzz/tests/linebreaking/main.cpp230
-rw-r--r--src/3rdparty/harfbuzz/tests/shaping/.gitignore2
-rw-r--r--src/3rdparty/harfbuzz/tests/shaping/Makefile.am14
-rw-r--r--src/3rdparty/harfbuzz/tests/shaping/README9
-rw-r--r--src/3rdparty/harfbuzz/tests/shaping/main.cpp1035
-rw-r--r--src/3rdparty/libjpeg/README385
-rw-r--r--src/3rdparty/libjpeg/change.log217
-rw-r--r--src/3rdparty/libjpeg/coderules.doc118
-rw-r--r--src/3rdparty/libjpeg/filelist.doc210
-rw-r--r--src/3rdparty/libjpeg/install.doc1063
-rw-r--r--src/3rdparty/libjpeg/jcapimin.c280
-rw-r--r--src/3rdparty/libjpeg/jcapistd.c161
-rw-r--r--src/3rdparty/libjpeg/jccoefct.c449
-rw-r--r--src/3rdparty/libjpeg/jccolor.c459
-rw-r--r--src/3rdparty/libjpeg/jcdctmgr.c387
-rw-r--r--src/3rdparty/libjpeg/jchuff.c909
-rw-r--r--src/3rdparty/libjpeg/jchuff.h47
-rw-r--r--src/3rdparty/libjpeg/jcinit.c72
-rw-r--r--src/3rdparty/libjpeg/jcmainct.c293
-rw-r--r--src/3rdparty/libjpeg/jcmarker.c664
-rw-r--r--src/3rdparty/libjpeg/jcmaster.c590
-rw-r--r--src/3rdparty/libjpeg/jcomapi.c106
-rw-r--r--src/3rdparty/libjpeg/jconfig.bcc48
-rw-r--r--src/3rdparty/libjpeg/jconfig.cfg44
-rw-r--r--src/3rdparty/libjpeg/jconfig.dj38
-rw-r--r--src/3rdparty/libjpeg/jconfig.doc155
-rw-r--r--src/3rdparty/libjpeg/jconfig.h47
-rw-r--r--src/3rdparty/libjpeg/jconfig.mac43
-rw-r--r--src/3rdparty/libjpeg/jconfig.manx43
-rw-r--r--src/3rdparty/libjpeg/jconfig.mc652
-rw-r--r--src/3rdparty/libjpeg/jconfig.sas43
-rw-r--r--src/3rdparty/libjpeg/jconfig.st42
-rw-r--r--src/3rdparty/libjpeg/jconfig.vc45
-rw-r--r--src/3rdparty/libjpeg/jconfig.vms37
-rw-r--r--src/3rdparty/libjpeg/jconfig.wat38
-rw-r--r--src/3rdparty/libjpeg/jcparam.c610
-rw-r--r--src/3rdparty/libjpeg/jcphuff.c833
-rw-r--r--src/3rdparty/libjpeg/jcprepct.c354
-rw-r--r--src/3rdparty/libjpeg/jcsample.c519
-rw-r--r--src/3rdparty/libjpeg/jctrans.c388
-rw-r--r--src/3rdparty/libjpeg/jdapimin.c395
-rw-r--r--src/3rdparty/libjpeg/jdapistd.c275
-rw-r--r--src/3rdparty/libjpeg/jdatadst.c151
-rw-r--r--src/3rdparty/libjpeg/jdatasrc.c212
-rw-r--r--src/3rdparty/libjpeg/jdcoefct.c736
-rw-r--r--src/3rdparty/libjpeg/jdcolor.c396
-rw-r--r--src/3rdparty/libjpeg/jdct.h176
-rw-r--r--src/3rdparty/libjpeg/jddctmgr.c269
-rw-r--r--src/3rdparty/libjpeg/jdhuff.c651
-rw-r--r--src/3rdparty/libjpeg/jdhuff.h201
-rw-r--r--src/3rdparty/libjpeg/jdinput.c381
-rw-r--r--src/3rdparty/libjpeg/jdmainct.c512
-rw-r--r--src/3rdparty/libjpeg/jdmarker.c1360
-rw-r--r--src/3rdparty/libjpeg/jdmaster.c557
-rw-r--r--src/3rdparty/libjpeg/jdmerge.c400
-rw-r--r--src/3rdparty/libjpeg/jdphuff.c668
-rw-r--r--src/3rdparty/libjpeg/jdpostct.c290
-rw-r--r--src/3rdparty/libjpeg/jdsample.c478
-rw-r--r--src/3rdparty/libjpeg/jdtrans.c143
-rw-r--r--src/3rdparty/libjpeg/jerror.c252
-rw-r--r--src/3rdparty/libjpeg/jerror.h291
-rw-r--r--src/3rdparty/libjpeg/jfdctflt.c168
-rw-r--r--src/3rdparty/libjpeg/jfdctfst.c224
-rw-r--r--src/3rdparty/libjpeg/jfdctint.c283
-rw-r--r--src/3rdparty/libjpeg/jidctflt.c242
-rw-r--r--src/3rdparty/libjpeg/jidctfst.c368
-rw-r--r--src/3rdparty/libjpeg/jidctint.c389
-rw-r--r--src/3rdparty/libjpeg/jidctred.c398
-rw-r--r--src/3rdparty/libjpeg/jinclude.h91
-rw-r--r--src/3rdparty/libjpeg/jmemmgr.c1118
-rw-r--r--src/3rdparty/libjpeg/jmemnobs.c109
-rw-r--r--src/3rdparty/libjpeg/jmemsys.h198
-rw-r--r--src/3rdparty/libjpeg/jmorecfg.h363
-rw-r--r--src/3rdparty/libjpeg/jpegint.h392
-rw-r--r--src/3rdparty/libjpeg/jpeglib.h1096
-rw-r--r--src/3rdparty/libjpeg/jquant1.c856
-rw-r--r--src/3rdparty/libjpeg/jquant2.c1310
-rw-r--r--src/3rdparty/libjpeg/jutils.c179
-rw-r--r--src/3rdparty/libjpeg/jversion.h14
-rw-r--r--src/3rdparty/libjpeg/libjpeg.doc3006
-rw-r--r--src/3rdparty/libjpeg/makefile.ansi214
-rw-r--r--src/3rdparty/libjpeg/makefile.bcc285
-rw-r--r--src/3rdparty/libjpeg/makefile.cfg319
-rw-r--r--src/3rdparty/libjpeg/makefile.dj220
-rw-r--r--src/3rdparty/libjpeg/makefile.manx214
-rw-r--r--src/3rdparty/libjpeg/makefile.mc6249
-rw-r--r--src/3rdparty/libjpeg/makefile.mms218
-rw-r--r--src/3rdparty/libjpeg/makefile.sas252
-rw-r--r--src/3rdparty/libjpeg/makefile.unix228
-rw-r--r--src/3rdparty/libjpeg/makefile.vc211
-rw-r--r--src/3rdparty/libjpeg/makefile.vms142
-rw-r--r--src/3rdparty/libjpeg/makefile.wat233
-rw-r--r--src/3rdparty/libjpeg/structure.doc948
-rw-r--r--src/3rdparty/libjpeg/usage.doc562
-rw-r--r--src/3rdparty/libjpeg/wizard.doc211
-rw-r--r--src/3rdparty/libmng/CHANGES1447
-rw-r--r--src/3rdparty/libmng/LICENSE57
-rw-r--r--src/3rdparty/libmng/README36
-rw-r--r--src/3rdparty/libmng/README.autoconf213
-rw-r--r--src/3rdparty/libmng/README.config104
-rw-r--r--src/3rdparty/libmng/README.contrib95
-rw-r--r--src/3rdparty/libmng/README.dll41
-rw-r--r--src/3rdparty/libmng/README.examples48
-rw-r--r--src/3rdparty/libmng/README.footprint46
-rw-r--r--src/3rdparty/libmng/README.packaging24
-rw-r--r--src/3rdparty/libmng/doc/Plan1.pngbin0 -> 9058 bytes-rw-r--r--src/3rdparty/libmng/doc/Plan2.pngbin0 -> 8849 bytes-rw-r--r--src/3rdparty/libmng/doc/doc.readme19
-rw-r--r--src/3rdparty/libmng/doc/libmng.txt1107
-rw-r--r--src/3rdparty/libmng/doc/man/jng.537
-rw-r--r--src/3rdparty/libmng/doc/man/libmng.31146
-rw-r--r--src/3rdparty/libmng/doc/man/mng.542
-rw-r--r--src/3rdparty/libmng/doc/misc/magic.dif30
-rw-r--r--src/3rdparty/libmng/doc/rpm/libmng-1.0.10-rhconf.patch38
-rw-r--r--src/3rdparty/libmng/doc/rpm/libmng.spec116
-rw-r--r--src/3rdparty/libmng/libmng.h2932
-rw-r--r--src/3rdparty/libmng/libmng_callback_xs.c1239
-rw-r--r--src/3rdparty/libmng/libmng_chunk_descr.c6090
-rw-r--r--src/3rdparty/libmng/libmng_chunk_descr.h146
-rw-r--r--src/3rdparty/libmng/libmng_chunk_io.c10740
-rw-r--r--src/3rdparty/libmng/libmng_chunk_io.h415
-rw-r--r--src/3rdparty/libmng/libmng_chunk_prc.c4452
-rw-r--r--src/3rdparty/libmng/libmng_chunk_prc.h381
-rw-r--r--src/3rdparty/libmng/libmng_chunk_xs.c7016
-rw-r--r--src/3rdparty/libmng/libmng_chunks.h1026
-rw-r--r--src/3rdparty/libmng/libmng_cms.c758
-rw-r--r--src/3rdparty/libmng/libmng_cms.h92
-rw-r--r--src/3rdparty/libmng/libmng_conf.h295
-rw-r--r--src/3rdparty/libmng/libmng_data.h1032
-rw-r--r--src/3rdparty/libmng/libmng_display.c7140
-rw-r--r--src/3rdparty/libmng/libmng_display.h343
-rw-r--r--src/3rdparty/libmng/libmng_dither.c58
-rw-r--r--src/3rdparty/libmng/libmng_dither.h45
-rw-r--r--src/3rdparty/libmng/libmng_error.c326
-rw-r--r--src/3rdparty/libmng/libmng_error.h119
-rw-r--r--src/3rdparty/libmng/libmng_filter.c978
-rw-r--r--src/3rdparty/libmng/libmng_filter.h69
-rw-r--r--src/3rdparty/libmng/libmng_hlapi.c3001
-rw-r--r--src/3rdparty/libmng/libmng_jpeg.c1088
-rw-r--r--src/3rdparty/libmng/libmng_jpeg.h57
-rw-r--r--src/3rdparty/libmng/libmng_memory.h64
-rw-r--r--src/3rdparty/libmng/libmng_object_prc.c6998
-rw-r--r--src/3rdparty/libmng/libmng_object_prc.h690
-rw-r--r--src/3rdparty/libmng/libmng_objects.h635
-rw-r--r--src/3rdparty/libmng/libmng_pixels.c24610
-rw-r--r--src/3rdparty/libmng/libmng_pixels.h1147
-rw-r--r--src/3rdparty/libmng/libmng_prop_xs.c2799
-rw-r--r--src/3rdparty/libmng/libmng_read.c1369
-rw-r--r--src/3rdparty/libmng/libmng_read.h53
-rw-r--r--src/3rdparty/libmng/libmng_trace.c1683
-rw-r--r--src/3rdparty/libmng/libmng_trace.h1474
-rw-r--r--src/3rdparty/libmng/libmng_types.h574
-rw-r--r--src/3rdparty/libmng/libmng_write.c198
-rw-r--r--src/3rdparty/libmng/libmng_write.h49
-rw-r--r--src/3rdparty/libmng/libmng_zlib.c607
-rw-r--r--src/3rdparty/libmng/libmng_zlib.h60
-rw-r--r--src/3rdparty/libmng/makefiles/Makefile.am29
-rw-r--r--src/3rdparty/libmng/makefiles/README27
-rw-r--r--src/3rdparty/libmng/makefiles/configure.in193
-rw-r--r--src/3rdparty/libmng/makefiles/makefile.bcb3108
-rw-r--r--src/3rdparty/libmng/makefiles/makefile.dj155
-rw-r--r--src/3rdparty/libmng/makefiles/makefile.linux180
-rw-r--r--src/3rdparty/libmng/makefiles/makefile.mingw164
-rw-r--r--src/3rdparty/libmng/makefiles/makefile.mingwdll158
-rw-r--r--src/3rdparty/libmng/makefiles/makefile.qnx160
-rw-r--r--src/3rdparty/libmng/makefiles/makefile.unix67
-rw-r--r--src/3rdparty/libmng/makefiles/makefile.vcwin3299
-rwxr-xr-xsrc/3rdparty/libmng/unmaintained/autogen.sh50
-rw-r--r--src/3rdparty/libpng/ANNOUNCE61
-rw-r--r--src/3rdparty/libpng/CHANGES2173
-rw-r--r--src/3rdparty/libpng/INSTALL199
-rw-r--r--src/3rdparty/libpng/KNOWNBUG22
-rw-r--r--src/3rdparty/libpng/LICENSE109
-rw-r--r--src/3rdparty/libpng/README264
-rw-r--r--src/3rdparty/libpng/TODO24
-rw-r--r--src/3rdparty/libpng/Y2KINFO55
-rwxr-xr-xsrc/3rdparty/libpng/configure13
-rw-r--r--src/3rdparty/libpng/example.c814
-rw-r--r--src/3rdparty/libpng/libpng-1.2.29.txt2906
-rw-r--r--src/3rdparty/libpng/libpng.33680
-rw-r--r--src/3rdparty/libpng/libpngpf.3274
-rw-r--r--src/3rdparty/libpng/png.574
-rw-r--r--src/3rdparty/libpng/png.c798
-rw-r--r--src/3rdparty/libpng/png.h3569
-rw-r--r--src/3rdparty/libpng/pngbar.jpgbin0 -> 2498 bytes-rw-r--r--src/3rdparty/libpng/pngbar.pngbin0 -> 2399 bytes-rw-r--r--src/3rdparty/libpng/pngconf.h1492
-rw-r--r--src/3rdparty/libpng/pngerror.c343
-rw-r--r--src/3rdparty/libpng/pnggccrd.c103
-rw-r--r--src/3rdparty/libpng/pngget.c901
-rw-r--r--src/3rdparty/libpng/pngmem.c608
-rw-r--r--src/3rdparty/libpng/pngnow.pngbin0 -> 2069 bytes-rw-r--r--src/3rdparty/libpng/pngpread.c1598
-rw-r--r--src/3rdparty/libpng/pngread.c1479
-rw-r--r--src/3rdparty/libpng/pngrio.c167
-rw-r--r--src/3rdparty/libpng/pngrtran.c4292
-rw-r--r--src/3rdparty/libpng/pngrutil.c3183
-rw-r--r--src/3rdparty/libpng/pngset.c1268
-rw-r--r--src/3rdparty/libpng/pngtest.c1563
-rw-r--r--src/3rdparty/libpng/pngtest.pngbin0 -> 8574 bytes-rw-r--r--src/3rdparty/libpng/pngtrans.c662
-rw-r--r--src/3rdparty/libpng/pngvcrd.c1
-rw-r--r--src/3rdparty/libpng/pngwio.c234
-rw-r--r--src/3rdparty/libpng/pngwrite.c1532
-rw-r--r--src/3rdparty/libpng/pngwtran.c572
-rw-r--r--src/3rdparty/libpng/pngwutil.c2802
-rw-r--r--src/3rdparty/libpng/projects/beos/x86-shared.projbin0 -> 17031 bytes-rw-r--r--src/3rdparty/libpng/projects/beos/x86-shared.txt22
-rw-r--r--src/3rdparty/libpng/projects/beos/x86-static.projbin0 -> 16706 bytes-rw-r--r--src/3rdparty/libpng/projects/beos/x86-static.txt22
-rw-r--r--src/3rdparty/libpng/projects/cbuilder5/libpng.bpf22
-rw-r--r--src/3rdparty/libpng/projects/cbuilder5/libpng.bpg25
-rw-r--r--src/3rdparty/libpng/projects/cbuilder5/libpng.bpr157
-rw-r--r--src/3rdparty/libpng/projects/cbuilder5/libpng.cpp29
-rw-r--r--src/3rdparty/libpng/projects/cbuilder5/libpng.readme.txt25
-rw-r--r--src/3rdparty/libpng/projects/cbuilder5/libpngstat.bpf22
-rw-r--r--src/3rdparty/libpng/projects/cbuilder5/libpngstat.bpr109
-rw-r--r--src/3rdparty/libpng/projects/cbuilder5/zlib.readme.txt14
-rw-r--r--src/3rdparty/libpng/projects/netware.txt6
-rw-r--r--src/3rdparty/libpng/projects/visualc6/README.txt57
-rw-r--r--src/3rdparty/libpng/projects/visualc6/libpng.dsp472
-rw-r--r--src/3rdparty/libpng/projects/visualc6/libpng.dsw59
-rw-r--r--src/3rdparty/libpng/projects/visualc6/pngtest.dsp314
-rw-r--r--src/3rdparty/libpng/projects/visualc71/PRJ0041.mak21
-rw-r--r--src/3rdparty/libpng/projects/visualc71/README.txt57
-rw-r--r--src/3rdparty/libpng/projects/visualc71/README_zlib.txt44
-rw-r--r--src/3rdparty/libpng/projects/visualc71/libpng.sln88
-rw-r--r--src/3rdparty/libpng/projects/visualc71/libpng.vcproj702
-rw-r--r--src/3rdparty/libpng/projects/visualc71/pngtest.vcproj459
-rw-r--r--src/3rdparty/libpng/projects/visualc71/zlib.vcproj670
-rw-r--r--src/3rdparty/libpng/projects/wince.txt6
-rw-r--r--src/3rdparty/libpng/scripts/CMakeLists.txt210
-rw-r--r--src/3rdparty/libpng/scripts/SCOPTIONS.ppc7
-rw-r--r--src/3rdparty/libpng/scripts/descrip.mms52
-rwxr-xr-xsrc/3rdparty/libpng/scripts/libpng-config-body.in96
-rwxr-xr-xsrc/3rdparty/libpng/scripts/libpng-config-head.in21
-rwxr-xr-xsrc/3rdparty/libpng/scripts/libpng-config.in124
-rw-r--r--src/3rdparty/libpng/scripts/libpng.icc44
-rw-r--r--src/3rdparty/libpng/scripts/libpng.pc-configure.in10
-rw-r--r--src/3rdparty/libpng/scripts/libpng.pc.in10
-rw-r--r--src/3rdparty/libpng/scripts/makefile.32sunu254
-rw-r--r--src/3rdparty/libpng/scripts/makefile.64sunu254
-rw-r--r--src/3rdparty/libpng/scripts/makefile.acorn51
-rw-r--r--src/3rdparty/libpng/scripts/makefile.aix113
-rw-r--r--src/3rdparty/libpng/scripts/makefile.amiga48
-rw-r--r--src/3rdparty/libpng/scripts/makefile.atari51
-rw-r--r--src/3rdparty/libpng/scripts/makefile.bc32152
-rw-r--r--src/3rdparty/libpng/scripts/makefile.beos226
-rw-r--r--src/3rdparty/libpng/scripts/makefile.bor162
-rw-r--r--src/3rdparty/libpng/scripts/makefile.cygwin299
-rw-r--r--src/3rdparty/libpng/scripts/makefile.darwin234
-rw-r--r--src/3rdparty/libpng/scripts/makefile.dec214
-rw-r--r--src/3rdparty/libpng/scripts/makefile.dj255
-rw-r--r--src/3rdparty/libpng/scripts/makefile.elf275
-rw-r--r--src/3rdparty/libpng/scripts/makefile.freebsd48
-rw-r--r--src/3rdparty/libpng/scripts/makefile.gcc79
-rw-r--r--src/3rdparty/libpng/scripts/makefile.gcmmx271
-rw-r--r--src/3rdparty/libpng/scripts/makefile.hp64235
-rw-r--r--src/3rdparty/libpng/scripts/makefile.hpgcc245
-rw-r--r--src/3rdparty/libpng/scripts/makefile.hpux232
-rw-r--r--src/3rdparty/libpng/scripts/makefile.ibmc71
-rw-r--r--src/3rdparty/libpng/scripts/makefile.intel102
-rw-r--r--src/3rdparty/libpng/scripts/makefile.knr99
-rw-r--r--src/3rdparty/libpng/scripts/makefile.linux249
-rw-r--r--src/3rdparty/libpng/scripts/makefile.mingw289
-rw-r--r--src/3rdparty/libpng/scripts/makefile.mips83
-rw-r--r--src/3rdparty/libpng/scripts/makefile.msc86
-rw-r--r--src/3rdparty/libpng/scripts/makefile.ne12bsd45
-rw-r--r--src/3rdparty/libpng/scripts/makefile.netbsd45
-rw-r--r--src/3rdparty/libpng/scripts/makefile.nommx252
-rw-r--r--src/3rdparty/libpng/scripts/makefile.openbsd73
-rw-r--r--src/3rdparty/libpng/scripts/makefile.os269
-rw-r--r--src/3rdparty/libpng/scripts/makefile.sco229
-rw-r--r--src/3rdparty/libpng/scripts/makefile.sggcc242
-rw-r--r--src/3rdparty/libpng/scripts/makefile.sgi245
-rw-r--r--src/3rdparty/libpng/scripts/makefile.so9251
-rw-r--r--src/3rdparty/libpng/scripts/makefile.solaris249
-rw-r--r--src/3rdparty/libpng/scripts/makefile.solaris-x86248
-rw-r--r--src/3rdparty/libpng/scripts/makefile.std92
-rw-r--r--src/3rdparty/libpng/scripts/makefile.sunos97
-rw-r--r--src/3rdparty/libpng/scripts/makefile.tc389
-rw-r--r--src/3rdparty/libpng/scripts/makefile.vcawin3299
-rw-r--r--src/3rdparty/libpng/scripts/makefile.vcwin3299
-rw-r--r--src/3rdparty/libpng/scripts/makefile.watcom109
-rw-r--r--src/3rdparty/libpng/scripts/makevms.com144
-rw-r--r--src/3rdparty/libpng/scripts/pngos2.def257
-rw-r--r--src/3rdparty/libpng/scripts/pngw32.def238
-rw-r--r--src/3rdparty/libpng/scripts/pngw32.rc112
-rw-r--r--src/3rdparty/libpng/scripts/smakefile.ppc30
-rw-r--r--src/3rdparty/libtiff/COPYRIGHT21
-rw-r--r--src/3rdparty/libtiff/ChangeLog3698
-rw-r--r--src/3rdparty/libtiff/HOWTO-RELEASE57
-rw-r--r--src/3rdparty/libtiff/Makefile.am54
-rw-r--r--src/3rdparty/libtiff/Makefile.in724
-rw-r--r--src/3rdparty/libtiff/Makefile.vc59
-rw-r--r--src/3rdparty/libtiff/README59
-rw-r--r--src/3rdparty/libtiff/RELEASE-DATE1
-rw-r--r--src/3rdparty/libtiff/SConstruct169
-rw-r--r--src/3rdparty/libtiff/TODO12
-rw-r--r--src/3rdparty/libtiff/VERSION1
-rw-r--r--src/3rdparty/libtiff/aclocal.m47281
-rwxr-xr-xsrc/3rdparty/libtiff/autogen.sh8
-rwxr-xr-xsrc/3rdparty/libtiff/config/compile142
-rwxr-xr-xsrc/3rdparty/libtiff/config/config.guess1497
-rwxr-xr-xsrc/3rdparty/libtiff/config/config.sub1608
-rwxr-xr-xsrc/3rdparty/libtiff/config/depcomp530
-rwxr-xr-xsrc/3rdparty/libtiff/config/install-sh323
-rwxr-xr-xsrc/3rdparty/libtiff/config/ltmain.sh7339
-rwxr-xr-xsrc/3rdparty/libtiff/config/missing360
-rwxr-xr-xsrc/3rdparty/libtiff/config/mkinstalldirs150
-rwxr-xr-xsrc/3rdparty/libtiff/configure22598
-rw-r--r--src/3rdparty/libtiff/configure.ac568
-rw-r--r--src/3rdparty/libtiff/html/Makefile.am81
-rw-r--r--src/3rdparty/libtiff/html/Makefile.in626
-rw-r--r--src/3rdparty/libtiff/html/TIFFTechNote2.html707
-rw-r--r--src/3rdparty/libtiff/html/addingtags.html292
-rw-r--r--src/3rdparty/libtiff/html/bugs.html53
-rw-r--r--src/3rdparty/libtiff/html/build.html880
-rw-r--r--src/3rdparty/libtiff/html/contrib.html209
-rw-r--r--src/3rdparty/libtiff/html/document.html52
-rw-r--r--src/3rdparty/libtiff/html/images.html41
-rw-r--r--src/3rdparty/libtiff/html/images/Makefile.am46
-rw-r--r--src/3rdparty/libtiff/html/images/Makefile.in436
-rw-r--r--src/3rdparty/libtiff/html/images/back.gifbin0 -> 1000 bytes-rw-r--r--src/3rdparty/libtiff/html/images/bali.jpgbin0 -> 26152 bytes-rw-r--r--src/3rdparty/libtiff/html/images/cat.gifbin0 -> 12477 bytes-rw-r--r--src/3rdparty/libtiff/html/images/cover.jpgbin0 -> 20189 bytes-rw-r--r--src/3rdparty/libtiff/html/images/cramps.gifbin0 -> 13137 bytes-rw-r--r--src/3rdparty/libtiff/html/images/dave.gifbin0 -> 8220 bytes-rw-r--r--src/3rdparty/libtiff/html/images/info.gifbin0 -> 131 bytes-rw-r--r--src/3rdparty/libtiff/html/images/jello.jpgbin0 -> 13744 bytes-rw-r--r--src/3rdparty/libtiff/html/images/jim.gifbin0 -> 14493 bytes-rw-r--r--src/3rdparty/libtiff/html/images/note.gifbin0 -> 264 bytes-rw-r--r--src/3rdparty/libtiff/html/images/oxford.gifbin0 -> 6069 bytes-rw-r--r--src/3rdparty/libtiff/html/images/quad.jpgbin0 -> 23904 bytes-rw-r--r--src/3rdparty/libtiff/html/images/ring.gifbin0 -> 4275 bytes-rw-r--r--src/3rdparty/libtiff/html/images/smallliz.jpgbin0 -> 16463 bytes-rw-r--r--src/3rdparty/libtiff/html/images/strike.gifbin0 -> 5610 bytes-rw-r--r--src/3rdparty/libtiff/html/images/warning.gifbin0 -> 287 bytes-rw-r--r--src/3rdparty/libtiff/html/index.html121
-rw-r--r--src/3rdparty/libtiff/html/internals.html572
-rw-r--r--src/3rdparty/libtiff/html/intro.html68
-rw-r--r--src/3rdparty/libtiff/html/libtiff.html747
-rw-r--r--src/3rdparty/libtiff/html/man/Makefile.am118
-rw-r--r--src/3rdparty/libtiff/html/man/Makefile.in504
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFClose.3tiff.html87
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFDataWidth.3tiff.html98
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFError.3tiff.html106
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFFlush.3tiff.html113
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFGetField.3tiff.html1446
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFOpen.3tiff.html421
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFPrintDirectory.3tiff.html225
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFRGBAImage.3tiff.html319
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFReadDirectory.3tiff.html218
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFReadEncodedStrip.3tiff.html133
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFReadEncodedTile.3tiff.html130
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFReadRGBAImage.3tiff.html301
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFReadRGBAStrip.3tiff.html208
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFReadRGBATile.3tiff.html261
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFReadRawStrip.3tiff.html109
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFReadRawTile.3tiff.html111
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFReadScanline.3tiff.html157
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFReadTile.3tiff.html133
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFSetDirectory.3tiff.html122
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFSetField.3tiff.html1362
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFWarning.3tiff.html108
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFWriteDirectory.3tiff.html176
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFWriteEncodedStrip.3tiff.html153
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFWriteEncodedTile.3tiff.html147
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFWriteRawStrip.3tiff.html144
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFWriteRawTile.3tiff.html128
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFWriteScanline.3tiff.html206
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFWriteTile.3tiff.html115
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFbuffer.3tiff.html116
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFcodec.3tiff.html116
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFcolor.3tiff.html975
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFmemory.3tiff.html110
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFquery.3tiff.html148
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFsize.3tiff.html95
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFstrip.3tiff.html129
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFswab.3tiff.html110
-rw-r--r--src/3rdparty/libtiff/html/man/TIFFtile.3tiff.html141
-rw-r--r--src/3rdparty/libtiff/html/man/fax2ps.1.html254
-rw-r--r--src/3rdparty/libtiff/html/man/fax2tiff.1.html607
-rw-r--r--src/3rdparty/libtiff/html/man/gif2tiff.1.html141
-rw-r--r--src/3rdparty/libtiff/html/man/index.html64
-rw-r--r--src/3rdparty/libtiff/html/man/libtiff.3tiff.html3137
-rw-r--r--src/3rdparty/libtiff/html/man/pal2rgb.1.html189
-rw-r--r--src/3rdparty/libtiff/html/man/ppm2tiff.1.html141
-rw-r--r--src/3rdparty/libtiff/html/man/ras2tiff.1.html139
-rw-r--r--src/3rdparty/libtiff/html/man/raw2tiff.1.html553
-rw-r--r--src/3rdparty/libtiff/html/man/rgb2ycbcr.1.html154
-rw-r--r--src/3rdparty/libtiff/html/man/sgi2tiff.1.html147
-rw-r--r--src/3rdparty/libtiff/html/man/thumbnail.1.html148
-rw-r--r--src/3rdparty/libtiff/html/man/tiff2bw.1.html160
-rw-r--r--src/3rdparty/libtiff/html/man/tiff2pdf.1.html599
-rw-r--r--src/3rdparty/libtiff/html/man/tiff2ps.1.html536
-rw-r--r--src/3rdparty/libtiff/html/man/tiff2rgba.1.html161
-rw-r--r--src/3rdparty/libtiff/html/man/tiffcmp.1.html156
-rw-r--r--src/3rdparty/libtiff/html/man/tiffcp.1.html484
-rw-r--r--src/3rdparty/libtiff/html/man/tiffdither.1.html182
-rw-r--r--src/3rdparty/libtiff/html/man/tiffdump.1.html145
-rw-r--r--src/3rdparty/libtiff/html/man/tiffgt.1.html551
-rw-r--r--src/3rdparty/libtiff/html/man/tiffinfo.1.html196
-rw-r--r--src/3rdparty/libtiff/html/man/tiffmedian.1.html183
-rw-r--r--src/3rdparty/libtiff/html/man/tiffset.1.html174
-rw-r--r--src/3rdparty/libtiff/html/man/tiffsplit.1.html102
-rw-r--r--src/3rdparty/libtiff/html/man/tiffsv.1.html207
-rw-r--r--src/3rdparty/libtiff/html/misc.html112
-rw-r--r--src/3rdparty/libtiff/html/support.html655
-rw-r--r--src/3rdparty/libtiff/html/tools.html155
-rw-r--r--src/3rdparty/libtiff/html/v3.4beta007.html112
-rw-r--r--src/3rdparty/libtiff/html/v3.4beta016.html122
-rw-r--r--src/3rdparty/libtiff/html/v3.4beta018.html84
-rw-r--r--src/3rdparty/libtiff/html/v3.4beta024.html139
-rw-r--r--src/3rdparty/libtiff/html/v3.4beta028.html146
-rw-r--r--src/3rdparty/libtiff/html/v3.4beta029.html86
-rw-r--r--src/3rdparty/libtiff/html/v3.4beta031.html94
-rw-r--r--src/3rdparty/libtiff/html/v3.4beta032.html90
-rw-r--r--src/3rdparty/libtiff/html/v3.4beta033.html82
-rw-r--r--src/3rdparty/libtiff/html/v3.4beta034.html68
-rw-r--r--src/3rdparty/libtiff/html/v3.4beta035.html63
-rw-r--r--src/3rdparty/libtiff/html/v3.4beta036.html117
-rw-r--r--src/3rdparty/libtiff/html/v3.5.1.html75
-rw-r--r--src/3rdparty/libtiff/html/v3.5.2.html108
-rw-r--r--src/3rdparty/libtiff/html/v3.5.3.html132
-rw-r--r--src/3rdparty/libtiff/html/v3.5.4.html88
-rw-r--r--src/3rdparty/libtiff/html/v3.5.5.html155
-rw-r--r--src/3rdparty/libtiff/html/v3.5.6-beta.html185
-rw-r--r--src/3rdparty/libtiff/html/v3.5.7.html259
-rw-r--r--src/3rdparty/libtiff/html/v3.6.0.html434
-rw-r--r--src/3rdparty/libtiff/html/v3.6.1.html199
-rw-r--r--src/3rdparty/libtiff/html/v3.7.0.html144
-rw-r--r--src/3rdparty/libtiff/html/v3.7.0alpha.html249
-rw-r--r--src/3rdparty/libtiff/html/v3.7.0beta.html162
-rw-r--r--src/3rdparty/libtiff/html/v3.7.0beta2.html131
-rw-r--r--src/3rdparty/libtiff/html/v3.7.1.html233
-rw-r--r--src/3rdparty/libtiff/html/v3.7.2.html222
-rw-r--r--src/3rdparty/libtiff/html/v3.7.3.html230
-rw-r--r--src/3rdparty/libtiff/html/v3.7.4.html133
-rw-r--r--src/3rdparty/libtiff/html/v3.8.0.html199
-rw-r--r--src/3rdparty/libtiff/html/v3.8.1.html217
-rw-r--r--src/3rdparty/libtiff/html/v3.8.2.html137
-rw-r--r--src/3rdparty/libtiff/libtiff/Makefile.am138
-rw-r--r--src/3rdparty/libtiff/libtiff/Makefile.in763
-rw-r--r--src/3rdparty/libtiff/libtiff/Makefile.vc98
-rw-r--r--src/3rdparty/libtiff/libtiff/SConstruct71
-rw-r--r--src/3rdparty/libtiff/libtiff/libtiff.def140
-rw-r--r--src/3rdparty/libtiff/libtiff/mkg3states.c440
-rw-r--r--src/3rdparty/libtiff/libtiff/t4.h285
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_acorn.c519
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_apple.c274
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_atari.c243
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_aux.c267
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_close.c119
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_codec.c150
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_color.c275
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_compress.c286
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_config.h296
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_config.h.in260
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_config.h.vc44
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_dir.c1350
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_dir.h199
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_dirinfo.c846
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_dirread.c1789
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_dirwrite.c1243
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_dumpmode.c117
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_error.c73
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_extension.c111
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_fax3.c1566
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_fax3.h525
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_fax3sm.c1253
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_flush.c67
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_getimage.c2598
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_jpeg.c1942
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_luv.c1606
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_lzw.c1084
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_msdos.c179
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_next.c144
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_ojpeg.c2629
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_open.c683
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_packbits.c293
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_pixarlog.c1342
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_predict.c626
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_predict.h64
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_print.c639
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_read.c650
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_stream.cxx289
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_strip.c294
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_swab.c235
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_thunder.c158
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_tile.c273
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_unix.c293
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_version.c33
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_warning.c74
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_win3.c225
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_win32.c393
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_write.c725
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_zip.c378
-rw-r--r--src/3rdparty/libtiff/libtiff/tiff.h647
-rw-r--r--src/3rdparty/libtiff/libtiff/tiffconf.h110
-rw-r--r--src/3rdparty/libtiff/libtiff/tiffconf.h.in100
-rw-r--r--src/3rdparty/libtiff/libtiff/tiffconf.h.vc97
-rw-r--r--src/3rdparty/libtiff/libtiff/tiffio.h515
-rw-r--r--src/3rdparty/libtiff/libtiff/tiffio.hxx42
-rw-r--r--src/3rdparty/libtiff/libtiff/tiffiop.h328
-rw-r--r--src/3rdparty/libtiff/libtiff/tiffvers.h9
-rw-r--r--src/3rdparty/libtiff/libtiff/uvcode.h173
-rw-r--r--src/3rdparty/libtiff/m4/acinclude.m4669
-rw-r--r--src/3rdparty/libtiff/m4/libtool.m46883
-rw-r--r--src/3rdparty/libtiff/m4/ltoptions.m4380
-rw-r--r--src/3rdparty/libtiff/m4/ltsugar.m4111
-rw-r--r--src/3rdparty/libtiff/m4/ltversion.m423
-rw-r--r--src/3rdparty/libtiff/nmake.opt214
-rw-r--r--src/3rdparty/libtiff/port/Makefile.am31
-rw-r--r--src/3rdparty/libtiff/port/Makefile.in501
-rw-r--r--src/3rdparty/libtiff/port/Makefile.vc43
-rw-r--r--src/3rdparty/libtiff/port/dummy.c12
-rw-r--r--src/3rdparty/libtiff/port/getopt.c124
-rw-r--r--src/3rdparty/libtiff/port/lfind.c58
-rw-r--r--src/3rdparty/libtiff/port/strcasecmp.c50
-rw-r--r--src/3rdparty/libtiff/port/strtoul.c109
-rw-r--r--src/3rdparty/libtiff/test/Makefile.am44
-rw-r--r--src/3rdparty/libtiff/test/Makefile.in607
-rw-r--r--src/3rdparty/libtiff/test/ascii_tag.c170
-rw-r--r--src/3rdparty/libtiff/test/check_tag.c72
-rw-r--r--src/3rdparty/libtiff/test/long_tag.c154
-rw-r--r--src/3rdparty/libtiff/test/short_tag.c179
-rw-r--r--src/3rdparty/libtiff/test/strip.c289
-rw-r--r--src/3rdparty/libtiff/test/strip_rw.c155
-rw-r--r--src/3rdparty/libtiff/test/test_arrays.c829
-rw-r--r--src/3rdparty/libtiff/test/test_arrays.h63
-rw-r--r--src/3rdparty/md4/md4.cpp265
-rw-r--r--src/3rdparty/md4/md4.h31
-rw-r--r--src/3rdparty/md5/md5.cpp246
-rw-r--r--src/3rdparty/md5/md5.h48
-rw-r--r--src/3rdparty/patches/freetype-2.3.5-config.patch265
-rw-r--r--src/3rdparty/patches/freetype-2.3.6-ascii.patch174
-rw-r--r--src/3rdparty/patches/libjpeg-6b-config.patch50
-rw-r--r--src/3rdparty/patches/libmng-1.0.10-endless-loop.patch65
-rw-r--r--src/3rdparty/patches/libpng-1.2.20-elf-visibility.patch17
-rw-r--r--src/3rdparty/patches/libtiff-3.8.2-config.patch374
-rw-r--r--src/3rdparty/patches/sqlite-3.5.6-config.patch38
-rw-r--r--src/3rdparty/patches/sqlite-3.5.6-wince.patch19
-rw-r--r--src/3rdparty/patches/zlib-1.2.3-elf-visibility.patch433
-rw-r--r--src/3rdparty/phonon/CMakeLists.txt272
-rw-r--r--src/3rdparty/phonon/COPYING.LIB510
-rw-r--r--src/3rdparty/phonon/ds9/CMakeLists.txt53
-rw-r--r--src/3rdparty/phonon/ds9/ConfigureChecks.cmake44
-rw-r--r--src/3rdparty/phonon/ds9/abstractvideorenderer.cpp118
-rw-r--r--src/3rdparty/phonon/ds9/abstractvideorenderer.h73
-rw-r--r--src/3rdparty/phonon/ds9/audiooutput.cpp111
-rw-r--r--src/3rdparty/phonon/ds9/audiooutput.h68
-rw-r--r--src/3rdparty/phonon/ds9/backend.cpp343
-rw-r--r--src/3rdparty/phonon/ds9/backend.h83
-rw-r--r--src/3rdparty/phonon/ds9/backendnode.cpp115
-rw-r--r--src/3rdparty/phonon/ds9/backendnode.h73
-rw-r--r--src/3rdparty/phonon/ds9/compointer.h114
-rw-r--r--src/3rdparty/phonon/ds9/ds9.desktop51
-rw-r--r--src/3rdparty/phonon/ds9/effect.cpp153
-rw-r--r--src/3rdparty/phonon/ds9/effect.h59
-rw-r--r--src/3rdparty/phonon/ds9/fakesource.cpp166
-rw-r--r--src/3rdparty/phonon/ds9/fakesource.h54
-rw-r--r--src/3rdparty/phonon/ds9/iodevicereader.cpp228
-rw-r--r--src/3rdparty/phonon/ds9/iodevicereader.h57
-rw-r--r--src/3rdparty/phonon/ds9/lgpl-2.1.txt504
-rw-r--r--src/3rdparty/phonon/ds9/lgpl-3.txt165
-rw-r--r--src/3rdparty/phonon/ds9/mediagraph.cpp1099
-rw-r--r--src/3rdparty/phonon/ds9/mediagraph.h148
-rw-r--r--src/3rdparty/phonon/ds9/mediaobject.cpp1208
-rw-r--r--src/3rdparty/phonon/ds9/mediaobject.h313
-rw-r--r--src/3rdparty/phonon/ds9/phononds9_namespace.h33
-rw-r--r--src/3rdparty/phonon/ds9/qasyncreader.cpp198
-rw-r--r--src/3rdparty/phonon/ds9/qasyncreader.h77
-rw-r--r--src/3rdparty/phonon/ds9/qaudiocdreader.cpp332
-rw-r--r--src/3rdparty/phonon/ds9/qaudiocdreader.h58
-rw-r--r--src/3rdparty/phonon/ds9/qbasefilter.cpp831
-rw-r--r--src/3rdparty/phonon/ds9/qbasefilter.h136
-rw-r--r--src/3rdparty/phonon/ds9/qmeminputpin.cpp357
-rw-r--r--src/3rdparty/phonon/ds9/qmeminputpin.h82
-rw-r--r--src/3rdparty/phonon/ds9/qpin.cpp653
-rw-r--r--src/3rdparty/phonon/ds9/qpin.h121
-rw-r--r--src/3rdparty/phonon/ds9/videorenderer_soft.cpp1011
-rw-r--r--src/3rdparty/phonon/ds9/videorenderer_soft.h68
-rw-r--r--src/3rdparty/phonon/ds9/videorenderer_vmr9.cpp333
-rw-r--r--src/3rdparty/phonon/ds9/videorenderer_vmr9.h56
-rw-r--r--src/3rdparty/phonon/ds9/videowidget.cpp397
-rw-r--r--src/3rdparty/phonon/ds9/videowidget.h96
-rw-r--r--src/3rdparty/phonon/ds9/volumeeffect.cpp296
-rw-r--r--src/3rdparty/phonon/ds9/volumeeffect.h71
-rw-r--r--src/3rdparty/phonon/gstreamer/CMakeLists.txt72
-rw-r--r--src/3rdparty/phonon/gstreamer/ConfigureChecks.cmake37
-rw-r--r--src/3rdparty/phonon/gstreamer/Messages.sh5
-rw-r--r--src/3rdparty/phonon/gstreamer/abstractrenderer.cpp56
-rw-r--r--src/3rdparty/phonon/gstreamer/abstractrenderer.h62
-rw-r--r--src/3rdparty/phonon/gstreamer/alsasink2.c1756
-rw-r--r--src/3rdparty/phonon/gstreamer/alsasink2.h87
-rw-r--r--src/3rdparty/phonon/gstreamer/artssink.cpp277
-rw-r--r--src/3rdparty/phonon/gstreamer/artssink.h91
-rw-r--r--src/3rdparty/phonon/gstreamer/audioeffect.cpp78
-rw-r--r--src/3rdparty/phonon/gstreamer/audioeffect.h55
-rw-r--r--src/3rdparty/phonon/gstreamer/audiooutput.cpp257
-rw-r--r--src/3rdparty/phonon/gstreamer/audiooutput.h82
-rw-r--r--src/3rdparty/phonon/gstreamer/backend.cpp455
-rw-r--r--src/3rdparty/phonon/gstreamer/backend.h101
-rw-r--r--src/3rdparty/phonon/gstreamer/common.h51
-rw-r--r--src/3rdparty/phonon/gstreamer/devicemanager.cpp357
-rw-r--r--src/3rdparty/phonon/gstreamer/devicemanager.h80
-rw-r--r--src/3rdparty/phonon/gstreamer/effect.cpp246
-rw-r--r--src/3rdparty/phonon/gstreamer/effect.h64
-rw-r--r--src/3rdparty/phonon/gstreamer/effectmanager.cpp105
-rw-r--r--src/3rdparty/phonon/gstreamer/effectmanager.h91
-rw-r--r--src/3rdparty/phonon/gstreamer/glrenderer.cpp339
-rw-r--r--src/3rdparty/phonon/gstreamer/glrenderer.h101
-rw-r--r--src/3rdparty/phonon/gstreamer/gsthelper.cpp170
-rw-r--r--src/3rdparty/phonon/gstreamer/gsthelper.h49
-rw-r--r--src/3rdparty/phonon/gstreamer/gstreamer.desktop51
-rw-r--r--src/3rdparty/phonon/gstreamer/lgpl-2.1.txt504
-rw-r--r--src/3rdparty/phonon/gstreamer/lgpl-3.txt165
-rw-r--r--src/3rdparty/phonon/gstreamer/medianode.cpp456
-rw-r--r--src/3rdparty/phonon/gstreamer/medianode.h128
-rw-r--r--src/3rdparty/phonon/gstreamer/medianodeevent.cpp38
-rw-r--r--src/3rdparty/phonon/gstreamer/medianodeevent.h70
-rw-r--r--src/3rdparty/phonon/gstreamer/mediaobject.cpp1479
-rw-r--r--src/3rdparty/phonon/gstreamer/mediaobject.h294
-rw-r--r--src/3rdparty/phonon/gstreamer/message.cpp75
-rw-r--r--src/3rdparty/phonon/gstreamer/message.h58
-rw-r--r--src/3rdparty/phonon/gstreamer/phononsrc.cpp257
-rw-r--r--src/3rdparty/phonon/gstreamer/phononsrc.h69
-rw-r--r--src/3rdparty/phonon/gstreamer/qwidgetvideosink.cpp221
-rw-r--r--src/3rdparty/phonon/gstreamer/qwidgetvideosink.h97
-rw-r--r--src/3rdparty/phonon/gstreamer/streamreader.cpp53
-rw-r--r--src/3rdparty/phonon/gstreamer/streamreader.h96
-rw-r--r--src/3rdparty/phonon/gstreamer/videowidget.cpp387
-rw-r--r--src/3rdparty/phonon/gstreamer/videowidget.h106
-rw-r--r--src/3rdparty/phonon/gstreamer/volumefadereffect.cpp162
-rw-r--r--src/3rdparty/phonon/gstreamer/volumefadereffect.h70
-rw-r--r--src/3rdparty/phonon/gstreamer/widgetrenderer.cpp150
-rw-r--r--src/3rdparty/phonon/gstreamer/widgetrenderer.h63
-rw-r--r--src/3rdparty/phonon/gstreamer/x11renderer.cpp194
-rw-r--r--src/3rdparty/phonon/gstreamer/x11renderer.h68
-rw-r--r--src/3rdparty/phonon/includes/CMakeLists.txt49
-rw-r--r--src/3rdparty/phonon/includes/Phonon/AbstractAudioOutput1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/AbstractMediaStream1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/AbstractVideoOutput1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/AddonInterface1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/AudioDevice1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/AudioDeviceEnumerator1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/AudioOutput1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/AudioOutputDevice1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/AudioOutputDeviceModel1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/AudioOutputInterface1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/BackendCapabilities1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/BackendInterface1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/Effect1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/EffectDescription1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/EffectDescriptionModel1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/EffectInterface1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/EffectParameter1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/EffectWidget1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/Experimental/AbstractVideoDataOutput1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/Experimental/AudioDataOutput1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/Experimental/SnapshotInterface1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/Experimental/VideoDataOutput1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/Experimental/VideoDataOutputInterface1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/Experimental/VideoFrame1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/Experimental/VideoFrame21
-rw-r--r--src/3rdparty/phonon/includes/Phonon/Experimental/Visualization1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/Global1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/MediaController1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/MediaNode1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/MediaObject1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/MediaObjectInterface1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/MediaSource1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/ObjectDescription1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/ObjectDescriptionModel1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/Path1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/PlatformPlugin1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/SeekSlider1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/StreamInterface1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/VideoPlayer1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/VideoWidget1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/VideoWidgetInterface1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/VolumeFaderEffect1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/VolumeFaderInterface1
-rw-r--r--src/3rdparty/phonon/includes/Phonon/VolumeSlider1
-rw-r--r--src/3rdparty/phonon/phonon.pc.cmake11
-rw-r--r--src/3rdparty/phonon/phonon/.krazy2
-rw-r--r--src/3rdparty/phonon/phonon/BUGS9
-rw-r--r--src/3rdparty/phonon/phonon/CMakeLists.txt104
-rw-r--r--src/3rdparty/phonon/phonon/IDEAS70
-rw-r--r--src/3rdparty/phonon/phonon/Messages.sh6
-rw-r--r--src/3rdparty/phonon/phonon/TODO31
-rw-r--r--src/3rdparty/phonon/phonon/abstractaudiooutput.cpp50
-rw-r--r--src/3rdparty/phonon/phonon/abstractaudiooutput.h57
-rw-r--r--src/3rdparty/phonon/phonon/abstractaudiooutput_p.cpp44
-rw-r--r--src/3rdparty/phonon/phonon/abstractaudiooutput_p.h50
-rw-r--r--src/3rdparty/phonon/phonon/abstractmediastream.cpp198
-rw-r--r--src/3rdparty/phonon/phonon/abstractmediastream.h227
-rw-r--r--src/3rdparty/phonon/phonon/abstractmediastream_p.h83
-rw-r--r--src/3rdparty/phonon/phonon/abstractvideooutput.cpp41
-rw-r--r--src/3rdparty/phonon/phonon/abstractvideooutput.h74
-rw-r--r--src/3rdparty/phonon/phonon/abstractvideooutput_p.cpp41
-rw-r--r--src/3rdparty/phonon/phonon/abstractvideooutput_p.h48
-rw-r--r--src/3rdparty/phonon/phonon/addoninterface.h103
-rw-r--r--src/3rdparty/phonon/phonon/audiooutput.cpp418
-rw-r--r--src/3rdparty/phonon/phonon/audiooutput.h179
-rw-r--r--src/3rdparty/phonon/phonon/audiooutput_p.h95
-rw-r--r--src/3rdparty/phonon/phonon/audiooutputadaptor.cpp101
-rw-r--r--src/3rdparty/phonon/phonon/audiooutputadaptor_p.h109
-rw-r--r--src/3rdparty/phonon/phonon/audiooutputinterface.cpp40
-rw-r--r--src/3rdparty/phonon/phonon/audiooutputinterface.h151
-rw-r--r--src/3rdparty/phonon/phonon/backend.dox107
-rw-r--r--src/3rdparty/phonon/phonon/backendcapabilities.cpp121
-rw-r--r--src/3rdparty/phonon/phonon/backendcapabilities.h213
-rw-r--r--src/3rdparty/phonon/phonon/backendcapabilities_p.h50
-rw-r--r--src/3rdparty/phonon/phonon/backendinterface.h287
-rw-r--r--src/3rdparty/phonon/phonon/effect.cpp136
-rw-r--r--src/3rdparty/phonon/phonon/effect.h119
-rw-r--r--src/3rdparty/phonon/phonon/effect_p.h61
-rw-r--r--src/3rdparty/phonon/phonon/effectinterface.h68
-rw-r--r--src/3rdparty/phonon/phonon/effectparameter.cpp142
-rw-r--r--src/3rdparty/phonon/phonon/effectparameter.h237
-rw-r--r--src/3rdparty/phonon/phonon/effectparameter_p.h56
-rw-r--r--src/3rdparty/phonon/phonon/effectwidget.cpp254
-rw-r--r--src/3rdparty/phonon/phonon/effectwidget.h76
-rw-r--r--src/3rdparty/phonon/phonon/effectwidget_p.h64
-rwxr-xr-xsrc/3rdparty/phonon/phonon/extractmethodcalls.rb527
-rw-r--r--src/3rdparty/phonon/phonon/factory.cpp457
-rw-r--r--src/3rdparty/phonon/phonon/factory_p.h196
-rw-r--r--src/3rdparty/phonon/phonon/frontendinterface_p.h68
-rw-r--r--src/3rdparty/phonon/phonon/globalconfig.cpp243
-rw-r--r--src/3rdparty/phonon/phonon/globalconfig_p.h65
-rw-r--r--src/3rdparty/phonon/phonon/globalstatic_p.h293
-rw-r--r--src/3rdparty/phonon/phonon/iodevicestream.cpp100
-rw-r--r--src/3rdparty/phonon/phonon/iodevicestream_p.h58
-rw-r--r--src/3rdparty/phonon/phonon/mediacontroller.cpp239
-rw-r--r--src/3rdparty/phonon/phonon/mediacontroller.h188
-rw-r--r--src/3rdparty/phonon/phonon/medianode.cpp130
-rw-r--r--src/3rdparty/phonon/phonon/medianode.h69
-rw-r--r--src/3rdparty/phonon/phonon/medianode_p.h145
-rw-r--r--src/3rdparty/phonon/phonon/medianodedestructionhandler_p.h62
-rw-r--r--src/3rdparty/phonon/phonon/mediaobject.cpp572
-rw-r--r--src/3rdparty/phonon/phonon/mediaobject.dox71
-rw-r--r--src/3rdparty/phonon/phonon/mediaobject.h625
-rw-r--r--src/3rdparty/phonon/phonon/mediaobject_p.h113
-rw-r--r--src/3rdparty/phonon/phonon/mediaobjectinterface.h242
-rw-r--r--src/3rdparty/phonon/phonon/mediasource.cpp232
-rw-r--r--src/3rdparty/phonon/phonon/mediasource.h279
-rw-r--r--src/3rdparty/phonon/phonon/mediasource_p.h89
-rw-r--r--src/3rdparty/phonon/phonon/objectdescription.cpp140
-rw-r--r--src/3rdparty/phonon/phonon/objectdescription.h342
-rw-r--r--src/3rdparty/phonon/phonon/objectdescription_p.h64
-rw-r--r--src/3rdparty/phonon/phonon/objectdescriptionmodel.cpp392
-rw-r--r--src/3rdparty/phonon/phonon/objectdescriptionmodel.h380
-rw-r--r--src/3rdparty/phonon/phonon/objectdescriptionmodel_p.h65
-rw-r--r--src/3rdparty/phonon/phonon/org.kde.Phonon.AudioOutput.xml32
-rw-r--r--src/3rdparty/phonon/phonon/path.cpp472
-rw-r--r--src/3rdparty/phonon/phonon/path.h243
-rw-r--r--src/3rdparty/phonon/phonon/path_p.h79
-rw-r--r--src/3rdparty/phonon/phonon/phonon_export.h58
-rw-r--r--src/3rdparty/phonon/phonon/phonondefs.h144
-rw-r--r--src/3rdparty/phonon/phonon/phonondefs_p.h369
-rw-r--r--src/3rdparty/phonon/phonon/phononnamespace.cpp92
-rw-r--r--src/3rdparty/phonon/phonon/phononnamespace.h306
-rw-r--r--src/3rdparty/phonon/phonon/phononnamespace.h.in306
-rw-r--r--src/3rdparty/phonon/phonon/phononnamespace_p.h38
-rw-r--r--src/3rdparty/phonon/phonon/platform.cpp144
-rw-r--r--src/3rdparty/phonon/phonon/platform_p.h62
-rw-r--r--src/3rdparty/phonon/phonon/platformplugin.h118
-rwxr-xr-xsrc/3rdparty/phonon/phonon/preprocessandextract.sh39
-rw-r--r--src/3rdparty/phonon/phonon/qsettingsgroup_p.h91
-rw-r--r--src/3rdparty/phonon/phonon/seekslider.cpp263
-rw-r--r--src/3rdparty/phonon/phonon/seekslider.h157
-rw-r--r--src/3rdparty/phonon/phonon/seekslider_p.h101
-rw-r--r--src/3rdparty/phonon/phonon/stream-thoughts72
-rw-r--r--src/3rdparty/phonon/phonon/streaminterface.cpp114
-rw-r--r--src/3rdparty/phonon/phonon/streaminterface.h123
-rw-r--r--src/3rdparty/phonon/phonon/streaminterface_p.h59
-rw-r--r--src/3rdparty/phonon/phonon/videoplayer.cpp184
-rw-r--r--src/3rdparty/phonon/phonon/videoplayer.h207
-rw-r--r--src/3rdparty/phonon/phonon/videowidget.cpp183
-rw-r--r--src/3rdparty/phonon/phonon/videowidget.h219
-rw-r--r--src/3rdparty/phonon/phonon/videowidget_p.h84
-rw-r--r--src/3rdparty/phonon/phonon/videowidgetinterface.h65
-rw-r--r--src/3rdparty/phonon/phonon/volumefadereffect.cpp108
-rw-r--r--src/3rdparty/phonon/phonon/volumefadereffect.h178
-rw-r--r--src/3rdparty/phonon/phonon/volumefadereffect_p.h58
-rw-r--r--src/3rdparty/phonon/phonon/volumefaderinterface.h58
-rw-r--r--src/3rdparty/phonon/phonon/volumeslider.cpp262
-rw-r--r--src/3rdparty/phonon/phonon/volumeslider.h155
-rw-r--r--src/3rdparty/phonon/phonon/volumeslider_p.h101
-rw-r--r--src/3rdparty/phonon/qt7/CMakeLists.txt58
-rw-r--r--src/3rdparty/phonon/qt7/ConfigureChecks.cmake16
-rw-r--r--src/3rdparty/phonon/qt7/audioconnection.h84
-rw-r--r--src/3rdparty/phonon/qt7/audioconnection.mm152
-rw-r--r--src/3rdparty/phonon/qt7/audiodevice.h52
-rw-r--r--src/3rdparty/phonon/qt7/audiodevice.mm177
-rw-r--r--src/3rdparty/phonon/qt7/audioeffects.h80
-rw-r--r--src/3rdparty/phonon/qt7/audioeffects.mm254
-rw-r--r--src/3rdparty/phonon/qt7/audiograph.h86
-rw-r--r--src/3rdparty/phonon/qt7/audiograph.mm320
-rw-r--r--src/3rdparty/phonon/qt7/audiomixer.h91
-rw-r--r--src/3rdparty/phonon/qt7/audiomixer.mm181
-rw-r--r--src/3rdparty/phonon/qt7/audionode.h86
-rw-r--r--src/3rdparty/phonon/qt7/audionode.mm240
-rw-r--r--src/3rdparty/phonon/qt7/audiooutput.h88
-rw-r--r--src/3rdparty/phonon/qt7/audiooutput.mm168
-rw-r--r--src/3rdparty/phonon/qt7/audiopartoutput.h47
-rw-r--r--src/3rdparty/phonon/qt7/audiopartoutput.mm69
-rw-r--r--src/3rdparty/phonon/qt7/audiosplitter.h50
-rw-r--r--src/3rdparty/phonon/qt7/audiosplitter.mm52
-rw-r--r--src/3rdparty/phonon/qt7/backend.h61
-rw-r--r--src/3rdparty/phonon/qt7/backend.mm276
-rw-r--r--src/3rdparty/phonon/qt7/backendheader.h184
-rw-r--r--src/3rdparty/phonon/qt7/backendheader.mm127
-rw-r--r--src/3rdparty/phonon/qt7/backendinfo.h48
-rw-r--r--src/3rdparty/phonon/qt7/backendinfo.mm311
-rw-r--r--src/3rdparty/phonon/qt7/lgpl-2.1.txt504
-rw-r--r--src/3rdparty/phonon/qt7/lgpl-3.txt165
-rw-r--r--src/3rdparty/phonon/qt7/medianode.h85
-rw-r--r--src/3rdparty/phonon/qt7/medianode.mm261
-rw-r--r--src/3rdparty/phonon/qt7/medianodeevent.h71
-rw-r--r--src/3rdparty/phonon/qt7/medianodeevent.mm37
-rw-r--r--src/3rdparty/phonon/qt7/medianodevideopart.h42
-rw-r--r--src/3rdparty/phonon/qt7/medianodevideopart.mm37
-rw-r--r--src/3rdparty/phonon/qt7/mediaobject.h171
-rw-r--r--src/3rdparty/phonon/qt7/mediaobject.mm852
-rw-r--r--src/3rdparty/phonon/qt7/mediaobjectaudionode.h75
-rw-r--r--src/3rdparty/phonon/qt7/mediaobjectaudionode.mm207
-rw-r--r--src/3rdparty/phonon/qt7/quicktimeaudioplayer.h112
-rw-r--r--src/3rdparty/phonon/qt7/quicktimeaudioplayer.mm491
-rw-r--r--src/3rdparty/phonon/qt7/quicktimemetadata.h67
-rw-r--r--src/3rdparty/phonon/qt7/quicktimemetadata.mm185
-rw-r--r--src/3rdparty/phonon/qt7/quicktimestreamreader.h71
-rw-r--r--src/3rdparty/phonon/qt7/quicktimestreamreader.mm137
-rw-r--r--src/3rdparty/phonon/qt7/quicktimevideoplayer.h167
-rw-r--r--src/3rdparty/phonon/qt7/quicktimevideoplayer.mm955
-rw-r--r--src/3rdparty/phonon/qt7/videoeffect.h63
-rw-r--r--src/3rdparty/phonon/qt7/videoeffect.mm76
-rw-r--r--src/3rdparty/phonon/qt7/videoframe.h98
-rw-r--r--src/3rdparty/phonon/qt7/videoframe.mm378
-rw-r--r--src/3rdparty/phonon/qt7/videowidget.h71
-rw-r--r--src/3rdparty/phonon/qt7/videowidget.mm883
-rw-r--r--src/3rdparty/phonon/waveout/audiooutput.cpp78
-rw-r--r--src/3rdparty/phonon/waveout/audiooutput.h65
-rw-r--r--src/3rdparty/phonon/waveout/backend.cpp131
-rw-r--r--src/3rdparty/phonon/waveout/backend.h69
-rw-r--r--src/3rdparty/phonon/waveout/mediaobject.cpp686
-rw-r--r--src/3rdparty/phonon/waveout/mediaobject.h162
-rw-r--r--src/3rdparty/ptmalloc/COPYRIGHT19
-rw-r--r--src/3rdparty/ptmalloc/ChangeLog33
-rw-r--r--src/3rdparty/ptmalloc/Makefile211
-rw-r--r--src/3rdparty/ptmalloc/README186
-rw-r--r--src/3rdparty/ptmalloc/lran2.h51
-rw-r--r--src/3rdparty/ptmalloc/malloc-2.8.3.h534
-rw-r--r--src/3rdparty/ptmalloc/malloc-private.h170
-rw-r--r--src/3rdparty/ptmalloc/malloc.c5515
-rw-r--r--src/3rdparty/ptmalloc/ptmalloc3.c1135
-rw-r--r--src/3rdparty/ptmalloc/sysdeps/generic/atomic.h1
-rw-r--r--src/3rdparty/ptmalloc/sysdeps/generic/malloc-machine.h68
-rw-r--r--src/3rdparty/ptmalloc/sysdeps/generic/thread-st.h48
-rw-r--r--src/3rdparty/ptmalloc/sysdeps/pthread/malloc-machine.h131
-rw-r--r--src/3rdparty/ptmalloc/sysdeps/pthread/thread-st.h111
-rw-r--r--src/3rdparty/ptmalloc/sysdeps/solaris/malloc-machine.h51
-rw-r--r--src/3rdparty/ptmalloc/sysdeps/solaris/thread-st.h72
-rw-r--r--src/3rdparty/ptmalloc/sysdeps/sproc/malloc-machine.h51
-rw-r--r--src/3rdparty/ptmalloc/sysdeps/sproc/thread-st.h85
-rw-r--r--src/3rdparty/sha1/sha1.cpp263
-rw-r--r--src/3rdparty/sqlite/shell.c2093
-rw-r--r--src/3rdparty/sqlite/sqlite3.c87017
-rw-r--r--src/3rdparty/sqlite/sqlite3.h5638
-rw-r--r--src/3rdparty/webkit/ChangeLog3103
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/APICast.h119
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSBase.cpp116
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSBase.h130
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSBasePrivate.h52
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackConstructor.cpp79
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackConstructor.h57
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp70
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.h58
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObject.cpp41
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObject.h114
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObjectFunctions.h496
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSClassRef.cpp244
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSClassRef.h122
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.cpp152
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.h132
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.cpp507
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.h694
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSProfilerPrivate.cpp46
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSProfilerPrivate.h63
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSRetainPtr.h173
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSStringRef.cpp109
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSStringRef.h144
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSStringRefBSTR.cpp42
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSStringRefBSTR.h62
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSStringRefCF.cpp52
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSStringRefCF.h60
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSValueRef.cpp270
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSValueRef.h278
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JavaScript.h36
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JavaScriptCore.h32
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/OpaqueJSString.cpp55
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/OpaqueJSString.h81
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/WebKitAvailability.h763
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/AUTHORS2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/COPYING.LIB488
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ChangeLog26053
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ChangeLog-2002-12-032271
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ChangeLog-2003-10-251483
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ChangeLog-2007-10-1426221
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ChangeLog-2008-08-1031482
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/DerivedSources.make75
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ForwardingHeaders/JavaScriptCore/APICast.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSBase.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSContextRef.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSObjectRef.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSRetainPtr.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSStringRef.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSStringRefCF.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSValueRef.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ForwardingHeaders/JavaScriptCore/JavaScript.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ForwardingHeaders/JavaScriptCore/JavaScriptCore.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ForwardingHeaders/JavaScriptCore/OpaqueJSString.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ForwardingHeaders/JavaScriptCore/WebKitAvailability.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/Info.plist24
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.order1526
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri215
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro72
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/JavaScriptCorePrefix.h44
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/THANKS8
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h160
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssembler.h1929
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/assembler/X86Assembler.h1675
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp1605
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.h553
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/EvalCodeCache.h80
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/Instruction.h146
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/JumpTable.cpp45
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/JumpTable.h102
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.cpp186
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h231
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/SamplingTool.cpp300
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/SamplingTool.h214
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/StructureStubInfo.cpp80
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/StructureStubInfo.h156
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp1778
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.h479
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecompiler/Label.h92
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecompiler/LabelScope.h79
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecompiler/RegisterID.h121
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecompiler/SegmentedVector.h170
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/config.h66
-rwxr-xr-xsrc/3rdparty/webkit/JavaScriptCore/create_hash_table278
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/debugger/Debugger.cpp54
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/debugger/Debugger.h59
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerCallFrame.cpp81
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerCallFrame.h67
-rwxr-xr-xsrc/3rdparty/webkit/JavaScriptCore/docs/make-bytecode-docs.pl42
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/ArrayPrototype.lut.h37
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/DatePrototype.lut.h62
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/Grammar.cpp5106
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/Grammar.h232
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/Lexer.lut.h54
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/MathObject.lut.h36
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/NumberConstructor.lut.h23
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/RegExpConstructor.lut.h39
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/RegExpObject.lut.h23
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/StringPrototype.lut.h50
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/chartables.c96
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/headers.pri9
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/CallFrame.cpp38
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/CallFrame.h147
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp6108
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.h375
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/Register.h299
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/RegisterFile.cpp45
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/RegisterFile.h222
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/ExecutableAllocator.cpp38
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/ExecutableAllocator.h179
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/ExecutableAllocatorPosix.cpp56
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/ExecutableAllocatorWin.cpp56
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JIT.cpp1907
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JIT.h530
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITArithmetic.cpp769
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITCall.cpp353
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITInlineMethods.h406
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITPropertyAccess.cpp704
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jsc.cpp490
-rwxr-xr-xsrc/3rdparty/webkit/JavaScriptCore/make-generated-sources.sh11
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/os-win32/stdbool.h45
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/os-win32/stdint.h66
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/os-wince/ce_time.cpp677
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/os-wince/ce_time.h16
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Grammar.y2084
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Keywords.table72
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Lexer.cpp900
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h171
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/NodeInfo.h63
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp2721
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h2418
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Parser.cpp104
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Parser.h123
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/ResultType.h159
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/SourceCode.h91
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/SourceProvider.h79
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/AUTHORS12
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/COPYING35
-rwxr-xr-xsrc/3rdparty/webkit/JavaScriptCore/pcre/dftables272
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/pcre.h68
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/pcre.pri35
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/pcre_compile.cpp2699
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/pcre_exec.cpp2176
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/pcre_internal.h423
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/pcre_tables.cpp72
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/pcre_ucp_searchfuncs.cpp99
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/pcre_xclass.cpp115
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/ucpinternal.h126
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/ucptable.cpp2968
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/CallIdentifier.h95
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/HeavyProfile.cpp115
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/HeavyProfile.h63
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/Profile.cpp137
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/Profile.h83
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/ProfileGenerator.cpp169
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/ProfileGenerator.h76
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/ProfileNode.cpp352
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/ProfileNode.h178
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/Profiler.cpp153
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/Profiler.h75
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/ProfilerServer.h35
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/ProfilerServer.mm106
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/TreeProfile.cpp51
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/TreeProfile.h51
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ArgList.cpp84
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ArgList.h161
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.cpp232
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.h227
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ArrayConstructor.cpp84
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ArrayConstructor.h40
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ArrayPrototype.cpp794
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ArrayPrototype.h41
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/BatchedTransitionOptimizer.h55
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/BooleanConstructor.cpp78
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/BooleanConstructor.h44
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/BooleanObject.cpp35
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/BooleanObject.h46
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/BooleanPrototype.cpp82
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/BooleanPrototype.h35
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ByteArray.cpp38
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ByteArray.h70
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/CallData.cpp42
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/CallData.h63
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ClassInfo.h62
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp1223
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Collector.h287
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/CollectorHeapIterator.h90
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/CommonIdentifiers.cpp38
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/CommonIdentifiers.h87
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Completion.cpp77
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Completion.h63
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ConstructData.cpp42
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ConstructData.h63
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DateConstructor.cpp175
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DateConstructor.h43
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DateInstance.cpp116
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DateInstance.h65
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DateMath.cpp1067
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DateMath.h191
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DatePrototype.cpp1056
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DatePrototype.h47
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Error.cpp127
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Error.h65
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ErrorConstructor.cpp73
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ErrorConstructor.h44
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ErrorInstance.cpp33
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ErrorInstance.h38
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ErrorPrototype.cpp67
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ErrorPrototype.h37
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ExceptionHelpers.cpp234
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ExceptionHelpers.h57
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/FunctionConstructor.cpp128
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/FunctionConstructor.h44
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/FunctionPrototype.cpp136
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/FunctionPrototype.h44
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/GetterSetter.cpp84
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/GetterSetter.h75
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/GlobalEvalFunction.cpp49
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/GlobalEvalFunction.h46
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Identifier.cpp268
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Identifier.h144
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/InitializeThreading.cpp72
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/InitializeThreading.h40
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/InternalFunction.cpp51
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/InternalFunction.h64
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.cpp184
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.h96
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.cpp1005
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.h126
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSByteArray.cpp95
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSByteArray.h111
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSCell.cpp223
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSCell.h311
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSFunction.cpp174
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSFunction.h103
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.cpp188
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.h138
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.cpp460
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.h380
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp432
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObjectFunctions.h58
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSImmediate.cpp96
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSImmediate.h601
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSLock.cpp200
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSLock.h102
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSNotAnObject.cpp125
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSNotAnObject.h97
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSNumberCell.cpp124
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSNumberCell.h262
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSObject.cpp518
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSObject.h554
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSPropertyNameIterator.cpp90
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSPropertyNameIterator.h116
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSStaticScopeObject.cpp84
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSStaticScopeObject.h69
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSString.cpp152
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSString.h214
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSType.h42
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSValue.cpp104
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSValue.h223
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSVariableObject.cpp70
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSVariableObject.h164
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSWrapperObject.cpp36
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSWrapperObject.h60
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Lookup.cpp98
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Lookup.h276
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/MathObject.cpp240
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/MathObject.h45
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NativeErrorConstructor.cpp73
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NativeErrorConstructor.h51
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NativeErrorPrototype.cpp39
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NativeErrorPrototype.h35
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NumberConstructor.cpp123
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NumberConstructor.h55
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NumberObject.cpp58
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NumberObject.h47
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NumberPrototype.cpp441
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NumberPrototype.h35
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ObjectConstructor.cpp72
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ObjectConstructor.h41
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ObjectPrototype.cpp134
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ObjectPrototype.h37
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Operations.cpp75
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Operations.h137
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PropertyMapHashTable.h87
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PropertyNameArray.cpp50
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PropertyNameArray.h112
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PropertySlot.cpp45
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PropertySlot.h213
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Protect.h217
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PrototypeFunction.cpp57
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PrototypeFunction.h45
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PutPropertySlot.h81
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp181
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.h78
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpConstructor.cpp385
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpConstructor.h82
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpMatchesArray.h87
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpObject.cpp167
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpObject.h83
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpPrototype.cpp118
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpPrototype.h38
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ScopeChain.cpp68
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ScopeChain.h225
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ScopeChainMark.h39
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/SmallStrings.cpp112
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/SmallStrings.h72
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringConstructor.cpp90
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringConstructor.h40
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp101
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.h72
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringObjectThatMasqueradesAsUndefined.h55
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringPrototype.cpp779
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringPrototype.h42
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Structure.cpp1047
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h228
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.cpp73
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.h54
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StructureTransitionTable.h72
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/SymbolTable.h126
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Tracing.d40
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Tracing.h50
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/TypeInfo.h63
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/UString.cpp1638
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/UString.h385
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/CharacterClass.cpp140
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/CharacterClass.h68
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/CharacterClassConstructor.cpp257
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/CharacterClassConstructor.h99
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/Escapes.h150
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/Quantifier.h66
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/WREC.cpp89
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/WREC.h54
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/WRECFunctors.cpp80
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/WRECFunctors.h109
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/WRECGenerator.cpp665
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/WRECGenerator.h112
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/WRECParser.cpp637
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/WRECParser.h214
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ASCIICType.h152
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/AVLTree.h959
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/AlwaysInline.h55
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Assertions.cpp186
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Assertions.h245
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Deque.h592
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/DisallowCType.h74
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp3851
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.h97
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Forward.h43
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/GOwnPtr.cpp59
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/GOwnPtr.h97
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/GetPtr.h33
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/HashCountedSet.h204
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/HashFunctions.h186
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/HashIterators.h216
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/HashMap.h334
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/HashSet.h271
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/HashTable.cpp69
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/HashTable.h1158
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/HashTraits.h156
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ListHashSet.h616
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ListRefPtr.h61
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Locker.h47
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/MainThread.cpp142
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/MainThread.h57
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/MallocZoneSupport.h65
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/MathExtras.h180
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/MessageQueue.h136
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Noncopyable.h41
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/NotFound.h35
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/OwnArrayPtr.h71
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/OwnPtr.h129
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/OwnPtrWin.cpp69
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/PassRefPtr.h195
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h505
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumber.cpp87
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumber.h36
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumberSeed.h66
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RefCounted.h107
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RefCountedLeakCounter.cpp100
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RefCountedLeakCounter.h48
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RefPtr.h205
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RefPtrHashMap.h336
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RetainPtr.h210
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/StdLibExtras.h38
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/StringExtras.h84
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/TCPackedCache.h234
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/TCPageMap.h289
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/TCSpinLock.h239
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/TCSystemAlloc.cpp437
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/TCSystemAlloc.h71
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadSpecific.h229
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadSpecificWin.cpp45
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Threading.cpp81
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Threading.h276
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadingGtk.cpp244
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadingNone.cpp58
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadingPthreads.cpp275
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadingQt.cpp257
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadingWin.cpp472
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/UnusedParam.h29
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h950
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/VectorTraits.h119
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/dtoa.cpp2439
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/dtoa.h38
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/qt/MainThreadQt.cpp69
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/Collator.h67
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/CollatorDefault.cpp75
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/UTF8.cpp303
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/UTF8.h75
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/Unicode.h37
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/icu/CollatorICU.cpp144
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.h219
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/qt4/UnicodeQt4.h526
-rw-r--r--src/3rdparty/webkit/VERSION11
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog41598
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog-2002-12-0317943
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog-2003-10-2518662
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog-2005-08-2358892
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog-2005-12-1927451
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog-2006-05-1039107
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog-2006-12-3156037
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog-2007-10-1470865
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog-2008-08-1082205
-rw-r--r--src/3rdparty/webkit/WebCore/DerivedSources.cpp338
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/debugger/Debugger.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/debugger/DebuggerCallFrame.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/interpreter/CallFrame.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/interpreter/Interpreter.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/masm/X86Assembler.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/parser/Parser.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/parser/SourceCode.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/parser/SourceProvider.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/pcre/pcre.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/profiler/Profile.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/profiler/ProfileNode.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/profiler/Profiler.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/ArgList.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/ArrayPrototype.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/BooleanObject.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/ByteArray.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/CallData.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Collector.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/CollectorHeapIterator.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Completion.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/ConstructData.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/DateInstance.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Error.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/FunctionConstructor.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/FunctionPrototype.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Identifier.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/InitializeThreading.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/InternalFunction.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSArray.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSByteArray.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSFunction.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSGlobalData.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSGlobalObject.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSLock.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSNumberCell.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSObject.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSString.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSValue.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Lookup.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/ObjectPrototype.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Operations.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/PropertyMap.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/PropertyNameArray.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Protect.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/PrototypeFunction.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/StringObject.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/StringObjectThatMasqueradesAsUndefined.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/StringPrototype.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Structure.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/SymbolTable.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/UString.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wrec/WREC.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/ASCIICType.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/AlwaysInline.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Assertions.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Deque.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/DisallowCType.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/FastMalloc.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Forward.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/GetPtr.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/HashCountedSet.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/HashFunctions.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/HashMap.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/HashSet.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/HashTable.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/HashTraits.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/ListHashSet.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/ListRefPtr.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Locker.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/MainThread.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/MathExtras.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/MessageQueue.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Noncopyable.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/NotFound.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/OwnArrayPtr.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/OwnPtr.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/PassRefPtr.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Platform.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/RandomNumber.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/RefCounted.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/RefCountedLeakCounter.h2
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/RefPtr.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/RetainPtr.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/StdLibExtras.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/StringExtras.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/ThreadSpecific.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Threading.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/UnusedParam.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Vector.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/VectorTraits.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/dtoa.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/unicode/Collator.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/unicode/UTF8.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/unicode/Unicode.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h1
-rw-r--r--src/3rdparty/webkit/WebCore/Info.plist24
-rw-r--r--src/3rdparty/webkit/WebCore/LICENSE-APPLE22
-rw-r--r--src/3rdparty/webkit/WebCore/LICENSE-LGPL-2481
-rw-r--r--src/3rdparty/webkit/WebCore/LICENSE-LGPL-2.1502
-rw-r--r--src/3rdparty/webkit/WebCore/Resources/aliasCursor.pngbin0 -> 752 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/cellCursor.pngbin0 -> 183 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/contextMenuCursor.pngbin0 -> 523 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/copyCursor.pngbin0 -> 1652 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/crossHairCursor.pngbin0 -> 319 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/deleteButton.pngbin0 -> 2230 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/deleteButton.tiffbin0 -> 2546 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/deleteButtonPressed.pngbin0 -> 2319 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/deleteButtonPressed.tiffbin0 -> 2550 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/eastResizeCursor.pngbin0 -> 123 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/eastWestResizeCursor.pngbin0 -> 126 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/helpCursor.pngbin0 -> 239 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/linkCursor.pngbin0 -> 341 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/missingImage.pngbin0 -> 411 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/missingImage.tiffbin0 -> 654 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/moveCursor.pngbin0 -> 175 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/noDropCursor.pngbin0 -> 1455 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/noneCursor.pngbin0 -> 90 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/northEastResizeCursor.pngbin0 -> 209 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/northEastSouthWestResizeCursor.pngbin0 -> 212 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/northResizeCursor.pngbin0 -> 125 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/northSouthResizeCursor.pngbin0 -> 144 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/northWestResizeCursor.pngbin0 -> 174 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/northWestSouthEastResizeCursor.pngbin0 -> 193 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/notAllowedCursor.pngbin0 -> 1101 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/nullPlugin.pngbin0 -> 1286 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/progressCursor.pngbin0 -> 1791 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/southEastResizeCursor.pngbin0 -> 166 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/southResizeCursor.pngbin0 -> 128 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/southWestResizeCursor.pngbin0 -> 177 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/textAreaResizeCorner.pngbin0 -> 146 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/textAreaResizeCorner.tiffbin0 -> 254 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/urlIcon.pngbin0 -> 819 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/verticalTextCursor.pngbin0 -> 120 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/waitCursor.pngbin0 -> 125 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/westResizeCursor.pngbin0 -> 122 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/zoomInCursor.pngbin0 -> 199 bytes-rw-r--r--src/3rdparty/webkit/WebCore/Resources/zoomOutCursor.pngbin0 -> 182 bytes-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.DashboardSupport.exp3
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.JNI.exp10
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.LP64.exp3
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.NPAPI.exp23
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.SVG.Animation.exp2
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.SVG.Filters.exp24
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.SVG.ForeignObject.exp1
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.SVG.exp95
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.Tiger.exp13
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.order14111
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.pro2038
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.qrc19
-rw-r--r--src/3rdparty/webkit/WebCore/WebCorePrefix.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/WebCorePrefix.h126
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/CachedScriptSourceProvider.h67
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/DOMTimer.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/DOMTimer.h68
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/GCController.cpp94
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/GCController.h55
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSAttrCustom.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSAudioConstructor.cpp80
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSAudioConstructor.h58
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCSSRuleCustom.cpp97
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp175
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCSSStyleDeclarationCustom.h31
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCSSValueCustom.cpp75
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp389
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSClipboardCustom.cpp142
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSConsoleCustom.cpp51
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomPositionCallback.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomPositionCallback.h58
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomPositionErrorCallback.cpp84
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomPositionErrorCallback.h58
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLStatementCallback.cpp94
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLStatementCallback.h62
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp106
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.h63
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLTransactionCallback.cpp139
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLTransactionCallback.h63
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLTransactionErrorCallback.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLTransactionErrorCallback.h62
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomVoidCallback.cpp102
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomVoidCallback.h62
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomXPathNSResolver.cpp121
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomXPathNSResolver.h64
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMApplicationCacheCustom.cpp146
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.cpp538
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h188
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMGlobalObject.cpp175
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMGlobalObject.h125
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMStringListCustom.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowBase.cpp875
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowBase.h130
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.cpp325
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.h202
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowShell.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowShell.h92
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDatabaseCustom.cpp128
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDocumentCustom.cpp110
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDocumentFragmentCustom.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSElementCustom.cpp151
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventCustom.cpp132
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventListener.cpp340
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventListener.h125
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventTarget.cpp90
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventTarget.h43
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventTargetBase.h92
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventTargetNodeCustom.cpp71
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSGeolocationCustom.cpp143
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLAllCollection.cpp35
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLAllCollection.h56
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLAppletElementCustom.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLAppletElementCustom.h31
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLCollectionCustom.cpp151
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLDocumentCustom.cpp156
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLElementCustom.cpp51
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLEmbedElementCustom.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLEmbedElementCustom.h31
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLFormElementCustom.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLFrameElementCustom.cpp74
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLIFrameElementCustom.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLInputElementCustom.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLInputElementCustom.h31
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLObjectElementCustom.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLObjectElementCustom.h31
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp98
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLSelectElementCustom.h40
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHistoryCustom.cpp119
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHistoryCustom.h33
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSImageConstructor.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSImageConstructor.h45
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSImageDataCustom.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSInspectedObjectWrapper.cpp127
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSInspectedObjectWrapper.h59
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSInspectorCallbackWrapper.cpp107
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSInspectorCallbackWrapper.h53
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSJavaScriptCallFrameCustom.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSLocationCustom.cpp309
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSLocationCustom.h33
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSMessageChannelConstructor.cpp79
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSMessageChannelConstructor.h55
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSMessageChannelCustom.cpp52
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSMessagePortCustom.cpp100
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSMimeTypeArrayCustom.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodeMapCustom.cpp50
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodesCollection.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodesCollection.h66
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNavigatorCustom.cpp125
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeCustom.cpp241
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeFilterCondition.cpp79
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeFilterCondition.h49
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeFilterCustom.cpp57
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeIteratorCustom.cpp70
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeListCustom.cpp65
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSOptionConstructor.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSOptionConstructor.h46
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSPluginArrayCustom.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSPluginCustom.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSPluginElementFunctions.cpp122
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSPluginElementFunctions.h41
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSQuarantinedObjectWrapper.cpp278
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSQuarantinedObjectWrapper.h101
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSRGBColor.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSRGBColor.h59
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp81
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSQLTransactionCustom.cpp114
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGElementInstanceCustom.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGLengthCustom.cpp48
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGMatrixCustom.cpp132
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGPODTypeWrapper.h411
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGPathSegCustom.cpp119
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGPathSegListCustom.cpp166
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGPointListCustom.cpp153
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGTransformListCustom.cpp153
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSStorageCustom.cpp103
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSStorageCustom.h31
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSStyleSheetCustom.cpp71
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSStyleSheetListCustom.cpp51
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSTextCustom.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSTreeWalkerCustom.cpp96
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWorkerConstructor.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWorkerConstructor.h51
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWorkerContextBase.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWorkerContextBase.h59
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWorkerContextCustom.cpp98
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWorkerCustom.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXMLHttpRequestConstructor.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXMLHttpRequestConstructor.h44
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp208
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXMLHttpRequestUploadCustom.cpp104
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXSLTProcessorConstructor.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXSLTProcessorConstructor.h49
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXSLTProcessorCustom.cpp121
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScheduledAction.cpp105
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScheduledAction.h56
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptCachedPageData.cpp93
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptCachedPageData.h56
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptCallFrame.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptCallFrame.h74
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptCallStack.cpp103
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptCallStack.h67
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptController.cpp355
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptController.h166
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptControllerGtk.cpp48
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptControllerMac.mm172
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptControllerQt.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptControllerWin.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptControllerWx.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptInstance.h44
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptSourceCode.h62
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptState.h49
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptString.h86
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptValue.cpp67
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptValue.h55
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/StringSourceProvider.h61
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/WorkerScriptController.cpp115
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/WorkerScriptController.h83
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/scripts/CodeGenerator.pm393
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorCOM.pm1313
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorJS.pm2044
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorObjC.pm1731
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/scripts/IDLParser.pm416
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/scripts/IDLStructure.pm107
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/scripts/InFilesParser.pm140
-rwxr-xr-xsrc/3rdparty/webkit/WebCore/bindings/scripts/generate-bindings.pl69
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/NP_jsobject.cpp460
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/NP_jsobject.h55
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_class.cpp124
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_class.h61
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_instance.cpp234
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_instance.h86
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_runtime.cpp97
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_runtime.h67
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_utility.cpp152
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_utility.h76
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_class.cpp143
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_class.h66
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_instance.cpp330
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_instance.h110
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_jsobject.h129
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_jsobject.mm720
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_objc.mm83
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_runtime.cpp547
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_runtime.h191
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_utility.cpp584
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_utility.h288
-rwxr-xr-xsrc/3rdparty/webkit/WebCore/bridge/make_testbindings2
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/npapi.h830
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/npruntime.cpp226
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/npruntime.h357
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/npruntime_impl.h66
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/npruntime_internal.h51
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/npruntime_priv.h41
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_class.cpp217
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_class.h60
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp372
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.h90
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp1772
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.h231
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime.cpp121
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime.h166
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_array.cpp123
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_array.h73
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_method.cpp110
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_method.h63
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_object.cpp270
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_object.h82
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_root.cpp174
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_root.h89
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/test.js19
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/testC.js21
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/testM.js29
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/testbindings.cpp421
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/testbindings.mm289
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/testqtbindings.cpp142
-rwxr-xr-xsrc/3rdparty/webkit/WebCore/combine-javascript-resources79
-rw-r--r--src/3rdparty/webkit/WebCore/config.h159
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSBorderImageValue.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSBorderImageValue.h62
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSCanvasValue.cpp89
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSCanvasValue.h68
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSCharsetRule.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSCharsetRule.h57
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSCharsetRule.idl37
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSComputedStyleDeclaration.cpp1381
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSComputedStyleDeclaration.h79
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSCursorImageValue.cpp132
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSCursorImageValue.h63
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontFace.cpp114
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontFace.h96
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontFaceRule.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontFaceRule.h67
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontFaceRule.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontFaceSource.cpp193
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontFaceSource.h83
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontFaceSrcValue.cpp79
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontFaceSrcValue.h92
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontSelector.cpp537
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontSelector.h77
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFunctionValue.cpp64
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFunctionValue.h58
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSGradientValue.cpp164
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSGradientValue.h112
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSGrammar.y1501
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSHelper.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSHelper.h42
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSImageGeneratorValue.cpp97
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSImageGeneratorValue.h73
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSImageValue.cpp93
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSImageValue.h59
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSImportRule.cpp132
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSImportRule.h77
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSImportRule.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSInheritedValue.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSInheritedValue.h45
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSInitialValue.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSInitialValue.h58
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSMediaRule.cpp133
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSMediaRule.h69
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSMediaRule.idl39
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSMutableStyleDeclaration.cpp951
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSMutableStyleDeclaration.h222
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSNamespace.h59
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPageRule.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPageRule.h60
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPageRule.idl37
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSParser.cpp4849
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSParser.h306
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSParserValues.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSParserValues.h100
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPrimitiveValue.cpp955
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPrimitiveValue.h212
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPrimitiveValue.idl79
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPrimitiveValueMappings.h2204
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSProperty.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSProperty.h81
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPropertyNames.in240
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSQuirkPrimitiveValue.h50
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSReflectValue.cpp68
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSReflectValue.h70
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSReflectionDirection.h35
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSRule.cpp48
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSRule.h72
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSRule.idl53
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSRuleList.cpp112
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSRuleList.h68
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSRuleList.idl39
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSSegmentedFontFace.cpp135
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSSegmentedFontFace.h70
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSSelector.cpp555
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSSelector.h259
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSSelectorList.cpp79
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSSelectorList.h55
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleDeclaration.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleDeclaration.h78
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleDeclaration.idl54
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleRule.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleRule.h75
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleRule.idl37
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleSelector.cpp5894
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleSelector.h327
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleSheet.cpp236
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleSheet.h113
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleSheet.idl49
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSTimingFunctionValue.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSTimingFunctionValue.h67
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSUnicodeRangeValue.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSUnicodeRangeValue.h62
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSUnknownRule.h36
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSUnknownRule.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSValue.h78
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSValue.idl43
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSValueKeywords.in601
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSValueList.cpp109
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSValueList.h77
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSValueList.idl39
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSVariableDependentValue.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSVariableDependentValue.h57
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSVariablesDeclaration.cpp175
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSVariablesDeclaration.h82
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSVariablesDeclaration.idl45
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSVariablesRule.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSVariablesRule.h70
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSVariablesRule.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/css/Counter.h61
-rw-r--r--src/3rdparty/webkit/WebCore/css/Counter.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/css/DashboardRegion.h48
-rw-r--r--src/3rdparty/webkit/WebCore/css/DashboardSupportCSSPropertyNames.in1
-rw-r--r--src/3rdparty/webkit/WebCore/css/FontFamilyValue.cpp107
-rw-r--r--src/3rdparty/webkit/WebCore/css/FontFamilyValue.h50
-rw-r--r--src/3rdparty/webkit/WebCore/css/FontValue.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/css/FontValue.h57
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaFeatureNames.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaFeatureNames.h73
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaList.cpp258
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaList.h92
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaList.idl48
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaQuery.cpp97
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaQuery.h62
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.cpp455
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.h91
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaQueryExp.cpp83
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaQueryExp.h68
-rw-r--r--src/3rdparty/webkit/WebCore/css/Pair.h65
-rw-r--r--src/3rdparty/webkit/WebCore/css/RGBColor.idl44
-rw-r--r--src/3rdparty/webkit/WebCore/css/Rect.h62
-rw-r--r--src/3rdparty/webkit/WebCore/css/Rect.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/css/SVGCSSComputedStyleDeclaration.cpp188
-rw-r--r--src/3rdparty/webkit/WebCore/css/SVGCSSParser.cpp359
-rw-r--r--src/3rdparty/webkit/WebCore/css/SVGCSSPropertyNames.in48
-rw-r--r--src/3rdparty/webkit/WebCore/css/SVGCSSStyleSelector.cpp608
-rw-r--r--src/3rdparty/webkit/WebCore/css/SVGCSSValueKeywords.in287
-rw-r--r--src/3rdparty/webkit/WebCore/css/ShadowValue.cpp67
-rw-r--r--src/3rdparty/webkit/WebCore/css/ShadowValue.h59
-rw-r--r--src/3rdparty/webkit/WebCore/css/StyleBase.cpp68
-rw-r--r--src/3rdparty/webkit/WebCore/css/StyleBase.h86
-rw-r--r--src/3rdparty/webkit/WebCore/css/StyleList.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/css/StyleList.h49
-rw-r--r--src/3rdparty/webkit/WebCore/css/StyleSheet.cpp84
-rw-r--r--src/3rdparty/webkit/WebCore/css/StyleSheet.h77
-rw-r--r--src/3rdparty/webkit/WebCore/css/StyleSheet.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/css/StyleSheetList.cpp77
-rw-r--r--src/3rdparty/webkit/WebCore/css/StyleSheetList.h63
-rw-r--r--src/3rdparty/webkit/WebCore/css/StyleSheetList.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSKeyframeRule.cpp98
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSKeyframeRule.h85
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSKeyframeRule.idl43
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSKeyframesRule.cpp138
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSKeyframesRule.h95
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSKeyframesRule.idl47
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSTransformValue.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSTransformValue.h74
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSTransformValue.idl55
-rw-r--r--src/3rdparty/webkit/WebCore/css/html4.css596
-rwxr-xr-xsrc/3rdparty/webkit/WebCore/css/make-css-file-arrays.pl88
-rw-r--r--src/3rdparty/webkit/WebCore/css/makegrammar.pl55
-rw-r--r--src/3rdparty/webkit/WebCore/css/makeprop.pl119
-rw-r--r--src/3rdparty/webkit/WebCore/css/maketokenizer128
-rw-r--r--src/3rdparty/webkit/WebCore/css/makevalues.pl108
-rw-r--r--src/3rdparty/webkit/WebCore/css/mediaControls.css102
-rw-r--r--src/3rdparty/webkit/WebCore/css/qt/mediaControls-extras.css101
-rw-r--r--src/3rdparty/webkit/WebCore/css/quirks.css54
-rw-r--r--src/3rdparty/webkit/WebCore/css/svg.css65
-rw-r--r--src/3rdparty/webkit/WebCore/css/themeWin.css94
-rw-r--r--src/3rdparty/webkit/WebCore/css/themeWinQuirks.css38
-rw-r--r--src/3rdparty/webkit/WebCore/css/tokenizer.flex110
-rw-r--r--src/3rdparty/webkit/WebCore/css/view-source.css158
-rw-r--r--src/3rdparty/webkit/WebCore/css/wml.css249
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ActiveDOMObject.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ActiveDOMObject.h80
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Attr.cpp160
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Attr.h96
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Attr.idl47
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Attribute.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Attribute.h91
-rw-r--r--src/3rdparty/webkit/WebCore/dom/BeforeTextInsertedEvent.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/dom/BeforeTextInsertedEvent.h53
-rw-r--r--src/3rdparty/webkit/WebCore/dom/BeforeUnloadEvent.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/dom/BeforeUnloadEvent.h53
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CDATASection.cpp65
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CDATASection.h48
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CDATASection.idl29
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CSSMappedAttributeDeclaration.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CSSMappedAttributeDeclaration.h65
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CharacterData.cpp236
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CharacterData.h75
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CharacterData.idl55
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ChildNodeList.cpp109
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ChildNodeList.h50
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClassNames.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClassNames.h89
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClassNodeList.cpp54
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClassNodeList.h55
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Clipboard.cpp142
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Clipboard.h100
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Clipboard.idl48
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClipboardAccessPolicy.h37
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClipboardEvent.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClipboardEvent.h56
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Comment.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Comment.h51
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Comment.idl29
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp935
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ContainerNode.h126
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ContainerNodeAlgorithms.h149
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DOMCoreException.h52
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DOMCoreException.idl71
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DOMImplementation.cpp377
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DOMImplementation.h72
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DOMImplementation.idl58
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DOMStringList.cpp35
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DOMStringList.h46
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DOMStringList.idl41
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DocPtr.h114
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Document.cpp4388
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Document.h1121
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Document.idl248
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DocumentFragment.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DocumentFragment.h46
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DocumentFragment.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DocumentMarker.h60
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DocumentType.cpp79
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DocumentType.h70
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DocumentType.idl43
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DynamicNodeList.cpp172
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DynamicNodeList.h81
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EditingText.cpp52
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EditingText.h44
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Element.cpp1241
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Element.h250
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Element.idl128
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ElementRareData.h60
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Entity.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Entity.h43
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Entity.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EntityReference.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EntityReference.h43
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EntityReference.idl29
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Event.cpp190
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Event.h170
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Event.idl83
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventException.h59
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventException.idl50
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventListener.h40
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventListener.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventNames.cpp36
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventNames.h149
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventTarget.cpp111
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventTarget.h105
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventTarget.idl39
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventTargetNode.cpp1166
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventTargetNode.h206
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventTargetNode.idl84
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ExceptionBase.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ExceptionBase.h57
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ExceptionCode.cpp161
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ExceptionCode.h81
-rw-r--r--src/3rdparty/webkit/WebCore/dom/FormControlElement.h39
-rw-r--r--src/3rdparty/webkit/WebCore/dom/KeyboardEvent.cpp164
-rw-r--r--src/3rdparty/webkit/WebCore/dom/KeyboardEvent.h116
-rw-r--r--src/3rdparty/webkit/WebCore/dom/KeyboardEvent.idl80
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MappedAttribute.cpp34
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MappedAttribute.h68
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MappedAttributeEntry.h55
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessageChannel.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessageChannel.h56
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessageChannel.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessageEvent.cpp73
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessageEvent.h73
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessageEvent.idl44
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessagePort.cpp344
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessagePort.h136
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessagePort.idl60
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MouseEvent.cpp118
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MouseEvent.h87
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MouseEvent.idl66
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MouseRelatedEvent.cpp184
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MouseRelatedEvent.h78
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MutationEvent.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MutationEvent.h77
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MutationEvent.idl49
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NameNodeList.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NameNodeList.h52
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedAttrMap.cpp313
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedAttrMap.h110
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedMappedAttrMap.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedMappedAttrMap.h62
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedNodeMap.h64
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedNodeMap.idl60
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Node.cpp2125
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Node.h580
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Node.idl136
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeFilter.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeFilter.h88
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeFilter.idl50
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeFilterCondition.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeFilterCondition.h44
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeIterator.cpp228
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeIterator.h82
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeIterator.idl42
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeList.h46
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeList.idl38
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeRareData.h118
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeRenderStyle.h40
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeWithIndex.h64
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Notation.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Notation.h55
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Notation.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/dom/OverflowEvent.cpp71
-rw-r--r--src/3rdparty/webkit/WebCore/dom/OverflowEvent.h69
-rw-r--r--src/3rdparty/webkit/WebCore/dom/OverflowEvent.idl43
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Position.cpp1002
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Position.h135
-rw-r--r--src/3rdparty/webkit/WebCore/dom/PositionIterator.cpp160
-rw-r--r--src/3rdparty/webkit/WebCore/dom/PositionIterator.h74
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ProcessingInstruction.cpp275
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ProcessingInstruction.h100
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ProcessingInstruction.idl42
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ProgressEvent.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ProgressEvent.h69
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ProgressEvent.idl42
-rw-r--r--src/3rdparty/webkit/WebCore/dom/QualifiedName.cpp131
-rw-r--r--src/3rdparty/webkit/WebCore/dom/QualifiedName.h169
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Range.cpp1800
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Range.h145
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Range.idl120
-rw-r--r--src/3rdparty/webkit/WebCore/dom/RangeBoundaryPoint.h182
-rw-r--r--src/3rdparty/webkit/WebCore/dom/RangeException.h58
-rw-r--r--src/3rdparty/webkit/WebCore/dom/RangeException.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/dom/RegisteredEventListener.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/dom/RegisteredEventListener.h58
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ScriptElement.cpp272
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ScriptElement.h98
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ScriptExecutionContext.cpp182
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ScriptExecutionContext.h111
-rw-r--r--src/3rdparty/webkit/WebCore/dom/SelectorNodeList.cpp74
-rw-r--r--src/3rdparty/webkit/WebCore/dom/SelectorNodeList.h42
-rw-r--r--src/3rdparty/webkit/WebCore/dom/StaticNodeList.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/dom/StaticNodeList.h63
-rw-r--r--src/3rdparty/webkit/WebCore/dom/StaticStringList.cpp67
-rw-r--r--src/3rdparty/webkit/WebCore/dom/StaticStringList.h61
-rw-r--r--src/3rdparty/webkit/WebCore/dom/StyleElement.cpp103
-rw-r--r--src/3rdparty/webkit/WebCore/dom/StyleElement.h56
-rw-r--r--src/3rdparty/webkit/WebCore/dom/StyledElement.cpp505
-rw-r--r--src/3rdparty/webkit/WebCore/dom/StyledElement.h96
-rw-r--r--src/3rdparty/webkit/WebCore/dom/TagNodeList.cpp48
-rw-r--r--src/3rdparty/webkit/WebCore/dom/TagNodeList.h51
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Text.cpp351
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Text.h77
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Text.idl39
-rw-r--r--src/3rdparty/webkit/WebCore/dom/TextEvent.cpp67
-rw-r--r--src/3rdparty/webkit/WebCore/dom/TextEvent.h71
-rw-r--r--src/3rdparty/webkit/WebCore/dom/TextEvent.idl43
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Tokenizer.h78
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Traversal.cpp54
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Traversal.h57
-rw-r--r--src/3rdparty/webkit/WebCore/dom/TreeWalker.cpp277
-rw-r--r--src/3rdparty/webkit/WebCore/dom/TreeWalker.h75
-rw-r--r--src/3rdparty/webkit/WebCore/dom/TreeWalker.idl44
-rw-r--r--src/3rdparty/webkit/WebCore/dom/UIEvent.cpp97
-rw-r--r--src/3rdparty/webkit/WebCore/dom/UIEvent.h75
-rw-r--r--src/3rdparty/webkit/WebCore/dom/UIEvent.idl45
-rw-r--r--src/3rdparty/webkit/WebCore/dom/UIEventWithKeyState.cpp34
-rw-r--r--src/3rdparty/webkit/WebCore/dom/UIEventWithKeyState.h68
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WebKitAnimationEvent.cpp74
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WebKitAnimationEvent.h67
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WebKitAnimationEvent.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WebKitTransitionEvent.cpp75
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WebKitTransitionEvent.h67
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WebKitTransitionEvent.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WheelEvent.cpp80
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WheelEvent.h71
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WheelEvent.idl64
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Worker.cpp202
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Worker.h113
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Worker.idl48
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WorkerContext.cpp195
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WorkerContext.h122
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WorkerContext.idl61
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WorkerLocation.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WorkerLocation.h73
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WorkerLocation.idl48
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WorkerMessagingProxy.cpp311
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WorkerMessagingProxy.h93
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WorkerTask.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WorkerTask.h48
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WorkerThread.cpp154
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WorkerThread.h79
-rw-r--r--src/3rdparty/webkit/WebCore/dom/XMLTokenizer.cpp348
-rw-r--r--src/3rdparty/webkit/WebCore/dom/XMLTokenizer.h187
-rw-r--r--src/3rdparty/webkit/WebCore/dom/XMLTokenizerLibxml2.cpp1349
-rw-r--r--src/3rdparty/webkit/WebCore/dom/XMLTokenizerQt.cpp763
-rwxr-xr-xsrc/3rdparty/webkit/WebCore/dom/make_names.pl842
-rw-r--r--src/3rdparty/webkit/WebCore/editing/AppendNodeCommand.cpp57
-rw-r--r--src/3rdparty/webkit/WebCore/editing/AppendNodeCommand.h52
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ApplyStyleCommand.cpp1608
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ApplyStyleCommand.h121
-rw-r--r--src/3rdparty/webkit/WebCore/editing/BreakBlockquoteCommand.cpp175
-rw-r--r--src/3rdparty/webkit/WebCore/editing/BreakBlockquoteCommand.h47
-rw-r--r--src/3rdparty/webkit/WebCore/editing/CompositeEditCommand.cpp1041
-rw-r--r--src/3rdparty/webkit/WebCore/editing/CompositeEditCommand.h120
-rw-r--r--src/3rdparty/webkit/WebCore/editing/CreateLinkCommand.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/editing/CreateLinkCommand.h51
-rw-r--r--src/3rdparty/webkit/WebCore/editing/DeleteButton.cpp56
-rw-r--r--src/3rdparty/webkit/WebCore/editing/DeleteButton.h42
-rw-r--r--src/3rdparty/webkit/WebCore/editing/DeleteButtonController.cpp308
-rw-r--r--src/3rdparty/webkit/WebCore/editing/DeleteButtonController.h77
-rw-r--r--src/3rdparty/webkit/WebCore/editing/DeleteFromTextNodeCommand.cpp64
-rw-r--r--src/3rdparty/webkit/WebCore/editing/DeleteFromTextNodeCommand.h56
-rw-r--r--src/3rdparty/webkit/WebCore/editing/DeleteSelectionCommand.cpp801
-rw-r--r--src/3rdparty/webkit/WebCore/editing/DeleteSelectionCommand.h97
-rw-r--r--src/3rdparty/webkit/WebCore/editing/EditAction.h71
-rw-r--r--src/3rdparty/webkit/WebCore/editing/EditCommand.cpp230
-rw-r--r--src/3rdparty/webkit/WebCore/editing/EditCommand.h96
-rw-r--r--src/3rdparty/webkit/WebCore/editing/Editor.cpp2187
-rw-r--r--src/3rdparty/webkit/WebCore/editing/Editor.h307
-rw-r--r--src/3rdparty/webkit/WebCore/editing/EditorCommand.cpp1474
-rw-r--r--src/3rdparty/webkit/WebCore/editing/EditorDeleteAction.h40
-rw-r--r--src/3rdparty/webkit/WebCore/editing/EditorInsertAction.h40
-rw-r--r--src/3rdparty/webkit/WebCore/editing/FormatBlockCommand.cpp134
-rw-r--r--src/3rdparty/webkit/WebCore/editing/FormatBlockCommand.h52
-rw-r--r--src/3rdparty/webkit/WebCore/editing/HTMLInterchange.cpp112
-rw-r--r--src/3rdparty/webkit/WebCore/editing/HTMLInterchange.h46
-rw-r--r--src/3rdparty/webkit/WebCore/editing/IndentOutdentCommand.cpp301
-rw-r--r--src/3rdparty/webkit/WebCore/editing/IndentOutdentCommand.h60
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertIntoTextNodeCommand.cpp56
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertIntoTextNodeCommand.h55
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertLineBreakCommand.cpp187
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertLineBreakCommand.h54
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertListCommand.cpp265
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertListCommand.h64
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertNodeBeforeCommand.cpp62
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertNodeBeforeCommand.h52
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertParagraphSeparatorCommand.cpp338
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertParagraphSeparatorCommand.h59
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertTextCommand.cpp248
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertTextCommand.h61
-rw-r--r--src/3rdparty/webkit/WebCore/editing/JoinTextNodesCommand.cpp74
-rw-r--r--src/3rdparty/webkit/WebCore/editing/JoinTextNodesCommand.h54
-rw-r--r--src/3rdparty/webkit/WebCore/editing/MergeIdenticalElementsCommand.cpp89
-rw-r--r--src/3rdparty/webkit/WebCore/editing/MergeIdenticalElementsCommand.h53
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ModifySelectionListLevel.cpp295
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ModifySelectionListLevel.h80
-rw-r--r--src/3rdparty/webkit/WebCore/editing/MoveSelectionCommand.cpp81
-rw-r--r--src/3rdparty/webkit/WebCore/editing/MoveSelectionCommand.h55
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveCSSPropertyCommand.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveCSSPropertyCommand.h55
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveFormatCommand.cpp81
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveFormatCommand.h49
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveNodeAttributeCommand.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveNodeAttributeCommand.h1
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveNodeCommand.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveNodeCommand.h53
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveNodePreservingChildrenCommand.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveNodePreservingChildrenCommand.h50
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ReplaceSelectionCommand.cpp1058
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ReplaceSelectionCommand.h93
-rw-r--r--src/3rdparty/webkit/WebCore/editing/Selection.cpp605
-rw-r--r--src/3rdparty/webkit/WebCore/editing/Selection.h136
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SelectionController.cpp1238
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SelectionController.h189
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SetNodeAttributeCommand.cpp57
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SetNodeAttributeCommand.h55
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SmartReplace.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SmartReplace.h35
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SmartReplaceCF.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SmartReplaceICU.cpp99
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SplitElementCommand.cpp91
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SplitElementCommand.h53
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SplitTextNodeCommand.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SplitTextNodeCommand.h55
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SplitTextNodeContainingElementCommand.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SplitTextNodeContainingElementCommand.h51
-rw-r--r--src/3rdparty/webkit/WebCore/editing/TextAffinity.h57
-rw-r--r--src/3rdparty/webkit/WebCore/editing/TextGranularity.h47
-rw-r--r--src/3rdparty/webkit/WebCore/editing/TextIterator.cpp1677
-rw-r--r--src/3rdparty/webkit/WebCore/editing/TextIterator.h253
-rw-r--r--src/3rdparty/webkit/WebCore/editing/TypingCommand.cpp562
-rw-r--r--src/3rdparty/webkit/WebCore/editing/TypingCommand.h104
-rw-r--r--src/3rdparty/webkit/WebCore/editing/UnlinkCommand.cpp50
-rw-r--r--src/3rdparty/webkit/WebCore/editing/UnlinkCommand.h49
-rw-r--r--src/3rdparty/webkit/WebCore/editing/VisiblePosition.cpp680
-rw-r--r--src/3rdparty/webkit/WebCore/editing/VisiblePosition.h147
-rw-r--r--src/3rdparty/webkit/WebCore/editing/WrapContentsInDummySpanCommand.cpp81
-rw-r--r--src/3rdparty/webkit/WebCore/editing/WrapContentsInDummySpanCommand.h54
-rw-r--r--src/3rdparty/webkit/WebCore/editing/htmlediting.cpp1011
-rw-r--r--src/3rdparty/webkit/WebCore/editing/htmlediting.h137
-rw-r--r--src/3rdparty/webkit/WebCore/editing/markup.cpp1224
-rw-r--r--src/3rdparty/webkit/WebCore/editing/markup.h56
-rw-r--r--src/3rdparty/webkit/WebCore/editing/qt/EditorQt.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/editing/visible_units.cpp958
-rw-r--r--src/3rdparty/webkit/WebCore/editing/visible_units.h91
-rw-r--r--src/3rdparty/webkit/WebCore/generated/ArrayPrototype.lut.h37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp4081
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSGrammar.h211
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.cpp1262
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.h286
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c2359
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.h543
-rw-r--r--src/3rdparty/webkit/WebCore/generated/ColorData.c441
-rw-r--r--src/3rdparty/webkit/WebCore/generated/DatePrototype.lut.h62
-rw-r--r--src/3rdparty/webkit/WebCore/generated/DocTypeStrings.cpp1083
-rw-r--r--src/3rdparty/webkit/WebCore/generated/Grammar.cpp5106
-rw-r--r--src/3rdparty/webkit/WebCore/generated/Grammar.h232
-rw-r--r--src/3rdparty/webkit/WebCore/generated/HTMLEntityNames.c549
-rw-r--r--src/3rdparty/webkit/WebCore/generated/HTMLNames.cpp1313
-rw-r--r--src/3rdparty/webkit/WebCore/generated/HTMLNames.h364
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSAttr.cpp193
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSAttr.h77
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSBarInfo.cpp111
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSBarInfo.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCDATASection.cpp138
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCDATASection.h62
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSCharsetRule.cpp159
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSCharsetRule.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSFontFaceRule.cpp148
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSFontFaceRule.h63
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSImportRule.cpp164
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSImportRule.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSMediaRule.cpp194
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSMediaRule.h73
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSPageRule.cpp169
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSPageRule.h66
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSPrimitiveValue.cpp450
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSPrimitiveValue.h105
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSRule.cpp271
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSRule.h94
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSRuleList.cpp216
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSRuleList.h83
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSStyleDeclaration.cpp357
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSStyleDeclaration.h98
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSStyleRule.cpp169
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSStyleRule.h66
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSStyleSheet.cpp243
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSStyleSheet.h76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSValue.cpp212
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSValue.h86
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSValueList.cpp201
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSValueList.h74
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSVariablesDeclaration.cpp289
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSVariablesDeclaration.h90
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSVariablesRule.cpp156
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSVariablesRule.h64
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCanvasGradient.cpp108
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCanvasGradient.h69
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCanvasPattern.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCanvasPattern.h61
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.cpp968
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.h172
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCharacterData.cpp283
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCharacterData.h78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSClipboard.cpp233
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSClipboard.h97
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSComment.cpp138
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSComment.h62
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSConsole.cpp328
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSConsole.h96
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCounter.cpp176
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCounter.h74
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMApplicationCache.cpp404
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMApplicationCache.h122
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMCoreException.cpp316
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMCoreException.h101
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMImplementation.cpp250
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMImplementation.h83
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMParser.cpp186
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMParser.h79
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMSelection.cpp407
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMSelection.h102
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMStringList.cpp212
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMStringList.h87
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp4435
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h570
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMWindowBase.lut.h31
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDatabase.cpp137
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDatabase.h83
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDocument.cpp1049
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDocument.h165
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDocumentFragment.cpp181
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDocumentFragment.h71
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDocumentType.cpp189
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDocumentType.h73
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSElement.cpp660
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSElement.h136
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEntity.cpp160
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEntity.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEntityReference.cpp138
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEntityReference.h62
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEvent.cpp434
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEvent.h119
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEventException.cpp204
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEventException.h85
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEventTargetNode.cpp944
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEventTargetNode.h162
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSFile.cpp169
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSFile.h73
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSFileList.cpp221
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSFileList.h83
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSGeolocation.cpp150
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSGeolocation.h84
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSGeoposition.cpp182
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSGeoposition.h85
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAnchorElement.cpp363
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAnchorElement.h101
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAppletElement.cpp298
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAppletElement.h93
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAreaElement.cpp285
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAreaElement.h84
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAudioElement.cpp143
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAudioElement.h67
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBRElement.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBRElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBaseElement.cpp171
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBaseElement.h67
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBaseFontElement.cpp184
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBaseFontElement.h69
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBlockquoteElement.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBlockquoteElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBodyElement.cpp263
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBodyElement.h81
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLButtonElement.cpp251
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLButtonElement.h84
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLCanvasElement.cpp208
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLCanvasElement.h76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLCollection.cpp242
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLCollection.h95
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDListElement.cpp156
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDListElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDirectoryElement.cpp156
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDirectoryElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDivElement.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDivElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDocument.cpp399
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDocument.h113
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLElement.cpp397
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLElement.h106
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLElementWrapperFactory.cpp572
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLElementWrapperFactory.h48
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLEmbedElement.cpp259
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLEmbedElement.h91
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFieldSetElement.cpp154
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFieldSetElement.h64
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFontElement.cpp184
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFontElement.h69
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFormElement.cpp312
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFormElement.h93
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFrameElement.cpp318
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFrameElement.h97
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFrameSetElement.cpp176
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFrameSetElement.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHRElement.cpp197
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHRElement.h71
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHeadElement.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHeadElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHeadingElement.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHeadingElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHtmlElement.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHtmlElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLIFrameElement.cpp318
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLIFrameElement.h96
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLImageElement.cpp349
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLImageElement.h94
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLInputElement.cpp474
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLInputElement.h121
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLIsIndexElement.cpp167
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLIsIndexElement.h66
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLIElement.cpp171
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLIElement.h67
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLabelElement.cpp180
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLabelElement.h68
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLegendElement.cpp180
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLegendElement.h68
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLinkElement.cpp271
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLinkElement.h82
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMapElement.cpp167
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMapElement.h66
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMarqueeElement.cpp168
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMarqueeElement.h71
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMediaElement.cpp543
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMediaElement.h129
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMenuElement.cpp156
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMenuElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMetaElement.cpp197
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMetaElement.h71
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLModElement.cpp171
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLModElement.h67
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOListElement.cpp184
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOListElement.h69
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLObjectElement.cpp407
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLObjectElement.h113
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOptGroupElement.cpp171
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOptGroupElement.h67
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOptionElement.cpp245
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOptionElement.h82
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOptionsCollection.cpp159
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOptionsCollection.h89
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLParagraphElement.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLParagraphElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLParamElement.cpp197
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLParamElement.h71
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLPreElement.cpp169
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLPreElement.h67
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLQuoteElement.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLQuoteElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLScriptElement.cpp236
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLScriptElement.h77
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLSelectElement.cpp396
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLSelectElement.h102
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLSourceElement.cpp189
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLSourceElement.h74
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLStyleElement.cpp193
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLStyleElement.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableCaptionElement.cpp162
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableCaptionElement.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableCellElement.cpp334
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableCellElement.h92
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableColElement.cpp223
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableColElement.h75
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableElement.cpp441
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableElement.h104
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableRowElement.cpp272
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableRowElement.h85
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableSectionElement.cpp249
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableSectionElement.h86
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTextAreaElement.cpp343
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTextAreaElement.h97
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTitleElement.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTitleElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLUListElement.cpp171
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLUListElement.h67
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLVideoElement.cpp203
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLVideoElement.h76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHistory.cpp172
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHistory.h86
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSImageData.cpp163
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSImageData.h73
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSJavaScriptCallFrame.cpp169
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSJavaScriptCallFrame.h92
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSKeyboardEvent.cpp219
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSKeyboardEvent.h77
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSLocation.cpp261
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSLocation.h118
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMediaError.cpp193
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMediaError.h87
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMediaList.cpp265
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMediaList.h88
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMessageChannel.cpp128
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMessageChannel.h73
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMessageEvent.cpp213
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMessageEvent.h75
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMessagePort.cpp318
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMessagePort.h98
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMimeType.cpp185
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMimeType.h75
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMimeTypeArray.cpp235
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMimeTypeArray.h87
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMouseEvent.cpp298
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMouseEvent.h87
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMutationEvent.cpp226
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMutationEvent.h80
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.cpp319
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.h92
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNavigator.cpp226
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNavigator.h96
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNode.cpp623
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNode.h152
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNodeFilter.cpp278
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNodeFilter.h102
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNodeIterator.cpp235
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNodeIterator.h93
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNodeList.cpp226
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNodeList.h89
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNotation.cpp153
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNotation.h64
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSOverflowEvent.cpp203
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSOverflowEvent.h78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSPlugin.cpp258
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSPlugin.h90
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSPluginArray.cpp248
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSPluginArray.h88
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSPositionError.cpp204
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSPositionError.h84
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSProcessingInstruction.cpp175
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSProcessingInstruction.h67
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSProgressEvent.cpp183
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSProgressEvent.h73
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRGBColor.lut.h21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRange.cpp638
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRange.h117
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRangeException.cpp211
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRangeException.h86
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRect.cpp183
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRect.h75
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLError.cpp121
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLError.h71
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLResultSet.cpp131
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLResultSet.h72
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLResultSetRowList.cpp127
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLResultSetRowList.h81
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLTransaction.cpp100
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLTransaction.h72
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAElement.cpp313
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAElement.h94
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAltGlyphElement.cpp141
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAltGlyphElement.h71
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAngle.cpp289
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAngle.h102
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimateColorElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimateColorElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimateElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimateElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimateTransformElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimateTransformElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedAngle.cpp126
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedAngle.h76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedBoolean.cpp137
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedBoolean.h78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedEnumeration.cpp138
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedEnumeration.h78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedInteger.cpp138
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedInteger.h78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLength.cpp125
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLength.h76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLengthList.cpp126
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLengthList.h76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumber.cpp138
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumber.h78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumberList.cpp126
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumberList.h76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedPreserveAspectRatio.cpp126
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedPreserveAspectRatio.h76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedRect.cpp126
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedRect.h76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedString.cpp140
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedString.h78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedTransformList.cpp126
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedTransformList.h76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimationElement.cpp260
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimationElement.h85
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGCircleElement.cpp322
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGCircleElement.h95
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGClipPathElement.cpp306
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGClipPathElement.h93
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGColor.cpp243
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGColor.h85
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGComponentTransferFunctionElement.cpp252
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGComponentTransferFunctionElement.h87
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGCursorElement.cpp173
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGCursorElement.h80
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDefinitionSrcElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDefinitionSrcElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDefsElement.cpp297
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDefsElement.h92
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDescElement.cpp169
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDescElement.h80
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDocument.cpp128
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDocument.h74
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElement.cpp153
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElement.h77
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElementInstance.cpp1024
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElementInstance.h179
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElementInstanceList.cpp140
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElementInstanceList.h83
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElementWrapperFactory.cpp634
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElementWrapperFactory.h51
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGEllipseElement.cpp330
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGEllipseElement.h96
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGException.cpp225
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGException.h94
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEBlendElement.cpp295
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEBlendElement.h93
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEColorMatrixElement.cpp289
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEColorMatrixElement.h92
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEComponentTransferElement.cpp185
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEComponentTransferElement.h81
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFECompositeElement.cpp335
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFECompositeElement.h98
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEDiffuseLightingElement.cpp218
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEDiffuseLightingElement.h85
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEDisplacementMapElement.cpp305
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEDisplacementMapElement.h94
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEDistantLightElement.cpp112
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEDistantLightElement.h67
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFloodElement.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFloodElement.h80
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncAElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncAElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncBElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncBElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncGElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncGElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncRElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncRElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEGaussianBlurElement.cpp216
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEGaussianBlurElement.h84
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEImageElement.cpp227
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEImageElement.h87
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeElement.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeElement.h80
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeNodeElement.cpp104
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeNodeElement.h66
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEOffsetElement.cpp202
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEOffsetElement.h83
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEPointLightElement.cpp120
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEPointLightElement.h68
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFESpecularLightingElement.cpp210
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFESpecularLightingElement.h84
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFESpotLightElement.cpp160
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFESpotLightElement.h73
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFETileElement.cpp185
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFETileElement.h81
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFETurbulenceElement.cpp321
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFETurbulenceElement.h96
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFilterElement.cpp267
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFilterElement.h91
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceFormatElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceFormatElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceNameElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceNameElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceSrcElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceSrcElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceUriElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceUriElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGForeignObjectElement.cpp330
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGForeignObjectElement.h96
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGGElement.cpp297
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGGElement.h92
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGGlyphElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGGlyphElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGGradientElement.cpp258
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGGradientElement.h88
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGHKernElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGHKernElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGImageElement.cpp347
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGImageElement.h98
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLength.cpp326
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLength.h114
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLengthList.cpp239
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLengthList.h91
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLineElement.cpp330
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLineElement.h96
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLinearGradientElement.cpp128
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLinearGradientElement.h69
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMarkerElement.cpp374
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMarkerElement.h102
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMaskElement.cpp265
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMaskElement.h91
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMatrix.cpp305
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMatrix.h120
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMetadataElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMetadataElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMissingGlyphElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMissingGlyphElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGNumber.cpp130
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGNumber.h78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGNumberList.cpp238
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGNumberList.h91
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPaint.cpp269
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPaint.h90
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathElement.cpp713
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathElement.h119
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSeg.cpp319
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSeg.h107
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcAbs.cpp206
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcAbs.h80
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcRel.cpp206
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcRel.h80
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegClosePath.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegClosePath.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicAbs.cpp191
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicAbs.h78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicRel.cpp191
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicRel.h78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothAbs.cpp161
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothAbs.h74
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothRel.cpp161
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothRel.h74
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticAbs.cpp161
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticAbs.h74
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticRel.cpp161
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticRel.h74
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothAbs.cpp131
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothAbs.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothRel.cpp131
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothRel.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoAbs.cpp131
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoAbs.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalAbs.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalAbs.h68
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalRel.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalRel.h68
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoRel.cpp131
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoRel.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalAbs.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalAbs.h68
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalRel.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalRel.h68
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegList.cpp189
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegList.h100
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoAbs.cpp131
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoAbs.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoRel.cpp131
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoRel.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPatternElement.cpp300
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPatternElement.h95
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPoint.cpp168
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPoint.h89
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPointList.cpp188
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPointList.h100
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPolygonElement.cpp313
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPolygonElement.h94
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPolylineElement.cpp313
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPolylineElement.h94
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPreserveAspectRatio.cpp300
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPreserveAspectRatio.h104
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRadialGradientElement.cpp136
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRadialGradientElement.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRect.cpp173
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRect.h85
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRectElement.cpp346
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRectElement.h98
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRenderingIntent.cpp209
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRenderingIntent.h91
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSVGElement.cpp772
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSVGElement.h140
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGScriptElement.cpp133
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGScriptElement.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSetElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSetElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGStopElement.cpp145
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGStopElement.h76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGStringList.cpp239
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGStringList.h91
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGStyleElement.cpp162
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGStyleElement.h74
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSwitchElement.cpp297
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSwitchElement.h92
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSymbolElement.cpp196
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSymbolElement.h83
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTRefElement.cpp104
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTRefElement.h66
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTSpanElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTSpanElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextContentElement.cpp445
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextContentElement.h103
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextElement.cpp183
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextElement.h79
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextPathElement.cpp228
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextPathElement.h84
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextPositioningElement.cpp137
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextPositioningElement.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTitleElement.cpp169
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTitleElement.h80
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTransform.cpp333
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTransform.h103
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTransformList.cpp218
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTransformList.h102
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGUnitTypes.cpp188
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGUnitTypes.h88
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGUseElement.cpp354
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGUseElement.h99
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGViewElement.cpp175
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGViewElement.h82
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGZoomEvent.cpp133
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGZoomEvent.h70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSScreen.cpp161
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSScreen.h77
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStorage.cpp264
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStorage.h92
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStorageEvent.cpp203
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStorageEvent.h75
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStyleSheet.cpp215
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStyleSheet.h82
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStyleSheetList.cpp221
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStyleSheetList.h86
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSText.cpp191
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSText.h72
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTextEvent.cpp171
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTextEvent.h71
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTextMetrics.cpp160
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTextMetrics.h72
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTimeRanges.cpp150
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTimeRanges.h79
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTreeWalker.cpp274
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTreeWalker.h103
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSUIEvent.cpp226
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSUIEvent.h79
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSVoidCallback.cpp99
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSVoidCallback.h69
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitAnimationEvent.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitAnimationEvent.h72
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframeRule.cpp168
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframeRule.h66
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframesRule.cpp248
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframesRule.h79
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSTransformValue.cpp229
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSTransformValue.h81
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitTransitionEvent.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitTransitionEvent.h72
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWheelEvent.cpp243
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWheelEvent.h77
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorker.cpp225
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorker.h97
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerContext.cpp243
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerContext.h99
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerContextBase.lut.h18
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerLocation.cpp243
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerLocation.h92
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerNavigator.cpp154
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerNavigator.h79
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequest.cpp433
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequest.h126
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestException.cpp211
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestException.h86
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestProgressEvent.cpp152
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestProgressEvent.h64
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestUpload.cpp304
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestUpload.h98
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLSerializer.cpp187
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLSerializer.h79
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathEvaluator.cpp247
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathEvaluator.h86
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathException.cpp216
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathException.h91
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathExpression.cpp185
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathExpression.h84
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathNSResolver.cpp113
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathNSResolver.h74
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathResult.cpp335
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathResult.h104
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXSLTProcessor.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXSLTProcessor.h89
-rw-r--r--src/3rdparty/webkit/WebCore/generated/Lexer.lut.h54
-rw-r--r--src/3rdparty/webkit/WebCore/generated/MathObject.lut.h36
-rw-r--r--src/3rdparty/webkit/WebCore/generated/NumberConstructor.lut.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/RegExpConstructor.lut.h39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/RegExpObject.lut.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/SVGElementFactory.cpp607
-rw-r--r--src/3rdparty/webkit/WebCore/generated/SVGElementFactory.h56
-rw-r--r--src/3rdparty/webkit/WebCore/generated/SVGNames.cpp1377
-rw-r--r--src/3rdparty/webkit/WebCore/generated/SVGNames.h700
-rw-r--r--src/3rdparty/webkit/WebCore/generated/StringPrototype.lut.h50
-rw-r--r--src/3rdparty/webkit/WebCore/generated/UserAgentStyleSheets.h8
-rw-r--r--src/3rdparty/webkit/WebCore/generated/UserAgentStyleSheetsData.cpp985
-rw-r--r--src/3rdparty/webkit/WebCore/generated/XLinkNames.cpp108
-rw-r--r--src/3rdparty/webkit/WebCore/generated/XLinkNames.h68
-rw-r--r--src/3rdparty/webkit/WebCore/generated/XMLNames.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/generated/XMLNames.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/XPathGrammar.cpp2150
-rw-r--r--src/3rdparty/webkit/WebCore/generated/XPathGrammar.h109
-rw-r--r--src/3rdparty/webkit/WebCore/generated/chartables.c96
-rw-r--r--src/3rdparty/webkit/WebCore/generated/tokenizer.cpp2200
-rw-r--r--src/3rdparty/webkit/WebCore/history/BackForwardList.cpp282
-rw-r--r--src/3rdparty/webkit/WebCore/history/BackForwardList.h95
-rw-r--r--src/3rdparty/webkit/WebCore/history/CachedPage.cpp191
-rw-r--r--src/3rdparty/webkit/WebCore/history/CachedPage.h84
-rw-r--r--src/3rdparty/webkit/WebCore/history/CachedPagePlatformData.h45
-rw-r--r--src/3rdparty/webkit/WebCore/history/HistoryItem.cpp435
-rw-r--r--src/3rdparty/webkit/WebCore/history/HistoryItem.h219
-rw-r--r--src/3rdparty/webkit/WebCore/history/PageCache.cpp183
-rw-r--r--src/3rdparty/webkit/WebCore/history/PageCache.h83
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasGradient.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasGradient.h66
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasGradient.idl39
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasPattern.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasPattern.h62
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasPattern.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.cpp1470
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.h263
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.idl123
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasStyle.cpp222
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasStyle.h89
-rw-r--r--src/3rdparty/webkit/WebCore/html/DocTypeStrings.gperf89
-rw-r--r--src/3rdparty/webkit/WebCore/html/File.cpp51
-rw-r--r--src/3rdparty/webkit/WebCore/html/File.h56
-rw-r--r--src/3rdparty/webkit/WebCore/html/File.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/html/FileList.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/html/FileList.h59
-rw-r--r--src/3rdparty/webkit/WebCore/html/FileList.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/html/FormDataList.cpp91
-rw-r--r--src/3rdparty/webkit/WebCore/html/FormDataList.h69
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAnchorElement.cpp507
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAnchorElement.h107
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAnchorElement.idl60
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAppletElement.cpp230
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAppletElement.h81
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAppletElement.idl53
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAreaElement.cpp228
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAreaElement.h85
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAreaElement.idl51
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAttributeNames.in203
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAudioElement.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAudioElement.h46
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAudioElement.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBRElement.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBRElement.h51
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBRElement.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBaseElement.cpp99
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBaseElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBaseElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBaseFontElement.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBaseFontElement.h49
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBaseFontElement.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBlockquoteElement.cpp51
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBlockquoteElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBlockquoteElement.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBodyElement.cpp306
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBodyElement.h81
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBodyElement.idl42
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLButtonElement.cpp194
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLButtonElement.h71
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLButtonElement.idl39
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLCanvasElement.cpp288
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLCanvasElement.h131
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLCanvasElement.idl46
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLCollection.cpp458
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLCollection.h159
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLCollection.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDListElement.cpp46
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDListElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDListElement.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDirectoryElement.cpp46
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDirectoryElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDirectoryElement.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDivElement.cpp78
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDivElement.h46
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDivElement.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDocument.cpp425
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDocument.h112
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDocument.idl67
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLElement.cpp1022
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLElement.h119
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLElement.idl72
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLElementFactory.cpp509
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLElementFactory.h47
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLEmbedElement.cpp258
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLEmbedElement.h71
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLEmbedElement.idl55
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLEntityNames.gperf296
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.cpp67
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.h56
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFontElement.cpp176
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFontElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFontElement.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormCollection.cpp245
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormCollection.h66
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormControlElement.cpp291
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormControlElement.h132
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormElement.cpp641
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormElement.h161
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormElement.idl43
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameElement.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameElement.h60
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameElement.idl57
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameElementBase.cpp326
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameElementBase.h109
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameOwnerElement.cpp80
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameOwnerElement.h68
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameSetElement.cpp216
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameSetElement.h91
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameSetElement.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHRElement.cpp141
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHRElement.h55
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHRElement.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHeadElement.cpp70
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHeadElement.h50
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHeadElement.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHeadingElement.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHeadingElement.h45
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHeadingElement.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHtmlElement.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHtmlElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHtmlElement.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLIFrameElement.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLIFrameElement.h66
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLIFrameElement.idl55
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLImageElement.cpp437
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLImageElement.h130
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLImageElement.idl56
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLImageLoader.cpp65
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLImageLoader.h45
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp1692
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLInputElement.h258
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLInputElement.idl76
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLIsIndexElement.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLIsIndexElement.h49
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLIsIndexElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLKeygenElement.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLKeygenElement.h48
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLIElement.cpp128
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLIElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLIElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLabelElement.cpp164
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLabelElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLabelElement.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLegendElement.cpp124
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLegendElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLegendElement.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLinkElement.cpp403
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLinkElement.h119
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLinkElement.idl49
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMapElement.cpp112
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMapElement.h59
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMapElement.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMarqueeElement.cpp122
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMarqueeElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMarqueeElement.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMediaElement.cpp1073
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMediaElement.h212
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMediaElement.idl88
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMenuElement.cpp46
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMenuElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMenuElement.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMetaElement.cpp110
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMetaElement.h64
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMetaElement.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLModElement.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLModElement.h50
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLModElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLNameCollection.cpp96
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLNameCollection.h50
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOListElement.cpp99
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOListElement.h56
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOListElement.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLObjectElement.cpp449
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLObjectElement.h119
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLObjectElement.idl66
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptGroupElement.cpp191
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptGroupElement.h70
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptGroupElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptionElement.cpp262
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptionElement.h92
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptionElement.idl44
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptionsCollection.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptionsCollection.h55
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptionsCollection.idl45
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParagraphElement.cpp80
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParagraphElement.h46
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParagraphElement.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParamElement.cpp114
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParamElement.h66
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParamElement.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParser.cpp1603
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParser.h184
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParserErrorCodes.cpp70
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParserErrorCodes.h60
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLPlugInElement.cpp200
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLPlugInElement.h84
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLPlugInImageElement.cpp54
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLPlugInImageElement.h49
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLPreElement.cpp83
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLPreElement.h50
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLPreElement.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLQuoteElement.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLQuoteElement.h45
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLQuoteElement.idl29
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLScriptElement.cpp226
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLScriptElement.h93
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLScriptElement.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLSelectElement.cpp1124
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLSelectElement.h184
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLSelectElement.idl72
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLSourceElement.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLSourceElement.h59
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLSourceElement.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLStyleElement.cpp145
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLStyleElement.h74
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLStyleElement.idl38
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableCaptionElement.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableCaptionElement.h50
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableCaptionElement.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableCellElement.cpp271
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableCellElement.h118
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableCellElement.idl47
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableColElement.cpp156
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableColElement.h77
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableColElement.idl38
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableElement.cpp758
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableElement.h131
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableElement.idl67
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTablePartElement.cpp100
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTablePartElement.h47
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableRowElement.cpp229
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableRowElement.h72
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableRowElement.idl45
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableRowsCollection.cpp167
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableRowsCollection.h54
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableSectionElement.cpp173
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableSectionElement.h66
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableSectionElement.idl43
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTagNames.in111
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTextAreaElement.cpp389
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTextAreaElement.h109
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTextAreaElement.idl50
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTitleElement.cpp94
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTitleElement.h52
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTitleElement.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTokenizer.cpp2043
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTokenizer.h422
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLUListElement.cpp75
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLUListElement.h49
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLUListElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLVideoElement.cpp175
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLVideoElement.h74
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLVideoElement.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLViewSourceDocument.cpp294
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLViewSourceDocument.h65
-rw-r--r--src/3rdparty/webkit/WebCore/html/ImageData.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/html/ImageData.h55
-rw-r--r--src/3rdparty/webkit/WebCore/html/ImageData.idl39
-rw-r--r--src/3rdparty/webkit/WebCore/html/MediaError.h52
-rw-r--r--src/3rdparty/webkit/WebCore/html/MediaError.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/html/PreloadScanner.cpp853
-rw-r--r--src/3rdparty/webkit/WebCore/html/PreloadScanner.h144
-rw-r--r--src/3rdparty/webkit/WebCore/html/TextMetrics.h50
-rw-r--r--src/3rdparty/webkit/WebCore/html/TextMetrics.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/html/TimeRanges.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/html/TimeRanges.h74
-rw-r--r--src/3rdparty/webkit/WebCore/html/TimeRanges.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/html/VoidCallback.h45
-rw-r--r--src/3rdparty/webkit/WebCore/html/VoidCallback.idl30
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorClient.h67
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorController.cpp2928
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorController.h328
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.cpp101
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.h78
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugListener.h54
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugServer.cpp615
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugServer.h130
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptProfile.cpp294
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptProfile.h42
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptProfileNode.cpp243
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptProfileNode.h44
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Breakpoint.js54
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/BreakpointsSidebarPane.js85
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/CallStackSidebarPane.js110
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Console.js949
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/DataGrid.js844
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Database.js95
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/DatabaseQueryView.js199
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/DatabaseTableView.js82
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/DatabasesPanel.js357
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ElementsPanel.js1206
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ElementsTreeOutline.js626
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/FontView.js104
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ImageView.js74
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/back.pngbin0 -> 4205 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/checker.pngbin0 -> 3471 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/clearConsoleButtons.pngbin0 -> 5224 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/closeButtons.pngbin0 -> 4355 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/consoleButtons.pngbin0 -> 5197 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/database.pngbin0 -> 2329 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/databaseTable.pngbin0 -> 4325 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/databasesIcon.pngbin0 -> 7148 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/debuggerContinue.pngbin0 -> 4190 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/debuggerPause.pngbin0 -> 4081 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/debuggerStepInto.pngbin0 -> 4282 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/debuggerStepOut.pngbin0 -> 4271 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/debuggerStepOver.pngbin0 -> 4366 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/disclosureTriangleSmallDown.pngbin0 -> 3919 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/disclosureTriangleSmallDownBlack.pngbin0 -> 3802 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/disclosureTriangleSmallDownWhite.pngbin0 -> 3820 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/disclosureTriangleSmallRight.pngbin0 -> 3898 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/disclosureTriangleSmallRightBlack.pngbin0 -> 3807 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/disclosureTriangleSmallRightDown.pngbin0 -> 3953 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/disclosureTriangleSmallRightDownBlack.pngbin0 -> 3816 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/disclosureTriangleSmallRightDownWhite.pngbin0 -> 3838 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/disclosureTriangleSmallRightWhite.pngbin0 -> 3818 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/dockButtons.pngbin0 -> 1274 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/elementsIcon.pngbin0 -> 6639 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/enableButtons.pngbin0 -> 5543 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/errorIcon.pngbin0 -> 4337 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/errorMediumIcon.pngbin0 -> 4059 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/excludeButtons.pngbin0 -> 4562 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/focusButtons.pngbin0 -> 4919 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/forward.pngbin0 -> 4202 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/glossyHeader.pngbin0 -> 3720 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/glossyHeaderPressed.pngbin0 -> 3721 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/glossyHeaderSelected.pngbin0 -> 3738 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/glossyHeaderSelectedPressed.pngbin0 -> 3739 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/goArrow.pngbin0 -> 3591 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/graphLabelCalloutLeft.pngbin0 -> 3790 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/graphLabelCalloutRight.pngbin0 -> 3789 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/largerResourcesButtons.pngbin0 -> 1596 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/nodeSearchButtons.pngbin0 -> 5708 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/paneBottomGrow.pngbin0 -> 3457 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/paneBottomGrowActive.pngbin0 -> 3457 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/paneGrowHandleLine.pngbin0 -> 3443 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/pauseOnExceptionButtons.pngbin0 -> 2305 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/percentButtons.pngbin0 -> 5771 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/profileGroupIcon.pngbin0 -> 5126 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/profileIcon.pngbin0 -> 4953 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/profileSmallIcon.pngbin0 -> 579 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/profilesIcon.pngbin0 -> 4158 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/profilesSilhouette.pngbin0 -> 48600 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/recordButtons.pngbin0 -> 5716 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/reloadButtons.pngbin0 -> 4544 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/resourceCSSIcon.pngbin0 -> 1066 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/resourceDocumentIcon.pngbin0 -> 4959 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/resourceDocumentIconSmall.pngbin0 -> 787 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/resourceJSIcon.pngbin0 -> 879 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/resourcePlainIcon.pngbin0 -> 4321 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/resourcePlainIconSmall.pngbin0 -> 731 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/resourcesIcon.pngbin0 -> 6431 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/resourcesSizeGraphIcon.pngbin0 -> 5606 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/resourcesTimeGraphIcon.pngbin0 -> 5743 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/scriptsIcon.pngbin0 -> 7428 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/scriptsSilhouette.pngbin0 -> 49028 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/searchSmallBlue.pngbin0 -> 3968 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/searchSmallBrightBlue.pngbin0 -> 3966 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/searchSmallGray.pngbin0 -> 3936 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/searchSmallWhite.pngbin0 -> 3844 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/segment.pngbin0 -> 4349 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/segmentEnd.pngbin0 -> 4070 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/segmentHover.pngbin0 -> 4310 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/segmentHoverEnd.pngbin0 -> 4074 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/segmentSelected.pngbin0 -> 4302 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/segmentSelectedEnd.pngbin0 -> 4070 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/splitviewDimple.pngbin0 -> 216 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/splitviewDividerBackground.pngbin0 -> 149 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/statusbarBackground.pngbin0 -> 4024 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/statusbarBottomBackground.pngbin0 -> 4021 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/statusbarButtons.pngbin0 -> 4175 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/statusbarMenuButton.pngbin0 -> 4293 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/statusbarMenuButtonSelected.pngbin0 -> 4291 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/statusbarResizerHorizontal.pngbin0 -> 4026 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/statusbarResizerVertical.pngbin0 -> 4036 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelineHollowPillBlue.pngbin0 -> 3450 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelineHollowPillGray.pngbin0 -> 3392 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelineHollowPillGreen.pngbin0 -> 3452 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelineHollowPillOrange.pngbin0 -> 3452 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelineHollowPillPurple.pngbin0 -> 3453 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelineHollowPillRed.pngbin0 -> 3460 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelineHollowPillYellow.pngbin0 -> 3444 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelinePillBlue.pngbin0 -> 3346 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelinePillGray.pngbin0 -> 3297 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelinePillGreen.pngbin0 -> 3350 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelinePillOrange.pngbin0 -> 3352 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelinePillPurple.pngbin0 -> 3353 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelinePillRed.pngbin0 -> 3343 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/timelinePillYellow.pngbin0 -> 3336 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/tipBalloon.pngbin0 -> 3689 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/tipBalloonBottom.pngbin0 -> 3139 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/tipIcon.pngbin0 -> 1212 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/tipIconPressed.pngbin0 -> 1224 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/toolbarItemSelected.pngbin0 -> 4197 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/treeDownTriangleBlack.pngbin0 -> 3570 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/treeDownTriangleWhite.pngbin0 -> 3531 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/treeRightTriangleBlack.pngbin0 -> 3561 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/treeRightTriangleWhite.pngbin0 -> 3535 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/treeUpTriangleBlack.pngbin0 -> 3584 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/treeUpTriangleWhite.pngbin0 -> 3558 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/userInputIcon.pngbin0 -> 777 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/userInputPreviousIcon.pngbin0 -> 765 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/warningIcon.pngbin0 -> 4244 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/warningMediumIcon.pngbin0 -> 3833 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/warningsErrors.pngbin0 -> 5192 bytes-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/MetricsSidebarPane.js195
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Object.js82
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ObjectPropertiesSection.js276
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Panel.js273
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/PanelEnablerView.js76
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Placard.js106
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ProfileView.js642
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ProfilesPanel.js504
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/PropertiesSection.js145
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/PropertiesSidebarPane.js54
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Resource.js625
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ResourceCategory.js68
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ResourceView.js140
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ResourcesPanel.js1649
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ScopeChainSidebarPane.js156
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Script.js37
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ScriptView.js103
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ScriptsPanel.js810
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/SidebarPane.js125
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/SidebarTreeElement.js201
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/SourceFrame.js699
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/SourceView.js303
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/StylesSidebarPane.js927
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/TextPrompt.js312
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/View.js74
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/WebKit.qrc158
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/inspector.css2996
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/inspector.html91
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/inspector.js1267
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/treeoutline.js846
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/utilities.js1098
-rw-r--r--src/3rdparty/webkit/WebCore/loader/Cache.cpp753
-rw-r--r--src/3rdparty/webkit/WebCore/loader/Cache.h210
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachePolicy.h40
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedCSSStyleSheet.cpp148
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedCSSStyleSheet.h68
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedFont.cpp203
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedFont.h89
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedImage.cpp382
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedImage.h103
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedResource.cpp397
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedResource.h250
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedResourceClient.h80
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedResourceClientWalker.cpp53
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedResourceClientWalker.h49
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedResourceHandle.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedResourceHandle.h92
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedScript.cpp131
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedScript.h67
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedXBLDocument.cpp110
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedXBLDocument.h67
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedXSLStyleSheet.cpp101
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedXSLStyleSheet.h64
-rw-r--r--src/3rdparty/webkit/WebCore/loader/DocLoader.cpp429
-rw-r--r--src/3rdparty/webkit/WebCore/loader/DocLoader.h138
-rw-r--r--src/3rdparty/webkit/WebCore/loader/DocumentLoader.cpp945
-rw-r--r--src/3rdparty/webkit/WebCore/loader/DocumentLoader.h317
-rw-r--r--src/3rdparty/webkit/WebCore/loader/EmptyClients.h413
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FTPDirectoryDocument.cpp496
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FTPDirectoryDocument.h48
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FTPDirectoryParser.cpp1624
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FTPDirectoryParser.h157
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FormState.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FormState.h59
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp5310
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FrameLoader.h688
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FrameLoaderClient.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FrameLoaderClient.h222
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FrameLoaderTypes.h79
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ImageDocument.cpp371
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ImageDocument.h76
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ImageLoader.cpp153
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ImageLoader.h77
-rw-r--r--src/3rdparty/webkit/WebCore/loader/MainResourceLoader.cpp519
-rw-r--r--src/3rdparty/webkit/WebCore/loader/MainResourceLoader.h104
-rw-r--r--src/3rdparty/webkit/WebCore/loader/MediaDocument.cpp169
-rw-r--r--src/3rdparty/webkit/WebCore/loader/MediaDocument.h54
-rw-r--r--src/3rdparty/webkit/WebCore/loader/NavigationAction.cpp83
-rw-r--r--src/3rdparty/webkit/WebCore/loader/NavigationAction.h61
-rw-r--r--src/3rdparty/webkit/WebCore/loader/NetscapePlugInStreamLoader.cpp130
-rw-r--r--src/3rdparty/webkit/WebCore/loader/NetscapePlugInStreamLoader.h70
-rw-r--r--src/3rdparty/webkit/WebCore/loader/PluginDocument.cpp151
-rw-r--r--src/3rdparty/webkit/WebCore/loader/PluginDocument.h48
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ProgressTracker.cpp253
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ProgressTracker.h80
-rw-r--r--src/3rdparty/webkit/WebCore/loader/Request.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/loader/Request.h63
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ResourceLoader.cpp480
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ResourceLoader.h157
-rw-r--r--src/3rdparty/webkit/WebCore/loader/SubresourceLoader.cpp268
-rw-r--r--src/3rdparty/webkit/WebCore/loader/SubresourceLoader.h66
-rw-r--r--src/3rdparty/webkit/WebCore/loader/SubresourceLoaderClient.h61
-rw-r--r--src/3rdparty/webkit/WebCore/loader/SubstituteData.h69
-rw-r--r--src/3rdparty/webkit/WebCore/loader/SubstituteResource.h64
-rw-r--r--src/3rdparty/webkit/WebCore/loader/TextDocument.cpp187
-rw-r--r--src/3rdparty/webkit/WebCore/loader/TextDocument.h51
-rw-r--r--src/3rdparty/webkit/WebCore/loader/TextResourceDecoder.cpp800
-rw-r--r--src/3rdparty/webkit/WebCore/loader/TextResourceDecoder.h80
-rw-r--r--src/3rdparty/webkit/WebCore/loader/UserStyleSheetLoader.cpp62
-rw-r--r--src/3rdparty/webkit/WebCore/loader/UserStyleSheetLoader.h57
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCache.cpp210
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCache.h113
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCacheGroup.cpp719
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCacheGroup.h154
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCacheResource.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCacheResource.h73
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCacheStorage.cpp796
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCacheStorage.h100
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/DOMApplicationCache.cpp292
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/DOMApplicationCache.h141
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/DOMApplicationCache.idl74
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ManifestParser.cpp187
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ManifestParser.h49
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/Archive.h62
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/ArchiveFactory.cpp91
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/ArchiveFactory.h50
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/ArchiveResource.cpp77
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/ArchiveResource.h65
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/ArchiveResourceCollection.cpp89
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/ArchiveResourceCollection.h59
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/cf/LegacyWebArchive.cpp578
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/cf/LegacyWebArchive.h67
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/cf/LegacyWebArchiveMac.mm74
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconDatabase.cpp2047
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconDatabase.h243
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconDatabaseClient.h49
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconDatabaseNone.cpp174
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconFetcher.cpp236
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconFetcher.h78
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconLoader.cpp171
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconLoader.h70
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconRecord.cpp106
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconRecord.h117
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/PageURLRecord.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/PageURLRecord.h85
-rw-r--r--src/3rdparty/webkit/WebCore/loader/loader.cpp487
-rw-r--r--src/3rdparty/webkit/WebCore/loader/loader.h115
-rwxr-xr-xsrc/3rdparty/webkit/WebCore/make-generated-sources.sh8
-rwxr-xr-xsrc/3rdparty/webkit/WebCore/move-js-headers.sh6
-rw-r--r--src/3rdparty/webkit/WebCore/page/AXObjectCache.cpp239
-rw-r--r--src/3rdparty/webkit/WebCore/page/AXObjectCache.h113
-rw-r--r--src/3rdparty/webkit/WebCore/page/AbstractView.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityImageMapLink.cpp130
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityImageMapLink.h72
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityList.cpp94
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityList.h56
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityListBox.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityListBox.h66
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityListBoxOption.cpp207
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityListBoxOption.h79
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityObject.cpp1031
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityObject.h424
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityRenderObject.cpp2387
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityRenderObject.h237
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityTable.cpp491
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityTable.h86
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityTableCell.cpp157
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityTableCell.h65
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityTableColumn.cpp167
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityTableColumn.h75
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityTableHeaderContainer.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityTableHeaderContainer.h67
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityTableRow.cpp110
-rw-r--r--src/3rdparty/webkit/WebCore/page/AccessibilityTableRow.h65
-rw-r--r--src/3rdparty/webkit/WebCore/page/BarInfo.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/page/BarInfo.h57
-rw-r--r--src/3rdparty/webkit/WebCore/page/BarInfo.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/page/Chrome.cpp505
-rw-r--r--src/3rdparty/webkit/WebCore/page/Chrome.h134
-rw-r--r--src/3rdparty/webkit/WebCore/page/ChromeClient.h172
-rw-r--r--src/3rdparty/webkit/WebCore/page/Console.cpp369
-rw-r--r--src/3rdparty/webkit/WebCore/page/Console.h122
-rw-r--r--src/3rdparty/webkit/WebCore/page/Console.idl59
-rw-r--r--src/3rdparty/webkit/WebCore/page/ContextMenuClient.h59
-rw-r--r--src/3rdparty/webkit/WebCore/page/ContextMenuController.cpp310
-rw-r--r--src/3rdparty/webkit/WebCore/page/ContextMenuController.h61
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMSelection.cpp424
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMSelection.h102
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMSelection.idl70
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMWindow.cpp1244
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMWindow.h307
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMWindow.idl431
-rw-r--r--src/3rdparty/webkit/WebCore/page/DragActions.h66
-rw-r--r--src/3rdparty/webkit/WebCore/page/DragClient.h81
-rw-r--r--src/3rdparty/webkit/WebCore/page/DragController.cpp781
-rw-r--r--src/3rdparty/webkit/WebCore/page/DragController.h132
-rw-r--r--src/3rdparty/webkit/WebCore/page/EditorClient.h143
-rw-r--r--src/3rdparty/webkit/WebCore/page/EventHandler.cpp2275
-rw-r--r--src/3rdparty/webkit/WebCore/page/EventHandler.h352
-rw-r--r--src/3rdparty/webkit/WebCore/page/FocusController.cpp307
-rw-r--r--src/3rdparty/webkit/WebCore/page/FocusController.h64
-rw-r--r--src/3rdparty/webkit/WebCore/page/FocusDirection.h36
-rw-r--r--src/3rdparty/webkit/WebCore/page/Frame.cpp1880
-rw-r--r--src/3rdparty/webkit/WebCore/page/Frame.h328
-rw-r--r--src/3rdparty/webkit/WebCore/page/FrameLoadRequest.h73
-rw-r--r--src/3rdparty/webkit/WebCore/page/FramePrivate.h99
-rw-r--r--src/3rdparty/webkit/WebCore/page/FrameTree.cpp314
-rw-r--r--src/3rdparty/webkit/WebCore/page/FrameTree.h86
-rw-r--r--src/3rdparty/webkit/WebCore/page/FrameView.cpp1303
-rw-r--r--src/3rdparty/webkit/WebCore/page/FrameView.h200
-rw-r--r--src/3rdparty/webkit/WebCore/page/Geolocation.cpp222
-rw-r--r--src/3rdparty/webkit/WebCore/page/Geolocation.h104
-rw-r--r--src/3rdparty/webkit/WebCore/page/Geolocation.idl38
-rw-r--r--src/3rdparty/webkit/WebCore/page/Geoposition.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/page/Geoposition.h77
-rw-r--r--src/3rdparty/webkit/WebCore/page/Geoposition.idl42
-rw-r--r--src/3rdparty/webkit/WebCore/page/History.cpp77
-rw-r--r--src/3rdparty/webkit/WebCore/page/History.h56
-rw-r--r--src/3rdparty/webkit/WebCore/page/History.idl41
-rw-r--r--src/3rdparty/webkit/WebCore/page/Location.cpp135
-rw-r--r--src/3rdparty/webkit/WebCore/page/Location.h71
-rw-r--r--src/3rdparty/webkit/WebCore/page/Location.idl57
-rw-r--r--src/3rdparty/webkit/WebCore/page/MouseEventWithHitTestResults.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/page/MouseEventWithHitTestResults.h51
-rw-r--r--src/3rdparty/webkit/WebCore/page/Navigator.cpp144
-rw-r--r--src/3rdparty/webkit/WebCore/page/Navigator.h68
-rw-r--r--src/3rdparty/webkit/WebCore/page/Navigator.idl46
-rw-r--r--src/3rdparty/webkit/WebCore/page/NavigatorBase.cpp115
-rw-r--r--src/3rdparty/webkit/WebCore/page/NavigatorBase.h54
-rw-r--r--src/3rdparty/webkit/WebCore/page/Page.cpp632
-rw-r--r--src/3rdparty/webkit/WebCore/page/Page.h265
-rw-r--r--src/3rdparty/webkit/WebCore/page/PageGroup.cpp194
-rw-r--r--src/3rdparty/webkit/WebCore/page/PageGroup.h87
-rw-r--r--src/3rdparty/webkit/WebCore/page/PositionCallback.h44
-rw-r--r--src/3rdparty/webkit/WebCore/page/PositionCallback.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/page/PositionError.h62
-rw-r--r--src/3rdparty/webkit/WebCore/page/PositionError.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/page/PositionErrorCallback.h44
-rw-r--r--src/3rdparty/webkit/WebCore/page/PositionErrorCallback.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/page/PositionOptions.h56
-rw-r--r--src/3rdparty/webkit/WebCore/page/PrintContext.cpp137
-rw-r--r--src/3rdparty/webkit/WebCore/page/PrintContext.h57
-rw-r--r--src/3rdparty/webkit/WebCore/page/Screen.cpp107
-rw-r--r--src/3rdparty/webkit/WebCore/page/Screen.h62
-rw-r--r--src/3rdparty/webkit/WebCore/page/Screen.idl43
-rw-r--r--src/3rdparty/webkit/WebCore/page/SecurityOrigin.cpp297
-rw-r--r--src/3rdparty/webkit/WebCore/page/SecurityOrigin.h141
-rw-r--r--src/3rdparty/webkit/WebCore/page/SecurityOriginHash.h81
-rw-r--r--src/3rdparty/webkit/WebCore/page/Settings.cpp408
-rw-r--r--src/3rdparty/webkit/WebCore/page/Settings.h261
-rw-r--r--src/3rdparty/webkit/WebCore/page/WindowFeatures.cpp188
-rw-r--r--src/3rdparty/webkit/WebCore/page/WindowFeatures.h83
-rw-r--r--src/3rdparty/webkit/WebCore/page/WorkerNavigator.cpp51
-rw-r--r--src/3rdparty/webkit/WebCore/page/WorkerNavigator.h56
-rw-r--r--src/3rdparty/webkit/WebCore/page/WorkerNavigator.idl43
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/AnimationBase.cpp860
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/AnimationBase.h199
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/AnimationController.cpp456
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/AnimationController.h91
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/CompositeAnimation.cpp706
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/CompositeAnimation.h95
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/ImplicitAnimation.cpp212
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/ImplicitAnimation.h86
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/KeyframeAnimation.cpp293
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/KeyframeAnimation.h91
-rw-r--r--src/3rdparty/webkit/WebCore/page/chromium/AccessibilityObjectChromium.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/page/chromium/AccessibilityObjectWrapper.h50
-rw-r--r--src/3rdparty/webkit/WebCore/page/qt/AccessibilityObjectQt.cpp34
-rw-r--r--src/3rdparty/webkit/WebCore/page/qt/DragControllerQt.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/page/qt/EventHandlerQt.cpp138
-rw-r--r--src/3rdparty/webkit/WebCore/page/qt/FrameQt.cpp53
-rw-r--r--src/3rdparty/webkit/WebCore/page/win/AXObjectCacheWin.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/page/win/AccessibilityObjectWin.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/page/win/AccessibilityObjectWrapperWin.h54
-rw-r--r--src/3rdparty/webkit/WebCore/page/win/DragControllerWin.cpp68
-rw-r--r--src/3rdparty/webkit/WebCore/page/win/EventHandlerWin.cpp114
-rw-r--r--src/3rdparty/webkit/WebCore/page/win/FrameCGWin.cpp111
-rw-r--r--src/3rdparty/webkit/WebCore/page/win/FrameCairoWin.cpp48
-rw-r--r--src/3rdparty/webkit/WebCore/page/win/FrameWin.cpp101
-rw-r--r--src/3rdparty/webkit/WebCore/page/win/FrameWin.h41
-rw-r--r--src/3rdparty/webkit/WebCore/page/win/PageWin.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Arena.cpp281
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Arena.h130
-rw-r--r--src/3rdparty/webkit/WebCore/platform/AutodrainedPool.h67
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ColorData.gperf151
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ContextMenu.cpp656
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ContextMenu.h89
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ContextMenuItem.h238
-rw-r--r--src/3rdparty/webkit/WebCore/platform/CookieJar.h41
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Cursor.h153
-rw-r--r--src/3rdparty/webkit/WebCore/platform/DeprecatedPtrList.h113
-rw-r--r--src/3rdparty/webkit/WebCore/platform/DeprecatedPtrListImpl.cpp514
-rw-r--r--src/3rdparty/webkit/WebCore/platform/DeprecatedPtrListImpl.h122
-rw-r--r--src/3rdparty/webkit/WebCore/platform/DragData.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/platform/DragData.h114
-rw-r--r--src/3rdparty/webkit/WebCore/platform/DragImage.cpp74
-rw-r--r--src/3rdparty/webkit/WebCore/platform/DragImage.h91
-rw-r--r--src/3rdparty/webkit/WebCore/platform/EventLoop.h49
-rw-r--r--src/3rdparty/webkit/WebCore/platform/FileChooser.cpp93
-rw-r--r--src/3rdparty/webkit/WebCore/platform/FileChooser.h80
-rw-r--r--src/3rdparty/webkit/WebCore/platform/FileSystem.h176
-rw-r--r--src/3rdparty/webkit/WebCore/platform/FloatConversion.h61
-rw-r--r--src/3rdparty/webkit/WebCore/platform/GeolocationService.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/platform/GeolocationService.h71
-rw-r--r--src/3rdparty/webkit/WebCore/platform/HostWindow.h66
-rw-r--r--src/3rdparty/webkit/WebCore/platform/KURL.cpp1594
-rw-r--r--src/3rdparty/webkit/WebCore/platform/KURL.h364
-rw-r--r--src/3rdparty/webkit/WebCore/platform/KURLHash.h61
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Language.h37
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Length.cpp151
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Length.h197
-rw-r--r--src/3rdparty/webkit/WebCore/platform/LengthBox.h85
-rw-r--r--src/3rdparty/webkit/WebCore/platform/LengthSize.h58
-rw-r--r--src/3rdparty/webkit/WebCore/platform/LinkHash.cpp221
-rw-r--r--src/3rdparty/webkit/WebCore/platform/LinkHash.h73
-rw-r--r--src/3rdparty/webkit/WebCore/platform/LocalizedStrings.h124
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Logging.cpp62
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Logging.h62
-rw-r--r--src/3rdparty/webkit/WebCore/platform/MIMETypeRegistry.cpp342
-rw-r--r--src/3rdparty/webkit/WebCore/platform/MIMETypeRegistry.h77
-rw-r--r--src/3rdparty/webkit/WebCore/platform/NotImplemented.h55
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Pasteboard.h135
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PlatformKeyboardEvent.h185
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PlatformMenuDescription.h64
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PlatformMouseEvent.h168
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PlatformScreen.h66
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PlatformWheelEvent.h142
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PopupMenu.h186
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PopupMenuClient.h67
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PopupMenuStyle.h58
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PurgeableBuffer.h76
-rw-r--r--src/3rdparty/webkit/WebCore/platform/SSLKeyGenerator.h41
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ScrollTypes.h85
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ScrollView.cpp927
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ScrollView.h328
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Scrollbar.cpp452
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Scrollbar.h168
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ScrollbarClient.h51
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ScrollbarTheme.h94
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ScrollbarThemeComposite.cpp304
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ScrollbarThemeComposite.h71
-rw-r--r--src/3rdparty/webkit/WebCore/platform/SearchPopupMenu.h46
-rw-r--r--src/3rdparty/webkit/WebCore/platform/SharedBuffer.cpp147
-rw-r--r--src/3rdparty/webkit/WebCore/platform/SharedBuffer.h111
-rw-r--r--src/3rdparty/webkit/WebCore/platform/SharedTimer.h44
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Sound.h35
-rw-r--r--src/3rdparty/webkit/WebCore/platform/StaticConstructors.h76
-rw-r--r--src/3rdparty/webkit/WebCore/platform/SystemTime.h40
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Theme.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Theme.h122
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ThemeTypes.h75
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ThreadCheck.h44
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ThreadGlobalData.cpp98
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ThreadGlobalData.h75
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Timer.cpp396
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Timer.h112
-rw-r--r--src/3rdparty/webkit/WebCore/platform/TreeShared.h108
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Widget.cpp121
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Widget.h203
-rw-r--r--src/3rdparty/webkit/WebCore/platform/animation/Animation.cpp126
-rw-r--r--src/3rdparty/webkit/WebCore/platform/animation/Animation.h146
-rw-r--r--src/3rdparty/webkit/WebCore/platform/animation/AnimationList.cpp57
-rw-r--r--src/3rdparty/webkit/WebCore/platform/animation/AnimationList.h60
-rw-r--r--src/3rdparty/webkit/WebCore/platform/animation/TimingFunction.h74
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/BitmapImage.cpp427
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/BitmapImage.h254
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Color.cpp315
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Color.h152
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/DashArray.h39
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatPoint.cpp52
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatPoint.h158
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatPoint3D.cpp65
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatPoint3D.h58
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatQuad.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatQuad.h138
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatRect.cpp134
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatRect.h188
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatSize.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatSize.h132
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Font.cpp317
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Font.h196
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontCache.cpp429
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontCache.h95
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontData.cpp35
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontData.h60
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontDescription.cpp101
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontDescription.h139
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontFallbackList.cpp134
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontFallbackList.h79
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontFamily.cpp59
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontFamily.h88
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontFastPath.cpp367
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontRenderingMode.h37
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontSelector.h47
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontTraitsMask.h70
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GeneratedImage.cpp68
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GeneratedImage.h76
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Generator.h45
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GlyphBuffer.h182
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GlyphPageTreeNode.cpp384
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GlyphPageTreeNode.h177
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GlyphWidthMap.cpp79
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GlyphWidthMap.h74
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Gradient.cpp149
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Gradient.h114
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GraphicsContext.cpp512
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GraphicsContext.h353
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GraphicsContextPrivate.h118
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GraphicsTypes.cpp189
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GraphicsTypes.h80
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Icon.h86
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Image.cpp199
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Image.h179
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/ImageBuffer.h90
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/ImageObserver.h51
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/ImageSource.h141
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/IntPoint.h180
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/IntRect.cpp107
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/IntRect.h210
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/IntSize.h163
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/IntSizeHash.h46
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayer.cpp272
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayer.h140
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Path.cpp276
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Path.h135
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/PathTraversalState.cpp207
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/PathTraversalState.h72
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Pattern.cpp46
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Pattern.h82
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Pen.cpp77
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Pen.h72
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/SegmentedFontData.cpp79
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/SegmentedFontData.h75
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/SimpleFontData.cpp163
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/SimpleFontData.h211
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/StringTruncator.cpp198
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/StringTruncator.h46
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/StrokeStyleApplier.h38
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/TextRun.h126
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/UnitBezier.h123
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/WidthIterator.cpp230
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/WidthIterator.h56
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEBlend.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEBlend.h64
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEColorMatrix.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEColorMatrix.h64
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEComponentTransfer.cpp96
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEComponentTransfer.h99
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEComposite.cpp108
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEComposite.h81
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ColorQt.cpp48
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FloatPointQt.cpp48
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FloatRectQt.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontCacheQt.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontCustomPlatformData.cpp65
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontCustomPlatformData.h46
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontFallbackListQt.cpp106
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontPlatformData.h53
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontPlatformDataQt.cpp78
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp188
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt43.cpp356
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/GlyphPageTreeNodeQt.cpp36
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/GradientQt.cpp78
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp1206
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/IconQt.cpp68
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferData.h48
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp115
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp330
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.h96
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageQt.cpp165
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageSourceQt.cpp171
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/IntPointQt.cpp48
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/IntRectQt.cpp48
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/IntSizeQt.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp481
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.h148
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/PathQt.cpp306
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/PatternQt.cpp46
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/SimpleFontDataQt.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/StillImageQt.cpp65
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/StillImageQt.h59
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/TransformationMatrixQt.cpp202
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/IdentityTransformOperation.h67
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/MatrixTransformOperation.cpp50
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/MatrixTransformOperation.h82
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/RotateTransformOperation.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/RotateTransformOperation.h74
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/ScaleTransformOperation.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/ScaleTransformOperation.h74
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/SkewTransformOperation.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/SkewTransformOperation.h74
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformOperation.h64
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformOperations.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformOperations.h59
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformationMatrix.cpp205
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformationMatrix.h140
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TranslateTransformOperation.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TranslateTransformOperation.h75
-rw-r--r--src/3rdparty/webkit/WebCore/platform/image-decoders/ImageDecoder.h170
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/AutodrainedPool.mm55
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/BlockExceptions.h32
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/BlockExceptions.mm38
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ClipboardMac.h88
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ClipboardMac.mm360
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ContextMenuItemMac.mm155
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ContextMenuMac.mm154
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/CookieJar.mm118
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/CursorMac.mm356
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/DragDataMac.mm131
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/DragImageMac.mm102
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/EventLoopMac.mm39
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/FileChooserMac.mm55
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/FileSystemMac.mm40
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/FoundationExtras.h72
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/KURLMac.mm71
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/KeyEventMac.mm876
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/Language.mm43
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/LocalCurrentGraphicsContext.h40
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/LocalCurrentGraphicsContext.mm53
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/LocalizedStringsMac.mm596
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/LoggingMac.mm74
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/MIMETypeRegistryMac.mm59
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/PasteboardHelper.h60
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/PasteboardMac.mm378
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/PlatformMouseEventMac.mm177
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/PlatformScreenMac.mm108
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/PopupMenuMac.mm195
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/PurgeableBufferMac.cpp164
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/SSLKeyGeneratorMac.mm49
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/SchedulePairMac.mm43
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ScrollViewMac.mm220
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ScrollbarThemeMac.h70
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ScrollbarThemeMac.mm404
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/SearchPopupMenuMac.mm74
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/SharedBufferMac.mm130
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/SharedTimerMac.mm117
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/SoftLinking.h119
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/SoundMac.mm33
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/SystemTimeMac.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ThemeMac.h56
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ThemeMac.mm545
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ThreadCheck.mm100
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreKeyGenerator.h32
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreKeyGenerator.m58
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreNSStringExtras.h51
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreNSStringExtras.mm119
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreObjCExtras.h43
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreObjCExtras.mm79
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreSystemInterface.h151
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreSystemInterface.mm95
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreTextRenderer.h40
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreTextRenderer.mm93
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreView.h28
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreView.m65
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebFontCache.h34
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebFontCache.mm301
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WheelEventMac.mm52
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WidgetMac.mm353
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/AuthenticationChallengeBase.cpp113
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/AuthenticationChallengeBase.h70
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/Credential.cpp80
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/Credential.h59
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/DNS.h36
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/FormData.cpp167
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/FormData.h109
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/FormDataBuilder.cpp238
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/FormDataBuilder.h77
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/HTTPHeaderMap.h40
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/HTTPParsers.cpp186
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/HTTPParsers.h42
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/NetworkStateNotifier.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/NetworkStateNotifier.h100
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ProtectionSpace.cpp119
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ProtectionSpace.h79
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceErrorBase.cpp62
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceErrorBase.h88
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceHandle.cpp202
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceHandle.h195
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceHandleClient.h93
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceHandleInternal.h213
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceRequestBase.cpp287
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceRequestBase.h147
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceResponseBase.cpp380
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceResponseBase.h151
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/chromium/ResourceResponse.h83
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/AuthenticationChallenge.h46
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp435
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.h118
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/ResourceError.h48
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/ResourceHandleQt.cpp208
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/ResourceRequest.h74
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/ResourceRequestQt.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/ResourceResponse.h47
-rw-r--r--src/3rdparty/webkit/WebCore/platform/posix/FileSystemPOSIX.cpp168
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ClipboardQt.cpp305
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ClipboardQt.h87
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ContextMenuItemQt.cpp117
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ContextMenuQt.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/CookieJarQt.cpp133
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/CursorQt.cpp372
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/DragDataQt.cpp142
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/DragImageQt.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/EventLoopQt.cpp32
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/FileChooserQt.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/FileSystemQt.cpp175
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/KURLQt.cpp102
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/KeyboardCodes.h561
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp357
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/LoggingQt.cpp90
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/MIMETypeRegistryQt.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/MenuEventProxy.h54
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/PasteboardQt.cpp172
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/PlatformKeyboardEventQt.cpp527
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/PlatformMouseEventQt.cpp94
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/PlatformScreenQt.cpp78
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp122
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/QWebPopup.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/QWebPopup.h49
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp958
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.h180
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ScreenQt.cpp99
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ScrollViewQt.cpp62
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp98
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ScrollbarThemeQt.cpp251
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ScrollbarThemeQt.h55
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/SearchPopupMenuQt.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/SharedBufferQt.cpp52
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/SharedTimerQt.cpp134
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/SoundQt.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/SystemTimeQt.cpp46
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/TemporaryLinkStubs.cpp130
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/WheelEventQt.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/WidgetQt.cpp112
-rw-r--r--src/3rdparty/webkit/WebCore/platform/sql/SQLValue.cpp56
-rw-r--r--src/3rdparty/webkit/WebCore/platform/sql/SQLValue.h58
-rw-r--r--src/3rdparty/webkit/WebCore/platform/sql/SQLiteAuthorizer.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.cpp353
-rw-r--r--src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.h130
-rw-r--r--src/3rdparty/webkit/WebCore/platform/sql/SQLiteStatement.cpp453
-rw-r--r--src/3rdparty/webkit/WebCore/platform/sql/SQLiteStatement.h102
-rw-r--r--src/3rdparty/webkit/WebCore/platform/sql/SQLiteTransaction.cpp80
-rw-r--r--src/3rdparty/webkit/WebCore/platform/sql/SQLiteTransaction.h56
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/AtomicString.cpp308
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/AtomicString.h159
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/AtomicStringHash.h64
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/AtomicStringImpl.h36
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/Base64.cpp184
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/Base64.h41
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/BidiContext.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/BidiContext.h69
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/BidiResolver.h937
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/CString.cpp115
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/CString.h80
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/CharacterNames.h61
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/ParserUtilities.h54
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/PlatformString.h373
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/RegularExpression.cpp213
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/RegularExpression.h63
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/SegmentedString.cpp202
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/SegmentedString.h176
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/String.cpp845
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/StringBuffer.h77
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/StringBuilder.cpp97
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/StringBuilder.h57
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/StringHash.h248
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/StringImpl.cpp991
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/StringImpl.h290
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextBoundaries.h38
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextBoundariesICU.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextBreakIterator.h48
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextBreakIteratorICU.cpp117
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextBreakIteratorInternalICU.h32
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodec.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodec.h84
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecICU.cpp473
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecICU.h79
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecLatin1.cpp199
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecLatin1.h44
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecUTF16.cpp140
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecUTF16.h51
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecUserDefined.cpp111
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecUserDefined.h44
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextDecoder.cpp129
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextDecoder.h64
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextDirection.h35
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextEncoding.cpp239
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextEncoding.h78
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextEncodingRegistry.cpp262
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextEncodingRegistry.h53
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextStream.cpp114
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextStream.h59
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/UnicodeRange.cpp462
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/UnicodeRange.h120
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/cf/StringCF.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/cf/StringImplCF.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/CharsetData.h37
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/ShapeArabic.c555
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/ShapeArabic.h44
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/StringImplMac.mm33
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/StringMac.mm41
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/TextBoundaries.mm54
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/TextBreakIteratorInternalICUMac.mm72
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/TextCodecMac.cpp329
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/TextCodecMac.h73
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/character-sets.txt1868
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/mac-encodings.txt45
-rwxr-xr-xsrc/3rdparty/webkit/WebCore/platform/text/mac/make-charset-table.pl225
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/qt/StringQt.cpp56
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/qt/TextBoundaries.cpp125
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/qt/TextBreakIteratorQt.cpp297
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/qt/TextCodecQt.cpp121
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/qt/TextCodecQt.h54
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/symbian/StringImplSymbian.cpp53
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/symbian/StringSymbian.cpp50
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/win/TextBreakIteratorInternalICUWin.cpp31
-rw-r--r--src/3rdparty/webkit/WebCore/platform/win/SystemTimeWin.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/MimeType.cpp70
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/MimeType.h52
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/MimeType.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/MimeTypeArray.cpp95
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/MimeTypeArray.h56
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/MimeTypeArray.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/Plugin.cpp91
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/Plugin.h57
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/Plugin.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginArray.cpp100
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginArray.h58
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginArray.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginData.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginData.h74
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp375
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginDatabase.h84
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginDebug.h57
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginInfoStore.cpp103
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginInfoStore.h48
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginMainThreadScheduler.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginMainThreadScheduler.h86
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginPackage.cpp240
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginPackage.h118
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginQuirkSet.h62
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginStream.cpp476
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginStream.h123
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginView.cpp938
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginView.h302
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/mac/PluginDataMac.mm76
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/mac/PluginPackageMac.cpp378
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.cpp704
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/npapi.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/npfunctions.h204
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/qt/PluginDataQt.cpp108
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/qt/PluginPackageQt.cpp200
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp488
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/win/PluginDataWin.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/win/PluginDatabaseWin.cpp354
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/win/PluginMessageThrottlerWin.cpp123
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/win/PluginMessageThrottlerWin.h72
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/win/PluginPackageWin.cpp375
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/win/PluginViewWin.cpp841
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/AutoTableLayout.cpp785
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/AutoTableLayout.h87
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/CounterNode.cpp192
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/CounterNode.h81
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/EllipsisBox.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/EllipsisBox.h53
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/FixedTableLayout.cpp309
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/FixedTableLayout.h49
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/GapRects.h62
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/HitTestRequest.h44
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/HitTestResult.cpp334
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/HitTestResult.h94
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineBox.cpp258
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineBox.h316
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineFlowBox.cpp1064
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineFlowBox.h171
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineRunBox.h54
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineTextBox.cpp909
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineTextBox.h139
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/LayoutState.cpp114
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/LayoutState.h71
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/ListMarkerBox.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/ListMarkerBox.h41
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/MediaControlElements.cpp254
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/MediaControlElements.h136
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/PointerEventsHitRules.cpp110
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/PointerEventsHitRules.h50
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderApplet.cpp98
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderApplet.h52
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderArena.cpp135
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderArena.h64
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBR.cpp111
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBR.h71
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBlock.cpp4671
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBlock.h504
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBox.cpp2768
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBox.h257
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderButton.cpp183
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderButton.h77
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderContainer.cpp701
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderContainer.h75
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderCounter.cpp306
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderCounter.h54
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFieldset.cpp282
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFieldset.h60
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.cpp298
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h70
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFlexibleBox.cpp1157
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFlexibleBox.h66
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFlow.cpp883
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFlow.h146
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderForeignObject.cpp132
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderForeignObject.h61
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFrame.cpp62
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFrame.h50
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFrameSet.cpp669
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFrameSet.h122
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderHTMLCanvas.cpp74
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderHTMLCanvas.h52
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderImage.cpp577
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderImage.h107
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderImageGeneratedContent.cpp53
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderImageGeneratedContent.h64
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderInline.cpp399
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderInline.h84
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp2609
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLayer.h523
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLegend.cpp36
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLegend.h42
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListBox.cpp649
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListBox.h132
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListItem.cpp335
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListItem.h83
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListMarker.cpp905
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListMarker.h85
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMarquee.cpp311
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMarquee.h97
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMedia.cpp424
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMedia.h118
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMenuList.cpp441
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMenuList.h119
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderObject.cpp3303
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderObject.h991
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderPart.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderPart.h62
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderPartObject.cpp317
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderPartObject.h47
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderPath.cpp484
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderPath.h95
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderReplaced.cpp416
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderReplaced.h87
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderReplica.cpp80
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderReplica.h53
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGBlock.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGBlock.h41
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGContainer.cpp438
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGContainer.h122
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGGradientStop.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGGradientStop.h59
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGHiddenContainer.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGHiddenContainer.h67
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGImage.cpp280
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGImage.h75
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGInline.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGInline.h41
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGInlineText.cpp180
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGInlineText.h59
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGRoot.cpp347
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGRoot.h82
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGTSpan.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGTSpan.h41
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGText.cpp242
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGText.h71
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGTextPath.cpp122
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGTextPath.h55
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGTransformableContainer.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGTransformableContainer.h39
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGViewportContainer.cpp198
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGViewportContainer.h64
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderScrollbar.cpp320
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderScrollbar.h83
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderScrollbarPart.cpp169
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderScrollbarPart.h67
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderScrollbarTheme.cpp140
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderScrollbarTheme.h82
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSlider.cpp402
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSlider.h73
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTable.cpp1152
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTable.h226
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableCell.cpp882
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableCell.h133
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableCol.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableCol.h61
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableRow.cpp219
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableRow.h67
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableSection.cpp1080
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableSection.h154
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderText.cpp1216
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderText.h183
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControl.cpp591
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControl.h121
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControlMultiLine.cpp157
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControlMultiLine.h54
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControlSingleLine.cpp759
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControlSingleLine.h123
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextFragment.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextFragment.h64
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTheme.cpp776
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTheme.h234
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeMac.h177
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeSafari.cpp1235
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeSafari.h181
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeWin.cpp852
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeWin.h147
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTreeAsText.cpp512
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTreeAsText.h43
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderVideo.cpp239
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderVideo.h75
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderView.cpp611
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderView.h226
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderWidget.cpp278
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderWidget.h77
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderWordBreak.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderWordBreak.h46
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RootInlineBox.cpp405
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RootInlineBox.h206
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGCharacterLayoutInfo.cpp535
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGCharacterLayoutInfo.h416
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGInlineFlowBox.cpp53
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGInlineFlowBox.h48
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGInlineTextBox.cpp548
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGInlineTextBox.h75
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGRenderSupport.cpp167
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGRenderSupport.h42
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGRenderTreeAsText.cpp562
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGRenderTreeAsText.h111
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGRootInlineBox.cpp1718
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGRootInlineBox.h99
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/TableLayout.h48
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/TextControlInnerElements.cpp178
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/TextControlInnerElements.h73
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/bidi.cpp2222
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/bidi.h67
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/break_lines.cpp120
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/break_lines.h41
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/BindingURI.cpp71
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/BindingURI.h59
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/BorderData.h109
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/BorderValue.h75
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/CollapsedBorderValue.h66
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/ContentData.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/ContentData.h62
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/CounterContent.h62
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/CounterDirectives.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/CounterDirectives.h54
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/CursorData.h56
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/CursorList.h59
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/DataRef.h71
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/FillLayer.cpp254
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/FillLayer.h161
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/KeyframeList.cpp88
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/KeyframeList.h90
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/NinePieceImage.cpp35
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/NinePieceImage.h70
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/OutlineValue.h56
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/RenderStyle.cpp844
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/RenderStyle.h1129
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/RenderStyleConstants.h268
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/SVGRenderStyle.cpp146
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/SVGRenderStyle.h215
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/SVGRenderStyleDefs.cpp218
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/SVGRenderStyleDefs.h292
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/ShadowData.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/ShadowData.h71
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleBackgroundData.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleBackgroundData.h59
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleBoxData.cpp67
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleBoxData.h67
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleCachedImage.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleCachedImage.h67
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleDashboardRegion.h61
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleFlexibleBoxData.cpp59
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleFlexibleBoxData.h60
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleGeneratedImage.cpp65
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleGeneratedImage.h69
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleImage.h81
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleInheritedData.cpp91
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleInheritedData.h80
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleMarqueeData.cpp54
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleMarqueeData.h61
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleMultiColData.cpp65
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleMultiColData.h75
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleRareInheritedData.cpp95
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleRareInheritedData.h76
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleRareNonInheritedData.cpp167
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleRareNonInheritedData.h120
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleReflection.h70
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleSurroundData.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleSurroundData.h58
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleTransformData.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleTransformData.h57
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleVisualData.cpp53
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleVisualData.h67
-rw-r--r--src/3rdparty/webkit/WebCore/storage/ChangeVersionWrapper.cpp77
-rw-r--r--src/3rdparty/webkit/WebCore/storage/ChangeVersionWrapper.h55
-rw-r--r--src/3rdparty/webkit/WebCore/storage/Database.cpp597
-rw-r--r--src/3rdparty/webkit/WebCore/storage/Database.h148
-rw-r--r--src/3rdparty/webkit/WebCore/storage/Database.idl37
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseAuthorizer.cpp212
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseAuthorizer.h105
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseDetails.h67
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseTask.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseTask.h151
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseThread.cpp136
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseThread.h74
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseTracker.cpp830
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseTracker.h133
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseTrackerClient.h45
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorage.cpp172
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorage.h81
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorageArea.cpp416
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorageArea.h105
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorageTask.cpp84
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorageTask.h64
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorageThread.cpp139
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorageThread.h74
-rw-r--r--src/3rdparty/webkit/WebCore/storage/OriginQuotaManager.cpp123
-rw-r--r--src/3rdparty/webkit/WebCore/storage/OriginQuotaManager.h70
-rw-r--r--src/3rdparty/webkit/WebCore/storage/OriginUsageRecord.cpp104
-rw-r--r--src/3rdparty/webkit/WebCore/storage/OriginUsageRecord.h67
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLError.h52
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLError.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLResultSet.cpp81
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLResultSet.h63
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLResultSet.idl38
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLResultSetRowList.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLResultSetRowList.h58
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLResultSetRowList.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLStatement.cpp197
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLStatement.h83
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLStatementCallback.h48
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLStatementCallback.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLStatementErrorCallback.h49
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLStatementErrorCallback.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLTransaction.cpp550
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLTransaction.h131
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLTransaction.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLTransactionCallback.h47
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLTransactionCallback.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLTransactionErrorCallback.h48
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLTransactionErrorCallback.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SessionStorage.cpp75
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SessionStorage.h64
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SessionStorageArea.cpp89
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SessionStorageArea.h57
-rw-r--r--src/3rdparty/webkit/WebCore/storage/Storage.cpp106
-rw-r--r--src/3rdparty/webkit/WebCore/storage/Storage.h65
-rw-r--r--src/3rdparty/webkit/WebCore/storage/Storage.idl45
-rw-r--r--src/3rdparty/webkit/WebCore/storage/StorageArea.cpp125
-rw-r--r--src/3rdparty/webkit/WebCore/storage/StorageArea.h83
-rw-r--r--src/3rdparty/webkit/WebCore/storage/StorageEvent.cpp57
-rw-r--r--src/3rdparty/webkit/WebCore/storage/StorageEvent.h72
-rw-r--r--src/3rdparty/webkit/WebCore/storage/StorageEvent.idl42
-rw-r--r--src/3rdparty/webkit/WebCore/storage/StorageMap.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/storage/StorageMap.h65
-rw-r--r--src/3rdparty/webkit/WebCore/svg/ColorDistance.cpp94
-rw-r--r--src/3rdparty/webkit/WebCore/svg/ColorDistance.h53
-rw-r--r--src/3rdparty/webkit/WebCore/svg/ElementTimeControl.h48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/ElementTimeControl.idl39
-rw-r--r--src/3rdparty/webkit/WebCore/svg/Filter.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/svg/Filter.h46
-rw-r--r--src/3rdparty/webkit/WebCore/svg/FilterBuilder.h51
-rw-r--r--src/3rdparty/webkit/WebCore/svg/FilterEffect.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/svg/FilterEffect.h48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/GradientAttributes.h74
-rw-r--r--src/3rdparty/webkit/WebCore/svg/LinearGradientAttributes.h78
-rw-r--r--src/3rdparty/webkit/WebCore/svg/PatternAttributes.h103
-rw-r--r--src/3rdparty/webkit/WebCore/svg/RadialGradientAttributes.h85
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAElement.cpp213
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAElement.h73
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAElement.idl38
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAltGlyphElement.cpp89
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAltGlyphElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAltGlyphElement.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAngle.cpp150
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAngle.h79
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAngle.idl45
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateColorElement.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateColorElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateColorElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateElement.cpp289
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateElement.h73
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateElement.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateMotionElement.cpp245
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateMotionElement.h79
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateTransformElement.cpp207
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateTransformElement.h69
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateTransformElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedAngle.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedBoolean.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedEnumeration.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedInteger.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedLength.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedLengthList.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedNumber.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedNumberList.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedPathData.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedPathData.h50
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedPathData.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedPoints.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedPoints.h48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedPoints.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedPreserveAspectRatio.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedProperty.h460
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedRect.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedString.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedTemplate.h258
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedTransformList.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimationElement.cpp534
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimationElement.h125
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimationElement.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGCircleElement.cpp99
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGCircleElement.h62
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGCircleElement.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGClipPathElement.cpp123
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGClipPathElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGClipPathElement.idl39
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGColor.cpp119
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGColor.h93
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGColor.idl48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGComponentTransferFunctionElement.cpp106
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGComponentTransferFunctionElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGComponentTransferFunctionElement.idl46
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGCursorElement.cpp107
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGCursorElement.h66
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGCursorElement.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDefinitionSrcElement.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDefinitionSrcElement.h39
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDefinitionSrcElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDefsElement.cpp56
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDefsElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDefsElement.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDescElement.cpp48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDescElement.h46
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDescElement.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDocument.cpp105
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDocument.h66
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDocument.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDocumentExtensions.cpp137
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGDocumentExtensions.h131
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElement.cpp298
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElement.h145
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElement.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElementInstance.cpp577
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElementInstance.h211
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElementInstance.idl103
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElementInstanceList.cpp62
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElementInstanceList.h50
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElementInstanceList.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGEllipseElement.cpp106
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGEllipseElement.h63
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGEllipseElement.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGException.h58
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGException.idl42
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGExternalResourcesRequired.cpp62
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGExternalResourcesRequired.h63
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGExternalResourcesRequired.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.cpp90
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.h55
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.idl43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEColorMatrixElement.cpp96
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEColorMatrixElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEColorMatrixElement.idl42
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEComponentTransferElement.cpp97
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEComponentTransferElement.h50
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEComponentTransferElement.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFECompositeElement.cpp106
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFECompositeElement.h56
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFECompositeElement.idl48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDiffuseLightingElement.cpp115
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDiffuseLightingElement.h61
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDiffuseLightingElement.idl37
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDisplacementMapElement.cpp102
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDisplacementMapElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDisplacementMapElement.idl44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDistantLightElement.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDistantLightElement.h40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDistantLightElement.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.cpp74
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.h49
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncAElement.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncAElement.h41
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncAElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncBElement.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncBElement.h41
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncBElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncGElement.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncGElement.h41
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncGElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncRElement.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncRElement.h41
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncRElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEGaussianBlurElement.cpp89
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEGaussianBlurElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEGaussianBlurElement.idl37
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEImageElement.cpp115
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEImageElement.h66
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEImageElement.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFELightElement.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFELightElement.h60
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEMergeElement.cpp71
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEMergeElement.h47
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEMergeElement.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEMergeNodeElement.cpp51
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEMergeNodeElement.h48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEMergeNodeElement.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEOffsetElement.cpp79
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEOffsetElement.h52
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEOffsetElement.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEPointLightElement.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEPointLightElement.h40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEPointLightElement.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFESpecularLightingElement.cpp115
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFESpecularLightingElement.h61
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFESpecularLightingElement.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFESpotLightElement.cpp54
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFESpotLightElement.h40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFESpotLightElement.idl39
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFETileElement.cpp74
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFETileElement.h50
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFETileElement.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFETurbulenceElement.cpp96
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFETurbulenceElement.h64
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFETurbulenceElement.idl48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFilterElement.cpp156
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFilterElement.h73
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFilterElement.idl47
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp128
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h64
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl37
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFitToViewBox.cpp121
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFitToViewBox.h57
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFitToViewBox.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFont.cpp595
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontData.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontData.h65
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontElement.cpp243
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontElement.h66
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceElement.cpp368
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceElement.h73
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceFormatElement.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceFormatElement.h40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceFormatElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceNameElement.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceNameElement.h40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceNameElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceSrcElement.cpp62
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceSrcElement.h42
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceSrcElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceUriElement.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceUriElement.h42
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceUriElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGForeignObjectElement.cpp167
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGForeignObjectElement.h64
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGForeignObjectElement.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGElement.h61
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGElement.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGlyphElement.cpp178
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGlyphElement.h131
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGlyphElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGlyphMap.h109
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGradientElement.cpp169
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGradientElement.h74
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGradientElement.idl44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGHKernElement.cpp81
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGHKernElement.h66
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGHKernElement.idl27
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGImageElement.cpp166
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGImageElement.h79
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGImageElement.idl42
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGImageLoader.cpp65
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGImageLoader.h44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLangSpace.cpp88
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLangSpace.h56
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLangSpace.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLength.cpp323
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLength.h105
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLength.idl52
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLengthList.cpp80
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLengthList.h48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLengthList.idl48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLineElement.cpp103
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLineElement.h67
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLineElement.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLinearGradientElement.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLinearGradientElement.h58
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLinearGradientElement.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGList.h256
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGListTraits.h53
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLocatable.cpp159
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLocatable.h64
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLocatable.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMPathElement.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMPathElement.h54
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMarkerElement.cpp195
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMarkerElement.h89
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMarkerElement.idl55
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMaskElement.cpp214
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMaskElement.h73
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMaskElement.idl42
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMatrix.idl52
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMetadataElement.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMetadataElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMetadataElement.idl29
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMissingGlyphElement.cpp34
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMissingGlyphElement.h39
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMissingGlyphElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGNumber.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGNumberList.cpp75
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGNumberList.h50
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGNumberList.idl48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPaint.cpp117
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPaint.h100
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPaint.idl52
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGParserUtilities.cpp873
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGParserUtilities.h71
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathElement.cpp242
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathElement.h115
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathElement.idl112
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSeg.h95
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSeg.idl56
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegArc.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegArc.h104
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegArcAbs.idl46
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegArcRel.idl46
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegClosePath.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegClosePath.h51
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegClosePath.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoCubic.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoCubic.h98
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoCubicRel.idl44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoCubicSmooth.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoCubicSmooth.h85
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoQuadratic.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoQuadratic.h85
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.h59
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegLineto.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegLineto.h59
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegLinetoAbs.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegLinetoHorizontal.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegLinetoHorizontal.h72
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegLinetoRel.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegLinetoVertical.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegLinetoVertical.h72
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegLinetoVerticalRel.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegList.cpp260
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegList.h51
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegList.idl48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegMoveto.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegMoveto.h58
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegMovetoAbs.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegMovetoRel.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPatternElement.cpp322
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPatternElement.h85
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPatternElement.idl45
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPoint.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPointList.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPointList.h49
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPointList.idl47
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPolyElement.cpp130
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPolyElement.h68
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPolygonElement.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPolygonElement.h42
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPolygonElement.idl37
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPolylineElement.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPolylineElement.h42
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPolylineElement.idl37
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPreserveAspectRatio.cpp261
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPreserveAspectRatio.h92
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPreserveAspectRatio.idl52
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGRadialGradientElement.cpp210
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGRadialGradientElement.h59
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGRadialGradientElement.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGRect.idl38
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGRectElement.cpp126
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGRectElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGRectElement.idl43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGRenderingIntent.h51
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGRenderingIntent.idl38
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSVGElement.cpp538
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSVGElement.h167
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSVGElement.idl88
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGScriptElement.cpp211
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGScriptElement.h80
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGScriptElement.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSetElement.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSetElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSetElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStopElement.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStopElement.h49
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStopElement.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStringList.cpp71
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStringList.h47
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStringList.idl47
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStylable.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStylable.h48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStylable.idl37
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStyleElement.cpp140
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStyleElement.h70
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStyleElement.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStyledElement.cpp281
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStyledElement.h80
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStyledLocatableElement.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStyledLocatableElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStyledTransformableElement.cpp126
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStyledTransformableElement.h75
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSwitchElement.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSwitchElement.h61
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSwitchElement.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSymbolElement.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSymbolElement.h54
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSymbolElement.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTRefElement.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTRefElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTRefElement.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTSpanElement.cpp64
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTSpanElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTSpanElement.idl31
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTests.cpp120
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTests.h61
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTests.idl37
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextContentElement.cpp530
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextContentElement.h80
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextContentElement.idl60
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextElement.cpp134
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextElement.h64
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextElement.idl32
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextPathElement.cpp107
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextPathElement.h81
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextPathElement.idl45
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextPositioningElement.cpp78
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextPositioningElement.h55
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextPositioningElement.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTitleElement.cpp59
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTitleElement.h50
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTitleElement.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransform.cpp156
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransform.h99
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransform.idl48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransformDistance.cpp278
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransformDistance.h58
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransformList.cpp97
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransformList.h56
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransformList.idl50
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransformable.cpp233
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransformable.h58
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransformable.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGURIReference.cpp70
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGURIReference.h54
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGURIReference.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGUnitTypes.h48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGUnitTypes.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGUseElement.cpp880
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGUseElement.h112
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGUseElement.idl44
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGViewElement.cpp73
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGViewElement.h59
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGViewElement.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGViewSpec.cpp179
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGViewSpec.h67
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGViewSpec.idl38
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGZoomAndPan.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGZoomAndPan.h60
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGZoomAndPan.idl39
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGZoomEvent.cpp84
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGZoomEvent.h68
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGZoomEvent.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SynchronizableTypeWrapper.h180
-rw-r--r--src/3rdparty/webkit/WebCore/svg/animation/SMILTime.cpp64
-rw-r--r--src/3rdparty/webkit/WebCore/svg/animation/SMILTime.h74
-rw-r--r--src/3rdparty/webkit/WebCore/svg/animation/SMILTimeContainer.cpp286
-rw-r--r--src/3rdparty/webkit/WebCore/svg/animation/SMILTimeContainer.h95
-rw-r--r--src/3rdparty/webkit/WebCore/svg/animation/SVGSMILElement.cpp930
-rw-r--r--src/3rdparty/webkit/WebCore/svg/animation/SVGSMILElement.h197
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGImage.cpp257
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGImage.h87
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServer.cpp183
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServer.h99
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerGradient.cpp310
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerGradient.h103
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerLinearGradient.cpp74
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerLinearGradient.h62
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerPattern.cpp101
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerPattern.h88
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerRadialGradient.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerRadialGradient.h66
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerSolid.cpp104
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerSolid.h61
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResource.cpp185
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResource.h101
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceClipper.cpp139
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceClipper.h93
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceFilter.cpp123
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceFilter.h99
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceListener.h0
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceMarker.cpp140
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceMarker.h78
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceMasker.cpp71
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceMasker.h73
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGDistantLightSource.h53
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.h95
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.cpp135
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.h78
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEDisplacementMap.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEDisplacementMap.h72
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEFlood.cpp81
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEFlood.h56
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEGaussianBlur.cpp81
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEGaussianBlur.h56
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEImage.cpp84
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEImage.h58
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEMerge.cpp78
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEMerge.h53
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEMorphology.cpp107
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEMorphology.h65
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEOffset.cpp81
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEOffset.h56
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFESpecularLighting.cpp147
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFESpecularLighting.h81
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFETile.cpp57
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFETile.h48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFETurbulence.cpp145
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFETurbulence.h79
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFilterEffect.cpp133
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFilterEffect.h99
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGLightSource.cpp65
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGLightSource.h58
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGPointLightSource.h51
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGSpotLightSource.h62
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/qt/RenderPathQt.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/qt/SVGPaintServerPatternQt.cpp90
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/qt/SVGPaintServerQt.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/qt/SVGResourceFilterQt.cpp50
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/qt/SVGResourceMaskerQt.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/svg/svgattrs.in253
-rw-r--r--src/3rdparty/webkit/WebCore/svg/svgtags.in116
-rw-r--r--src/3rdparty/webkit/WebCore/svg/xlinkattrs.in11
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLAElement.cpp178
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLAElement.h55
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLAccessElement.cpp70
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLAccessElement.h40
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLAnchorElement.cpp67
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLAnchorElement.h48
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLAttributeNames.in24
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLBRElement.cpp76
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLBRElement.h46
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLCardElement.cpp329
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLCardElement.h76
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLDoElement.cpp152
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLDoElement.h64
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLDocument.cpp96
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLDocument.h52
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLElement.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLErrorHandling.cpp105
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLErrorHandling.h51
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLEventHandlingElement.cpp68
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLEventHandlingElement.h56
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLFieldSetElement.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLFieldSetElement.h48
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLGoElement.cpp214
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLGoElement.h56
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLImageElement.cpp148
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLImageElement.h58
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLImageLoader.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLImageLoader.h45
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLInsertedLegendElement.cpp46
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLInsertedLegendElement.h40
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLIntrinsicEvent.cpp53
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLIntrinsicEvent.h59
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLIntrinsicEventHandler.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLIntrinsicEventHandler.h58
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLMetaElement.cpp64
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLMetaElement.h45
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLNoopElement.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLNoopElement.h40
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLOnEventElement.cpp88
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLOnEventElement.h47
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLPElement.cpp112
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLPElement.h48
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLPageState.cpp132
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLPageState.h81
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLPostfieldElement.cpp78
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLPostfieldElement.h50
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLPrevElement.cpp64
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLPrevElement.h40
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLRefreshElement.cpp77
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLRefreshElement.h40
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLSetvarElement.cpp74
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLSetvarElement.h48
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTableElement.cpp269
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTableElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTagNames.in34
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTaskElement.cpp95
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTaskElement.h56
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTemplateElement.cpp114
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTemplateElement.h42
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTimerElement.cpp141
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTimerElement.h55
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLVariables.cpp288
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLVariables.h46
-rw-r--r--src/3rdparty/webkit/WebCore/xml/DOMParser.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/xml/DOMParser.h41
-rw-r--r--src/3rdparty/webkit/WebCore/xml/DOMParser.idl24
-rw-r--r--src/3rdparty/webkit/WebCore/xml/NativeXPathNSResolver.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/xml/NativeXPathNSResolver.h53
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.cpp1443
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.h237
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.idl99
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequestException.h60
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequestException.idl49
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequestProgressEvent.h61
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequestProgressEvent.idl36
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequestUpload.cpp144
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequestUpload.h110
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequestUpload.idl54
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLSerializer.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLSerializer.h44
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLSerializer.idl28
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathEvaluator.cpp77
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathEvaluator.h62
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathEvaluator.idl35
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathException.h64
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathException.idl50
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathExpression.cpp93
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathExpression.h66
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathExpression.idl34
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathExpressionNode.cpp57
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathExpressionNode.h85
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathFunctions.cpp683
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathFunctions.h62
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathGrammar.y554
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathNSResolver.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathNSResolver.h51
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathNSResolver.idl27
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathNamespace.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathNamespace.h66
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathNodeSet.cpp206
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathNodeSet.h82
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathParser.cpp636
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathParser.h131
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathPath.cpp201
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathPath.h93
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathPredicate.cpp284
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathPredicate.h111
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathResult.cpp245
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathResult.h94
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathResult.idl57
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathStep.cpp306
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathStep.h104
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathUtil.cpp96
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathUtil.h56
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathValue.cpp129
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathValue.h106
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathVariableReference.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathVariableReference.h50
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLImportRule.cpp117
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLImportRule.h72
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLStyleSheet.cpp316
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLStyleSheet.h100
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLTExtensions.cpp88
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLTExtensions.h40
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLTProcessor.cpp461
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLTProcessor.h81
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLTProcessor.idl52
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLTUnicodeSort.cpp352
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLTUnicodeSort.h42
-rw-r--r--src/3rdparty/webkit/WebCore/xml/xmlattrs.in6
-rw-r--r--src/3rdparty/webkit/WebKit.pri95
-rw-r--r--src/3rdparty/webkit/WebKit/ChangeLog714
-rw-r--r--src/3rdparty/webkit/WebKit/LICENSE25
-rw-r--r--src/3rdparty/webkit/WebKit/StringsNotToBeLocalized.txt666
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/headers.pri8
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebdatabase.cpp148
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebdatabase.h59
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebdatabase_p.h38
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp1311
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebframe.h204
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebframe_p.h116
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebhistory.cpp443
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebhistory.h107
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebhistory_p.h59
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebhistoryinterface.cpp118
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebhistoryinterface.h43
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebkitglobal.h62
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp2757
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebpage.h334
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h173
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebpluginfactory.cpp216
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebpluginfactory.h74
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebsecurityorigin.cpp176
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebsecurityorigin.h67
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebsecurityorigin_p.h40
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp781
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.h130
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp962
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebview.h159
-rw-r--r--src/3rdparty/webkit/WebKit/qt/ChangeLog11466
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Plugins/ICOHandler.cpp459
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Plugins/ICOHandler.h52
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Plugins/Plugins.pro14
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp431
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.h134
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ContextMenuClientQt.cpp81
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ContextMenuClientQt.h52
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/DragClientQt.cpp80
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/DragClientQt.h46
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditCommandQt.cpp57
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditCommandQt.h50
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp596
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.h121
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp1172
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h220
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp206
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.h80
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebKit_pch.h83
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebframe/image.pngbin0 -> 14743 bytes-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebframe/qwebframe.pro7
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebframe/qwebframe.qrc5
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp2355
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebhistoryinterface/qwebhistoryinterface.pro6
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebhistoryinterface/tst_qwebhistoryinterface.cpp94
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebpage/qwebpage.pro6
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp986
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/tests.pro3
-rw-r--r--src/3rdparty/wintab/pktdef.h233
-rw-r--r--src/3rdparty/wintab/wintab.h864
-rw-r--r--src/3rdparty/xorg/wacomcfg.h138
-rw-r--r--src/3rdparty/zlib/ChangeLog855
-rw-r--r--src/3rdparty/zlib/FAQ339
-rw-r--r--src/3rdparty/zlib/INDEX51
-rw-r--r--src/3rdparty/zlib/Makefile154
-rw-r--r--src/3rdparty/zlib/Makefile.in154
-rw-r--r--src/3rdparty/zlib/README125
-rw-r--r--src/3rdparty/zlib/adler32.c149
-rw-r--r--src/3rdparty/zlib/algorithm.txt209
-rw-r--r--src/3rdparty/zlib/compress.c79
-rwxr-xr-xsrc/3rdparty/zlib/configure459
-rw-r--r--src/3rdparty/zlib/crc32.c423
-rw-r--r--src/3rdparty/zlib/crc32.h441
-rw-r--r--src/3rdparty/zlib/deflate.c1736
-rw-r--r--src/3rdparty/zlib/deflate.h331
-rw-r--r--src/3rdparty/zlib/example.c565
-rw-r--r--src/3rdparty/zlib/examples/README.examples42
-rw-r--r--src/3rdparty/zlib/examples/fitblk.c233
-rw-r--r--src/3rdparty/zlib/examples/gun.c693
-rw-r--r--src/3rdparty/zlib/examples/gzappend.c500
-rw-r--r--src/3rdparty/zlib/examples/gzjoin.c448
-rw-r--r--src/3rdparty/zlib/examples/gzlog.c413
-rw-r--r--src/3rdparty/zlib/examples/gzlog.h58
-rw-r--r--src/3rdparty/zlib/examples/zlib_how.html523
-rw-r--r--src/3rdparty/zlib/examples/zpipe.c191
-rw-r--r--src/3rdparty/zlib/examples/zran.c404
-rw-r--r--src/3rdparty/zlib/gzio.c1026
-rw-r--r--src/3rdparty/zlib/infback.c623
-rw-r--r--src/3rdparty/zlib/inffast.c318
-rw-r--r--src/3rdparty/zlib/inffast.h11
-rw-r--r--src/3rdparty/zlib/inffixed.h94
-rw-r--r--src/3rdparty/zlib/inflate.c1368
-rw-r--r--src/3rdparty/zlib/inflate.h115
-rw-r--r--src/3rdparty/zlib/inftrees.c329
-rw-r--r--src/3rdparty/zlib/inftrees.h55
-rw-r--r--src/3rdparty/zlib/make_vms.com461
-rw-r--r--src/3rdparty/zlib/minigzip.c322
-rw-r--r--src/3rdparty/zlib/projects/README.projects41
-rw-r--r--src/3rdparty/zlib/projects/visualc6/README.txt73
-rw-r--r--src/3rdparty/zlib/projects/visualc6/example.dsp278
-rw-r--r--src/3rdparty/zlib/projects/visualc6/minigzip.dsp278
-rw-r--r--src/3rdparty/zlib/projects/visualc6/zlib.dsp609
-rw-r--r--src/3rdparty/zlib/projects/visualc6/zlib.dsw59
-rw-r--r--src/3rdparty/zlib/trees.c1219
-rw-r--r--src/3rdparty/zlib/trees.h128
-rw-r--r--src/3rdparty/zlib/uncompr.c61
-rw-r--r--src/3rdparty/zlib/win32/DLL_FAQ.txt397
-rw-r--r--src/3rdparty/zlib/win32/Makefile.bor107
-rw-r--r--src/3rdparty/zlib/win32/Makefile.emx69
-rw-r--r--src/3rdparty/zlib/win32/Makefile.gcc141
-rw-r--r--src/3rdparty/zlib/win32/Makefile.msc126
-rw-r--r--src/3rdparty/zlib/win32/VisualC.txt3
-rw-r--r--src/3rdparty/zlib/win32/zlib.def60
-rw-r--r--src/3rdparty/zlib/win32/zlib1.rc39
-rw-r--r--src/3rdparty/zlib/zconf.h332
-rw-r--r--src/3rdparty/zlib/zconf.in.h332
-rw-r--r--src/3rdparty/zlib/zlib.3159
-rw-r--r--src/3rdparty/zlib/zlib.h1368
-rw-r--r--src/3rdparty/zlib/zutil.c318
-rw-r--r--src/3rdparty/zlib/zutil.h269
-rw-r--r--src/activeqt/activeqt.pro5
-rw-r--r--src/activeqt/container/container.pro45
-rw-r--r--src/activeqt/container/qaxbase.cpp4465
-rw-r--r--src/activeqt/container/qaxbase.h226
-rw-r--r--src/activeqt/container/qaxdump.cpp404
-rw-r--r--src/activeqt/container/qaxobject.cpp213
-rw-r--r--src/activeqt/container/qaxobject.h105
-rw-r--r--src/activeqt/container/qaxscript.cpp1293
-rw-r--r--src/activeqt/container/qaxscript.h248
-rw-r--r--src/activeqt/container/qaxscriptwrapper.cpp64
-rw-r--r--src/activeqt/container/qaxselect.cpp164
-rw-r--r--src/activeqt/container/qaxselect.h75
-rw-r--r--src/activeqt/container/qaxselect.ui173
-rw-r--r--src/activeqt/container/qaxwidget.cpp2228
-rw-r--r--src/activeqt/container/qaxwidget.h125
-rw-r--r--src/activeqt/control/control.pro43
-rw-r--r--src/activeqt/control/qaxaggregated.h93
-rw-r--r--src/activeqt/control/qaxbindable.cpp324
-rw-r--r--src/activeqt/control/qaxbindable.h87
-rw-r--r--src/activeqt/control/qaxfactory.cpp591
-rw-r--r--src/activeqt/control/qaxfactory.h310
-rw-r--r--src/activeqt/control/qaxmain.cpp54
-rw-r--r--src/activeqt/control/qaxserver.cpp1251
-rw-r--r--src/activeqt/control/qaxserver.def8
-rw-r--r--src/activeqt/control/qaxserver.icobin0 -> 766 bytes-rw-r--r--src/activeqt/control/qaxserver.rc2
-rw-r--r--src/activeqt/control/qaxserverbase.cpp4490
-rw-r--r--src/activeqt/control/qaxserverdll.cpp138
-rw-r--r--src/activeqt/control/qaxservermain.cpp279
-rw-r--r--src/activeqt/shared/qaxtypes.cpp1486
-rw-r--r--src/activeqt/shared/qaxtypes.h97
-rw-r--r--src/corelib/QtCore.dynlist10
-rw-r--r--src/corelib/arch/alpha/arch.pri4
-rw-r--r--src/corelib/arch/alpha/qatomic_alpha.s199
-rw-r--r--src/corelib/arch/arch.pri26
-rw-r--r--src/corelib/arch/arm/arch.pri4
-rw-r--r--src/corelib/arch/arm/qatomic_arm.cpp72
-rw-r--r--src/corelib/arch/armv6/arch.pri3
-rw-r--r--src/corelib/arch/avr32/arch.pri3
-rw-r--r--src/corelib/arch/bfin/arch.pri3
-rw-r--r--src/corelib/arch/generic/arch.pri6
-rw-r--r--src/corelib/arch/generic/qatomic_generic_unix.cpp118
-rw-r--r--src/corelib/arch/generic/qatomic_generic_windows.cpp131
-rw-r--r--src/corelib/arch/i386/arch.pri4
-rw-r--r--src/corelib/arch/i386/qatomic_i386.s103
-rw-r--r--src/corelib/arch/ia64/arch.pri4
-rw-r--r--src/corelib/arch/ia64/qatomic_ia64.s34
-rw-r--r--src/corelib/arch/macosx/arch.pri7
-rw-r--r--src/corelib/arch/macosx/qatomic32_ppc.s129
-rw-r--r--src/corelib/arch/mips/arch.pri8
-rw-r--r--src/corelib/arch/mips/qatomic_mips32.s110
-rw-r--r--src/corelib/arch/mips/qatomic_mips64.s98
-rw-r--r--src/corelib/arch/parisc/arch.pri5
-rw-r--r--src/corelib/arch/parisc/q_ldcw.s22
-rw-r--r--src/corelib/arch/parisc/qatomic_parisc.cpp88
-rw-r--r--src/corelib/arch/powerpc/arch.pri10
-rw-r--r--src/corelib/arch/powerpc/qatomic32.s485
-rw-r--r--src/corelib/arch/powerpc/qatomic64.s493
-rw-r--r--src/corelib/arch/qatomic_alpha.h642
-rw-r--r--src/corelib/arch/qatomic_arch.h93
-rw-r--r--src/corelib/arch/qatomic_arm.h401
-rw-r--r--src/corelib/arch/qatomic_armv6.h360
-rw-r--r--src/corelib/arch/qatomic_avr32.h252
-rw-r--r--src/corelib/arch/qatomic_bfin.h343
-rw-r--r--src/corelib/arch/qatomic_bootstrap.h99
-rw-r--r--src/corelib/arch/qatomic_generic.h282
-rw-r--r--src/corelib/arch/qatomic_i386.h361
-rw-r--r--src/corelib/arch/qatomic_ia64.h813
-rw-r--r--src/corelib/arch/qatomic_macosx.h57
-rw-r--r--src/corelib/arch/qatomic_mips.h826
-rw-r--r--src/corelib/arch/qatomic_parisc.h305
-rw-r--r--src/corelib/arch/qatomic_powerpc.h650
-rw-r--r--src/corelib/arch/qatomic_s390.h430
-rw-r--r--src/corelib/arch/qatomic_sh.h330
-rw-r--r--src/corelib/arch/qatomic_sh4a.h537
-rw-r--r--src/corelib/arch/qatomic_sparc.h525
-rw-r--r--src/corelib/arch/qatomic_windows.h564
-rw-r--r--src/corelib/arch/qatomic_windowsce.h56
-rw-r--r--src/corelib/arch/qatomic_x86_64.h363
-rw-r--r--src/corelib/arch/s390/arch.pri3
-rw-r--r--src/corelib/arch/sh/arch.pri4
-rw-r--r--src/corelib/arch/sh/qatomic_sh.cpp72
-rw-r--r--src/corelib/arch/sh4a/arch.pri3
-rw-r--r--src/corelib/arch/sparc/arch.pri10
-rw-r--r--src/corelib/arch/sparc/qatomic32.s63
-rw-r--r--src/corelib/arch/sparc/qatomic64.s287
-rw-r--r--src/corelib/arch/sparc/qatomic_sparc.cpp92
-rw-r--r--src/corelib/arch/windows/arch.pri3
-rw-r--r--src/corelib/arch/x86_64/arch.pri4
-rw-r--r--src/corelib/arch/x86_64/qatomic_sun.s91
-rw-r--r--src/corelib/codecs/codecs.pri53
-rw-r--r--src/corelib/codecs/qfontlaocodec.cpp124
-rw-r--r--src/corelib/codecs/qfontlaocodec_p.h78
-rw-r--r--src/corelib/codecs/qiconvcodec.cpp536
-rw-r--r--src/corelib/codecs/qiconvcodec_p.h104
-rw-r--r--src/corelib/codecs/qisciicodec.cpp288
-rw-r--r--src/corelib/codecs/qisciicodec_p.h81
-rw-r--r--src/corelib/codecs/qlatincodec.cpp246
-rw-r--r--src/corelib/codecs/qlatincodec_p.h94
-rw-r--r--src/corelib/codecs/qsimplecodec.cpp733
-rw-r--r--src/corelib/codecs/qsimplecodec_p.h87
-rw-r--r--src/corelib/codecs/qtextcodec.cpp1598
-rw-r--r--src/corelib/codecs/qtextcodec.h189
-rw-r--r--src/corelib/codecs/qtextcodec_p.h84
-rw-r--r--src/corelib/codecs/qtextcodecplugin.cpp161
-rw-r--r--src/corelib/codecs/qtextcodecplugin.h96
-rw-r--r--src/corelib/codecs/qtsciicodec.cpp500
-rw-r--r--src/corelib/codecs/qtsciicodec_p.h106
-rw-r--r--src/corelib/codecs/qutfcodec.cpp634
-rw-r--r--src/corelib/codecs/qutfcodec_p.h155
-rw-r--r--src/corelib/concurrent/concurrent.pri42
-rw-r--r--src/corelib/concurrent/qfuture.cpp695
-rw-r--r--src/corelib/concurrent/qfuture.h278
-rw-r--r--src/corelib/concurrent/qfutureinterface.cpp564
-rw-r--r--src/corelib/concurrent/qfutureinterface.h311
-rw-r--r--src/corelib/concurrent/qfutureinterface_p.h168
-rw-r--r--src/corelib/concurrent/qfuturesynchronizer.cpp154
-rw-r--r--src/corelib/concurrent/qfuturesynchronizer.h121
-rw-r--r--src/corelib/concurrent/qfuturewatcher.cpp574
-rw-r--r--src/corelib/concurrent/qfuturewatcher.h222
-rw-r--r--src/corelib/concurrent/qfuturewatcher_p.h90
-rw-r--r--src/corelib/concurrent/qrunnable.cpp105
-rw-r--r--src/corelib/concurrent/qrunnable.h73
-rw-r--r--src/corelib/concurrent/qtconcurrentcompilertest.h71
-rw-r--r--src/corelib/concurrent/qtconcurrentexception.cpp228
-rw-r--r--src/corelib/concurrent/qtconcurrentexception.h128
-rw-r--r--src/corelib/concurrent/qtconcurrentfilter.cpp330
-rw-r--r--src/corelib/concurrent/qtconcurrentfilter.h736
-rw-r--r--src/corelib/concurrent/qtconcurrentfilterkernel.h351
-rw-r--r--src/corelib/concurrent/qtconcurrentfunctionwrappers.h173
-rw-r--r--src/corelib/concurrent/qtconcurrentiteratekernel.cpp194
-rw-r--r--src/corelib/concurrent/qtconcurrentiteratekernel.h324
-rw-r--r--src/corelib/concurrent/qtconcurrentmap.cpp401
-rw-r--r--src/corelib/concurrent/qtconcurrentmap.h780
-rw-r--r--src/corelib/concurrent/qtconcurrentmapkernel.h273
-rw-r--r--src/corelib/concurrent/qtconcurrentmedian.h130
-rw-r--r--src/corelib/concurrent/qtconcurrentreducekernel.h253
-rw-r--r--src/corelib/concurrent/qtconcurrentresultstore.cpp256
-rw-r--r--src/corelib/concurrent/qtconcurrentresultstore.h239
-rw-r--r--src/corelib/concurrent/qtconcurrentrun.cpp150
-rw-r--r--src/corelib/concurrent/qtconcurrentrun.h297
-rw-r--r--src/corelib/concurrent/qtconcurrentrunbase.h134
-rw-r--r--src/corelib/concurrent/qtconcurrentstoredfunctioncall.h1328
-rw-r--r--src/corelib/concurrent/qtconcurrentthreadengine.cpp219
-rw-r--r--src/corelib/concurrent/qtconcurrentthreadengine.h306
-rw-r--r--src/corelib/concurrent/qthreadpool.cpp614
-rw-r--r--src/corelib/concurrent/qthreadpool.h95
-rw-r--r--src/corelib/concurrent/qthreadpool_p.h107
-rw-r--r--src/corelib/corelib.pro28
-rw-r--r--src/corelib/global/global.pri21
-rw-r--r--src/corelib/global/qconfig-dist.h50
-rw-r--r--src/corelib/global/qconfig-large.h173
-rw-r--r--src/corelib/global/qconfig-medium.h294
-rw-r--r--src/corelib/global/qconfig-minimal.h603
-rw-r--r--src/corelib/global/qconfig-small.h332
-rw-r--r--src/corelib/global/qendian.h347
-rw-r--r--src/corelib/global/qfeatures.h843
-rw-r--r--src/corelib/global/qfeatures.txt1407
-rw-r--r--src/corelib/global/qglobal.cpp2964
-rw-r--r--src/corelib/global/qglobal.h2371
-rw-r--r--src/corelib/global/qlibraryinfo.cpp584
-rw-r--r--src/corelib/global/qlibraryinfo.h89
-rw-r--r--src/corelib/global/qmalloc.cpp68
-rw-r--r--src/corelib/global/qnamespace.h1625
-rw-r--r--src/corelib/global/qnumeric.cpp58
-rw-r--r--src/corelib/global/qnumeric.h71
-rw-r--r--src/corelib/global/qnumeric_p.h243
-rw-r--r--src/corelib/global/qt_pch.h67
-rw-r--r--src/corelib/global/qt_windows.h113
-rw-r--r--src/corelib/io/io.pri82
-rw-r--r--src/corelib/io/qabstractfileengine.cpp1219
-rw-r--r--src/corelib/io/qabstractfileengine.h247
-rw-r--r--src/corelib/io/qabstractfileengine_p.h79
-rw-r--r--src/corelib/io/qbuffer.cpp475
-rw-r--r--src/corelib/io/qbuffer.h112
-rw-r--r--src/corelib/io/qdatastream.cpp1260
-rw-r--r--src/corelib/io/qdatastream.h427
-rw-r--r--src/corelib/io/qdebug.cpp308
-rw-r--r--src/corelib/io/qdebug.h262
-rw-r--r--src/corelib/io/qdir.cpp2472
-rw-r--r--src/corelib/io/qdir.h264
-rw-r--r--src/corelib/io/qdiriterator.cpp559
-rw-r--r--src/corelib/io/qdiriterator.h97
-rw-r--r--src/corelib/io/qfile.cpp1638
-rw-r--r--src/corelib/io/qfile.h204
-rw-r--r--src/corelib/io/qfile_p.h95
-rw-r--r--src/corelib/io/qfileinfo.cpp1427
-rw-r--r--src/corelib/io/qfileinfo.h187
-rw-r--r--src/corelib/io/qfileinfo_p.h145
-rw-r--r--src/corelib/io/qfilesystemwatcher.cpp620
-rw-r--r--src/corelib/io/qfilesystemwatcher.h89
-rw-r--r--src/corelib/io/qfilesystemwatcher_dnotify.cpp461
-rw-r--r--src/corelib/io/qfilesystemwatcher_dnotify_p.h131
-rw-r--r--src/corelib/io/qfilesystemwatcher_inotify.cpp376
-rw-r--r--src/corelib/io/qfilesystemwatcher_inotify_p.h95
-rw-r--r--src/corelib/io/qfilesystemwatcher_kqueue.cpp334
-rw-r--r--src/corelib/io/qfilesystemwatcher_kqueue_p.h95
-rw-r--r--src/corelib/io/qfilesystemwatcher_p.h120
-rw-r--r--src/corelib/io/qfilesystemwatcher_win.cpp333
-rw-r--r--src/corelib/io/qfilesystemwatcher_win_p.h143
-rw-r--r--src/corelib/io/qfsfileengine.cpp873
-rw-r--r--src/corelib/io/qfsfileengine.h121
-rw-r--r--src/corelib/io/qfsfileengine_iterator.cpp82
-rw-r--r--src/corelib/io/qfsfileengine_iterator_p.h92
-rw-r--r--src/corelib/io/qfsfileengine_iterator_unix.cpp140
-rw-r--r--src/corelib/io/qfsfileengine_iterator_win.cpp183
-rw-r--r--src/corelib/io/qfsfileengine_p.h174
-rw-r--r--src/corelib/io/qfsfileengine_unix.cpp1021
-rw-r--r--src/corelib/io/qfsfileengine_win.cpp2242
-rw-r--r--src/corelib/io/qiodevice.cpp1748
-rw-r--r--src/corelib/io/qiodevice.h253
-rw-r--r--src/corelib/io/qiodevice_p.h109
-rw-r--r--src/corelib/io/qprocess.cpp1827
-rw-r--r--src/corelib/io/qprocess.h202
-rw-r--r--src/corelib/io/qprocess_p.h230
-rw-r--r--src/corelib/io/qprocess_unix.cpp1380
-rw-r--r--src/corelib/io/qprocess_win.cpp909
-rw-r--r--src/corelib/io/qresource.cpp1460
-rw-r--r--src/corelib/io/qresource.h104
-rw-r--r--src/corelib/io/qresource_iterator.cpp92
-rw-r--r--src/corelib/io/qresource_iterator_p.h80
-rw-r--r--src/corelib/io/qresource_p.h119
-rw-r--r--src/corelib/io/qsettings.cpp3822
-rw-r--r--src/corelib/io/qsettings.h313
-rw-r--r--src/corelib/io/qsettings_mac.cpp654
-rw-r--r--src/corelib/io/qsettings_p.h313
-rw-r--r--src/corelib/io/qsettings_win.cpp962
-rw-r--r--src/corelib/io/qtemporaryfile.cpp706
-rw-r--r--src/corelib/io/qtemporaryfile.h108
-rw-r--r--src/corelib/io/qtextstream.cpp3387
-rw-r--r--src/corelib/io/qtextstream.h375
-rw-r--r--src/corelib/io/qurl.cpp5999
-rw-r--r--src/corelib/io/qurl.h281
-rw-r--r--src/corelib/io/qwindowspipewriter.cpp170
-rw-r--r--src/corelib/io/qwindowspipewriter_p.h161
-rw-r--r--src/corelib/kernel/kernel.pri111
-rw-r--r--src/corelib/kernel/qabstracteventdispatcher.cpp461
-rw-r--r--src/corelib/kernel/qabstracteventdispatcher.h107
-rw-r--r--src/corelib/kernel/qabstracteventdispatcher_p.h77
-rw-r--r--src/corelib/kernel/qabstractitemmodel.cpp2783
-rw-r--r--src/corelib/kernel/qabstractitemmodel.h390
-rw-r--r--src/corelib/kernel/qabstractitemmodel_p.h150
-rw-r--r--src/corelib/kernel/qbasictimer.cpp138
-rw-r--r--src/corelib/kernel/qbasictimer.h74
-rw-r--r--src/corelib/kernel/qcore_mac.cpp82
-rw-r--r--src/corelib/kernel/qcore_mac_p.h155
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp2406
-rw-r--r--src/corelib/kernel/qcoreapplication.h279
-rw-r--r--src/corelib/kernel/qcoreapplication_mac.cpp66
-rw-r--r--src/corelib/kernel/qcoreapplication_p.h126
-rw-r--r--src/corelib/kernel/qcoreapplication_win.cpp1042
-rw-r--r--src/corelib/kernel/qcorecmdlineargs_p.h171
-rw-r--r--src/corelib/kernel/qcoreevent.cpp599
-rw-r--r--src/corelib/kernel/qcoreevent.h363
-rw-r--r--src/corelib/kernel/qcoreglobaldata.cpp55
-rw-r--r--src/corelib/kernel/qcoreglobaldata_p.h72
-rw-r--r--src/corelib/kernel/qcrashhandler.cpp420
-rw-r--r--src/corelib/kernel/qcrashhandler_p.h81
-rw-r--r--src/corelib/kernel/qeventdispatcher_glib.cpp501
-rw-r--r--src/corelib/kernel/qeventdispatcher_glib_p.h115
-rw-r--r--src/corelib/kernel/qeventdispatcher_unix.cpp957
-rw-r--r--src/corelib/kernel/qeventdispatcher_unix_p.h246
-rw-r--r--src/corelib/kernel/qeventdispatcher_win.cpp1076
-rw-r--r--src/corelib/kernel/qeventdispatcher_win_p.h109
-rw-r--r--src/corelib/kernel/qeventloop.cpp323
-rw-r--r--src/corelib/kernel/qeventloop.h101
-rw-r--r--src/corelib/kernel/qfunctions_p.h75
-rw-r--r--src/corelib/kernel/qfunctions_wince.cpp453
-rw-r--r--src/corelib/kernel/qfunctions_wince.h396
-rw-r--r--src/corelib/kernel/qmath.h139
-rw-r--r--src/corelib/kernel/qmetaobject.cpp2555
-rw-r--r--src/corelib/kernel/qmetaobject.h233
-rw-r--r--src/corelib/kernel/qmetaobject_p.h208
-rw-r--r--src/corelib/kernel/qmetatype.cpp1355
-rw-r--r--src/corelib/kernel/qmetatype.h351
-rw-r--r--src/corelib/kernel/qmimedata.cpp627
-rw-r--r--src/corelib/kernel/qmimedata.h104
-rw-r--r--src/corelib/kernel/qobject.cpp3818
-rw-r--r--src/corelib/kernel/qobject.h480
-rw-r--r--src/corelib/kernel/qobject_p.h225
-rw-r--r--src/corelib/kernel/qobjectcleanuphandler.cpp148
-rw-r--r--src/corelib/kernel/qobjectcleanuphandler.h78
-rw-r--r--src/corelib/kernel/qobjectdefs.h465
-rw-r--r--src/corelib/kernel/qpointer.cpp260
-rw-r--r--src/corelib/kernel/qpointer.h168
-rw-r--r--src/corelib/kernel/qsharedmemory.cpp541
-rw-r--r--src/corelib/kernel/qsharedmemory.h119
-rw-r--r--src/corelib/kernel/qsharedmemory_p.h169
-rw-r--r--src/corelib/kernel/qsharedmemory_unix.cpp305
-rw-r--r--src/corelib/kernel/qsharedmemory_win.cpp208
-rw-r--r--src/corelib/kernel/qsignalmapper.cpp321
-rw-r--r--src/corelib/kernel/qsignalmapper.h100
-rw-r--r--src/corelib/kernel/qsocketnotifier.cpp322
-rw-r--r--src/corelib/kernel/qsocketnotifier.h93
-rw-r--r--src/corelib/kernel/qsystemsemaphore.cpp360
-rw-r--r--src/corelib/kernel/qsystemsemaphore.h102
-rw-r--r--src/corelib/kernel/qsystemsemaphore_p.h109
-rw-r--r--src/corelib/kernel/qsystemsemaphore_unix.cpp242
-rw-r--r--src/corelib/kernel/qsystemsemaphore_win.cpp140
-rw-r--r--src/corelib/kernel/qtimer.cpp372
-rw-r--r--src/corelib/kernel/qtimer.h116
-rw-r--r--src/corelib/kernel/qtranslator.cpp827
-rw-r--r--src/corelib/kernel/qtranslator.h98
-rw-r--r--src/corelib/kernel/qtranslator_p.h78
-rw-r--r--src/corelib/kernel/qvariant.cpp3098
-rw-r--r--src/corelib/kernel/qvariant.h605
-rw-r--r--src/corelib/kernel/qvariant_p.h124
-rw-r--r--src/corelib/kernel/qwineventnotifier_p.cpp136
-rw-r--r--src/corelib/kernel/qwineventnotifier_p.h94
-rw-r--r--src/corelib/plugin/plugin.pri24
-rw-r--r--src/corelib/plugin/qfactoryinterface.h67
-rw-r--r--src/corelib/plugin/qfactoryloader.cpp256
-rw-r--r--src/corelib/plugin/qfactoryloader_p.h89
-rw-r--r--src/corelib/plugin/qlibrary.cpp1130
-rw-r--r--src/corelib/plugin/qlibrary.h120
-rw-r--r--src/corelib/plugin/qlibrary_p.h122
-rw-r--r--src/corelib/plugin/qlibrary_unix.cpp266
-rw-r--r--src/corelib/plugin/qlibrary_win.cpp147
-rw-r--r--src/corelib/plugin/qplugin.h141
-rw-r--r--src/corelib/plugin/qpluginloader.cpp371
-rw-r--r--src/corelib/plugin/qpluginloader.h100
-rw-r--r--src/corelib/plugin/quuid.cpp624
-rw-r--r--src/corelib/plugin/quuid.h190
-rw-r--r--src/corelib/thread/qatomic.cpp1127
-rw-r--r--src/corelib/thread/qatomic.h227
-rw-r--r--src/corelib/thread/qbasicatomic.h210
-rw-r--r--src/corelib/thread/qmutex.cpp515
-rw-r--r--src/corelib/thread/qmutex.h193
-rw-r--r--src/corelib/thread/qmutex_p.h88
-rw-r--r--src/corelib/thread/qmutex_unix.cpp113
-rw-r--r--src/corelib/thread/qmutex_win.cpp81
-rw-r--r--src/corelib/thread/qmutexpool.cpp165
-rw-r--r--src/corelib/thread/qmutexpool_p.h85
-rw-r--r--src/corelib/thread/qorderedmutexlocker_p.h119
-rw-r--r--src/corelib/thread/qreadwritelock.cpp584
-rw-r--r--src/corelib/thread/qreadwritelock.h244
-rw-r--r--src/corelib/thread/qreadwritelock_p.h87
-rw-r--r--src/corelib/thread/qsemaphore.cpp235
-rw-r--r--src/corelib/thread/qsemaphore.h83
-rw-r--r--src/corelib/thread/qthread.cpp730
-rw-r--r--src/corelib/thread/qthread.h163
-rw-r--r--src/corelib/thread/qthread_p.h215
-rw-r--r--src/corelib/thread/qthread_unix.cpp562
-rw-r--r--src/corelib/thread/qthread_win.cpp620
-rw-r--r--src/corelib/thread/qthreadstorage.cpp320
-rw-r--r--src/corelib/thread/qthreadstorage.h157
-rw-r--r--src/corelib/thread/qwaitcondition.h105
-rw-r--r--src/corelib/thread/qwaitcondition_unix.cpp193
-rw-r--r--src/corelib/thread/qwaitcondition_win.cpp237
-rw-r--r--src/corelib/thread/thread.pri33
-rw-r--r--src/corelib/tools/qalgorithms.h565
-rw-r--r--src/corelib/tools/qbitarray.cpp728
-rw-r--r--src/corelib/tools/qbitarray.h174
-rw-r--r--src/corelib/tools/qbytearray.cpp4240
-rw-r--r--src/corelib/tools/qbytearray.h589
-rw-r--r--src/corelib/tools/qbytearraymatcher.cpp323
-rw-r--r--src/corelib/tools/qbytearraymatcher.h93
-rw-r--r--src/corelib/tools/qcache.h216
-rw-r--r--src/corelib/tools/qchar.cpp1618
-rw-r--r--src/corelib/tools/qchar.h397
-rw-r--r--src/corelib/tools/qcontainerfwd.h71
-rw-r--r--src/corelib/tools/qcryptographichash.cpp196
-rw-r--r--src/corelib/tools/qcryptographichash.h84
-rw-r--r--src/corelib/tools/qdatetime.cpp5506
-rw-r--r--src/corelib/tools/qdatetime.h333
-rw-r--r--src/corelib/tools/qdatetime_p.h285
-rw-r--r--src/corelib/tools/qdumper.cpp1157
-rw-r--r--src/corelib/tools/qharfbuzz.cpp169
-rw-r--r--src/corelib/tools/qharfbuzz_p.h77
-rw-r--r--src/corelib/tools/qhash.cpp1843
-rw-r--r--src/corelib/tools/qhash.h1017
-rw-r--r--src/corelib/tools/qiterator.h202
-rw-r--r--src/corelib/tools/qline.cpp867
-rw-r--r--src/corelib/tools/qline.h424
-rw-r--r--src/corelib/tools/qlinkedlist.cpp1158
-rw-r--r--src/corelib/tools/qlinkedlist.h504
-rw-r--r--src/corelib/tools/qlist.h691
-rw-r--r--src/corelib/tools/qlistdata.cpp1742
-rw-r--r--src/corelib/tools/qlocale.cpp7220
-rw-r--r--src/corelib/tools/qlocale.h678
-rw-r--r--src/corelib/tools/qlocale_data_p.h3391
-rw-r--r--src/corelib/tools/qlocale_p.h206
-rw-r--r--src/corelib/tools/qmap.cpp1588
-rw-r--r--src/corelib/tools/qmap.h1026
-rw-r--r--src/corelib/tools/qpair.h127
-rw-r--r--src/corelib/tools/qpodlist_p.h263
-rw-r--r--src/corelib/tools/qpoint.cpp665
-rw-r--r--src/corelib/tools/qpoint.h361
-rw-r--r--src/corelib/tools/qqueue.cpp129
-rw-r--r--src/corelib/tools/qqueue.h69
-rw-r--r--src/corelib/tools/qrect.cpp2471
-rw-r--r--src/corelib/tools/qrect.h858
-rw-r--r--src/corelib/tools/qregexp.cpp4070
-rw-r--r--src/corelib/tools/qregexp.h155
-rw-r--r--src/corelib/tools/qringbuffer_p.h319
-rw-r--r--src/corelib/tools/qset.h352
-rw-r--r--src/corelib/tools/qshareddata.cpp550
-rw-r--r--src/corelib/tools/qshareddata.h242
-rw-r--r--src/corelib/tools/qsharedpointer.cpp868
-rw-r--r--src/corelib/tools/qsharedpointer.h148
-rw-r--r--src/corelib/tools/qsharedpointer_impl.h585
-rw-r--r--src/corelib/tools/qsize.cpp824
-rw-r--r--src/corelib/tools/qsize.h364
-rw-r--r--src/corelib/tools/qstack.cpp129
-rw-r--r--src/corelib/tools/qstack.h82
-rw-r--r--src/corelib/tools/qstring.cpp8083
-rw-r--r--src/corelib/tools/qstring.h1234
-rw-r--r--src/corelib/tools/qstringlist.cpp673
-rw-r--r--src/corelib/tools/qstringlist.h259
-rw-r--r--src/corelib/tools/qstringmatcher.cpp323
-rw-r--r--src/corelib/tools/qstringmatcher.h98
-rw-r--r--src/corelib/tools/qtextboundaryfinder.cpp476
-rw-r--r--src/corelib/tools/qtextboundaryfinder.h114
-rw-r--r--src/corelib/tools/qtimeline.cpp773
-rw-r--r--src/corelib/tools/qtimeline.h142
-rw-r--r--src/corelib/tools/qtools_p.h65
-rw-r--r--src/corelib/tools/qunicodetables.cpp9404
-rw-r--r--src/corelib/tools/qunicodetables_p.h231
-rw-r--r--src/corelib/tools/qvarlengtharray.h238
-rw-r--r--src/corelib/tools/qvector.cpp968
-rw-r--r--src/corelib/tools/qvector.h776
-rw-r--r--src/corelib/tools/qvsnprintf.cpp133
-rw-r--r--src/corelib/tools/tools.pri104
-rw-r--r--src/corelib/xml/.gitignore1
-rwxr-xr-xsrc/corelib/xml/make-parser.sh15
-rw-r--r--src/corelib/xml/qxmlstream.cpp3849
-rw-r--r--src/corelib/xml/qxmlstream.g1846
-rw-r--r--src/corelib/xml/qxmlstream.h477
-rw-r--r--src/corelib/xml/qxmlstream_p.h1962
-rw-r--r--src/corelib/xml/qxmlutils.cpp390
-rw-r--r--src/corelib/xml/qxmlutils_p.h92
-rw-r--r--src/corelib/xml/xml.pri10
-rw-r--r--src/dbus/dbus.pro78
-rw-r--r--src/dbus/qdbus_symbols.cpp114
-rw-r--r--src/dbus/qdbus_symbols_p.h362
-rw-r--r--src/dbus/qdbusabstractadaptor.cpp380
-rw-r--r--src/dbus/qdbusabstractadaptor.h76
-rw-r--r--src/dbus/qdbusabstractadaptor_p.h135
-rw-r--r--src/dbus/qdbusabstractinterface.cpp729
-rw-r--r--src/dbus/qdbusabstractinterface.h146
-rw-r--r--src/dbus/qdbusabstractinterface_p.h97
-rw-r--r--src/dbus/qdbusargument.cpp1331
-rw-r--r--src/dbus/qdbusargument.h383
-rw-r--r--src/dbus/qdbusargument_p.h208
-rw-r--r--src/dbus/qdbusconnection.cpp1045
-rw-r--r--src/dbus/qdbusconnection.h178
-rw-r--r--src/dbus/qdbusconnection_p.h318
-rw-r--r--src/dbus/qdbusconnectioninterface.cpp403
-rw-r--r--src/dbus/qdbusconnectioninterface.h129
-rw-r--r--src/dbus/qdbuscontext.cpp204
-rw-r--r--src/dbus/qdbuscontext.h84
-rw-r--r--src/dbus/qdbuscontext_p.h78
-rw-r--r--src/dbus/qdbusdemarshaller.cpp342
-rw-r--r--src/dbus/qdbuserror.cpp349
-rw-r--r--src/dbus/qdbuserror.h119
-rw-r--r--src/dbus/qdbusextratypes.cpp239
-rw-r--r--src/dbus/qdbusextratypes.h187
-rw-r--r--src/dbus/qdbusintegrator.cpp2170
-rw-r--r--src/dbus/qdbusintegrator_p.h160
-rw-r--r--src/dbus/qdbusinterface.cpp232
-rw-r--r--src/dbus/qdbusinterface.h79
-rw-r--r--src/dbus/qdbusinterface_p.h79
-rw-r--r--src/dbus/qdbusinternalfilters.cpp394
-rw-r--r--src/dbus/qdbusintrospection.cpp425
-rw-r--r--src/dbus/qdbusintrospection_p.h180
-rw-r--r--src/dbus/qdbusmacros.h73
-rw-r--r--src/dbus/qdbusmarshaller.cpp547
-rw-r--r--src/dbus/qdbusmessage.cpp719
-rw-r--r--src/dbus/qdbusmessage.h128
-rw-r--r--src/dbus/qdbusmessage_p.h95
-rw-r--r--src/dbus/qdbusmetaobject.cpp679
-rw-r--r--src/dbus/qdbusmetaobject_p.h94
-rw-r--r--src/dbus/qdbusmetatype.cpp464
-rw-r--r--src/dbus/qdbusmetatype.h97
-rw-r--r--src/dbus/qdbusmetatype_p.h74
-rw-r--r--src/dbus/qdbusmisc.cpp150
-rw-r--r--src/dbus/qdbuspendingcall.cpp472
-rw-r--r--src/dbus/qdbuspendingcall.h119
-rw-r--r--src/dbus/qdbuspendingcall_p.h122
-rw-r--r--src/dbus/qdbuspendingreply.cpp277
-rw-r--r--src/dbus/qdbuspendingreply.h213
-rw-r--r--src/dbus/qdbusreply.cpp244
-rw-r--r--src/dbus/qdbusreply.h196
-rw-r--r--src/dbus/qdbusserver.cpp121
-rw-r--r--src/dbus/qdbusserver.h80
-rw-r--r--src/dbus/qdbusthread.cpp171
-rw-r--r--src/dbus/qdbusthreaddebug_p.h229
-rw-r--r--src/dbus/qdbusutil.cpp468
-rw-r--r--src/dbus/qdbusutil_p.h92
-rw-r--r--src/dbus/qdbusxmlgenerator.cpp341
-rw-r--r--src/dbus/qdbusxmlparser.cpp369
-rw-r--r--src/dbus/qdbusxmlparser_p.h85
-rw-r--r--src/gui/QtGui.dynlist8
-rw-r--r--src/gui/accessible/accessible.pri24
-rw-r--r--src/gui/accessible/qaccessible.cpp1079
-rw-r--r--src/gui/accessible/qaccessible.h417
-rw-r--r--src/gui/accessible/qaccessible2.cpp181
-rw-r--r--src/gui/accessible/qaccessible2.h217
-rw-r--r--src/gui/accessible/qaccessible_mac.mm2608
-rw-r--r--src/gui/accessible/qaccessible_mac_carbon.cpp119
-rw-r--r--src/gui/accessible/qaccessible_mac_cocoa.mm0
-rw-r--r--src/gui/accessible/qaccessible_mac_p.h479
-rw-r--r--src/gui/accessible/qaccessible_unix.cpp134
-rw-r--r--src/gui/accessible/qaccessible_win.cpp1219
-rw-r--r--src/gui/accessible/qaccessiblebridge.cpp158
-rw-r--r--src/gui/accessible/qaccessiblebridge.h92
-rw-r--r--src/gui/accessible/qaccessibleobject.cpp410
-rw-r--r--src/gui/accessible/qaccessibleobject.h140
-rw-r--r--src/gui/accessible/qaccessibleplugin.cpp107
-rw-r--r--src/gui/accessible/qaccessibleplugin.h87
-rw-r--r--src/gui/accessible/qaccessiblewidget.cpp1041
-rw-r--r--src/gui/accessible/qaccessiblewidget.h141
-rw-r--r--src/gui/dialogs/dialogs.pri97
-rw-r--r--src/gui/dialogs/images/fit-page-24.pngbin0 -> 985 bytes-rw-r--r--src/gui/dialogs/images/fit-page-32.pngbin0 -> 1330 bytes-rw-r--r--src/gui/dialogs/images/fit-width-24.pngbin0 -> 706 bytes-rw-r--r--src/gui/dialogs/images/fit-width-32.pngbin0 -> 1004 bytes-rw-r--r--src/gui/dialogs/images/go-first-24.pngbin0 -> 796 bytes-rw-r--r--src/gui/dialogs/images/go-first-32.pngbin0 -> 985 bytes-rw-r--r--src/gui/dialogs/images/go-last-24.pngbin0 -> 792 bytes-rw-r--r--src/gui/dialogs/images/go-last-32.pngbin0 -> 984 bytes-rw-r--r--src/gui/dialogs/images/go-next-24.pngbin0 -> 782 bytes-rw-r--r--src/gui/dialogs/images/go-next-32.pngbin0 -> 948 bytes-rw-r--r--src/gui/dialogs/images/go-previous-24.pngbin0 -> 797 bytes-rw-r--r--src/gui/dialogs/images/go-previous-32.pngbin0 -> 945 bytes-rw-r--r--src/gui/dialogs/images/layout-landscape-24.pngbin0 -> 820 bytes-rw-r--r--src/gui/dialogs/images/layout-landscape-32.pngbin0 -> 1353 bytes-rw-r--r--src/gui/dialogs/images/layout-portrait-24.pngbin0 -> 817 bytes-rw-r--r--src/gui/dialogs/images/layout-portrait-32.pngbin0 -> 1330 bytes-rw-r--r--src/gui/dialogs/images/page-setup-24.pngbin0 -> 620 bytes-rw-r--r--src/gui/dialogs/images/page-setup-32.pngbin0 -> 1154 bytes-rw-r--r--src/gui/dialogs/images/print-24.pngbin0 -> 914 bytes-rw-r--r--src/gui/dialogs/images/print-32.pngbin0 -> 1202 bytes-rw-r--r--src/gui/dialogs/images/qtlogo-64.pngbin0 -> 2991 bytes-rw-r--r--src/gui/dialogs/images/status-color.pngbin0 -> 1475 bytes-rw-r--r--src/gui/dialogs/images/status-gray-scale.pngbin0 -> 1254 bytes-rw-r--r--src/gui/dialogs/images/view-page-multi-24.pngbin0 -> 390 bytes-rw-r--r--src/gui/dialogs/images/view-page-multi-32.pngbin0 -> 556 bytes-rw-r--r--src/gui/dialogs/images/view-page-one-24.pngbin0 -> 662 bytes-rw-r--r--src/gui/dialogs/images/view-page-one-32.pngbin0 -> 810 bytes-rw-r--r--src/gui/dialogs/images/view-page-sided-24.pngbin0 -> 700 bytes-rw-r--r--src/gui/dialogs/images/view-page-sided-32.pngbin0 -> 908 bytes-rw-r--r--src/gui/dialogs/images/zoom-in-24.pngbin0 -> 1302 bytes-rw-r--r--src/gui/dialogs/images/zoom-in-32.pngbin0 -> 1873 bytes-rw-r--r--src/gui/dialogs/images/zoom-out-24.pngbin0 -> 1247 bytes-rw-r--r--src/gui/dialogs/images/zoom-out-32.pngbin0 -> 1749 bytes-rw-r--r--src/gui/dialogs/qabstractpagesetupdialog.cpp139
-rw-r--r--src/gui/dialogs/qabstractpagesetupdialog.h82
-rw-r--r--src/gui/dialogs/qabstractpagesetupdialog_p.h88
-rw-r--r--src/gui/dialogs/qabstractprintdialog.cpp500
-rw-r--r--src/gui/dialogs/qabstractprintdialog.h127
-rw-r--r--src/gui/dialogs/qabstractprintdialog_p.h95
-rw-r--r--src/gui/dialogs/qcolordialog.cpp1903
-rw-r--r--src/gui/dialogs/qcolordialog.h150
-rw-r--r--src/gui/dialogs/qcolordialog_mac.mm426
-rw-r--r--src/gui/dialogs/qcolordialog_p.h144
-rw-r--r--src/gui/dialogs/qdialog.cpp1159
-rw-r--r--src/gui/dialogs/qdialog.h136
-rw-r--r--src/gui/dialogs/qdialog_p.h113
-rw-r--r--src/gui/dialogs/qdialogsbinarycompat_win.cpp137
-rw-r--r--src/gui/dialogs/qerrormessage.cpp403
-rw-r--r--src/gui/dialogs/qerrormessage.h88
-rw-r--r--src/gui/dialogs/qfiledialog.cpp3299
-rw-r--r--src/gui/dialogs/qfiledialog.h330
-rw-r--r--src/gui/dialogs/qfiledialog.ui320
-rw-r--r--src/gui/dialogs/qfiledialog_mac.mm1113
-rw-r--r--src/gui/dialogs/qfiledialog_p.h458
-rw-r--r--src/gui/dialogs/qfiledialog_win.cpp821
-rw-r--r--src/gui/dialogs/qfiledialog_wince.ui342
-rw-r--r--src/gui/dialogs/qfileinfogatherer.cpp365
-rw-r--r--src/gui/dialogs/qfileinfogatherer_p.h210
-rw-r--r--src/gui/dialogs/qfilesystemmodel.cpp1911
-rw-r--r--src/gui/dialogs/qfilesystemmodel.h179
-rw-r--r--src/gui/dialogs/qfilesystemmodel_p.h305
-rw-r--r--src/gui/dialogs/qfontdialog.cpp1070
-rw-r--r--src/gui/dialogs/qfontdialog.h144
-rw-r--r--src/gui/dialogs/qfontdialog_mac.mm625
-rw-r--r--src/gui/dialogs/qfontdialog_p.h164
-rw-r--r--src/gui/dialogs/qinputdialog.cpp1429
-rw-r--r--src/gui/dialogs/qinputdialog.h237
-rw-r--r--src/gui/dialogs/qmessagebox.cpp2688
-rw-r--r--src/gui/dialogs/qmessagebox.h363
-rw-r--r--src/gui/dialogs/qmessagebox.qrc5
-rw-r--r--src/gui/dialogs/qnspanelproxy_mac.mm246
-rw-r--r--src/gui/dialogs/qpagesetupdialog.cpp185
-rw-r--r--src/gui/dialogs/qpagesetupdialog.h112
-rw-r--r--src/gui/dialogs/qpagesetupdialog_mac.mm313
-rw-r--r--src/gui/dialogs/qpagesetupdialog_unix.cpp620
-rw-r--r--src/gui/dialogs/qpagesetupdialog_unix_p.h105
-rw-r--r--src/gui/dialogs/qpagesetupdialog_win.cpp169
-rw-r--r--src/gui/dialogs/qpagesetupwidget.ui353
-rw-r--r--src/gui/dialogs/qprintdialog.h174
-rw-r--r--src/gui/dialogs/qprintdialog.qrc38
-rw-r--r--src/gui/dialogs/qprintdialog_mac.mm428
-rw-r--r--src/gui/dialogs/qprintdialog_qws.cpp556
-rw-r--r--src/gui/dialogs/qprintdialog_unix.cpp1266
-rw-r--r--src/gui/dialogs/qprintdialog_win.cpp318
-rw-r--r--src/gui/dialogs/qprintpreviewdialog.cpp793
-rw-r--r--src/gui/dialogs/qprintpreviewdialog.h107
-rw-r--r--src/gui/dialogs/qprintpropertieswidget.ui70
-rw-r--r--src/gui/dialogs/qprintsettingsoutput.ui371
-rw-r--r--src/gui/dialogs/qprintwidget.ui116
-rw-r--r--src/gui/dialogs/qprogressdialog.cpp865
-rw-r--r--src/gui/dialogs/qprogressdialog.h145
-rw-r--r--src/gui/dialogs/qsidebar.cpp485
-rw-r--r--src/gui/dialogs/qsidebar_p.h147
-rw-r--r--src/gui/dialogs/qwizard.cpp3765
-rw-r--r--src/gui/dialogs/qwizard.h262
-rw-r--r--src/gui/dialogs/qwizard_win.cpp739
-rw-r--r--src/gui/dialogs/qwizard_win_p.h148
-rw-r--r--src/gui/embedded/embedded.pri226
-rw-r--r--src/gui/embedded/qcopchannel_qws.cpp608
-rw-r--r--src/gui/embedded/qcopchannel_qws.h108
-rw-r--r--src/gui/embedded/qdecoration_qws.cpp404
-rw-r--r--src/gui/embedded/qdecoration_qws.h124
-rw-r--r--src/gui/embedded/qdecorationdefault_qws.cpp803
-rw-r--r--src/gui/embedded/qdecorationdefault_qws.h101
-rw-r--r--src/gui/embedded/qdecorationfactory_qws.cpp156
-rw-r--r--src/gui/embedded/qdecorationfactory_qws.h66
-rw-r--r--src/gui/embedded/qdecorationplugin_qws.cpp116
-rw-r--r--src/gui/embedded/qdecorationplugin_qws.h80
-rw-r--r--src/gui/embedded/qdecorationstyled_qws.cpp313
-rw-r--r--src/gui/embedded/qdecorationstyled_qws.h73
-rw-r--r--src/gui/embedded/qdecorationwindows_qws.cpp407
-rw-r--r--src/gui/embedded/qdecorationwindows_qws.h77
-rw-r--r--src/gui/embedded/qdirectpainter_qws.cpp682
-rw-r--r--src/gui/embedded/qdirectpainter_qws.h112
-rw-r--r--src/gui/embedded/qkbd_qws.cpp248
-rw-r--r--src/gui/embedded/qkbd_qws.h81
-rw-r--r--src/gui/embedded/qkbddriverfactory_qws.cpp193
-rw-r--r--src/gui/embedded/qkbddriverfactory_qws.h70
-rw-r--r--src/gui/embedded/qkbddriverplugin_qws.cpp124
-rw-r--r--src/gui/embedded/qkbddriverplugin_qws.h84
-rw-r--r--src/gui/embedded/qkbdpc101_qws.cpp485
-rw-r--r--src/gui/embedded/qkbdpc101_qws.h95
-rw-r--r--src/gui/embedded/qkbdsl5000_qws.cpp356
-rw-r--r--src/gui/embedded/qkbdsl5000_qws.h79
-rw-r--r--src/gui/embedded/qkbdtty_qws.cpp263
-rw-r--r--src/gui/embedded/qkbdtty_qws.h81
-rw-r--r--src/gui/embedded/qkbdum_qws.cpp143
-rw-r--r--src/gui/embedded/qkbdum_qws.h77
-rw-r--r--src/gui/embedded/qkbdusb_qws.cpp401
-rw-r--r--src/gui/embedded/qkbdusb_qws.h77
-rw-r--r--src/gui/embedded/qkbdvfb_qws.cpp123
-rw-r--r--src/gui/embedded/qkbdvfb_qws.h86
-rw-r--r--src/gui/embedded/qkbdvr41xx_qws.cpp185
-rw-r--r--src/gui/embedded/qkbdvr41xx_qws.h73
-rw-r--r--src/gui/embedded/qkbdyopy_qws.cpp209
-rw-r--r--src/gui/embedded/qkbdyopy_qws.h73
-rw-r--r--src/gui/embedded/qlock.cpp318
-rw-r--r--src/gui/embedded/qlock_p.h100
-rw-r--r--src/gui/embedded/qmouse_qws.cpp653
-rw-r--r--src/gui/embedded/qmouse_qws.h123
-rw-r--r--src/gui/embedded/qmousebus_qws.cpp238
-rw-r--r--src/gui/embedded/qmousebus_qws.h76
-rw-r--r--src/gui/embedded/qmousedriverfactory_qws.cpp195
-rw-r--r--src/gui/embedded/qmousedriverfactory_qws.h67
-rw-r--r--src/gui/embedded/qmousedriverplugin_qws.cpp124
-rw-r--r--src/gui/embedded/qmousedriverplugin_qws.h84
-rw-r--r--src/gui/embedded/qmouselinuxtp_qws.cpp334
-rw-r--r--src/gui/embedded/qmouselinuxtp_qws.h77
-rw-r--r--src/gui/embedded/qmousepc_qws.cpp793
-rw-r--r--src/gui/embedded/qmousepc_qws.h76
-rw-r--r--src/gui/embedded/qmousetslib_qws.cpp371
-rw-r--r--src/gui/embedded/qmousetslib_qws.h80
-rw-r--r--src/gui/embedded/qmousevfb_qws.cpp132
-rw-r--r--src/gui/embedded/qmousevfb_qws.h83
-rw-r--r--src/gui/embedded/qmousevr41xx_qws.cpp250
-rw-r--r--src/gui/embedded/qmousevr41xx_qws.h80
-rw-r--r--src/gui/embedded/qmouseyopy_qws.cpp184
-rw-r--r--src/gui/embedded/qmouseyopy_qws.h80
-rw-r--r--src/gui/embedded/qscreen_qws.cpp3317
-rw-r--r--src/gui/embedded/qscreen_qws.h387
-rw-r--r--src/gui/embedded/qscreendriverfactory_qws.cpp183
-rw-r--r--src/gui/embedded/qscreendriverfactory_qws.h67
-rw-r--r--src/gui/embedded/qscreendriverplugin_qws.cpp123
-rw-r--r--src/gui/embedded/qscreendriverplugin_qws.h84
-rw-r--r--src/gui/embedded/qscreenlinuxfb_qws.cpp1324
-rw-r--r--src/gui/embedded/qscreenlinuxfb_qws.h129
-rw-r--r--src/gui/embedded/qscreenmulti_qws.cpp482
-rw-r--r--src/gui/embedded/qscreenmulti_qws_p.h114
-rw-r--r--src/gui/embedded/qscreenproxy_qws.cpp631
-rw-r--r--src/gui/embedded/qscreenproxy_qws.h153
-rw-r--r--src/gui/embedded/qscreentransformed_qws.cpp734
-rw-r--r--src/gui/embedded/qscreentransformed_qws.h103
-rw-r--r--src/gui/embedded/qscreenvfb_qws.cpp444
-rw-r--r--src/gui/embedded/qscreenvfb_qws.h86
-rw-r--r--src/gui/embedded/qsoundqss_qws.cpp1498
-rw-r--r--src/gui/embedded/qsoundqss_qws.h177
-rw-r--r--src/gui/embedded/qtransportauth_qws.cpp1562
-rw-r--r--src/gui/embedded/qtransportauth_qws.h281
-rw-r--r--src/gui/embedded/qtransportauth_qws_p.h189
-rw-r--r--src/gui/embedded/qtransportauthdefs_qws.h174
-rw-r--r--src/gui/embedded/qunixsocket.cpp1794
-rw-r--r--src/gui/embedded/qunixsocket_p.h202
-rw-r--r--src/gui/embedded/qunixsocketserver.cpp376
-rw-r--r--src/gui/embedded/qunixsocketserver_p.h98
-rw-r--r--src/gui/embedded/qvfbhdr.h89
-rw-r--r--src/gui/embedded/qwindowsystem_p.h315
-rw-r--r--src/gui/embedded/qwindowsystem_qws.cpp4947
-rw-r--r--src/gui/embedded/qwindowsystem_qws.h508
-rw-r--r--src/gui/embedded/qwscommand_qws.cpp610
-rw-r--r--src/gui/embedded/qwscommand_qws_p.h853
-rw-r--r--src/gui/embedded/qwscursor_qws.cpp654
-rw-r--r--src/gui/embedded/qwscursor_qws.h83
-rw-r--r--src/gui/embedded/qwsdisplay_qws.h185
-rw-r--r--src/gui/embedded/qwsdisplay_qws_p.h161
-rw-r--r--src/gui/embedded/qwsembedwidget.cpp227
-rw-r--r--src/gui/embedded/qwsembedwidget.h82
-rw-r--r--src/gui/embedded/qwsevent_qws.cpp216
-rw-r--r--src/gui/embedded/qwsevent_qws.h459
-rw-r--r--src/gui/embedded/qwslock.cpp243
-rw-r--r--src/gui/embedded/qwslock_p.h85
-rw-r--r--src/gui/embedded/qwsmanager_p.h122
-rw-r--r--src/gui/embedded/qwsmanager_qws.cpp535
-rw-r--r--src/gui/embedded/qwsmanager_qws.h122
-rw-r--r--src/gui/embedded/qwsproperty_qws.cpp145
-rw-r--r--src/gui/embedded/qwsproperty_qws.h96
-rw-r--r--src/gui/embedded/qwsprotocolitem_qws.h100
-rw-r--r--src/gui/embedded/qwssharedmemory.cpp185
-rw-r--r--src/gui/embedded/qwssharedmemory_p.h105
-rw-r--r--src/gui/embedded/qwssignalhandler.cpp134
-rw-r--r--src/gui/embedded/qwssignalhandler_p.h99
-rw-r--r--src/gui/embedded/qwssocket_qws.cpp280
-rw-r--r--src/gui/embedded/qwssocket_qws.h120
-rw-r--r--src/gui/embedded/qwsutils_qws.h98
-rw-r--r--src/gui/graphicsview/graphicsview.pri46
-rw-r--r--src/gui/graphicsview/qgraphicsgridlayout.cpp651
-rw-r--r--src/gui/graphicsview/qgraphicsgridlayout.h143
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp8803
-rw-r--r--src/gui/graphicsview/qgraphicsitem.h1016
-rw-r--r--src/gui/graphicsview/qgraphicsitem_p.h281
-rw-r--r--src/gui/graphicsview/qgraphicsitemanimation.cpp599
-rw-r--r--src/gui/graphicsview/qgraphicsitemanimation.h120
-rw-r--r--src/gui/graphicsview/qgraphicslayout.cpp423
-rw-r--r--src/gui/graphicsview/qgraphicslayout.h95
-rw-r--r--src/gui/graphicsview/qgraphicslayout_p.cpp198
-rw-r--r--src/gui/graphicsview/qgraphicslayout_p.h103
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem.cpp852
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem.h152
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem_p.h91
-rw-r--r--src/gui/graphicsview/qgraphicslinearlayout.cpp547
-rw-r--r--src/gui/graphicsview/qgraphicslinearlayout.h121
-rw-r--r--src/gui/graphicsview/qgraphicsproxywidget.cpp1494
-rw-r--r--src/gui/graphicsview/qgraphicsproxywidget.h145
-rw-r--r--src/gui/graphicsview/qgraphicsproxywidget_p.h125
-rw-r--r--src/gui/graphicsview/qgraphicsscene.cpp5360
-rw-r--r--src/gui/graphicsview/qgraphicsscene.h301
-rw-r--r--src/gui/graphicsview/qgraphicsscene_bsp.cpp328
-rw-r--r--src/gui/graphicsview/qgraphicsscene_bsp_p.h137
-rw-r--r--src/gui/graphicsview/qgraphicsscene_p.h265
-rw-r--r--src/gui/graphicsview/qgraphicssceneevent.cpp1678
-rw-r--r--src/gui/graphicsview/qgraphicssceneevent.h311
-rw-r--r--src/gui/graphicsview/qgraphicsview.cpp3887
-rw-r--r--src/gui/graphicsview/qgraphicsview.h314
-rw-r--r--src/gui/graphicsview/qgraphicsview_p.h191
-rw-r--r--src/gui/graphicsview/qgraphicswidget.cpp2273
-rw-r--r--src/gui/graphicsview/qgraphicswidget.h249
-rw-r--r--src/gui/graphicsview/qgraphicswidget_p.cpp740
-rw-r--r--src/gui/graphicsview/qgraphicswidget_p.h232
-rw-r--r--src/gui/graphicsview/qgridlayoutengine.cpp1542
-rw-r--r--src/gui/graphicsview/qgridlayoutengine_p.h449
-rw-r--r--src/gui/gui.pro44
-rw-r--r--src/gui/image/image.pri108
-rw-r--r--src/gui/image/qbitmap.cpp403
-rw-r--r--src/gui/image/qbitmap.h106
-rw-r--r--src/gui/image/qbmphandler.cpp833
-rw-r--r--src/gui/image/qbmphandler_p.h117
-rw-r--r--src/gui/image/qicon.cpp1128
-rw-r--r--src/gui/image/qicon.h144
-rw-r--r--src/gui/image/qiconengine.cpp304
-rw-r--r--src/gui/image/qiconengine.h101
-rw-r--r--src/gui/image/qiconengineplugin.cpp171
-rw-r--r--src/gui/image/qiconengineplugin.h104
-rw-r--r--src/gui/image/qimage.cpp6119
-rw-r--r--src/gui/image/qimage.h352
-rw-r--r--src/gui/image/qimage_p.h110
-rw-r--r--src/gui/image/qimageiohandler.cpp571
-rw-r--r--src/gui/image/qimageiohandler.h151
-rw-r--r--src/gui/image/qimagereader.cpp1376
-rw-r--r--src/gui/image/qimagereader.h144
-rw-r--r--src/gui/image/qimagewriter.cpp690
-rw-r--r--src/gui/image/qimagewriter.h116
-rw-r--r--src/gui/image/qmovie.cpp1081
-rw-r--r--src/gui/image/qmovie.h177
-rw-r--r--src/gui/image/qnativeimage.cpp279
-rw-r--r--src/gui/image/qnativeimage_p.h110
-rw-r--r--src/gui/image/qpaintengine_pic.cpp519
-rw-r--r--src/gui/image/qpaintengine_pic_p.h120
-rw-r--r--src/gui/image/qpicture.cpp1968
-rw-r--r--src/gui/image/qpicture.h196
-rw-r--r--src/gui/image/qpicture_p.h170
-rw-r--r--src/gui/image/qpictureformatplugin.cpp139
-rw-r--r--src/gui/image/qpictureformatplugin.h94
-rw-r--r--src/gui/image/qpixmap.cpp2003
-rw-r--r--src/gui/image/qpixmap.h304
-rw-r--r--src/gui/image/qpixmap_mac.cpp1331
-rw-r--r--src/gui/image/qpixmap_mac_p.h136
-rw-r--r--src/gui/image/qpixmap_qws.cpp164
-rw-r--r--src/gui/image/qpixmap_raster.cpp350
-rw-r--r--src/gui/image/qpixmap_raster_p.h105
-rw-r--r--src/gui/image/qpixmap_win.cpp481
-rw-r--r--src/gui/image/qpixmap_x11.cpp2291
-rw-r--r--src/gui/image/qpixmap_x11_p.h131
-rw-r--r--src/gui/image/qpixmapcache.cpp320
-rw-r--r--src/gui/image/qpixmapcache.h69
-rw-r--r--src/gui/image/qpixmapdata.cpp179
-rw-r--r--src/gui/image/qpixmapdata_p.h140
-rw-r--r--src/gui/image/qpixmapdatafactory.cpp105
-rw-r--r--src/gui/image/qpixmapdatafactory_p.h81
-rw-r--r--src/gui/image/qpixmapfilter.cpp849
-rw-r--r--src/gui/image/qpixmapfilter_p.h165
-rw-r--r--src/gui/image/qpnghandler.cpp973
-rw-r--r--src/gui/image/qpnghandler_p.h88
-rw-r--r--src/gui/image/qppmhandler.cpp531
-rw-r--r--src/gui/image/qppmhandler_p.h98
-rw-r--r--src/gui/image/qxbmhandler.cpp350
-rw-r--r--src/gui/image/qxbmhandler_p.h95
-rw-r--r--src/gui/image/qxpmhandler.cpp1309
-rw-r--r--src/gui/image/qxpmhandler_p.h100
-rw-r--r--src/gui/inputmethod/inputmethod.pri26
-rw-r--r--src/gui/inputmethod/qinputcontext.cpp464
-rw-r--r--src/gui/inputmethod/qinputcontext.h134
-rw-r--r--src/gui/inputmethod/qinputcontext_p.h98
-rw-r--r--src/gui/inputmethod/qinputcontextfactory.cpp287
-rw-r--r--src/gui/inputmethod/qinputcontextfactory.h88
-rw-r--r--src/gui/inputmethod/qinputcontextplugin.cpp178
-rw-r--r--src/gui/inputmethod/qinputcontextplugin.h106
-rw-r--r--src/gui/inputmethod/qmacinputcontext_mac.cpp349
-rw-r--r--src/gui/inputmethod/qmacinputcontext_p.h92
-rw-r--r--src/gui/inputmethod/qwininputcontext_p.h96
-rw-r--r--src/gui/inputmethod/qwininputcontext_win.cpp861
-rw-r--r--src/gui/inputmethod/qwsinputcontext_p.h96
-rw-r--r--src/gui/inputmethod/qwsinputcontext_qws.cpp239
-rw-r--r--src/gui/inputmethod/qximinputcontext_p.h141
-rw-r--r--src/gui/inputmethod/qximinputcontext_x11.cpp832
-rw-r--r--src/gui/itemviews/itemviews.pri70
-rw-r--r--src/gui/itemviews/qabstractitemdelegate.cpp387
-rw-r--r--src/gui/itemviews/qabstractitemdelegate.h134
-rw-r--r--src/gui/itemviews/qabstractitemview.cpp3918
-rw-r--r--src/gui/itemviews/qabstractitemview.h370
-rw-r--r--src/gui/itemviews/qabstractitemview_p.h410
-rw-r--r--src/gui/itemviews/qabstractproxymodel.cpp282
-rw-r--r--src/gui/itemviews/qabstractproxymodel.h101
-rw-r--r--src/gui/itemviews/qabstractproxymodel_p.h76
-rw-r--r--src/gui/itemviews/qbsptree.cpp145
-rw-r--r--src/gui/itemviews/qbsptree_p.h119
-rw-r--r--src/gui/itemviews/qcolumnview.cpp1128
-rw-r--r--src/gui/itemviews/qcolumnview.h125
-rw-r--r--src/gui/itemviews/qcolumnview_p.h184
-rw-r--r--src/gui/itemviews/qcolumnviewgrip.cpp194
-rw-r--r--src/gui/itemviews/qcolumnviewgrip_p.h104
-rw-r--r--src/gui/itemviews/qdatawidgetmapper.cpp849
-rw-r--r--src/gui/itemviews/qdatawidgetmapper.h128
-rw-r--r--src/gui/itemviews/qdirmodel.cpp1410
-rw-r--r--src/gui/itemviews/qdirmodel.h160
-rw-r--r--src/gui/itemviews/qfileiconprovider.cpp449
-rw-r--r--src/gui/itemviews/qfileiconprovider.h81
-rw-r--r--src/gui/itemviews/qheaderview.cpp3558
-rw-r--r--src/gui/itemviews/qheaderview.h251
-rw-r--r--src/gui/itemviews/qheaderview_p.h370
-rw-r--r--src/gui/itemviews/qitemdelegate.cpp1337
-rw-r--r--src/gui/itemviews/qitemdelegate.h141
-rw-r--r--src/gui/itemviews/qitemeditorfactory.cpp566
-rw-r--r--src/gui/itemviews/qitemeditorfactory.h124
-rw-r--r--src/gui/itemviews/qitemeditorfactory_p.h99
-rw-r--r--src/gui/itemviews/qitemselectionmodel.cpp1570
-rw-r--r--src/gui/itemviews/qitemselectionmodel.h229
-rw-r--r--src/gui/itemviews/qitemselectionmodel_p.h111
-rw-r--r--src/gui/itemviews/qlistview.cpp3001
-rw-r--r--src/gui/itemviews/qlistview.h203
-rw-r--r--src/gui/itemviews/qlistview_p.h450
-rw-r--r--src/gui/itemviews/qlistwidget.cpp1865
-rw-r--r--src/gui/itemviews/qlistwidget.h335
-rw-r--r--src/gui/itemviews/qlistwidget_p.h175
-rw-r--r--src/gui/itemviews/qproxymodel.cpp547
-rw-r--r--src/gui/itemviews/qproxymodel.h142
-rw-r--r--src/gui/itemviews/qproxymodel_p.h100
-rw-r--r--src/gui/itemviews/qsortfilterproxymodel.cpp2392
-rw-r--r--src/gui/itemviews/qsortfilterproxymodel.h199
-rw-r--r--src/gui/itemviews/qstandarditemmodel.cpp3108
-rw-r--r--src/gui/itemviews/qstandarditemmodel.h456
-rw-r--r--src/gui/itemviews/qstandarditemmodel_p.h189
-rw-r--r--src/gui/itemviews/qstringlistmodel.cpp307
-rw-r--r--src/gui/itemviews/qstringlistmodel.h91
-rw-r--r--src/gui/itemviews/qstyleditemdelegate.cpp763
-rw-r--r--src/gui/itemviews/qstyleditemdelegate.h116
-rw-r--r--src/gui/itemviews/qtableview.cpp2515
-rw-r--r--src/gui/itemviews/qtableview.h193
-rw-r--r--src/gui/itemviews/qtableview_p.h210
-rw-r--r--src/gui/itemviews/qtablewidget.cpp2703
-rw-r--r--src/gui/itemviews/qtablewidget.h377
-rw-r--r--src/gui/itemviews/qtablewidget_p.h223
-rw-r--r--src/gui/itemviews/qtreeview.cpp3851
-rw-r--r--src/gui/itemviews/qtreeview.h241
-rw-r--r--src/gui/itemviews/qtreeview_p.h240
-rw-r--r--src/gui/itemviews/qtreewidget.cpp3437
-rw-r--r--src/gui/itemviews/qtreewidget.h432
-rw-r--r--src/gui/itemviews/qtreewidget_p.h249
-rw-r--r--src/gui/itemviews/qtreewidgetitemiterator.cpp459
-rw-r--r--src/gui/itemviews/qtreewidgetitemiterator.h158
-rw-r--r--src/gui/itemviews/qtreewidgetitemiterator_p.h109
-rw-r--r--src/gui/itemviews/qwidgetitemdata_p.h88
-rw-r--r--src/gui/kernel/kernel.pri209
-rw-r--r--src/gui/kernel/mac.pri4
-rw-r--r--src/gui/kernel/qaction.cpp1396
-rw-r--r--src/gui/kernel/qaction.h246
-rw-r--r--src/gui/kernel/qaction_p.h129
-rw-r--r--src/gui/kernel/qactiongroup.cpp416
-rw-r--r--src/gui/kernel/qactiongroup.h112
-rw-r--r--src/gui/kernel/qapplication.cpp5051
-rw-r--r--src/gui/kernel/qapplication.h391
-rw-r--r--src/gui/kernel/qapplication_mac.mm2976
-rw-r--r--src/gui/kernel/qapplication_p.h438
-rw-r--r--src/gui/kernel/qapplication_qws.cpp3817
-rw-r--r--src/gui/kernel/qapplication_win.cpp3956
-rw-r--r--src/gui/kernel/qapplication_x11.cpp5919
-rw-r--r--src/gui/kernel/qboxlayout.cpp1534
-rw-r--r--src/gui/kernel/qboxlayout.h173
-rw-r--r--src/gui/kernel/qclipboard.cpp651
-rw-r--r--src/gui/kernel/qclipboard.h130
-rw-r--r--src/gui/kernel/qclipboard_mac.cpp612
-rw-r--r--src/gui/kernel/qclipboard_p.h131
-rw-r--r--src/gui/kernel/qclipboard_qws.cpp304
-rw-r--r--src/gui/kernel/qclipboard_win.cpp389
-rw-r--r--src/gui/kernel/qclipboard_x11.cpp1498
-rw-r--r--src/gui/kernel/qcocoaapplication_mac.mm114
-rw-r--r--src/gui/kernel/qcocoaapplication_mac_p.h103
-rw-r--r--src/gui/kernel/qcocoaapplicationdelegate_mac.mm282
-rw-r--r--src/gui/kernel/qcocoaapplicationdelegate_mac_p.h119
-rw-r--r--src/gui/kernel/qcocoamenuloader_mac.mm215
-rw-r--r--src/gui/kernel/qcocoamenuloader_mac_p.h90
-rw-r--r--src/gui/kernel/qcocoapanel_mac.mm79
-rw-r--r--src/gui/kernel/qcocoapanel_mac_p.h65
-rw-r--r--src/gui/kernel/qcocoaview_mac.mm1254
-rw-r--r--src/gui/kernel/qcocoaview_mac_p.h109
-rw-r--r--src/gui/kernel/qcocoawindow_mac.mm185
-rw-r--r--src/gui/kernel/qcocoawindow_mac_p.h72
-rw-r--r--src/gui/kernel/qcocoawindowcustomthemeframe_mac.mm62
-rw-r--r--src/gui/kernel/qcocoawindowcustomthemeframe_mac_p.h61
-rw-r--r--src/gui/kernel/qcocoawindowdelegate_mac.mm349
-rw-r--r--src/gui/kernel/qcocoawindowdelegate_mac_p.h95
-rw-r--r--src/gui/kernel/qcursor.cpp565
-rw-r--r--src/gui/kernel/qcursor.h160
-rw-r--r--src/gui/kernel/qcursor_mac.mm556
-rw-r--r--src/gui/kernel/qcursor_p.h121
-rw-r--r--src/gui/kernel/qcursor_qws.cpp136
-rw-r--r--src/gui/kernel/qcursor_win.cpp493
-rw-r--r--src/gui/kernel/qcursor_x11.cpp594
-rw-r--r--src/gui/kernel/qdesktopwidget.h104
-rw-r--r--src/gui/kernel/qdesktopwidget_mac.mm244
-rw-r--r--src/gui/kernel/qdesktopwidget_mac_p.h74
-rw-r--r--src/gui/kernel/qdesktopwidget_qws.cpp159
-rw-r--r--src/gui/kernel/qdesktopwidget_win.cpp412
-rw-r--r--src/gui/kernel/qdesktopwidget_x11.cpp380
-rw-r--r--src/gui/kernel/qdnd.cpp697
-rw-r--r--src/gui/kernel/qdnd_mac.mm749
-rw-r--r--src/gui/kernel/qdnd_p.h333
-rw-r--r--src/gui/kernel/qdnd_qws.cpp422
-rw-r--r--src/gui/kernel/qdnd_win.cpp1036
-rw-r--r--src/gui/kernel/qdnd_x11.cpp2064
-rw-r--r--src/gui/kernel/qdrag.cpp357
-rw-r--r--src/gui/kernel/qdrag.h105
-rw-r--r--src/gui/kernel/qevent.cpp3509
-rw-r--r--src/gui/kernel/qevent.h726
-rw-r--r--src/gui/kernel/qevent_p.h94
-rw-r--r--src/gui/kernel/qeventdispatcher_glib_qws.cpp195
-rw-r--r--src/gui/kernel/qeventdispatcher_glib_qws_p.h78
-rw-r--r--src/gui/kernel/qeventdispatcher_mac.mm926
-rw-r--r--src/gui/kernel/qeventdispatcher_mac_p.h197
-rw-r--r--src/gui/kernel/qeventdispatcher_qws.cpp168
-rw-r--r--src/gui/kernel/qeventdispatcher_qws_p.h86
-rw-r--r--src/gui/kernel/qeventdispatcher_x11.cpp191
-rw-r--r--src/gui/kernel/qeventdispatcher_x11_p.h86
-rw-r--r--src/gui/kernel/qformlayout.cpp2080
-rw-r--r--src/gui/kernel/qformlayout.h163
-rw-r--r--src/gui/kernel/qgridlayout.cpp1889
-rw-r--r--src/gui/kernel/qgridlayout.h176
-rw-r--r--src/gui/kernel/qguieventdispatcher_glib.cpp217
-rw-r--r--src/gui/kernel/qguieventdispatcher_glib_p.h78
-rw-r--r--src/gui/kernel/qguifunctions_wince.cpp377
-rw-r--r--src/gui/kernel/qguifunctions_wince.h157
-rw-r--r--src/gui/kernel/qguivariant.cpp669
-rw-r--r--src/gui/kernel/qkeymapper.cpp121
-rw-r--r--src/gui/kernel/qkeymapper_mac.cpp931
-rw-r--r--src/gui/kernel/qkeymapper_p.h213
-rw-r--r--src/gui/kernel/qkeymapper_qws.cpp77
-rw-r--r--src/gui/kernel/qkeymapper_win.cpp1259
-rw-r--r--src/gui/kernel/qkeymapper_x11.cpp1678
-rw-r--r--src/gui/kernel/qkeymapper_x11_p.cpp488
-rw-r--r--src/gui/kernel/qkeysequence.cpp1469
-rw-r--r--src/gui/kernel/qkeysequence.h231
-rw-r--r--src/gui/kernel/qkeysequence_p.h98
-rw-r--r--src/gui/kernel/qlayout.cpp1585
-rw-r--r--src/gui/kernel/qlayout.h242
-rw-r--r--src/gui/kernel/qlayout_p.h101
-rw-r--r--src/gui/kernel/qlayoutengine.cpp436
-rw-r--r--src/gui/kernel/qlayoutengine_p.h140
-rw-r--r--src/gui/kernel/qlayoutitem.cpp837
-rw-r--r--src/gui/kernel/qlayoutitem.h182
-rw-r--r--src/gui/kernel/qmacdefines_mac.h192
-rw-r--r--src/gui/kernel/qmime.cpp97
-rw-r--r--src/gui/kernel/qmime.h176
-rw-r--r--src/gui/kernel/qmime_mac.cpp1181
-rw-r--r--src/gui/kernel/qmime_win.cpp1594
-rw-r--r--src/gui/kernel/qmotifdnd_x11.cpp1028
-rw-r--r--src/gui/kernel/qnsframeview_mac_p.h154
-rw-r--r--src/gui/kernel/qnsthemeframe_mac_p.h246
-rw-r--r--src/gui/kernel/qnstitledframe_mac_p.h205
-rw-r--r--src/gui/kernel/qole_win.cpp255
-rw-r--r--src/gui/kernel/qpalette.cpp1396
-rw-r--r--src/gui/kernel/qpalette.h262
-rw-r--r--src/gui/kernel/qsessionmanager.h111
-rw-r--r--src/gui/kernel/qsessionmanager_qws.cpp171
-rw-r--r--src/gui/kernel/qshortcut.cpp408
-rw-r--r--src/gui/kernel/qshortcut.h107
-rw-r--r--src/gui/kernel/qshortcutmap.cpp901
-rw-r--r--src/gui/kernel/qshortcutmap_p.h122
-rw-r--r--src/gui/kernel/qsizepolicy.h225
-rw-r--r--src/gui/kernel/qsound.cpp386
-rw-r--r--src/gui/kernel/qsound.h95
-rw-r--r--src/gui/kernel/qsound_mac.mm184
-rw-r--r--src/gui/kernel/qsound_p.h100
-rw-r--r--src/gui/kernel/qsound_qws.cpp350
-rw-r--r--src/gui/kernel/qsound_win.cpp219
-rw-r--r--src/gui/kernel/qsound_x11.cpp296
-rw-r--r--src/gui/kernel/qstackedlayout.cpp545
-rw-r--r--src/gui/kernel/qstackedlayout.h115
-rw-r--r--src/gui/kernel/qt_cocoa_helpers_mac.mm1096
-rw-r--r--src/gui/kernel/qt_cocoa_helpers_mac_p.h174
-rw-r--r--src/gui/kernel/qt_gui_pch.h85
-rw-r--r--src/gui/kernel/qt_mac.cpp144
-rw-r--r--src/gui/kernel/qt_mac_p.h265
-rw-r--r--src/gui/kernel/qt_x11_p.h723
-rw-r--r--src/gui/kernel/qtooltip.cpp609
-rw-r--r--src/gui/kernel/qtooltip.h84
-rw-r--r--src/gui/kernel/qwhatsthis.cpp772
-rw-r--r--src/gui/kernel/qwhatsthis.h88
-rw-r--r--src/gui/kernel/qwidget.cpp11398
-rw-r--r--src/gui/kernel/qwidget.h1045
-rw-r--r--src/gui/kernel/qwidget_mac.mm4842
-rw-r--r--src/gui/kernel/qwidget_p.h712
-rw-r--r--src/gui/kernel/qwidget_qws.cpp1198
-rw-r--r--src/gui/kernel/qwidget_win.cpp2124
-rw-r--r--src/gui/kernel/qwidget_wince.cpp707
-rw-r--r--src/gui/kernel/qwidget_x11.cpp2891
-rw-r--r--src/gui/kernel/qwidgetaction.cpp288
-rw-r--r--src/gui/kernel/qwidgetaction.h91
-rw-r--r--src/gui/kernel/qwidgetaction_p.h77
-rw-r--r--src/gui/kernel/qwidgetcreate_x11.cpp79
-rw-r--r--src/gui/kernel/qwindowdefs.h152
-rw-r--r--src/gui/kernel/qwindowdefs_win.h132
-rw-r--r--src/gui/kernel/qx11embed_x11.cpp1807
-rw-r--r--src/gui/kernel/qx11embed_x11.h132
-rw-r--r--src/gui/kernel/qx11info_x11.cpp542
-rw-r--r--src/gui/kernel/qx11info_x11.h123
-rw-r--r--src/gui/kernel/win.pri4
-rw-r--r--src/gui/kernel/x11.pri4
-rw-r--r--src/gui/mac/images/copyarrowcursor.pngbin0 -> 1976 bytes-rw-r--r--src/gui/mac/images/forbiddencursor.pngbin0 -> 1745 bytes-rw-r--r--src/gui/mac/images/pluscursor.pngbin0 -> 688 bytes-rw-r--r--src/gui/mac/images/spincursor.pngbin0 -> 748 bytes-rw-r--r--src/gui/mac/images/waitcursor.pngbin0 -> 724 bytes-rw-r--r--src/gui/mac/maccursors.qrc9
-rw-r--r--src/gui/mac/qt_menu.nib/classes.nib59
-rw-r--r--src/gui/mac/qt_menu.nib/info.nib18
-rw-r--r--src/gui/mac/qt_menu.nib/keyedobjects.nibbin0 -> 5567 bytes-rwxr-xr-xsrc/gui/painting/makepsheader.pl155
-rw-r--r--src/gui/painting/painting.pri369
-rw-r--r--src/gui/painting/qbackingstore.cpp1548
-rw-r--r--src/gui/painting/qbackingstore_p.h268
-rw-r--r--src/gui/painting/qbezier.cpp1245
-rw-r--r--src/gui/painting/qbezier_p.h280
-rw-r--r--src/gui/painting/qblendfunctions.cpp1419
-rw-r--r--src/gui/painting/qbrush.cpp2148
-rw-r--r--src/gui/painting/qbrush.h321
-rw-r--r--src/gui/painting/qcolor.cpp2244
-rw-r--r--src/gui/painting/qcolor.h275
-rw-r--r--src/gui/painting/qcolor_p.cpp390
-rw-r--r--src/gui/painting/qcolor_p.h71
-rw-r--r--src/gui/painting/qcolormap.h97
-rw-r--r--src/gui/painting/qcolormap_mac.cpp111
-rw-r--r--src/gui/painting/qcolormap_qws.cpp185
-rw-r--r--src/gui/painting/qcolormap_win.cpp197
-rw-r--r--src/gui/painting/qcolormap_x11.cpp674
-rw-r--r--src/gui/painting/qcssutil.cpp408
-rw-r--r--src/gui/painting/qcssutil_p.h84
-rw-r--r--src/gui/painting/qcups.cpp398
-rw-r--r--src/gui/painting/qcups_p.h120
-rw-r--r--src/gui/painting/qdatabuffer_p.h127
-rw-r--r--src/gui/painting/qdrawhelper.cpp8248
-rw-r--r--src/gui/painting/qdrawhelper_iwmmxt.cpp127
-rw-r--r--src/gui/painting/qdrawhelper_mmx.cpp134
-rw-r--r--src/gui/painting/qdrawhelper_mmx3dnow.cpp106
-rw-r--r--src/gui/painting/qdrawhelper_mmx_p.h893
-rw-r--r--src/gui/painting/qdrawhelper_p.h1910
-rw-r--r--src/gui/painting/qdrawhelper_sse.cpp147
-rw-r--r--src/gui/painting/qdrawhelper_sse2.cpp211
-rw-r--r--src/gui/painting/qdrawhelper_sse3dnow.cpp122
-rw-r--r--src/gui/painting/qdrawhelper_sse_p.h182
-rw-r--r--src/gui/painting/qdrawhelper_x86_p.h130
-rw-r--r--src/gui/painting/qdrawutil.cpp1041
-rw-r--r--src/gui/painting/qdrawutil.h140
-rw-r--r--src/gui/painting/qemulationpaintengine.cpp229
-rw-r--r--src/gui/painting/qemulationpaintengine_p.h107
-rw-r--r--src/gui/painting/qfixed_p.h219
-rw-r--r--src/gui/painting/qgraphicssystem.cpp78
-rw-r--r--src/gui/painting/qgraphicssystem_mac.cpp59
-rw-r--r--src/gui/painting/qgraphicssystem_mac_p.h69
-rw-r--r--src/gui/painting/qgraphicssystem_p.h78
-rw-r--r--src/gui/painting/qgraphicssystem_qws.cpp62
-rw-r--r--src/gui/painting/qgraphicssystem_qws_p.h79
-rw-r--r--src/gui/painting/qgraphicssystem_raster.cpp59
-rw-r--r--src/gui/painting/qgraphicssystem_raster_p.h69
-rw-r--r--src/gui/painting/qgraphicssystemfactory.cpp110
-rw-r--r--src/gui/painting/qgraphicssystemfactory_p.h78
-rw-r--r--src/gui/painting/qgraphicssystemplugin.cpp56
-rw-r--r--src/gui/painting/qgraphicssystemplugin_p.h92
-rw-r--r--src/gui/painting/qgrayraster.c1937
-rw-r--r--src/gui/painting/qgrayraster_p.h101
-rw-r--r--src/gui/painting/qimagescale.cpp1031
-rw-r--r--src/gui/painting/qimagescale_p.h66
-rw-r--r--src/gui/painting/qmath_p.h66
-rw-r--r--src/gui/painting/qmatrix.cpp1180
-rw-r--r--src/gui/painting/qmatrix.h175
-rw-r--r--src/gui/painting/qmemrotate.cpp547
-rw-r--r--src/gui/painting/qmemrotate_p.h103
-rw-r--r--src/gui/painting/qoutlinemapper.cpp412
-rw-r--r--src/gui/painting/qoutlinemapper_p.h238
-rw-r--r--src/gui/painting/qpaintdevice.h173
-rw-r--r--src/gui/painting/qpaintdevice_mac.cpp185
-rw-r--r--src/gui/painting/qpaintdevice_qws.cpp92
-rw-r--r--src/gui/painting/qpaintdevice_win.cpp88
-rw-r--r--src/gui/painting/qpaintdevice_x11.cpp435
-rw-r--r--src/gui/painting/qpaintengine.cpp1026
-rw-r--r--src/gui/painting/qpaintengine.h359
-rw-r--r--src/gui/painting/qpaintengine_alpha.cpp510
-rw-r--r--src/gui/painting/qpaintengine_alpha_p.h134
-rw-r--r--src/gui/painting/qpaintengine_d3d.cpp4576
-rw-r--r--src/gui/painting/qpaintengine_d3d.fx608
-rw-r--r--src/gui/painting/qpaintengine_d3d.qrc5
-rw-r--r--src/gui/painting/qpaintengine_d3d_p.h120
-rw-r--r--src/gui/painting/qpaintengine_mac.cpp1789
-rw-r--r--src/gui/painting/qpaintengine_mac_p.h359
-rw-r--r--src/gui/painting/qpaintengine_p.h125
-rw-r--r--src/gui/painting/qpaintengine_preview.cpp223
-rw-r--r--src/gui/painting/qpaintengine_preview_p.h106
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp6058
-rw-r--r--src/gui/painting/qpaintengine_raster_p.h550
-rw-r--r--src/gui/painting/qpaintengine_x11.cpp2451
-rw-r--r--src/gui/painting/qpaintengine_x11_p.h245
-rw-r--r--src/gui/painting/qpaintengineex.cpp804
-rw-r--r--src/gui/painting/qpaintengineex_p.h240
-rw-r--r--src/gui/painting/qpainter.cpp8533
-rw-r--r--src/gui/painting/qpainter.h953
-rw-r--r--src/gui/painting/qpainter_p.h260
-rw-r--r--src/gui/painting/qpainterpath.cpp3309
-rw-r--r--src/gui/painting/qpainterpath.h409
-rw-r--r--src/gui/painting/qpainterpath_p.h211
-rw-r--r--src/gui/painting/qpathclipper.cpp2042
-rw-r--r--src/gui/painting/qpathclipper_p.h519
-rw-r--r--src/gui/painting/qpdf.cpp2087
-rw-r--r--src/gui/painting/qpdf_p.h303
-rw-r--r--src/gui/painting/qpen.cpp1005
-rw-r--r--src/gui/painting/qpen.h140
-rw-r--r--src/gui/painting/qpen_p.h78
-rw-r--r--src/gui/painting/qpolygon.cpp928
-rw-r--r--src/gui/painting/qpolygon.h173
-rw-r--r--src/gui/painting/qpolygonclipper_p.h316
-rw-r--r--src/gui/painting/qprintengine.h117
-rw-r--r--src/gui/painting/qprintengine_mac.mm926
-rw-r--r--src/gui/painting/qprintengine_mac_p.h165
-rw-r--r--src/gui/painting/qprintengine_pdf.cpp1225
-rw-r--r--src/gui/painting/qprintengine_pdf_p.h194
-rw-r--r--src/gui/painting/qprintengine_ps.cpp969
-rw-r--r--src/gui/painting/qprintengine_ps_p.h137
-rw-r--r--src/gui/painting/qprintengine_qws.cpp881
-rw-r--r--src/gui/painting/qprintengine_qws_p.h213
-rw-r--r--src/gui/painting/qprintengine_win.cpp1968
-rw-r--r--src/gui/painting/qprintengine_win_p.h272
-rw-r--r--src/gui/painting/qprinter.cpp2377
-rw-r--r--src/gui/painting/qprinter.h330
-rw-r--r--src/gui/painting/qprinter_p.h140
-rw-r--r--src/gui/painting/qprinterinfo.h88
-rw-r--r--src/gui/painting/qprinterinfo_mac.cpp241
-rw-r--r--src/gui/painting/qprinterinfo_unix.cpp1141
-rw-r--r--src/gui/painting/qprinterinfo_unix_p.h125
-rw-r--r--src/gui/painting/qprinterinfo_win.cpp279
-rw-r--r--src/gui/painting/qpsprinter.agl452
-rw-r--r--src/gui/painting/qpsprinter.ps449
-rw-r--r--src/gui/painting/qrasterdefs_p.h1280
-rw-r--r--src/gui/painting/qrasterizer.cpp1249
-rw-r--r--src/gui/painting/qrasterizer_p.h91
-rw-r--r--src/gui/painting/qregion.cpp4318
-rw-r--r--src/gui/painting/qregion.h231
-rw-r--r--src/gui/painting/qregion_mac.cpp249
-rw-r--r--src/gui/painting/qregion_qws.cpp3183
-rw-r--r--src/gui/painting/qregion_win.cpp576
-rw-r--r--src/gui/painting/qregion_wince.cpp119
-rw-r--r--src/gui/painting/qregion_x11.cpp92
-rw-r--r--src/gui/painting/qrgb.h88
-rw-r--r--src/gui/painting/qstroker.cpp1136
-rw-r--r--src/gui/painting/qstroker_p.h378
-rw-r--r--src/gui/painting/qstylepainter.cpp176
-rw-r--r--src/gui/painting/qstylepainter.h112
-rw-r--r--src/gui/painting/qtessellator.cpp1499
-rw-r--r--src/gui/painting/qtessellator_p.h102
-rw-r--r--src/gui/painting/qtextureglyphcache.cpp316
-rw-r--r--src/gui/painting/qtextureglyphcache_p.h141
-rw-r--r--src/gui/painting/qtransform.cpp2079
-rw-r--r--src/gui/painting/qtransform.h346
-rw-r--r--src/gui/painting/qvectorpath_p.h166
-rw-r--r--src/gui/painting/qwindowsurface.cpp349
-rw-r--r--src/gui/painting/qwindowsurface_d3d.cpp169
-rw-r--r--src/gui/painting/qwindowsurface_d3d_p.h84
-rw-r--r--src/gui/painting/qwindowsurface_mac.cpp137
-rw-r--r--src/gui/painting/qwindowsurface_mac_p.h84
-rw-r--r--src/gui/painting/qwindowsurface_p.h112
-rw-r--r--src/gui/painting/qwindowsurface_qws.cpp1411
-rw-r--r--src/gui/painting/qwindowsurface_qws_p.h353
-rw-r--r--src/gui/painting/qwindowsurface_raster.cpp413
-rw-r--r--src/gui/painting/qwindowsurface_raster_p.h120
-rw-r--r--src/gui/painting/qwindowsurface_x11.cpp244
-rw-r--r--src/gui/painting/qwindowsurface_x11_p.h90
-rw-r--r--src/gui/painting/qwmatrix.h61
-rw-r--r--src/gui/styles/gtksymbols.cpp904
-rw-r--r--src/gui/styles/gtksymbols_p.h335
-rw-r--r--src/gui/styles/images/cdr-128.pngbin0 -> 16418 bytes-rw-r--r--src/gui/styles/images/cdr-16.pngbin0 -> 845 bytes-rw-r--r--src/gui/styles/images/cdr-32.pngbin0 -> 2016 bytes-rw-r--r--src/gui/styles/images/closedock-16.pngbin0 -> 516 bytes-rw-r--r--src/gui/styles/images/closedock-down-16.pngbin0 -> 578 bytes-rw-r--r--src/gui/styles/images/computer-16.pngbin0 -> 782 bytes-rw-r--r--src/gui/styles/images/computer-32.pngbin0 -> 1807 bytes-rw-r--r--src/gui/styles/images/desktop-16.pngbin0 -> 773 bytes-rw-r--r--src/gui/styles/images/desktop-32.pngbin0 -> 1103 bytes-rw-r--r--src/gui/styles/images/dirclosed-128.pngbin0 -> 1386 bytes-rw-r--r--src/gui/styles/images/dirclosed-16.pngbin0 -> 231 bytes-rw-r--r--src/gui/styles/images/dirclosed-32.pngbin0 -> 474 bytes-rw-r--r--src/gui/styles/images/dirlink-128.pngbin0 -> 5155 bytes-rw-r--r--src/gui/styles/images/dirlink-16.pngbin0 -> 416 bytes-rw-r--r--src/gui/styles/images/dirlink-32.pngbin0 -> 1046 bytes-rw-r--r--src/gui/styles/images/diropen-128.pngbin0 -> 2075 bytes-rw-r--r--src/gui/styles/images/diropen-16.pngbin0 -> 248 bytes-rw-r--r--src/gui/styles/images/diropen-32.pngbin0 -> 633 bytes-rw-r--r--src/gui/styles/images/dockdock-16.pngbin0 -> 438 bytes-rw-r--r--src/gui/styles/images/dockdock-down-16.pngbin0 -> 406 bytes-rw-r--r--src/gui/styles/images/down-128.pngbin0 -> 9550 bytes-rw-r--r--src/gui/styles/images/down-16.pngbin0 -> 817 bytes-rw-r--r--src/gui/styles/images/down-32.pngbin0 -> 1820 bytes-rw-r--r--src/gui/styles/images/dvd-128.pngbin0 -> 14941 bytes-rw-r--r--src/gui/styles/images/dvd-16.pngbin0 -> 892 bytes-rw-r--r--src/gui/styles/images/dvd-32.pngbin0 -> 2205 bytes-rw-r--r--src/gui/styles/images/file-128.pngbin0 -> 3997 bytes-rw-r--r--src/gui/styles/images/file-16.pngbin0 -> 423 bytes-rw-r--r--src/gui/styles/images/file-32.pngbin0 -> 713 bytes-rw-r--r--src/gui/styles/images/filecontents-128.pngbin0 -> 8109 bytes-rw-r--r--src/gui/styles/images/filecontents-16.pngbin0 -> 766 bytes-rw-r--r--src/gui/styles/images/filecontents-32.pngbin0 -> 1712 bytes-rw-r--r--src/gui/styles/images/fileinfo-128.pngbin0 -> 12002 bytes-rw-r--r--src/gui/styles/images/fileinfo-16.pngbin0 -> 849 bytes-rw-r--r--src/gui/styles/images/fileinfo-32.pngbin0 -> 2010 bytes-rw-r--r--src/gui/styles/images/filelink-128.pngbin0 -> 5601 bytes-rw-r--r--src/gui/styles/images/filelink-16.pngbin0 -> 566 bytes-rw-r--r--src/gui/styles/images/filelink-32.pngbin0 -> 1192 bytes-rw-r--r--src/gui/styles/images/floppy-128.pngbin0 -> 5074 bytes-rw-r--r--src/gui/styles/images/floppy-16.pngbin0 -> 602 bytes-rw-r--r--src/gui/styles/images/floppy-32.pngbin0 -> 1019 bytes-rw-r--r--src/gui/styles/images/fontbitmap-16.pngbin0 -> 537 bytes-rw-r--r--src/gui/styles/images/fonttruetype-16.pngbin0 -> 442 bytes-rw-r--r--src/gui/styles/images/harddrive-128.pngbin0 -> 11250 bytes-rw-r--r--src/gui/styles/images/harddrive-16.pngbin0 -> 802 bytes-rw-r--r--src/gui/styles/images/harddrive-32.pngbin0 -> 1751 bytes-rw-r--r--src/gui/styles/images/left-128.pngbin0 -> 9432 bytes-rw-r--r--src/gui/styles/images/left-16.pngbin0 -> 826 bytes-rw-r--r--src/gui/styles/images/left-32.pngbin0 -> 1799 bytes-rw-r--r--src/gui/styles/images/media-pause-16.pngbin0 -> 229 bytes-rw-r--r--src/gui/styles/images/media-pause-32.pngbin0 -> 185 bytes-rw-r--r--src/gui/styles/images/media-play-16.pngbin0 -> 262 bytes-rw-r--r--src/gui/styles/images/media-play-32.pngbin0 -> 413 bytes-rw-r--r--src/gui/styles/images/media-seek-backward-16.pngbin0 -> 384 bytes-rw-r--r--src/gui/styles/images/media-seek-backward-32.pngbin0 -> 548 bytes-rw-r--r--src/gui/styles/images/media-seek-forward-16.pngbin0 -> 370 bytes-rw-r--r--src/gui/styles/images/media-seek-forward-32.pngbin0 -> 524 bytes-rw-r--r--src/gui/styles/images/media-skip-backward-16.pngbin0 -> 396 bytes-rw-r--r--src/gui/styles/images/media-skip-backward-32.pngbin0 -> 570 bytes-rw-r--r--src/gui/styles/images/media-skip-forward-16.pngbin0 -> 384 bytes-rw-r--r--src/gui/styles/images/media-skip-forward-32.pngbin0 -> 549 bytes-rw-r--r--src/gui/styles/images/media-stop-16.pngbin0 -> 166 bytes-rw-r--r--src/gui/styles/images/media-stop-32.pngbin0 -> 176 bytes-rw-r--r--src/gui/styles/images/media-volume-16.pngbin0 -> 799 bytes-rw-r--r--src/gui/styles/images/media-volume-muted-16.pngbin0 -> 668 bytes-rw-r--r--src/gui/styles/images/networkdrive-128.pngbin0 -> 18075 bytes-rw-r--r--src/gui/styles/images/networkdrive-16.pngbin0 -> 885 bytes-rw-r--r--src/gui/styles/images/networkdrive-32.pngbin0 -> 2245 bytes-rw-r--r--src/gui/styles/images/newdirectory-128.pngbin0 -> 7503 bytes-rw-r--r--src/gui/styles/images/newdirectory-16.pngbin0 -> 870 bytes-rw-r--r--src/gui/styles/images/newdirectory-32.pngbin0 -> 1590 bytes-rw-r--r--src/gui/styles/images/parentdir-128.pngbin0 -> 8093 bytes-rw-r--r--src/gui/styles/images/parentdir-16.pngbin0 -> 938 bytes-rw-r--r--src/gui/styles/images/parentdir-32.pngbin0 -> 1603 bytes-rw-r--r--src/gui/styles/images/refresh-24.pngbin0 -> 1654 bytes-rw-r--r--src/gui/styles/images/refresh-32.pngbin0 -> 2431 bytes-rw-r--r--src/gui/styles/images/right-128.pngbin0 -> 9367 bytes-rw-r--r--src/gui/styles/images/right-16.pngbin0 -> 811 bytes-rw-r--r--src/gui/styles/images/right-32.pngbin0 -> 1804 bytes-rw-r--r--src/gui/styles/images/standardbutton-apply-128.pngbin0 -> 5395 bytes-rw-r--r--src/gui/styles/images/standardbutton-apply-16.pngbin0 -> 611 bytes-rw-r--r--src/gui/styles/images/standardbutton-apply-32.pngbin0 -> 1279 bytes-rw-r--r--src/gui/styles/images/standardbutton-cancel-128.pngbin0 -> 7039 bytes-rw-r--r--src/gui/styles/images/standardbutton-cancel-16.pngbin0 -> 689 bytes-rw-r--r--src/gui/styles/images/standardbutton-cancel-32.pngbin0 -> 1573 bytes-rw-r--r--src/gui/styles/images/standardbutton-clear-128.pngbin0 -> 3094 bytes-rw-r--r--src/gui/styles/images/standardbutton-clear-16.pngbin0 -> 456 bytes-rw-r--r--src/gui/styles/images/standardbutton-clear-32.pngbin0 -> 866 bytes-rw-r--r--src/gui/styles/images/standardbutton-close-128.pngbin0 -> 4512 bytes-rw-r--r--src/gui/styles/images/standardbutton-close-16.pngbin0 -> 366 bytes-rw-r--r--src/gui/styles/images/standardbutton-close-32.pngbin0 -> 780 bytes-rw-r--r--src/gui/styles/images/standardbutton-closetab-16.pngbin0 -> 406 bytes-rw-r--r--src/gui/styles/images/standardbutton-closetab-down-16.pngbin0 -> 481 bytes-rw-r--r--src/gui/styles/images/standardbutton-closetab-hover-16.pngbin0 -> 570 bytes-rw-r--r--src/gui/styles/images/standardbutton-delete-128.pngbin0 -> 5414 bytes-rw-r--r--src/gui/styles/images/standardbutton-delete-16.pngbin0 -> 722 bytes-rw-r--r--src/gui/styles/images/standardbutton-delete-32.pngbin0 -> 1541 bytes-rw-r--r--src/gui/styles/images/standardbutton-help-128.pngbin0 -> 10765 bytes-rw-r--r--src/gui/styles/images/standardbutton-help-16.pngbin0 -> 840 bytes-rw-r--r--src/gui/styles/images/standardbutton-help-32.pngbin0 -> 2066 bytes-rw-r--r--src/gui/styles/images/standardbutton-no-128.pngbin0 -> 6520 bytes-rw-r--r--src/gui/styles/images/standardbutton-no-16.pngbin0 -> 701 bytes-rw-r--r--src/gui/styles/images/standardbutton-no-32.pngbin0 -> 1445 bytes-rw-r--r--src/gui/styles/images/standardbutton-ok-128.pngbin0 -> 4232 bytes-rw-r--r--src/gui/styles/images/standardbutton-ok-16.pngbin0 -> 584 bytes-rw-r--r--src/gui/styles/images/standardbutton-ok-32.pngbin0 -> 1246 bytes-rw-r--r--src/gui/styles/images/standardbutton-open-128.pngbin0 -> 5415 bytes-rw-r--r--src/gui/styles/images/standardbutton-open-16.pngbin0 -> 629 bytes-rw-r--r--src/gui/styles/images/standardbutton-open-32.pngbin0 -> 1154 bytes-rw-r--r--src/gui/styles/images/standardbutton-save-128.pngbin0 -> 4398 bytes-rw-r--r--src/gui/styles/images/standardbutton-save-16.pngbin0 -> 583 bytes-rw-r--r--src/gui/styles/images/standardbutton-save-32.pngbin0 -> 1092 bytes-rw-r--r--src/gui/styles/images/standardbutton-yes-128.pngbin0 -> 6554 bytes-rw-r--r--src/gui/styles/images/standardbutton-yes-16.pngbin0 -> 687 bytes-rw-r--r--src/gui/styles/images/standardbutton-yes-32.pngbin0 -> 1504 bytes-rw-r--r--src/gui/styles/images/stop-24.pngbin0 -> 1267 bytes-rw-r--r--src/gui/styles/images/stop-32.pngbin0 -> 1878 bytes-rw-r--r--src/gui/styles/images/trash-128.pngbin0 -> 3296 bytes-rw-r--r--src/gui/styles/images/trash-16.pngbin0 -> 419 bytes-rw-r--r--src/gui/styles/images/trash-32.pngbin0 -> 883 bytes-rw-r--r--src/gui/styles/images/up-128.pngbin0 -> 9363 bytes-rw-r--r--src/gui/styles/images/up-16.pngbin0 -> 814 bytes-rw-r--r--src/gui/styles/images/up-32.pngbin0 -> 1798 bytes-rw-r--r--src/gui/styles/images/viewdetailed-128.pngbin0 -> 4743 bytes-rw-r--r--src/gui/styles/images/viewdetailed-16.pngbin0 -> 499 bytes-rw-r--r--src/gui/styles/images/viewdetailed-32.pngbin0 -> 1092 bytes-rw-r--r--src/gui/styles/images/viewlist-128.pngbin0 -> 4069 bytes-rw-r--r--src/gui/styles/images/viewlist-16.pngbin0 -> 490 bytes-rw-r--r--src/gui/styles/images/viewlist-32.pngbin0 -> 1006 bytes-rw-r--r--src/gui/styles/qcdestyle.cpp305
-rw-r--r--src/gui/styles/qcdestyle.h82
-rw-r--r--src/gui/styles/qcleanlooksstyle.cpp4945
-rw-r--r--src/gui/styles/qcleanlooksstyle.h114
-rw-r--r--src/gui/styles/qcleanlooksstyle_p.h82
-rw-r--r--src/gui/styles/qcommonstyle.cpp6357
-rw-r--r--src/gui/styles/qcommonstyle.h109
-rw-r--r--src/gui/styles/qcommonstyle_p.h142
-rw-r--r--src/gui/styles/qcommonstylepixmaps_p.h186
-rw-r--r--src/gui/styles/qgtkpainter.cpp705
-rw-r--r--src/gui/styles/qgtkpainter_p.h129
-rw-r--r--src/gui/styles/qgtkstyle.cpp3280
-rw-r--r--src/gui/styles/qgtkstyle.h118
-rw-r--r--src/gui/styles/qmacstyle_mac.h144
-rw-r--r--src/gui/styles/qmacstyle_mac.mm6394
-rw-r--r--src/gui/styles/qmacstylepixmaps_mac_p.h1467
-rw-r--r--src/gui/styles/qmotifstyle.cpp2719
-rw-r--r--src/gui/styles/qmotifstyle.h128
-rw-r--r--src/gui/styles/qmotifstyle_p.h82
-rw-r--r--src/gui/styles/qplastiquestyle.cpp6024
-rw-r--r--src/gui/styles/qplastiquestyle.h119
-rw-r--r--src/gui/styles/qstyle.cpp2445
-rw-r--r--src/gui/styles/qstyle.h875
-rw-r--r--src/gui/styles/qstyle.qrc135
-rw-r--r--src/gui/styles/qstyle_p.h104
-rw-r--r--src/gui/styles/qstyle_wince.qrc97
-rw-r--r--src/gui/styles/qstylefactory.cpp259
-rw-r--r--src/gui/styles/qstylefactory.h66
-rw-r--r--src/gui/styles/qstyleoption.cpp5353
-rw-r--r--src/gui/styles/qstyleoption.h949
-rw-r--r--src/gui/styles/qstyleplugin.cpp115
-rw-r--r--src/gui/styles/qstyleplugin.h81
-rw-r--r--src/gui/styles/qstylesheetstyle.cpp5946
-rw-r--r--src/gui/styles/qstylesheetstyle_default.cpp554
-rw-r--r--src/gui/styles/qstylesheetstyle_p.h191
-rw-r--r--src/gui/styles/qwindowscestyle.cpp2422
-rw-r--r--src/gui/styles/qwindowscestyle.h103
-rw-r--r--src/gui/styles/qwindowscestyle_p.h118
-rw-r--r--src/gui/styles/qwindowsmobilestyle.cpp3503
-rw-r--r--src/gui/styles/qwindowsmobilestyle.h116
-rw-r--r--src/gui/styles/qwindowsmobilestyle_p.h93
-rw-r--r--src/gui/styles/qwindowsstyle.cpp3408
-rw-r--r--src/gui/styles/qwindowsstyle.h111
-rw-r--r--src/gui/styles/qwindowsstyle_p.h96
-rw-r--r--src/gui/styles/qwindowsvistastyle.cpp2650
-rw-r--r--src/gui/styles/qwindowsvistastyle.h108
-rw-r--r--src/gui/styles/qwindowsvistastyle_p.h217
-rw-r--r--src/gui/styles/qwindowsxpstyle.cpp4205
-rw-r--r--src/gui/styles/qwindowsxpstyle.h107
-rw-r--r--src/gui/styles/qwindowsxpstyle_p.h356
-rw-r--r--src/gui/styles/styles.pri157
-rw-r--r--src/gui/text/qabstractfontengine_p.h110
-rw-r--r--src/gui/text/qabstractfontengine_qws.cpp776
-rw-r--r--src/gui/text/qabstractfontengine_qws.h221
-rw-r--r--src/gui/text/qabstracttextdocumentlayout.cpp622
-rw-r--r--src/gui/text/qabstracttextdocumentlayout.h149
-rw-r--r--src/gui/text/qabstracttextdocumentlayout_p.h100
-rw-r--r--src/gui/text/qcssparser.cpp2808
-rw-r--r--src/gui/text/qcssparser_p.h835
-rw-r--r--src/gui/text/qcssscanner.cpp1146
-rw-r--r--src/gui/text/qfont.cpp3018
-rw-r--r--src/gui/text/qfont.h354
-rw-r--r--src/gui/text/qfont_mac.cpp158
-rw-r--r--src/gui/text/qfont_p.h278
-rw-r--r--src/gui/text/qfont_qws.cpp134
-rw-r--r--src/gui/text/qfont_win.cpp178
-rw-r--r--src/gui/text/qfont_x11.cpp370
-rw-r--r--src/gui/text/qfontdatabase.cpp2435
-rw-r--r--src/gui/text/qfontdatabase.h176
-rw-r--r--src/gui/text/qfontdatabase_mac.cpp509
-rw-r--r--src/gui/text/qfontdatabase_qws.cpp1062
-rw-r--r--src/gui/text/qfontdatabase_win.cpp1288
-rw-r--r--src/gui/text/qfontdatabase_x11.cpp2064
-rw-r--r--src/gui/text/qfontengine.cpp1623
-rw-r--r--src/gui/text/qfontengine_ft.cpp1904
-rw-r--r--src/gui/text/qfontengine_ft_p.h323
-rw-r--r--src/gui/text/qfontengine_mac.mm1701
-rw-r--r--src/gui/text/qfontengine_p.h617
-rw-r--r--src/gui/text/qfontengine_qpf.cpp1161
-rw-r--r--src/gui/text/qfontengine_qpf_p.h298
-rw-r--r--src/gui/text/qfontengine_qws.cpp625
-rw-r--r--src/gui/text/qfontengine_win.cpp1575
-rw-r--r--src/gui/text/qfontengine_win_p.h156
-rw-r--r--src/gui/text/qfontengine_x11.cpp1180
-rw-r--r--src/gui/text/qfontengine_x11_p.h177
-rw-r--r--src/gui/text/qfontengineglyphcache_p.h95
-rw-r--r--src/gui/text/qfontinfo.h87
-rw-r--r--src/gui/text/qfontmetrics.cpp1739
-rw-r--r--src/gui/text/qfontmetrics.h197
-rw-r--r--src/gui/text/qfontsubset.cpp1743
-rw-r--r--src/gui/text/qfontsubset_p.h99
-rw-r--r--src/gui/text/qfragmentmap.cpp46
-rw-r--r--src/gui/text/qfragmentmap_p.h872
-rw-r--r--src/gui/text/qpfutil.cpp66
-rw-r--r--src/gui/text/qsyntaxhighlighter.cpp618
-rw-r--r--src/gui/text/qsyntaxhighlighter.h111
-rw-r--r--src/gui/text/qtextcontrol.cpp2981
-rw-r--r--src/gui/text/qtextcontrol_p.h303
-rw-r--r--src/gui/text/qtextcontrol_p_p.h219
-rw-r--r--src/gui/text/qtextcursor.cpp2420
-rw-r--r--src/gui/text/qtextcursor.h232
-rw-r--r--src/gui/text/qtextcursor_p.h120
-rw-r--r--src/gui/text/qtextdocument.cpp2929
-rw-r--r--src/gui/text/qtextdocument.h298
-rw-r--r--src/gui/text/qtextdocument_p.cpp1600
-rw-r--r--src/gui/text/qtextdocument_p.h398
-rw-r--r--src/gui/text/qtextdocumentfragment.cpp1217
-rw-r--r--src/gui/text/qtextdocumentfragment.h92
-rw-r--r--src/gui/text/qtextdocumentfragment_p.h236
-rw-r--r--src/gui/text/qtextdocumentlayout.cpp3224
-rw-r--r--src/gui/text/qtextdocumentlayout_p.h119
-rw-r--r--src/gui/text/qtextdocumentwriter.cpp372
-rw-r--r--src/gui/text/qtextdocumentwriter.h93
-rw-r--r--src/gui/text/qtextengine.cpp2648
-rw-r--r--src/gui/text/qtextengine_mac.cpp656
-rw-r--r--src/gui/text/qtextengine_p.h608
-rw-r--r--src/gui/text/qtextformat.cpp3063
-rw-r--r--src/gui/text/qtextformat.h902
-rw-r--r--src/gui/text/qtextformat_p.h111
-rw-r--r--src/gui/text/qtexthtmlparser.cpp1881
-rw-r--r--src/gui/text/qtexthtmlparser_p.h342
-rw-r--r--src/gui/text/qtextimagehandler.cpp234
-rw-r--r--src/gui/text/qtextimagehandler_p.h80
-rw-r--r--src/gui/text/qtextlayout.cpp2453
-rw-r--r--src/gui/text/qtextlayout.h243
-rw-r--r--src/gui/text/qtextlist.cpp261
-rw-r--r--src/gui/text/qtextlist.h94
-rw-r--r--src/gui/text/qtextobject.cpp1711
-rw-r--r--src/gui/text/qtextobject.h328
-rw-r--r--src/gui/text/qtextobject_p.h103
-rw-r--r--src/gui/text/qtextodfwriter.cpp818
-rw-r--r--src/gui/text/qtextodfwriter_p.h115
-rw-r--r--src/gui/text/qtextoption.cpp414
-rw-r--r--src/gui/text/qtextoption.h161
-rw-r--r--src/gui/text/qtexttable.cpp1290
-rw-r--r--src/gui/text/qtexttable.h145
-rw-r--r--src/gui/text/qtexttable_p.h89
-rw-r--r--src/gui/text/qzip.cpp1208
-rw-r--r--src/gui/text/qzipreader_p.h119
-rw-r--r--src/gui/text/qzipwriter_p.h114
-rw-r--r--src/gui/text/text.pri177
-rw-r--r--src/gui/util/qcompleter.cpp1712
-rw-r--r--src/gui/util/qcompleter.h166
-rw-r--r--src/gui/util/qcompleter_p.h262
-rw-r--r--src/gui/util/qdesktopservices.cpp307
-rw-r--r--src/gui/util/qdesktopservices.h91
-rw-r--r--src/gui/util/qdesktopservices_mac.cpp182
-rw-r--r--src/gui/util/qdesktopservices_qws.cpp93
-rw-r--r--src/gui/util/qdesktopservices_win.cpp249
-rw-r--r--src/gui/util/qdesktopservices_x11.cpp234
-rw-r--r--src/gui/util/qsystemtrayicon.cpp675
-rw-r--r--src/gui/util/qsystemtrayicon.h132
-rw-r--r--src/gui/util/qsystemtrayicon_mac.mm547
-rw-r--r--src/gui/util/qsystemtrayicon_p.h181
-rw-r--r--src/gui/util/qsystemtrayicon_qws.cpp91
-rw-r--r--src/gui/util/qsystemtrayicon_win.cpp748
-rw-r--r--src/gui/util/qsystemtrayicon_x11.cpp394
-rw-r--r--src/gui/util/qundogroup.cpp500
-rw-r--r--src/gui/util/qundogroup.h110
-rw-r--r--src/gui/util/qundostack.cpp1129
-rw-r--r--src/gui/util/qundostack.h158
-rw-r--r--src/gui/util/qundostack_p.h111
-rw-r--r--src/gui/util/qundoview.cpp476
-rw-r--r--src/gui/util/qundoview.h102
-rw-r--r--src/gui/util/util.pri40
-rw-r--r--src/gui/widgets/qabstractbutton.cpp1468
-rw-r--r--src/gui/widgets/qabstractbutton.h183
-rw-r--r--src/gui/widgets/qabstractbutton_p.h109
-rw-r--r--src/gui/widgets/qabstractscrollarea.cpp1303
-rw-r--r--src/gui/widgets/qabstractscrollarea.h141
-rw-r--r--src/gui/widgets/qabstractscrollarea_p.h139
-rw-r--r--src/gui/widgets/qabstractslider.cpp914
-rw-r--r--src/gui/widgets/qabstractslider.h184
-rw-r--r--src/gui/widgets/qabstractslider_p.h113
-rw-r--r--src/gui/widgets/qabstractspinbox.cpp2049
-rw-r--r--src/gui/widgets/qabstractspinbox.h177
-rw-r--r--src/gui/widgets/qabstractspinbox_p.h171
-rw-r--r--src/gui/widgets/qbuttongroup.cpp260
-rw-r--r--src/gui/widgets/qbuttongroup.h112
-rw-r--r--src/gui/widgets/qcalendartextnavigator_p.h112
-rw-r--r--src/gui/widgets/qcalendarwidget.cpp3091
-rw-r--r--src/gui/widgets/qcalendarwidget.h204
-rw-r--r--src/gui/widgets/qcheckbox.cpp425
-rw-r--r--src/gui/widgets/qcheckbox.h113
-rw-r--r--src/gui/widgets/qcocoamenu_mac.mm187
-rw-r--r--src/gui/widgets/qcocoamenu_mac_p.h72
-rw-r--r--src/gui/widgets/qcocoatoolbardelegate_mac.mm153
-rw-r--r--src/gui/widgets/qcocoatoolbardelegate_mac_p.h71
-rw-r--r--src/gui/widgets/qcombobox.cpp3186
-rw-r--r--src/gui/widgets/qcombobox.h338
-rw-r--r--src/gui/widgets/qcombobox_p.h410
-rw-r--r--src/gui/widgets/qcommandlinkbutton.cpp384
-rw-r--r--src/gui/widgets/qcommandlinkbutton.h85
-rw-r--r--src/gui/widgets/qdatetimeedit.cpp2647
-rw-r--r--src/gui/widgets/qdatetimeedit.h232
-rw-r--r--src/gui/widgets/qdatetimeedit_p.h184
-rw-r--r--src/gui/widgets/qdial.cpp530
-rw-r--r--src/gui/widgets/qdial.h122
-rw-r--r--src/gui/widgets/qdialogbuttonbox.cpp1136
-rw-r--r--src/gui/widgets/qdialogbuttonbox.h168
-rw-r--r--src/gui/widgets/qdockarealayout.cpp3316
-rw-r--r--src/gui/widgets/qdockarealayout_p.h303
-rw-r--r--src/gui/widgets/qdockwidget.cpp1594
-rw-r--r--src/gui/widgets/qdockwidget.h146
-rw-r--r--src/gui/widgets/qdockwidget_p.h207
-rw-r--r--src/gui/widgets/qeffects.cpp632
-rw-r--r--src/gui/widgets/qeffects_p.h84
-rw-r--r--src/gui/widgets/qfocusframe.cpp267
-rw-r--r--src/gui/widgets/qfocusframe.h82
-rw-r--r--src/gui/widgets/qfontcombobox.cpp467
-rw-r--r--src/gui/widgets/qfontcombobox.h112
-rw-r--r--src/gui/widgets/qframe.cpp566
-rw-r--r--src/gui/widgets/qframe.h148
-rw-r--r--src/gui/widgets/qframe_p.h85
-rw-r--r--src/gui/widgets/qgroupbox.cpp792
-rw-r--r--src/gui/widgets/qgroupbox.h122
-rw-r--r--src/gui/widgets/qlabel.cpp1606
-rw-r--r--src/gui/widgets/qlabel.h175
-rw-r--r--src/gui/widgets/qlabel_p.h152
-rw-r--r--src/gui/widgets/qlcdnumber.cpp1282
-rw-r--r--src/gui/widgets/qlcdnumber.h140
-rw-r--r--src/gui/widgets/qlineedit.cpp3696
-rw-r--r--src/gui/widgets/qlineedit.h283
-rw-r--r--src/gui/widgets/qlineedit_p.h250
-rw-r--r--src/gui/widgets/qmaccocoaviewcontainer_mac.h73
-rw-r--r--src/gui/widgets/qmaccocoaviewcontainer_mac.mm190
-rw-r--r--src/gui/widgets/qmacnativewidget_mac.h74
-rw-r--r--src/gui/widgets/qmacnativewidget_mac.mm136
-rw-r--r--src/gui/widgets/qmainwindow.cpp1591
-rw-r--r--src/gui/widgets/qmainwindow.h217
-rw-r--r--src/gui/widgets/qmainwindowlayout.cpp1986
-rw-r--r--src/gui/widgets/qmainwindowlayout_mac.mm469
-rw-r--r--src/gui/widgets/qmainwindowlayout_p.h374
-rw-r--r--src/gui/widgets/qmdiarea.cpp2597
-rw-r--r--src/gui/widgets/qmdiarea.h169
-rw-r--r--src/gui/widgets/qmdiarea_p.h281
-rw-r--r--src/gui/widgets/qmdisubwindow.cpp3552
-rw-r--r--src/gui/widgets/qmdisubwindow.h159
-rw-r--r--src/gui/widgets/qmdisubwindow_p.h348
-rw-r--r--src/gui/widgets/qmenu.cpp3467
-rw-r--r--src/gui/widgets/qmenu.h428
-rw-r--r--src/gui/widgets/qmenu_mac.mm2038
-rw-r--r--src/gui/widgets/qmenu_p.h329
-rw-r--r--src/gui/widgets/qmenu_wince.cpp608
-rw-r--r--src/gui/widgets/qmenu_wince.rc231
-rw-r--r--src/gui/widgets/qmenu_wince_resource_p.h94
-rw-r--r--src/gui/widgets/qmenubar.cpp2405
-rw-r--r--src/gui/widgets/qmenubar.h363
-rw-r--r--src/gui/widgets/qmenubar_p.h230
-rw-r--r--src/gui/widgets/qmenudata.cpp96
-rw-r--r--src/gui/widgets/qmenudata.h78
-rw-r--r--src/gui/widgets/qplaintextedit.cpp2893
-rw-r--r--src/gui/widgets/qplaintextedit.h326
-rw-r--r--src/gui/widgets/qplaintextedit_p.h182
-rw-r--r--src/gui/widgets/qprintpreviewwidget.cpp829
-rw-r--r--src/gui/widgets/qprintpreviewwidget.h124
-rw-r--r--src/gui/widgets/qprogressbar.cpp592
-rw-r--r--src/gui/widgets/qprogressbar.h130
-rw-r--r--src/gui/widgets/qpushbutton.cpp732
-rw-r--r--src/gui/widgets/qpushbutton.h124
-rw-r--r--src/gui/widgets/qpushbutton_p.h82
-rw-r--r--src/gui/widgets/qradiobutton.cpp288
-rw-r--r--src/gui/widgets/qradiobutton.h88
-rw-r--r--src/gui/widgets/qrubberband.cpp339
-rw-r--r--src/gui/widgets/qrubberband.h104
-rw-r--r--src/gui/widgets/qscrollarea.cpp522
-rw-r--r--src/gui/widgets/qscrollarea.h101
-rw-r--r--src/gui/widgets/qscrollarea_p.h81
-rw-r--r--src/gui/widgets/qscrollbar.cpp740
-rw-r--r--src/gui/widgets/qscrollbar.h104
-rw-r--r--src/gui/widgets/qsizegrip.cpp566
-rw-r--r--src/gui/widgets/qsizegrip.h95
-rw-r--r--src/gui/widgets/qslider.cpp676
-rw-r--r--src/gui/widgets/qslider.h134
-rw-r--r--src/gui/widgets/qspinbox.cpp1536
-rw-r--r--src/gui/widgets/qspinbox.h188
-rw-r--r--src/gui/widgets/qsplashscreen.cpp350
-rw-r--r--src/gui/widgets/qsplashscreen.h99
-rw-r--r--src/gui/widgets/qsplitter.cpp1831
-rw-r--r--src/gui/widgets/qsplitter.h191
-rw-r--r--src/gui/widgets/qsplitter_p.h148
-rw-r--r--src/gui/widgets/qstackedwidget.cpp294
-rw-r--r--src/gui/widgets/qstackedwidget.h100
-rw-r--r--src/gui/widgets/qstatusbar.cpp847
-rw-r--r--src/gui/widgets/qstatusbar.h116
-rw-r--r--src/gui/widgets/qtabbar.cpp2301
-rw-r--r--src/gui/widgets/qtabbar.h228
-rw-r--r--src/gui/widgets/qtabbar_p.h265
-rw-r--r--src/gui/widgets/qtabwidget.cpp1450
-rw-r--r--src/gui/widgets/qtabwidget.h252
-rw-r--r--src/gui/widgets/qtextbrowser.cpp1275
-rw-r--r--src/gui/widgets/qtextbrowser.h140
-rw-r--r--src/gui/widgets/qtextedit.cpp2783
-rw-r--r--src/gui/widgets/qtextedit.h430
-rw-r--r--src/gui/widgets/qtextedit_p.h141
-rw-r--r--src/gui/widgets/qtoolbar.cpp1291
-rw-r--r--src/gui/widgets/qtoolbar.h187
-rw-r--r--src/gui/widgets/qtoolbar_p.h135
-rw-r--r--src/gui/widgets/qtoolbararealayout.cpp1370
-rw-r--r--src/gui/widgets/qtoolbararealayout_p.h199
-rw-r--r--src/gui/widgets/qtoolbarextension.cpp90
-rw-r--r--src/gui/widgets/qtoolbarextension_p.h80
-rw-r--r--src/gui/widgets/qtoolbarlayout.cpp752
-rw-r--r--src/gui/widgets/qtoolbarlayout_p.h136
-rw-r--r--src/gui/widgets/qtoolbarseparator.cpp91
-rw-r--r--src/gui/widgets/qtoolbarseparator_p.h88
-rw-r--r--src/gui/widgets/qtoolbox.cpp822
-rw-r--r--src/gui/widgets/qtoolbox.h148
-rw-r--r--src/gui/widgets/qtoolbutton.cpp1251
-rw-r--r--src/gui/widgets/qtoolbutton.h199
-rw-r--r--src/gui/widgets/qvalidator.cpp909
-rw-r--r--src/gui/widgets/qvalidator.h215
-rw-r--r--src/gui/widgets/qwidgetanimator.cpp198
-rw-r--r--src/gui/widgets/qwidgetanimator_p.h102
-rw-r--r--src/gui/widgets/qwidgetresizehandler.cpp547
-rw-r--r--src/gui/widgets/qwidgetresizehandler_p.h141
-rw-r--r--src/gui/widgets/qworkspace.cpp3382
-rw-r--r--src/gui/widgets/qworkspace.h137
-rw-r--r--src/gui/widgets/widgets.pri162
-rw-r--r--src/network/access/access.pri53
-rw-r--r--src/network/access/qabstractnetworkcache.cpp532
-rw-r--r--src/network/access/qabstractnetworkcache.h141
-rw-r--r--src/network/access/qabstractnetworkcache_p.h66
-rw-r--r--src/network/access/qftp.cpp2407
-rw-r--r--src/network/access/qftp.h180
-rw-r--r--src/network/access/qhttp.cpp3120
-rw-r--r--src/network/access/qhttp.h311
-rw-r--r--src/network/access/qhttpnetworkconnection.cpp2464
-rw-r--r--src/network/access/qhttpnetworkconnection_p.h290
-rw-r--r--src/network/access/qnetworkaccessbackend.cpp318
-rw-r--r--src/network/access/qnetworkaccessbackend_p.h202
-rw-r--r--src/network/access/qnetworkaccesscache.cpp379
-rw-r--r--src/network/access/qnetworkaccesscache_p.h127
-rw-r--r--src/network/access/qnetworkaccesscachebackend.cpp143
-rw-r--r--src/network/access/qnetworkaccesscachebackend_p.h86
-rw-r--r--src/network/access/qnetworkaccessdatabackend.cpp150
-rw-r--r--src/network/access/qnetworkaccessdatabackend_p.h82
-rw-r--r--src/network/access/qnetworkaccessdebugpipebackend.cpp346
-rw-r--r--src/network/access/qnetworkaccessdebugpipebackend_p.h111
-rw-r--r--src/network/access/qnetworkaccessfilebackend.cpp270
-rw-r--r--src/network/access/qnetworkaccessfilebackend_p.h95
-rw-r--r--src/network/access/qnetworkaccessftpbackend.cpp441
-rw-r--r--src/network/access/qnetworkaccessftpbackend_p.h126
-rw-r--r--src/network/access/qnetworkaccesshttpbackend.cpp1052
-rw-r--r--src/network/access/qnetworkaccesshttpbackend_p.h140
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp961
-rw-r--r--src/network/access/qnetworkaccessmanager.h129
-rw-r--r--src/network/access/qnetworkaccessmanager_p.h121
-rw-r--r--src/network/access/qnetworkcookie.cpp932
-rw-r--r--src/network/access/qnetworkcookie.h141
-rw-r--r--src/network/access/qnetworkcookie_p.h99
-rw-r--r--src/network/access/qnetworkdiskcache.cpp666
-rw-r--r--src/network/access/qnetworkdiskcache.h94
-rw-r--r--src/network/access/qnetworkdiskcache_p.h122
-rw-r--r--src/network/access/qnetworkreply.cpp691
-rw-r--r--src/network/access/qnetworkreply.h171
-rw-r--r--src/network/access/qnetworkreply_p.h83
-rw-r--r--src/network/access/qnetworkreplyimpl.cpp598
-rw-r--r--src/network/access/qnetworkreplyimpl_p.h181
-rw-r--r--src/network/access/qnetworkrequest.cpp803
-rw-r--r--src/network/access/qnetworkrequest.h131
-rw-r--r--src/network/access/qnetworkrequest_p.h96
-rw-r--r--src/network/kernel/kernel.pri30
-rw-r--r--src/network/kernel/qauthenticator.cpp1026
-rw-r--r--src/network/kernel/qauthenticator.h87
-rw-r--r--src/network/kernel/qauthenticator_p.h111
-rw-r--r--src/network/kernel/qhostaddress.cpp1166
-rw-r--r--src/network/kernel/qhostaddress.h154
-rw-r--r--src/network/kernel/qhostaddress_p.h76
-rw-r--r--src/network/kernel/qhostinfo.cpp479
-rw-r--r--src/network/kernel/qhostinfo.h101
-rw-r--r--src/network/kernel/qhostinfo_p.h196
-rw-r--r--src/network/kernel/qhostinfo_unix.cpp379
-rw-r--r--src/network/kernel/qhostinfo_win.cpp295
-rw-r--r--src/network/kernel/qnetworkinterface.cpp615
-rw-r--r--src/network/kernel/qnetworkinterface.h135
-rw-r--r--src/network/kernel/qnetworkinterface_p.h123
-rw-r--r--src/network/kernel/qnetworkinterface_unix.cpp448
-rw-r--r--src/network/kernel/qnetworkinterface_win.cpp327
-rw-r--r--src/network/kernel/qnetworkinterface_win_p.h266
-rw-r--r--src/network/kernel/qnetworkproxy.cpp1255
-rw-r--r--src/network/kernel/qnetworkproxy.h185
-rw-r--r--src/network/kernel/qnetworkproxy_generic.cpp59
-rw-r--r--src/network/kernel/qnetworkproxy_mac.cpp240
-rw-r--r--src/network/kernel/qnetworkproxy_win.cpp415
-rw-r--r--src/network/kernel/qurlinfo.cpp731
-rw-r--r--src/network/kernel/qurlinfo.h131
-rw-r--r--src/network/network.pro17
-rw-r--r--src/network/network.qrc5
-rw-r--r--src/network/socket/qabstractsocket.cpp2631
-rw-r--r--src/network/socket/qabstractsocket.h248
-rw-r--r--src/network/socket/qabstractsocket_p.h163
-rw-r--r--src/network/socket/qabstractsocketengine.cpp254
-rw-r--r--src/network/socket/qabstractsocketengine_p.h217
-rw-r--r--src/network/socket/qhttpsocketengine.cpp773
-rw-r--r--src/network/socket/qhttpsocketengine_p.h188
-rw-r--r--src/network/socket/qlocalserver.cpp395
-rw-r--r--src/network/socket/qlocalserver.h107
-rw-r--r--src/network/socket/qlocalserver_p.h165
-rw-r--r--src/network/socket/qlocalserver_tcp.cpp129
-rw-r--r--src/network/socket/qlocalserver_unix.cpp251
-rw-r--r--src/network/socket/qlocalserver_win.cpp252
-rw-r--r--src/network/socket/qlocalsocket.cpp504
-rw-r--r--src/network/socket/qlocalsocket.h157
-rw-r--r--src/network/socket/qlocalsocket_p.h212
-rw-r--r--src/network/socket/qlocalsocket_tcp.cpp437
-rw-r--r--src/network/socket/qlocalsocket_unix.cpp566
-rw-r--r--src/network/socket/qlocalsocket_win.cpp537
-rw-r--r--src/network/socket/qnativesocketengine.cpp1140
-rw-r--r--src/network/socket/qnativesocketengine_p.h250
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp949
-rw-r--r--src/network/socket/qnativesocketengine_win.cpp1211
-rw-r--r--src/network/socket/qsocks5socketengine.cpp1850
-rw-r--r--src/network/socket/qsocks5socketengine_p.h288
-rw-r--r--src/network/socket/qtcpserver.cpp643
-rw-r--r--src/network/socket/qtcpserver.h109
-rw-r--r--src/network/socket/qtcpsocket.cpp114
-rw-r--r--src/network/socket/qtcpsocket.h74
-rw-r--r--src/network/socket/qtcpsocket_p.h68
-rw-r--r--src/network/socket/qudpsocket.cpp424
-rw-r--r--src/network/socket/qudpsocket.h99
-rw-r--r--src/network/socket/socket.pri46
-rw-r--r--src/network/ssl/qssl.cpp117
-rw-r--r--src/network/ssl/qssl.h88
-rw-r--r--src/network/ssl/qsslcertificate.cpp795
-rw-r--r--src/network/ssl/qsslcertificate.h138
-rw-r--r--src/network/ssl/qsslcertificate_p.h108
-rw-r--r--src/network/ssl/qsslcipher.cpp239
-rw-r--r--src/network/ssl/qsslcipher.h97
-rw-r--r--src/network/ssl/qsslcipher_p.h78
-rw-r--r--src/network/ssl/qsslconfiguration.cpp545
-rw-r--r--src/network/ssl/qsslconfiguration.h137
-rw-r--r--src/network/ssl/qsslconfiguration_p.h115
-rw-r--r--src/network/ssl/qsslerror.cpp293
-rw-r--r--src/network/ssl/qsslerror.h117
-rw-r--r--src/network/ssl/qsslkey.cpp468
-rw-r--r--src/network/ssl/qsslkey.h110
-rw-r--r--src/network/ssl/qsslkey_p.h98
-rw-r--r--src/network/ssl/qsslsocket.cpp2045
-rw-r--r--src/network/ssl/qsslsocket.h217
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp929
-rw-r--r--src/network/ssl/qsslsocket_openssl_p.h116
-rw-r--r--src/network/ssl/qsslsocket_openssl_symbols.cpp650
-rw-r--r--src/network/ssl/qsslsocket_openssl_symbols_p.h394
-rw-r--r--src/network/ssl/qsslsocket_p.h130
-rw-r--r--src/network/ssl/qt-ca-bundle.crt1984
-rw-r--r--src/network/ssl/ssl.pri33
-rw-r--r--src/opengl/gl2paintengineex/glgc_shader_source.h289
-rw-r--r--src/opengl/gl2paintengineex/qgl2pexvertexarray.cpp156
-rw-r--r--src/opengl/gl2paintengineex/qgl2pexvertexarray_p.h121
-rw-r--r--src/opengl/gl2paintengineex/qglgradientcache.cpp185
-rw-r--r--src/opengl/gl2paintengineex/qglgradientcache_p.h108
-rw-r--r--src/opengl/gl2paintengineex/qglpexshadermanager.cpp450
-rw-r--r--src/opengl/gl2paintengineex/qglpexshadermanager_p.h156
-rw-r--r--src/opengl/gl2paintengineex/qglshader.cpp605
-rw-r--r--src/opengl/gl2paintengineex/qglshader_p.h260
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp1278
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h125
-rw-r--r--src/opengl/opengl.pro135
-rw-r--r--src/opengl/qegl.cpp787
-rw-r--r--src/opengl/qegl_p.h188
-rw-r--r--src/opengl/qegl_qws.cpp125
-rw-r--r--src/opengl/qegl_wince.cpp105
-rw-r--r--src/opengl/qegl_x11egl.cpp130
-rw-r--r--src/opengl/qgl.cpp4204
-rw-r--r--src/opengl/qgl.h566
-rw-r--r--src/opengl/qgl_cl_p.h141
-rw-r--r--src/opengl/qgl_egl.cpp131
-rw-r--r--src/opengl/qgl_egl_p.h68
-rw-r--r--src/opengl/qgl_mac.mm982
-rw-r--r--src/opengl/qgl_p.h394
-rw-r--r--src/opengl/qgl_qws.cpp364
-rw-r--r--src/opengl/qgl_win.cpp1499
-rw-r--r--src/opengl/qgl_wince.cpp739
-rw-r--r--src/opengl/qgl_x11.cpp1425
-rw-r--r--src/opengl/qgl_x11egl.cpp378
-rw-r--r--src/opengl/qglcolormap.cpp287
-rw-r--r--src/opengl/qglcolormap.h105
-rw-r--r--src/opengl/qglextensions.cpp185
-rw-r--r--src/opengl/qglextensions_p.h516
-rw-r--r--src/opengl/qglframebufferobject.cpp719
-rw-r--r--src/opengl/qglframebufferobject.h126
-rw-r--r--src/opengl/qglpaintdevice_qws.cpp98
-rw-r--r--src/opengl/qglpaintdevice_qws_p.h85
-rw-r--r--src/opengl/qglpixelbuffer.cpp582
-rw-r--r--src/opengl/qglpixelbuffer.h119
-rw-r--r--src/opengl/qglpixelbuffer_egl.cpp211
-rw-r--r--src/opengl/qglpixelbuffer_mac.mm338
-rw-r--r--src/opengl/qglpixelbuffer_p.h193
-rw-r--r--src/opengl/qglpixelbuffer_win.cpp390
-rw-r--r--src/opengl/qglpixelbuffer_x11.cpp301
-rw-r--r--src/opengl/qglpixmapfilter.cpp409
-rw-r--r--src/opengl/qglpixmapfilter_p.h123
-rw-r--r--src/opengl/qglscreen_qws.cpp242
-rw-r--r--src/opengl/qglscreen_qws.h127
-rw-r--r--src/opengl/qglwindowsurface_qws.cpp134
-rw-r--r--src/opengl/qglwindowsurface_qws_p.h90
-rw-r--r--src/opengl/qgraphicssystem_gl.cpp72
-rw-r--r--src/opengl/qgraphicssystem_gl_p.h74
-rw-r--r--src/opengl/qpaintengine_opengl.cpp5787
-rw-r--r--src/opengl/qpaintengine_opengl_p.h155
-rw-r--r--src/opengl/qpixmapdata_gl.cpp313
-rw-r--r--src/opengl/qpixmapdata_gl_p.h107
-rw-r--r--src/opengl/qwindowsurface_gl.cpp661
-rw-r--r--src/opengl/qwindowsurface_gl_p.h102
-rw-r--r--src/opengl/util/README-GLSL18
-rw-r--r--src/opengl/util/brush_painter.glsl7
-rw-r--r--src/opengl/util/brushes.conf6
-rw-r--r--src/opengl/util/composition_mode_colorburn.glsl13
-rw-r--r--src/opengl/util/composition_mode_colordodge.glsl15
-rw-r--r--src/opengl/util/composition_mode_darken.glsl9
-rw-r--r--src/opengl/util/composition_mode_difference.glsl9
-rw-r--r--src/opengl/util/composition_mode_exclusion.glsl9
-rw-r--r--src/opengl/util/composition_mode_hardlight.glsl14
-rw-r--r--src/opengl/util/composition_mode_lighten.glsl9
-rw-r--r--src/opengl/util/composition_mode_multiply.glsl9
-rw-r--r--src/opengl/util/composition_mode_overlay.glsl13
-rw-r--r--src/opengl/util/composition_mode_screen.glsl6
-rw-r--r--src/opengl/util/composition_mode_softlight.glsl18
-rw-r--r--src/opengl/util/composition_modes.conf12
-rw-r--r--src/opengl/util/conical_brush.glsl27
-rw-r--r--src/opengl/util/ellipse.glsl6
-rw-r--r--src/opengl/util/ellipse_aa.glsl6
-rw-r--r--src/opengl/util/ellipse_aa_copy.glsl11
-rw-r--r--src/opengl/util/ellipse_aa_radial.glsl24
-rw-r--r--src/opengl/util/ellipse_functions.glsl63
-rw-r--r--src/opengl/util/fast_painter.glsl19
-rw-r--r--src/opengl/util/fragmentprograms_p.h7372
-rw-r--r--src/opengl/util/generator.cpp435
-rw-r--r--src/opengl/util/generator.pro11
-rwxr-xr-xsrc/opengl/util/glsl_to_include.sh33
-rw-r--r--src/opengl/util/linear_brush.glsl22
-rw-r--r--src/opengl/util/masks.conf3
-rw-r--r--src/opengl/util/painter.glsl21
-rw-r--r--src/opengl/util/painter_nomask.glsl9
-rw-r--r--src/opengl/util/pattern_brush.glsl25
-rw-r--r--src/opengl/util/radial_brush.glsl28
-rw-r--r--src/opengl/util/simple_porter_duff.glsl16
-rw-r--r--src/opengl/util/solid_brush.glsl4
-rw-r--r--src/opengl/util/texture_brush.glsl23
-rw-r--r--src/opengl/util/trap_exact_aa.glsl58
-rw-r--r--src/phonon/phonon.pro115
-rw-r--r--src/plugins/accessible/accessible.pro6
-rw-r--r--src/plugins/accessible/compat/compat.pro20
-rw-r--r--src/plugins/accessible/compat/main.cpp130
-rw-r--r--src/plugins/accessible/compat/q3complexwidgets.cpp340
-rw-r--r--src/plugins/accessible/compat/q3complexwidgets.h88
-rw-r--r--src/plugins/accessible/compat/q3simplewidgets.cpp133
-rw-r--r--src/plugins/accessible/compat/q3simplewidgets.h63
-rw-r--r--src/plugins/accessible/compat/qaccessiblecompat.cpp843
-rw-r--r--src/plugins/accessible/compat/qaccessiblecompat.h168
-rw-r--r--src/plugins/accessible/qaccessiblebase.pri2
-rw-r--r--src/plugins/accessible/widgets/complexwidgets.cpp2163
-rw-r--r--src/plugins/accessible/widgets/complexwidgets.h293
-rw-r--r--src/plugins/accessible/widgets/main.cpp339
-rw-r--r--src/plugins/accessible/widgets/qaccessiblemenu.cpp678
-rw-r--r--src/plugins/accessible/widgets/qaccessiblemenu.h140
-rw-r--r--src/plugins/accessible/widgets/qaccessiblewidgets.cpp1667
-rw-r--r--src/plugins/accessible/widgets/qaccessiblewidgets.h318
-rw-r--r--src/plugins/accessible/widgets/rangecontrols.cpp991
-rw-r--r--src/plugins/accessible/widgets/rangecontrols.h233
-rw-r--r--src/plugins/accessible/widgets/simplewidgets.cpp762
-rw-r--r--src/plugins/accessible/widgets/simplewidgets.h156
-rw-r--r--src/plugins/accessible/widgets/widgets.pro20
-rw-r--r--src/plugins/codecs/cn/cn.pro14
-rw-r--r--src/plugins/codecs/cn/main.cpp145
-rw-r--r--src/plugins/codecs/cn/qgb18030codec.cpp9233
-rw-r--r--src/plugins/codecs/cn/qgb18030codec.h159
-rw-r--r--src/plugins/codecs/codecs.pro4
-rw-r--r--src/plugins/codecs/jp/jp.pro25
-rw-r--r--src/plugins/codecs/jp/main.cpp149
-rw-r--r--src/plugins/codecs/jp/qeucjpcodec.cpp262
-rw-r--r--src/plugins/codecs/jp/qeucjpcodec.h106
-rw-r--r--src/plugins/codecs/jp/qfontjpcodec.cpp145
-rw-r--r--src/plugins/codecs/jp/qfontjpcodec.h93
-rw-r--r--src/plugins/codecs/jp/qjiscodec.cpp367
-rw-r--r--src/plugins/codecs/jp/qjiscodec.h106
-rw-r--r--src/plugins/codecs/jp/qjpunicode.cpp10700
-rw-r--r--src/plugins/codecs/jp/qjpunicode.h174
-rw-r--r--src/plugins/codecs/jp/qsjiscodec.cpp227
-rw-r--r--src/plugins/codecs/jp/qsjiscodec.h106
-rw-r--r--src/plugins/codecs/kr/cp949codetbl.h632
-rw-r--r--src/plugins/codecs/kr/kr.pro18
-rw-r--r--src/plugins/codecs/kr/main.cpp131
-rw-r--r--src/plugins/codecs/kr/qeuckrcodec.cpp3583
-rw-r--r--src/plugins/codecs/kr/qeuckrcodec.h129
-rw-r--r--src/plugins/codecs/tw/main.cpp138
-rw-r--r--src/plugins/codecs/tw/qbig5codec.cpp12788
-rw-r--r--src/plugins/codecs/tw/qbig5codec.h124
-rw-r--r--src/plugins/codecs/tw/tw.pro14
-rw-r--r--src/plugins/decorations/decorations.pro4
-rw-r--r--src/plugins/decorations/default/default.pro10
-rw-r--r--src/plugins/decorations/default/main.cpp76
-rw-r--r--src/plugins/decorations/styled/main.cpp77
-rw-r--r--src/plugins/decorations/styled/styled.pro13
-rw-r--r--src/plugins/decorations/windows/main.cpp76
-rw-r--r--src/plugins/decorations/windows/windows.pro10
-rw-r--r--src/plugins/gfxdrivers/ahi/ahi.pro14
-rw-r--r--src/plugins/gfxdrivers/ahi/qscreenahi_qws.cpp598
-rw-r--r--src/plugins/gfxdrivers/ahi/qscreenahi_qws.h84
-rw-r--r--src/plugins/gfxdrivers/ahi/qscreenahiplugin.cpp74
-rw-r--r--src/plugins/gfxdrivers/directfb/directfb.pro40
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.cpp321
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.h69
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbmouse.cpp272
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbmouse.h73
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp201
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.h84
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp1274
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h114
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp363
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h83
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp1067
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbscreen.h136
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbscreenplugin.cpp75
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbsurface.cpp393
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbsurface.h102
-rw-r--r--src/plugins/gfxdrivers/gfxdrivers.pro10
-rw-r--r--src/plugins/gfxdrivers/hybrid/hybrid.pro16
-rw-r--r--src/plugins/gfxdrivers/hybrid/hybridplugin.cpp75
-rw-r--r--src/plugins/gfxdrivers/hybrid/hybridscreen.cpp382
-rw-r--r--src/plugins/gfxdrivers/hybrid/hybridscreen.h97
-rw-r--r--src/plugins/gfxdrivers/hybrid/hybridsurface.cpp300
-rw-r--r--src/plugins/gfxdrivers/hybrid/hybridsurface.h90
-rw-r--r--src/plugins/gfxdrivers/linuxfb/linuxfb.pro14
-rw-r--r--src/plugins/gfxdrivers/linuxfb/main.cpp79
-rw-r--r--src/plugins/gfxdrivers/powervr/QWSWSEGL/QWSWSEGL.pro24
-rw-r--r--src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.c856
-rw-r--r--src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.h181
-rw-r--r--src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable_p.h129
-rw-r--r--src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c384
-rw-r--r--src/plugins/gfxdrivers/powervr/README56
-rw-r--r--src/plugins/gfxdrivers/powervr/powervr.pro3
-rw-r--r--src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp390
-rw-r--r--src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.h113
-rw-r--r--src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.pro24
-rw-r--r--src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreenplugin.cpp74
-rw-r--r--src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.cpp219
-rw-r--r--src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.h83
-rw-r--r--src/plugins/gfxdrivers/qvfb/main.cpp80
-rw-r--r--src/plugins/gfxdrivers/qvfb/qvfb.pro19
-rw-r--r--src/plugins/gfxdrivers/transformed/main.cpp80
-rw-r--r--src/plugins/gfxdrivers/transformed/transformed.pro13
-rw-r--r--src/plugins/gfxdrivers/vnc/main.cpp80
-rw-r--r--src/plugins/gfxdrivers/vnc/qscreenvnc_p.h522
-rw-r--r--src/plugins/gfxdrivers/vnc/qscreenvnc_qws.cpp2297
-rw-r--r--src/plugins/gfxdrivers/vnc/qscreenvnc_qws.h88
-rw-r--r--src/plugins/gfxdrivers/vnc/vnc.pro16
-rw-r--r--src/plugins/graphicssystems/graphicssystems.pro2
-rw-r--r--src/plugins/graphicssystems/opengl/main.cpp69
-rw-r--r--src/plugins/graphicssystems/opengl/opengl.pro11
-rw-r--r--src/plugins/iconengines/iconengines.pro3
-rw-r--r--src/plugins/iconengines/svgiconengine/main.cpp84
-rw-r--r--src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp363
-rw-r--r--src/plugins/iconengines/svgiconengine/qsvgiconengine.h84
-rw-r--r--src/plugins/iconengines/svgiconengine/svgiconengine.pro11
-rw-r--r--src/plugins/imageformats/gif/gif.pro10
-rw-r--r--src/plugins/imageformats/gif/main.cpp98
-rw-r--r--src/plugins/imageformats/gif/qgifhandler.cpp892
-rw-r--r--src/plugins/imageformats/gif/qgifhandler.h95
-rw-r--r--src/plugins/imageformats/ico/ico.pro12
-rw-r--r--src/plugins/imageformats/ico/main.cpp96
-rw-r--r--src/plugins/imageformats/ico/qicohandler.cpp862
-rw-r--r--src/plugins/imageformats/ico/qicohandler.h72
-rw-r--r--src/plugins/imageformats/imageformats.pro8
-rw-r--r--src/plugins/imageformats/jpeg/jpeg.pro73
-rw-r--r--src/plugins/imageformats/jpeg/main.cpp97
-rw-r--r--src/plugins/imageformats/jpeg/qjpeghandler.cpp1264
-rw-r--r--src/plugins/imageformats/jpeg/qjpeghandler.h75
-rw-r--r--src/plugins/imageformats/mng/main.cpp98
-rw-r--r--src/plugins/imageformats/mng/mng.pro49
-rw-r--r--src/plugins/imageformats/mng/qmnghandler.cpp500
-rw-r--r--src/plugins/imageformats/mng/qmnghandler.h82
-rw-r--r--src/plugins/imageformats/svg/main.cpp102
-rw-r--r--src/plugins/imageformats/svg/qsvgiohandler.cpp191
-rw-r--r--src/plugins/imageformats/svg/qsvgiohandler.h77
-rw-r--r--src/plugins/imageformats/svg/svg.pro11
-rw-r--r--src/plugins/imageformats/tiff/main.cpp97
-rw-r--r--src/plugins/imageformats/tiff/qtiffhandler.cpp328
-rw-r--r--src/plugins/imageformats/tiff/qtiffhandler.h78
-rw-r--r--src/plugins/imageformats/tiff/tiff.pro70
-rw-r--r--src/plugins/inputmethods/imsw-multi/imsw-multi.pro13
-rw-r--r--src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp212
-rw-r--r--src/plugins/inputmethods/imsw-multi/qmultiinputcontext.h117
-rw-r--r--src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp111
-rw-r--r--src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.h85
-rw-r--r--src/plugins/inputmethods/inputmethods.pro3
-rw-r--r--src/plugins/kbddrivers/kbddrivers.pro6
-rw-r--r--src/plugins/kbddrivers/linuxis/README1
-rw-r--r--src/plugins/kbddrivers/linuxis/linuxis.pro11
-rw-r--r--src/plugins/kbddrivers/linuxis/linuxiskbddriverplugin.cpp87
-rw-r--r--src/plugins/kbddrivers/linuxis/linuxiskbddriverplugin.h58
-rw-r--r--src/plugins/kbddrivers/linuxis/linuxiskbdhandler.cpp171
-rw-r--r--src/plugins/kbddrivers/linuxis/linuxiskbdhandler.h80
-rw-r--r--src/plugins/kbddrivers/sl5000/main.cpp77
-rw-r--r--src/plugins/kbddrivers/sl5000/sl5000.pro16
-rw-r--r--src/plugins/kbddrivers/usb/main.cpp77
-rw-r--r--src/plugins/kbddrivers/usb/usb.pro14
-rw-r--r--src/plugins/kbddrivers/vr41xx/main.cpp77
-rw-r--r--src/plugins/kbddrivers/vr41xx/vr41xx.pro14
-rw-r--r--src/plugins/kbddrivers/yopy/main.cpp77
-rw-r--r--src/plugins/kbddrivers/yopy/yopy.pro14
-rw-r--r--src/plugins/mousedrivers/bus/bus.pro14
-rw-r--r--src/plugins/mousedrivers/bus/main.cpp76
-rw-r--r--src/plugins/mousedrivers/linuxis/linuxis.pro10
-rw-r--r--src/plugins/mousedrivers/linuxis/linuxismousedriverplugin.cpp83
-rw-r--r--src/plugins/mousedrivers/linuxis/linuxismousedriverplugin.h58
-rw-r--r--src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp180
-rw-r--r--src/plugins/mousedrivers/linuxis/linuxismousehandler.h72
-rw-r--r--src/plugins/mousedrivers/linuxtp/linuxtp.pro14
-rw-r--r--src/plugins/mousedrivers/linuxtp/main.cpp76
-rw-r--r--src/plugins/mousedrivers/mousedrivers.pro8
-rw-r--r--src/plugins/mousedrivers/pc/main.cpp81
-rw-r--r--src/plugins/mousedrivers/pc/pc.pro14
-rw-r--r--src/plugins/mousedrivers/tslib/main.cpp77
-rw-r--r--src/plugins/mousedrivers/tslib/tslib.pro16
-rw-r--r--src/plugins/mousedrivers/vr41xx/main.cpp76
-rw-r--r--src/plugins/mousedrivers/vr41xx/vr41xx.pro14
-rw-r--r--src/plugins/mousedrivers/yopy/main.cpp76
-rw-r--r--src/plugins/mousedrivers/yopy/yopy.pro14
-rw-r--r--src/plugins/phonon/ds9/ds9.pro60
-rw-r--r--src/plugins/phonon/gstreamer/gstreamer.pro67
-rw-r--r--src/plugins/phonon/phonon.pro9
-rw-r--r--src/plugins/phonon/qt7/qt7.pro76
-rw-r--r--src/plugins/phonon/waveout/waveout.pro23
-rw-r--r--src/plugins/plugins.pro12
-rw-r--r--src/plugins/qpluginbase.pri15
-rw-r--r--src/plugins/script/qtdbus/main.cpp396
-rw-r--r--src/plugins/script/qtdbus/main.h176
-rw-r--r--src/plugins/script/qtdbus/qtdbus.pro11
-rw-r--r--src/plugins/script/script.pro2
-rw-r--r--src/plugins/sqldrivers/README5
-rw-r--r--src/plugins/sqldrivers/db2/README6
-rw-r--r--src/plugins/sqldrivers/db2/db2.pro10
-rw-r--r--src/plugins/sqldrivers/db2/main.cpp81
-rw-r--r--src/plugins/sqldrivers/ibase/ibase.pro14
-rw-r--r--src/plugins/sqldrivers/ibase/main.cpp81
-rw-r--r--src/plugins/sqldrivers/mysql/README6
-rw-r--r--src/plugins/sqldrivers/mysql/main.cpp82
-rw-r--r--src/plugins/sqldrivers/mysql/mysql.pro23
-rw-r--r--src/plugins/sqldrivers/oci/README6
-rw-r--r--src/plugins/sqldrivers/oci/main.cpp82
-rw-r--r--src/plugins/sqldrivers/oci/oci.pro13
-rw-r--r--src/plugins/sqldrivers/odbc/README6
-rw-r--r--src/plugins/sqldrivers/odbc/main.cpp82
-rw-r--r--src/plugins/sqldrivers/odbc/odbc.pro24
-rw-r--r--src/plugins/sqldrivers/psql/README6
-rw-r--r--src/plugins/sqldrivers/psql/main.cpp82
-rw-r--r--src/plugins/sqldrivers/psql/psql.pro21
-rw-r--r--src/plugins/sqldrivers/qsqldriverbase.pri8
-rw-r--r--src/plugins/sqldrivers/sqldrivers.pro11
-rw-r--r--src/plugins/sqldrivers/sqlite/README6
-rw-r--r--src/plugins/sqldrivers/sqlite/smain.cpp81
-rw-r--r--src/plugins/sqldrivers/sqlite/sqlite.pro17
-rw-r--r--src/plugins/sqldrivers/sqlite2/README6
-rw-r--r--src/plugins/sqldrivers/sqlite2/smain.cpp81
-rw-r--r--src/plugins/sqldrivers/sqlite2/sqlite2.pro9
-rw-r--r--src/plugins/sqldrivers/tds/README6
-rw-r--r--src/plugins/sqldrivers/tds/main.cpp89
-rw-r--r--src/plugins/sqldrivers/tds/tds.pro15
-rw-r--r--src/qbase.pri154
-rw-r--r--src/qt3support/canvas/canvas.pri2
-rw-r--r--src/qt3support/canvas/q3canvas.cpp5165
-rw-r--r--src/qt3support/canvas/q3canvas.h787
-rw-r--r--src/qt3support/dialogs/dialogs.pri16
-rw-r--r--src/qt3support/dialogs/q3filedialog.cpp6203
-rw-r--r--src/qt3support/dialogs/q3filedialog.h346
-rw-r--r--src/qt3support/dialogs/q3filedialog_mac.cpp569
-rw-r--r--src/qt3support/dialogs/q3filedialog_win.cpp749
-rw-r--r--src/qt3support/dialogs/q3progressdialog.cpp850
-rw-r--r--src/qt3support/dialogs/q3progressdialog.h149
-rw-r--r--src/qt3support/dialogs/q3tabdialog.cpp1076
-rw-r--r--src/qt3support/dialogs/q3tabdialog.h142
-rw-r--r--src/qt3support/dialogs/q3wizard.cpp906
-rw-r--r--src/qt3support/dialogs/q3wizard.h141
-rw-r--r--src/qt3support/itemviews/itemviews.pri11
-rw-r--r--src/qt3support/itemviews/q3iconview.cpp6203
-rw-r--r--src/qt3support/itemviews/q3iconview.h519
-rw-r--r--src/qt3support/itemviews/q3listbox.cpp4687
-rw-r--r--src/qt3support/itemviews/q3listbox.h429
-rw-r--r--src/qt3support/itemviews/q3listview.cpp7949
-rw-r--r--src/qt3support/itemviews/q3listview.h609
-rw-r--r--src/qt3support/itemviews/q3table.cpp7333
-rw-r--r--src/qt3support/itemviews/q3table.h548
-rw-r--r--src/qt3support/network/network.pri30
-rw-r--r--src/qt3support/network/q3dns.cpp2620
-rw-r--r--src/qt3support/network/q3dns.h174
-rw-r--r--src/qt3support/network/q3ftp.cpp2378
-rw-r--r--src/qt3support/network/q3ftp.h204
-rw-r--r--src/qt3support/network/q3http.cpp2322
-rw-r--r--src/qt3support/network/q3http.h278
-rw-r--r--src/qt3support/network/q3localfs.cpp404
-rw-r--r--src/qt3support/network/q3localfs.h84
-rw-r--r--src/qt3support/network/q3network.cpp73
-rw-r--r--src/qt3support/network/q3network.h63
-rw-r--r--src/qt3support/network/q3networkprotocol.cpp1209
-rw-r--r--src/qt3support/network/q3networkprotocol.h250
-rw-r--r--src/qt3support/network/q3serversocket.cpp298
-rw-r--r--src/qt3support/network/q3serversocket.h94
-rw-r--r--src/qt3support/network/q3socket.cpp1518
-rw-r--r--src/qt3support/network/q3socket.h157
-rw-r--r--src/qt3support/network/q3socketdevice.cpp757
-rw-r--r--src/qt3support/network/q3socketdevice.h177
-rw-r--r--src/qt3support/network/q3socketdevice_unix.cpp926
-rw-r--r--src/qt3support/network/q3socketdevice_win.cpp1068
-rw-r--r--src/qt3support/network/q3url.cpp1319
-rw-r--r--src/qt3support/network/q3url.h139
-rw-r--r--src/qt3support/network/q3urloperator.cpp1212
-rw-r--r--src/qt3support/network/q3urloperator.h138
-rw-r--r--src/qt3support/other/other.pri24
-rw-r--r--src/qt3support/other/q3accel.cpp982
-rw-r--r--src/qt3support/other/q3accel.h110
-rw-r--r--src/qt3support/other/q3boxlayout.cpp132
-rw-r--r--src/qt3support/other/q3boxlayout.h122
-rw-r--r--src/qt3support/other/q3dragobject.cpp1577
-rw-r--r--src/qt3support/other/q3dragobject.h218
-rw-r--r--src/qt3support/other/q3dropsite.cpp82
-rw-r--r--src/qt3support/other/q3dropsite.h65
-rw-r--r--src/qt3support/other/q3gridlayout.h78
-rw-r--r--src/qt3support/other/q3membuf.cpp171
-rw-r--r--src/qt3support/other/q3membuf_p.h103
-rw-r--r--src/qt3support/other/q3mimefactory.cpp546
-rw-r--r--src/qt3support/other/q3mimefactory.h102
-rw-r--r--src/qt3support/other/q3polygonscanner.cpp939
-rw-r--r--src/qt3support/other/q3polygonscanner.h70
-rw-r--r--src/qt3support/other/q3process.cpp927
-rw-r--r--src/qt3support/other/q3process.h186
-rw-r--r--src/qt3support/other/q3process_unix.cpp1282
-rw-r--r--src/qt3support/other/q3process_win.cpp676
-rw-r--r--src/qt3support/other/qiconset.h48
-rw-r--r--src/qt3support/other/qt_compat_pch.h66
-rw-r--r--src/qt3support/painting/painting.pri15
-rw-r--r--src/qt3support/painting/q3paintdevicemetrics.cpp149
-rw-r--r--src/qt3support/painting/q3paintdevicemetrics.h77
-rw-r--r--src/qt3support/painting/q3paintengine_svg.cpp1538
-rw-r--r--src/qt3support/painting/q3paintengine_svg_p.h128
-rw-r--r--src/qt3support/painting/q3painter.cpp240
-rw-r--r--src/qt3support/painting/q3painter.h121
-rw-r--r--src/qt3support/painting/q3picture.cpp235
-rw-r--r--src/qt3support/painting/q3picture.h68
-rw-r--r--src/qt3support/painting/q3pointarray.cpp189
-rw-r--r--src/qt3support/painting/q3pointarray.h74
-rw-r--r--src/qt3support/qt3support.pro39
-rw-r--r--src/qt3support/sql/q3databrowser.cpp1281
-rw-r--r--src/qt3support/sql/q3databrowser.h183
-rw-r--r--src/qt3support/sql/q3datatable.cpp2335
-rw-r--r--src/qt3support/sql/q3datatable.h251
-rw-r--r--src/qt3support/sql/q3dataview.cpp208
-rw-r--r--src/qt3support/sql/q3dataview.h90
-rw-r--r--src/qt3support/sql/q3editorfactory.cpp202
-rw-r--r--src/qt3support/sql/q3editorfactory.h77
-rw-r--r--src/qt3support/sql/q3sqlcursor.cpp1519
-rw-r--r--src/qt3support/sql/q3sqlcursor.h167
-rw-r--r--src/qt3support/sql/q3sqleditorfactory.cpp229
-rw-r--r--src/qt3support/sql/q3sqleditorfactory.h78
-rw-r--r--src/qt3support/sql/q3sqlfieldinfo.h167
-rw-r--r--src/qt3support/sql/q3sqlform.cpp378
-rw-r--r--src/qt3support/sql/q3sqlform.h109
-rw-r--r--src/qt3support/sql/q3sqlmanager_p.cpp961
-rw-r--r--src/qt3support/sql/q3sqlmanager_p.h160
-rw-r--r--src/qt3support/sql/q3sqlpropertymap.cpp276
-rw-r--r--src/qt3support/sql/q3sqlpropertymap.h86
-rw-r--r--src/qt3support/sql/q3sqlrecordinfo.h122
-rw-r--r--src/qt3support/sql/q3sqlselectcursor.cpp263
-rw-r--r--src/qt3support/sql/q3sqlselectcursor.h115
-rw-r--r--src/qt3support/sql/sql.pri25
-rw-r--r--src/qt3support/text/q3multilineedit.cpp535
-rw-r--r--src/qt3support/text/q3multilineedit.h143
-rw-r--r--src/qt3support/text/q3richtext.cpp8353
-rw-r--r--src/qt3support/text/q3richtext_p.cpp636
-rw-r--r--src/qt3support/text/q3richtext_p.h2102
-rw-r--r--src/qt3support/text/q3simplerichtext.cpp421
-rw-r--r--src/qt3support/text/q3simplerichtext.h109
-rw-r--r--src/qt3support/text/q3stylesheet.cpp1471
-rw-r--r--src/qt3support/text/q3stylesheet.h235
-rw-r--r--src/qt3support/text/q3syntaxhighlighter.cpp223
-rw-r--r--src/qt3support/text/q3syntaxhighlighter.h89
-rw-r--r--src/qt3support/text/q3syntaxhighlighter_p.h114
-rw-r--r--src/qt3support/text/q3textbrowser.cpp526
-rw-r--r--src/qt3support/text/q3textbrowser.h108
-rw-r--r--src/qt3support/text/q3textedit.cpp7244
-rw-r--r--src/qt3support/text/q3textedit.h613
-rw-r--r--src/qt3support/text/q3textstream.cpp2436
-rw-r--r--src/qt3support/text/q3textstream.h297
-rw-r--r--src/qt3support/text/q3textview.cpp84
-rw-r--r--src/qt3support/text/q3textview.h76
-rw-r--r--src/qt3support/text/text.pri25
-rw-r--r--src/qt3support/tools/q3asciicache.h132
-rw-r--r--src/qt3support/tools/q3asciidict.h130
-rw-r--r--src/qt3support/tools/q3cache.h130
-rw-r--r--src/qt3support/tools/q3cleanuphandler.h110
-rw-r--r--src/qt3support/tools/q3cstring.cpp1050
-rw-r--r--src/qt3support/tools/q3cstring.h273
-rw-r--r--src/qt3support/tools/q3deepcopy.cpp123
-rw-r--r--src/qt3support/tools/q3deepcopy.h89
-rw-r--r--src/qt3support/tools/q3dict.h130
-rw-r--r--src/qt3support/tools/q3garray.cpp797
-rw-r--r--src/qt3support/tools/q3garray.h140
-rw-r--r--src/qt3support/tools/q3gcache.cpp867
-rw-r--r--src/qt3support/tools/q3gcache.h137
-rw-r--r--src/qt3support/tools/q3gdict.cpp1154
-rw-r--r--src/qt3support/tools/q3gdict.h233
-rw-r--r--src/qt3support/tools/q3glist.cpp1270
-rw-r--r--src/qt3support/tools/q3glist.h279
-rw-r--r--src/qt3support/tools/q3gvector.cpp597
-rw-r--r--src/qt3support/tools/q3gvector.h132
-rw-r--r--src/qt3support/tools/q3intcache.h131
-rw-r--r--src/qt3support/tools/q3intdict.h126
-rw-r--r--src/qt3support/tools/q3memarray.h144
-rw-r--r--src/qt3support/tools/q3objectdict.h74
-rw-r--r--src/qt3support/tools/q3ptrcollection.cpp186
-rw-r--r--src/qt3support/tools/q3ptrcollection.h83
-rw-r--r--src/qt3support/tools/q3ptrdict.h127
-rw-r--r--src/qt3support/tools/q3ptrlist.h198
-rw-r--r--src/qt3support/tools/q3ptrqueue.h99
-rw-r--r--src/qt3support/tools/q3ptrstack.h99
-rw-r--r--src/qt3support/tools/q3ptrvector.h121
-rw-r--r--src/qt3support/tools/q3semaphore.cpp254
-rw-r--r--src/qt3support/tools/q3semaphore.h83
-rw-r--r--src/qt3support/tools/q3shared.cpp72
-rw-r--r--src/qt3support/tools/q3shared.h65
-rw-r--r--src/qt3support/tools/q3signal.cpp226
-rw-r--r--src/qt3support/tools/q3signal.h97
-rw-r--r--src/qt3support/tools/q3sortedlist.h71
-rw-r--r--src/qt3support/tools/q3strlist.h137
-rw-r--r--src/qt3support/tools/q3strvec.h93
-rw-r--r--src/qt3support/tools/q3tl.h212
-rw-r--r--src/qt3support/tools/q3valuelist.h238
-rw-r--r--src/qt3support/tools/q3valuestack.h75
-rw-r--r--src/qt3support/tools/q3valuevector.h113
-rw-r--r--src/qt3support/tools/tools.pri44
-rw-r--r--src/qt3support/widgets/q3action.cpp2236
-rw-r--r--src/qt3support/widgets/q3action.h225
-rw-r--r--src/qt3support/widgets/q3button.cpp127
-rw-r--r--src/qt3support/widgets/q3button.h71
-rw-r--r--src/qt3support/widgets/q3buttongroup.cpp565
-rw-r--r--src/qt3support/widgets/q3buttongroup.h152
-rw-r--r--src/qt3support/widgets/q3combobox.cpp2356
-rw-r--r--src/qt3support/widgets/q3combobox.h224
-rw-r--r--src/qt3support/widgets/q3datetimeedit.cpp2826
-rw-r--r--src/qt3support/widgets/q3datetimeedit.h288
-rw-r--r--src/qt3support/widgets/q3dockarea.cpp1349
-rw-r--r--src/qt3support/widgets/q3dockarea.h199
-rw-r--r--src/qt3support/widgets/q3dockwindow.cpp2115
-rw-r--r--src/qt3support/widgets/q3dockwindow.h239
-rw-r--r--src/qt3support/widgets/q3frame.cpp200
-rw-r--r--src/qt3support/widgets/q3frame.h90
-rw-r--r--src/qt3support/widgets/q3grid.cpp138
-rw-r--r--src/qt3support/widgets/q3grid.h79
-rw-r--r--src/qt3support/widgets/q3gridview.cpp367
-rw-r--r--src/qt3support/widgets/q3gridview.h137
-rw-r--r--src/qt3support/widgets/q3groupbox.cpp964
-rw-r--r--src/qt3support/widgets/q3groupbox.h159
-rw-r--r--src/qt3support/widgets/q3hbox.cpp145
-rw-r--r--src/qt3support/widgets/q3hbox.h77
-rw-r--r--src/qt3support/widgets/q3header.cpp2040
-rw-r--r--src/qt3support/widgets/q3header.h225
-rw-r--r--src/qt3support/widgets/q3hgroupbox.cpp92
-rw-r--r--src/qt3support/widgets/q3hgroupbox.h69
-rw-r--r--src/qt3support/widgets/q3mainwindow.cpp2427
-rw-r--r--src/qt3support/widgets/q3mainwindow.h267
-rw-r--r--src/qt3support/widgets/q3mainwindow_p.h116
-rw-r--r--src/qt3support/widgets/q3popupmenu.cpp153
-rw-r--r--src/qt3support/widgets/q3popupmenu.h93
-rw-r--r--src/qt3support/widgets/q3progressbar.cpp464
-rw-r--r--src/qt3support/widgets/q3progressbar.h148
-rw-r--r--src/qt3support/widgets/q3rangecontrol.cpp550
-rw-r--r--src/qt3support/widgets/q3rangecontrol.h194
-rw-r--r--src/qt3support/widgets/q3scrollview.cpp2803
-rw-r--r--src/qt3support/widgets/q3scrollview.h253
-rw-r--r--src/qt3support/widgets/q3spinwidget.cpp473
-rw-r--r--src/qt3support/widgets/q3titlebar.cpp645
-rw-r--r--src/qt3support/widgets/q3titlebar_p.h134
-rw-r--r--src/qt3support/widgets/q3toolbar.cpp840
-rw-r--r--src/qt3support/widgets/q3toolbar.h122
-rw-r--r--src/qt3support/widgets/q3vbox.cpp72
-rw-r--r--src/qt3support/widgets/q3vbox.h67
-rw-r--r--src/qt3support/widgets/q3vgroupbox.cpp92
-rw-r--r--src/qt3support/widgets/q3vgroupbox.h69
-rw-r--r--src/qt3support/widgets/q3whatsthis.cpp220
-rw-r--r--src/qt3support/widgets/q3whatsthis.h89
-rw-r--r--src/qt3support/widgets/q3widgetstack.cpp571
-rw-r--r--src/qt3support/widgets/q3widgetstack.h112
-rw-r--r--src/qt3support/widgets/widgets.pri58
-rw-r--r--src/qt_install.pri32
-rw-r--r--src/qt_targets.pri4
-rw-r--r--src/script/instruction.table87
-rw-r--r--src/script/qscript.g2123
-rw-r--r--src/script/qscriptable.cpp195
-rw-r--r--src/script/qscriptable.h89
-rw-r--r--src/script/qscriptable_p.h84
-rw-r--r--src/script/qscriptarray_p.h428
-rw-r--r--src/script/qscriptasm.cpp108
-rw-r--r--src/script/qscriptasm_p.h183
-rw-r--r--src/script/qscriptast.cpp789
-rw-r--r--src/script/qscriptast_p.h1502
-rw-r--r--src/script/qscriptastfwd_p.h146
-rw-r--r--src/script/qscriptastvisitor.cpp58
-rw-r--r--src/script/qscriptastvisitor_p.h295
-rw-r--r--src/script/qscriptbuffer_p.h206
-rw-r--r--src/script/qscriptclass.cpp684
-rw-r--r--src/script/qscriptclass.h121
-rw-r--r--src/script/qscriptclass_p.h91
-rw-r--r--src/script/qscriptclassdata.cpp117
-rw-r--r--src/script/qscriptclassdata_p.h119
-rw-r--r--src/script/qscriptclassinfo_p.h122
-rw-r--r--src/script/qscriptclasspropertyiterator.cpp225
-rw-r--r--src/script/qscriptclasspropertyiterator.h96
-rw-r--r--src/script/qscriptclasspropertyiterator_p.h81
-rw-r--r--src/script/qscriptcompiler.cpp2111
-rw-r--r--src/script/qscriptcompiler_p.h377
-rw-r--r--src/script/qscriptcontext.cpp571
-rw-r--r--src/script/qscriptcontext.h125
-rw-r--r--src/script/qscriptcontext_p.cpp2598
-rw-r--r--src/script/qscriptcontext_p.h361
-rw-r--r--src/script/qscriptcontextfwd_p.h257
-rw-r--r--src/script/qscriptcontextinfo.cpp553
-rw-r--r--src/script/qscriptcontextinfo.h125
-rw-r--r--src/script/qscriptcontextinfo_p.h99
-rw-r--r--src/script/qscriptecmaarray.cpp777
-rw-r--r--src/script/qscriptecmaarray_p.h141
-rw-r--r--src/script/qscriptecmaboolean.cpp137
-rw-r--r--src/script/qscriptecmaboolean_p.h89
-rw-r--r--src/script/qscriptecmacore.cpp120
-rw-r--r--src/script/qscriptecmacore_p.h115
-rw-r--r--src/script/qscriptecmadate.cpp1281
-rw-r--r--src/script/qscriptecmadate_p.h234
-rw-r--r--src/script/qscriptecmaerror.cpp368
-rw-r--r--src/script/qscriptecmaerror_p.h121
-rw-r--r--src/script/qscriptecmafunction.cpp459
-rw-r--r--src/script/qscriptecmafunction_p.h105
-rw-r--r--src/script/qscriptecmaglobal.cpp572
-rw-r--r--src/script/qscriptecmaglobal_p.h141
-rw-r--r--src/script/qscriptecmamath.cpp391
-rw-r--r--src/script/qscriptecmamath_p.h158
-rw-r--r--src/script/qscriptecmanumber.cpp268
-rw-r--r--src/script/qscriptecmanumber_p.h89
-rw-r--r--src/script/qscriptecmaobject.cpp238
-rw-r--r--src/script/qscriptecmaobject_p.h109
-rw-r--r--src/script/qscriptecmaregexp.cpp339
-rw-r--r--src/script/qscriptecmaregexp_p.h142
-rw-r--r--src/script/qscriptecmastring.cpp778
-rw-r--r--src/script/qscriptecmastring_p.h128
-rw-r--r--src/script/qscriptengine.cpp1879
-rw-r--r--src/script/qscriptengine.h481
-rw-r--r--src/script/qscriptengine_p.cpp2724
-rw-r--r--src/script/qscriptengine_p.h828
-rw-r--r--src/script/qscriptengineagent.cpp444
-rw-r--r--src/script/qscriptengineagent.h112
-rw-r--r--src/script/qscriptengineagent_p.h81
-rw-r--r--src/script/qscriptenginefwd_p.h559
-rw-r--r--src/script/qscriptextensioninterface.h73
-rw-r--r--src/script/qscriptextensionplugin.cpp147
-rw-r--r--src/script/qscriptextensionplugin.h79
-rw-r--r--src/script/qscriptextenumeration.cpp209
-rw-r--r--src/script/qscriptextenumeration_p.h126
-rw-r--r--src/script/qscriptextqobject.cpp2209
-rw-r--r--src/script/qscriptextqobject_p.h447
-rw-r--r--src/script/qscriptextvariant.cpp169
-rw-r--r--src/script/qscriptextvariant_p.h106
-rw-r--r--src/script/qscriptfunction.cpp171
-rw-r--r--src/script/qscriptfunction_p.h219
-rw-r--r--src/script/qscriptgc_p.h317
-rw-r--r--src/script/qscriptglobals_p.h104
-rw-r--r--src/script/qscriptgrammar.cpp975
-rw-r--r--src/script/qscriptgrammar_p.h208
-rw-r--r--src/script/qscriptlexer.cpp1122
-rw-r--r--src/script/qscriptlexer_p.h246
-rw-r--r--src/script/qscriptmember_p.h191
-rw-r--r--src/script/qscriptmemberfwd_p.h126
-rw-r--r--src/script/qscriptmemorypool_p.h130
-rw-r--r--src/script/qscriptnameid_p.h77
-rw-r--r--src/script/qscriptnodepool_p.h139
-rw-r--r--src/script/qscriptobject_p.h188
-rw-r--r--src/script/qscriptobjectdata_p.h81
-rw-r--r--src/script/qscriptobjectfwd_p.h112
-rw-r--r--src/script/qscriptparser.cpp1172
-rw-r--r--src/script/qscriptparser_p.h167
-rw-r--r--src/script/qscriptprettypretty.cpp1334
-rw-r--r--src/script/qscriptprettypretty_p.h329
-rw-r--r--src/script/qscriptrepository_p.h91
-rw-r--r--src/script/qscriptstring.cpp227
-rw-r--r--src/script/qscriptstring.h86
-rw-r--r--src/script/qscriptstring_p.h86
-rw-r--r--src/script/qscriptsyntaxchecker.cpp218
-rw-r--r--src/script/qscriptsyntaxchecker_p.h118
-rw-r--r--src/script/qscriptsyntaxcheckresult_p.h80
-rw-r--r--src/script/qscriptvalue.cpp1595
-rw-r--r--src/script/qscriptvalue.h238
-rw-r--r--src/script/qscriptvalue_p.h108
-rw-r--r--src/script/qscriptvaluefwd_p.h89
-rw-r--r--src/script/qscriptvalueimpl.cpp448
-rw-r--r--src/script/qscriptvalueimpl_p.h786
-rw-r--r--src/script/qscriptvalueimplfwd_p.h237
-rw-r--r--src/script/qscriptvalueiterator.cpp328
-rw-r--r--src/script/qscriptvalueiterator.h99
-rw-r--r--src/script/qscriptvalueiterator_p.h75
-rw-r--r--src/script/qscriptvalueiteratorimpl.cpp415
-rw-r--r--src/script/qscriptvalueiteratorimpl_p.h127
-rw-r--r--src/script/qscriptxmlgenerator.cpp1118
-rw-r--r--src/script/qscriptxmlgenerator_p.h330
-rw-r--r--src/script/script.pri124
-rw-r--r--src/script/script.pro12
-rw-r--r--src/scripttools/debugging/debugging.pri157
-rw-r--r--src/scripttools/debugging/images/breakpoint.pngbin0 -> 1046 bytes-rw-r--r--src/scripttools/debugging/images/breakpoint.svg154
-rw-r--r--src/scripttools/debugging/images/d_breakpoint.pngbin0 -> 1056 bytes-rw-r--r--src/scripttools/debugging/images/d_breakpoint.svg154
-rw-r--r--src/scripttools/debugging/images/d_interrupt.pngbin0 -> 367 bytes-rw-r--r--src/scripttools/debugging/images/d_play.pngbin0 -> 376 bytes-rw-r--r--src/scripttools/debugging/images/delete.pngbin0 -> 833 bytes-rw-r--r--src/scripttools/debugging/images/find.pngbin0 -> 843 bytes-rw-r--r--src/scripttools/debugging/images/interrupt.pngbin0 -> 578 bytes-rw-r--r--src/scripttools/debugging/images/location.pngbin0 -> 748 bytes-rw-r--r--src/scripttools/debugging/images/location.svg121
-rw-r--r--src/scripttools/debugging/images/mac/closetab.pngbin0 -> 516 bytes-rw-r--r--src/scripttools/debugging/images/mac/next.pngbin0 -> 1310 bytes-rw-r--r--src/scripttools/debugging/images/mac/plus.pngbin0 -> 810 bytes-rw-r--r--src/scripttools/debugging/images/mac/previous.pngbin0 -> 1080 bytes-rw-r--r--src/scripttools/debugging/images/new.pngbin0 -> 313 bytes-rw-r--r--src/scripttools/debugging/images/play.pngbin0 -> 620 bytes-rw-r--r--src/scripttools/debugging/images/reload.pngbin0 -> 1363 bytes-rw-r--r--src/scripttools/debugging/images/return.pngbin0 -> 694 bytes-rw-r--r--src/scripttools/debugging/images/runtocursor.pngbin0 -> 436 bytes-rw-r--r--src/scripttools/debugging/images/runtonewscript.pngbin0 -> 534 bytes-rw-r--r--src/scripttools/debugging/images/stepinto.pngbin0 -> 419 bytes-rw-r--r--src/scripttools/debugging/images/stepout.pngbin0 -> 408 bytes-rw-r--r--src/scripttools/debugging/images/stepover.pngbin0 -> 487 bytes-rw-r--r--src/scripttools/debugging/images/win/closetab.pngbin0 -> 375 bytes-rw-r--r--src/scripttools/debugging/images/win/next.pngbin0 -> 1038 bytes-rw-r--r--src/scripttools/debugging/images/win/plus.pngbin0 -> 709 bytes-rw-r--r--src/scripttools/debugging/images/win/previous.pngbin0 -> 898 bytes-rw-r--r--src/scripttools/debugging/images/wrap.pngbin0 -> 500 bytes-rw-r--r--src/scripttools/debugging/qscriptbreakpointdata.cpp393
-rw-r--r--src/scripttools/debugging/qscriptbreakpointdata_p.h129
-rw-r--r--src/scripttools/debugging/qscriptbreakpointsmodel.cpp497
-rw-r--r--src/scripttools/debugging/qscriptbreakpointsmodel_p.h107
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidget.cpp393
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidget_p.h90
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidgetinterface.cpp66
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidgetinterface_p.h92
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidgetinterface_p_p.h72
-rw-r--r--src/scripttools/debugging/qscriptcompletionproviderinterface_p.h78
-rw-r--r--src/scripttools/debugging/qscriptcompletiontask.cpp305
-rw-r--r--src/scripttools/debugging/qscriptcompletiontask_p.h89
-rw-r--r--src/scripttools/debugging/qscriptcompletiontaskinterface.cpp110
-rw-r--r--src/scripttools/debugging/qscriptcompletiontaskinterface_p.h106
-rw-r--r--src/scripttools/debugging/qscriptcompletiontaskinterface_p_p.h81
-rw-r--r--src/scripttools/debugging/qscriptdebugger.cpp1828
-rw-r--r--src/scripttools/debugging/qscriptdebugger_p.h178
-rw-r--r--src/scripttools/debugging/qscriptdebuggeragent.cpp748
-rw-r--r--src/scripttools/debugging/qscriptdebuggeragent_p.h137
-rw-r--r--src/scripttools/debugging/qscriptdebuggeragent_p_p.h136
-rw-r--r--src/scripttools/debugging/qscriptdebuggerbackend.cpp998
-rw-r--r--src/scripttools/debugging/qscriptdebuggerbackend_p.h156
-rw-r--r--src/scripttools/debugging/qscriptdebuggerbackend_p_p.h133
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp249
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodefinderwidget_p.h92
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodefinderwidgetinterface.cpp66
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodefinderwidgetinterface_p.h93
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodefinderwidgetinterface_p_p.h72
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeview.cpp261
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeview_p.h96
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeviewinterface.cpp66
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeviewinterface_p.h106
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeviewinterface_p_p.h72
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodewidget.cpp316
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodewidget_p.h99
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodewidgetinterface.cpp66
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodewidgetinterface_p.h101
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodewidgetinterface_p_p.h72
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommand.cpp690
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommand_p.h263
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandexecutor.cpp423
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandexecutor_p.h86
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerfrontend.cpp309
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerfrontend_p.h145
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerinterface_p.h75
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerjob.cpp82
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerjob_p.h87
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerjob_p_p.h76
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsole.cpp387
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsole_p.h120
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommand.cpp148
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommand_p.h105
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommand_p_p.h73
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandgroupdata.cpp138
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandgroupdata_p.h95
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandjob.cpp85
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandjob_p.h86
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandjob_p_p.h78
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandmanager.cpp245
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandmanager_p.h96
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsoleglobalobject.cpp465
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsoleglobalobject_p.h172
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolehistorianinterface_p.h74
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolewidget.cpp444
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolewidget_p.h98
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolewidgetinterface.cpp94
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolewidgetinterface_p.h103
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolewidgetinterface_p_p.h78
-rw-r--r--src/scripttools/debugging/qscriptdebuggerevent.cpp320
-rw-r--r--src/scripttools/debugging/qscriptdebuggerevent_p.h163
-rw-r--r--src/scripttools/debugging/qscriptdebuggereventhandlerinterface_p.h72
-rw-r--r--src/scripttools/debugging/qscriptdebuggerfrontend.cpp236
-rw-r--r--src/scripttools/debugging/qscriptdebuggerfrontend_p.h102
-rw-r--r--src/scripttools/debugging/qscriptdebuggerfrontend_p_p.h93
-rw-r--r--src/scripttools/debugging/qscriptdebuggerjob.cpp111
-rw-r--r--src/scripttools/debugging/qscriptdebuggerjob_p.h88
-rw-r--r--src/scripttools/debugging/qscriptdebuggerjob_p_p.h78
-rw-r--r--src/scripttools/debugging/qscriptdebuggerjobschedulerinterface_p.h74
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp931
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalsmodel_p.h102
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidget.cpp429
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidget_p.h85
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidgetinterface.cpp79
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidgetinterface_p.h92
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidgetinterface_p_p.h76
-rw-r--r--src/scripttools/debugging/qscriptdebuggerobjectsnapshotdelta_p.h73
-rw-r--r--src/scripttools/debugging/qscriptdebuggerresponse.cpp350
-rw-r--r--src/scripttools/debugging/qscriptdebuggerresponse_p.h140
-rw-r--r--src/scripttools/debugging/qscriptdebuggerresponsehandlerinterface_p.h73
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp665
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand_p.h106
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptsmodel.cpp335
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptsmodel_p.h101
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptswidget.cpp154
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptswidget_p.h84
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptswidgetinterface.cpp66
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptswidgetinterface_p.h92
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptswidgetinterface_p_p.h72
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackmodel.cpp166
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackmodel_p.h87
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackwidget.cpp142
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackwidget_p.h84
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackwidgetinterface.cpp66
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackwidgetinterface_p.h91
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackwidgetinterface_p_p.h72
-rw-r--r--src/scripttools/debugging/qscriptdebuggervalue.cpp417
-rw-r--r--src/scripttools/debugging/qscriptdebuggervalue_p.h118
-rw-r--r--src/scripttools/debugging/qscriptdebuggervalueproperty.cpp228
-rw-r--r--src/scripttools/debugging/qscriptdebuggervalueproperty_p.h100
-rw-r--r--src/scripttools/debugging/qscriptdebuggerwidgetfactoryinterface_p.h78
-rw-r--r--src/scripttools/debugging/qscriptdebugoutputwidget.cpp159
-rw-r--r--src/scripttools/debugging/qscriptdebugoutputwidget_p.h83
-rw-r--r--src/scripttools/debugging/qscriptdebugoutputwidgetinterface.cpp66
-rw-r--r--src/scripttools/debugging/qscriptdebugoutputwidgetinterface_p.h84
-rw-r--r--src/scripttools/debugging/qscriptdebugoutputwidgetinterface_p_p.h72
-rw-r--r--src/scripttools/debugging/qscriptedit.cpp453
-rw-r--r--src/scripttools/debugging/qscriptedit_p.h131
-rw-r--r--src/scripttools/debugging/qscriptenginedebugger.cpp792
-rw-r--r--src/scripttools/debugging/qscriptenginedebugger.h130
-rw-r--r--src/scripttools/debugging/qscriptenginedebuggerfrontend.cpp335
-rw-r--r--src/scripttools/debugging/qscriptenginedebuggerfrontend_p.h89
-rw-r--r--src/scripttools/debugging/qscripterrorlogwidget.cpp135
-rw-r--r--src/scripttools/debugging/qscripterrorlogwidget_p.h83
-rw-r--r--src/scripttools/debugging/qscripterrorlogwidgetinterface.cpp66
-rw-r--r--src/scripttools/debugging/qscripterrorlogwidgetinterface_p.h84
-rw-r--r--src/scripttools/debugging/qscripterrorlogwidgetinterface_p_p.h72
-rw-r--r--src/scripttools/debugging/qscriptmessagehandlerinterface_p.h75
-rw-r--r--src/scripttools/debugging/qscriptobjectsnapshot.cpp146
-rw-r--r--src/scripttools/debugging/qscriptobjectsnapshot_p.h86
-rw-r--r--src/scripttools/debugging/qscriptscriptdata.cpp222
-rw-r--r--src/scripttools/debugging/qscriptscriptdata_p.h106
-rw-r--r--src/scripttools/debugging/qscriptstdmessagehandler.cpp111
-rw-r--r--src/scripttools/debugging/qscriptstdmessagehandler_p.h83
-rw-r--r--src/scripttools/debugging/qscriptsyntaxhighlighter.cpp544
-rw-r--r--src/scripttools/debugging/qscriptsyntaxhighlighter_p.h95
-rw-r--r--src/scripttools/debugging/qscripttooltipproviderinterface_p.h73
-rw-r--r--src/scripttools/debugging/qscriptvalueproperty.cpp173
-rw-r--r--src/scripttools/debugging/qscriptvalueproperty_p.h93
-rw-r--r--src/scripttools/debugging/qscriptxmlparser.cpp176
-rw-r--r--src/scripttools/debugging/qscriptxmlparser_p.h81
-rw-r--r--src/scripttools/debugging/scripts/commands/advance.qs41
-rw-r--r--src/scripttools/debugging/scripts/commands/backtrace.qs26
-rw-r--r--src/scripttools/debugging/scripts/commands/break.qs59
-rw-r--r--src/scripttools/debugging/scripts/commands/clear.qs59
-rw-r--r--src/scripttools/debugging/scripts/commands/complete.qs14
-rw-r--r--src/scripttools/debugging/scripts/commands/condition.qs52
-rw-r--r--src/scripttools/debugging/scripts/commands/continue.qs22
-rw-r--r--src/scripttools/debugging/scripts/commands/delete.qs36
-rw-r--r--src/scripttools/debugging/scripts/commands/disable.qs56
-rw-r--r--src/scripttools/debugging/scripts/commands/down.qs33
-rw-r--r--src/scripttools/debugging/scripts/commands/enable.qs56
-rw-r--r--src/scripttools/debugging/scripts/commands/eval.qs21
-rw-r--r--src/scripttools/debugging/scripts/commands/finish.qs16
-rw-r--r--src/scripttools/debugging/scripts/commands/frame.qs36
-rw-r--r--src/scripttools/debugging/scripts/commands/help.qs71
-rw-r--r--src/scripttools/debugging/scripts/commands/ignore.qs51
-rw-r--r--src/scripttools/debugging/scripts/commands/info.qs128
-rw-r--r--src/scripttools/debugging/scripts/commands/interrupt.qs14
-rw-r--r--src/scripttools/debugging/scripts/commands/list.qs90
-rw-r--r--src/scripttools/debugging/scripts/commands/next.qs27
-rw-r--r--src/scripttools/debugging/scripts/commands/print.qs23
-rw-r--r--src/scripttools/debugging/scripts/commands/return.qs20
-rw-r--r--src/scripttools/debugging/scripts/commands/step.qs26
-rw-r--r--src/scripttools/debugging/scripts/commands/tbreak.qs59
-rw-r--r--src/scripttools/debugging/scripts/commands/up.qs37
-rw-r--r--src/scripttools/debugging/scripttools_debugging.qrc63
-rw-r--r--src/scripttools/scripttools.pro12
-rw-r--r--src/sql/README.module37
-rw-r--r--src/sql/drivers/db2/qsql_db2.cpp1608
-rw-r--r--src/sql/drivers/db2/qsql_db2.h124
-rw-r--r--src/sql/drivers/drivers.pri123
-rw-r--r--src/sql/drivers/ibase/qsql_ibase.cpp1813
-rw-r--r--src/sql/drivers/ibase/qsql_ibase.h131
-rw-r--r--src/sql/drivers/mysql/qsql_mysql.cpp1446
-rw-r--r--src/sql/drivers/mysql/qsql_mysql.h139
-rw-r--r--src/sql/drivers/oci/qsql_oci.cpp2428
-rw-r--r--src/sql/drivers/oci/qsql_oci.h130
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.cpp2312
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.h164
-rw-r--r--src/sql/drivers/psql/qsql_psql.cpp1250
-rw-r--r--src/sql/drivers/psql/qsql_psql.h155
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite.cpp695
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite.h123
-rw-r--r--src/sql/drivers/sqlite2/qsql_sqlite2.cpp558
-rw-r--r--src/sql/drivers/sqlite2/qsql_sqlite2.h126
-rw-r--r--src/sql/drivers/tds/qsql_tds.cpp797
-rw-r--r--src/sql/drivers/tds/qsql_tds.h132
-rw-r--r--src/sql/kernel/kernel.pri24
-rw-r--r--src/sql/kernel/qsql.h113
-rw-r--r--src/sql/kernel/qsqlcachedresult.cpp297
-rw-r--r--src/sql/kernel/qsqlcachedresult_p.h99
-rw-r--r--src/sql/kernel/qsqldatabase.cpp1487
-rw-r--r--src/sql/kernel/qsqldatabase.h159
-rw-r--r--src/sql/kernel/qsqldriver.cpp803
-rw-r--r--src/sql/kernel/qsqldriver.h151
-rw-r--r--src/sql/kernel/qsqldriverplugin.cpp108
-rw-r--r--src/sql/kernel/qsqldriverplugin.h81
-rw-r--r--src/sql/kernel/qsqlerror.cpp253
-rw-r--r--src/sql/kernel/qsqlerror.h104
-rw-r--r--src/sql/kernel/qsqlfield.cpp557
-rw-r--r--src/sql/kernel/qsqlfield.h119
-rw-r--r--src/sql/kernel/qsqlindex.cpp256
-rw-r--r--src/sql/kernel/qsqlindex.h92
-rw-r--r--src/sql/kernel/qsqlnulldriver_p.h114
-rw-r--r--src/sql/kernel/qsqlquery.cpp1220
-rw-r--r--src/sql/kernel/qsqlquery.h130
-rw-r--r--src/sql/kernel/qsqlrecord.cpp605
-rw-r--r--src/sql/kernel/qsqlrecord.h123
-rw-r--r--src/sql/kernel/qsqlresult.cpp1013
-rw-r--r--src/sql/kernel/qsqlresult.h152
-rw-r--r--src/sql/models/models.pri12
-rw-r--r--src/sql/models/qsqlquerymodel.cpp592
-rw-r--r--src/sql/models/qsqlquerymodel.h105
-rw-r--r--src/sql/models/qsqlquerymodel_p.h87
-rw-r--r--src/sql/models/qsqlrelationaldelegate.cpp101
-rw-r--r--src/sql/models/qsqlrelationaldelegate.h129
-rw-r--r--src/sql/models/qsqlrelationaltablemodel.cpp717
-rw-r--r--src/sql/models/qsqlrelationaltablemodel.h112
-rw-r--r--src/sql/models/qsqltablemodel.cpp1332
-rw-r--r--src/sql/models/qsqltablemodel.h141
-rw-r--r--src/sql/models/qsqltablemodel_p.h118
-rw-r--r--src/sql/sql.pro19
-rw-r--r--src/src.pro168
-rw-r--r--src/svg/qgraphicssvgitem.cpp376
-rw-r--r--src/svg/qgraphicssvgitem.h105
-rw-r--r--src/svg/qsvgfont.cpp142
-rw-r--r--src/svg/qsvgfont_p.h103
-rw-r--r--src/svg/qsvggenerator.cpp1052
-rw-r--r--src/svg/qsvggenerator.h111
-rw-r--r--src/svg/qsvggraphics.cpp642
-rw-r--r--src/svg/qsvggraphics_p.h247
-rw-r--r--src/svg/qsvghandler.cpp3697
-rw-r--r--src/svg/qsvghandler_p.h185
-rw-r--r--src/svg/qsvgnode.cpp330
-rw-r--r--src/svg/qsvgnode_p.h205
-rw-r--r--src/svg/qsvgrenderer.cpp501
-rw-r--r--src/svg/qsvgrenderer.h120
-rw-r--r--src/svg/qsvgstructure.cpp424
-rw-r--r--src/svg/qsvgstructure_p.h120
-rw-r--r--src/svg/qsvgstyle.cpp820
-rw-r--r--src/svg/qsvgstyle_p.h564
-rw-r--r--src/svg/qsvgtinydocument.cpp459
-rw-r--r--src/svg/qsvgtinydocument_p.h195
-rw-r--r--src/svg/qsvgwidget.cpp183
-rw-r--r--src/svg/qsvgwidget.h85
-rw-r--r--src/svg/svg.pro48
-rw-r--r--src/testlib/3rdparty/callgrind_p.h147
-rw-r--r--src/testlib/3rdparty/cycle_p.h494
-rw-r--r--src/testlib/3rdparty/valgrind_p.h3926
-rw-r--r--src/testlib/qabstracttestlogger.cpp108
-rw-r--r--src/testlib/qabstracttestlogger_p.h104
-rw-r--r--src/testlib/qasciikey.cpp505
-rw-r--r--src/testlib/qbenchmark.cpp281
-rw-r--r--src/testlib/qbenchmark.h83
-rw-r--r--src/testlib/qbenchmark_p.h193
-rw-r--r--src/testlib/qbenchmarkevent.cpp112
-rw-r--r--src/testlib/qbenchmarkevent_p.h81
-rw-r--r--src/testlib/qbenchmarkmeasurement.cpp142
-rw-r--r--src/testlib/qbenchmarkmeasurement_p.h115
-rw-r--r--src/testlib/qbenchmarkvalgrind.cpp275
-rw-r--r--src/testlib/qbenchmarkvalgrind_p.h93
-rw-r--r--src/testlib/qplaintestlogger.cpp439
-rw-r--r--src/testlib/qplaintestlogger_p.h82
-rw-r--r--src/testlib/qsignaldumper.cpp212
-rw-r--r--src/testlib/qsignaldumper_p.h74
-rw-r--r--src/testlib/qsignalspy.h148
-rw-r--r--src/testlib/qtest.h251
-rw-r--r--src/testlib/qtest_global.h91
-rw-r--r--src/testlib/qtest_gui.h109
-rw-r--r--src/testlib/qtestaccessible.h165
-rw-r--r--src/testlib/qtestassert.h61
-rw-r--r--src/testlib/qtestcase.cpp1933
-rw-r--r--src/testlib/qtestcase.h340
-rw-r--r--src/testlib/qtestdata.cpp122
-rw-r--r--src/testlib/qtestdata.h97
-rw-r--r--src/testlib/qtestevent.h214
-rw-r--r--src/testlib/qtesteventloop.h136
-rw-r--r--src/testlib/qtestkeyboard.h194
-rw-r--r--src/testlib/qtestlog.cpp364
-rw-r--r--src/testlib/qtestlog_p.h105
-rw-r--r--src/testlib/qtestmouse.h142
-rw-r--r--src/testlib/qtestresult.cpp349
-rw-r--r--src/testlib/qtestresult_p.h112
-rw-r--r--src/testlib/qtestspontaneevent.h118
-rw-r--r--src/testlib/qtestsystem.h74
-rw-r--r--src/testlib/qtesttable.cpp266
-rw-r--r--src/testlib/qtesttable_p.h93
-rw-r--r--src/testlib/qxmltestlogger.cpp264
-rw-r--r--src/testlib/qxmltestlogger_p.h88
-rw-r--r--src/testlib/testlib.pro27
-rw-r--r--src/tools/bootstrap/bootstrap.pri64
-rw-r--r--src/tools/bootstrap/bootstrap.pro114
-rw-r--r--src/tools/idc/idc.pro14
-rw-r--r--src/tools/idc/main.cpp369
-rw-r--r--src/tools/moc/generator.cpp1312
-rw-r--r--src/tools/moc/generator.h81
-rw-r--r--src/tools/moc/keywords.cpp979
-rw-r--r--src/tools/moc/main.cpp459
-rw-r--r--src/tools/moc/moc.cpp1230
-rw-r--r--src/tools/moc/moc.h247
-rw-r--r--src/tools/moc/moc.pri16
-rw-r--r--src/tools/moc/moc.pro18
-rw-r--r--src/tools/moc/mwerks_mac.cpp240
-rw-r--r--src/tools/moc/mwerks_mac.h67
-rw-r--r--src/tools/moc/outputrevision.h48
-rw-r--r--src/tools/moc/parser.cpp81
-rw-r--r--src/tools/moc/parser.h108
-rw-r--r--src/tools/moc/ppkeywords.cpp248
-rw-r--r--src/tools/moc/preprocessor.cpp978
-rw-r--r--src/tools/moc/preprocessor.h102
-rw-r--r--src/tools/moc/symbols.h147
-rw-r--r--src/tools/moc/token.cpp222
-rw-r--r--src/tools/moc/token.h274
-rwxr-xr-xsrc/tools/moc/util/generate.sh7
-rw-r--r--src/tools/moc/util/generate_keywords.cpp468
-rw-r--r--src/tools/moc/util/generate_keywords.pro13
-rw-r--r--src/tools/moc/util/licenseheader.txt41
-rw-r--r--src/tools/moc/utils.h111
-rw-r--r--src/tools/rcc/main.cpp262
-rw-r--r--src/tools/rcc/rcc.cpp967
-rw-r--r--src/tools/rcc/rcc.h153
-rw-r--r--src/tools/rcc/rcc.pri3
-rw-r--r--src/tools/rcc/rcc.pro16
-rw-r--r--src/tools/uic/cpp/cpp.pri20
-rw-r--r--src/tools/uic/cpp/cppextractimages.cpp148
-rw-r--r--src/tools/uic/cpp/cppextractimages.h77
-rw-r--r--src/tools/uic/cpp/cppwritedeclaration.cpp279
-rw-r--r--src/tools/uic/cpp/cppwritedeclaration.h81
-rw-r--r--src/tools/uic/cpp/cppwriteicondata.cpp181
-rw-r--r--src/tools/uic/cpp/cppwriteicondata.h80
-rw-r--r--src/tools/uic/cpp/cppwriteicondeclaration.cpp80
-rw-r--r--src/tools/uic/cpp/cppwriteicondeclaration.h76
-rw-r--r--src/tools/uic/cpp/cppwriteiconinitialization.cpp115
-rw-r--r--src/tools/uic/cpp/cppwriteiconinitialization.h81
-rw-r--r--src/tools/uic/cpp/cppwriteincludes.cpp340
-rw-r--r--src/tools/uic/cpp/cppwriteincludes.h116
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.cpp2919
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.h371
-rw-r--r--src/tools/uic/customwidgetsinfo.cpp119
-rw-r--r--src/tools/uic/customwidgetsinfo.h89
-rw-r--r--src/tools/uic/databaseinfo.cpp96
-rw-r--r--src/tools/uic/databaseinfo.h79
-rw-r--r--src/tools/uic/driver.cpp378
-rw-r--r--src/tools/uic/driver.h140
-rw-r--r--src/tools/uic/globaldefs.h54
-rw-r--r--src/tools/uic/main.cpp197
-rw-r--r--src/tools/uic/option.h96
-rw-r--r--src/tools/uic/treewalker.cpp328
-rw-r--r--src/tools/uic/treewalker.h137
-rw-r--r--src/tools/uic/ui4.cpp10887
-rw-r--r--src/tools/uic/ui4.h3696
-rw-r--r--src/tools/uic/uic.cpp382
-rw-r--r--src/tools/uic/uic.h144
-rw-r--r--src/tools/uic/uic.pri21
-rw-r--r--src/tools/uic/uic.pro23
-rw-r--r--src/tools/uic/utils.h128
-rw-r--r--src/tools/uic/validator.cpp94
-rw-r--r--src/tools/uic/validator.h74
-rw-r--r--src/tools/uic3/converter.cpp1305
-rw-r--r--src/tools/uic3/deps.cpp132
-rw-r--r--src/tools/uic3/domtool.cpp587
-rw-r--r--src/tools/uic3/domtool.h275
-rw-r--r--src/tools/uic3/embed.cpp336
-rw-r--r--src/tools/uic3/form.cpp921
-rw-r--r--src/tools/uic3/main.cpp414
-rw-r--r--src/tools/uic3/object.cpp66
-rw-r--r--src/tools/uic3/parser.cpp85
-rw-r--r--src/tools/uic3/parser.h57
-rw-r--r--src/tools/uic3/qt3to4.cpp225
-rw-r--r--src/tools/uic3/qt3to4.h82
-rw-r--r--src/tools/uic3/subclassing.cpp362
-rw-r--r--src/tools/uic3/ui3reader.cpp639
-rw-r--r--src/tools/uic3/ui3reader.h233
-rw-r--r--src/tools/uic3/uic.cpp341
-rw-r--r--src/tools/uic3/uic.h142
-rw-r--r--src/tools/uic3/uic3.pro43
-rw-r--r--src/tools/uic3/widgetinfo.cpp285
-rw-r--r--src/tools/uic3/widgetinfo.h77
-rw-r--r--src/winmain/qtmain_win.cpp141
-rw-r--r--src/winmain/winmain.pro22
-rw-r--r--src/xml/dom/dom.pri2
-rw-r--r--src/xml/dom/qdom.cpp7563
-rw-r--r--src/xml/dom/qdom.h681
-rw-r--r--src/xml/sax/qxml.cpp8114
-rw-r--r--src/xml/sax/qxml.h425
-rw-r--r--src/xml/sax/sax.pri2
-rw-r--r--src/xml/stream/qxmlstream.h73
-rw-r--r--src/xml/stream/stream.pri9
-rw-r--r--src/xml/xml.pro20
-rw-r--r--src/xmlpatterns/.gitignore1
-rw-r--r--src/xmlpatterns/Doxyfile1196
-rw-r--r--src/xmlpatterns/Mainpage.dox96
-rw-r--r--src/xmlpatterns/acceltree/acceltree.pri10
-rw-r--r--src/xmlpatterns/acceltree/qacceliterators.cpp181
-rw-r--r--src/xmlpatterns/acceltree/qacceliterators_p.h413
-rw-r--r--src/xmlpatterns/acceltree/qacceltree.cpp706
-rw-r--r--src/xmlpatterns/acceltree/qacceltree_p.h404
-rw-r--r--src/xmlpatterns/acceltree/qacceltreebuilder.cpp429
-rw-r--r--src/xmlpatterns/acceltree/qacceltreebuilder_p.h187
-rw-r--r--src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp411
-rw-r--r--src/xmlpatterns/acceltree/qacceltreeresourceloader_p.h195
-rw-r--r--src/xmlpatterns/acceltree/qcompressedwhitespace.cpp197
-rw-r--r--src/xmlpatterns/acceltree/qcompressedwhitespace_p.h186
-rw-r--r--src/xmlpatterns/api/api.pri48
-rw-r--r--src/xmlpatterns/api/qabstractmessagehandler.cpp149
-rw-r--r--src/xmlpatterns/api/qabstractmessagehandler.h81
-rw-r--r--src/xmlpatterns/api/qabstracturiresolver.cpp111
-rw-r--r--src/xmlpatterns/api/qabstracturiresolver.h74
-rw-r--r--src/xmlpatterns/api/qabstractxmlforwarditerator.cpp269
-rw-r--r--src/xmlpatterns/api/qabstractxmlforwarditerator_p.h328
-rw-r--r--src/xmlpatterns/api/qabstractxmlnodemodel.cpp1669
-rw-r--r--src/xmlpatterns/api/qabstractxmlnodemodel.h423
-rw-r--r--src/xmlpatterns/api/qabstractxmlnodemodel_p.h71
-rw-r--r--src/xmlpatterns/api/qabstractxmlreceiver.cpp476
-rw-r--r--src/xmlpatterns/api/qabstractxmlreceiver.h106
-rw-r--r--src/xmlpatterns/api/qabstractxmlreceiver_p.h71
-rw-r--r--src/xmlpatterns/api/qdeviceresourceloader_p.h88
-rw-r--r--src/xmlpatterns/api/qiodevicedelegate.cpp166
-rw-r--r--src/xmlpatterns/api/qiodevicedelegate_p.h108
-rw-r--r--src/xmlpatterns/api/qnetworkaccessdelegator.cpp80
-rw-r--r--src/xmlpatterns/api/qnetworkaccessdelegator_p.h106
-rw-r--r--src/xmlpatterns/api/qreferencecountedvalue_p.h106
-rw-r--r--src/xmlpatterns/api/qresourcedelegator.cpp111
-rw-r--r--src/xmlpatterns/api/qresourcedelegator_p.h119
-rw-r--r--src/xmlpatterns/api/qsimplexmlnodemodel.cpp184
-rw-r--r--src/xmlpatterns/api/qsimplexmlnodemodel.h77
-rw-r--r--src/xmlpatterns/api/qsourcelocation.cpp240
-rw-r--r--src/xmlpatterns/api/qsourcelocation.h101
-rw-r--r--src/xmlpatterns/api/quriloader.cpp84
-rw-r--r--src/xmlpatterns/api/quriloader_p.h86
-rw-r--r--src/xmlpatterns/api/qvariableloader.cpp264
-rw-r--r--src/xmlpatterns/api/qvariableloader_p.h118
-rw-r--r--src/xmlpatterns/api/qxmlformatter.cpp338
-rw-r--r--src/xmlpatterns/api/qxmlformatter.h94
-rw-r--r--src/xmlpatterns/api/qxmlname.cpp511
-rw-r--r--src/xmlpatterns/api/qxmlname.h142
-rw-r--r--src/xmlpatterns/api/qxmlnamepool.cpp109
-rw-r--r--src/xmlpatterns/api/qxmlnamepool.h88
-rw-r--r--src/xmlpatterns/api/qxmlquery.cpp1179
-rw-r--r--src/xmlpatterns/api/qxmlquery.h147
-rw-r--r--src/xmlpatterns/api/qxmlquery_p.h330
-rw-r--r--src/xmlpatterns/api/qxmlresultitems.cpp149
-rw-r--r--src/xmlpatterns/api/qxmlresultitems.h76
-rw-r--r--src/xmlpatterns/api/qxmlresultitems_p.h87
-rw-r--r--src/xmlpatterns/api/qxmlserializer.cpp653
-rw-r--r--src/xmlpatterns/api/qxmlserializer.h158
-rw-r--r--src/xmlpatterns/api/qxmlserializer_p.h130
-rw-r--r--src/xmlpatterns/common.pri17
-rw-r--r--src/xmlpatterns/data/data.pri78
-rw-r--r--src/xmlpatterns/data/qabstractdatetime.cpp400
-rw-r--r--src/xmlpatterns/data/qabstractdatetime_p.h261
-rw-r--r--src/xmlpatterns/data/qabstractduration.cpp235
-rw-r--r--src/xmlpatterns/data/qabstractduration_p.h192
-rw-r--r--src/xmlpatterns/data/qabstractfloat.cpp321
-rw-r--r--src/xmlpatterns/data/qabstractfloat_p.h174
-rw-r--r--src/xmlpatterns/data/qabstractfloatcasters.cpp71
-rw-r--r--src/xmlpatterns/data/qabstractfloatcasters_p.h175
-rw-r--r--src/xmlpatterns/data/qabstractfloatmathematician.cpp97
-rw-r--r--src/xmlpatterns/data/qabstractfloatmathematician_p.h104
-rw-r--r--src/xmlpatterns/data/qanyuri.cpp104
-rw-r--r--src/xmlpatterns/data/qanyuri_p.h212
-rw-r--r--src/xmlpatterns/data/qatomiccaster.cpp56
-rw-r--r--src/xmlpatterns/data/qatomiccaster_p.h94
-rw-r--r--src/xmlpatterns/data/qatomiccasters.cpp336
-rw-r--r--src/xmlpatterns/data/qatomiccasters_p.h705
-rw-r--r--src/xmlpatterns/data/qatomiccomparator.cpp118
-rw-r--r--src/xmlpatterns/data/qatomiccomparator_p.h223
-rw-r--r--src/xmlpatterns/data/qatomiccomparators.cpp386
-rw-r--r--src/xmlpatterns/data/qatomiccomparators_p.h298
-rw-r--r--src/xmlpatterns/data/qatomicmathematician.cpp73
-rw-r--r--src/xmlpatterns/data/qatomicmathematician_p.h136
-rw-r--r--src/xmlpatterns/data/qatomicmathematicians.cpp352
-rw-r--r--src/xmlpatterns/data/qatomicmathematicians_p.h249
-rw-r--r--src/xmlpatterns/data/qatomicstring.cpp74
-rw-r--r--src/xmlpatterns/data/qatomicstring_p.h123
-rw-r--r--src/xmlpatterns/data/qatomicvalue.cpp228
-rw-r--r--src/xmlpatterns/data/qbase64binary.cpp216
-rw-r--r--src/xmlpatterns/data/qbase64binary_p.h118
-rw-r--r--src/xmlpatterns/data/qboolean.cpp137
-rw-r--r--src/xmlpatterns/data/qboolean_p.h126
-rw-r--r--src/xmlpatterns/data/qcommonvalues.cpp123
-rw-r--r--src/xmlpatterns/data/qcommonvalues_p.h228
-rw-r--r--src/xmlpatterns/data/qdate.cpp115
-rw-r--r--src/xmlpatterns/data/qdate_p.h95
-rw-r--r--src/xmlpatterns/data/qdaytimeduration.cpp242
-rw-r--r--src/xmlpatterns/data/qdaytimeduration_p.h154
-rw-r--r--src/xmlpatterns/data/qdecimal.cpp234
-rw-r--r--src/xmlpatterns/data/qdecimal_p.h156
-rw-r--r--src/xmlpatterns/data/qderivedinteger_p.h624
-rw-r--r--src/xmlpatterns/data/qderivedstring_p.h341
-rw-r--r--src/xmlpatterns/data/qduration.cpp244
-rw-r--r--src/xmlpatterns/data/qduration_p.h136
-rw-r--r--src/xmlpatterns/data/qgday.cpp96
-rw-r--r--src/xmlpatterns/data/qgday_p.h94
-rw-r--r--src/xmlpatterns/data/qgmonth.cpp95
-rw-r--r--src/xmlpatterns/data/qgmonth_p.h94
-rw-r--r--src/xmlpatterns/data/qgmonthday.cpp98
-rw-r--r--src/xmlpatterns/data/qgmonthday_p.h95
-rw-r--r--src/xmlpatterns/data/qgyear.cpp101
-rw-r--r--src/xmlpatterns/data/qgyear_p.h94
-rw-r--r--src/xmlpatterns/data/qgyearmonth.cpp103
-rw-r--r--src/xmlpatterns/data/qgyearmonth_p.h94
-rw-r--r--src/xmlpatterns/data/qhexbinary.cpp151
-rw-r--r--src/xmlpatterns/data/qhexbinary_p.h109
-rw-r--r--src/xmlpatterns/data/qinteger.cpp164
-rw-r--r--src/xmlpatterns/data/qinteger_p.h141
-rw-r--r--src/xmlpatterns/data/qitem.cpp58
-rw-r--r--src/xmlpatterns/data/qitem_p.h542
-rw-r--r--src/xmlpatterns/data/qnodebuilder.cpp48
-rw-r--r--src/xmlpatterns/data/qnodebuilder_p.h111
-rw-r--r--src/xmlpatterns/data/qnodemodel.cpp52
-rw-r--r--src/xmlpatterns/data/qqnamevalue.cpp75
-rw-r--r--src/xmlpatterns/data/qqnamevalue_p.h113
-rw-r--r--src/xmlpatterns/data/qresourceloader.cpp134
-rw-r--r--src/xmlpatterns/data/qresourceloader_p.h320
-rw-r--r--src/xmlpatterns/data/qschemadatetime.cpp117
-rw-r--r--src/xmlpatterns/data/qschemadatetime_p.h101
-rw-r--r--src/xmlpatterns/data/qschemanumeric.cpp92
-rw-r--r--src/xmlpatterns/data/qschemanumeric_p.h235
-rw-r--r--src/xmlpatterns/data/qschematime.cpp121
-rw-r--r--src/xmlpatterns/data/qschematime_p.h98
-rw-r--r--src/xmlpatterns/data/qsequencereceiver.cpp126
-rw-r--r--src/xmlpatterns/data/qsequencereceiver_p.h192
-rw-r--r--src/xmlpatterns/data/qsorttuple.cpp89
-rw-r--r--src/xmlpatterns/data/qsorttuple_p.h148
-rw-r--r--src/xmlpatterns/data/quntypedatomic.cpp64
-rw-r--r--src/xmlpatterns/data/quntypedatomic_p.h97
-rw-r--r--src/xmlpatterns/data/qvalidationerror.cpp90
-rw-r--r--src/xmlpatterns/data/qvalidationerror_p.h123
-rw-r--r--src/xmlpatterns/data/qyearmonthduration.cpp186
-rw-r--r--src/xmlpatterns/data/qyearmonthduration_p.h151
-rw-r--r--src/xmlpatterns/documentationGroups.dox150
-rwxr-xr-xsrc/xmlpatterns/environment/createReportContext.sh12
-rw-r--r--src/xmlpatterns/environment/createReportContext.xsl554
-rw-r--r--src/xmlpatterns/environment/environment.pri32
-rw-r--r--src/xmlpatterns/environment/qcurrentitemcontext.cpp62
-rw-r--r--src/xmlpatterns/environment/qcurrentitemcontext_p.h93
-rw-r--r--src/xmlpatterns/environment/qdelegatingdynamiccontext.cpp212
-rw-r--r--src/xmlpatterns/environment/qdelegatingdynamiccontext_p.h130
-rw-r--r--src/xmlpatterns/environment/qdelegatingstaticcontext.cpp261
-rw-r--r--src/xmlpatterns/environment/qdelegatingstaticcontext_p.h147
-rw-r--r--src/xmlpatterns/environment/qdynamiccontext.cpp68
-rw-r--r--src/xmlpatterns/environment/qdynamiccontext_p.h231
-rw-r--r--src/xmlpatterns/environment/qfocus.cpp107
-rw-r--r--src/xmlpatterns/environment/qfocus_p.h103
-rw-r--r--src/xmlpatterns/environment/qgenericdynamiccontext.cpp205
-rw-r--r--src/xmlpatterns/environment/qgenericdynamiccontext_p.h155
-rw-r--r--src/xmlpatterns/environment/qgenericstaticcontext.cpp340
-rw-r--r--src/xmlpatterns/environment/qgenericstaticcontext_p.h199
-rw-r--r--src/xmlpatterns/environment/qreceiverdynamiccontext.cpp61
-rw-r--r--src/xmlpatterns/environment/qreceiverdynamiccontext_p.h89
-rw-r--r--src/xmlpatterns/environment/qreportcontext.cpp478
-rw-r--r--src/xmlpatterns/environment/qreportcontext_p.h2460
-rw-r--r--src/xmlpatterns/environment/qstackcontextbase.cpp153
-rw-r--r--src/xmlpatterns/environment/qstackcontextbase_p.h136
-rw-r--r--src/xmlpatterns/environment/qstaticbaseuricontext.cpp62
-rw-r--r--src/xmlpatterns/environment/qstaticbaseuricontext_p.h91
-rw-r--r--src/xmlpatterns/environment/qstaticcompatibilitycontext.cpp57
-rw-r--r--src/xmlpatterns/environment/qstaticcompatibilitycontext_p.h84
-rw-r--r--src/xmlpatterns/environment/qstaticcontext.cpp61
-rw-r--r--src/xmlpatterns/environment/qstaticcontext_p.h299
-rw-r--r--src/xmlpatterns/environment/qstaticcurrentcontext.cpp60
-rw-r--r--src/xmlpatterns/environment/qstaticcurrentcontext_p.h90
-rw-r--r--src/xmlpatterns/environment/qstaticfocuscontext.cpp59
-rw-r--r--src/xmlpatterns/environment/qstaticfocuscontext_p.h91
-rw-r--r--src/xmlpatterns/environment/qstaticnamespacecontext.cpp60
-rw-r--r--src/xmlpatterns/environment/qstaticnamespacecontext_p.h89
-rw-r--r--src/xmlpatterns/expr/expr.pri173
-rw-r--r--src/xmlpatterns/expr/qandexpression.cpp97
-rw-r--r--src/xmlpatterns/expr/qandexpression_p.h98
-rw-r--r--src/xmlpatterns/expr/qapplytemplate.cpp211
-rw-r--r--src/xmlpatterns/expr/qapplytemplate_p.h144
-rw-r--r--src/xmlpatterns/expr/qargumentreference.cpp86
-rw-r--r--src/xmlpatterns/expr/qargumentreference_p.h94
-rw-r--r--src/xmlpatterns/expr/qarithmeticexpression.cpp363
-rw-r--r--src/xmlpatterns/expr/qarithmeticexpression_p.h133
-rw-r--r--src/xmlpatterns/expr/qattributeconstructor.cpp127
-rw-r--r--src/xmlpatterns/expr/qattributeconstructor_p.h108
-rw-r--r--src/xmlpatterns/expr/qattributenamevalidator.cpp109
-rw-r--r--src/xmlpatterns/expr/qattributenamevalidator_p.h99
-rw-r--r--src/xmlpatterns/expr/qaxisstep.cpp247
-rw-r--r--src/xmlpatterns/expr/qaxisstep_p.h168
-rw-r--r--src/xmlpatterns/expr/qcachecells_p.h157
-rw-r--r--src/xmlpatterns/expr/qcallsite.cpp68
-rw-r--r--src/xmlpatterns/expr/qcallsite_p.h111
-rw-r--r--src/xmlpatterns/expr/qcalltargetdescription.cpp107
-rw-r--r--src/xmlpatterns/expr/qcalltargetdescription_p.h120
-rw-r--r--src/xmlpatterns/expr/qcalltemplate.cpp153
-rw-r--r--src/xmlpatterns/expr/qcalltemplate_p.h117
-rw-r--r--src/xmlpatterns/expr/qcastableas.cpp157
-rw-r--r--src/xmlpatterns/expr/qcastableas_p.h111
-rw-r--r--src/xmlpatterns/expr/qcastas.cpp204
-rw-r--r--src/xmlpatterns/expr/qcastas_p.h148
-rw-r--r--src/xmlpatterns/expr/qcastingplatform.cpp219
-rw-r--r--src/xmlpatterns/expr/qcastingplatform_p.h197
-rw-r--r--src/xmlpatterns/expr/qcollationchecker.cpp79
-rw-r--r--src/xmlpatterns/expr/qcollationchecker_p.h99
-rw-r--r--src/xmlpatterns/expr/qcombinenodes.cpp172
-rw-r--r--src/xmlpatterns/expr/qcombinenodes_p.h116
-rw-r--r--src/xmlpatterns/expr/qcommentconstructor.cpp124
-rw-r--r--src/xmlpatterns/expr/qcommentconstructor_p.h100
-rw-r--r--src/xmlpatterns/expr/qcomparisonplatform.cpp199
-rw-r--r--src/xmlpatterns/expr/qcomparisonplatform_p.h208
-rw-r--r--src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp136
-rw-r--r--src/xmlpatterns/expr/qcomputednamespaceconstructor_p.h102
-rw-r--r--src/xmlpatterns/expr/qcontextitem.cpp114
-rw-r--r--src/xmlpatterns/expr/qcontextitem_p.h128
-rw-r--r--src/xmlpatterns/expr/qcopyof.cpp134
-rw-r--r--src/xmlpatterns/expr/qcopyof_p.h121
-rw-r--r--src/xmlpatterns/expr/qcurrentitemstore.cpp139
-rw-r--r--src/xmlpatterns/expr/qcurrentitemstore_p.h104
-rw-r--r--src/xmlpatterns/expr/qdocumentconstructor.cpp116
-rw-r--r--src/xmlpatterns/expr/qdocumentconstructor_p.h103
-rw-r--r--src/xmlpatterns/expr/qdocumentcontentvalidator.cpp148
-rw-r--r--src/xmlpatterns/expr/qdocumentcontentvalidator_p.h117
-rw-r--r--src/xmlpatterns/expr/qdynamiccontextstore.cpp96
-rw-r--r--src/xmlpatterns/expr/qdynamiccontextstore_p.h97
-rw-r--r--src/xmlpatterns/expr/qelementconstructor.cpp160
-rw-r--r--src/xmlpatterns/expr/qelementconstructor_p.h107
-rw-r--r--src/xmlpatterns/expr/qemptycontainer.cpp69
-rw-r--r--src/xmlpatterns/expr/qemptycontainer_p.h101
-rw-r--r--src/xmlpatterns/expr/qemptysequence.cpp112
-rw-r--r--src/xmlpatterns/expr/qemptysequence_p.h136
-rw-r--r--src/xmlpatterns/expr/qevaluationcache.cpp274
-rw-r--r--src/xmlpatterns/expr/qevaluationcache_p.h146
-rw-r--r--src/xmlpatterns/expr/qexpression.cpp414
-rw-r--r--src/xmlpatterns/expr/qexpression_p.h909
-rw-r--r--src/xmlpatterns/expr/qexpressiondispatch_p.h241
-rw-r--r--src/xmlpatterns/expr/qexpressionfactory.cpp480
-rw-r--r--src/xmlpatterns/expr/qexpressionfactory_p.h187
-rw-r--r--src/xmlpatterns/expr/qexpressionsequence.cpp206
-rw-r--r--src/xmlpatterns/expr/qexpressionsequence_p.h127
-rw-r--r--src/xmlpatterns/expr/qexpressionvariablereference.cpp93
-rw-r--r--src/xmlpatterns/expr/qexpressionvariablereference_p.h114
-rw-r--r--src/xmlpatterns/expr/qexternalvariableloader.cpp94
-rw-r--r--src/xmlpatterns/expr/qexternalvariableloader_p.h139
-rw-r--r--src/xmlpatterns/expr/qexternalvariablereference.cpp88
-rw-r--r--src/xmlpatterns/expr/qexternalvariablereference_p.h103
-rw-r--r--src/xmlpatterns/expr/qfirstitempredicate.cpp97
-rw-r--r--src/xmlpatterns/expr/qfirstitempredicate_p.h114
-rw-r--r--src/xmlpatterns/expr/qforclause.cpp200
-rw-r--r--src/xmlpatterns/expr/qforclause_p.h122
-rw-r--r--src/xmlpatterns/expr/qgeneralcomparison.cpp297
-rw-r--r--src/xmlpatterns/expr/qgeneralcomparison_p.h136
-rw-r--r--src/xmlpatterns/expr/qgenericpredicate.cpp218
-rw-r--r--src/xmlpatterns/expr/qgenericpredicate_p.h148
-rw-r--r--src/xmlpatterns/expr/qifthenclause.cpp152
-rw-r--r--src/xmlpatterns/expr/qifthenclause_p.h101
-rw-r--r--src/xmlpatterns/expr/qinstanceof.cpp129
-rw-r--r--src/xmlpatterns/expr/qinstanceof_p.h101
-rw-r--r--src/xmlpatterns/expr/qletclause.cpp142
-rw-r--r--src/xmlpatterns/expr/qletclause_p.h109
-rw-r--r--src/xmlpatterns/expr/qliteral.cpp114
-rw-r--r--src/xmlpatterns/expr/qliteral_p.h148
-rw-r--r--src/xmlpatterns/expr/qliteralsequence.cpp92
-rw-r--r--src/xmlpatterns/expr/qliteralsequence_p.h104
-rw-r--r--src/xmlpatterns/expr/qnamespaceconstructor.cpp87
-rw-r--r--src/xmlpatterns/expr/qnamespaceconstructor_p.h109
-rw-r--r--src/xmlpatterns/expr/qncnameconstructor.cpp96
-rw-r--r--src/xmlpatterns/expr/qncnameconstructor_p.h154
-rw-r--r--src/xmlpatterns/expr/qnodecomparison.cpp184
-rw-r--r--src/xmlpatterns/expr/qnodecomparison_p.h127
-rw-r--r--src/xmlpatterns/expr/qnodesort.cpp142
-rw-r--r--src/xmlpatterns/expr/qnodesort_p.h98
-rw-r--r--src/xmlpatterns/expr/qoperandsiterator_p.h193
-rw-r--r--src/xmlpatterns/expr/qoptimizationpasses.cpp182
-rw-r--r--src/xmlpatterns/expr/qoptimizationpasses_p.h143
-rw-r--r--src/xmlpatterns/expr/qoptimizerblocks.cpp179
-rw-r--r--src/xmlpatterns/expr/qoptimizerblocks_p.h226
-rw-r--r--src/xmlpatterns/expr/qoptimizerframework.cpp71
-rw-r--r--src/xmlpatterns/expr/qoptimizerframework_p.h294
-rw-r--r--src/xmlpatterns/expr/qorderby.cpp261
-rw-r--r--src/xmlpatterns/expr/qorderby_p.h183
-rw-r--r--src/xmlpatterns/expr/qorexpression.cpp83
-rw-r--r--src/xmlpatterns/expr/qorexpression_p.h88
-rw-r--r--src/xmlpatterns/expr/qpaircontainer.cpp85
-rw-r--r--src/xmlpatterns/expr/qpaircontainer_p.h89
-rw-r--r--src/xmlpatterns/expr/qparentnodeaxis.cpp77
-rw-r--r--src/xmlpatterns/expr/qparentnodeaxis_p.h103
-rw-r--r--src/xmlpatterns/expr/qpath.cpp271
-rw-r--r--src/xmlpatterns/expr/qpath_p.h176
-rw-r--r--src/xmlpatterns/expr/qpositionalvariablereference.cpp84
-rw-r--r--src/xmlpatterns/expr/qpositionalvariablereference_p.h100
-rw-r--r--src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp144
-rw-r--r--src/xmlpatterns/expr/qprocessinginstructionconstructor_p.h109
-rw-r--r--src/xmlpatterns/expr/qqnameconstructor.cpp114
-rw-r--r--src/xmlpatterns/expr/qqnameconstructor_p.h182
-rw-r--r--src/xmlpatterns/expr/qquantifiedexpression.cpp140
-rw-r--r--src/xmlpatterns/expr/qquantifiedexpression_p.h114
-rw-r--r--src/xmlpatterns/expr/qrangeexpression.cpp170
-rw-r--r--src/xmlpatterns/expr/qrangeexpression_p.h112
-rw-r--r--src/xmlpatterns/expr/qrangevariablereference.cpp92
-rw-r--r--src/xmlpatterns/expr/qrangevariablereference_p.h100
-rw-r--r--src/xmlpatterns/expr/qreturnorderby.cpp133
-rw-r--r--src/xmlpatterns/expr/qreturnorderby_p.h136
-rw-r--r--src/xmlpatterns/expr/qsimplecontentconstructor.cpp114
-rw-r--r--src/xmlpatterns/expr/qsimplecontentconstructor_p.h96
-rw-r--r--src/xmlpatterns/expr/qsinglecontainer.cpp76
-rw-r--r--src/xmlpatterns/expr/qsinglecontainer_p.h88
-rw-r--r--src/xmlpatterns/expr/qsourcelocationreflection.cpp65
-rw-r--r--src/xmlpatterns/expr/qsourcelocationreflection_p.h131
-rw-r--r--src/xmlpatterns/expr/qstaticbaseuristore.cpp82
-rw-r--r--src/xmlpatterns/expr/qstaticbaseuristore_p.h96
-rw-r--r--src/xmlpatterns/expr/qstaticcompatibilitystore.cpp79
-rw-r--r--src/xmlpatterns/expr/qstaticcompatibilitystore_p.h92
-rw-r--r--src/xmlpatterns/expr/qtemplate.cpp232
-rw-r--r--src/xmlpatterns/expr/qtemplate_p.h146
-rw-r--r--src/xmlpatterns/expr/qtemplateinvoker.cpp106
-rw-r--r--src/xmlpatterns/expr/qtemplateinvoker_p.h119
-rw-r--r--src/xmlpatterns/expr/qtemplatemode.cpp61
-rw-r--r--src/xmlpatterns/expr/qtemplatemode_p.h128
-rw-r--r--src/xmlpatterns/expr/qtemplateparameterreference.cpp91
-rw-r--r--src/xmlpatterns/expr/qtemplateparameterreference_p.h105
-rw-r--r--src/xmlpatterns/expr/qtemplatepattern_p.h161
-rw-r--r--src/xmlpatterns/expr/qtextnodeconstructor.cpp115
-rw-r--r--src/xmlpatterns/expr/qtextnodeconstructor_p.h97
-rw-r--r--src/xmlpatterns/expr/qtreatas.cpp92
-rw-r--r--src/xmlpatterns/expr/qtreatas_p.h122
-rw-r--r--src/xmlpatterns/expr/qtriplecontainer.cpp87
-rw-r--r--src/xmlpatterns/expr/qtriplecontainer_p.h92
-rw-r--r--src/xmlpatterns/expr/qtruthpredicate.cpp71
-rw-r--r--src/xmlpatterns/expr/qtruthpredicate_p.h112
-rw-r--r--src/xmlpatterns/expr/qunaryexpression.cpp79
-rw-r--r--src/xmlpatterns/expr/qunaryexpression_p.h114
-rw-r--r--src/xmlpatterns/expr/qunlimitedcontainer.cpp79
-rw-r--r--src/xmlpatterns/expr/qunlimitedcontainer_p.h149
-rw-r--r--src/xmlpatterns/expr/qunresolvedvariablereference.cpp91
-rw-r--r--src/xmlpatterns/expr/qunresolvedvariablereference_p.h111
-rw-r--r--src/xmlpatterns/expr/quserfunction.cpp62
-rw-r--r--src/xmlpatterns/expr/quserfunction_p.h135
-rw-r--r--src/xmlpatterns/expr/quserfunctioncallsite.cpp245
-rw-r--r--src/xmlpatterns/expr/quserfunctioncallsite_p.h182
-rw-r--r--src/xmlpatterns/expr/qvalidate.cpp77
-rw-r--r--src/xmlpatterns/expr/qvalidate_p.h106
-rw-r--r--src/xmlpatterns/expr/qvaluecomparison.cpp163
-rw-r--r--src/xmlpatterns/expr/qvaluecomparison_p.h138
-rw-r--r--src/xmlpatterns/expr/qvariabledeclaration.cpp63
-rw-r--r--src/xmlpatterns/expr/qvariabledeclaration_p.h203
-rw-r--r--src/xmlpatterns/expr/qvariablereference.cpp58
-rw-r--r--src/xmlpatterns/expr/qvariablereference_p.h121
-rw-r--r--src/xmlpatterns/expr/qwithparam_p.h123
-rw-r--r--src/xmlpatterns/expr/qxsltsimplecontentconstructor.cpp158
-rw-r--r--src/xmlpatterns/expr/qxsltsimplecontentconstructor_p.h89
-rw-r--r--src/xmlpatterns/functions/functions.pri96
-rw-r--r--src/xmlpatterns/functions/qabstractfunctionfactory.cpp103
-rw-r--r--src/xmlpatterns/functions/qabstractfunctionfactory_p.h157
-rw-r--r--src/xmlpatterns/functions/qaccessorfns.cpp159
-rw-r--r--src/xmlpatterns/functions/qaccessorfns_p.h138
-rw-r--r--src/xmlpatterns/functions/qaggregatefns.cpp316
-rw-r--r--src/xmlpatterns/functions/qaggregatefns_p.h156
-rw-r--r--src/xmlpatterns/functions/qaggregator.cpp69
-rw-r--r--src/xmlpatterns/functions/qaggregator_p.h94
-rw-r--r--src/xmlpatterns/functions/qassemblestringfns.cpp115
-rw-r--r--src/xmlpatterns/functions/qassemblestringfns_p.h103
-rw-r--r--src/xmlpatterns/functions/qbooleanfns.cpp71
-rw-r--r--src/xmlpatterns/functions/qbooleanfns_p.h119
-rw-r--r--src/xmlpatterns/functions/qcomparescaseaware.cpp71
-rw-r--r--src/xmlpatterns/functions/qcomparescaseaware_p.h98
-rw-r--r--src/xmlpatterns/functions/qcomparestringfns.cpp102
-rw-r--r--src/xmlpatterns/functions/qcomparestringfns_p.h102
-rw-r--r--src/xmlpatterns/functions/qcomparingaggregator.cpp211
-rw-r--r--src/xmlpatterns/functions/qcomparingaggregator_p.h146
-rw-r--r--src/xmlpatterns/functions/qconstructorfunctionsfactory.cpp114
-rw-r--r--src/xmlpatterns/functions/qconstructorfunctionsfactory_p.h95
-rw-r--r--src/xmlpatterns/functions/qcontextfns.cpp102
-rw-r--r--src/xmlpatterns/functions/qcontextfns_p.h195
-rw-r--r--src/xmlpatterns/functions/qcontextnodechecker.cpp63
-rw-r--r--src/xmlpatterns/functions/qcontextnodechecker_p.h85
-rw-r--r--src/xmlpatterns/functions/qcurrentfn.cpp75
-rw-r--r--src/xmlpatterns/functions/qcurrentfn_p.h89
-rw-r--r--src/xmlpatterns/functions/qdatetimefn.cpp96
-rw-r--r--src/xmlpatterns/functions/qdatetimefn_p.h82
-rw-r--r--src/xmlpatterns/functions/qdatetimefns.cpp145
-rw-r--r--src/xmlpatterns/functions/qdatetimefns_p.h305
-rw-r--r--src/xmlpatterns/functions/qdeepequalfn.cpp162
-rw-r--r--src/xmlpatterns/functions/qdeepequalfn_p.h94
-rw-r--r--src/xmlpatterns/functions/qdocumentfn.cpp115
-rw-r--r--src/xmlpatterns/functions/qdocumentfn_p.h124
-rw-r--r--src/xmlpatterns/functions/qelementavailablefn.cpp120
-rw-r--r--src/xmlpatterns/functions/qelementavailablefn_p.h87
-rw-r--r--src/xmlpatterns/functions/qerrorfn.cpp113
-rw-r--r--src/xmlpatterns/functions/qerrorfn_p.h91
-rw-r--r--src/xmlpatterns/functions/qfunctionargument.cpp66
-rw-r--r--src/xmlpatterns/functions/qfunctionargument_p.h98
-rw-r--r--src/xmlpatterns/functions/qfunctionavailablefn.cpp91
-rw-r--r--src/xmlpatterns/functions/qfunctionavailablefn_p.h92
-rw-r--r--src/xmlpatterns/functions/qfunctioncall.cpp160
-rw-r--r--src/xmlpatterns/functions/qfunctioncall_p.h102
-rw-r--r--src/xmlpatterns/functions/qfunctionfactory.cpp79
-rw-r--r--src/xmlpatterns/functions/qfunctionfactory_p.h168
-rw-r--r--src/xmlpatterns/functions/qfunctionfactorycollection.cpp138
-rw-r--r--src/xmlpatterns/functions/qfunctionfactorycollection_p.h118
-rw-r--r--src/xmlpatterns/functions/qfunctionsignature.cpp158
-rw-r--r--src/xmlpatterns/functions/qfunctionsignature_p.h213
-rw-r--r--src/xmlpatterns/functions/qgenerateidfn.cpp63
-rw-r--r--src/xmlpatterns/functions/qgenerateidfn_p.h83
-rw-r--r--src/xmlpatterns/functions/qnodefns.cpp209
-rw-r--r--src/xmlpatterns/functions/qnodefns_p.h176
-rw-r--r--src/xmlpatterns/functions/qnumericfns.cpp107
-rw-r--r--src/xmlpatterns/functions/qnumericfns_p.h140
-rw-r--r--src/xmlpatterns/functions/qpatternmatchingfns.cpp230
-rw-r--r--src/xmlpatterns/functions/qpatternmatchingfns_p.h139
-rw-r--r--src/xmlpatterns/functions/qpatternplatform.cpp300
-rw-r--r--src/xmlpatterns/functions/qpatternplatform_p.h183
-rw-r--r--src/xmlpatterns/functions/qqnamefns.cpp189
-rw-r--r--src/xmlpatterns/functions/qqnamefns_p.h162
-rw-r--r--src/xmlpatterns/functions/qresolveurifn.cpp87
-rw-r--r--src/xmlpatterns/functions/qresolveurifn_p.h82
-rw-r--r--src/xmlpatterns/functions/qsequencefns.cpp353
-rw-r--r--src/xmlpatterns/functions/qsequencefns_p.h338
-rw-r--r--src/xmlpatterns/functions/qsequencegeneratingfns.cpp304
-rw-r--r--src/xmlpatterns/functions/qsequencegeneratingfns_p.h167
-rw-r--r--src/xmlpatterns/functions/qstaticbaseuricontainer_p.h107
-rw-r--r--src/xmlpatterns/functions/qstaticnamespacescontainer.cpp57
-rw-r--r--src/xmlpatterns/functions/qstaticnamespacescontainer_p.h115
-rw-r--r--src/xmlpatterns/functions/qstringvaluefns.cpp373
-rw-r--r--src/xmlpatterns/functions/qstringvaluefns_p.h293
-rw-r--r--src/xmlpatterns/functions/qsubstringfns.cpp173
-rw-r--r--src/xmlpatterns/functions/qsubstringfns_p.h136
-rw-r--r--src/xmlpatterns/functions/qsystempropertyfn.cpp101
-rw-r--r--src/xmlpatterns/functions/qsystempropertyfn_p.h92
-rw-r--r--src/xmlpatterns/functions/qtimezonefns.cpp166
-rw-r--r--src/xmlpatterns/functions/qtimezonefns_p.h136
-rw-r--r--src/xmlpatterns/functions/qtracefn.cpp140
-rw-r--r--src/xmlpatterns/functions/qtracefn_p.h94
-rw-r--r--src/xmlpatterns/functions/qtypeavailablefn.cpp74
-rw-r--r--src/xmlpatterns/functions/qtypeavailablefn_p.h92
-rw-r--r--src/xmlpatterns/functions/qunparsedentitypublicidfn.cpp56
-rw-r--r--src/xmlpatterns/functions/qunparsedentitypublicidfn_p.h82
-rw-r--r--src/xmlpatterns/functions/qunparsedentityurifn.cpp56
-rw-r--r--src/xmlpatterns/functions/qunparsedentityurifn_p.h82
-rw-r--r--src/xmlpatterns/functions/qunparsedtextavailablefn.cpp85
-rw-r--r--src/xmlpatterns/functions/qunparsedtextavailablefn_p.h83
-rw-r--r--src/xmlpatterns/functions/qunparsedtextfn.cpp82
-rw-r--r--src/xmlpatterns/functions/qunparsedtextfn_p.h83
-rw-r--r--src/xmlpatterns/functions/qxpath10corefunctions.cpp300
-rw-r--r--src/xmlpatterns/functions/qxpath10corefunctions_p.h93
-rw-r--r--src/xmlpatterns/functions/qxpath20corefunctions.cpp748
-rw-r--r--src/xmlpatterns/functions/qxpath20corefunctions_p.h96
-rw-r--r--src/xmlpatterns/functions/qxslt20corefunctions.cpp175
-rw-r--r--src/xmlpatterns/functions/qxslt20corefunctions_p.h94
-rw-r--r--src/xmlpatterns/iterators/iterators.pri29
-rw-r--r--src/xmlpatterns/iterators/qcachingiterator.cpp130
-rw-r--r--src/xmlpatterns/iterators/qcachingiterator_p.h129
-rw-r--r--src/xmlpatterns/iterators/qdeduplicateiterator.cpp95
-rw-r--r--src/xmlpatterns/iterators/qdeduplicateiterator_p.h103
-rw-r--r--src/xmlpatterns/iterators/qdistinctiterator.cpp112
-rw-r--r--src/xmlpatterns/iterators/qdistinctiterator_p.h128
-rw-r--r--src/xmlpatterns/iterators/qemptyiterator_p.h146
-rw-r--r--src/xmlpatterns/iterators/qexceptiterator.cpp122
-rw-r--r--src/xmlpatterns/iterators/qexceptiterator_p.h101
-rw-r--r--src/xmlpatterns/iterators/qindexofiterator.cpp115
-rw-r--r--src/xmlpatterns/iterators/qindexofiterator_p.h129
-rw-r--r--src/xmlpatterns/iterators/qinsertioniterator.cpp128
-rw-r--r--src/xmlpatterns/iterators/qinsertioniterator_p.h120
-rw-r--r--src/xmlpatterns/iterators/qintersectiterator.cpp115
-rw-r--r--src/xmlpatterns/iterators/qintersectiterator_p.h107
-rw-r--r--src/xmlpatterns/iterators/qitemmappingiterator_p.h190
-rw-r--r--src/xmlpatterns/iterators/qrangeiterator.cpp126
-rw-r--r--src/xmlpatterns/iterators/qrangeiterator_p.h141
-rw-r--r--src/xmlpatterns/iterators/qremovaliterator.cpp109
-rw-r--r--src/xmlpatterns/iterators/qremovaliterator_p.h122
-rw-r--r--src/xmlpatterns/iterators/qsequencemappingiterator_p.h237
-rw-r--r--src/xmlpatterns/iterators/qsingletoniterator_p.h177
-rw-r--r--src/xmlpatterns/iterators/qsubsequenceiterator.cpp110
-rw-r--r--src/xmlpatterns/iterators/qsubsequenceiterator_p.h118
-rw-r--r--src/xmlpatterns/iterators/qtocodepointsiterator.cpp95
-rw-r--r--src/xmlpatterns/iterators/qtocodepointsiterator_p.h103
-rw-r--r--src/xmlpatterns/iterators/qunioniterator.cpp131
-rw-r--r--src/xmlpatterns/iterators/qunioniterator_p.h107
-rw-r--r--src/xmlpatterns/janitors/janitors.pri13
-rw-r--r--src/xmlpatterns/janitors/qargumentconverter.cpp104
-rw-r--r--src/xmlpatterns/janitors/qargumentconverter_p.h103
-rw-r--r--src/xmlpatterns/janitors/qatomizer.cpp125
-rw-r--r--src/xmlpatterns/janitors/qatomizer_p.h110
-rw-r--r--src/xmlpatterns/janitors/qcardinalityverifier.cpp224
-rw-r--r--src/xmlpatterns/janitors/qcardinalityverifier_p.h128
-rw-r--r--src/xmlpatterns/janitors/qebvextractor.cpp90
-rw-r--r--src/xmlpatterns/janitors/qebvextractor_p.h109
-rw-r--r--src/xmlpatterns/janitors/qitemverifier.cpp122
-rw-r--r--src/xmlpatterns/janitors/qitemverifier_p.h103
-rw-r--r--src/xmlpatterns/janitors/quntypedatomicconverter.cpp113
-rw-r--r--src/xmlpatterns/janitors/quntypedatomicconverter_p.h127
-rw-r--r--src/xmlpatterns/parser/.gitattributes4
-rw-r--r--src/xmlpatterns/parser/.gitignore1
-rw-r--r--src/xmlpatterns/parser/TokenLookup.gperf223
-rwxr-xr-xsrc/xmlpatterns/parser/createParser.sh15
-rwxr-xr-xsrc/xmlpatterns/parser/createTokenLookup.sh5
-rwxr-xr-xsrc/xmlpatterns/parser/createXSLTTokenLookup.sh3
-rw-r--r--src/xmlpatterns/parser/parser.pri19
-rw-r--r--src/xmlpatterns/parser/qmaintainingreader.cpp273
-rw-r--r--src/xmlpatterns/parser/qmaintainingreader_p.h233
-rw-r--r--src/xmlpatterns/parser/qparsercontext.cpp100
-rw-r--r--src/xmlpatterns/parser/qparsercontext_p.h433
-rw-r--r--src/xmlpatterns/parser/qquerytransformparser.cpp7976
-rw-r--r--src/xmlpatterns/parser/qquerytransformparser_p.h307
-rw-r--r--src/xmlpatterns/parser/qtokenizer_p.h216
-rw-r--r--src/xmlpatterns/parser/qtokenlookup.cpp404
-rw-r--r--src/xmlpatterns/parser/qtokenrevealer.cpp111
-rw-r--r--src/xmlpatterns/parser/qtokenrevealer_p.h97
-rw-r--r--src/xmlpatterns/parser/qtokensource.cpp53
-rw-r--r--src/xmlpatterns/parser/qtokensource_p.h169
-rw-r--r--src/xmlpatterns/parser/querytransformparser.ypp4572
-rw-r--r--src/xmlpatterns/parser/qxquerytokenizer.cpp2249
-rw-r--r--src/xmlpatterns/parser/qxquerytokenizer_p.h332
-rw-r--r--src/xmlpatterns/parser/qxslttokenizer.cpp2717
-rw-r--r--src/xmlpatterns/parser/qxslttokenizer_p.h481
-rw-r--r--src/xmlpatterns/parser/qxslttokenlookup.cpp3006
-rw-r--r--src/xmlpatterns/parser/qxslttokenlookup.xml167
-rw-r--r--src/xmlpatterns/parser/qxslttokenlookup_p.h213
-rw-r--r--src/xmlpatterns/parser/trolltechHeader.txt51
-rw-r--r--src/xmlpatterns/parser/winCEWorkaround.sed20
-rw-r--r--src/xmlpatterns/projection/projection.pri4
-rw-r--r--src/xmlpatterns/projection/qdocumentprojector.cpp214
-rw-r--r--src/xmlpatterns/projection/qdocumentprojector_p.h107
-rw-r--r--src/xmlpatterns/projection/qprojectedexpression_p.h165
-rw-r--r--src/xmlpatterns/qtokenautomaton/README66
-rw-r--r--src/xmlpatterns/qtokenautomaton/exampleFile.xml65
-rw-r--r--src/xmlpatterns/qtokenautomaton/qautomaton2cpp.xsl298
-rw-r--r--src/xmlpatterns/qtokenautomaton/qtokenautomaton.xsd89
-rw-r--r--src/xmlpatterns/query.pri14
-rw-r--r--src/xmlpatterns/type/qabstractnodetest.cpp78
-rw-r--r--src/xmlpatterns/type/qabstractnodetest_p.h87
-rw-r--r--src/xmlpatterns/type/qanyitemtype.cpp90
-rw-r--r--src/xmlpatterns/type/qanyitemtype_p.h119
-rw-r--r--src/xmlpatterns/type/qanynodetype.cpp98
-rw-r--r--src/xmlpatterns/type/qanynodetype_p.h113
-rw-r--r--src/xmlpatterns/type/qanysimpletype.cpp83
-rw-r--r--src/xmlpatterns/type/qanysimpletype_p.h118
-rw-r--r--src/xmlpatterns/type/qanytype.cpp93
-rw-r--r--src/xmlpatterns/type/qanytype_p.h132
-rw-r--r--src/xmlpatterns/type/qatomiccasterlocator.cpp82
-rw-r--r--src/xmlpatterns/type/qatomiccasterlocator_p.h126
-rw-r--r--src/xmlpatterns/type/qatomiccasterlocators.cpp252
-rw-r--r--src/xmlpatterns/type/qatomiccasterlocators_p.h909
-rw-r--r--src/xmlpatterns/type/qatomiccomparatorlocator.cpp91
-rw-r--r--src/xmlpatterns/type/qatomiccomparatorlocator_p.h132
-rw-r--r--src/xmlpatterns/type/qatomiccomparatorlocators.cpp232
-rw-r--r--src/xmlpatterns/type/qatomiccomparatorlocators_p.h356
-rw-r--r--src/xmlpatterns/type/qatomicmathematicianlocator.cpp85
-rw-r--r--src/xmlpatterns/type/qatomicmathematicianlocator_p.h158
-rw-r--r--src/xmlpatterns/type/qatomicmathematicianlocators.cpp168
-rw-r--r--src/xmlpatterns/type/qatomicmathematicianlocators_p.h249
-rw-r--r--src/xmlpatterns/type/qatomictype.cpp118
-rw-r--r--src/xmlpatterns/type/qatomictype_p.h160
-rw-r--r--src/xmlpatterns/type/qatomictypedispatch_p.h277
-rw-r--r--src/xmlpatterns/type/qbasictypesfactory.cpp128
-rw-r--r--src/xmlpatterns/type/qbasictypesfactory_p.h121
-rw-r--r--src/xmlpatterns/type/qbuiltinatomictype.cpp94
-rw-r--r--src/xmlpatterns/type/qbuiltinatomictype_p.h130
-rw-r--r--src/xmlpatterns/type/qbuiltinatomictypes.cpp226
-rw-r--r--src/xmlpatterns/type/qbuiltinatomictypes_p.h789
-rw-r--r--src/xmlpatterns/type/qbuiltinnodetype.cpp165
-rw-r--r--src/xmlpatterns/type/qbuiltinnodetype_p.h110
-rw-r--r--src/xmlpatterns/type/qbuiltintypes.cpp161
-rw-r--r--src/xmlpatterns/type/qbuiltintypes_p.h174
-rw-r--r--src/xmlpatterns/type/qcardinality.cpp102
-rw-r--r--src/xmlpatterns/type/qcardinality_p.h544
-rw-r--r--src/xmlpatterns/type/qcommonsequencetypes.cpp132
-rw-r--r--src/xmlpatterns/type/qcommonsequencetypes_p.h414
-rw-r--r--src/xmlpatterns/type/qebvtype.cpp123
-rw-r--r--src/xmlpatterns/type/qebvtype_p.h135
-rw-r--r--src/xmlpatterns/type/qemptysequencetype.cpp101
-rw-r--r--src/xmlpatterns/type/qemptysequencetype_p.h124
-rw-r--r--src/xmlpatterns/type/qgenericsequencetype.cpp72
-rw-r--r--src/xmlpatterns/type/qgenericsequencetype_p.h115
-rw-r--r--src/xmlpatterns/type/qitemtype.cpp103
-rw-r--r--src/xmlpatterns/type/qitemtype_p.h286
-rw-r--r--src/xmlpatterns/type/qlocalnametest.cpp99
-rw-r--r--src/xmlpatterns/type/qlocalnametest_p.h102
-rw-r--r--src/xmlpatterns/type/qmultiitemtype.cpp140
-rw-r--r--src/xmlpatterns/type/qmultiitemtype_p.h146
-rw-r--r--src/xmlpatterns/type/qnamespacenametest.cpp95
-rw-r--r--src/xmlpatterns/type/qnamespacenametest_p.h101
-rw-r--r--src/xmlpatterns/type/qnonetype.cpp104
-rw-r--r--src/xmlpatterns/type/qnonetype_p.h155
-rw-r--r--src/xmlpatterns/type/qnumerictype.cpp142
-rw-r--r--src/xmlpatterns/type/qnumerictype_p.h174
-rw-r--r--src/xmlpatterns/type/qprimitives_p.h202
-rw-r--r--src/xmlpatterns/type/qqnametest.cpp99
-rw-r--r--src/xmlpatterns/type/qqnametest_p.h103
-rw-r--r--src/xmlpatterns/type/qschemacomponent.cpp56
-rw-r--r--src/xmlpatterns/type/qschemacomponent_p.h85
-rw-r--r--src/xmlpatterns/type/qschematype.cpp75
-rw-r--r--src/xmlpatterns/type/qschematype_p.h222
-rw-r--r--src/xmlpatterns/type/qschematypefactory.cpp56
-rw-r--r--src/xmlpatterns/type/qschematypefactory_p.h102
-rw-r--r--src/xmlpatterns/type/qsequencetype.cpp65
-rw-r--r--src/xmlpatterns/type/qsequencetype_p.h138
-rw-r--r--src/xmlpatterns/type/qtypechecker.cpp296
-rw-r--r--src/xmlpatterns/type/qtypechecker_p.h185
-rw-r--r--src/xmlpatterns/type/quntyped.cpp79
-rw-r--r--src/xmlpatterns/type/quntyped_p.h112
-rw-r--r--src/xmlpatterns/type/qxsltnodetest.cpp72
-rw-r--r--src/xmlpatterns/type/qxsltnodetest_p.h100
-rw-r--r--src/xmlpatterns/type/type.pri70
-rw-r--r--src/xmlpatterns/utils/qautoptr.cpp50
-rw-r--r--src/xmlpatterns/utils/qautoptr_p.h177
-rw-r--r--src/xmlpatterns/utils/qcommonnamespaces_p.h152
-rw-r--r--src/xmlpatterns/utils/qcppcastinghelper_p.h161
-rw-r--r--src/xmlpatterns/utils/qdebug_p.h107
-rw-r--r--src/xmlpatterns/utils/qdelegatingnamespaceresolver.cpp92
-rw-r--r--src/xmlpatterns/utils/qdelegatingnamespaceresolver_p.h96
-rw-r--r--src/xmlpatterns/utils/qgenericnamespaceresolver.cpp96
-rw-r--r--src/xmlpatterns/utils/qgenericnamespaceresolver_p.h113
-rw-r--r--src/xmlpatterns/utils/qnamepool.cpp418
-rw-r--r--src/xmlpatterns/utils/qnamepool_p.h556
-rw-r--r--src/xmlpatterns/utils/qnamespacebinding_p.h143
-rw-r--r--src/xmlpatterns/utils/qnamespaceresolver.cpp57
-rw-r--r--src/xmlpatterns/utils/qnamespaceresolver_p.h119
-rw-r--r--src/xmlpatterns/utils/qnodenamespaceresolver.cpp83
-rw-r--r--src/xmlpatterns/utils/qnodenamespaceresolver_p.h91
-rw-r--r--src/xmlpatterns/utils/qoutputvalidator.cpp162
-rw-r--r--src/xmlpatterns/utils/qoutputvalidator_p.h127
-rw-r--r--src/xmlpatterns/utils/qpatternistlocale.cpp91
-rw-r--r--src/xmlpatterns/utils/qpatternistlocale_p.h273
-rw-r--r--src/xmlpatterns/utils/qxpathhelper.cpp128
-rw-r--r--src/xmlpatterns/utils/qxpathhelper_p.h174
-rw-r--r--src/xmlpatterns/utils/utils.pri21
-rw-r--r--src/xmlpatterns/xmlpatterns.pro35
-rw-r--r--tests/README18
-rw-r--r--tests/arthur/.gitattributes2
-rw-r--r--tests/arthur/README84
-rw-r--r--tests/arthur/arthurtester.pri21
-rw-r--r--tests/arthur/arthurtester.pro6
-rw-r--r--tests/arthur/common/common.pri18
-rw-r--r--tests/arthur/common/common.pro20
-rw-r--r--tests/arthur/common/framework.cpp130
-rw-r--r--tests/arthur/common/framework.h76
-rw-r--r--tests/arthur/common/images.qrc33
-rw-r--r--tests/arthur/common/images/alpha.pngbin0 -> 2422 bytes-rw-r--r--tests/arthur/common/images/alpha2x2.pngbin0 -> 169 bytes-rw-r--r--tests/arthur/common/images/bitmap.pngbin0 -> 254 bytes-rw-r--r--tests/arthur/common/images/border.pngbin0 -> 182 bytes-rw-r--r--tests/arthur/common/images/dome_argb32.pngbin0 -> 18234 bytes-rw-r--r--tests/arthur/common/images/dome_indexed.pngbin0 -> 7946 bytes-rw-r--r--tests/arthur/common/images/dome_indexed_mask.pngbin0 -> 5411 bytes-rw-r--r--tests/arthur/common/images/dome_mono.pngbin0 -> 1391 bytes-rw-r--r--tests/arthur/common/images/dome_mono_128.pngbin0 -> 2649 bytes-rw-r--r--tests/arthur/common/images/dome_mono_palette.pngbin0 -> 1404 bytes-rw-r--r--tests/arthur/common/images/dome_rgb32.pngbin0 -> 17890 bytes-rw-r--r--tests/arthur/common/images/dot.pngbin0 -> 287 bytes-rw-r--r--tests/arthur/common/images/face.pngbin0 -> 2414 bytes-rw-r--r--tests/arthur/common/images/gam030.pngbin0 -> 213 bytes-rw-r--r--tests/arthur/common/images/gam045.pngbin0 -> 216 bytes-rw-r--r--tests/arthur/common/images/gam056.pngbin0 -> 216 bytes-rw-r--r--tests/arthur/common/images/gam100.pngbin0 -> 205 bytes-rw-r--r--tests/arthur/common/images/gam200.pngbin0 -> 187 bytes-rw-r--r--tests/arthur/common/images/image.pngbin0 -> 169554 bytes-rw-r--r--tests/arthur/common/images/mask.pngbin0 -> 274 bytes-rw-r--r--tests/arthur/common/images/mask_100.pngbin0 -> 319 bytes-rw-r--r--tests/arthur/common/images/masked.pngbin0 -> 788 bytes-rw-r--r--tests/arthur/common/images/sign.pngbin0 -> 10647 bytes-rw-r--r--tests/arthur/common/images/solid.pngbin0 -> 607 bytes-rw-r--r--tests/arthur/common/images/solid2x2.pngbin0 -> 169 bytes-rw-r--r--tests/arthur/common/images/struct-image-01.jpgbin0 -> 4751 bytes-rw-r--r--tests/arthur/common/images/struct-image-01.pngbin0 -> 63238 bytes-rw-r--r--tests/arthur/common/images/zebra.pngbin0 -> 426 bytes-rw-r--r--tests/arthur/common/paintcommands.cpp2657
-rw-r--r--tests/arthur/common/paintcommands.h332
-rw-r--r--tests/arthur/common/qengines.cpp733
-rw-r--r--tests/arthur/common/qengines.h240
-rw-r--r--tests/arthur/common/xmldata.cpp110
-rw-r--r--tests/arthur/common/xmldata.h153
-rw-r--r--tests/arthur/data/1.1/color-prop-03-t.svg101
-rw-r--r--tests/arthur/data/1.1/coords-trans-01-b.svg240
-rw-r--r--tests/arthur/data/1.1/coords-trans-02-t.svg178
-rw-r--r--tests/arthur/data/1.1/coords-trans-03-t.svg100
-rw-r--r--tests/arthur/data/1.1/coords-trans-04-t.svg69
-rw-r--r--tests/arthur/data/1.1/coords-trans-05-t.svg89
-rw-r--r--tests/arthur/data/1.1/coords-trans-06-t.svg83
-rw-r--r--tests/arthur/data/1.1/fonts-elem-01-t.svg103
-rw-r--r--tests/arthur/data/1.1/fonts-elem-02-t.svg107
-rw-r--r--tests/arthur/data/1.1/interact-zoom-01-t.svg71
-rw-r--r--tests/arthur/data/1.1/linking-a-04-t.svg124
-rw-r--r--tests/arthur/data/1.1/linking-uri-03-t.svg74
-rw-r--r--tests/arthur/data/1.1/metadata-example-01-b.svg175
-rw-r--r--tests/arthur/data/1.1/painting-fill-01-t.svg80
-rw-r--r--tests/arthur/data/1.1/painting-fill-02-t.svg80
-rw-r--r--tests/arthur/data/1.1/painting-fill-03-t.svg77
-rw-r--r--tests/arthur/data/1.1/painting-fill-04-t.svg57
-rw-r--r--tests/arthur/data/1.1/painting-stroke-01-t.svg55
-rw-r--r--tests/arthur/data/1.1/painting-stroke-02-t.svg56
-rw-r--r--tests/arthur/data/1.1/painting-stroke-03-t.svg57
-rw-r--r--tests/arthur/data/1.1/painting-stroke-04-t.svg71
-rw-r--r--tests/arthur/data/1.1/paths-data-01-t.svg158
-rw-r--r--tests/arthur/data/1.1/paths-data-02-t.svg132
-rw-r--r--tests/arthur/data/1.1/paths-data-04-t.svg92
-rw-r--r--tests/arthur/data/1.1/paths-data-05-t.svg89
-rw-r--r--tests/arthur/data/1.1/paths-data-06-t.svg72
-rw-r--r--tests/arthur/data/1.1/paths-data-07-t.svg72
-rw-r--r--tests/arthur/data/1.1/pservers-grad-07-b.svg74
-rw-r--r--tests/arthur/data/1.1/pservers-grad-11-b.svg100
-rw-r--r--tests/arthur/data/1.1/render-elems-01-t.svg54
-rw-r--r--tests/arthur/data/1.1/render-elems-02-t.svg75
-rw-r--r--tests/arthur/data/1.1/render-elems-03-t.svg57
-rw-r--r--tests/arthur/data/1.1/render-elems-06-t.svg75
-rw-r--r--tests/arthur/data/1.1/render-elems-07-t.svg76
-rw-r--r--tests/arthur/data/1.1/render-elems-08-t.svg78
-rw-r--r--tests/arthur/data/1.1/render-groups-03-t.svg117
-rw-r--r--tests/arthur/data/1.1/shapes-circle-01-t.svg56
-rw-r--r--tests/arthur/data/1.1/shapes-ellipse-01-t.svg72
-rw-r--r--tests/arthur/data/1.1/shapes-line-01-t.svg80
-rw-r--r--tests/arthur/data/1.1/shapes-polygon-01-t.svg73
-rw-r--r--tests/arthur/data/1.1/shapes-polyline-01-t.svg84
-rw-r--r--tests/arthur/data/1.1/shapes-rect-01-t.svg72
-rw-r--r--tests/arthur/data/1.1/struct-cond-01-t.svg75
-rw-r--r--tests/arthur/data/1.1/struct-cond-02-t.svg574
-rw-r--r--tests/arthur/data/1.1/struct-defs-01-t.svg85
-rw-r--r--tests/arthur/data/1.1/struct-group-01-t.svg71
-rw-r--r--tests/arthur/data/1.1/struct-image-01-t.svg65
-rw-r--r--tests/arthur/data/1.1/struct-image-03-t.svg54
-rw-r--r--tests/arthur/data/1.1/struct-image-04-t.svg126
-rw-r--r--tests/arthur/data/1.1/styling-pres-01-t.svg38
-rw-r--r--tests/arthur/data/1.1/text-fonts-01-t.svg98
-rw-r--r--tests/arthur/data/1.1/text-fonts-02-t.svg73
-rw-r--r--tests/arthur/data/1.1/text-intro-01-t.svg69
-rw-r--r--tests/arthur/data/1.1/text-intro-04-t.svg68
-rw-r--r--tests/arthur/data/1.1/text-ws-01-t.svg99
-rw-r--r--tests/arthur/data/1.1/text-ws-02-t.svg104
-rw-r--r--tests/arthur/data/1.2/07_07.svg40
-rw-r--r--tests/arthur/data/1.2/07_12.svg21
-rw-r--r--tests/arthur/data/1.2/08_02.svg26
-rw-r--r--tests/arthur/data/1.2/08_03.svg28
-rw-r--r--tests/arthur/data/1.2/08_04.svg19
-rw-r--r--tests/arthur/data/1.2/09_02.svg14
-rw-r--r--tests/arthur/data/1.2/09_03.svg10
-rw-r--r--tests/arthur/data/1.2/09_04.svg15
-rw-r--r--tests/arthur/data/1.2/09_05.svg20
-rw-r--r--tests/arthur/data/1.2/09_06.svg16
-rw-r--r--tests/arthur/data/1.2/09_07.svg15
-rw-r--r--tests/arthur/data/1.2/10_03.svg15
-rw-r--r--tests/arthur/data/1.2/10_04.svg20
-rw-r--r--tests/arthur/data/1.2/10_05.svg21
-rw-r--r--tests/arthur/data/1.2/10_06.svg20
-rw-r--r--tests/arthur/data/1.2/10_07.svg20
-rw-r--r--tests/arthur/data/1.2/10_08.svg23
-rw-r--r--tests/arthur/data/1.2/10_09.svg30
-rw-r--r--tests/arthur/data/1.2/10_10.svg23
-rw-r--r--tests/arthur/data/1.2/10_11.svg24
-rw-r--r--tests/arthur/data/1.2/11_01.svg20
-rw-r--r--tests/arthur/data/1.2/11_02.svg9
-rw-r--r--tests/arthur/data/1.2/11_03.svg11
-rw-r--r--tests/arthur/data/1.2/13_01.svg20
-rw-r--r--tests/arthur/data/1.2/13_02.svg22
-rw-r--r--tests/arthur/data/1.2/19_01.svg51
-rw-r--r--tests/arthur/data/1.2/19_02.svg25
-rw-r--r--tests/arthur/data/1.2/animation.svg11
-rw-r--r--tests/arthur/data/1.2/cubic02.svg77
-rw-r--r--tests/arthur/data/1.2/fillrule-evenodd.svg38
-rw-r--r--tests/arthur/data/1.2/fillrule-nonzero.svg38
-rw-r--r--tests/arthur/data/1.2/linecap.svg32
-rw-r--r--tests/arthur/data/1.2/linejoin.svg29
-rw-r--r--tests/arthur/data/1.2/media01.svg20
-rw-r--r--tests/arthur/data/1.2/media02.svg13
-rw-r--r--tests/arthur/data/1.2/media03.svg13
-rw-r--r--tests/arthur/data/1.2/media04.svg24
-rw-r--r--tests/arthur/data/1.2/media05.svg27
-rw-r--r--tests/arthur/data/1.2/mpath01.svg10
-rw-r--r--tests/arthur/data/1.2/non-scaling-stroke.svg15
-rw-r--r--tests/arthur/data/1.2/noonoo.svg13
-rw-r--r--tests/arthur/data/1.2/referencedRect.svg9
-rw-r--r--tests/arthur/data/1.2/referencedRect2.svg9
-rw-r--r--tests/arthur/data/1.2/solidcolor.svg16
-rw-r--r--tests/arthur/data/1.2/textArea01.svg10
-rw-r--r--tests/arthur/data/1.2/timed-lyrics.svg22
-rw-r--r--tests/arthur/data/1.2/use.svg22
-rw-r--r--tests/arthur/data/bugs/.gitattributes2
-rw-r--r--tests/arthur/data/bugs/gradient-defaults.svg18
-rw-r--r--tests/arthur/data/bugs/gradient_pen_fill.svg32
-rw-r--r--tests/arthur/data/bugs/openglcurve.svg35
-rw-r--r--tests/arthur/data/bugs/org_module.svg389
-rw-r--r--tests/arthur/data/bugs/resolve_linear.svg29
-rw-r--r--tests/arthur/data/bugs/resolve_radial.svg36
-rw-r--r--tests/arthur/data/bugs/text_pens.svg7
-rw-r--r--tests/arthur/data/framework.ini22
-rw-r--r--tests/arthur/data/images/alpha.pngbin0 -> 2422 bytes-rw-r--r--tests/arthur/data/images/bitmap.pngbin0 -> 254 bytes-rw-r--r--tests/arthur/data/images/border.pngbin0 -> 182 bytes-rw-r--r--tests/arthur/data/images/dome_argb32.pngbin0 -> 18234 bytes-rw-r--r--tests/arthur/data/images/dome_indexed.pngbin0 -> 7946 bytes-rw-r--r--tests/arthur/data/images/dome_indexed_mask.pngbin0 -> 5411 bytes-rw-r--r--tests/arthur/data/images/dome_mono.pngbin0 -> 1391 bytes-rw-r--r--tests/arthur/data/images/dome_mono_128.pngbin0 -> 2649 bytes-rw-r--r--tests/arthur/data/images/dome_mono_palette.pngbin0 -> 1404 bytes-rw-r--r--tests/arthur/data/images/dome_rgb32.pngbin0 -> 17890 bytes-rw-r--r--tests/arthur/data/images/dot.pngbin0 -> 287 bytes-rw-r--r--tests/arthur/data/images/face.pngbin0 -> 2414 bytes-rw-r--r--tests/arthur/data/images/gam030.pngbin0 -> 213 bytes-rw-r--r--tests/arthur/data/images/gam045.pngbin0 -> 216 bytes-rw-r--r--tests/arthur/data/images/gam056.pngbin0 -> 216 bytes-rw-r--r--tests/arthur/data/images/gam100.pngbin0 -> 205 bytes-rw-r--r--tests/arthur/data/images/gam200.pngbin0 -> 187 bytes-rw-r--r--tests/arthur/data/images/image.pngbin0 -> 169554 bytes-rw-r--r--tests/arthur/data/images/mask.pngbin0 -> 274 bytes-rw-r--r--tests/arthur/data/images/mask_100.pngbin0 -> 319 bytes-rw-r--r--tests/arthur/data/images/masked.pngbin0 -> 788 bytes-rw-r--r--tests/arthur/data/images/paths.qps32
-rw-r--r--tests/arthur/data/images/pens.qps96
-rw-r--r--tests/arthur/data/images/sign.pngbin0 -> 10647 bytes-rw-r--r--tests/arthur/data/images/solid.pngbin0 -> 607 bytes-rw-r--r--tests/arthur/data/images/struct-image-01.jpgbin0 -> 4751 bytes-rw-r--r--tests/arthur/data/images/struct-image-01.pngbin0 -> 63238 bytes-rw-r--r--tests/arthur/data/qps/alphas.qps63
-rw-r--r--tests/arthur/data/qps/alphas_qps.pngbin0 -> 45840 bytes-rw-r--r--tests/arthur/data/qps/arcs.qps65
-rw-r--r--tests/arthur/data/qps/arcs2.qps44
-rw-r--r--tests/arthur/data/qps/arcs2_qps.pngbin0 -> 9136 bytes-rw-r--r--tests/arthur/data/qps/arcs_qps.pngbin0 -> 110658 bytes-rw-r--r--tests/arthur/data/qps/background.qps133
-rw-r--r--tests/arthur/data/qps/background_brush.qps2
-rw-r--r--tests/arthur/data/qps/background_brush_qps.pngbin0 -> 62149 bytes-rw-r--r--tests/arthur/data/qps/background_qps.pngbin0 -> 53461 bytes-rw-r--r--tests/arthur/data/qps/beziers.qps144
-rw-r--r--tests/arthur/data/qps/beziers_qps.pngbin0 -> 57610 bytes-rw-r--r--tests/arthur/data/qps/bitmaps.qps163
-rw-r--r--tests/arthur/data/qps/bitmaps_qps.pngbin0 -> 89888 bytes-rw-r--r--tests/arthur/data/qps/brush_pens.qps101
-rw-r--r--tests/arthur/data/qps/brush_pens_qps.pngbin0 -> 77823 bytes-rw-r--r--tests/arthur/data/qps/brushes.qps77
-rw-r--r--tests/arthur/data/qps/brushes_qps.pngbin0 -> 134906 bytes-rw-r--r--tests/arthur/data/qps/clippaths.qps58
-rw-r--r--tests/arthur/data/qps/clippaths_qps.pngbin0 -> 6484 bytes-rw-r--r--tests/arthur/data/qps/clipping.qps179
-rw-r--r--tests/arthur/data/qps/clipping_qps.pngbin0 -> 14424 bytes-rw-r--r--tests/arthur/data/qps/clipping_state.qps57
-rw-r--r--tests/arthur/data/qps/clipping_state_qps.pngbin0 -> 5089 bytes-rw-r--r--tests/arthur/data/qps/cliprects.qps57
-rw-r--r--tests/arthur/data/qps/cliprects_qps.pngbin0 -> 6484 bytes-rw-r--r--tests/arthur/data/qps/conical_gradients.qps82
-rw-r--r--tests/arthur/data/qps/conical_gradients_perspectives.qps61
-rw-r--r--tests/arthur/data/qps/conical_gradients_perspectives_qps.pngbin0 -> 115264 bytes-rw-r--r--tests/arthur/data/qps/conical_gradients_qps.pngbin0 -> 108982 bytes-rw-r--r--tests/arthur/data/qps/dashes.qps265
-rw-r--r--tests/arthur/data/qps/dashes_qps.pngbin0 -> 48344 bytes-rw-r--r--tests/arthur/data/qps/degeneratebeziers.qps7
-rw-r--r--tests/arthur/data/qps/degeneratebeziers_qps.pngbin0 -> 5503 bytes-rw-r--r--tests/arthur/data/qps/deviceclipping.qps45
-rw-r--r--tests/arthur/data/qps/deviceclipping_qps.pngbin0 -> 12919 bytes-rw-r--r--tests/arthur/data/qps/drawpoints.qps98
-rw-r--r--tests/arthur/data/qps/drawpoints_qps.pngbin0 -> 8224 bytes-rw-r--r--tests/arthur/data/qps/drawtext.qps85
-rw-r--r--tests/arthur/data/qps/drawtext_qps.pngbin0 -> 55646 bytes-rw-r--r--tests/arthur/data/qps/ellipses.qps83
-rw-r--r--tests/arthur/data/qps/ellipses_qps.pngbin0 -> 36197 bytes-rw-r--r--tests/arthur/data/qps/filltest.qps410
-rw-r--r--tests/arthur/data/qps/filltest_qps.pngbin0 -> 22602 bytes-rw-r--r--tests/arthur/data/qps/fonts.qps64
-rw-r--r--tests/arthur/data/qps/fonts_qps.pngbin0 -> 75853 bytes-rw-r--r--tests/arthur/data/qps/gradients.qps41
-rw-r--r--tests/arthur/data/qps/gradients_qps.pngbin0 -> 41596 bytes-rw-r--r--tests/arthur/data/qps/image_formats.qps78
-rw-r--r--tests/arthur/data/qps/image_formats_qps.pngbin0 -> 275242 bytes-rw-r--r--tests/arthur/data/qps/images.qps103
-rw-r--r--tests/arthur/data/qps/images2.qps143
-rw-r--r--tests/arthur/data/qps/images2_qps.pngbin0 -> 182146 bytes-rw-r--r--tests/arthur/data/qps/images_qps.pngbin0 -> 322000 bytes-rw-r--r--tests/arthur/data/qps/join_cap_styles.qps60
-rw-r--r--tests/arthur/data/qps/join_cap_styles_duplicate_control_points.qps65
-rw-r--r--tests/arthur/data/qps/join_cap_styles_duplicate_control_points_qps.pngbin0 -> 42237 bytes-rw-r--r--tests/arthur/data/qps/join_cap_styles_qps.pngbin0 -> 37518 bytes-rw-r--r--tests/arthur/data/qps/linear_gradients.qps141
-rw-r--r--tests/arthur/data/qps/linear_gradients_perspectives.qps60
-rw-r--r--tests/arthur/data/qps/linear_gradients_perspectives_qps.pngbin0 -> 78017 bytes-rw-r--r--tests/arthur/data/qps/linear_gradients_qps.pngbin0 -> 82119 bytes-rw-r--r--tests/arthur/data/qps/linear_resolving_gradients.qps75
-rw-r--r--tests/arthur/data/qps/linear_resolving_gradients_qps.pngbin0 -> 76697 bytes-rw-r--r--tests/arthur/data/qps/lineconsistency.qps70
-rw-r--r--tests/arthur/data/qps/lineconsistency_qps.pngbin0 -> 12500 bytes-rw-r--r--tests/arthur/data/qps/linedashes.qps92
-rw-r--r--tests/arthur/data/qps/linedashes2.qps151
-rw-r--r--tests/arthur/data/qps/linedashes2_aa.qps2
-rw-r--r--tests/arthur/data/qps/linedashes2_aa_qps.pngbin0 -> 28956 bytes-rw-r--r--tests/arthur/data/qps/linedashes2_qps.pngbin0 -> 12182 bytes-rw-r--r--tests/arthur/data/qps/linedashes_qps.pngbin0 -> 11801 bytes-rw-r--r--tests/arthur/data/qps/lines.qps555
-rw-r--r--tests/arthur/data/qps/lines2.qps176
-rw-r--r--tests/arthur/data/qps/lines2_qps.pngbin0 -> 36623 bytes-rw-r--r--tests/arthur/data/qps/lines_qps.pngbin0 -> 113575 bytes-rw-r--r--tests/arthur/data/qps/object_bounding_mode.qps35
-rw-r--r--tests/arthur/data/qps/object_bounding_mode_qps.pngbin0 -> 85460 bytes-rw-r--r--tests/arthur/data/qps/pathfill.qps35
-rw-r--r--tests/arthur/data/qps/pathfill_qps.pngbin0 -> 198538 bytes-rw-r--r--tests/arthur/data/qps/paths.qps32
-rw-r--r--tests/arthur/data/qps/paths_aa.qps2
-rw-r--r--tests/arthur/data/qps/paths_aa_qps.pngbin0 -> 92711 bytes-rw-r--r--tests/arthur/data/qps/paths_qps.pngbin0 -> 20637 bytes-rw-r--r--tests/arthur/data/qps/pens.qps130
-rw-r--r--tests/arthur/data/qps/pens_aa.qps3
-rw-r--r--tests/arthur/data/qps/pens_aa_qps.pngbin0 -> 30813 bytes-rw-r--r--tests/arthur/data/qps/pens_cosmetic.qps107
-rw-r--r--tests/arthur/data/qps/pens_cosmetic_qps.pngbin0 -> 47487 bytes-rw-r--r--tests/arthur/data/qps/pens_qps.pngbin0 -> 11822 bytes-rw-r--r--tests/arthur/data/qps/perspectives.qps70
-rw-r--r--tests/arthur/data/qps/perspectives2.qps307
-rw-r--r--tests/arthur/data/qps/perspectives2_qps.pngbin0 -> 234054 bytes-rw-r--r--tests/arthur/data/qps/perspectives_qps.pngbin0 -> 491494 bytes-rw-r--r--tests/arthur/data/qps/pixmap_rotation.qps27
-rw-r--r--tests/arthur/data/qps/pixmap_rotation_qps.pngbin0 -> 8141 bytes-rw-r--r--tests/arthur/data/qps/pixmap_scaling.qps219
-rw-r--r--tests/arthur/data/qps/pixmap_subpixel.qps115
-rw-r--r--tests/arthur/data/qps/pixmap_subpixel_qps.pngbin0 -> 5317 bytes-rw-r--r--tests/arthur/data/qps/pixmaps.qps103
-rw-r--r--tests/arthur/data/qps/pixmaps_qps.pngbin0 -> 321685 bytes-rw-r--r--tests/arthur/data/qps/porter_duff.qps248
-rw-r--r--tests/arthur/data/qps/porter_duff2.qps256
-rw-r--r--tests/arthur/data/qps/porter_duff2_qps.pngbin0 -> 99167 bytes-rw-r--r--tests/arthur/data/qps/porter_duff_qps.pngbin0 -> 39375 bytes-rw-r--r--tests/arthur/data/qps/primitives.qps179
-rw-r--r--tests/arthur/data/qps/primitives_qps.pngbin0 -> 104235 bytes-rw-r--r--tests/arthur/data/qps/radial_gradients.qps96
-rw-r--r--tests/arthur/data/qps/radial_gradients_perspectives.qps60
-rw-r--r--tests/arthur/data/qps/radial_gradients_perspectives_qps.pngbin0 -> 133150 bytes-rw-r--r--tests/arthur/data/qps/radial_gradients_qps.pngbin0 -> 156036 bytes-rw-r--r--tests/arthur/data/qps/rasterops.qps83
-rw-r--r--tests/arthur/data/qps/rasterops_qps.pngbin0 -> 20400 bytes-rw-r--r--tests/arthur/data/qps/sizes.qps147
-rw-r--r--tests/arthur/data/qps/sizes_qps.pngbin0 -> 42355 bytes-rw-r--r--tests/arthur/data/qps/text.qps122
-rw-r--r--tests/arthur/data/qps/text_perspectives.qps100
-rw-r--r--tests/arthur/data/qps/text_perspectives_qps.pngbin0 -> 112750 bytes-rw-r--r--tests/arthur/data/qps/text_qps.pngbin0 -> 72027 bytes-rw-r--r--tests/arthur/data/qps/tiled_pixmap.qps82
-rw-r--r--tests/arthur/data/qps/tiled_pixmap_qps.pngbin0 -> 376370 bytes-rw-r--r--tests/arthur/data/random/arcs02.svg59
-rw-r--r--tests/arthur/data/random/atop.svg55
-rw-r--r--tests/arthur/data/random/clinton.svg370
-rw-r--r--tests/arthur/data/random/cowboy.svg4110
-rw-r--r--tests/arthur/data/random/gear_is_rising.svg702
-rw-r--r--tests/arthur/data/random/gearflowers.svg8342
-rw-r--r--tests/arthur/data/random/kde-look.svg16674
-rw-r--r--tests/arthur/data/random/linear_grad_transform.svg51
-rw-r--r--tests/arthur/data/random/longhorn.svg1595
-rw-r--r--tests/arthur/data/random/multiply.svg48
-rw-r--r--tests/arthur/data/random/picasso.svg2842
-rw-r--r--tests/arthur/data/random/porterduff.svg298
-rw-r--r--tests/arthur/data/random/radial_grad_transform.svg59
-rw-r--r--tests/arthur/data/random/solidcolor.svg15
-rw-r--r--tests/arthur/data/random/spiral.svg536
-rw-r--r--tests/arthur/data/random/tests.svg36
-rw-r--r--tests/arthur/data/random/tests2.svg12
-rw-r--r--tests/arthur/data/random/tiger.svg728
-rw-r--r--tests/arthur/data/random/uluru.pngbin0 -> 11749 bytes-rw-r--r--tests/arthur/data/random/worldcup.svg14668
-rw-r--r--tests/arthur/datagenerator/datagenerator.cpp481
-rw-r--r--tests/arthur/datagenerator/datagenerator.h103
-rw-r--r--tests/arthur/datagenerator/datagenerator.pri2
-rw-r--r--tests/arthur/datagenerator/datagenerator.pro20
-rw-r--r--tests/arthur/datagenerator/main.cpp54
-rw-r--r--tests/arthur/datagenerator/xmlgenerator.cpp262
-rw-r--r--tests/arthur/datagenerator/xmlgenerator.h73
-rw-r--r--tests/arthur/htmlgenerator/htmlgenerator.cpp518
-rw-r--r--tests/arthur/htmlgenerator/htmlgenerator.h126
-rw-r--r--tests/arthur/htmlgenerator/htmlgenerator.pro18
-rw-r--r--tests/arthur/htmlgenerator/main.cpp54
-rw-r--r--tests/arthur/lance/enum.pngbin0 -> 4619 bytes-rw-r--r--tests/arthur/lance/icons.qrc6
-rw-r--r--tests/arthur/lance/interactivewidget.cpp202
-rw-r--r--tests/arthur/lance/interactivewidget.h80
-rw-r--r--tests/arthur/lance/lance.pro17
-rw-r--r--tests/arthur/lance/main.cpp682
-rw-r--r--tests/arthur/lance/tools.pngbin0 -> 4424 bytes-rw-r--r--tests/arthur/lance/widgets.h211
-rw-r--r--tests/arthur/performancediff/main.cpp54
-rw-r--r--tests/arthur/performancediff/performancediff.cpp219
-rw-r--r--tests/arthur/performancediff/performancediff.h73
-rw-r--r--tests/arthur/performancediff/performancediff.pro18
-rw-r--r--tests/arthur/shower/main.cpp99
-rw-r--r--tests/arthur/shower/shower.cpp125
-rw-r--r--tests/arthur/shower/shower.h73
-rw-r--r--tests/arthur/shower/shower.pro16
-rw-r--r--tests/auto/atwrapper/.gitignore1
-rw-r--r--tests/auto/atwrapper/TODO17
-rw-r--r--tests/auto/atwrapper/atWrapper.cpp648
-rw-r--r--tests/auto/atwrapper/atWrapper.h93
-rw-r--r--tests/auto/atwrapper/atWrapper.pro25
-rw-r--r--tests/auto/atwrapper/atWrapperAutotest.cpp78
-rw-r--r--tests/auto/atwrapper/desert.ini14
-rw-r--r--tests/auto/atwrapper/ephron.ini14
-rw-r--r--tests/auto/atwrapper/gullgubben.ini12
-rw-r--r--tests/auto/atwrapper/honshu.ini16
-rw-r--r--tests/auto/atwrapper/kramer.ini12
-rw-r--r--tests/auto/atwrapper/scruffy.ini15
-rw-r--r--tests/auto/atwrapper/spareribs.ini14
-rw-r--r--tests/auto/atwrapper/titan.ini13
-rw-r--r--tests/auto/auto.pro434
-rw-r--r--tests/auto/bic/.gitignore3
-rw-r--r--tests/auto/bic/bic.pro4
-rw-r--r--tests/auto/bic/data/Qt3Support.4.0.0.aix-gcc-power32.txt19881
-rw-r--r--tests/auto/bic/data/Qt3Support.4.0.0.linux-gcc-amd64.txt20531
-rw-r--r--tests/auto/bic/data/Qt3Support.4.0.0.linux-gcc-ia32.txt20531
-rw-r--r--tests/auto/bic/data/Qt3Support.4.0.0.linux-gcc-ppc32.txt20531
-rw-r--r--tests/auto/bic/data/Qt3Support.4.0.0.macx-gcc-ppc32.txt20565
-rw-r--r--tests/auto/bic/data/Qt3Support.4.1.0.linux-gcc-ia32.txt21355
-rw-r--r--tests/auto/bic/data/Qt3Support.4.1.0.linux-gcc-ppc32.txt21360
-rw-r--r--tests/auto/bic/data/Qt3Support.4.1.0.macx-gcc-ia32.txt21364
-rw-r--r--tests/auto/bic/data/Qt3Support.4.1.0.macx-gcc-ppc32.txt21374
-rw-r--r--tests/auto/bic/data/Qt3Support.4.1.0.win32-gcc-ia32.txt21652
-rw-r--r--tests/auto/bic/data/Qt3Support.4.2.0.linux-gcc-ia32.txt23700
-rw-r--r--tests/auto/bic/data/Qt3Support.4.2.0.linux-gcc-ppc32.txt23690
-rw-r--r--tests/auto/bic/data/Qt3Support.4.2.0.macx-gcc-ia32.txt23733
-rw-r--r--tests/auto/bic/data/Qt3Support.4.2.0.macx-gcc-ppc32.txt23748
-rw-r--r--tests/auto/bic/data/Qt3Support.4.2.0.win32-gcc-ia32.txt24014
-rw-r--r--tests/auto/bic/data/Qt3Support.4.3.0.linux-gcc-ia32.txt24704
-rw-r--r--tests/auto/bic/data/Qt3Support.4.3.1.linux-gcc-ia32.txt24704
-rw-r--r--tests/auto/bic/data/Qt3Support.4.3.2.linux-gcc-ia32.txt24704
-rw-r--r--tests/auto/bic/data/QtCore.4.0.0.aix-gcc-power32.txt2044
-rw-r--r--tests/auto/bic/data/QtCore.4.0.0.linux-gcc-amd64.txt2074
-rw-r--r--tests/auto/bic/data/QtCore.4.0.0.linux-gcc-ia32.txt2074
-rw-r--r--tests/auto/bic/data/QtCore.4.0.0.linux-gcc-ppc32.txt4324
-rw-r--r--tests/auto/bic/data/QtCore.4.0.0.macx-gcc-ppc32.txt2089
-rw-r--r--tests/auto/bic/data/QtCore.4.1.0.linux-gcc-ia32.txt2267
-rw-r--r--tests/auto/bic/data/QtCore.4.1.0.linux-gcc-ppc32.txt2272
-rw-r--r--tests/auto/bic/data/QtCore.4.1.0.macx-gcc-ia32.txt2257
-rw-r--r--tests/auto/bic/data/QtCore.4.1.0.macx-gcc-ppc32.txt2267
-rw-r--r--tests/auto/bic/data/QtCore.4.1.0.win32-gcc-ia32.txt2103
-rw-r--r--tests/auto/bic/data/QtCore.4.2.0.linux-gcc-ia32.txt2615
-rw-r--r--tests/auto/bic/data/QtCore.4.2.0.linux-gcc-ppc32.txt2605
-rw-r--r--tests/auto/bic/data/QtCore.4.2.0.macx-gcc-ia32.txt2590
-rw-r--r--tests/auto/bic/data/QtCore.4.2.0.macx-gcc-ppc32.txt2605
-rw-r--r--tests/auto/bic/data/QtCore.4.2.0.win32-gcc-ia32.txt2436
-rw-r--r--tests/auto/bic/data/QtCore.4.3.0.linux-gcc-ia32.txt2661
-rw-r--r--tests/auto/bic/data/QtCore.4.3.1.linux-gcc-ia32.txt2661
-rw-r--r--tests/auto/bic/data/QtCore.4.3.2.linux-gcc-ia32.txt2661
-rw-r--r--tests/auto/bic/data/QtDBus.4.2.0.linux-gcc-ia32.txt1127
-rw-r--r--tests/auto/bic/data/QtDBus.4.2.0.linux-gcc-ppc32.txt1127
-rw-r--r--tests/auto/bic/data/QtDBus.4.2.0.macx-gcc-ia32.txt1187
-rw-r--r--tests/auto/bic/data/QtDBus.4.2.0.macx-gcc-ppc32.txt1187
-rw-r--r--tests/auto/bic/data/QtDBus.4.2.0.win32-gcc-ia32.txt1122
-rw-r--r--tests/auto/bic/data/QtDBus.4.3.0.linux-gcc-ia32.txt1192
-rw-r--r--tests/auto/bic/data/QtDBus.4.3.1.linux-gcc-ia32.txt1192
-rw-r--r--tests/auto/bic/data/QtDBus.4.3.2.linux-gcc-ia32.txt1192
-rw-r--r--tests/auto/bic/data/QtDesigner.4.2.0.linux-gcc-ia32.txt2987
-rw-r--r--tests/auto/bic/data/QtDesigner.4.3.0.linux-gcc-ia32.txt3216
-rw-r--r--tests/auto/bic/data/QtDesigner.4.3.1.linux-gcc-ia32.txt3216
-rw-r--r--tests/auto/bic/data/QtDesigner.4.3.2.linux-gcc-ia32.txt3216
-rw-r--r--tests/auto/bic/data/QtGui.4.0.0.aix-gcc-power32.txt11603
-rw-r--r--tests/auto/bic/data/QtGui.4.0.0.linux-gcc-amd64.txt12019
-rw-r--r--tests/auto/bic/data/QtGui.4.0.0.linux-gcc-ia32.txt12019
-rw-r--r--tests/auto/bic/data/QtGui.4.0.0.linux-gcc-ppc32.txt11870
-rw-r--r--tests/auto/bic/data/QtGui.4.0.0.macx-gcc-ppc32.txt12053
-rw-r--r--tests/auto/bic/data/QtGui.4.1.0.linux-gcc-ia32.txt12480
-rw-r--r--tests/auto/bic/data/QtGui.4.1.0.linux-gcc-ppc32.txt12485
-rw-r--r--tests/auto/bic/data/QtGui.4.1.0.macx-gcc-ia32.txt12489
-rw-r--r--tests/auto/bic/data/QtGui.4.1.0.macx-gcc-ppc32.txt12499
-rw-r--r--tests/auto/bic/data/QtGui.4.1.0.win32-gcc-ia32.txt12609
-rw-r--r--tests/auto/bic/data/QtGui.4.2.0.linux-gcc-ia32.txt14616
-rw-r--r--tests/auto/bic/data/QtGui.4.2.0.linux-gcc-ppc32.txt14606
-rw-r--r--tests/auto/bic/data/QtGui.4.2.0.macx-gcc-ia32.txt14649
-rw-r--r--tests/auto/bic/data/QtGui.4.2.0.macx-gcc-ppc32.txt14664
-rw-r--r--tests/auto/bic/data/QtGui.4.2.0.win32-gcc-ia32.txt14754
-rw-r--r--tests/auto/bic/data/QtGui.4.3.0.linux-gcc-ia32.txt15523
-rw-r--r--tests/auto/bic/data/QtGui.4.3.1.linux-gcc-ia32.txt15523
-rw-r--r--tests/auto/bic/data/QtGui.4.3.2.linux-gcc-ia32.txt15523
-rw-r--r--tests/auto/bic/data/QtNetwork.4.0.0.aix-gcc-power32.txt2336
-rw-r--r--tests/auto/bic/data/QtNetwork.4.0.0.linux-gcc-amd64.txt2379
-rw-r--r--tests/auto/bic/data/QtNetwork.4.0.0.linux-gcc-ia32.txt2379
-rw-r--r--tests/auto/bic/data/QtNetwork.4.0.0.linux-gcc-ppc32.txt2283
-rw-r--r--tests/auto/bic/data/QtNetwork.4.0.0.macx-gcc-ppc32.txt2394
-rw-r--r--tests/auto/bic/data/QtNetwork.4.1.0.linux-gcc-ia32.txt2577
-rw-r--r--tests/auto/bic/data/QtNetwork.4.1.0.linux-gcc-ppc32.txt2582
-rw-r--r--tests/auto/bic/data/QtNetwork.4.1.0.macx-gcc-ia32.txt2567
-rw-r--r--tests/auto/bic/data/QtNetwork.4.1.0.macx-gcc-ppc32.txt2577
-rw-r--r--tests/auto/bic/data/QtNetwork.4.1.0.win32-gcc-ia32.txt2413
-rw-r--r--tests/auto/bic/data/QtNetwork.4.2.0.linux-gcc-ia32.txt2950
-rw-r--r--tests/auto/bic/data/QtNetwork.4.2.0.linux-gcc-ppc32.txt2940
-rw-r--r--tests/auto/bic/data/QtNetwork.4.2.0.macx-gcc-ia32.txt2925
-rw-r--r--tests/auto/bic/data/QtNetwork.4.2.0.macx-gcc-ppc32.txt2940
-rw-r--r--tests/auto/bic/data/QtNetwork.4.2.0.win32-gcc-ia32.txt2771
-rw-r--r--tests/auto/bic/data/QtNetwork.4.3.0.linux-gcc-ia32.txt3093
-rw-r--r--tests/auto/bic/data/QtNetwork.4.3.1.linux-gcc-ia32.txt3093
-rw-r--r--tests/auto/bic/data/QtNetwork.4.3.2.linux-gcc-ia32.txt3093
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.0.0.aix-gcc-power32.txt11725
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.0.0.linux-gcc-amd64.txt12147
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.0.0.linux-gcc-ia32.txt12147
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.0.0.linux-gcc-ppc32.txt11998
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.0.0.macx-gcc-ppc32.txt12180
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.1.0.linux-gcc-ia32.txt12626
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.1.0.linux-gcc-ppc32.txt12631
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.1.0.macx-gcc-ia32.txt12634
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.1.0.macx-gcc-ppc32.txt12644
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.1.0.win32-gcc-ia32.txt19390
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.2.0.linux-gcc-ia32.txt14785
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.2.0.linux-gcc-ppc32.txt14775
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.2.0.macx-gcc-ia32.txt14817
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.2.0.macx-gcc-ppc32.txt14832
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.2.0.win32-gcc-ia32.txt21560
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.3.0.linux-gcc-ia32.txt15697
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.3.1.linux-gcc-ia32.txt15697
-rw-r--r--tests/auto/bic/data/QtOpenGL.4.3.2.linux-gcc-ia32.txt15697
-rw-r--r--tests/auto/bic/data/QtScript.4.3.0.linux-gcc-ia32.txt2780
-rw-r--r--tests/auto/bic/data/QtScript.4.3.0.macx-gcc-ia32.txt2835
-rw-r--r--tests/auto/bic/data/QtSql.4.0.0.aix-gcc-power32.txt2433
-rw-r--r--tests/auto/bic/data/QtSql.4.0.0.linux-gcc-amd64.txt2481
-rw-r--r--tests/auto/bic/data/QtSql.4.0.0.linux-gcc-ia32.txt2481
-rw-r--r--tests/auto/bic/data/QtSql.4.0.0.linux-gcc-ppc32.txt2385
-rw-r--r--tests/auto/bic/data/QtSql.4.0.0.macx-gcc-ppc32.txt2496
-rw-r--r--tests/auto/bic/data/QtSql.4.1.0.linux-gcc-ia32.txt2674
-rw-r--r--tests/auto/bic/data/QtSql.4.1.0.linux-gcc-ppc32.txt2679
-rw-r--r--tests/auto/bic/data/QtSql.4.1.0.macx-gcc-ia32.txt2664
-rw-r--r--tests/auto/bic/data/QtSql.4.1.0.macx-gcc-ppc32.txt2674
-rw-r--r--tests/auto/bic/data/QtSql.4.1.0.win32-gcc-ia32.txt2510
-rw-r--r--tests/auto/bic/data/QtSql.4.2.0.linux-gcc-ia32.txt3022
-rw-r--r--tests/auto/bic/data/QtSql.4.2.0.linux-gcc-ppc32.txt3012
-rw-r--r--tests/auto/bic/data/QtSql.4.2.0.macx-gcc-ia32.txt2997
-rw-r--r--tests/auto/bic/data/QtSql.4.2.0.macx-gcc-ppc32.txt3012
-rw-r--r--tests/auto/bic/data/QtSql.4.2.0.win32-gcc-ia32.txt2843
-rw-r--r--tests/auto/bic/data/QtSql.4.3.0.linux-gcc-ia32.txt3068
-rw-r--r--tests/auto/bic/data/QtSql.4.3.1.linux-gcc-ia32.txt3068
-rw-r--r--tests/auto/bic/data/QtSql.4.3.2.linux-gcc-ia32.txt3068
-rw-r--r--tests/auto/bic/data/QtSvg.4.1.0.linux-gcc-ia32.txt12598
-rw-r--r--tests/auto/bic/data/QtSvg.4.1.0.win32-gcc-ia32.txt12716
-rw-r--r--tests/auto/bic/data/QtSvg.4.2.0.linux-gcc-ia32.txt14788
-rw-r--r--tests/auto/bic/data/QtSvg.4.2.0.linux-gcc-ppc32.txt14778
-rw-r--r--tests/auto/bic/data/QtSvg.4.2.0.macx-gcc-ia32.txt14821
-rw-r--r--tests/auto/bic/data/QtSvg.4.2.0.macx-gcc-ppc32.txt14836
-rw-r--r--tests/auto/bic/data/QtSvg.4.2.0.win32-gcc-ia32.txt14930
-rw-r--r--tests/auto/bic/data/QtSvg.4.3.0.linux-gcc-ia32.txt15713
-rw-r--r--tests/auto/bic/data/QtSvg.4.3.1.linux-gcc-ia32.txt15713
-rw-r--r--tests/auto/bic/data/QtSvg.4.3.2.linux-gcc-ia32.txt15713
-rw-r--r--tests/auto/bic/data/QtTest.4.1.0.linux-gcc-ia32.txt2388
-rw-r--r--tests/auto/bic/data/QtTest.4.1.0.win32-gcc-ia32.txt2209
-rw-r--r--tests/auto/bic/data/QtTest.4.2.0.linux-gcc-ia32.txt2716
-rw-r--r--tests/auto/bic/data/QtTest.4.2.0.linux-gcc-ppc32.txt2706
-rw-r--r--tests/auto/bic/data/QtTest.4.2.0.macx-gcc-ia32.txt2691
-rw-r--r--tests/auto/bic/data/QtTest.4.2.0.macx-gcc-ppc32.txt2706
-rw-r--r--tests/auto/bic/data/QtTest.4.2.0.win32-gcc-ia32.txt2537
-rw-r--r--tests/auto/bic/data/QtTest.4.3.0.linux-gcc-ia32.txt2762
-rw-r--r--tests/auto/bic/data/QtTest.4.3.1.linux-gcc-ia32.txt2762
-rw-r--r--tests/auto/bic/data/QtTest.4.3.2.linux-gcc-ia32.txt2762
-rw-r--r--tests/auto/bic/data/QtXml.4.0.0.aix-gcc-power32.txt2468
-rw-r--r--tests/auto/bic/data/QtXml.4.0.0.linux-gcc-amd64.txt2534
-rw-r--r--tests/auto/bic/data/QtXml.4.0.0.linux-gcc-ia32.txt2534
-rw-r--r--tests/auto/bic/data/QtXml.4.0.0.linux-gcc-ppc32.txt2438
-rw-r--r--tests/auto/bic/data/QtXml.4.0.0.macx-gcc-ppc32.txt2549
-rw-r--r--tests/auto/bic/data/QtXml.4.1.0.linux-gcc-ia32.txt2727
-rw-r--r--tests/auto/bic/data/QtXml.4.1.0.linux-gcc-ppc32.txt2732
-rw-r--r--tests/auto/bic/data/QtXml.4.1.0.macx-gcc-ia32.txt2717
-rw-r--r--tests/auto/bic/data/QtXml.4.1.0.macx-gcc-ppc32.txt2727
-rw-r--r--tests/auto/bic/data/QtXml.4.1.0.win32-gcc-ia32.txt2563
-rw-r--r--tests/auto/bic/data/QtXml.4.2.0.linux-gcc-ia32.txt3075
-rw-r--r--tests/auto/bic/data/QtXml.4.2.0.linux-gcc-ppc32.txt3065
-rw-r--r--tests/auto/bic/data/QtXml.4.2.0.macx-gcc-ia32.txt3050
-rw-r--r--tests/auto/bic/data/QtXml.4.2.0.macx-gcc-ppc32.txt3065
-rw-r--r--tests/auto/bic/data/QtXml.4.2.0.win32-gcc-ia32.txt2896
-rw-r--r--tests/auto/bic/data/QtXml.4.3.0.linux-gcc-ia32.txt3192
-rw-r--r--tests/auto/bic/data/QtXml.4.3.1.linux-gcc-ia32.txt3192
-rw-r--r--tests/auto/bic/data/QtXml.4.3.2.linux-gcc-ia32.txt3192
-rw-r--r--tests/auto/bic/data/QtXmlPatterns.4.4.1.linux-gcc-ia32.txt6300
-rwxr-xr-xtests/auto/bic/gen.sh22
-rw-r--r--tests/auto/bic/qbic.cpp246
-rw-r--r--tests/auto/bic/qbic.h91
-rw-r--r--tests/auto/bic/tst_bic.cpp388
-rw-r--r--tests/auto/checkxmlfiles/.gitignore1
-rw-r--r--tests/auto/checkxmlfiles/checkxmlfiles.pro19
-rw-r--r--tests/auto/checkxmlfiles/tst_checkxmlfiles.cpp126
-rw-r--r--tests/auto/collections/.gitignore1
-rw-r--r--tests/auto/collections/collections.pro7
-rw-r--r--tests/auto/collections/tst_collections.cpp3483
-rw-r--r--tests/auto/compile/.gitignore1
-rw-r--r--tests/auto/compile/baseclass.cpp51
-rw-r--r--tests/auto/compile/baseclass.h60
-rw-r--r--tests/auto/compile/compile.pro7
-rw-r--r--tests/auto/compile/derivedclass.cpp48
-rw-r--r--tests/auto/compile/derivedclass.h52
-rw-r--r--tests/auto/compile/tst_compile.cpp656
-rw-r--r--tests/auto/compilerwarnings/.gitignore1
-rw-r--r--tests/auto/compilerwarnings/compilerwarnings.pro5
-rw-r--r--tests/auto/compilerwarnings/compilerwarnings.qrc5
-rw-r--r--tests/auto/compilerwarnings/test.cpp67
-rw-r--r--tests/auto/compilerwarnings/tst_compilerwarnings.cpp253
-rw-r--r--tests/auto/exceptionsafety/.gitignore1
-rw-r--r--tests/auto/exceptionsafety/exceptionsafety.pro3
-rw-r--r--tests/auto/exceptionsafety/tst_exceptionsafety.cpp91
-rw-r--r--tests/auto/headers/.gitignore1
-rw-r--r--tests/auto/headers/headers.pro5
-rw-r--r--tests/auto/headers/tst_headers.cpp219
-rw-r--r--tests/auto/languagechange/.gitignore1
-rw-r--r--tests/auto/languagechange/languagechange.pro3
-rw-r--r--tests/auto/languagechange/tst_languagechange.cpp288
-rw-r--r--tests/auto/macgui/.gitignore1
-rw-r--r--tests/auto/macgui/guitest.cpp350
-rw-r--r--tests/auto/macgui/guitest.h186
-rw-r--r--tests/auto/macgui/macgui.pro15
-rw-r--r--tests/auto/macgui/tst_gui.cpp282
-rw-r--r--tests/auto/macplist/app/app.pro11
-rw-r--r--tests/auto/macplist/app/main.cpp50
-rw-r--r--tests/auto/macplist/macplist.pro7
-rw-r--r--tests/auto/macplist/test/test.pro11
-rw-r--r--tests/auto/macplist/tst_macplist.cpp195
-rw-r--r--tests/auto/mediaobject/.gitignore1
-rw-r--r--tests/auto/mediaobject/media/sax.mp3bin0 -> 417844 bytes-rw-r--r--tests/auto/mediaobject/media/sax.oggbin0 -> 358374 bytes-rw-r--r--tests/auto/mediaobject/media/sax.wavbin0 -> 756236 bytes-rwxr-xr-xtests/auto/mediaobject/mediaobject.pro16
-rw-r--r--tests/auto/mediaobject/mediaobject.qrc7
-rw-r--r--tests/auto/mediaobject/qtesthelper.h223
-rw-r--r--tests/auto/mediaobject/tst_mediaobject.cpp932
-rw-r--r--tests/auto/mediaobject_wince_ds9/dummy.cpp44
-rw-r--r--tests/auto/mediaobject_wince_ds9/mediaobject_wince_ds9.pro18
-rw-r--r--tests/auto/moc/.gitattributes1
-rw-r--r--tests/auto/moc/.gitignore1
-rw-r--r--tests/auto/moc/Header6
-rw-r--r--tests/auto/moc/Test.framework/Headers/testinterface.h55
-rw-r--r--tests/auto/moc/assign-namespace.h52
-rw-r--r--tests/auto/moc/backslash-newlines.h63
-rw-r--r--tests/auto/moc/c-comments.h55
-rw-r--r--tests/auto/moc/cstyle-enums.h50
-rw-r--r--tests/auto/moc/dir-in-include-path.h47
-rw-r--r--tests/auto/moc/escapes-in-string-literals.h49
-rw-r--r--tests/auto/moc/extraqualification.h57
-rw-r--r--tests/auto/moc/forgotten-qinterface.h53
-rw-r--r--tests/auto/moc/gadgetwithnoenums.h62
-rw-r--r--tests/auto/moc/interface-from-framework.h55
-rw-r--r--tests/auto/moc/macro-on-cmdline.h50
-rw-r--r--tests/auto/moc/moc.pro30
-rw-r--r--tests/auto/moc/namespaced-flags.h75
-rw-r--r--tests/auto/moc/no-keywords.h88
-rw-r--r--tests/auto/moc/oldstyle-casts.h56
-rw-r--r--tests/auto/moc/os9-newlines.h1
-rw-r--r--tests/auto/moc/parse-boost.h126
-rw-r--r--tests/auto/moc/pure-virtual-signals.h60
-rw-r--r--tests/auto/moc/qinvokable.h57
-rw-r--r--tests/auto/moc/qprivateslots.h60
-rw-r--r--tests/auto/moc/single_function_keyword.h75
-rw-r--r--tests/auto/moc/slots-with-void-template.h59
-rw-r--r--tests/auto/moc/task189996.h58
-rw-r--r--tests/auto/moc/task192552.h55
-rw-r--r--tests/auto/moc/task234909.h73
-rw-r--r--tests/auto/moc/task240368.h72
-rw-r--r--tests/auto/moc/task71021/dummy0
-rw-r--r--tests/auto/moc/task87883.h57
-rw-r--r--tests/auto/moc/template-gtgt.h60
-rw-r--r--tests/auto/moc/testproject/Plugin/Plugin.h50
-rw-r--r--tests/auto/moc/testproject/include/Plugin1
-rw-r--r--tests/auto/moc/trigraphs.h63
-rw-r--r--tests/auto/moc/tst_moc.cpp1205
-rw-r--r--tests/auto/moc/using-namespaces.h56
-rw-r--r--tests/auto/moc/warn-on-multiple-qobject-subclasses.h55
-rw-r--r--tests/auto/moc/warn-on-property-without-read.h48
-rw-r--r--tests/auto/moc/win-newlines.h49
-rw-r--r--tests/auto/modeltest/modeltest.cpp566
-rw-r--r--tests/auto/modeltest/modeltest.h94
-rw-r--r--tests/auto/modeltest/modeltest.pro6
-rw-r--r--tests/auto/modeltest/tst_modeltest.cpp150
-rw-r--r--tests/auto/network-settings.h66
-rw-r--r--tests/auto/patternistexamplefiletree/.gitignore1
-rw-r--r--tests/auto/patternistexamplefiletree/patternistexamplefiletree.pro4
-rw-r--r--tests/auto/patternistexamplefiletree/tst_patternistexamplefiletree.cpp74
-rw-r--r--tests/auto/patternistexamples/.gitignore1
-rw-r--r--tests/auto/patternistexamples/patternistexamples.pro22
-rw-r--r--tests/auto/patternistexamples/tst_patternistexamples.cpp373
-rw-r--r--tests/auto/patternistheaders/.gitignore1
-rw-r--r--tests/auto/patternistheaders/patternistheaders.pro4
-rw-r--r--tests/auto/patternistheaders/tst_patternistheaders.cpp135
-rw-r--r--tests/auto/q3accel/.gitignore1
-rw-r--r--tests/auto/q3accel/q3accel.pro8
-rw-r--r--tests/auto/q3accel/tst_q3accel.cpp1053
-rw-r--r--tests/auto/q3action/.gitignore1
-rw-r--r--tests/auto/q3action/q3action.pro3
-rw-r--r--tests/auto/q3action/tst_q3action.cpp138
-rw-r--r--tests/auto/q3actiongroup/.gitignore1
-rw-r--r--tests/auto/q3actiongroup/q3actiongroup.pro5
-rw-r--r--tests/auto/q3actiongroup/tst_q3actiongroup.cpp238
-rw-r--r--tests/auto/q3buttongroup/.gitignore3
-rw-r--r--tests/auto/q3buttongroup/clickLock/clickLock.pro14
-rw-r--r--tests/auto/q3buttongroup/clickLock/main.cpp70
-rw-r--r--tests/auto/q3buttongroup/q3buttongroup.pro3
-rw-r--r--tests/auto/q3buttongroup/tst_q3buttongroup.cpp314
-rw-r--r--tests/auto/q3buttongroup/tst_q3buttongroup.pro7
-rw-r--r--tests/auto/q3canvas/.gitignore1
-rw-r--r--tests/auto/q3canvas/backgroundrect.pngbin0 -> 409 bytes-rw-r--r--tests/auto/q3canvas/q3canvas.pro7
-rw-r--r--tests/auto/q3canvas/tst_q3canvas.cpp239
-rw-r--r--tests/auto/q3checklistitem/.gitignore1
-rw-r--r--tests/auto/q3checklistitem/q3checklistitem.pro7
-rw-r--r--tests/auto/q3checklistitem/tst_q3checklistitem.cpp371
-rw-r--r--tests/auto/q3combobox/.gitignore1
-rw-r--r--tests/auto/q3combobox/q3combobox.pro3
-rw-r--r--tests/auto/q3combobox/tst_q3combobox.cpp1041
-rw-r--r--tests/auto/q3cstring/.gitignore2
-rw-r--r--tests/auto/q3cstring/q3cstring.pro7
-rw-r--r--tests/auto/q3cstring/tst_q3cstring.cpp885
-rw-r--r--tests/auto/q3databrowser/.gitignore1
-rw-r--r--tests/auto/q3databrowser/q3databrowser.pro6
-rw-r--r--tests/auto/q3databrowser/tst_q3databrowser.cpp85
-rw-r--r--tests/auto/q3dateedit/.gitignore1
-rw-r--r--tests/auto/q3dateedit/q3dateedit.pro6
-rw-r--r--tests/auto/q3dateedit/tst_q3dateedit.cpp186
-rw-r--r--tests/auto/q3datetimeedit/.gitignore1
-rw-r--r--tests/auto/q3datetimeedit/q3datetimeedit.pro10
-rw-r--r--tests/auto/q3datetimeedit/tst_q3datetimeedit.cpp89
-rw-r--r--tests/auto/q3deepcopy/.gitignore1
-rw-r--r--tests/auto/q3deepcopy/q3deepcopy.pro7
-rw-r--r--tests/auto/q3deepcopy/tst_q3deepcopy.cpp243
-rw-r--r--tests/auto/q3dict/.gitignore1
-rw-r--r--tests/auto/q3dict/q3dict.pro7
-rw-r--r--tests/auto/q3dict/tst_q3dict.cpp169
-rw-r--r--tests/auto/q3dns/.gitignore1
-rw-r--r--tests/auto/q3dns/q3dns.pro7
-rw-r--r--tests/auto/q3dns/tst_q3dns.cpp227
-rw-r--r--tests/auto/q3dockwindow/.gitignore1
-rw-r--r--tests/auto/q3dockwindow/q3dockwindow.pro8
-rw-r--r--tests/auto/q3dockwindow/tst_q3dockwindow.cpp170
-rw-r--r--tests/auto/q3filedialog/.gitignore1
-rw-r--r--tests/auto/q3filedialog/q3filedialog.pro10
-rw-r--r--tests/auto/q3filedialog/tst_q3filedialog.cpp128
-rw-r--r--tests/auto/q3frame/.gitignore1
-rw-r--r--tests/auto/q3frame/q3frame.pro4
-rw-r--r--tests/auto/q3frame/tst_q3frame.cpp146
-rw-r--r--tests/auto/q3groupbox/.gitignore1
-rw-r--r--tests/auto/q3groupbox/q3groupbox.pro7
-rw-r--r--tests/auto/q3groupbox/tst_q3groupbox.cpp118
-rw-r--r--tests/auto/q3hbox/.gitignore1
-rw-r--r--tests/auto/q3hbox/q3hbox.pro7
-rw-r--r--tests/auto/q3hbox/tst_q3hbox.cpp91
-rw-r--r--tests/auto/q3header/.gitignore1
-rw-r--r--tests/auto/q3header/q3header.pro7
-rw-r--r--tests/auto/q3header/tst_q3header.cpp130
-rw-r--r--tests/auto/q3iconview/.gitignore1
-rw-r--r--tests/auto/q3iconview/q3iconview.pro7
-rw-r--r--tests/auto/q3iconview/tst_q3iconview.cpp83
-rw-r--r--tests/auto/q3listbox/q3listbox.pro7
-rw-r--r--tests/auto/q3listbox/tst_qlistbox.cpp676
-rw-r--r--tests/auto/q3listview/.gitignore1
-rw-r--r--tests/auto/q3listview/q3listview.pro5
-rw-r--r--tests/auto/q3listview/tst_q3listview.cpp1276
-rw-r--r--tests/auto/q3listviewitemiterator/.gitignore1
-rw-r--r--tests/auto/q3listviewitemiterator/q3listviewitemiterator.pro7
-rw-r--r--tests/auto/q3listviewitemiterator/tst_q3listviewitemiterator.cpp567
-rw-r--r--tests/auto/q3mainwindow/.gitignore1
-rw-r--r--tests/auto/q3mainwindow/q3mainwindow.pro8
-rw-r--r--tests/auto/q3mainwindow/tst_q3mainwindow.cpp298
-rw-r--r--tests/auto/q3popupmenu/.gitignore1
-rw-r--r--tests/auto/q3popupmenu/q3popupmenu.pro8
-rw-r--r--tests/auto/q3popupmenu/tst_q3popupmenu.cpp362
-rw-r--r--tests/auto/q3process/.gitignore5
-rw-r--r--tests/auto/q3process/cat/cat.pro12
-rw-r--r--tests/auto/q3process/cat/main.cpp89
-rw-r--r--tests/auto/q3process/echo/echo.pro9
-rw-r--r--tests/auto/q3process/echo/main.cpp57
-rw-r--r--tests/auto/q3process/q3process.pro12
-rw-r--r--tests/auto/q3process/tst/tst.pro16
-rw-r--r--tests/auto/q3process/tst_q3process.cpp448
-rw-r--r--tests/auto/q3progressbar/.gitignore1
-rw-r--r--tests/auto/q3progressbar/q3progressbar.pro10
-rw-r--r--tests/auto/q3progressbar/tst_q3progressbar.cpp125
-rw-r--r--tests/auto/q3progressdialog/.gitignore1
-rw-r--r--tests/auto/q3progressdialog/q3progressdialog.pro10
-rw-r--r--tests/auto/q3progressdialog/tst_q3progressdialog.cpp113
-rw-r--r--tests/auto/q3ptrlist/.gitignore1
-rw-r--r--tests/auto/q3ptrlist/q3ptrlist.pro6
-rw-r--r--tests/auto/q3ptrlist/tst_q3ptrlist.cpp219
-rw-r--r--tests/auto/q3richtext/.gitignore1
-rw-r--r--tests/auto/q3richtext/q3richtext.pro8
-rw-r--r--tests/auto/q3richtext/tst_q3richtext.cpp467
-rw-r--r--tests/auto/q3scrollview/q3scrollview.pro7
-rw-r--r--tests/auto/q3scrollview/testdata/center/pix_Motif-32x96x96_0.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/center/pix_Motif-32x96x96_1.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/center/pix_Motif-32x96x96_2.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/center/pix_Windows-16x96x96_0.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/center/pix_Windows-16x96x96_1.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/center/pix_Windows-16x96x96_2.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/center/pix_Windows-32x96x96_0.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/center/pix_Windows-32x96x96_1.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/center/pix_Windows-32x96x96_2.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/drawContents/res_Motif-32x96x96_win32_data0.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/drawContents/res_Motif-32x96x96_win32_data1.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/drawContents/res_Windows-16x96x96_win32_data0.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/drawContents/res_Windows-16x96x96_win32_data1.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/drawContents/res_Windows-32x96x96_win32_data0.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/testdata/drawContents/res_Windows-32x96x96_win32_data1.pngbin0 -> 120451 bytes-rw-r--r--tests/auto/q3scrollview/tst_qscrollview.cpp594
-rw-r--r--tests/auto/q3semaphore/.gitignore1
-rw-r--r--tests/auto/q3semaphore/q3semaphore.pro5
-rw-r--r--tests/auto/q3semaphore/tst_q3semaphore.cpp162
-rw-r--r--tests/auto/q3serversocket/.gitignore1
-rw-r--r--tests/auto/q3serversocket/q3serversocket.pro7
-rw-r--r--tests/auto/q3serversocket/tst_q3serversocket.cpp153
-rw-r--r--tests/auto/q3socket/.gitignore1
-rw-r--r--tests/auto/q3socket/q3socket.pro6
-rw-r--r--tests/auto/q3socket/tst_qsocket.cpp286
-rw-r--r--tests/auto/q3socketdevice/.gitignore1
-rw-r--r--tests/auto/q3socketdevice/q3socketdevice.pro6
-rw-r--r--tests/auto/q3socketdevice/tst_q3socketdevice.cpp142
-rw-r--r--tests/auto/q3sqlcursor/.gitignore1
-rw-r--r--tests/auto/q3sqlcursor/q3sqlcursor.pro9
-rw-r--r--tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp779
-rw-r--r--tests/auto/q3sqlselectcursor/q3sqlselectcursor.pro9
-rw-r--r--tests/auto/q3sqlselectcursor/tst_q3sqlselectcursor.cpp207
-rw-r--r--tests/auto/q3stylesheet/.gitignore1
-rw-r--r--tests/auto/q3stylesheet/q3stylesheet.pro10
-rw-r--r--tests/auto/q3stylesheet/tst_q3stylesheet.cpp178
-rw-r--r--tests/auto/q3tabdialog/.gitignore1
-rw-r--r--tests/auto/q3tabdialog/q3tabdialog.pro10
-rw-r--r--tests/auto/q3tabdialog/tst_q3tabdialog.cpp99
-rw-r--r--tests/auto/q3table/.gitignore1
-rw-r--r--tests/auto/q3table/q3table.pro6
-rw-r--r--tests/auto/q3table/tst_q3table.cpp1559
-rw-r--r--tests/auto/q3textbrowser/.gitignore1
-rw-r--r--tests/auto/q3textbrowser/anchor.html8
-rw-r--r--tests/auto/q3textbrowser/q3textbrowser.pro8
-rw-r--r--tests/auto/q3textbrowser/tst_q3textbrowser.cpp107
-rw-r--r--tests/auto/q3textedit/.gitignore1
-rw-r--r--tests/auto/q3textedit/q3textedit.pro8
-rw-r--r--tests/auto/q3textedit/tst_q3textedit.cpp1118
-rw-r--r--tests/auto/q3textstream/.gitignore2
-rw-r--r--tests/auto/q3textstream/q3textstream.pro6
-rw-r--r--tests/auto/q3textstream/tst_q3textstream.cpp1347
-rw-r--r--tests/auto/q3timeedit/.gitignore1
-rw-r--r--tests/auto/q3timeedit/q3timeedit.pro6
-rw-r--r--tests/auto/q3timeedit/tst_q3timeedit.cpp939
-rw-r--r--tests/auto/q3toolbar/.gitignore1
-rw-r--r--tests/auto/q3toolbar/q3toolbar.pro6
-rw-r--r--tests/auto/q3toolbar/tst_q3toolbar.cpp168
-rw-r--r--tests/auto/q3uridrag/q3uridrag.pro7
-rw-r--r--tests/auto/q3uridrag/tst_q3uridrag.cpp248
-rw-r--r--tests/auto/q3urloperator/.gitattributes3
-rw-r--r--tests/auto/q3urloperator/.gitignore2
-rw-r--r--tests/auto/q3urloperator/copy.res/rfc3252.txt899
-rwxr-xr-xtests/auto/q3urloperator/listData/executable.exe0
-rw-r--r--tests/auto/q3urloperator/listData/readOnly0
-rwxr-xr-xtests/auto/q3urloperator/listData/readWriteExec.exe0
-rw-r--r--tests/auto/q3urloperator/q3urloperator.pro9
-rw-r--r--tests/auto/q3urloperator/stop/bigfile17980
-rw-r--r--tests/auto/q3urloperator/tst_q3urloperator.cpp783
-rw-r--r--tests/auto/q3valuelist/.gitignore1
-rw-r--r--tests/auto/q3valuelist/q3valuelist.pro7
-rw-r--r--tests/auto/q3valuelist/tst_q3valuelist.cpp903
-rw-r--r--tests/auto/q3valuevector/.gitignore1
-rw-r--r--tests/auto/q3valuevector/q3valuevector.pro7
-rw-r--r--tests/auto/q3valuevector/tst_q3valuevector.cpp662
-rw-r--r--tests/auto/q3widgetstack/q3widgetstack.pro7
-rw-r--r--tests/auto/q3widgetstack/tst_q3widgetstack.cpp257
-rw-r--r--tests/auto/q_func_info/.gitignore1
-rw-r--r--tests/auto/q_func_info/q_func_info.pro3
-rw-r--r--tests/auto/q_func_info/tst_q_func_info.cpp145
-rw-r--r--tests/auto/qabstractbutton/.gitignore1
-rw-r--r--tests/auto/qabstractbutton/qabstractbutton.pro4
-rw-r--r--tests/auto/qabstractbutton/tst_qabstractbutton.cpp718
-rw-r--r--tests/auto/qabstractitemmodel/.gitignore1
-rw-r--r--tests/auto/qabstractitemmodel/qabstractitemmodel.pro6
-rw-r--r--tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp824
-rw-r--r--tests/auto/qabstractitemview/.gitignore1
-rw-r--r--tests/auto/qabstractitemview/qabstractitemview.pro4
-rw-r--r--tests/auto/qabstractitemview/tst_qabstractitemview.cpp1187
-rw-r--r--tests/auto/qabstractmessagehandler/.gitignore1
-rw-r--r--tests/auto/qabstractmessagehandler/qabstractmessagehandler.pro4
-rw-r--r--tests/auto/qabstractmessagehandler/tst_qabstractmessagehandler.cpp192
-rw-r--r--tests/auto/qabstractnetworkcache/.gitignore1
-rw-r--r--tests/auto/qabstractnetworkcache/qabstractnetworkcache.pro10
-rw-r--r--tests/auto/qabstractnetworkcache/tests/httpcachetest_cachecontrol-expire.cgi7
-rw-r--r--tests/auto/qabstractnetworkcache/tests/httpcachetest_cachecontrol.cgi13
-rw-r--r--tests/auto/qabstractnetworkcache/tests/httpcachetest_etag200.cgi5
-rw-r--r--tests/auto/qabstractnetworkcache/tests/httpcachetest_etag304.cgi11
-rw-r--r--tests/auto/qabstractnetworkcache/tests/httpcachetest_expires200.cgi5
-rw-r--r--tests/auto/qabstractnetworkcache/tests/httpcachetest_expires304.cgi11
-rw-r--r--tests/auto/qabstractnetworkcache/tests/httpcachetest_expires500.cgi11
-rw-r--r--tests/auto/qabstractnetworkcache/tests/httpcachetest_lastModified200.cgi5
-rw-r--r--tests/auto/qabstractnetworkcache/tests/httpcachetest_lastModified304.cgi11
-rw-r--r--tests/auto/qabstractnetworkcache/tst_qabstractnetworkcache.cpp275
-rw-r--r--tests/auto/qabstractprintdialog/.gitignore1
-rw-r--r--tests/auto/qabstractprintdialog/qabstractprintdialog.pro9
-rw-r--r--tests/auto/qabstractprintdialog/tst_qabstractprintdialog.cpp143
-rw-r--r--tests/auto/qabstractproxymodel/.gitignore1
-rw-r--r--tests/auto/qabstractproxymodel/qabstractproxymodel.pro2
-rw-r--r--tests/auto/qabstractproxymodel/tst_qabstractproxymodel.cpp367
-rw-r--r--tests/auto/qabstractscrollarea/.gitignore1
-rw-r--r--tests/auto/qabstractscrollarea/qabstractscrollarea.pro9
-rw-r--r--tests/auto/qabstractscrollarea/tst_qabstractscrollarea.cpp354
-rw-r--r--tests/auto/qabstractslider/.gitignore1
-rw-r--r--tests/auto/qabstractslider/qabstractslider.pro4
-rw-r--r--tests/auto/qabstractslider/tst_qabstractslider.cpp1235
-rw-r--r--tests/auto/qabstractsocket/.gitignore1
-rw-r--r--tests/auto/qabstractsocket/qabstractsocket.pro10
-rw-r--r--tests/auto/qabstractsocket/tst_qabstractsocket.cpp109
-rw-r--r--tests/auto/qabstractspinbox/.gitignore1
-rw-r--r--tests/auto/qabstractspinbox/qabstractspinbox.pro9
-rw-r--r--tests/auto/qabstractspinbox/tst_qabstractspinbox.cpp163
-rw-r--r--tests/auto/qabstracttextdocumentlayout/.gitignore1
-rw-r--r--tests/auto/qabstracttextdocumentlayout/qabstracttextdocumentlayout.pro9
-rw-r--r--tests/auto/qabstracttextdocumentlayout/tst_qabstracttextdocumentlayout.cpp159
-rw-r--r--tests/auto/qabstracturiresolver/.gitignore1
-rw-r--r--tests/auto/qabstracturiresolver/TestURIResolver.h70
-rw-r--r--tests/auto/qabstracturiresolver/qabstracturiresolver.pro5
-rw-r--r--tests/auto/qabstracturiresolver/tst_qabstracturiresolver.cpp132
-rw-r--r--tests/auto/qabstractxmlforwarditerator/.gitignore1
-rw-r--r--tests/auto/qabstractxmlforwarditerator/qabstractxmlforwarditerator.pro4
-rw-r--r--tests/auto/qabstractxmlforwarditerator/tst_qabstractxmlforwarditerator.cpp87
-rw-r--r--tests/auto/qabstractxmlnodemodel/.gitignore1
-rw-r--r--tests/auto/qabstractxmlnodemodel/LoadingModel.cpp360
-rw-r--r--tests/auto/qabstractxmlnodemodel/LoadingModel.h99
-rw-r--r--tests/auto/qabstractxmlnodemodel/TestNodeModel.h139
-rw-r--r--tests/auto/qabstractxmlnodemodel/qabstractxmlnodemodel.pro14
-rw-r--r--tests/auto/qabstractxmlnodemodel/tree.xml15
-rw-r--r--tests/auto/qabstractxmlnodemodel/tst_qabstractxmlnodemodel.cpp399
-rw-r--r--tests/auto/qabstractxmlreceiver/.gitignore1
-rw-r--r--tests/auto/qabstractxmlreceiver/TestAbstractXmlReceiver.h138
-rw-r--r--tests/auto/qabstractxmlreceiver/qabstractxmlreceiver.pro4
-rw-r--r--tests/auto/qabstractxmlreceiver/tst_qabstractxmlreceiver.cpp95
-rw-r--r--tests/auto/qaccessibility/.gitignore1
-rw-r--r--tests/auto/qaccessibility/qaccessibility.pro11
-rw-r--r--tests/auto/qaccessibility/tst_qaccessibility.cpp4058
-rw-r--r--tests/auto/qaccessibility_mac/.gitignore1
-rw-r--r--tests/auto/qaccessibility_mac/buttons.ui83
-rw-r--r--tests/auto/qaccessibility_mac/combobox.ui50
-rw-r--r--tests/auto/qaccessibility_mac/form.ui22
-rw-r--r--tests/auto/qaccessibility_mac/groups.ui100
-rw-r--r--tests/auto/qaccessibility_mac/label.ui35
-rw-r--r--tests/auto/qaccessibility_mac/lineedit.ui35
-rw-r--r--tests/auto/qaccessibility_mac/listview.ui89
-rw-r--r--tests/auto/qaccessibility_mac/qaccessibility_mac.pro24
-rw-r--r--tests/auto/qaccessibility_mac/qaccessibility_mac.qrc15
-rw-r--r--tests/auto/qaccessibility_mac/radiobutton.ui38
-rw-r--r--tests/auto/qaccessibility_mac/scrollbar.ui38
-rw-r--r--tests/auto/qaccessibility_mac/splitters.ui52
-rw-r--r--tests/auto/qaccessibility_mac/tableview.ui114
-rw-r--r--tests/auto/qaccessibility_mac/tabs.ui68
-rw-r--r--tests/auto/qaccessibility_mac/textBrowser.ui40
-rw-r--r--tests/auto/qaccessibility_mac/tst_qaccessibility_mac.cpp1960
-rw-r--r--tests/auto/qaction/.gitignore1
-rw-r--r--tests/auto/qaction/qaction.pro4
-rw-r--r--tests/auto/qaction/tst_qaction.cpp326
-rw-r--r--tests/auto/qactiongroup/.gitignore1
-rw-r--r--tests/auto/qactiongroup/qactiongroup.pro4
-rw-r--r--tests/auto/qactiongroup/tst_qactiongroup.cpp274
-rw-r--r--tests/auto/qalgorithms/.gitignore1
-rw-r--r--tests/auto/qalgorithms/qalgorithms.pro5
-rw-r--r--tests/auto/qalgorithms/tst_qalgorithms.cpp1193
-rw-r--r--tests/auto/qapplication/.gitignore3
-rw-r--r--tests/auto/qapplication/desktopsettingsaware/desktopsettingsaware.pro15
-rw-r--r--tests/auto/qapplication/desktopsettingsaware/main.cpp54
-rw-r--r--tests/auto/qapplication/qapplication.pro6
-rw-r--r--tests/auto/qapplication/test/test.pro22
-rw-r--r--tests/auto/qapplication/tmp/README3
-rw-r--r--tests/auto/qapplication/tst_qapplication.cpp1784
-rw-r--r--tests/auto/qapplication/wincmdline/main.cpp53
-rw-r--r--tests/auto/qapplication/wincmdline/wincmdline.pro7
-rw-r--r--tests/auto/qapplicationargumentparser/.gitignore3
-rw-r--r--tests/auto/qapplicationargumentparser/qapplicationargumentparser.pro6
-rw-r--r--tests/auto/qapplicationargumentparser/tst_qapplicationargumentparser.cpp160
-rw-r--r--tests/auto/qatomicint/.gitignore1
-rw-r--r--tests/auto/qatomicint/qatomicint.pro6
-rw-r--r--tests/auto/qatomicint/tst_qatomicint.cpp748
-rw-r--r--tests/auto/qatomicpointer/.gitignore1
-rw-r--r--tests/auto/qatomicpointer/qatomicpointer.pro5
-rw-r--r--tests/auto/qatomicpointer/tst_qatomicpointer.cpp627
-rw-r--r--tests/auto/qautoptr/.gitignore1
-rw-r--r--tests/auto/qautoptr/qautoptr.pro4
-rw-r--r--tests/auto/qautoptr/tst_qautoptr.cpp339
-rw-r--r--tests/auto/qbitarray/.gitignore1
-rw-r--r--tests/auto/qbitarray/qbitarray.pro7
-rw-r--r--tests/auto/qbitarray/tst_qbitarray.cpp644
-rw-r--r--tests/auto/qboxlayout/.gitignore1
-rw-r--r--tests/auto/qboxlayout/qboxlayout.pro4
-rw-r--r--tests/auto/qboxlayout/tst_qboxlayout.cpp174
-rw-r--r--tests/auto/qbrush/.gitignore1
-rw-r--r--tests/auto/qbrush/qbrush.pro5
-rw-r--r--tests/auto/qbrush/tst_qbrush.cpp383
-rw-r--r--tests/auto/qbuffer/.gitignore1
-rw-r--r--tests/auto/qbuffer/qbuffer.pro7
-rw-r--r--tests/auto/qbuffer/tst_qbuffer.cpp533
-rw-r--r--tests/auto/qbuttongroup/.gitignore1
-rw-r--r--tests/auto/qbuttongroup/qbuttongroup.pro5
-rw-r--r--tests/auto/qbuttongroup/tst_qbuttongroup.cpp494
-rw-r--r--tests/auto/qbytearray/.gitignore1
-rw-r--r--tests/auto/qbytearray/qbytearray.pro14
-rw-r--r--tests/auto/qbytearray/rfc3252.txt899
-rw-r--r--tests/auto/qbytearray/tst_qbytearray.cpp1424
-rw-r--r--tests/auto/qcache/.gitignore1
-rw-r--r--tests/auto/qcache/qcache.pro7
-rw-r--r--tests/auto/qcache/tst_qcache.cpp441
-rw-r--r--tests/auto/qcalendarwidget/.gitignore1
-rw-r--r--tests/auto/qcalendarwidget/qcalendarwidget.pro4
-rw-r--r--tests/auto/qcalendarwidget/tst_qcalendarwidget.cpp244
-rw-r--r--tests/auto/qchar/.gitignore1
-rw-r--r--tests/auto/qchar/NormalizationTest.txt17650
-rw-r--r--tests/auto/qchar/qchar.pro10
-rw-r--r--tests/auto/qchar/tst_qchar.cpp643
-rw-r--r--tests/auto/qcheckbox/.gitignore1
-rw-r--r--tests/auto/qcheckbox/qcheckbox.pro5
-rw-r--r--tests/auto/qcheckbox/tst_qcheckbox.cpp433
-rw-r--r--tests/auto/qclipboard/.gitignore5
-rw-r--r--tests/auto/qclipboard/copier/copier.pro9
-rw-r--r--tests/auto/qclipboard/copier/main.cpp54
-rw-r--r--tests/auto/qclipboard/paster/main.cpp54
-rw-r--r--tests/auto/qclipboard/paster/paster.pro11
-rw-r--r--tests/auto/qclipboard/qclipboard.pro4
-rw-r--r--tests/auto/qclipboard/test/test.pro19
-rw-r--r--tests/auto/qclipboard/tst_qclipboard.cpp336
-rw-r--r--tests/auto/qcolor/.gitignore1
-rw-r--r--tests/auto/qcolor/qcolor.pro5
-rw-r--r--tests/auto/qcolor/tst_qcolor.cpp1305
-rw-r--r--tests/auto/qcolordialog/.gitignore1
-rw-r--r--tests/auto/qcolordialog/qcolordialog.pro5
-rw-r--r--tests/auto/qcolordialog/tst_qcolordialog.cpp165
-rw-r--r--tests/auto/qcolumnview/.gitignore1
-rw-r--r--tests/auto/qcolumnview/qcolumnview.pro8
-rw-r--r--tests/auto/qcolumnview/tst_qcolumnview.cpp1008
-rw-r--r--tests/auto/qcombobox/.gitignore1
-rw-r--r--tests/auto/qcombobox/qcombobox.pro6
-rw-r--r--tests/auto/qcombobox/tst_qcombobox.cpp2182
-rw-r--r--tests/auto/qcommandlinkbutton/.gitignore1
-rw-r--r--tests/auto/qcommandlinkbutton/qcommandlinkbutton.pro5
-rw-r--r--tests/auto/qcommandlinkbutton/tst_qcommandlinkbutton.cpp564
-rw-r--r--tests/auto/qcompleter/.gitignore1
-rw-r--r--tests/auto/qcompleter/qcompleter.pro16
-rw-r--r--tests/auto/qcompleter/tst_qcompleter.cpp1097
-rw-r--r--tests/auto/qcomplextext/.gitignore1
-rw-r--r--tests/auto/qcomplextext/bidireorderstring.h150
-rw-r--r--tests/auto/qcomplextext/qcomplextext.pro5
-rw-r--r--tests/auto/qcomplextext/tst_qcomplextext.cpp167
-rw-r--r--tests/auto/qcopchannel/.gitignore2
-rw-r--r--tests/auto/qcopchannel/qcopchannel.pro6
-rw-r--r--tests/auto/qcopchannel/test/test.pro14
-rw-r--r--tests/auto/qcopchannel/testSend/main.cpp64
-rw-r--r--tests/auto/qcopchannel/testSend/testSend.pro5
-rw-r--r--tests/auto/qcopchannel/tst_qcopchannel.cpp173
-rw-r--r--tests/auto/qcoreapplication/.gitignore1
-rw-r--r--tests/auto/qcoreapplication/qcoreapplication.pro6
-rw-r--r--tests/auto/qcoreapplication/tst_qcoreapplication.cpp475
-rw-r--r--tests/auto/qcryptographichash/.gitignore1
-rw-r--r--tests/auto/qcryptographichash/qcryptographichash.pro6
-rw-r--r--tests/auto/qcryptographichash/tst_qcryptographichash.cpp154
-rw-r--r--tests/auto/qcssparser/.gitignore1
-rw-r--r--tests/auto/qcssparser/qcssparser.pro11
-rw-r--r--tests/auto/qcssparser/testdata/scanner/comments/input1
-rw-r--r--tests/auto/qcssparser/testdata/scanner/comments/output4
-rw-r--r--tests/auto/qcssparser/testdata/scanner/comments2/input1
-rw-r--r--tests/auto/qcssparser/testdata/scanner/comments2/output12
-rw-r--r--tests/auto/qcssparser/testdata/scanner/comments3/input1
-rw-r--r--tests/auto/qcssparser/testdata/scanner/comments3/output4
-rw-r--r--tests/auto/qcssparser/testdata/scanner/comments4/input1
-rw-r--r--tests/auto/qcssparser/testdata/scanner/comments4/output3
-rw-r--r--tests/auto/qcssparser/testdata/scanner/quotedstring/input1
-rw-r--r--tests/auto/qcssparser/testdata/scanner/quotedstring/output5
-rw-r--r--tests/auto/qcssparser/testdata/scanner/simple/input1
-rw-r--r--tests/auto/qcssparser/testdata/scanner/simple/output9
-rw-r--r--tests/auto/qcssparser/testdata/scanner/unicode/input1
-rw-r--r--tests/auto/qcssparser/testdata/scanner/unicode/output3
-rw-r--r--tests/auto/qcssparser/tst_cssparser.cpp1615
-rw-r--r--tests/auto/qdatastream/.gitignore2
-rw-r--r--tests/auto/qdatastream/datastream.q42bin0 -> 668 bytes-rw-r--r--tests/auto/qdatastream/gearflowers.svg8342
-rw-r--r--tests/auto/qdatastream/qdatastream.pro20
-rw-r--r--tests/auto/qdatastream/tests2.svg12
-rw-r--r--tests/auto/qdatastream/tst_qdatastream.cpp3345
-rw-r--r--tests/auto/qdatawidgetmapper/.gitignore1
-rw-r--r--tests/auto/qdatawidgetmapper/qdatawidgetmapper.pro4
-rw-r--r--tests/auto/qdatawidgetmapper/tst_qdatawidgetmapper.cpp410
-rw-r--r--tests/auto/qdate/.gitignore1
-rw-r--r--tests/auto/qdate/qdate.pro7
-rw-r--r--tests/auto/qdate/tst_qdate.cpp909
-rw-r--r--tests/auto/qdatetime/.gitignore1
-rw-r--r--tests/auto/qdatetime/qdatetime.pro14
-rw-r--r--tests/auto/qdatetime/tst_qdatetime.cpp1511
-rw-r--r--tests/auto/qdatetimeedit/.gitignore1
-rw-r--r--tests/auto/qdatetimeedit/qdatetimeedit.pro7
-rw-r--r--tests/auto/qdatetimeedit/tst_qdatetimeedit.cpp3429
-rw-r--r--tests/auto/qdbusabstractadaptor/.gitignore1
-rw-r--r--tests/auto/qdbusabstractadaptor/qdbusabstractadaptor.pro10
-rw-r--r--tests/auto/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp1440
-rw-r--r--tests/auto/qdbusconnection/.gitignore1
-rw-r--r--tests/auto/qdbusconnection/qdbusconnection.pro11
-rw-r--r--tests/auto/qdbusconnection/tst_qdbusconnection.cpp542
-rw-r--r--tests/auto/qdbuscontext/.gitignore1
-rw-r--r--tests/auto/qdbuscontext/qdbuscontext.pro11
-rw-r--r--tests/auto/qdbuscontext/tst_qdbuscontext.cpp93
-rw-r--r--tests/auto/qdbusinterface/.gitignore1
-rw-r--r--tests/auto/qdbusinterface/qdbusinterface.pro10
-rw-r--r--tests/auto/qdbusinterface/tst_qdbusinterface.cpp328
-rw-r--r--tests/auto/qdbuslocalcalls/.gitignore1
-rw-r--r--tests/auto/qdbuslocalcalls/qdbuslocalcalls.pro11
-rw-r--r--tests/auto/qdbuslocalcalls/tst_qdbuslocalcalls.cpp277
-rw-r--r--tests/auto/qdbusmarshall/.gitignore2
-rw-r--r--tests/auto/qdbusmarshall/common.h651
-rw-r--r--tests/auto/qdbusmarshall/dummy.cpp44
-rw-r--r--tests/auto/qdbusmarshall/qdbusmarshall.pro10
-rw-r--r--tests/auto/qdbusmarshall/qpong/qpong.cpp81
-rw-r--r--tests/auto/qdbusmarshall/qpong/qpong.pro6
-rw-r--r--tests/auto/qdbusmarshall/test/test.pro8
-rw-r--r--tests/auto/qdbusmarshall/tst_qdbusmarshall.cpp786
-rw-r--r--tests/auto/qdbusmetaobject/.gitignore1
-rw-r--r--tests/auto/qdbusmetaobject/qdbusmetaobject.pro10
-rw-r--r--tests/auto/qdbusmetaobject/tst_qdbusmetaobject.cpp688
-rw-r--r--tests/auto/qdbusmetatype/.gitignore1
-rw-r--r--tests/auto/qdbusmetatype/qdbusmetatype.pro10
-rw-r--r--tests/auto/qdbusmetatype/tst_qdbusmetatype.cpp383
-rw-r--r--tests/auto/qdbuspendingcall/.gitignore1
-rw-r--r--tests/auto/qdbuspendingcall/qdbuspendingcall.pro4
-rw-r--r--tests/auto/qdbuspendingcall/tst_qdbuspendingcall.cpp430
-rw-r--r--tests/auto/qdbuspendingreply/.gitignore1
-rw-r--r--tests/auto/qdbuspendingreply/qdbuspendingreply.pro4
-rw-r--r--tests/auto/qdbuspendingreply/tst_qdbuspendingreply.cpp572
-rw-r--r--tests/auto/qdbusperformance/.gitignore2
-rw-r--r--tests/auto/qdbusperformance/qdbusperformance.pro8
-rw-r--r--tests/auto/qdbusperformance/server/server.cpp64
-rw-r--r--tests/auto/qdbusperformance/server/server.pro5
-rw-r--r--tests/auto/qdbusperformance/serverobject.h115
-rw-r--r--tests/auto/qdbusperformance/test/test.pro7
-rw-r--r--tests/auto/qdbusperformance/tst_qdbusperformance.cpp234
-rw-r--r--tests/auto/qdbusreply/.gitignore1
-rw-r--r--tests/auto/qdbusreply/qdbusreply.pro10
-rw-r--r--tests/auto/qdbusreply/tst_qdbusreply.cpp361
-rw-r--r--tests/auto/qdbusserver/.gitignore1
-rw-r--r--tests/auto/qdbusserver/qdbusserver.pro11
-rw-r--r--tests/auto/qdbusserver/server.cpp49
-rw-r--r--tests/auto/qdbusserver/tst_qdbusserver.cpp78
-rw-r--r--tests/auto/qdbusthreading/.gitignore1
-rw-r--r--tests/auto/qdbusthreading/qdbusthreading.pro11
-rw-r--r--tests/auto/qdbusthreading/tst_qdbusthreading.cpp608
-rw-r--r--tests/auto/qdbusxmlparser/.gitignore1
-rw-r--r--tests/auto/qdbusxmlparser/qdbusxmlparser.pro10
-rw-r--r--tests/auto/qdbusxmlparser/tst_qdbusxmlparser.cpp599
-rw-r--r--tests/auto/qdebug/.gitignore1
-rw-r--r--tests/auto/qdebug/qdebug.pro7
-rw-r--r--tests/auto/qdebug/tst_qdebug.cpp158
-rw-r--r--tests/auto/qdesktopservices/.gitignore1
-rw-r--r--tests/auto/qdesktopservices/qdesktopservices.pro8
-rw-r--r--tests/auto/qdesktopservices/tst_qdesktopservices.cpp176
-rw-r--r--tests/auto/qdesktopwidget/.gitignore1
-rw-r--r--tests/auto/qdesktopwidget/qdesktopwidget.pro5
-rw-r--r--tests/auto/qdesktopwidget/tst_qdesktopwidget.cpp155
-rw-r--r--tests/auto/qdial/.gitignore1
-rw-r--r--tests/auto/qdial/qdial.pro4
-rw-r--r--tests/auto/qdial/tst_qdial.cpp147
-rw-r--r--tests/auto/qdialog/.gitignore1
-rw-r--r--tests/auto/qdialog/qdialog.pro5
-rw-r--r--tests/auto/qdialog/tst_qdialog.cpp600
-rw-r--r--tests/auto/qdialogbuttonbox/.gitignore1
-rw-r--r--tests/auto/qdialogbuttonbox/qdialogbuttonbox.pro6
-rw-r--r--tests/auto/qdialogbuttonbox/tst_qdialogbuttonbox.cpp761
-rw-r--r--tests/auto/qdir/.gitignore1
-rw-r--r--tests/auto/qdir/entrylist/directory/dummy0
-rw-r--r--tests/auto/qdir/entrylist/file0
-rw-r--r--tests/auto/qdir/qdir.pro16
-rw-r--r--tests/auto/qdir/qdir.qrc5
-rw-r--r--tests/auto/qdir/resources/entryList/file1.data0
-rw-r--r--tests/auto/qdir/resources/entryList/file2.data0
-rw-r--r--tests/auto/qdir/resources/entryList/file3.data0
-rw-r--r--tests/auto/qdir/resources/entryList/file4.nothing0
-rw-r--r--tests/auto/qdir/searchdir/subdir1/picker.png1
-rw-r--r--tests/auto/qdir/searchdir/subdir2/picker.png1
-rw-r--r--tests/auto/qdir/testData/empty1
-rw-r--r--tests/auto/qdir/testdir/dir/Makefile0
-rw-r--r--tests/auto/qdir/testdir/dir/qdir.pro2
-rw-r--r--tests/auto/qdir/testdir/dir/qrc_qdir.cpp42
-rw-r--r--tests/auto/qdir/testdir/dir/tmp/empty0
-rw-r--r--tests/auto/qdir/testdir/dir/tst_qdir.cpp42
-rw-r--r--tests/auto/qdir/testdir/spaces/foo. bar0
-rw-r--r--tests/auto/qdir/testdir/spaces/foo.bar0
-rw-r--r--tests/auto/qdir/tst_qdir.cpp1327
-rw-r--r--tests/auto/qdir/types/a0
-rw-r--r--tests/auto/qdir/types/a.a1
-rw-r--r--tests/auto/qdir/types/a.b1
-rw-r--r--tests/auto/qdir/types/a.c1
-rw-r--r--tests/auto/qdir/types/b0
-rw-r--r--tests/auto/qdir/types/b.a1
-rw-r--r--tests/auto/qdir/types/b.b1
-rw-r--r--tests/auto/qdir/types/b.c1
-rw-r--r--tests/auto/qdir/types/c0
-rw-r--r--tests/auto/qdir/types/c.a1
-rw-r--r--tests/auto/qdir/types/c.b1
-rw-r--r--tests/auto/qdir/types/c.c1
-rw-r--r--tests/auto/qdir/types/d.a/dummy0
-rw-r--r--tests/auto/qdir/types/d.b/dummy0
-rw-r--r--tests/auto/qdir/types/d.c/dummy0
-rw-r--r--tests/auto/qdir/types/d/dummy0
-rw-r--r--tests/auto/qdir/types/e.a/dummy0
-rw-r--r--tests/auto/qdir/types/e.b/dummy0
-rw-r--r--tests/auto/qdir/types/e.c/dummy0
-rw-r--r--tests/auto/qdir/types/e/dummy0
-rw-r--r--tests/auto/qdir/types/f.a/dummy0
-rw-r--r--tests/auto/qdir/types/f.b/dummy0
-rw-r--r--tests/auto/qdir/types/f.c/dummy0
-rw-r--r--tests/auto/qdir/types/f/dummy0
-rw-r--r--tests/auto/qdirectpainter/.gitignore2
-rw-r--r--tests/auto/qdirectpainter/qdirectpainter.pro7
-rw-r--r--tests/auto/qdirectpainter/runDirectPainter/main.cpp81
-rw-r--r--tests/auto/qdirectpainter/runDirectPainter/runDirectPainter.pro5
-rw-r--r--tests/auto/qdirectpainter/test/test.pro14
-rw-r--r--tests/auto/qdirectpainter/tst_qdirectpainter.cpp247
-rw-r--r--tests/auto/qdiriterator/.gitignore1
-rw-r--r--tests/auto/qdiriterator/entrylist/directory/dummy0
-rw-r--r--tests/auto/qdiriterator/entrylist/file0
-rw-r--r--tests/auto/qdiriterator/foo/bar/readme.txt0
-rw-r--r--tests/auto/qdiriterator/qdiriterator.pro12
-rw-r--r--tests/auto/qdiriterator/qdiriterator.qrc6
-rw-r--r--tests/auto/qdiriterator/recursiveDirs/dir1/aPage.html8
-rw-r--r--tests/auto/qdiriterator/recursiveDirs/dir1/textFileB.txt1
-rw-r--r--tests/auto/qdiriterator/recursiveDirs/textFileA.txt1
-rw-r--r--tests/auto/qdiriterator/tst_qdiriterator.cpp427
-rw-r--r--tests/auto/qdirmodel/.gitignore1
-rw-r--r--tests/auto/qdirmodel/dirtest/test1/dummy1
-rw-r--r--tests/auto/qdirmodel/dirtest/test1/test0
-rw-r--r--tests/auto/qdirmodel/qdirmodel.pro16
-rw-r--r--tests/auto/qdirmodel/test/file01.tst0
-rw-r--r--tests/auto/qdirmodel/test/file02.tst0
-rw-r--r--tests/auto/qdirmodel/test/file03.tst0
-rw-r--r--tests/auto/qdirmodel/test/file04.tst0
-rw-r--r--tests/auto/qdirmodel/tst_qdirmodel.cpp669
-rw-r--r--tests/auto/qdockwidget/.gitignore1
-rw-r--r--tests/auto/qdockwidget/qdockwidget.pro5
-rw-r--r--tests/auto/qdockwidget/tst_qdockwidget.cpp802
-rw-r--r--tests/auto/qdom/.gitattributes4
-rw-r--r--tests/auto/qdom/.gitignore1
-rw-r--r--tests/auto/qdom/doubleNamespaces.xml1
-rw-r--r--tests/auto/qdom/qdom.pro13
-rw-r--r--tests/auto/qdom/testdata/excludedCodecs.txt135
-rw-r--r--tests/auto/qdom/testdata/toString_01/doc01.xml1
-rw-r--r--tests/auto/qdom/testdata/toString_01/doc02.xml1
-rw-r--r--tests/auto/qdom/testdata/toString_01/doc03.xml6
-rw-r--r--tests/auto/qdom/testdata/toString_01/doc04.xml510
-rw-r--r--tests/auto/qdom/testdata/toString_01/doc05.xml3554
-rw-r--r--tests/auto/qdom/testdata/toString_01/doc_euc-jp.xml78
-rw-r--r--tests/auto/qdom/testdata/toString_01/doc_iso-2022-jp.xml78
-rw-r--r--tests/auto/qdom/testdata/toString_01/doc_little-endian.xmlbin0 -> 3186 bytes-rw-r--r--tests/auto/qdom/testdata/toString_01/doc_utf-16.xmlbin0 -> 3186 bytes-rw-r--r--tests/auto/qdom/testdata/toString_01/doc_utf-8.xml77
-rw-r--r--tests/auto/qdom/tst_qdom.cpp1897
-rw-r--r--tests/auto/qdom/umlaut.xml2
-rw-r--r--tests/auto/qdoublespinbox/.gitignore1
-rw-r--r--tests/auto/qdoublespinbox/qdoublespinbox.pro5
-rw-r--r--tests/auto/qdoublespinbox/tst_qdoublespinbox.cpp1008
-rw-r--r--tests/auto/qdoublevalidator/.gitignore1
-rw-r--r--tests/auto/qdoublevalidator/qdoublevalidator.pro4
-rw-r--r--tests/auto/qdoublevalidator/tst_qdoublevalidator.cpp318
-rw-r--r--tests/auto/qdrag/.gitignore1
-rw-r--r--tests/auto/qdrag/qdrag.pro9
-rw-r--r--tests/auto/qdrag/tst_qdrag.cpp94
-rw-r--r--tests/auto/qerrormessage/.gitignore1
-rw-r--r--tests/auto/qerrormessage/qerrormessage.pro15
-rw-r--r--tests/auto/qerrormessage/tst_qerrormessage.cpp158
-rw-r--r--tests/auto/qevent/.gitignore1
-rw-r--r--tests/auto/qevent/qevent.pro6
-rw-r--r--tests/auto/qevent/tst_qevent.cpp92
-rw-r--r--tests/auto/qeventloop/.gitignore1
-rw-r--r--tests/auto/qeventloop/qeventloop.pro7
-rw-r--r--tests/auto/qeventloop/tst_qeventloop.cpp733
-rw-r--r--tests/auto/qexplicitlyshareddatapointer/.gitignore1
-rw-r--r--tests/auto/qexplicitlyshareddatapointer/qexplicitlyshareddatapointer.pro3
-rw-r--r--tests/auto/qexplicitlyshareddatapointer/tst_qexplicitlyshareddatapointer.cpp239
-rw-r--r--tests/auto/qfile/.gitattributes2
-rw-r--r--tests/auto/qfile/.gitignore8
-rw-r--r--tests/auto/qfile/dosfile.txt14
-rw-r--r--tests/auto/qfile/forCopying.txt1
-rw-r--r--tests/auto/qfile/forRenaming.txt7
-rw-r--r--tests/auto/qfile/noendofline.txt3
-rw-r--r--tests/auto/qfile/qfile.pro9
-rw-r--r--tests/auto/qfile/qfile.qrc5
-rw-r--r--tests/auto/qfile/resources/file1.ext11
-rw-r--r--tests/auto/qfile/stdinprocess/main.cpp72
-rw-r--r--tests/auto/qfile/stdinprocess/stdinprocess.pro6
-rw-r--r--tests/auto/qfile/test/test.pro33
-rw-r--r--tests/auto/qfile/testfile.txt6
-rw-r--r--tests/auto/qfile/testlog.txt144
-rw-r--r--tests/auto/qfile/tst_qfile.cpp2532
-rw-r--r--tests/auto/qfile/two.dots.file1
-rw-r--r--tests/auto/qfiledialog/.gitignore1
-rw-r--r--tests/auto/qfiledialog/qfiledialog.pro15
-rw-r--r--tests/auto/qfiledialog/tst_qfiledialog.cpp1793
-rw-r--r--tests/auto/qfileiconprovider/.gitignore1
-rw-r--r--tests/auto/qfileiconprovider/qfileiconprovider.pro4
-rw-r--r--tests/auto/qfileiconprovider/tst_qfileiconprovider.cpp181
-rw-r--r--tests/auto/qfileinfo/.gitignore1
-rw-r--r--tests/auto/qfileinfo/qfileinfo.pro15
-rw-r--r--tests/auto/qfileinfo/qfileinfo.qrc5
-rw-r--r--tests/auto/qfileinfo/resources/file10
-rw-r--r--tests/auto/qfileinfo/resources/file1.ext10
-rw-r--r--tests/auto/qfileinfo/resources/file1.ext1.ext20
-rw-r--r--tests/auto/qfileinfo/tst_qfileinfo.cpp1108
-rw-r--r--tests/auto/qfilesystemmodel/.gitignore1
-rw-r--r--tests/auto/qfilesystemmodel/qfilesystemmodel.pro9
-rw-r--r--tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp814
-rw-r--r--tests/auto/qfilesystemwatcher/.gitignore1
-rw-r--r--tests/auto/qfilesystemwatcher/qfilesystemwatcher.pro5
-rw-r--r--tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp407
-rw-r--r--tests/auto/qflags/.gitignore1
-rw-r--r--tests/auto/qflags/qflags.pro6
-rw-r--r--tests/auto/qflags/tst_qflags.cpp76
-rw-r--r--tests/auto/qfocusevent/.gitignore1
-rw-r--r--tests/auto/qfocusevent/qfocusevent.pro6
-rw-r--r--tests/auto/qfocusevent/tst_qfocusevent.cpp426
-rw-r--r--tests/auto/qfocusframe/.gitignore1
-rw-r--r--tests/auto/qfocusframe/qfocusframe.pro9
-rw-r--r--tests/auto/qfocusframe/tst_qfocusframe.cpp89
-rw-r--r--tests/auto/qfont/.gitignore1
-rw-r--r--tests/auto/qfont/qfont.pro4
-rw-r--r--tests/auto/qfont/tst_qfont.cpp593
-rw-r--r--tests/auto/qfontcombobox/.gitignore1
-rw-r--r--tests/auto/qfontcombobox/qfontcombobox.pro4
-rw-r--r--tests/auto/qfontcombobox/tst_qfontcombobox.cpp291
-rw-r--r--tests/auto/qfontdatabase/.gitignore1
-rw-r--r--tests/auto/qfontdatabase/FreeMono.ttfbin0 -> 267400 bytes-rw-r--r--tests/auto/qfontdatabase/qfontdatabase.pro10
-rw-r--r--tests/auto/qfontdatabase/tst_qfontdatabase.cpp248
-rw-r--r--tests/auto/qfontdialog/.gitignore1
-rw-r--r--tests/auto/qfontdialog/qfontdialog.pro7
-rw-r--r--tests/auto/qfontdialog/tst_qfontdialog.cpp156
-rw-r--r--tests/auto/qfontdialog/tst_qfontdialog_mac_helpers.mm26
-rw-r--r--tests/auto/qfontmetrics/.gitignore1
-rw-r--r--tests/auto/qfontmetrics/qfontmetrics.pro4
-rw-r--r--tests/auto/qfontmetrics/tst_qfontmetrics.cpp205
-rw-r--r--tests/auto/qformlayout/.gitignore1
-rw-r--r--tests/auto/qformlayout/qformlayout.pro2
-rw-r--r--tests/auto/qformlayout/tst_qformlayout.cpp910
-rw-r--r--tests/auto/qftp/.gitattributes1
-rw-r--r--tests/auto/qftp/.gitignore2
-rw-r--r--tests/auto/qftp/qftp.pro14
-rw-r--r--tests/auto/qftp/rfc3252.txt899
-rw-r--r--tests/auto/qftp/tst_qftp.cpp2045
-rw-r--r--tests/auto/qfuture/.gitignore1
-rw-r--r--tests/auto/qfuture/qfuture.pro4
-rw-r--r--tests/auto/qfuture/tst_qfuture.cpp1440
-rw-r--r--tests/auto/qfuture/versioncheck.h49
-rw-r--r--tests/auto/qfuturewatcher/.gitignore1
-rw-r--r--tests/auto/qfuturewatcher/qfuturewatcher.pro3
-rw-r--r--tests/auto/qfuturewatcher/tst_qfuturewatcher.cpp893
-rw-r--r--tests/auto/qgetputenv/.gitignore1
-rw-r--r--tests/auto/qgetputenv/qgetputenv.pro7
-rw-r--r--tests/auto/qgetputenv/tst_qgetputenv.cpp84
-rw-r--r--tests/auto/qgl/.gitignore1
-rw-r--r--tests/auto/qgl/qgl.pro10
-rw-r--r--tests/auto/qgl/tst_qgl.cpp408
-rw-r--r--tests/auto/qglobal/.gitignore1
-rw-r--r--tests/auto/qglobal/qglobal.pro6
-rw-r--r--tests/auto/qglobal/tst_qglobal.cpp194
-rw-r--r--tests/auto/qgraphicsgridlayout/.gitignore1
-rw-r--r--tests/auto/qgraphicsgridlayout/qgraphicsgridlayout.pro4
-rw-r--r--tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp2095
-rw-r--r--tests/auto/qgraphicsitem/.gitignore1
-rw-r--r--tests/auto/qgraphicsitem/nestedClipping_reference.pngbin0 -> 638 bytes-rw-r--r--tests/auto/qgraphicsitem/qgraphicsitem.pro7
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp5893
-rw-r--r--tests/auto/qgraphicsitemanimation/.gitignore1
-rw-r--r--tests/auto/qgraphicsitemanimation/qgraphicsitemanimation.pro5
-rw-r--r--tests/auto/qgraphicsitemanimation/tst_qgraphicsitemanimation.cpp198
-rw-r--r--tests/auto/qgraphicslayout/.gitignore1
-rw-r--r--tests/auto/qgraphicslayout/qgraphicslayout.pro8
-rw-r--r--tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp694
-rw-r--r--tests/auto/qgraphicslayoutitem/.gitignore1
-rw-r--r--tests/auto/qgraphicslayoutitem/qgraphicslayoutitem.pro4
-rw-r--r--tests/auto/qgraphicslayoutitem/tst_qgraphicslayoutitem.cpp368
-rw-r--r--tests/auto/qgraphicslinearlayout/.gitignore1
-rw-r--r--tests/auto/qgraphicslinearlayout/qgraphicslinearlayout.pro4
-rw-r--r--tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp1412
-rw-r--r--tests/auto/qgraphicspixmapitem/.gitignore1
-rw-r--r--tests/auto/qgraphicspixmapitem/qgraphicspixmapitem.pro4
-rw-r--r--tests/auto/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp427
-rw-r--r--tests/auto/qgraphicspolygonitem/.gitignore1
-rw-r--r--tests/auto/qgraphicspolygonitem/qgraphicspolygonitem.pro4
-rw-r--r--tests/auto/qgraphicspolygonitem/tst_qgraphicspolygonitem.cpp349
-rw-r--r--tests/auto/qgraphicsproxywidget/.gitignore1
-rw-r--r--tests/auto/qgraphicsproxywidget/qgraphicsproxywidget.pro4
-rw-r--r--tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp3159
-rw-r--r--tests/auto/qgraphicsscene/.gitignore1
-rw-r--r--tests/auto/qgraphicsscene/Ash_European.jpgbin0 -> 4751 bytes-rw-r--r--tests/auto/qgraphicsscene/graphicsScene_selection.databin0 -> 854488 bytes-rw-r--r--tests/auto/qgraphicsscene/images.qrc5
-rw-r--r--tests/auto/qgraphicsscene/qgraphicsscene.pro17
-rw-r--r--tests/auto/qgraphicsscene/testData/render/all-all-45-deg-left.pngbin0 -> 2181 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/all-all-45-deg-right.pngbin0 -> 1953 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/all-all-scale-2x.pngbin0 -> 2399 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/all-all-translate-0-50.pngbin0 -> 1872 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/all-all-translate-50-0.pngbin0 -> 1884 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/all-all-untransformed.pngbin0 -> 1896 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/all-bottomleft-untransformed.pngbin0 -> 1560 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/all-bottomright-untransformed.pngbin0 -> 1550 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/all-topleft-untransformed.pngbin0 -> 1566 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/all-topright-untransformed.pngbin0 -> 1547 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/bottom-bottomright-untransformed.pngbin0 -> 1172 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/bottom-topleft-untransformed.pngbin0 -> 1690 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/bottomleft-all-untransformed.pngbin0 -> 1736 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/bottomleft-topleft-untransformed.pngbin0 -> 1642 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/bottomright-all-untransformed.pngbin0 -> 1093 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/bottomright-topleft-untransformed.pngbin0 -> 1661 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/left-bottomright-untransformed.pngbin0 -> 1289 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/left-topleft-untransformed.pngbin0 -> 1823 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/right-bottomright-untransformed.pngbin0 -> 1236 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/right-topleft-untransformed.pngbin0 -> 1839 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/top-bottomright-untransformed.pngbin0 -> 1174 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/top-topleft-untransformed.pngbin0 -> 1703 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/topleft-all-untransformed.pngbin0 -> 1973 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/topleft-topleft-untransformed.pngbin0 -> 1650 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/topright-all-untransformed.pngbin0 -> 2018 bytes-rw-r--r--tests/auto/qgraphicsscene/testData/render/topright-topleft-untransformed.pngbin0 -> 1669 bytes-rw-r--r--tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp3566
-rw-r--r--tests/auto/qgraphicsview/.gitignore1
-rw-r--r--tests/auto/qgraphicsview/qgraphicsview.pro5
-rw-r--r--tests/auto/qgraphicsview/tst_qgraphicsview.cpp2992
-rw-r--r--tests/auto/qgraphicsview/tst_qgraphicsview_2.cpp956
-rw-r--r--tests/auto/qgraphicswidget/.gitignore1
-rw-r--r--tests/auto/qgraphicswidget/qgraphicswidget.pro4
-rw-r--r--tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp1830
-rw-r--r--tests/auto/qgridlayout/.gitignore1
-rw-r--r--tests/auto/qgridlayout/qgridlayout.pro6
-rw-r--r--tests/auto/qgridlayout/sortdialog.ui135
-rw-r--r--tests/auto/qgridlayout/tst_qgridlayout.cpp1637
-rw-r--r--tests/auto/qgroupbox/.gitignore1
-rw-r--r--tests/auto/qgroupbox/qgroupbox.pro5
-rw-r--r--tests/auto/qgroupbox/tst_qgroupbox.cpp463
-rw-r--r--tests/auto/qguivariant/.gitignore1
-rw-r--r--tests/auto/qguivariant/qguivariant.pro5
-rw-r--r--tests/auto/qguivariant/tst_qguivariant.cpp72
-rw-r--r--tests/auto/qhash/.gitignore1
-rw-r--r--tests/auto/qhash/qhash.pro7
-rw-r--r--tests/auto/qhash/tst_qhash.cpp1233
-rw-r--r--tests/auto/qheaderview/.gitignore1
-rw-r--r--tests/auto/qheaderview/qheaderview.pro4
-rw-r--r--tests/auto/qheaderview/tst_qheaderview.cpp1923
-rw-r--r--tests/auto/qhelpcontentmodel/.gitignore2
-rw-r--r--tests/auto/qhelpcontentmodel/data/collection.qhcbin0 -> 10240 bytes-rw-r--r--tests/auto/qhelpcontentmodel/data/qmake-3.3.8.qchbin0 -> 61440 bytes-rw-r--r--tests/auto/qhelpcontentmodel/data/qmake-4.3.0.qchbin0 -> 93184 bytes-rw-r--r--tests/auto/qhelpcontentmodel/data/test.qchbin0 -> 22528 bytes-rw-r--r--tests/auto/qhelpcontentmodel/qhelpcontentmodel.pro10
-rw-r--r--tests/auto/qhelpcontentmodel/tst_qhelpcontentmodel.cpp182
-rw-r--r--tests/auto/qhelpcontentmodel/tst_qhelpcontentmodel.pro8
-rw-r--r--tests/auto/qhelpenginecore/.gitignore3
-rw-r--r--tests/auto/qhelpenginecore/data/collection.qhcbin0 -> 10240 bytes-rw-r--r--tests/auto/qhelpenginecore/data/collection1.qhcbin0 -> 10240 bytes-rw-r--r--tests/auto/qhelpenginecore/data/linguist-3.3.8.qchbin0 -> 131072 bytes-rw-r--r--tests/auto/qhelpenginecore/data/qmake-3.3.8.qchbin0 -> 61440 bytes-rw-r--r--tests/auto/qhelpenginecore/data/qmake-4.3.0.qchbin0 -> 93184 bytes-rw-r--r--tests/auto/qhelpenginecore/data/test.html11
-rw-r--r--tests/auto/qhelpenginecore/data/test.qchbin0 -> 22528 bytes-rw-r--r--tests/auto/qhelpenginecore/qhelpenginecore.pro10
-rw-r--r--tests/auto/qhelpenginecore/tst_qhelpenginecore.cpp460
-rw-r--r--tests/auto/qhelpenginecore/tst_qhelpenginecore.pro8
-rw-r--r--tests/auto/qhelpgenerator/.gitignore1
-rw-r--r--tests/auto/qhelpgenerator/data/cars.html11
-rw-r--r--tests/auto/qhelpgenerator/data/classic.css92
-rw-r--r--tests/auto/qhelpgenerator/data/fancy.html11
-rw-r--r--tests/auto/qhelpgenerator/data/people.html11
-rw-r--r--tests/auto/qhelpgenerator/data/sub/about.html11
-rw-r--r--tests/auto/qhelpgenerator/data/test.html11
-rw-r--r--tests/auto/qhelpgenerator/data/test.qhp72
-rw-r--r--tests/auto/qhelpgenerator/qhelpgenerator.pro10
-rw-r--r--tests/auto/qhelpgenerator/tst_qhelpgenerator.cpp218
-rw-r--r--tests/auto/qhelpgenerator/tst_qhelpgenerator.pro9
-rw-r--r--tests/auto/qhelpindexmodel/.gitignore2
-rw-r--r--tests/auto/qhelpindexmodel/data/collection.qhcbin0 -> 10240 bytes-rw-r--r--tests/auto/qhelpindexmodel/data/collection1.qhcbin0 -> 10240 bytes-rw-r--r--tests/auto/qhelpindexmodel/data/linguist-3.3.8.qchbin0 -> 131072 bytes-rw-r--r--tests/auto/qhelpindexmodel/data/qmake-3.3.8.qchbin0 -> 61440 bytes-rw-r--r--tests/auto/qhelpindexmodel/data/qmake-4.3.0.qchbin0 -> 93184 bytes-rw-r--r--tests/auto/qhelpindexmodel/data/test.html11
-rw-r--r--tests/auto/qhelpindexmodel/data/test.qchbin0 -> 22528 bytes-rw-r--r--tests/auto/qhelpindexmodel/qhelpindexmodel.pro10
-rw-r--r--tests/auto/qhelpindexmodel/tst_qhelpindexmodel.cpp219
-rw-r--r--tests/auto/qhelpindexmodel/tst_qhelpindexmodel.pro9
-rw-r--r--tests/auto/qhelpprojectdata/.gitignore1
-rw-r--r--tests/auto/qhelpprojectdata/data/test.qhp72
-rw-r--r--tests/auto/qhelpprojectdata/qhelpprojectdata.pro10
-rw-r--r--tests/auto/qhelpprojectdata/tst_qhelpprojectdata.cpp193
-rw-r--r--tests/auto/qhelpprojectdata/tst_qhelpprojectdata.pro9
-rw-r--r--tests/auto/qhostaddress/.gitignore1
-rw-r--r--tests/auto/qhostaddress/qhostaddress.pro14
-rw-r--r--tests/auto/qhostaddress/tst_qhostaddress.cpp601
-rw-r--r--tests/auto/qhostinfo/.gitignore1
-rw-r--r--tests/auto/qhostinfo/qhostinfo.pro13
-rw-r--r--tests/auto/qhostinfo/tst_qhostinfo.cpp409
-rw-r--r--tests/auto/qhttp/.gitattributes1
-rw-r--r--tests/auto/qhttp/.gitignore1
-rw-r--r--tests/auto/qhttp/dummyserver.h114
-rw-r--r--tests/auto/qhttp/qhttp.pro18
-rw-r--r--tests/auto/qhttp/rfc3252.txt899
-rw-r--r--tests/auto/qhttp/trolltech8
-rw-r--r--tests/auto/qhttp/tst_qhttp.cpp1530
-rwxr-xr-xtests/auto/qhttp/webserver/cgi-bin/retrieve_testfile.cgi6
-rwxr-xr-xtests/auto/qhttp/webserver/cgi-bin/rfc.cgi5
-rwxr-xr-xtests/auto/qhttp/webserver/cgi-bin/store_testfile.cgi6
-rw-r--r--tests/auto/qhttp/webserver/index.html899
-rw-r--r--tests/auto/qhttp/webserver/rfc3252899
-rw-r--r--tests/auto/qhttp/webserver/rfc3252.txt899
-rw-r--r--tests/auto/qhttpnetworkconnection/.gitignore1
-rw-r--r--tests/auto/qhttpnetworkconnection/qhttpnetworkconnection.pro4
-rw-r--r--tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp765
-rw-r--r--tests/auto/qhttpnetworkreply/.gitignore1
-rw-r--r--tests/auto/qhttpnetworkreply/qhttpnetworkreply.pro4
-rw-r--r--tests/auto/qhttpnetworkreply/tst_qhttpnetworkreply.cpp134
-rw-r--r--tests/auto/qhttpsocketengine/.gitignore1
-rw-r--r--tests/auto/qhttpsocketengine/qhttpsocketengine.pro12
-rw-r--r--tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp747
-rw-r--r--tests/auto/qicoimageformat/.gitignore1
-rw-r--r--tests/auto/qicoimageformat/icons/invalid/35floppy.icobin0 -> 1078 bytes-rw-r--r--tests/auto/qicoimageformat/icons/valid/35FLOPPY.ICObin0 -> 1078 bytes-rw-r--r--tests/auto/qicoimageformat/icons/valid/AddPerfMon.icobin0 -> 1078 bytes-rw-r--r--tests/auto/qicoimageformat/icons/valid/App.icobin0 -> 318 bytes-rw-r--r--tests/auto/qicoimageformat/icons/valid/Obj_N2_Internal_Mem.icobin0 -> 25214 bytes-rw-r--r--tests/auto/qicoimageformat/icons/valid/Status_Play.icobin0 -> 2862 bytes-rw-r--r--tests/auto/qicoimageformat/icons/valid/TIMER01.ICObin0 -> 1078 bytes-rw-r--r--tests/auto/qicoimageformat/icons/valid/WORLD.icobin0 -> 3310 bytes-rw-r--r--tests/auto/qicoimageformat/icons/valid/WORLDH.icobin0 -> 3310 bytes-rw-r--r--tests/auto/qicoimageformat/icons/valid/abcardWindow.icobin0 -> 22486 bytes-rw-r--r--tests/auto/qicoimageformat/icons/valid/semitransparent.icobin0 -> 25214 bytes-rw-r--r--tests/auto/qicoimageformat/icons/valid/trolltechlogo_tiny.icobin0 -> 3006 bytes-rw-r--r--tests/auto/qicoimageformat/qicoimageformat.pro17
-rw-r--r--tests/auto/qicoimageformat/tst_qticoimageformat.cpp305
-rw-r--r--tests/auto/qicon/.gitignore1
-rw-r--r--tests/auto/qicon/heart.svg55
-rw-r--r--tests/auto/qicon/heart.svgzbin0 -> 1506 bytes-rw-r--r--tests/auto/qicon/image.pngbin0 -> 14743 bytes-rw-r--r--tests/auto/qicon/image.tgabin0 -> 51708 bytes-rw-r--r--tests/auto/qicon/qicon.pro18
-rw-r--r--tests/auto/qicon/rect.pngbin0 -> 175 bytes-rw-r--r--tests/auto/qicon/rect.svg76
-rw-r--r--tests/auto/qicon/trash.svg58
-rw-r--r--tests/auto/qicon/tst_qicon.cpp614
-rw-r--r--tests/auto/qicon/tst_qicon.qrc6
-rw-r--r--tests/auto/qimage/.gitignore1
-rw-r--r--tests/auto/qimage/images/image.bmpbin0 -> 306 bytes-rw-r--r--tests/auto/qimage/images/image.gifbin0 -> 1089 bytes-rw-r--r--tests/auto/qimage/images/image.icobin0 -> 10134 bytes-rw-r--r--tests/auto/qimage/images/image.jpgbin0 -> 696 bytes-rw-r--r--tests/auto/qimage/images/image.pbm8
-rw-r--r--tests/auto/qimage/images/image.pgm10
-rw-r--r--tests/auto/qimage/images/image.pngbin0 -> 549 bytes-rw-r--r--tests/auto/qimage/images/image.ppm7
-rw-r--r--tests/auto/qimage/images/image.xbm5
-rw-r--r--tests/auto/qimage/images/image.xpm261
-rw-r--r--tests/auto/qimage/qimage.pro12
-rw-r--r--tests/auto/qimage/tst_qimage.cpp1766
-rw-r--r--tests/auto/qimageiohandler/.gitignore1
-rw-r--r--tests/auto/qimageiohandler/qimageiohandler.pro9
-rw-r--r--tests/auto/qimageiohandler/tst_qimageiohandler.cpp96
-rw-r--r--tests/auto/qimagereader/.gitignore2
-rw-r--r--tests/auto/qimagereader/images/16bpp.bmpbin0 -> 153654 bytes-rw-r--r--tests/auto/qimagereader/images/4bpp-rle.bmpbin0 -> 23662 bytes-rw-r--r--tests/auto/qimagereader/images/YCbCr_cmyk.jpgbin0 -> 3699 bytes-rw-r--r--tests/auto/qimagereader/images/YCbCr_cmyk.pngbin0 -> 230 bytes-rw-r--r--tests/auto/qimagereader/images/YCbCr_rgb.jpgbin0 -> 2045 bytes-rw-r--r--tests/auto/qimagereader/images/away.pngbin0 -> 753 bytes-rw-r--r--tests/auto/qimagereader/images/ball.mngbin0 -> 34394 bytes-rw-r--r--tests/auto/qimagereader/images/bat1.gifbin0 -> 953 bytes-rw-r--r--tests/auto/qimagereader/images/bat2.gifbin0 -> 980 bytes-rw-r--r--tests/auto/qimagereader/images/beavis.jpgbin0 -> 20688 bytes-rw-r--r--tests/auto/qimagereader/images/black.pngbin0 -> 697 bytes-rw-r--r--tests/auto/qimagereader/images/black.xpm65
-rw-r--r--tests/auto/qimagereader/images/colorful.bmpbin0 -> 65002 bytes-rw-r--r--tests/auto/qimagereader/images/corrupt-colors.xpm26
-rw-r--r--tests/auto/qimagereader/images/corrupt-data.tifbin0 -> 8590 bytes-rw-r--r--tests/auto/qimagereader/images/corrupt-pixels.xpm7
-rw-r--r--tests/auto/qimagereader/images/corrupt.bmpbin0 -> 116 bytes-rw-r--r--tests/auto/qimagereader/images/corrupt.gifbin0 -> 2608 bytes-rw-r--r--tests/auto/qimagereader/images/corrupt.jpgbin0 -> 18 bytes-rw-r--r--tests/auto/qimagereader/images/corrupt.mngbin0 -> 183 bytes-rw-r--r--tests/auto/qimagereader/images/corrupt.pngbin0 -> 95 bytes-rw-r--r--tests/auto/qimagereader/images/corrupt.xbm5
-rw-r--r--tests/auto/qimagereader/images/crash-signed-char.bmpbin0 -> 45748 bytes-rw-r--r--tests/auto/qimagereader/images/earth.gifbin0 -> 51712 bytes-rw-r--r--tests/auto/qimagereader/images/fire.mngbin0 -> 44430 bytes-rw-r--r--tests/auto/qimagereader/images/font.bmpbin0 -> 1026 bytes-rw-r--r--tests/auto/qimagereader/images/gnus.xbm622
-rw-r--r--tests/auto/qimagereader/images/image.pbm8
-rw-r--r--tests/auto/qimagereader/images/image.pgm10
-rw-r--r--tests/auto/qimagereader/images/image.pngbin0 -> 549 bytes-rw-r--r--tests/auto/qimagereader/images/image.ppm7
-rw-r--r--tests/auto/qimagereader/images/kollada-noextbin0 -> 13907 bytes-rw-r--r--tests/auto/qimagereader/images/kollada.pngbin0 -> 13907 bytes-rw-r--r--tests/auto/qimagereader/images/marble.xpm470
-rw-r--r--tests/auto/qimagereader/images/namedcolors.xpm18
-rw-r--r--tests/auto/qimagereader/images/negativeheight.bmpbin0 -> 24630 bytes-rw-r--r--tests/auto/qimagereader/images/noclearcode.bmpbin0 -> 326 bytes-rw-r--r--tests/auto/qimagereader/images/noclearcode.gifbin0 -> 130 bytes-rw-r--r--tests/auto/qimagereader/images/nontransparent.xpm788
-rw-r--r--tests/auto/qimagereader/images/pngwithcompressedtext.pngbin0 -> 757 bytes-rw-r--r--tests/auto/qimagereader/images/pngwithtext.pngbin0 -> 796 bytes-rw-r--r--tests/auto/qimagereader/images/rgba_adobedeflate_littleendian.tifbin0 -> 4784 bytes-rw-r--r--tests/auto/qimagereader/images/rgba_lzw_littleendian.tifbin0 -> 26690 bytes-rw-r--r--tests/auto/qimagereader/images/rgba_nocompression_bigendian.tifbin0 -> 160384 bytes-rw-r--r--tests/auto/qimagereader/images/rgba_nocompression_littleendian.tifbin0 -> 160388 bytes-rw-r--r--tests/auto/qimagereader/images/rgba_packbits_littleendian.tifbin0 -> 161370 bytes-rw-r--r--tests/auto/qimagereader/images/rgba_zipdeflate_littleendian.tifbin0 -> 14728 bytes-rw-r--r--tests/auto/qimagereader/images/runners.ppmbin0 -> 960016 bytes-rw-r--r--tests/auto/qimagereader/images/teapot.ppm31
-rw-r--r--tests/auto/qimagereader/images/test.ppm2
-rw-r--r--tests/auto/qimagereader/images/test.xpm260
-rw-r--r--tests/auto/qimagereader/images/transparent.xpm788
-rw-r--r--tests/auto/qimagereader/images/trolltech.gifbin0 -> 42629 bytes-rw-r--r--tests/auto/qimagereader/images/tst7.bmpbin0 -> 582 bytes-rw-r--r--tests/auto/qimagereader/images/tst7.pngbin0 -> 167 bytes-rw-r--r--tests/auto/qimagereader/qimagereader.pro26
-rw-r--r--tests/auto/qimagereader/qimagereader.qrc51
-rw-r--r--tests/auto/qimagereader/tst_qimagereader.cpp1397
-rw-r--r--tests/auto/qimagewriter/.gitignore1
-rw-r--r--tests/auto/qimagewriter/images/YCbCr_cmyk.jpgbin0 -> 3699 bytes-rw-r--r--tests/auto/qimagewriter/images/YCbCr_rgb.jpgbin0 -> 2045 bytes-rw-r--r--tests/auto/qimagewriter/images/beavis.jpgbin0 -> 20688 bytes-rw-r--r--tests/auto/qimagewriter/images/colorful.bmpbin0 -> 65002 bytes-rw-r--r--tests/auto/qimagewriter/images/earth.gifbin0 -> 51712 bytes-rw-r--r--tests/auto/qimagewriter/images/font.bmpbin0 -> 1026 bytes-rw-r--r--tests/auto/qimagewriter/images/gnus.xbm622
-rw-r--r--tests/auto/qimagewriter/images/kollada.pngbin0 -> 13907 bytes-rw-r--r--tests/auto/qimagewriter/images/marble.xpm329
-rw-r--r--tests/auto/qimagewriter/images/ship63.pbmbin0 -> 111 bytes-rw-r--r--tests/auto/qimagewriter/images/teapot.ppm31
-rw-r--r--tests/auto/qimagewriter/images/teapot.tiffbin0 -> 262274 bytes-rw-r--r--tests/auto/qimagewriter/images/trolltech.gifbin0 -> 42629 bytes-rw-r--r--tests/auto/qimagewriter/qimagewriter.pro15
-rw-r--r--tests/auto/qimagewriter/tst_qimagewriter.cpp586
-rw-r--r--tests/auto/qinputdialog/.gitignore1
-rw-r--r--tests/auto/qinputdialog/qinputdialog.pro4
-rw-r--r--tests/auto/qinputdialog/tst_qinputdialog.cpp372
-rw-r--r--tests/auto/qintvalidator/.gitignore1
-rw-r--r--tests/auto/qintvalidator/qintvalidator.pro4
-rw-r--r--tests/auto/qintvalidator/tst_qintvalidator.cpp198
-rw-r--r--tests/auto/qiodevice/.gitignore2
-rw-r--r--tests/auto/qiodevice/qiodevice.pro18
-rw-r--r--tests/auto/qiodevice/tst_qiodevice.cpp458
-rw-r--r--tests/auto/qitemdelegate/.gitignore1
-rw-r--r--tests/auto/qitemdelegate/qitemdelegate.pro5
-rw-r--r--tests/auto/qitemdelegate/tst_qitemdelegate.cpp1070
-rw-r--r--tests/auto/qitemeditorfactory/.gitignore1
-rw-r--r--tests/auto/qitemeditorfactory/qitemeditorfactory.pro4
-rw-r--r--tests/auto/qitemeditorfactory/tst_qitemeditorfactory.cpp84
-rw-r--r--tests/auto/qitemmodel/.gitignore1
-rw-r--r--tests/auto/qitemmodel/README3
-rw-r--r--tests/auto/qitemmodel/modelstotest.cpp415
-rw-r--r--tests/auto/qitemmodel/qitemmodel.pro16
-rw-r--r--tests/auto/qitemmodel/tst_qitemmodel.cpp1397
-rw-r--r--tests/auto/qitemselectionmodel/.gitignore1
-rw-r--r--tests/auto/qitemselectionmodel/qitemselectionmodel.pro4
-rw-r--r--tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp2145
-rw-r--r--tests/auto/qitemview/.gitignore1
-rw-r--r--tests/auto/qitemview/qitemview.pro4
-rw-r--r--tests/auto/qitemview/tst_qitemview.cpp922
-rw-r--r--tests/auto/qitemview/viewstotest.cpp165
-rw-r--r--tests/auto/qkeyevent/.gitignore1
-rw-r--r--tests/auto/qkeyevent/qkeyevent.pro5
-rw-r--r--tests/auto/qkeyevent/tst_qkeyevent.cpp228
-rw-r--r--tests/auto/qkeysequence/.gitignore1
-rw-r--r--tests/auto/qkeysequence/keys_de.qmbin0 -> 721 bytes-rw-r--r--tests/auto/qkeysequence/keys_de.ts61
-rw-r--r--tests/auto/qkeysequence/qkeysequence.pro6
-rw-r--r--tests/auto/qkeysequence/tst_qkeysequence.cpp531
-rw-r--r--tests/auto/qlabel/.gitignore1
-rw-r--r--tests/auto/qlabel/green.pngbin0 -> 97 bytes-rw-r--r--tests/auto/qlabel/qlabel.pro16
-rw-r--r--tests/auto/qlabel/red.pngbin0 -> 105 bytes-rw-r--r--tests/auto/qlabel/testdata/acc_01/res_Windows_data0.qsnapbin0 -> 328 bytes-rw-r--r--tests/auto/qlabel/testdata/acc_01/res_Windows_win32_data0.qsnapbin0 -> 330 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Motif_data0.qsnapbin0 -> 322 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Motif_data1.qsnapbin0 -> 328 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Motif_data10.qsnapbin0 -> 330 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Motif_data2.qsnapbin0 -> 324 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Motif_data3.qsnapbin0 -> 320 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Motif_data4.qsnapbin0 -> 322 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Motif_data5.qsnapbin0 -> 328 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Motif_data6.qsnapbin0 -> 330 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Motif_data7.qsnapbin0 -> 318 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Motif_data8.qsnapbin0 -> 324 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Motif_data9.qsnapbin0 -> 332 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_data0.qsnapbin0 -> 316 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_data1.qsnapbin0 -> 322 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_data10.qsnapbin0 -> 324 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_data2.qsnapbin0 -> 318 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_data3.qsnapbin0 -> 314 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_data4.qsnapbin0 -> 316 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_data5.qsnapbin0 -> 322 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_data6.qsnapbin0 -> 324 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_data7.qsnapbin0 -> 312 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_data8.qsnapbin0 -> 318 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_data9.qsnapbin0 -> 326 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_win32_data0.qsnapbin0 -> 318 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_win32_data1.qsnapbin0 -> 324 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_win32_data10.qsnapbin0 -> 326 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_win32_data2.qsnapbin0 -> 320 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_win32_data3.qsnapbin0 -> 316 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_win32_data4.qsnapbin0 -> 318 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_win32_data5.qsnapbin0 -> 324 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_win32_data6.qsnapbin0 -> 326 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_win32_data7.qsnapbin0 -> 314 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_win32_data8.qsnapbin0 -> 320 bytes-rw-r--r--tests/auto/qlabel/testdata/setAlignment/alignRes_Windows_win32_data9.qsnapbin0 -> 328 bytes-rw-r--r--tests/auto/qlabel/testdata/setIndent/indentRes_Motif_data0.qsnapbin0 -> 344 bytes-rw-r--r--tests/auto/qlabel/testdata/setIndent/indentRes_Motif_data1.qsnapbin0 -> 346 bytes-rw-r--r--tests/auto/qlabel/testdata/setIndent/indentRes_Motif_data2.qsnapbin0 -> 346 bytes-rw-r--r--tests/auto/qlabel/testdata/setIndent/indentRes_Windows_data0.qsnapbin0 -> 338 bytes-rw-r--r--tests/auto/qlabel/testdata/setIndent/indentRes_Windows_data1.qsnapbin0 -> 340 bytes-rw-r--r--tests/auto/qlabel/testdata/setIndent/indentRes_Windows_data2.qsnapbin0 -> 340 bytes-rw-r--r--tests/auto/qlabel/testdata/setIndent/indentRes_Windows_win32_data0.qsnapbin0 -> 340 bytes-rw-r--r--tests/auto/qlabel/testdata/setIndent/indentRes_Windows_win32_data1.qsnapbin0 -> 342 bytes-rw-r--r--tests/auto/qlabel/testdata/setIndent/indentRes_Windows_win32_data2.qsnapbin0 -> 342 bytes-rw-r--r--tests/auto/qlabel/testdata/setPixmap/Vpix_Motif_data0.qsnapbin0 -> 405 bytes-rw-r--r--tests/auto/qlabel/testdata/setPixmap/Vpix_Windows_data0.qsnapbin0 -> 399 bytes-rw-r--r--tests/auto/qlabel/testdata/setPixmap/Vpix_Windows_win32_data0.qsnapbin0 -> 397 bytes-rw-r--r--tests/auto/qlabel/testdata/setPixmap/empty_Motif_data0.qsnapbin0 -> 257 bytes-rw-r--r--tests/auto/qlabel/testdata/setPixmap/empty_Windows_data0.qsnapbin0 -> 251 bytes-rw-r--r--tests/auto/qlabel/testdata/setPixmap/empty_Windows_win32_data0.qsnapbin0 -> 249 bytes-rw-r--r--tests/auto/qlabel/testdata/setPixmap/scaledVpix_Motif_data0.qsnapbin0 -> 1040 bytes-rw-r--r--tests/auto/qlabel/testdata/setPixmap/scaledVpix_Windows_data0.qsnapbin0 -> 1034 bytes-rw-r--r--tests/auto/qlabel/testdata/setPixmap/scaledVpix_Windows_win32_data0.qsnapbin0 -> 984 bytes-rw-r--r--tests/auto/qlabel/testdata/setText/res_Motif_data0.qsnapbin0 -> 352 bytes-rw-r--r--tests/auto/qlabel/testdata/setText/res_Motif_data1.qsnapbin0 -> 398 bytes-rw-r--r--tests/auto/qlabel/testdata/setText/res_Motif_data2.qsnapbin0 -> 448 bytes-rw-r--r--tests/auto/qlabel/testdata/setText/res_Motif_data3.qsnapbin0 -> 744 bytes-rw-r--r--tests/auto/qlabel/testdata/setText/res_Windows_data0.qsnapbin0 -> 346 bytes-rw-r--r--tests/auto/qlabel/testdata/setText/res_Windows_data1.qsnapbin0 -> 392 bytes-rw-r--r--tests/auto/qlabel/testdata/setText/res_Windows_data2.qsnapbin0 -> 442 bytes-rw-r--r--tests/auto/qlabel/testdata/setText/res_Windows_data3.qsnapbin0 -> 738 bytes-rw-r--r--tests/auto/qlabel/testdata/setText/res_Windows_win32_data0.qsnapbin0 -> 344 bytes-rw-r--r--tests/auto/qlabel/testdata/setText/res_Windows_win32_data1.qsnapbin0 -> 390 bytes-rw-r--r--tests/auto/qlabel/testdata/setText/res_Windows_win32_data2.qsnapbin0 -> 440 bytes-rw-r--r--tests/auto/qlabel/testdata/setText/res_Windows_win32_data3.qsnapbin0 -> 736 bytes-rw-r--r--tests/auto/qlabel/tst_qlabel.cpp451
-rw-r--r--tests/auto/qlayout/.gitignore1
-rw-r--r--tests/auto/qlayout/baseline/smartmaxsize1792
-rw-r--r--tests/auto/qlayout/qlayout.pro14
-rw-r--r--tests/auto/qlayout/tst_qlayout.cpp337
-rw-r--r--tests/auto/qlcdnumber/.gitignore1
-rw-r--r--tests/auto/qlcdnumber/qlcdnumber.pro9
-rw-r--r--tests/auto/qlcdnumber/tst_qlcdnumber.cpp88
-rw-r--r--tests/auto/qlibrary/.gitignore10
-rw-r--r--tests/auto/qlibrary/lib/lib.pro30
-rw-r--r--tests/auto/qlibrary/lib/mylib.c19
-rw-r--r--tests/auto/qlibrary/lib2/lib2.pro30
-rw-r--r--tests/auto/qlibrary/lib2/mylib.c19
-rw-r--r--tests/auto/qlibrary/library_path/invalid.so1
-rw-r--r--tests/auto/qlibrary/qlibrary.pro9
-rw-r--r--tests/auto/qlibrary/tst/tst.pro23
-rw-r--r--tests/auto/qlibrary/tst_qlibrary.cpp558
-rw-r--r--tests/auto/qline/.gitignore1
-rw-r--r--tests/auto/qline/qline.pro6
-rw-r--r--tests/auto/qline/tst_qline.cpp492
-rw-r--r--tests/auto/qlineedit/.gitignore1
-rw-r--r--tests/auto/qlineedit/qlineedit.pro5
-rw-r--r--tests/auto/qlineedit/testdata/frame/noFrame_Motif-32x96x96_win.pngbin0 -> 30154 bytes-rw-r--r--tests/auto/qlineedit/testdata/frame/noFrame_Windows-32x96x96_win.pngbin0 -> 30154 bytes-rw-r--r--tests/auto/qlineedit/testdata/frame/useFrame_Motif-32x96x96_win.pngbin0 -> 30154 bytes-rw-r--r--tests/auto/qlineedit/testdata/frame/useFrame_Windows-32x96x96_win.pngbin0 -> 30154 bytes-rw-r--r--tests/auto/qlineedit/testdata/setAlignment/auto_Motif-32x96x96_win.pngbin0 -> 30154 bytes-rw-r--r--tests/auto/qlineedit/testdata/setAlignment/auto_Windows-32x96x96_win.pngbin0 -> 30154 bytes-rw-r--r--tests/auto/qlineedit/testdata/setAlignment/hcenter_Motif-32x96x96_win.pngbin0 -> 30154 bytes-rw-r--r--tests/auto/qlineedit/testdata/setAlignment/hcenter_Windows-32x96x96_win.pngbin0 -> 30154 bytes-rw-r--r--tests/auto/qlineedit/testdata/setAlignment/left_Motif-32x96x96_win.pngbin0 -> 30154 bytes-rw-r--r--tests/auto/qlineedit/testdata/setAlignment/left_Windows-32x96x96_win.pngbin0 -> 30154 bytes-rw-r--r--tests/auto/qlineedit/testdata/setAlignment/right_Motif-32x96x96_win.pngbin0 -> 30154 bytes-rw-r--r--tests/auto/qlineedit/testdata/setAlignment/right_Windows-32x96x96_win.pngbin0 -> 30154 bytes-rw-r--r--tests/auto/qlineedit/tst_qlineedit.cpp3491
-rw-r--r--tests/auto/qlist/.gitignore1
-rw-r--r--tests/auto/qlist/qlist.pro5
-rw-r--r--tests/auto/qlist/tst_qlist.cpp133
-rw-r--r--tests/auto/qlistview/.gitignore1
-rw-r--r--tests/auto/qlistview/qlistview.pro5
-rw-r--r--tests/auto/qlistview/tst_qlistview.cpp1532
-rw-r--r--tests/auto/qlistwidget/.gitignore1
-rw-r--r--tests/auto/qlistwidget/qlistwidget.pro4
-rw-r--r--tests/auto/qlistwidget/tst_qlistwidget.cpp1502
-rw-r--r--tests/auto/qlocale/.gitignore3
-rw-r--r--tests/auto/qlocale/qlocale.pro4
-rw-r--r--tests/auto/qlocale/syslocaleapp/syslocaleapp.cpp53
-rw-r--r--tests/auto/qlocale/syslocaleapp/syslocaleapp.pro8
-rw-r--r--tests/auto/qlocale/test/test.pro31
-rw-r--r--tests/auto/qlocale/tst_qlocale.cpp1995
-rw-r--r--tests/auto/qlocalsocket/.gitignore2
-rw-r--r--tests/auto/qlocalsocket/example/client/client.pro16
-rw-r--r--tests/auto/qlocalsocket/example/client/main.cpp84
-rw-r--r--tests/auto/qlocalsocket/example/example.pro3
-rw-r--r--tests/auto/qlocalsocket/example/server/main.cpp97
-rw-r--r--tests/auto/qlocalsocket/example/server/server.pro19
-rw-r--r--tests/auto/qlocalsocket/lackey/lackey.pro18
-rw-r--r--tests/auto/qlocalsocket/lackey/main.cpp294
-rwxr-xr-xtests/auto/qlocalsocket/lackey/scripts/client.js35
-rw-r--r--tests/auto/qlocalsocket/lackey/scripts/server.js19
-rw-r--r--tests/auto/qlocalsocket/qlocalsocket.pro3
-rw-r--r--tests/auto/qlocalsocket/test/test.pro35
-rw-r--r--tests/auto/qlocalsocket/tst_qlocalsocket.cpp831
-rw-r--r--tests/auto/qmacstyle/.gitignore1
-rw-r--r--tests/auto/qmacstyle/qmacstyle.pro4
-rw-r--r--tests/auto/qmacstyle/tst_qmacstyle.cpp422
-rw-r--r--tests/auto/qmainwindow/.gitignore1
-rw-r--r--tests/auto/qmainwindow/qmainwindow.pro5
-rw-r--r--tests/auto/qmainwindow/tst_qmainwindow.cpp1660
-rw-r--r--tests/auto/qmake/.gitignore1
-rw-r--r--tests/auto/qmake/qmake.pro9
-rw-r--r--tests/auto/qmake/testcompiler.cpp390
-rw-r--r--tests/auto/qmake/testcompiler.h110
-rw-r--r--tests/auto/qmake/testdata/bundle-spaces/bundle-spaces.pro13
-rw-r--r--tests/auto/qmake/testdata/bundle-spaces/existing file0
-rw-r--r--tests/auto/qmake/testdata/bundle-spaces/main.cpp0
-rw-r--r--tests/auto/qmake/testdata/bundle-spaces/some-file0
-rw-r--r--tests/auto/qmake/testdata/comments/comments.pro33
-rw-r--r--tests/auto/qmake/testdata/duplicateLibraryEntries/duplib.pro10
-rw-r--r--tests/auto/qmake/testdata/export_across_file_boundaries/.qmake.cache0
-rw-r--r--tests/auto/qmake/testdata/export_across_file_boundaries/features/default_pre.prf7
-rw-r--r--tests/auto/qmake/testdata/export_across_file_boundaries/foo.pro17
-rw-r--r--tests/auto/qmake/testdata/export_across_file_boundaries/oink.pri1
-rw-r--r--tests/auto/qmake/testdata/findDeps/findDeps.pro20
-rw-r--r--tests/auto/qmake/testdata/findDeps/main.cpp61
-rw-r--r--tests/auto/qmake/testdata/findDeps/object1.h49
-rw-r--r--tests/auto/qmake/testdata/findDeps/object2.h49
-rw-r--r--tests/auto/qmake/testdata/findDeps/object3.h49
-rw-r--r--tests/auto/qmake/testdata/findDeps/object4.h49
-rw-r--r--tests/auto/qmake/testdata/findDeps/object5.h49
-rw-r--r--tests/auto/qmake/testdata/findDeps/object6.h49
-rw-r--r--tests/auto/qmake/testdata/findDeps/object7.h49
-rw-r--r--tests/auto/qmake/testdata/findDeps/object8.h49
-rw-r--r--tests/auto/qmake/testdata/findDeps/object9.h49
-rw-r--r--tests/auto/qmake/testdata/findMocs/findMocs.pro12
-rw-r--r--tests/auto/qmake/testdata/findMocs/main.cpp52
-rw-r--r--tests/auto/qmake/testdata/findMocs/object1.h50
-rw-r--r--tests/auto/qmake/testdata/findMocs/object2.h49
-rw-r--r--tests/auto/qmake/testdata/findMocs/object3.h50
-rw-r--r--tests/auto/qmake/testdata/findMocs/object4.h61
-rw-r--r--tests/auto/qmake/testdata/findMocs/object5.h48
-rw-r--r--tests/auto/qmake/testdata/findMocs/object6.h50
-rw-r--r--tests/auto/qmake/testdata/findMocs/object7.h50
-rw-r--r--tests/auto/qmake/testdata/func_export/func_export.pro22
-rw-r--r--tests/auto/qmake/testdata/func_variables/func_variables.pro52
-rw-r--r--tests/auto/qmake/testdata/functions/1.cpp40
-rw-r--r--tests/auto/qmake/testdata/functions/2.cpp40
-rw-r--r--tests/auto/qmake/testdata/functions/functions.pro91
-rw-r--r--tests/auto/qmake/testdata/functions/infiletest.pro2
-rw-r--r--tests/auto/qmake/testdata/functions/one/1.cpp40
-rw-r--r--tests/auto/qmake/testdata/functions/one/2.cpp40
-rw-r--r--tests/auto/qmake/testdata/functions/three/wildcard21.cpp40
-rw-r--r--tests/auto/qmake/testdata/functions/three/wildcard22.cpp40
-rw-r--r--tests/auto/qmake/testdata/functions/two/1.cpp40
-rw-r--r--tests/auto/qmake/testdata/functions/two/2.cpp40
-rw-r--r--tests/auto/qmake/testdata/functions/wildcard21.cpp40
-rw-r--r--tests/auto/qmake/testdata/functions/wildcard22.cpp40
-rw-r--r--tests/auto/qmake/testdata/include_dir/foo.pro12
-rw-r--r--tests/auto/qmake/testdata/include_dir/main.cpp51
-rw-r--r--tests/auto/qmake/testdata/include_dir/test_file.cpp48
-rw-r--r--tests/auto/qmake/testdata/include_dir/test_file.h52
-rw-r--r--tests/auto/qmake/testdata/include_dir/untitled.ui22
-rw-r--r--tests/auto/qmake/testdata/include_dir_build/README1
-rw-r--r--tests/auto/qmake/testdata/install_depends/foo.pro23
-rw-r--r--tests/auto/qmake/testdata/install_depends/main.cpp51
-rw-r--r--tests/auto/qmake/testdata/install_depends/test10
-rw-r--r--tests/auto/qmake/testdata/install_depends/test20
-rw-r--r--tests/auto/qmake/testdata/install_depends/test_file.cpp47
-rw-r--r--tests/auto/qmake/testdata/install_depends/test_file.h50
-rw-r--r--tests/auto/qmake/testdata/one_space/main.cpp50
-rw-r--r--tests/auto/qmake/testdata/one_space/one_space.pro10
-rw-r--r--tests/auto/qmake/testdata/operators/operators.pro24
-rw-r--r--tests/auto/qmake/testdata/prompt/prompt.pro2
-rw-r--r--tests/auto/qmake/testdata/quotedfilenames/main.cpp51
-rw-r--r--tests/auto/qmake/testdata/quotedfilenames/quotedfilenames.pro22
-rw-r--r--tests/auto/qmake/testdata/quotedfilenames/rc folder/logo.pngbin0 -> 16715 bytes-rw-r--r--tests/auto/qmake/testdata/quotedfilenames/rc folder/test.qrc5
-rw-r--r--tests/auto/qmake/testdata/shadow_files/foo.pro17
-rw-r--r--tests/auto/qmake/testdata/shadow_files/main.cpp51
-rw-r--r--tests/auto/qmake/testdata/shadow_files/test.txt0
-rw-r--r--tests/auto/qmake/testdata/shadow_files/test_file.cpp47
-rw-r--r--tests/auto/qmake/testdata/shadow_files/test_file.h50
-rw-r--r--tests/auto/qmake/testdata/shadow_files_build/README1
-rw-r--r--tests/auto/qmake/testdata/shadow_files_build/foo.bar0
-rw-r--r--tests/auto/qmake/testdata/simple_app/main.cpp52
-rw-r--r--tests/auto/qmake/testdata/simple_app/simple_app.pro12
-rw-r--r--tests/auto/qmake/testdata/simple_app/test_file.cpp47
-rw-r--r--tests/auto/qmake/testdata/simple_app/test_file.h50
-rw-r--r--tests/auto/qmake/testdata/simple_dll/simple.cpp56
-rw-r--r--tests/auto/qmake/testdata/simple_dll/simple.h59
-rw-r--r--tests/auto/qmake/testdata/simple_dll/simple_dll.pro19
-rw-r--r--tests/auto/qmake/testdata/simple_lib/simple.cpp56
-rw-r--r--tests/auto/qmake/testdata/simple_lib/simple.h58
-rw-r--r--tests/auto/qmake/testdata/simple_lib/simple_lib.pro14
-rw-r--r--tests/auto/qmake/testdata/subdirs/simple_app/main.cpp52
-rw-r--r--tests/auto/qmake/testdata/subdirs/simple_app/simple_app.pro12
-rw-r--r--tests/auto/qmake/testdata/subdirs/simple_app/test_file.cpp47
-rw-r--r--tests/auto/qmake/testdata/subdirs/simple_app/test_file.h50
-rw-r--r--tests/auto/qmake/testdata/subdirs/simple_dll/simple.cpp56
-rw-r--r--tests/auto/qmake/testdata/subdirs/simple_dll/simple.h59
-rw-r--r--tests/auto/qmake/testdata/subdirs/simple_dll/simple_dll.pro20
-rw-r--r--tests/auto/qmake/testdata/subdirs/subdirs.pro6
-rw-r--r--tests/auto/qmake/testdata/variables/variables.pro14
-rw-r--r--tests/auto/qmake/tst_qmake.cpp437
-rw-r--r--tests/auto/qmap/.gitignore1
-rw-r--r--tests/auto/qmap/qmap.pro8
-rw-r--r--tests/auto/qmap/tst_qmap.cpp852
-rw-r--r--tests/auto/qmdiarea/.gitignore1
-rw-r--r--tests/auto/qmdiarea/qmdiarea.pro9
-rw-r--r--tests/auto/qmdiarea/tst_qmdiarea.cpp2700
-rw-r--r--tests/auto/qmdisubwindow/.gitignore1
-rw-r--r--tests/auto/qmdisubwindow/qmdisubwindow.pro6
-rw-r--r--tests/auto/qmdisubwindow/tst_qmdisubwindow.cpp2025
-rw-r--r--tests/auto/qmenu/.gitignore1
-rw-r--r--tests/auto/qmenu/qmenu.pro7
-rw-r--r--tests/auto/qmenu/tst_qmenu.cpp683
-rw-r--r--tests/auto/qmenubar/.gitignore1
-rw-r--r--tests/auto/qmenubar/qmenubar.pro6
-rw-r--r--tests/auto/qmenubar/tst_qmenubar.cpp1567
-rw-r--r--tests/auto/qmessagebox/.gitignore1
-rw-r--r--tests/auto/qmessagebox/qmessagebox.pro16
-rw-r--r--tests/auto/qmessagebox/tst_qmessagebox.cpp718
-rw-r--r--tests/auto/qmetaobject/.gitignore1
-rw-r--r--tests/auto/qmetaobject/qmetaobject.pro5
-rw-r--r--tests/auto/qmetaobject/tst_qmetaobject.cpp791
-rw-r--r--tests/auto/qmetatype/.gitignore1
-rw-r--r--tests/auto/qmetatype/qmetatype.pro6
-rw-r--r--tests/auto/qmetatype/tst_qmetatype.cpp314
-rw-r--r--tests/auto/qmouseevent/.gitignore1
-rw-r--r--tests/auto/qmouseevent/qmouseevent.pro5
-rw-r--r--tests/auto/qmouseevent/tst_qmouseevent.cpp291
-rw-r--r--tests/auto/qmouseevent_modal/.gitignore1
-rw-r--r--tests/auto/qmouseevent_modal/qmouseevent_modal.pro5
-rw-r--r--tests/auto/qmouseevent_modal/tst_qmouseevent_modal.cpp227
-rw-r--r--tests/auto/qmovie/.gitignore1
-rw-r--r--tests/auto/qmovie/animations/comicsecard.gifbin0 -> 12112 bytes-rw-r--r--tests/auto/qmovie/animations/dutch.mngbin0 -> 18534 bytes-rw-r--r--tests/auto/qmovie/animations/trolltech.gifbin0 -> 70228 bytes-rw-r--r--tests/auto/qmovie/qmovie.pro14
-rw-r--r--tests/auto/qmovie/tst_qmovie.cpp217
-rw-r--r--tests/auto/qmultiscreen/.gitignore1
-rw-r--r--tests/auto/qmultiscreen/qmultiscreen.pro5
-rw-r--r--tests/auto/qmultiscreen/tst_qmultiscreen.cpp172
-rw-r--r--tests/auto/qmutex/.gitignore1
-rw-r--r--tests/auto/qmutex/qmutex.pro5
-rw-r--r--tests/auto/qmutex/tst_qmutex.cpp468
-rw-r--r--tests/auto/qmutexlocker/.gitignore1
-rw-r--r--tests/auto/qmutexlocker/qmutexlocker.pro5
-rw-r--r--tests/auto/qmutexlocker/tst_qmutexlocker.cpp240
-rw-r--r--tests/auto/qnativesocketengine/.gitignore1
-rw-r--r--tests/auto/qnativesocketengine/qnativesocketengine.pro10
-rw-r--r--tests/auto/qnativesocketengine/qsocketengine.pri19
-rw-r--r--tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp700
-rw-r--r--tests/auto/qnetworkaddressentry/.gitignore1
-rw-r--r--tests/auto/qnetworkaddressentry/qnetworkaddressentry.pro4
-rw-r--r--tests/auto/qnetworkaddressentry/tst_qnetworkaddressentry.cpp185
-rw-r--r--tests/auto/qnetworkcachemetadata/.gitignore1
-rw-r--r--tests/auto/qnetworkcachemetadata/qnetworkcachemetadata.pro5
-rw-r--r--tests/auto/qnetworkcachemetadata/tst_qnetworkcachemetadata.cpp373
-rw-r--r--tests/auto/qnetworkcookie/.gitignore1
-rw-r--r--tests/auto/qnetworkcookie/qnetworkcookie.pro4
-rw-r--r--tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp434
-rw-r--r--tests/auto/qnetworkcookiejar/.gitignore1
-rw-r--r--tests/auto/qnetworkcookiejar/qnetworkcookiejar.pro4
-rw-r--r--tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp280
-rw-r--r--tests/auto/qnetworkdiskcache/.gitignore1
-rw-r--r--tests/auto/qnetworkdiskcache/qnetworkdiskcache.pro5
-rw-r--r--tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp603
-rw-r--r--tests/auto/qnetworkinterface/.gitignore1
-rw-r--r--tests/auto/qnetworkinterface/qnetworkinterface.pro6
-rw-r--r--tests/auto/qnetworkinterface/tst_qnetworkinterface.cpp214
-rw-r--r--tests/auto/qnetworkproxy/.gitignore1
-rw-r--r--tests/auto/qnetworkproxy/qnetworkproxy.pro10
-rw-r--r--tests/auto/qnetworkproxy/tst_qnetworkproxy.cpp85
-rw-r--r--tests/auto/qnetworkreply/.gitattributes2
-rw-r--r--tests/auto/qnetworkreply/.gitignore3
-rw-r--r--tests/auto/qnetworkreply/bigfile17980
-rw-r--r--tests/auto/qnetworkreply/echo/echo.pro6
-rw-r--r--tests/auto/qnetworkreply/echo/main.cpp62
-rw-r--r--tests/auto/qnetworkreply/empty0
-rw-r--r--tests/auto/qnetworkreply/qnetworkreply.pro4
-rw-r--r--tests/auto/qnetworkreply/qnetworkreply.qrc5
-rw-r--r--tests/auto/qnetworkreply/resource283
-rw-r--r--tests/auto/qnetworkreply/rfc3252.txt899
-rw-r--r--tests/auto/qnetworkreply/test/test.pro22
-rw-r--r--tests/auto/qnetworkreply/tst_qnetworkreply.cpp2971
-rw-r--r--tests/auto/qnetworkrequest/.gitignore1
-rw-r--r--tests/auto/qnetworkrequest/qnetworkrequest.pro4
-rw-r--r--tests/auto/qnetworkrequest/tst_qnetworkrequest.cpp480
-rw-r--r--tests/auto/qnumeric/.gitignore1
-rw-r--r--tests/auto/qnumeric/qnumeric.pro7
-rw-r--r--tests/auto/qnumeric/tst_qnumeric.cpp119
-rw-r--r--tests/auto/qobject/.gitignore3
-rw-r--r--tests/auto/qobject/qobject.pro4
-rw-r--r--tests/auto/qobject/signalbug.cpp151
-rw-r--r--tests/auto/qobject/signalbug.h103
-rw-r--r--tests/auto/qobject/signalbug.pro19
-rw-r--r--tests/auto/qobject/tst_qobject.cpp2793
-rw-r--r--tests/auto/qobject/tst_qobject.pro12
-rw-r--r--tests/auto/qobjectperformance/.gitignore1
-rw-r--r--tests/auto/qobjectperformance/qobjectperformance.pro6
-rw-r--r--tests/auto/qobjectperformance/tst_qobjectperformance.cpp126
-rw-r--r--tests/auto/qobjectrace/.gitignore1
-rw-r--r--tests/auto/qobjectrace/qobjectrace.pro6
-rw-r--r--tests/auto/qobjectrace/tst_qobjectrace.cpp151
-rw-r--r--tests/auto/qpaintengine/.gitignore1
-rw-r--r--tests/auto/qpaintengine/qpaintengine.pro9
-rw-r--r--tests/auto/qpaintengine/tst_qpaintengine.cpp99
-rw-r--r--tests/auto/qpainter/.gitignore2
-rw-r--r--tests/auto/qpainter/drawEllipse/10x10SizeAt0x0.pngbin0 -> 243 bytes-rw-r--r--tests/auto/qpainter/drawEllipse/10x10SizeAt100x100.pngbin0 -> 245 bytes-rw-r--r--tests/auto/qpainter/drawEllipse/10x10SizeAt200x200.pngbin0 -> 195 bytes-rw-r--r--tests/auto/qpainter/drawEllipse/13x100SizeAt0x0.pngbin0 -> 461 bytes-rw-r--r--tests/auto/qpainter/drawEllipse/13x100SizeAt100x100.pngbin0 -> 470 bytes-rw-r--r--tests/auto/qpainter/drawEllipse/13x100SizeAt200x200.pngbin0 -> 195 bytes-rw-r--r--tests/auto/qpainter/drawEllipse/200x200SizeAt0x0.pngbin0 -> 1294 bytes-rw-r--r--tests/auto/qpainter/drawEllipse/200x200SizeAt100x100.pngbin0 -> 619 bytes-rw-r--r--tests/auto/qpainter/drawEllipse/200x200SizeAt200x200.pngbin0 -> 195 bytes-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/dst.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_AndNotROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_AndROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_ClearROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_CopyROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_NandROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_NopROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_NorROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_NotAndROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_NotCopyROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_NotOrROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_NotROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_NotXorROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_OrNotROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_OrROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_SetROP.xbm6
-rw-r--r--tests/auto/qpainter/drawLine_rop_bitmap/res/res_XorROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop/dst1.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/dst2.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/dst3.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndNotROP0.pngbin0 -> 214 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndNotROP1.pngbin0 -> 247 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndNotROP2.pngbin0 -> 258 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndNotROP3.pngbin0 -> 253 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndNotROP4.pngbin0 -> 237 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndNotROP5.pngbin0 -> 260 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndNotROP6.pngbin0 -> 258 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndNotROP7.pngbin0 -> 228 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndROP0.pngbin0 -> 173 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndROP1.pngbin0 -> 203 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndROP2.pngbin0 -> 217 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndROP3.pngbin0 -> 207 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndROP4.pngbin0 -> 196 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndROP5.pngbin0 -> 213 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndROP6.pngbin0 -> 218 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_AndROP7.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_ClearROP0.pngbin0 -> 155 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_ClearROP1.pngbin0 -> 155 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_ClearROP2.pngbin0 -> 155 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_ClearROP3.pngbin0 -> 155 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_ClearROP4.pngbin0 -> 155 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_ClearROP5.pngbin0 -> 155 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_ClearROP6.pngbin0 -> 155 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_ClearROP7.pngbin0 -> 155 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_CopyROP0.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_CopyROP1.pngbin0 -> 176 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_CopyROP2.pngbin0 -> 175 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_CopyROP3.pngbin0 -> 177 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_CopyROP4.pngbin0 -> 176 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_CopyROP5.pngbin0 -> 176 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_CopyROP6.pngbin0 -> 176 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_CopyROP7.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NandROP0.pngbin0 -> 217 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NandROP1.pngbin0 -> 242 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NandROP2.pngbin0 -> 249 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NandROP3.pngbin0 -> 244 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NandROP4.pngbin0 -> 234 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NandROP5.pngbin0 -> 254 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NandROP6.pngbin0 -> 251 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NandROP7.pngbin0 -> 228 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NopROP0.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NopROP1.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NopROP2.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NopROP3.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NopROP4.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NopROP5.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NopROP6.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NopROP7.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NorROP0.pngbin0 -> 211 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NorROP1.pngbin0 -> 208 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NorROP2.pngbin0 -> 215 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NorROP3.pngbin0 -> 187 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NorROP4.pngbin0 -> 213 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NorROP5.pngbin0 -> 204 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NorROP6.pngbin0 -> 198 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NorROP7.pngbin0 -> 155 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotAndROP0.pngbin0 -> 177 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotAndROP1.pngbin0 -> 198 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotAndROP2.pngbin0 -> 195 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotAndROP3.pngbin0 -> 185 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotAndROP4.pngbin0 -> 188 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotAndROP5.pngbin0 -> 198 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotAndROP6.pngbin0 -> 185 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotAndROP7.pngbin0 -> 155 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotCopyROP0.pngbin0 -> 168 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotCopyROP1.pngbin0 -> 167 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotCopyROP2.pngbin0 -> 167 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotCopyROP3.pngbin0 -> 167 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotCopyROP4.pngbin0 -> 167 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotCopyROP5.pngbin0 -> 167 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotCopyROP6.pngbin0 -> 167 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotCopyROP7.pngbin0 -> 155 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotOrROP0.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotOrROP1.pngbin0 -> 224 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotOrROP2.pngbin0 -> 229 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotOrROP3.pngbin0 -> 224 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotOrROP4.pngbin0 -> 198 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotOrROP5.pngbin0 -> 229 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotOrROP6.pngbin0 -> 227 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotOrROP7.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotROP0.pngbin0 -> 228 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotROP1.pngbin0 -> 228 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotROP2.pngbin0 -> 228 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotROP3.pngbin0 -> 228 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotROP4.pngbin0 -> 228 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotROP5.pngbin0 -> 228 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotROP6.pngbin0 -> 228 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotROP7.pngbin0 -> 228 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotXorROP0.pngbin0 -> 239 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotXorROP1.pngbin0 -> 237 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotXorROP2.pngbin0 -> 243 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotXorROP3.pngbin0 -> 226 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotXorROP4.pngbin0 -> 235 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotXorROP5.pngbin0 -> 230 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotXorROP6.pngbin0 -> 232 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_NotXorROP7.pngbin0 -> 184 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrNotROP0.pngbin0 -> 217 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrNotROP1.pngbin0 -> 213 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrNotROP2.pngbin0 -> 222 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrNotROP3.pngbin0 -> 194 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrNotROP4.pngbin0 -> 219 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrNotROP5.pngbin0 -> 215 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrNotROP6.pngbin0 -> 212 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrNotROP7.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrROP0.pngbin0 -> 186 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrROP1.pngbin0 -> 212 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrROP2.pngbin0 -> 216 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrROP3.pngbin0 -> 194 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrROP4.pngbin0 -> 207 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrROP5.pngbin0 -> 214 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrROP6.pngbin0 -> 208 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_OrROP7.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_SetROP0.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_SetROP1.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_SetROP2.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_SetROP3.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_SetROP4.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_SetROP5.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_SetROP6.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_SetROP7.pngbin0 -> 169 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_XorROP0.pngbin0 -> 228 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_XorROP1.pngbin0 -> 255 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_XorROP2.pngbin0 -> 260 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_XorROP3.pngbin0 -> 251 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_XorROP4.pngbin0 -> 251 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_XorROP5.pngbin0 -> 261 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_XorROP6.pngbin0 -> 264 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/res/res_XorROP7.pngbin0 -> 228 bytes-rw-r--r--tests/auto/qpainter/drawPixmap_rop/src1.xbm12
-rw-r--r--tests/auto/qpainter/drawPixmap_rop/src2-mask.xbm16
-rw-r--r--tests/auto/qpainter/drawPixmap_rop/src2.xbm16
-rw-r--r--tests/auto/qpainter/drawPixmap_rop/src3.xbm12
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/dst.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_AndNotROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_AndROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_ClearROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_CopyROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_NandROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_NopROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_NorROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_NotAndROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_NotCopyROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_NotOrROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_NotROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_NotXorROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_OrNotROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_OrROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_SetROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/res/res_XorROP.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/src1-mask.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/src1.xbm6
-rw-r--r--tests/auto/qpainter/drawPixmap_rop_bitmap/src2.xbm5
-rw-r--r--tests/auto/qpainter/qpainter.pro13
-rw-r--r--tests/auto/qpainter/task217400.pngbin0 -> 526 bytes-rw-r--r--tests/auto/qpainter/tst_qpainter.cpp4073
-rw-r--r--tests/auto/qpainter/utils/createImages/createImages.pro11
-rw-r--r--tests/auto/qpainter/utils/createImages/main.cpp194
-rw-r--r--tests/auto/qpainterpath/.gitignore2
-rw-r--r--tests/auto/qpainterpath/qpainterpath.pro5
-rw-r--r--tests/auto/qpainterpath/tst_qpainterpath.cpp1177
-rw-r--r--tests/auto/qpainterpathstroker/.gitignore1
-rw-r--r--tests/auto/qpainterpathstroker/qpainterpathstroker.pro5
-rw-r--r--tests/auto/qpainterpathstroker/tst_qpainterpathstroker.cpp75
-rw-r--r--tests/auto/qpalette/.gitignore1
-rw-r--r--tests/auto/qpalette/qpalette.pro5
-rw-r--r--tests/auto/qpalette/tst_qpalette.cpp132
-rw-r--r--tests/auto/qpathclipper/.gitignore1
-rw-r--r--tests/auto/qpathclipper/paths.cpp734
-rw-r--r--tests/auto/qpathclipper/paths.h95
-rw-r--r--tests/auto/qpathclipper/qpathclipper.pro8
-rw-r--r--tests/auto/qpathclipper/tst_qpathclipper.cpp1403
-rw-r--r--tests/auto/qpen/.gitignore1
-rw-r--r--tests/auto/qpen/qpen.pro5
-rw-r--r--tests/auto/qpen/tst_qpen.cpp218
-rw-r--r--tests/auto/qpicture/.gitignore1
-rw-r--r--tests/auto/qpicture/qpicture.pro5
-rw-r--r--tests/auto/qpicture/tst_qpicture.cpp240
-rw-r--r--tests/auto/qpixmap/.gitignore1
-rw-r--r--tests/auto/qpixmap/convertFromImage/task31722_0/img1.pngbin0 -> 26622 bytes-rw-r--r--tests/auto/qpixmap/convertFromImage/task31722_0/img2.pngbin0 -> 149 bytes-rw-r--r--tests/auto/qpixmap/convertFromImage/task31722_1/img1.pngbin0 -> 26532 bytes-rw-r--r--tests/auto/qpixmap/convertFromImage/task31722_1/img2.pngbin0 -> 160 bytes-rw-r--r--tests/auto/qpixmap/qpixmap.pro17
-rw-r--r--tests/auto/qpixmap/tst_qpixmap.cpp1019
-rw-r--r--tests/auto/qpixmapcache/.gitignore1
-rw-r--r--tests/auto/qpixmapcache/qpixmapcache.pro5
-rw-r--r--tests/auto/qpixmapcache/tst_qpixmapcache.cpp220
-rw-r--r--tests/auto/qpixmapfilter/noise.pngbin0 -> 7517 bytes-rw-r--r--tests/auto/qpixmapfilter/qpixmapfilter.pro9
-rw-r--r--tests/auto/qpixmapfilter/tst_qpixmapfilter.cpp382
-rw-r--r--tests/auto/qplaintextedit/.gitignore1
-rw-r--r--tests/auto/qplaintextedit/qplaintextedit.pro7
-rw-r--r--tests/auto/qplaintextedit/tst_qplaintextedit.cpp1475
-rw-r--r--tests/auto/qplugin/.gitignore2
-rw-r--r--tests/auto/qplugin/debugplugin/debugplugin.pro7
-rw-r--r--tests/auto/qplugin/debugplugin/main.cpp43
-rw-r--r--tests/auto/qplugin/qplugin.pro26
-rw-r--r--tests/auto/qplugin/releaseplugin/main.cpp43
-rw-r--r--tests/auto/qplugin/releaseplugin/releaseplugin.pro7
-rw-r--r--tests/auto/qplugin/tst_qplugin.cpp120
-rw-r--r--tests/auto/qplugin/tst_qplugin.pro10
-rw-r--r--tests/auto/qpluginloader/.gitignore2
-rw-r--r--tests/auto/qpluginloader/almostplugin/almostplugin.cpp51
-rw-r--r--tests/auto/qpluginloader/almostplugin/almostplugin.h57
-rw-r--r--tests/auto/qpluginloader/almostplugin/almostplugin.pro7
-rw-r--r--tests/auto/qpluginloader/lib/lib.pro15
-rw-r--r--tests/auto/qpluginloader/lib/mylib.c19
-rw-r--r--tests/auto/qpluginloader/qpluginloader.pro12
-rw-r--r--tests/auto/qpluginloader/theplugin/plugininterface.h51
-rw-r--r--tests/auto/qpluginloader/theplugin/theplugin.cpp51
-rw-r--r--tests/auto/qpluginloader/theplugin/theplugin.h57
-rw-r--r--tests/auto/qpluginloader/theplugin/theplugin.pro7
-rw-r--r--tests/auto/qpluginloader/tst/tst.pro20
-rw-r--r--tests/auto/qpluginloader/tst_qpluginloader.cpp291
-rw-r--r--tests/auto/qpoint/.gitignore1
-rw-r--r--tests/auto/qpoint/qpoint.pro10
-rw-r--r--tests/auto/qpoint/tst_qpoint.cpp131
-rw-r--r--tests/auto/qpointarray/.gitignore1
-rw-r--r--tests/auto/qpointarray/qpointarray.pro6
-rw-r--r--tests/auto/qpointarray/tst_qpointarray.cpp95
-rw-r--r--tests/auto/qpointer/.gitignore1
-rw-r--r--tests/auto/qpointer/qpointer.pro4
-rw-r--r--tests/auto/qpointer/tst_qpointer.cpp349
-rw-r--r--tests/auto/qprinter/.gitignore4
-rw-r--r--tests/auto/qprinter/qprinter.pro8
-rw-r--r--tests/auto/qprinter/tst_qprinter.cpp964
-rw-r--r--tests/auto/qprinterinfo/.gitignore1
-rw-r--r--tests/auto/qprinterinfo/qprinterinfo.pro7
-rw-r--r--tests/auto/qprinterinfo/tst_qprinterinfo.cpp398
-rw-r--r--tests/auto/qprocess/.gitignore22
-rw-r--r--tests/auto/qprocess/fileWriterProcess/fileWriterProcess.pro10
-rw-r--r--tests/auto/qprocess/fileWriterProcess/main.cpp59
-rw-r--r--tests/auto/qprocess/qprocess.pro27
-rw-r--r--tests/auto/qprocess/test/test.pro49
-rwxr-xr-xtests/auto/qprocess/testBatFiles/simple.bat2
-rwxr-xr-xtests/auto/qprocess/testBatFiles/with space.bat2
-rw-r--r--tests/auto/qprocess/testDetached/main.cpp84
-rw-r--r--tests/auto/qprocess/testDetached/testDetached.pro7
-rw-r--r--tests/auto/qprocess/testExitCodes/main.cpp48
-rw-r--r--tests/auto/qprocess/testExitCodes/testExitCodes.pro5
-rw-r--r--tests/auto/qprocess/testGuiProcess/main.cpp57
-rw-r--r--tests/auto/qprocess/testGuiProcess/testGuiProcess.pro4
-rw-r--r--tests/auto/qprocess/testProcessCrash/main.cpp53
-rw-r--r--tests/auto/qprocess/testProcessCrash/testProcessCrash.pro8
-rw-r--r--tests/auto/qprocess/testProcessDeadWhileReading/main.cpp52
-rw-r--r--tests/auto/qprocess/testProcessDeadWhileReading/testProcessDeadWhileReading.pro10
-rw-r--r--tests/auto/qprocess/testProcessEOF/main.cpp58
-rw-r--r--tests/auto/qprocess/testProcessEOF/testProcessEOF.pro9
-rw-r--r--tests/auto/qprocess/testProcessEcho/main.cpp59
-rw-r--r--tests/auto/qprocess/testProcessEcho/testProcessEcho.pro8
-rw-r--r--tests/auto/qprocess/testProcessEcho2/main.cpp58
-rw-r--r--tests/auto/qprocess/testProcessEcho2/testProcessEcho2.pro10
-rw-r--r--tests/auto/qprocess/testProcessEcho3/main.cpp61
-rw-r--r--tests/auto/qprocess/testProcessEcho3/testProcessEcho3.pro9
-rw-r--r--tests/auto/qprocess/testProcessEchoGui/main_win.cpp67
-rw-r--r--tests/auto/qprocess/testProcessEchoGui/testProcessEchoGui.pro13
-rw-r--r--tests/auto/qprocess/testProcessLoopback/main.cpp57
-rw-r--r--tests/auto/qprocess/testProcessLoopback/testProcessLoopback.pro8
-rw-r--r--tests/auto/qprocess/testProcessNormal/main.cpp46
-rw-r--r--tests/auto/qprocess/testProcessNormal/testProcessNormal.pro9
-rw-r--r--tests/auto/qprocess/testProcessOutput/main.cpp56
-rw-r--r--tests/auto/qprocess/testProcessOutput/testProcessOutput.pro9
-rw-r--r--tests/auto/qprocess/testProcessSpacesArgs/main.cpp54
-rw-r--r--tests/auto/qprocess/testProcessSpacesArgs/nospace.pro9
-rw-r--r--tests/auto/qprocess/testProcessSpacesArgs/onespace.pro11
-rw-r--r--tests/auto/qprocess/testProcessSpacesArgs/twospaces.pro12
-rw-r--r--tests/auto/qprocess/testSetWorkingDirectory/main.cpp51
-rw-r--r--tests/auto/qprocess/testSetWorkingDirectory/testSetWorkingDirectory.pro7
-rw-r--r--tests/auto/qprocess/testSoftExit/main_unix.cpp62
-rw-r--r--tests/auto/qprocess/testSoftExit/main_win.cpp58
-rw-r--r--tests/auto/qprocess/testSoftExit/testSoftExit.pro16
-rw-r--r--tests/auto/qprocess/testSpaceInName/main.cpp56
-rw-r--r--tests/auto/qprocess/testSpaceInName/testSpaceInName.pro13
-rw-r--r--tests/auto/qprocess/tst_qprocess.cpp2004
-rw-r--r--tests/auto/qprogressbar/.gitignore1
-rw-r--r--tests/auto/qprogressbar/qprogressbar.pro5
-rw-r--r--tests/auto/qprogressbar/tst_qprogressbar.cpp244
-rw-r--r--tests/auto/qprogressdialog/.gitignore1
-rw-r--r--tests/auto/qprogressdialog/qprogressdialog.pro9
-rw-r--r--tests/auto/qprogressdialog/tst_qprogressdialog.cpp157
-rw-r--r--tests/auto/qpushbutton/.gitignore1
-rw-r--r--tests/auto/qpushbutton/qpushbutton.pro5
-rw-r--r--tests/auto/qpushbutton/testdata/setEnabled/disabled_Windows_win32_data0.qsnapbin0 -> 890 bytes-rw-r--r--tests/auto/qpushbutton/testdata/setEnabled/enabled_Motif_data0.qsnapbin0 -> 758 bytes-rw-r--r--tests/auto/qpushbutton/testdata/setEnabled/enabled_Windows_data0.qsnapbin0 -> 725 bytes-rw-r--r--tests/auto/qpushbutton/testdata/setEnabled/enabled_Windows_win32_data0.qsnapbin0 -> 735 bytes-rw-r--r--tests/auto/qpushbutton/testdata/setPixmap/Vpix_Motif_data0.qsnapbin0 -> 829 bytes-rw-r--r--tests/auto/qpushbutton/testdata/setPixmap/Vpix_Windows_data0.qsnapbin0 -> 796 bytes-rw-r--r--tests/auto/qpushbutton/testdata/setPixmap/Vpix_Windows_win32_data0.qsnapbin0 -> 796 bytes-rw-r--r--tests/auto/qpushbutton/testdata/setText/simple_Motif_data0.qsnapbin0 -> 742 bytes-rw-r--r--tests/auto/qpushbutton/testdata/setText/simple_Windows_data0.qsnapbin0 -> 709 bytes-rw-r--r--tests/auto/qpushbutton/testdata/setText/simple_Windows_win32_data0.qsnapbin0 -> 719 bytes-rw-r--r--tests/auto/qpushbutton/tst_qpushbutton.cpp598
-rw-r--r--tests/auto/qqueue/.gitignore1
-rw-r--r--tests/auto/qqueue/qqueue.pro7
-rwxr-xr-xtests/auto/qqueue/tst_qqueue.cpp100
-rw-r--r--tests/auto/qradiobutton/.gitignore1
-rw-r--r--tests/auto/qradiobutton/qradiobutton.pro5
-rw-r--r--tests/auto/qradiobutton/tst_qradiobutton.cpp102
-rw-r--r--tests/auto/qrand/.gitignore1
-rw-r--r--tests/auto/qrand/qrand.pro5
-rw-r--r--tests/auto/qrand/tst_qrand.cpp87
-rw-r--r--tests/auto/qreadlocker/.gitignore1
-rw-r--r--tests/auto/qreadlocker/qreadlocker.pro5
-rw-r--r--tests/auto/qreadlocker/tst_qreadlocker.cpp235
-rw-r--r--tests/auto/qreadwritelock/.gitignore1
-rw-r--r--tests/auto/qreadwritelock/qreadwritelock.pro5
-rw-r--r--tests/auto/qreadwritelock/tst_qreadwritelock.cpp1125
-rw-r--r--tests/auto/qrect/.gitignore1
-rw-r--r--tests/auto/qrect/qrect.pro5
-rw-r--r--tests/auto/qrect/tst_qrect.cpp4470
-rw-r--r--tests/auto/qregexp/.gitignore1
-rw-r--r--tests/auto/qregexp/qregexp.pro8
-rw-r--r--tests/auto/qregexp/tst_qregexp.cpp1282
-rw-r--r--tests/auto/qregexpvalidator/.gitignore1
-rw-r--r--tests/auto/qregexpvalidator/qregexpvalidator.pro4
-rw-r--r--tests/auto/qregexpvalidator/tst_qregexpvalidator.cpp124
-rw-r--r--tests/auto/qregion/.gitignore1
-rw-r--r--tests/auto/qregion/qregion.pro5
-rw-r--r--tests/auto/qregion/tst_qregion.cpp1021
-rw-r--r--tests/auto/qresourceengine/.gitattributes1
-rw-r--r--tests/auto/qresourceengine/.gitignore1
-rw-r--r--tests/auto/qresourceengine/parentdir.txt1
-rw-r--r--tests/auto/qresourceengine/qresourceengine.pro40
-rw-r--r--tests/auto/qresourceengine/testqrc/aliasdir/aliasdir.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/aliasdir/compressme.txt322
-rw-r--r--tests/auto/qresourceengine/testqrc/blahblah.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/currentdir.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/currentdir2.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/otherdir/otherdir.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/search_file.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/searchpath1/search_file.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/searchpath2/search_file.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/subdir/subdir.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/test.qrc30
-rw-r--r--tests/auto/qresourceengine/testqrc/test/german.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/test/test/test1.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/test/test/test2.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/test/testdir.txt1
-rw-r--r--tests/auto/qresourceengine/testqrc/test/testdir2.txt1
-rw-r--r--tests/auto/qresourceengine/tst_resourceengine.cpp461
-rw-r--r--tests/auto/qscriptable/.gitignore1
-rw-r--r--tests/auto/qscriptable/qscriptable.pro5
-rw-r--r--tests/auto/qscriptable/tst_qscriptable.cpp373
-rw-r--r--tests/auto/qscriptclass/.gitignore1
-rw-r--r--tests/auto/qscriptclass/qscriptclass.pro3
-rw-r--r--tests/auto/qscriptclass/tst_qscriptclass.cpp838
-rw-r--r--tests/auto/qscriptcontext/.gitignore1
-rw-r--r--tests/auto/qscriptcontext/qscriptcontext.pro5
-rw-r--r--tests/auto/qscriptcontext/tst_qscriptcontext.cpp691
-rw-r--r--tests/auto/qscriptcontextinfo/.gitignore1
-rw-r--r--tests/auto/qscriptcontextinfo/qscriptcontextinfo.pro5
-rw-r--r--tests/auto/qscriptcontextinfo/tst_qscriptcontextinfo.cpp557
-rw-r--r--tests/auto/qscriptengine/.gitignore1
-rw-r--r--tests/auto/qscriptengine/qscriptengine.pro10
-rw-r--r--tests/auto/qscriptengine/script/com/__init__.js5
-rw-r--r--tests/auto/qscriptengine/script/com/trolltech/__init__.js5
-rw-r--r--tests/auto/qscriptengine/script/com/trolltech/recursive/__init__.js1
-rw-r--r--tests/auto/qscriptengine/script/com/trolltech/syntaxerror/__init__.js5
-rw-r--r--tests/auto/qscriptengine/tst_qscriptengine.cpp3379
-rw-r--r--tests/auto/qscriptengineagent/.gitignore1
-rw-r--r--tests/auto/qscriptengineagent/qscriptengineagent.pro5
-rw-r--r--tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp1819
-rw-r--r--tests/auto/qscriptenginedebugger/.gitignore1
-rw-r--r--tests/auto/qscriptenginedebugger/qscriptenginedebugger.pro3
-rw-r--r--tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp744
-rw-r--r--tests/auto/qscriptjstestsuite/.gitignore1
-rw-r--r--tests/auto/qscriptjstestsuite/qscriptjstestsuite.pro11
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4-1.js135
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4-2.js114
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.1.1.js111
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.1.2.js162
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.1.3.js84
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.1.js132
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.2.1-1.js112
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.2.1-2.js101
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.2.1-3.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.2.2-1.js183
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.2.2-2.js118
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.2.3.js101
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.3.1-2.js81
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.3.2.js62
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.4.1.js63
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.4.2.js120
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.4.3-1.js163
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.4.4-1.js294
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.4.4-2.js169
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.4.5-1.js225
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.4.5-2.js227
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.4.5-3.js182
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.4.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.5.1-1.js170
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.5.1-2.js152
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.5.2-1.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/15.4.5.2-2.js127
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Array/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.1.js96
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.2.js161
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.3.1-1.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.3.1-2.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.3.1-3.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.3.1-4.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.3.1.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.4-1.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.4.1.js62
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.4.2-1.js97
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.4.2-2.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.4.2-3.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.4.2-4-n.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.4.3-1.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.4.3-2.js67
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.4.3-3.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.4.3-4-n.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.4.3.js83
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/15.6.4.js80
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Boolean/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.1.1-1.js96
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.1.1-2.js91
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.1.13-1.js79
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.2.1.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.2.2-1.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.2.2-2.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.2.2-3.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.2.2-4.js68
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.2.2-5.js68
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.2.2-6.js67
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.1-1.js239
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.1-2.js152
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.1-3.js141
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.1-4.js151
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.1-5.js140
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.2-1.js151
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.2-2.js142
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.2-3.js146
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.2-4.js143
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.2-5.js140
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.8-1.js155
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.8-2.js153
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.8-3.js160
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.8-4.js161
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.3.8-5.js161
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.4.2-1.js81
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.4.2.js191
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.4.3.js186
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.1.js63
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-1.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-10.js89
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-11.js89
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-12.js89
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-13.js89
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-2.js87
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-3.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-4.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-5.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-6.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-7.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-8.js89
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.10-9.js89
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.11-1.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.11-2.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.11-3.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.11-4.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.11-5.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.11-6.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.11-7.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.12-1.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.12-2.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.12-3.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.12-4.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.12-5.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.12-6.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.12-7.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.12-8.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.13-1.js79
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.13-2.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.13-3.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.13-4.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.13-5.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.13-6.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.13-7.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.13-8.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.14.js87
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.15.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.16.js87
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.17.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.18.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.19.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.2-1.js151
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.2-2-n.js84
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.2.js151
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.20.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.21-1.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.21-2.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.21-3.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.21-4.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.21-5.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.21-6.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.21-7.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.21-8.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.22-1.js89
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.22-2.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.22-3.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.22-4.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.22-5.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.22-6.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.22-7.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.22-8.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-1.js139
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-10.js139
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-11.js140
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-12.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-13.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-14.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-15.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-16.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-17.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-18.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-2.js109
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-3-n.js79
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-4.js112
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-5.js113
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-6.js112
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-7.js113
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-8.js103
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.23-9.js103
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.24-1.js134
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.24-2.js134
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.24-3.js134
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.24-4.js134
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.24-5.js134
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.24-6.js134
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.24-7.js134
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.24-8.js133
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.25-1.js174
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.26-1.js183
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.27-1.js183
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.28-1.js196
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.29-1.js191
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.3-1-n.js80
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.3-2.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.30-1.js192
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.31-1.js221
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.32-1.js141
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.33-1.js145
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.34-1.js182
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.35-1.js139
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.36-1.js165
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.36-2.js164
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.36-3.js163
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.36-4.js163
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.36-5.js163
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.36-6.js163
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.36-7.js163
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.37-1.js173
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.37-2.js161
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.37-3.js164
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.37-4.js163
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.37-5.js159
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.4-1.js93
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.4-2-n.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.5.js112
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.6.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.7.js105
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.8.js113
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.9.js113
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/15.9.5.js83
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Date/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.3-1.js107
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.3-2.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.3.js170
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.4-1.js111
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.4-10.js105
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.4-2.js113
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.4-3.js111
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.4-4.js113
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.4-5.js112
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.4-6.js100
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.4-7.js112
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.4-8.js113
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.5-1.js118
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.5-2.js100
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.5-3.js130
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.5-4.js91
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.8-2.js120
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.1.8-3.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.2.1.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.2.2-1.js122
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.2.2-2.js133
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.2.3-1.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/10.2.3-2.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ExecutionContexts/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.1.1.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.10-1.js270
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.10-2.js269
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.10-3.js268
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.12-1.js110
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.12-2-n.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.12-3.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.12-4.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.13.1.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.13.2-1.js231
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.13.2-2.js253
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.13.2-3.js300
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.13.2-4.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.13.2-5.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.13.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.14-1.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.1-1.js272
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.1-2.js128
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.1-3-n.js128
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.1-4-n.js128
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.1-5.js128
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.2-1-n.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.2-1.js100
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.2-10-n.js102
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.2-11.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.2-2-n.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.2-3-n.js100
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.2-4-n.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.2-5-n.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.2-6-n.js103
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.2-7-n.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.2-8-n.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.2-9-n.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.3-1.js125
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.3-2-n.js94
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.3-3-n.js91
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.3-4-n.js91
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.2.3-5.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.3.1.js153
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.3.2.js153
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.1.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.2.js83
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.3.js111
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.4.js156
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.5.js154
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.6.js299
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.7-01.js299
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.7-02.js87
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.8.js215
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.9.js94
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.5.1.js115
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.5.2.js154
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.5.3.js161
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.6.1-1.js160
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.6.1-2.js164
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.6.1-3.js150
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.6.2-1.js165
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.6.3.js115
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.7.1.js228
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.7.2.js246
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.7.3.js230
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.8.1.js121
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.8.2.js121
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.8.3.js120
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.8.4.js121
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.9.1.js159
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.9.2.js159
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.9.3.js159
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Expressions/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.1.1-1.js136
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.1.1-2.js183
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.1.1-3.js99
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.2.1-1.js132
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.2.1-2.js107
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.2.1-3.js95
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.3.1-2.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.3.1-3.js79
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.3.1-4.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.3.2.js62
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.4-1.js94
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.4.1.js61
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.4.js81
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.5-1.js117
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.5-2.js90
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.5.1.js83
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/15.3.5.3.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/FunctionObjects/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1-1-n.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1-2-n.js67
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.1.1.js63
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.1.2.js62
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.2.1-2.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.2.2-1.js410
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.2.2-2.js238
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.2.3-1.js441
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.2.3-2.js291
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.2.4.js205
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.2.5-1.js206
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.2.5-2.js183
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.2.5-3.js207
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.2.6.js125
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/15.1.2.7.js130
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/GlobalObject/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.1-1.js82
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.1-2.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.1-3.js89
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.2-1.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.2-2-n.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.2-3-n.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.2-4-n.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.2-5-n.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.2-6.js68
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-1.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-10.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-11.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-12.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-13-n.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-2.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-3.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-4.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-5.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-6.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-7.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-8.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.3-9.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.1-1-n.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.1-2-n.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.1-3-n.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-1-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-10-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-11-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-12-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-13-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-14-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-15-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-16-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-2-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-3-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-4-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-5-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-6-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-7-n.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-8-n.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.2-9-n.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-1-n.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-10-n.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-11-n.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-12-n.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-13-n.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-14-n.js97
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-15-n.js97
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-16-n.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-2-n.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-3-n.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-4-n.js96
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-5-n.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-6-n.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-7-n.js97
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-8-n.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.4.3-9-n.js98
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.5-1.js62
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.5-10-n.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.5-2-n.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.5-3-n.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.5-4-n.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.5-5-n.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.5-6.js61
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.5-7.js61
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.5-8-n.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.5-9-n.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.6.js313
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.7.1.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.7.2.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.7.3-1.js198
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.7.3-2.js93
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.7.3.js331
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.7.4.js269
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/7.8.2-n.js63
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/LexicalConventions/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8-2-n.js82
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8-3-n.js81
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.1-1.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.1-2.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.2-1.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.2-2.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.3-1.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.3-2.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.4-1.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.4-2.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.5-1.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.5-2.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.6-1.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.6-2.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.7-1.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.7-2.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.8-1.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.8-2.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.8-3.js63
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.1.js149
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.1.js226
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.10.js153
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.11.js200
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.12.js177
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.13.js385
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.14.js79
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.15.js202
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.16.js132
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.17.js217
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.18.js165
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.2.js151
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.3.js158
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.4.js156
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.5.js244
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.6.js232
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.7.js283
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.8.js134
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/15.8.2.9.js191
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Math/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/NativeObjects/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/NativeObjects/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.1.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.2.js168
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.1-1.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.1-2.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.1-3.js67
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.2-1.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.2-2.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.2-3.js67
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.2-4.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.3-1.js68
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.3-2.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.3-3.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.3-4.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.4-1.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.4-2.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.4-3.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.4-4.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.5-1.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.5-2.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.5-3.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.5-4.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.6-1.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.6-2.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.6-3.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.6-4.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.3.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.4-1.js60
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.4.1.js62
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.4.2-1.js111
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.4.2-2-n.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.4.2-3-n.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.4.2-4.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.4.3-1.js97
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.4.3-2.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/15.7.4.3-3-n.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Number/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.1.1.js146
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.1.2.js81
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.2.1.js138
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.2.2.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.3-1.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.3.1-1.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.3.1-2.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.3.1-3.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.3.1-4.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.3.js67
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.4.1.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.4.2.js130
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/15.2.4.3.js117
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/ObjectObjects/shell.js1
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma/README1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/SourceText/6-1.js128
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/SourceText/6-2.js131
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/SourceText/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/SourceText/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.10-1.js151
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.10.js61
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.2-1.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.5-1.js102
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.5-2.js99
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.1-1.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.2-1.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.2-2.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.2-3.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.2-4.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.2-5.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.2-6.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.2-7.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.2-8.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.2-9-n.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-1.js63
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-10.js115
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-11.js98
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-12.js103
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-19.js117
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-2.js63
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-3.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-4.js202
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-5-n.js110
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-6-n.js109
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-7-n.js110
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-8-n.js110
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.6.3-9-n.js109
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.7-1-n.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.8-1-n.js67
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/12.9-1-n.js63
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Statements/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.1.js134
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.2.js110
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.3.1-1.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.3.1-2.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.3.1-3.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.3.1-4.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.3.2-1.js190
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.3.2-2.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.3.2-3.js121
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.3.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.1.js63
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.10-1.js217
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.11-1.js518
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.11-2.js515
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.11-3.js514
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.11-4.js507
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.11-5.js520
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.11-6.js516
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.12-1.js520
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.12-2.js518
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.12-3.js559
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.12-4.js515
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.12-5.js515
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.2-1.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.2-2-n.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.2-3.js83
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.2.js87
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.3-1.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.3-2.js90
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.3-3-n.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.4-1.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.4-2.js136
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.4-3.js112
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.4-4.js124
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.5-1.js87
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.5-2.js121
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.5-3.js131
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.5-4.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.5-5.js106
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.6-1.js155
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.6-2.js259
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.7-1.js219
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.7-2.js217
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.8-1.js232
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.8-2.js247
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.8-3.js204
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.9-1.js202
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.4.js108
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/15.5.5.1.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/String/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.2.js138
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.3-1.js100
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.3.1-1.js323
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.3.1-2.js87
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.3.1-3.js743
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.3.js87
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.4-1.js112
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.4-2.js112
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.5-2.js173
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.6.js140
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.7.js160
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.8.1.js167
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.9-1.js119
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Types/8.1.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Types/8.4.js130
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Types/8.6.2.1-1.js78
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Types/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/Types/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/browser.js62
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/10.1.4-9.js110
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/10.1.6.js127
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/10.1.8-1.js135
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/11.6.1-1.js145
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/11.6.1-2.js136
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/11.6.1-3.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/11.6.2-1.js124
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15-1.js94
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15-2.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.1.2.1-1.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.2.1.1.js82
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.2.3-1.js64
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.2.4.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.3.1.1-1.js82
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.3.1.1-2.js82
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.3.2.1-1.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.3.2.1-2.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.3.3.1-1.js67
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.4.3.js63
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.5.3.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.5.4.2.js59
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.5.4.4-4.js107
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.5.4.5-6.js94
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.5.4.7-3.js161
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.6.3.1-5.js58
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.6.3.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.6.4-2.js66
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.7.3.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.7.4.js90
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.8-1.js84
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/15.9.5.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/8.6.2.1-1.js98
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/9.9-1.js102
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/extensions/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/jsref.js634
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/shell.js577
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma/template.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/boolean-001.js80
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/boolean-002.js84
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/date-001.js93
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/date-002.js87
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/date-003.js89
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/date-004.js83
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/exception-001.js78
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/exception-002.js78
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/exception-003.js82
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/exception-004.js78
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/exception-005.js78
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/exception-006.js89
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/exception-007.js90
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/exception-008.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/exception-009.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/exception-010-n.js61
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/exception-011-n.js62
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-001.js83
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-002.js93
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-003.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-004.js82
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-005.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-006.js79
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-007.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-008.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-009.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-010.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-011.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-012.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-013.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-014.js79
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-015.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-016.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-017.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/expression-019.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/function-001.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/global-001.js78
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/global-002.js78
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-001.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-002.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-003.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-004.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-005.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-006.js91
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-007.js84
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-008.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-009.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-010.js84
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-011.js95
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-012.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-013.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-014.js95
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-015.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-016.js95
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-017.js87
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-018.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-019.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-020.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-021.js95
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-022.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-023.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-024.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-025.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-026.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-027.js94
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-028.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-029.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-030.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-031.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-032.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-033.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-034.js91
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-035.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-036.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-037.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-038.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-039.js79
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-040.js79
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-041.js81
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-042.js82
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-047.js83
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-048.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-049.js82
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-050.js78
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-051.js78
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-052.js80
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-053.js78
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/lexical-054.js79
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/number-001.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/number-002.js81
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/number-003.js83
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/statement-001.js80
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/statement-002.js102
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/statement-003.js113
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/statement-004.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/statement-005.js84
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/statement-006.js84
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/statement-007.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/statement-008.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/statement-009.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/string-001.js86
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Exceptions/string-002.js85
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Expressions/StrictEquality-001.js106
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Expressions/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Expressions/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/FunctionObjects/apply-001-n.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/FunctionObjects/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/FunctionObjects/call-1.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/FunctionObjects/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/LexicalConventions/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/LexicalConventions/keywords-001.js81
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/LexicalConventions/regexp-literals-001.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/LexicalConventions/regexp-literals-002.js61
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/LexicalConventions/shell.js1
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_2/README1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/constructor-001.js99
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/exec-001.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/exec-002.js221
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/function-001.js99
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/hex-001.js102
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/multiline-001.js101
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/octal-001.js111
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/octal-002.js126
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/octal-003.js120
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/properties-001.js124
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/properties-002.js162
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/regexp-enumerate-001.js121
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/regress-001.js78
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/RegExp/unicode-001.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/dowhile-001.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/dowhile-002.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/dowhile-003.js96
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/dowhile-004.js100
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/dowhile-005.js106
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/dowhile-006.js122
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/dowhile-007.js130
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/forin-001.js330
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/forin-002.js109
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/if-001.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/label-001.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/label-002.js89
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/switch-001.js98
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/switch-002.js96
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/switch-003.js90
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/switch-004.js127
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/try-001.js118
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/try-003.js115
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/try-004.js87
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/try-005.js90
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/try-006.js120
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/try-007.js125
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/try-008.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/try-009.js99
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/try-010.js106
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/try-012.js128
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/while-001.js75
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/while-002.js119
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/while-003.js120
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/Statements/while-004.js250
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/String/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/String/match-001.js139
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/String/match-002.js207
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/String/match-003.js165
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/String/match-004.js206
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/String/replace-001.js99
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/String/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/String/split-001.js145
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/String/split-002.js303
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/String/split-003.js156
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/browser.js37
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/extensions/browser.js0
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_2/extensions/constructor-001.js74
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_2/extensions/function-001.js74
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_2/extensions/instanceof-001.js144
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_2/extensions/instanceof-002.js160
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_2/extensions/instanceof-003-n.js121
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_2/extensions/instanceof-004-n.js121
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_2/extensions/instanceof-005-n.js122
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_2/extensions/instanceof-006.js119
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/extensions/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/instanceof/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/instanceof/instanceof-001.js67
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/instanceof/instanceof-002.js84
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/instanceof/instanceof-003.js98
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/instanceof/regress-7635.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/instanceof/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/jsref.js591
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/shell.js51
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_2/template.js57
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Array/15.4.4.11-01.js61
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Array/15.4.4.3-1.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Array/15.4.4.4-001.js153
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Array/15.4.5.1-01.js93
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Array/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Array/regress-101488.js172
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Array/regress-130451.js219
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Array/regress-322135-01.js73
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Array/regress-322135-02.js65
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Array/regress-322135-03.js73
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Array/regress-322135-04.js71
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Array/regress-387501.js94
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Array/regress-421325.js67
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Array/regress-430717.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Array/shell.js1
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Date/15.9.1.2-01.js62
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Date/15.9.3.2-1.js91
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Date/15.9.4.3.js233
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Date/15.9.5.3.js152
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Date/15.9.5.4.js185
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Date/15.9.5.5-02.js88
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Date/15.9.5.5.js144
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Date/15.9.5.6.js153
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Date/15.9.5.7.js142
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Date/browser.js37
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Date/shell.js564
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Exceptions/15.11.1.1.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Exceptions/15.11.4.4-1.js174
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Exceptions/15.11.7.6-001.js130
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Exceptions/15.11.7.6-002.js132
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Exceptions/15.11.7.6-003.js132
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Exceptions/binding-001.js128
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Exceptions/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Exceptions/regress-181654.js155
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Exceptions/regress-181914.js194
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Exceptions/regress-58946.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Exceptions/regress-95101.js118
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Exceptions/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/ExecutionContexts/10.1.3-1.js201
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/ExecutionContexts/10.1.3-2.js70
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/ExecutionContexts/10.1.3.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/ExecutionContexts/10.1.4-1.js85
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/ExecutionContexts/10.6.1-01.js136
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/ExecutionContexts/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/ExecutionContexts/regress-23346.js71
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/ExecutionContexts/regress-448595-01.js91
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/ExecutionContexts/shell.js1
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Expressions/11.10-01.js76
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Expressions/11.10-02.js76
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Expressions/11.10-03.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Expressions/11.6.1-1.js176
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Expressions/11.7.1-01.js76
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Expressions/11.7.2-01.js76
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Expressions/11.7.3-01.js76
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Expressions/11.9.6-1.js213
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Expressions/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Expressions/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/FunExpr/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/FunExpr/fe-001-n.js58
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/FunExpr/fe-001.js57
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/FunExpr/fe-002.js61
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/FunExpr/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/15.3.4.3-1.js210
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/15.3.4.4-1.js185
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/arguments-001.js169
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Function/arguments-002.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/call-001.js153
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/regress-131964.js196
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/regress-137181.js113
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/regress-193555.js136
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Function/regress-313570.js63
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/regress-49286.js137
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/regress-58274.js226
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/regress-85880.js173
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/regress-94506.js163
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/regress-97921.js152
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/scope-001.js265
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/scope-002.js245
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Function/shell.js1
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/LexicalConventions/7.9.1.js157
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/LexicalConventions/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/LexicalConventions/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Number/15.7.4.2-01.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Number/15.7.4.3-01.js69
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Number/15.7.4.3-02.js53
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Number/15.7.4.5-1.js145
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Number/15.7.4.6-1.js134
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Number/15.7.4.7-1.js139
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Number/15.7.4.7-2.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Number/browser.js0
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Number/regress-442242-01.js62
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Number/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/NumberFormatting/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/NumberFormatting/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/NumberFormatting/tostring-001.js60
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Object/8.6.1-01.js113
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Object/8.6.2.6-001.js113
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Object/browser.js7
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Object/class-001.js156
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Object/class-002.js146
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Object/class-003.js139
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Object/class-004.js139
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Object/class-005.js124
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Object/regress-361274.js66
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Object/regress-385393-07.js67
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Object/regress-72773.js97
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Object/regress-79129-001.js80
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Object/shell.js105
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Operators/11.13.1-001.js152
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Operators/11.13.1-002.js57
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Operators/11.4.1-001.js120
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Operators/11.4.1-002.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Operators/browser.js0
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Operators/order-01.js108
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Operators/shell.js1
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/README1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/15.10.2-1.js181
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/15.10.2.12.js63
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/15.10.3.1-1.js136
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/15.10.3.1-2.js144
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/15.10.4.1-1.js127
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/15.10.4.1-2.js133
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/15.10.4.1-3.js139
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/15.10.4.1-4.js146
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/15.10.4.1-5-n.js139
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/15.10.6.2-1.js140
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/15.10.6.2-2.js367
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/octal-001.js136
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/octal-002.js218
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/perlstress-001.js3230
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/perlstress-002.js1842
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-100199.js307
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-105972.js157
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-119909.js92
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-122076.js110
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-123437.js112
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-165353.js122
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-169497.js105
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-169534.js95
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-187133.js142
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-188206.js219
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-191479.js198
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-202564.js101
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-209067.js1106
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-209919.js174
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-216591.js117
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-220367-001.js104
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-223273.js279
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-223535.js133
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-224676.js232
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-225289.js176
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-225343.js125
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-24712.js59
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-285219.js51
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-28686.js57
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-289669.js88
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-307456.js54
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-309840.js58
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-311414.js101
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-312351.js50
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-31316.js96
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-330684.js53
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-334158.js58
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-346090.js63
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-367888.js62
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-375642.js61
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-375711.js118
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-375715-01-n.js63
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-375715-02.js60
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-375715-03.js60
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-375715-04.js68
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-57572.js150
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-57631.js152
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-67773.js211
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-72964.js121
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-76683.js114
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-78156.js123
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-85721.js276
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-87231.js145
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/regress-98306.js99
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/RegExp/shell.js266
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Regress/browser.js0
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Regress/regress-385393-04.js66
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Regress/regress-419152.js90
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Regress/regress-420087.js64
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Regress/regress-420610.js50
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Regress/regress-441477-01.js73
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Regress/shell.js1
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Statements/12.6.3.js80
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/regress-121744.js217
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/regress-131348.js184
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/regress-157509.js111
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/regress-194364.js152
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/regress-226517.js112
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Statements/regress-302439.js1368
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Statements/regress-324650.js5461
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/regress-74474-001.js139
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/regress-74474-002.js9097
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/regress-74474-003.js9099
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/regress-83532-001.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/regress-83532-002.js74
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Statements/switch-001.js143
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/String/15.5.4.11.js532
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/String/15.5.4.14.js50
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/String/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/String/regress-104375.js116
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/String/regress-189898.js157
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/String/regress-304376.js68
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/String/regress-313567.js56
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/String/regress-392378.js77
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/String/regress-83293.js216
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/String/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Unicode/browser.js0
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Unicode/regress-352044-01.js72
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/Unicode/regress-352044-02-n.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Unicode/shell.js1
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Unicode/uc-001-n.js62
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Unicode/uc-001.js56
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Unicode/uc-002-n.js55
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Unicode/uc-002.js60
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Unicode/uc-003.js71
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Unicode/uc-004.js65
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/Unicode/uc-005.js276
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/browser.js36
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/extensions/10.1.3-2.js162
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/extensions/7.9.1.js83
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/extensions/browser.js0
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/extensions/regress-103087.js178
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/extensions/regress-188206-01.js108
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/extensions/regress-188206-02.js158
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/extensions/regress-220367-002.js112
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/extensions/regress-228087.js352
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/extensions/regress-274152.js83
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/extensions/regress-320854.js53
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/extensions/regress-327170.js58
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/extensions/regress-368516.js78
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/extensions/regress-385393-03.js63
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/extensions/regress-429248.js67
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/extensions/regress-430740.js72
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/extensions/shell.js266
-rw-r--r--tests/auto/qscriptjstestsuite/tests/ecma_3/shell.js40
-rwxr-xr-xtests/auto/qscriptjstestsuite/tests/ecma_3/template.js59
-rw-r--r--tests/auto/qscriptjstestsuite/tests/shell.js886
-rw-r--r--tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp907
-rw-r--r--tests/auto/qscriptqobject/.gitignore1
-rw-r--r--tests/auto/qscriptqobject/qscriptqobject.pro5
-rw-r--r--tests/auto/qscriptqobject/tst_qscriptqobject.cpp2734
-rw-r--r--tests/auto/qscriptstring/.gitignore1
-rw-r--r--tests/auto/qscriptstring/qscriptstring.pro3
-rw-r--r--tests/auto/qscriptstring/tst_qscriptstring.cpp138
-rw-r--r--tests/auto/qscriptv8testsuite/qscriptv8testsuite.pro11
-rw-r--r--tests/auto/qscriptv8testsuite/tests/apply.js187
-rw-r--r--tests/auto/qscriptv8testsuite/tests/arguments-call-apply.js41
-rw-r--r--tests/auto/qscriptv8testsuite/tests/arguments-enum.js52
-rw-r--r--tests/auto/qscriptv8testsuite/tests/arguments-indirect.js47
-rw-r--r--tests/auto/qscriptv8testsuite/tests/arguments-opt.js130
-rw-r--r--tests/auto/qscriptv8testsuite/tests/arguments.js97
-rw-r--r--tests/auto/qscriptv8testsuite/tests/array-concat.js101
-rw-r--r--tests/auto/qscriptv8testsuite/tests/array-functions-prototype.js159
-rw-r--r--tests/auto/qscriptv8testsuite/tests/array-indexing.js66
-rw-r--r--tests/auto/qscriptv8testsuite/tests/array-iteration.js228
-rw-r--r--tests/auto/qscriptv8testsuite/tests/array-join.js45
-rw-r--r--tests/auto/qscriptv8testsuite/tests/array-length.js111
-rw-r--r--tests/auto/qscriptv8testsuite/tests/array-sort.js66
-rw-r--r--tests/auto/qscriptv8testsuite/tests/array-splice-webkit.js60
-rw-r--r--tests/auto/qscriptv8testsuite/tests/array-splice.js313
-rw-r--r--tests/auto/qscriptv8testsuite/tests/array_length.js53
-rw-r--r--tests/auto/qscriptv8testsuite/tests/ascii-regexp-subject.js45
-rw-r--r--tests/auto/qscriptv8testsuite/tests/binary-operation-overwrite.js36
-rw-r--r--tests/auto/qscriptv8testsuite/tests/body-not-visible.js39
-rw-r--r--tests/auto/qscriptv8testsuite/tests/call-non-function-call.js38
-rw-r--r--tests/auto/qscriptv8testsuite/tests/call-non-function.js54
-rw-r--r--tests/auto/qscriptv8testsuite/tests/call.js87
-rw-r--r--tests/auto/qscriptv8testsuite/tests/char-escape.js53
-rw-r--r--tests/auto/qscriptv8testsuite/tests/class-of-builtins.js50
-rw-r--r--tests/auto/qscriptv8testsuite/tests/closure.js37
-rw-r--r--tests/auto/qscriptv8testsuite/tests/compare-nan.js44
-rw-r--r--tests/auto/qscriptv8testsuite/tests/const-redecl.js220
-rw-r--r--tests/auto/qscriptv8testsuite/tests/const.js68
-rw-r--r--tests/auto/qscriptv8testsuite/tests/cyclic-array-to-string.js65
-rw-r--r--tests/auto/qscriptv8testsuite/tests/date-parse.js265
-rw-r--r--tests/auto/qscriptv8testsuite/tests/date.js126
-rw-r--r--tests/auto/qscriptv8testsuite/tests/declare-locally.js43
-rw-r--r--tests/auto/qscriptv8testsuite/tests/deep-recursion.js64
-rw-r--r--tests/auto/qscriptv8testsuite/tests/delay-syntax-error.js41
-rw-r--r--tests/auto/qscriptv8testsuite/tests/delete-global-properties.js37
-rw-r--r--tests/auto/qscriptv8testsuite/tests/delete-in-eval.js32
-rw-r--r--tests/auto/qscriptv8testsuite/tests/delete-in-with.js34
-rw-r--r--tests/auto/qscriptv8testsuite/tests/delete-vars-from-eval.js40
-rw-r--r--tests/auto/qscriptv8testsuite/tests/delete.js163
-rw-r--r--tests/auto/qscriptv8testsuite/tests/do-not-strip-fc.js31
-rw-r--r--tests/auto/qscriptv8testsuite/tests/dont-enum-array-holes.js35
-rw-r--r--tests/auto/qscriptv8testsuite/tests/dont-reinit-global-var.js47
-rw-r--r--tests/auto/qscriptv8testsuite/tests/double-equals.js114
-rw-r--r--tests/auto/qscriptv8testsuite/tests/dtoa.js32
-rw-r--r--tests/auto/qscriptv8testsuite/tests/enumeration_order.js59
-rw-r--r--tests/auto/qscriptv8testsuite/tests/escape.js118
-rw-r--r--tests/auto/qscriptv8testsuite/tests/eval-typeof-non-existing.js32
-rw-r--r--tests/auto/qscriptv8testsuite/tests/execScript-case-insensitive.js34
-rw-r--r--tests/auto/qscriptv8testsuite/tests/extra-arguments.js54
-rw-r--r--tests/auto/qscriptv8testsuite/tests/extra-commas.js46
-rw-r--r--tests/auto/qscriptv8testsuite/tests/for-in-null-or-undefined.js33
-rw-r--r--tests/auto/qscriptv8testsuite/tests/for-in-special-cases.js64
-rw-r--r--tests/auto/qscriptv8testsuite/tests/for-in.js69
-rw-r--r--tests/auto/qscriptv8testsuite/tests/fun-as-prototype.js36
-rw-r--r--tests/auto/qscriptv8testsuite/tests/fun_name.js34
-rw-r--r--tests/auto/qscriptv8testsuite/tests/function-arguments-null.js30
-rw-r--r--tests/auto/qscriptv8testsuite/tests/function-caller.js48
-rw-r--r--tests/auto/qscriptv8testsuite/tests/function-property.js29
-rw-r--r--tests/auto/qscriptv8testsuite/tests/function-prototype.js97
-rw-r--r--tests/auto/qscriptv8testsuite/tests/function-source.js49
-rw-r--r--tests/auto/qscriptv8testsuite/tests/function.js72
-rw-r--r--tests/auto/qscriptv8testsuite/tests/fuzz-accessors.js85
-rw-r--r--tests/auto/qscriptv8testsuite/tests/getter-in-value-prototype.js35
-rw-r--r--tests/auto/qscriptv8testsuite/tests/global-const-var-conflicts.js57
-rw-r--r--tests/auto/qscriptv8testsuite/tests/global-vars-eval.js34
-rw-r--r--tests/auto/qscriptv8testsuite/tests/global-vars-with.js43
-rw-r--r--tests/auto/qscriptv8testsuite/tests/has-own-property.js38
-rw-r--r--tests/auto/qscriptv8testsuite/tests/html-comments.js57
-rw-r--r--tests/auto/qscriptv8testsuite/tests/html-string-funcs.js47
-rw-r--r--tests/auto/qscriptv8testsuite/tests/if-in-undefined.js36
-rw-r--r--tests/auto/qscriptv8testsuite/tests/in.js158
-rw-r--r--tests/auto/qscriptv8testsuite/tests/instanceof.js32
-rw-r--r--tests/auto/qscriptv8testsuite/tests/integer-to-string.js35
-rw-r--r--tests/auto/qscriptv8testsuite/tests/invalid-lhs.js68
-rw-r--r--tests/auto/qscriptv8testsuite/tests/keyed-ic.js207
-rw-r--r--tests/auto/qscriptv8testsuite/tests/large-object-literal.js49
-rw-r--r--tests/auto/qscriptv8testsuite/tests/lazy-load.js34
-rw-r--r--tests/auto/qscriptv8testsuite/tests/length.js78
-rw-r--r--tests/auto/qscriptv8testsuite/tests/math-min-max.js72
-rw-r--r--tests/auto/qscriptv8testsuite/tests/megamorphic-callbacks.js70
-rw-r--r--tests/auto/qscriptv8testsuite/tests/mjsunit.js125
-rw-r--r--tests/auto/qscriptv8testsuite/tests/mul-exhaustive.js4511
-rw-r--r--tests/auto/qscriptv8testsuite/tests/negate-zero.js42
-rw-r--r--tests/auto/qscriptv8testsuite/tests/negate.js59
-rw-r--r--tests/auto/qscriptv8testsuite/tests/nested-repetition-count-overflow.js43
-rw-r--r--tests/auto/qscriptv8testsuite/tests/new.js56
-rw-r--r--tests/auto/qscriptv8testsuite/tests/newline-in-string.js46
-rw-r--r--tests/auto/qscriptv8testsuite/tests/no-branch-elimination.js36
-rw-r--r--tests/auto/qscriptv8testsuite/tests/no-octal-constants-above-256.js32
-rw-r--r--tests/auto/qscriptv8testsuite/tests/no-semicolon.js45
-rw-r--r--tests/auto/qscriptv8testsuite/tests/non-ascii-replace.js30
-rw-r--r--tests/auto/qscriptv8testsuite/tests/nul-characters.js38
-rw-r--r--tests/auto/qscriptv8testsuite/tests/number-limits.js43
-rw-r--r--tests/auto/qscriptv8testsuite/tests/number-tostring.js338
-rw-r--r--tests/auto/qscriptv8testsuite/tests/obj-construct.js46
-rw-r--r--tests/auto/qscriptv8testsuite/tests/parse-int-float.js82
-rw-r--r--tests/auto/qscriptv8testsuite/tests/property-object-key.js36
-rw-r--r--tests/auto/qscriptv8testsuite/tests/proto.js33
-rw-r--r--tests/auto/qscriptv8testsuite/tests/prototype.js93
-rw-r--r--tests/auto/qscriptv8testsuite/tests/regexp-multiline-stack-trace.js114
-rw-r--r--tests/auto/qscriptv8testsuite/tests/regexp-multiline.js112
-rw-r--r--tests/auto/qscriptv8testsuite/tests/regexp-standalones.js78
-rw-r--r--tests/auto/qscriptv8testsuite/tests/regexp-static.js122
-rw-r--r--tests/auto/qscriptv8testsuite/tests/regexp.js243
-rw-r--r--tests/auto/qscriptv8testsuite/tests/scanner.js30
-rw-r--r--tests/auto/qscriptv8testsuite/tests/smi-negative-zero.js100
-rw-r--r--tests/auto/qscriptv8testsuite/tests/smi-ops.js102
-rw-r--r--tests/auto/qscriptv8testsuite/tests/sparse-array-reverse.js123
-rw-r--r--tests/auto/qscriptv8testsuite/tests/sparse-array.js41
-rw-r--r--tests/auto/qscriptv8testsuite/tests/str-to-num.js158
-rw-r--r--tests/auto/qscriptv8testsuite/tests/stress-array-push.js34
-rw-r--r--tests/auto/qscriptv8testsuite/tests/strict-equals.js90
-rw-r--r--tests/auto/qscriptv8testsuite/tests/string-case.js28
-rw-r--r--tests/auto/qscriptv8testsuite/tests/string-charat.js53
-rw-r--r--tests/auto/qscriptv8testsuite/tests/string-charcodeat.js189
-rw-r--r--tests/auto/qscriptv8testsuite/tests/string-flatten.js37
-rw-r--r--tests/auto/qscriptv8testsuite/tests/string-index.js154
-rw-r--r--tests/auto/qscriptv8testsuite/tests/string-indexof.js49
-rw-r--r--tests/auto/qscriptv8testsuite/tests/string-lastindexof.js51
-rw-r--r--tests/auto/qscriptv8testsuite/tests/string-localecompare.js40
-rw-r--r--tests/auto/qscriptv8testsuite/tests/string-search.js30
-rw-r--r--tests/auto/qscriptv8testsuite/tests/string-split.js126
-rw-r--r--tests/auto/qscriptv8testsuite/tests/substr.js65
-rw-r--r--tests/auto/qscriptv8testsuite/tests/this-in-callbacks.js47
-rw-r--r--tests/auto/qscriptv8testsuite/tests/this.js46
-rw-r--r--tests/auto/qscriptv8testsuite/tests/throw-exception-for-null-access.js37
-rw-r--r--tests/auto/qscriptv8testsuite/tests/to-precision.js82
-rw-r--r--tests/auto/qscriptv8testsuite/tests/tobool.js36
-rw-r--r--tests/auto/qscriptv8testsuite/tests/toint32.js80
-rw-r--r--tests/auto/qscriptv8testsuite/tests/touint32.js72
-rw-r--r--tests/auto/qscriptv8testsuite/tests/try-finally-nested.js46
-rw-r--r--tests/auto/qscriptv8testsuite/tests/try.js349
-rw-r--r--tests/auto/qscriptv8testsuite/tests/try_catch_scopes.js42
-rw-r--r--tests/auto/qscriptv8testsuite/tests/unicode-string-to-number.js46
-rw-r--r--tests/auto/qscriptv8testsuite/tests/unicode-test.js9143
-rw-r--r--tests/auto/qscriptv8testsuite/tests/unusual-constructor.js38
-rw-r--r--tests/auto/qscriptv8testsuite/tests/uri.js78
-rw-r--r--tests/auto/qscriptv8testsuite/tests/value-callic-prototype-change.js94
-rw-r--r--tests/auto/qscriptv8testsuite/tests/var.js37
-rw-r--r--tests/auto/qscriptv8testsuite/tests/with-leave.js61
-rw-r--r--tests/auto/qscriptv8testsuite/tests/with-parameter-access.js47
-rw-r--r--tests/auto/qscriptv8testsuite/tests/with-value.js38
-rw-r--r--tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp340
-rw-r--r--tests/auto/qscriptvalue/.gitignore1
-rw-r--r--tests/auto/qscriptvalue/qscriptvalue.pro5
-rw-r--r--tests/auto/qscriptvalue/tst_qscriptvalue.cpp3134
-rw-r--r--tests/auto/qscriptvalueiterator/.gitignore1
-rw-r--r--tests/auto/qscriptvalueiterator/qscriptvalueiterator.pro5
-rw-r--r--tests/auto/qscriptvalueiterator/tst_qscriptvalueiterator.cpp566
-rw-r--r--tests/auto/qscrollarea/.gitignore1
-rw-r--r--tests/auto/qscrollarea/qscrollarea.pro9
-rw-r--r--tests/auto/qscrollarea/tst_qscrollarea.cpp185
-rw-r--r--tests/auto/qscrollbar/.gitignore1
-rw-r--r--tests/auto/qscrollbar/qscrollbar.pro4
-rw-r--r--tests/auto/qscrollbar/tst_qscrollbar.cpp147
-rw-r--r--tests/auto/qsemaphore/.gitignore1
-rw-r--r--tests/auto/qsemaphore/qsemaphore.pro5
-rw-r--r--tests/auto/qsemaphore/tst_qsemaphore.cpp403
-rw-r--r--tests/auto/qset/.gitignore1
-rw-r--r--tests/auto/qset/qset.pro7
-rw-r--r--tests/auto/qset/tst_qset.cpp882
-rw-r--r--tests/auto/qsettings/.gitignore1
-rw-r--r--tests/auto/qsettings/qsettings.pro7
-rw-r--r--tests/auto/qsettings/qsettings.qrc9
-rw-r--r--tests/auto/qsettings/resourcefile.ini46
-rw-r--r--tests/auto/qsettings/resourcefile2.ini46
-rw-r--r--tests/auto/qsettings/resourcefile3.ini50
-rw-r--r--tests/auto/qsettings/resourcefile4.ini2
-rw-r--r--tests/auto/qsettings/resourcefile5.ini2
-rw-r--r--tests/auto/qsettings/tst_qsettings.cpp3808
-rw-r--r--tests/auto/qsharedmemory/.gitignore3
-rw-r--r--tests/auto/qsharedmemory/lackey/lackey.pro18
-rw-r--r--tests/auto/qsharedmemory/lackey/main.cpp368
-rw-r--r--tests/auto/qsharedmemory/lackey/scripts/consumer.js41
-rw-r--r--tests/auto/qsharedmemory/lackey/scripts/producer.js36
-rw-r--r--tests/auto/qsharedmemory/lackey/scripts/readonly_segfault.js4
-rw-r--r--tests/auto/qsharedmemory/lackey/scripts/systemlock_read.js11
-rw-r--r--tests/auto/qsharedmemory/lackey/scripts/systemlock_readwrite.js11
-rw-r--r--tests/auto/qsharedmemory/lackey/scripts/systemsemaphore_acquire.js18
-rw-r--r--tests/auto/qsharedmemory/lackey/scripts/systemsemaphore_acquirerelease.js11
-rw-r--r--tests/auto/qsharedmemory/lackey/scripts/systemsemaphore_release.js11
-rw-r--r--tests/auto/qsharedmemory/qsharedmemory.pro4
-rw-r--r--tests/auto/qsharedmemory/qsystemlock/qsystemlock.pro16
-rw-r--r--tests/auto/qsharedmemory/qsystemlock/tst_qsystemlock.cpp222
-rw-r--r--tests/auto/qsharedmemory/src/qsystemlock.cpp246
-rw-r--r--tests/auto/qsharedmemory/src/qsystemlock.h135
-rw-r--r--tests/auto/qsharedmemory/src/qsystemlock_p.h106
-rw-r--r--tests/auto/qsharedmemory/src/qsystemlock_unix.cpp209
-rw-r--r--tests/auto/qsharedmemory/src/qsystemlock_win.cpp190
-rw-r--r--tests/auto/qsharedmemory/src/src.pri10
-rw-r--r--tests/auto/qsharedmemory/test/test.pro29
-rw-r--r--tests/auto/qsharedmemory/tst_qsharedmemory.cpp744
-rw-r--r--tests/auto/qsharedpointer/.gitignore1
-rw-r--r--tests/auto/qsharedpointer/externaltests.cpp674
-rw-r--r--tests/auto/qsharedpointer/externaltests.h132
-rw-r--r--tests/auto/qsharedpointer/externaltests.pri6
-rw-r--r--tests/auto/qsharedpointer/qsharedpointer.pro7
-rw-r--r--tests/auto/qsharedpointer/tst_qsharedpointer.cpp915
-rw-r--r--tests/auto/qshortcut/.gitignore1
-rw-r--r--tests/auto/qshortcut/qshortcut.pro10
-rw-r--r--tests/auto/qshortcut/tst_qshortcut.cpp1272
-rw-r--r--tests/auto/qsidebar/.gitignore1
-rw-r--r--tests/auto/qsidebar/qsidebar.pro8
-rw-r--r--tests/auto/qsidebar/tst_qsidebar.cpp199
-rw-r--r--tests/auto/qsignalmapper/.gitignore1
-rw-r--r--tests/auto/qsignalmapper/qsignalmapper.pro5
-rw-r--r--tests/auto/qsignalmapper/tst_qsignalmapper.cpp156
-rw-r--r--tests/auto/qsignalspy/.gitignore1
-rw-r--r--tests/auto/qsignalspy/qsignalspy.pro6
-rw-r--r--tests/auto/qsignalspy/tst_qsignalspy.cpp221
-rw-r--r--tests/auto/qsimplexmlnodemodel/.gitignore1
-rw-r--r--tests/auto/qsimplexmlnodemodel/TestSimpleNodeModel.h132
-rw-r--r--tests/auto/qsimplexmlnodemodel/qsimplexmlnodemodel.pro4
-rw-r--r--tests/auto/qsimplexmlnodemodel/tst_qsimplexmlnodemodel.cpp172
-rw-r--r--tests/auto/qsize/.gitignore1
-rw-r--r--tests/auto/qsize/qsize.pro5
-rw-r--r--tests/auto/qsize/tst_qsize.cpp254
-rw-r--r--tests/auto/qsizef/.gitignore1
-rw-r--r--tests/auto/qsizef/qsizef.pro4
-rw-r--r--tests/auto/qsizef/tst_qsizef.cpp204
-rw-r--r--tests/auto/qsizegrip/.gitignore1
-rw-r--r--tests/auto/qsizegrip/qsizegrip.pro5
-rw-r--r--tests/auto/qsizegrip/tst_qsizegrip.cpp201
-rw-r--r--tests/auto/qslider/.gitignore1
-rw-r--r--tests/auto/qslider/qslider.pro9
-rw-r--r--tests/auto/qslider/tst_qslider.cpp98
-rw-r--r--tests/auto/qsocketnotifier/.gitignore1
-rw-r--r--tests/auto/qsocketnotifier/qsocketnotifier.pro8
-rw-r--r--tests/auto/qsocketnotifier/tst_qsocketnotifier.cpp179
-rw-r--r--tests/auto/qsocks5socketengine/.gitignore1
-rw-r--r--tests/auto/qsocks5socketengine/qsocks5socketengine.pro13
-rw-r--r--tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp958
-rw-r--r--tests/auto/qsortfilterproxymodel/.gitignore1
-rw-r--r--tests/auto/qsortfilterproxymodel/qsortfilterproxymodel.pro6
-rw-r--r--tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp2483
-rw-r--r--tests/auto/qsound/.gitignore1
-rw-r--r--tests/auto/qsound/4.wavbin0 -> 5538 bytes-rw-r--r--tests/auto/qsound/qsound.pro7
-rw-r--r--tests/auto/qsound/tst_qsound.cpp71
-rw-r--r--tests/auto/qsourcelocation/.gitignore1
-rw-r--r--tests/auto/qsourcelocation/qsourcelocation.pro4
-rw-r--r--tests/auto/qsourcelocation/tst_qsourcelocation.cpp398
-rw-r--r--tests/auto/qspinbox/.gitignore1
-rw-r--r--tests/auto/qspinbox/qspinbox.pro5
-rw-r--r--tests/auto/qspinbox/tst_qspinbox.cpp954
-rw-r--r--tests/auto/qsplitter/.gitignore1
-rw-r--r--tests/auto/qsplitter/extradata.txt10067
-rw-r--r--tests/auto/qsplitter/qsplitter.pro11
-rw-r--r--tests/auto/qsplitter/setSizes3.dat2250
-rw-r--r--tests/auto/qsplitter/tst_qsplitter.cpp1404
-rw-r--r--tests/auto/qsql/.gitignore1
-rw-r--r--tests/auto/qsql/qsql.pro10
-rw-r--r--tests/auto/qsql/tst_qsql.cpp321
-rw-r--r--tests/auto/qsqldatabase/.gitignore1
-rw-r--r--tests/auto/qsqldatabase/qsqldatabase.pro20
-rwxr-xr-xtests/auto/qsqldatabase/testdata/qtest.mdbbin0 -> 65536 bytes-rw-r--r--tests/auto/qsqldatabase/tst_databases.h454
-rw-r--r--tests/auto/qsqldatabase/tst_qsqldatabase.cpp2319
-rw-r--r--tests/auto/qsqlerror/.gitignore1
-rw-r--r--tests/auto/qsqlerror/qsqlerror.pro10
-rw-r--r--tests/auto/qsqlerror/tst_qsqlerror.cpp129
-rw-r--r--tests/auto/qsqlfield/.gitignore1
-rw-r--r--tests/auto/qsqlfield/qsqlfield.pro7
-rw-r--r--tests/auto/qsqlfield/tst_qsqlfield.cpp360
-rw-r--r--tests/auto/qsqlquery/.gitignore1
-rw-r--r--tests/auto/qsqlquery/qsqlquery.pro14
-rw-r--r--tests/auto/qsqlquery/tst_qsqlquery.cpp2730
-rw-r--r--tests/auto/qsqlquerymodel/.gitignore1
-rw-r--r--tests/auto/qsqlquerymodel/qsqlquerymodel.pro11
-rw-r--r--tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp564
-rw-r--r--tests/auto/qsqlrecord/.gitignore1
-rw-r--r--tests/auto/qsqlrecord/qsqlrecord.pro7
-rw-r--r--tests/auto/qsqlrecord/tst_qsqlrecord.cpp587
-rw-r--r--tests/auto/qsqlrelationaltablemodel/.gitignore1
-rw-r--r--tests/auto/qsqlrelationaltablemodel/qsqlrelationaltablemodel.pro16
-rw-r--r--tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp810
-rw-r--r--tests/auto/qsqltablemodel/.gitignore1
-rw-r--r--tests/auto/qsqltablemodel/qsqltablemodel.pro13
-rw-r--r--tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp915
-rw-r--r--tests/auto/qsqlthread/.gitignore1
-rw-r--r--tests/auto/qsqlthread/qsqlthread.pro14
-rw-r--r--tests/auto/qsqlthread/tst_qsqlthread.cpp524
-rw-r--r--tests/auto/qsslcertificate/.gitignore1
-rw-r--r--tests/auto/qsslcertificate/certificates/ca-cert.pem33
-rw-r--r--tests/auto/qsslcertificate/certificates/ca-cert.pem.digest-md51
-rw-r--r--tests/auto/qsslcertificate/certificates/ca-cert.pem.digest-sha11
-rw-r--r--tests/auto/qsslcertificate/certificates/cert-ss-san.pem13
-rw-r--r--tests/auto/qsslcertificate/certificates/cert-ss-san.pem.san5
-rw-r--r--tests/auto/qsslcertificate/certificates/cert-ss.derbin0 -> 461 bytes-rw-r--r--tests/auto/qsslcertificate/certificates/cert-ss.der.pubkeybin0 -> 162 bytes-rw-r--r--tests/auto/qsslcertificate/certificates/cert-ss.pem12
-rw-r--r--tests/auto/qsslcertificate/certificates/cert-ss.pem.digest-md51
-rw-r--r--tests/auto/qsslcertificate/certificates/cert-ss.pem.digest-sha11
-rw-r--r--tests/auto/qsslcertificate/certificates/cert-ss.pem.pubkey6
-rw-r--r--tests/auto/qsslcertificate/certificates/cert.derbin0 -> 503 bytes-rw-r--r--tests/auto/qsslcertificate/certificates/cert.der.pubkeybin0 -> 162 bytes-rw-r--r--tests/auto/qsslcertificate/certificates/cert.pem13
-rw-r--r--tests/auto/qsslcertificate/certificates/cert.pem.digest-md51
-rw-r--r--tests/auto/qsslcertificate/certificates/cert.pem.digest-sha11
-rw-r--r--tests/auto/qsslcertificate/certificates/cert.pem.pubkey6
-rwxr-xr-xtests/auto/qsslcertificate/certificates/gencertificates.sh54
-rw-r--r--tests/auto/qsslcertificate/certificates/san.cnf5
-rw-r--r--tests/auto/qsslcertificate/more-certificates/trailing-whitespace.pem13
-rw-r--r--tests/auto/qsslcertificate/qsslcertificate.pro26
-rw-r--r--tests/auto/qsslcertificate/tst_qsslcertificate.cpp695
-rw-r--r--tests/auto/qsslcipher/.gitignore1
-rw-r--r--tests/auto/qsslcipher/qsslcipher.pro17
-rw-r--r--tests/auto/qsslcipher/tst_qsslcipher.cpp101
-rw-r--r--tests/auto/qsslerror/.gitignore1
-rw-r--r--tests/auto/qsslerror/qsslerror.pro17
-rw-r--r--tests/auto/qsslerror/tst_qsslerror.cpp122
-rw-r--r--tests/auto/qsslkey/.gitignore1
-rw-r--r--tests/auto/qsslkey/keys/dsa-pri-1024.derbin0 -> 447 bytes-rw-r--r--tests/auto/qsslkey/keys/dsa-pri-1024.pem12
-rw-r--r--tests/auto/qsslkey/keys/dsa-pri-512.derbin0 -> 251 bytes-rw-r--r--tests/auto/qsslkey/keys/dsa-pri-512.pem8
-rw-r--r--tests/auto/qsslkey/keys/dsa-pri-576.derbin0 -> 275 bytes-rw-r--r--tests/auto/qsslkey/keys/dsa-pri-576.pem8
-rw-r--r--tests/auto/qsslkey/keys/dsa-pri-960.derbin0 -> 419 bytes-rw-r--r--tests/auto/qsslkey/keys/dsa-pri-960.pem11
-rw-r--r--tests/auto/qsslkey/keys/dsa-pub-1024.derbin0 -> 442 bytes-rw-r--r--tests/auto/qsslkey/keys/dsa-pub-1024.pem12
-rw-r--r--tests/auto/qsslkey/keys/dsa-pub-512.derbin0 -> 244 bytes-rw-r--r--tests/auto/qsslkey/keys/dsa-pub-512.pem8
-rw-r--r--tests/auto/qsslkey/keys/dsa-pub-576.derbin0 -> 268 bytes-rw-r--r--tests/auto/qsslkey/keys/dsa-pub-576.pem8
-rw-r--r--tests/auto/qsslkey/keys/dsa-pub-960.derbin0 -> 414 bytes-rw-r--r--tests/auto/qsslkey/keys/dsa-pub-960.pem11
-rwxr-xr-xtests/auto/qsslkey/keys/genkeys.sh42
-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-1023.derbin0 -> 605 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-1023.pem15
-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-1024.derbin0 -> 608 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-1024.pem15
-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-2048.derbin0 -> 1190 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-2048.pem27
-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-40.derbin0 -> 49 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-40.pem4
-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-511.derbin0 -> 316 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-511.pem9
-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-512.derbin0 -> 320 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-512.pem9
-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-999.derbin0 -> 591 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pri-999.pem15
-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-1023.derbin0 -> 161 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-1023.pem6
-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-1024.derbin0 -> 162 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-1024.pem6
-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-2048.derbin0 -> 294 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-2048.pem9
-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-40.derbin0 -> 35 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-40.pem3
-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-511.derbin0 -> 93 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-511.pem4
-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-512.derbin0 -> 94 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-512.pem4
-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-999.derbin0 -> 157 bytes-rw-r--r--tests/auto/qsslkey/keys/rsa-pub-999.pem6
-rw-r--r--tests/auto/qsslkey/qsslkey.pro24
-rw-r--r--tests/auto/qsslkey/tst_qsslkey.cpp371
-rw-r--r--tests/auto/qsslsocket/.gitignore1
-rw-r--r--tests/auto/qsslsocket/certs/fluke.cert75
-rw-r--r--tests/auto/qsslsocket/certs/fluke.key15
-rw-r--r--tests/auto/qsslsocket/certs/qt-test-server-cacert.pem22
-rw-r--r--tests/auto/qsslsocket/qsslsocket.pro22
-rw-r--r--tests/auto/qsslsocket/ssl.tar.gzbin0 -> 36299 bytes-rw-r--r--tests/auto/qsslsocket/tst_qsslsocket.cpp1513
-rw-r--r--tests/auto/qstackedlayout/.gitignore1
-rw-r--r--tests/auto/qstackedlayout/qstackedlayout.pro5
-rw-r--r--tests/auto/qstackedlayout/tst_qstackedlayout.cpp368
-rw-r--r--tests/auto/qstackedwidget/.gitignore1
-rw-r--r--tests/auto/qstackedwidget/qstackedwidget.pro9
-rw-r--r--tests/auto/qstackedwidget/tst_qstackedwidget.cpp124
-rw-r--r--tests/auto/qstandarditem/.gitignore1
-rw-r--r--tests/auto/qstandarditem/qstandarditem.pro4
-rw-r--r--tests/auto/qstandarditem/tst_qstandarditem.cpp1106
-rw-r--r--tests/auto/qstandarditemmodel/.gitignore1
-rw-r--r--tests/auto/qstandarditemmodel/qstandarditemmodel.pro4
-rw-r--r--tests/auto/qstandarditemmodel/tst_qstandarditemmodel.cpp1623
-rw-r--r--tests/auto/qstatusbar/.gitignore1
-rw-r--r--tests/auto/qstatusbar/qstatusbar.pro5
-rw-r--r--tests/auto/qstatusbar/tst_qstatusbar.cpp263
-rw-r--r--tests/auto/qstl/.gitignore1
-rw-r--r--tests/auto/qstl/qstl.pro7
-rw-r--r--tests/auto/qstl/tst_qstl.cpp98
-rw-r--r--tests/auto/qstring/.gitignore1
-rw-r--r--tests/auto/qstring/double_data.h10036
-rw-r--r--tests/auto/qstring/qstring.pro11
-rw-r--r--tests/auto/qstring/tst_qstring.cpp4670
-rw-r--r--tests/auto/qstringlist/.gitignore1
-rw-r--r--tests/auto/qstringlist/qstringlist.pro7
-rw-r--r--tests/auto/qstringlist/tst_qstringlist.cpp315
-rw-r--r--tests/auto/qstringlistmodel/.gitignore1
-rw-r--r--tests/auto/qstringlistmodel/qmodellistener.h75
-rw-r--r--tests/auto/qstringlistmodel/qstringlistmodel.pro7
-rw-r--r--tests/auto/qstringlistmodel/tst_qstringlistmodel.cpp287
-rw-r--r--tests/auto/qstringmatcher/.gitignore1
-rw-r--r--tests/auto/qstringmatcher/qstringmatcher.pro5
-rw-r--r--tests/auto/qstringmatcher/tst_qstringmatcher.cpp163
-rw-r--r--tests/auto/qstyle/.gitignore1
-rw-r--r--tests/auto/qstyle/images/mac/button.pngbin0 -> 1785 bytes-rw-r--r--tests/auto/qstyle/images/mac/combobox.pngbin0 -> 1808 bytes-rw-r--r--tests/auto/qstyle/images/mac/lineedit.pngbin0 -> 953 bytes-rw-r--r--tests/auto/qstyle/images/mac/mdi.pngbin0 -> 3092 bytes-rw-r--r--tests/auto/qstyle/images/mac/menu.pngbin0 -> 1139 bytes-rw-r--r--tests/auto/qstyle/images/mac/radiobutton.pngbin0 -> 1498 bytes-rw-r--r--tests/auto/qstyle/images/mac/slider.pngbin0 -> 1074 bytes-rw-r--r--tests/auto/qstyle/images/mac/spinbox.pngbin0 -> 1299 bytes-rw-r--r--tests/auto/qstyle/images/vista/button.pngbin0 -> 722 bytes-rw-r--r--tests/auto/qstyle/images/vista/combobox.pngbin0 -> 809 bytes-rw-r--r--tests/auto/qstyle/images/vista/lineedit.pngbin0 -> 530 bytes-rw-r--r--tests/auto/qstyle/images/vista/menu.pngbin0 -> 646 bytes-rw-r--r--tests/auto/qstyle/images/vista/radiobutton.pngbin0 -> 844 bytes-rw-r--r--tests/auto/qstyle/images/vista/slider.pngbin0 -> 575 bytes-rw-r--r--tests/auto/qstyle/images/vista/spinbox.pngbin0 -> 583 bytes-rw-r--r--tests/auto/qstyle/qstyle.pro10
-rw-r--r--tests/auto/qstyle/task_25863.pngbin0 -> 910 bytes-rw-r--r--tests/auto/qstyle/tst_qstyle.cpp685
-rw-r--r--tests/auto/qstyleoption/.gitignore1
-rw-r--r--tests/auto/qstyleoption/qstyleoption.pro11
-rw-r--r--tests/auto/qstyleoption/tst_qstyleoption.cpp164
-rw-r--r--tests/auto/qstylesheetstyle/.gitignore1
-rw-r--r--tests/auto/qstylesheetstyle/images/testimage.pngbin0 -> 299 bytes-rw-r--r--tests/auto/qstylesheetstyle/qstylesheetstyle.pro15
-rw-r--r--tests/auto/qstylesheetstyle/resources.qrc6
-rw-r--r--tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp1361
-rw-r--r--tests/auto/qsvgdevice/.gitignore1
-rw-r--r--tests/auto/qsvgdevice/qsvgdevice.pro6
-rw-r--r--tests/auto/qsvgdevice/tst_qsvgdevice.cpp398
-rw-r--r--tests/auto/qsvggenerator/.gitignore1
-rw-r--r--tests/auto/qsvggenerator/qsvggenerator.pro17
-rw-r--r--tests/auto/qsvggenerator/referenceSvgs/fileName_output.svg15
-rw-r--r--tests/auto/qsvggenerator/referenceSvgs/radial_gradient.svg30
-rw-r--r--tests/auto/qsvggenerator/tst_qsvggenerator.cpp439
-rw-r--r--tests/auto/qsvgrenderer/.gitattributes1
-rw-r--r--tests/auto/qsvgrenderer/.gitignore1
-rw-r--r--tests/auto/qsvgrenderer/heart.svgzbin0 -> 1505 bytes-rw-r--r--tests/auto/qsvgrenderer/large.svg462
-rw-r--r--tests/auto/qsvgrenderer/large.svgzbin0 -> 5082 bytes-rw-r--r--tests/auto/qsvgrenderer/qsvgrenderer.pro18
-rw-r--r--tests/auto/qsvgrenderer/resources.qrc5
-rw-r--r--tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp649
-rw-r--r--tests/auto/qsyntaxhighlighter/.gitignore1
-rw-r--r--tests/auto/qsyntaxhighlighter/qsyntaxhighlighter.pro4
-rw-r--r--tests/auto/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp522
-rw-r--r--tests/auto/qsysinfo/.gitignore1
-rw-r--r--tests/auto/qsysinfo/qsysinfo.pro6
-rw-r--r--tests/auto/qsysinfo/tst_qsysinfo.cpp52
-rw-r--r--tests/auto/qsystemsemaphore/.gitignore1
-rw-r--r--tests/auto/qsystemsemaphore/files.qrc7
-rw-r--r--tests/auto/qsystemsemaphore/qsystemsemaphore.pro4
-rw-r--r--tests/auto/qsystemsemaphore/test/test.pro29
-rw-r--r--tests/auto/qsystemsemaphore/tst_qsystemsemaphore.cpp293
-rw-r--r--tests/auto/qsystemtrayicon/.gitignore1
-rw-r--r--tests/auto/qsystemtrayicon/icons/icon.pngbin0 -> 1086 bytes-rw-r--r--tests/auto/qsystemtrayicon/qsystemtrayicon.pro9
-rw-r--r--tests/auto/qsystemtrayicon/tst_qsystemtrayicon.cpp153
-rw-r--r--tests/auto/qtabbar/.gitignore1
-rw-r--r--tests/auto/qtabbar/qtabbar.pro5
-rw-r--r--tests/auto/qtabbar/tst_qtabbar.cpp507
-rw-r--r--tests/auto/qtableview/.gitignore1
-rw-r--r--tests/auto/qtableview/qtableview.pro4
-rw-r--r--tests/auto/qtableview/tst_qtableview.cpp3208
-rw-r--r--tests/auto/qtablewidget/.gitignore1
-rw-r--r--tests/auto/qtablewidget/qtablewidget.pro4
-rw-r--r--tests/auto/qtablewidget/tst_qtablewidget.cpp1479
-rw-r--r--tests/auto/qtabwidget/.gitignore1
-rw-r--r--tests/auto/qtabwidget/qtabwidget.pro11
-rw-r--r--tests/auto/qtabwidget/tst_qtabwidget.cpp624
-rw-r--r--tests/auto/qtconcurrentfilter/.gitignore1
-rw-r--r--tests/auto/qtconcurrentfilter/qtconcurrentfilter.pro4
-rw-r--r--tests/auto/qtconcurrentfilter/tst_qtconcurrentfilter.cpp1546
-rw-r--r--tests/auto/qtconcurrentiteratekernel/.gitignore1
-rw-r--r--tests/auto/qtconcurrentiteratekernel/qtconcurrentiteratekernel.pro3
-rw-r--r--tests/auto/qtconcurrentiteratekernel/tst_qtconcurrentiteratekernel.cpp332
-rw-r--r--tests/auto/qtconcurrentmap/.gitignore1
-rw-r--r--tests/auto/qtconcurrentmap/functions.h130
-rw-r--r--tests/auto/qtconcurrentmap/qtconcurrentmap.pro4
-rw-r--r--tests/auto/qtconcurrentmap/tst_qtconcurrentmap.cpp2396
-rw-r--r--tests/auto/qtconcurrentrun/.gitignore1
-rw-r--r--tests/auto/qtconcurrentrun/qtconcurrentrun.pro3
-rw-r--r--tests/auto/qtconcurrentrun/tst_qtconcurrentrun.cpp413
-rw-r--r--tests/auto/qtconcurrentthreadengine/.gitignore1
-rw-r--r--tests/auto/qtconcurrentthreadengine/qtconcurrentthreadengine.pro3
-rw-r--r--tests/auto/qtconcurrentthreadengine/tst_qtconcurrentthreadengine.cpp536
-rw-r--r--tests/auto/qtcpserver/.gitignore3
-rw-r--r--tests/auto/qtcpserver/crashingServer/crashingServer.pro8
-rw-r--r--tests/auto/qtcpserver/crashingServer/main.cpp70
-rw-r--r--tests/auto/qtcpserver/qtcpserver.pro5
-rw-r--r--tests/auto/qtcpserver/test/test.pro32
-rw-r--r--tests/auto/qtcpserver/tst_qtcpserver.cpp844
-rw-r--r--tests/auto/qtcpsocket/.gitignore3
-rw-r--r--tests/auto/qtcpsocket/qtcpsocket.pro5
-rw-r--r--tests/auto/qtcpsocket/stressTest/Test.cpp240
-rw-r--r--tests/auto/qtcpsocket/stressTest/Test.h137
-rw-r--r--tests/auto/qtcpsocket/stressTest/main.cpp73
-rw-r--r--tests/auto/qtcpsocket/stressTest/stressTest.pro12
-rw-r--r--tests/auto/qtcpsocket/test/test.pro27
-rw-r--r--tests/auto/qtcpsocket/tst_qtcpsocket.cpp2345
-rw-r--r--tests/auto/qtemporaryfile/.gitignore1
-rw-r--r--tests/auto/qtemporaryfile/qtemporaryfile.pro6
-rw-r--r--tests/auto/qtemporaryfile/tst_qtemporaryfile.cpp339
-rw-r--r--tests/auto/qtessellator/.gitignore1
-rw-r--r--tests/auto/qtessellator/XrenderFake.h110
-rw-r--r--tests/auto/qtessellator/arc.cpp49
-rw-r--r--tests/auto/qtessellator/arc.data2
-rw-r--r--tests/auto/qtessellator/arc.h48
-rw-r--r--tests/auto/qtessellator/datafiles.qrc6
-rw-r--r--tests/auto/qtessellator/dataparser.cpp161
-rw-r--r--tests/auto/qtessellator/dataparser.h51
-rw-r--r--tests/auto/qtessellator/oldtessellator.cpp446
-rw-r--r--tests/auto/qtessellator/oldtessellator.h52
-rw-r--r--tests/auto/qtessellator/qnum.h145
-rw-r--r--tests/auto/qtessellator/qtessellator.pro7
-rw-r--r--tests/auto/qtessellator/sample_data.h51
-rw-r--r--tests/auto/qtessellator/simple.cpp49
-rw-r--r--tests/auto/qtessellator/simple.data195
-rw-r--r--tests/auto/qtessellator/simple.h48
-rw-r--r--tests/auto/qtessellator/testtessellator.cpp114
-rw-r--r--tests/auto/qtessellator/testtessellator.h59
-rw-r--r--tests/auto/qtessellator/tst_tessellator.cpp378
-rw-r--r--tests/auto/qtessellator/utils.cpp93
-rw-r--r--tests/auto/qtessellator/utils.h56
-rw-r--r--tests/auto/qtextblock/.gitignore1
-rw-r--r--tests/auto/qtextblock/qtextblock.pro5
-rw-r--r--tests/auto/qtextblock/tst_qtextblock.cpp178
-rw-r--r--tests/auto/qtextboundaryfinder/.gitignore1
-rw-r--r--tests/auto/qtextboundaryfinder/data/GraphemeBreakTest.txt123
-rw-r--r--tests/auto/qtextboundaryfinder/data/SentenceBreakTest.txt307
-rw-r--r--tests/auto/qtextboundaryfinder/data/WordBreakTest.txt517
-rw-r--r--tests/auto/qtextboundaryfinder/qtextboundaryfinder.pro10
-rw-r--r--tests/auto/qtextboundaryfinder/tst_qtextboundaryfinder.cpp313
-rw-r--r--tests/auto/qtextbrowser.html1
-rw-r--r--tests/auto/qtextbrowser/.gitignore1
-rw-r--r--tests/auto/qtextbrowser/anchor.html11
-rw-r--r--tests/auto/qtextbrowser/bigpage.html934
-rw-r--r--tests/auto/qtextbrowser/firstpage.html2
-rw-r--r--tests/auto/qtextbrowser/pagewithbg.html1
-rw-r--r--tests/auto/qtextbrowser/pagewithimage.html1
-rw-r--r--tests/auto/qtextbrowser/pagewithoutbg.html1
-rw-r--r--tests/auto/qtextbrowser/qtextbrowser.pro17
-rw-r--r--tests/auto/qtextbrowser/secondpage.html1
-rw-r--r--tests/auto/qtextbrowser/subdir/index.html1
-rw-r--r--tests/auto/qtextbrowser/thirdpage.html1
-rw-r--r--tests/auto/qtextbrowser/tst_qtextbrowser.cpp663
-rw-r--r--tests/auto/qtextcodec/.gitattributes1
-rw-r--r--tests/auto/qtextcodec/.gitignore1
-rw-r--r--tests/auto/qtextcodec/QT4-crashtest.txtbin0 -> 34 bytes-rw-r--r--tests/auto/qtextcodec/echo/echo.pro6
-rw-r--r--tests/auto/qtextcodec/echo/main.cpp60
-rw-r--r--tests/auto/qtextcodec/korean.txt1
-rw-r--r--tests/auto/qtextcodec/qtextcodec.pro4
-rw-r--r--tests/auto/qtextcodec/test/test.pro11
-rw-r--r--tests/auto/qtextcodec/tst_qtextcodec.cpp1751
-rw-r--r--tests/auto/qtextcodec/utf8.txt1
-rw-r--r--tests/auto/qtextcursor/.gitignore1
-rw-r--r--tests/auto/qtextcursor/qtextcursor.pro5
-rw-r--r--tests/auto/qtextcursor/tst_qtextcursor.cpp1672
-rw-r--r--tests/auto/qtextdocument/.gitignore1
-rw-r--r--tests/auto/qtextdocument/common.h93
-rw-r--r--tests/auto/qtextdocument/qtextdocument.pro5
-rw-r--r--tests/auto/qtextdocument/tst_qtextdocument.cpp2518
-rw-r--r--tests/auto/qtextdocumentfragment/.gitignore1
-rw-r--r--tests/auto/qtextdocumentfragment/qtextdocumentfragment.pro5
-rw-r--r--tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp4025
-rw-r--r--tests/auto/qtextdocumentlayout/.gitignore1
-rw-r--r--tests/auto/qtextdocumentlayout/qtextdocumentlayout.pro4
-rw-r--r--tests/auto/qtextdocumentlayout/tst_qtextdocumentlayout.cpp254
-rw-r--r--tests/auto/qtextedit/.gitignore2
-rw-r--r--tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.pngbin0 -> 1232 bytes-rw-r--r--tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.pngbin0 -> 1231 bytes-rw-r--r--tests/auto/qtextedit/fullWidthSelection/last-char-on-line.pngbin0 -> 1220 bytes-rw-r--r--tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.pngbin0 -> 1222 bytes-rw-r--r--tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.pngbin0 -> 1236 bytes-rw-r--r--tests/auto/qtextedit/fullWidthSelection/nowrap_long.pngbin0 -> 1199 bytes-rw-r--r--tests/auto/qtextedit/fullWidthSelection/single-full-width-line.pngbin0 -> 1235 bytes-rw-r--r--tests/auto/qtextedit/qtextedit.pro17
-rw-r--r--tests/auto/qtextedit/tst_qtextedit.cpp2152
-rw-r--r--tests/auto/qtextformat/.gitignore1
-rw-r--r--tests/auto/qtextformat/qtextformat.pro9
-rw-r--r--tests/auto/qtextformat/tst_qtextformat.cpp377
-rw-r--r--tests/auto/qtextlayout/.gitignore1
-rw-r--r--tests/auto/qtextlayout/qtextlayout.pro6
-rw-r--r--tests/auto/qtextlayout/tst_qtextlayout.cpp1284
-rw-r--r--tests/auto/qtextlist/.gitignore1
-rw-r--r--tests/auto/qtextlist/qtextlist.pro6
-rw-r--r--tests/auto/qtextlist/tst_qtextlist.cpp304
-rw-r--r--tests/auto/qtextobject/.gitignore1
-rw-r--r--tests/auto/qtextobject/qtextobject.pro9
-rw-r--r--tests/auto/qtextobject/tst_qtextobject.cpp109
-rw-r--r--tests/auto/qtextodfwriter/.gitignore1
-rw-r--r--tests/auto/qtextodfwriter/qtextodfwriter.pro5
-rw-r--r--tests/auto/qtextodfwriter/tst_qtextodfwriter.cpp420
-rw-r--r--tests/auto/qtextpiecetable/.gitignore1
-rw-r--r--tests/auto/qtextpiecetable/qtextpiecetable.pro8
-rw-r--r--tests/auto/qtextpiecetable/tst_qtextpiecetable.cpp1174
-rw-r--r--tests/auto/qtextscriptengine/.gitignore1
-rw-r--r--tests/auto/qtextscriptengine/generate/generate.pro13
-rw-r--r--tests/auto/qtextscriptengine/generate/main.cpp129
-rw-r--r--tests/auto/qtextscriptengine/qtextscriptengine.pro6
-rw-r--r--tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp913
-rw-r--r--tests/auto/qtextstream/.gitattributes3
-rw-r--r--tests/auto/qtextstream/.gitignore11
-rw-r--r--tests/auto/qtextstream/qtextstream.pro5
-rw-r--r--tests/auto/qtextstream/qtextstream.qrc6
-rw-r--r--tests/auto/qtextstream/readAllStdinProcess/main.cpp50
-rw-r--r--tests/auto/qtextstream/readAllStdinProcess/readAllStdinProcess.pro7
-rw-r--r--tests/auto/qtextstream/readLineStdinProcess/main.cpp57
-rw-r--r--tests/auto/qtextstream/readLineStdinProcess/readLineStdinProcess.pro7
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Latin1_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Latin1_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Latin1_3.data2
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Locale_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Locale_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Locale_3.data2
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_RawUnicode_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_RawUnicode_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_RawUnicode_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_RawUnicode_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_RawUnicode_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeNetworkOrder_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeNetworkOrder_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeNetworkOrder_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeNetworkOrder_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeNetworkOrder_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeReverse_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeReverse_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeReverse_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeReverse_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeReverse_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeUTF8_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeUTF8_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeUTF8_3.data2
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Unicode_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Unicode_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Unicode_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Unicode_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QByteArray_resource_Unicode_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_RawUnicode_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_RawUnicode_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_RawUnicode_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_RawUnicode_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_RawUnicode_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeNetworkOrder_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeNetworkOrder_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeNetworkOrder_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeNetworkOrder_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeNetworkOrder_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeReverse_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeReverse_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeReverse_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeReverse_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeReverse_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Unicode_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Unicode_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Unicode_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Unicode_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QChar_resource_Unicode_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Latin1_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Latin1_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Latin1_3.data2
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Locale_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Locale_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Locale_3.data2
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_RawUnicode_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_RawUnicode_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_RawUnicode_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_RawUnicode_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_RawUnicode_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeNetworkOrder_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeNetworkOrder_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeNetworkOrder_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeNetworkOrder_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeNetworkOrder_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeReverse_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeReverse_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeReverse_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeReverse_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeReverse_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeUTF8_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeUTF8_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeUTF8_3.data2
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Unicode_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Unicode_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Unicode_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Unicode_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_QString_resource_Unicode_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_RawUnicode_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_RawUnicode_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_RawUnicode_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_RawUnicode_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_RawUnicode_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeNetworkOrder_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeNetworkOrder_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeNetworkOrder_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeNetworkOrder_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeNetworkOrder_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeReverse_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeReverse_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeReverse_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeReverse_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeReverse_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Unicode_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Unicode_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Unicode_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Unicode_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_char_resource_Unicode_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Latin1_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Latin1_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Locale_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Locale_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_RawUnicode_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_RawUnicode_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_RawUnicode_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_RawUnicode_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_RawUnicode_5.databin0 -> 32 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_RawUnicode_6.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeNetworkOrder_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeNetworkOrder_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeNetworkOrder_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeNetworkOrder_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeNetworkOrder_5.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeNetworkOrder_6.databin0 -> 36 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeReverse_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeReverse_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeReverse_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeReverse_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeReverse_5.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeReverse_6.databin0 -> 36 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeUTF8_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_UnicodeUTF8_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Unicode_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Unicode_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Unicode_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Unicode_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Unicode_5.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_double_resource_Unicode_6.databin0 -> 36 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_RawUnicode_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_RawUnicode_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_RawUnicode_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_RawUnicode_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeNetworkOrder_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeNetworkOrder_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeNetworkOrder_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeNetworkOrder_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeReverse_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeReverse_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeReverse_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeReverse_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Unicode_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Unicode_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Unicode_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_float_resource_Unicode_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Latin1_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Latin1_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Latin1_7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Latin1_8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Locale_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Locale_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Locale_7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Locale_8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_RawUnicode_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_RawUnicode_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_RawUnicode_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_RawUnicode_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_RawUnicode_8.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeNetworkOrder_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeNetworkOrder_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeNetworkOrder_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeNetworkOrder_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeNetworkOrder_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeNetworkOrder_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeNetworkOrder_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeNetworkOrder_8.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeReverse_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeReverse_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeReverse_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeReverse_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeReverse_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeReverse_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeReverse_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeReverse_8.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeUTF8_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeUTF8_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeUTF8_7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_UnicodeUTF8_8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Unicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Unicode_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Unicode_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Unicode_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_int_resource_Unicode_8.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Latin1_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Latin1_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Latin1_7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Latin1_8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Locale_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Locale_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Locale_7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Locale_8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_RawUnicode_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_RawUnicode_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_RawUnicode_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_RawUnicode_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_RawUnicode_8.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeNetworkOrder_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeNetworkOrder_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeNetworkOrder_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeNetworkOrder_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeNetworkOrder_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeNetworkOrder_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeNetworkOrder_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeNetworkOrder_8.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeReverse_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeReverse_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeReverse_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeReverse_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeReverse_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeReverse_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeReverse_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeReverse_8.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeUTF8_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeUTF8_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeUTF8_7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_UnicodeUTF8_8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Unicode_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Unicode_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Unicode_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Unicode_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_long_resource_Unicode_8.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_RawUnicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_RawUnicode_2.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_RawUnicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeNetworkOrder_1.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeNetworkOrder_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeNetworkOrder_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeNetworkOrder_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeReverse_1.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeReverse_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeReverse_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeReverse_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Unicode_1.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Unicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_short_resource_Unicode_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_RawUnicode_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeNetworkOrder_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeNetworkOrder_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeNetworkOrder_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeNetworkOrder_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeReverse_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeReverse_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeReverse_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeReverse_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_uint_resource_Unicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_RawUnicode_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeNetworkOrder_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeNetworkOrder_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeNetworkOrder_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeNetworkOrder_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeReverse_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeReverse_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeReverse_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeReverse_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ulong_resource_Unicode_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_RawUnicode_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeNetworkOrder_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeNetworkOrder_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeNetworkOrder_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeNetworkOrder_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeReverse_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeReverse_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeReverse_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeReverse_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shift_ushort_resource_Unicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource10.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource11.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource12.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource20.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource21.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/operator_shiftright_resource9.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Latin1_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Latin1_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Latin1_3.data2
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Locale_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Locale_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Locale_3.data2
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_RawUnicode_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_RawUnicode_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_RawUnicode_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_RawUnicode_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_RawUnicode_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeNetworkOrder_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeNetworkOrder_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeNetworkOrder_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeNetworkOrder_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeNetworkOrder_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeReverse_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeReverse_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeReverse_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeReverse_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeReverse_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeUTF8_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeUTF8_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeUTF8_3.data2
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Unicode_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Unicode_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Unicode_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Unicode_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QByteArray_resource_Unicode_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_RawUnicode_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_RawUnicode_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_RawUnicode_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_RawUnicode_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_RawUnicode_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeNetworkOrder_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeNetworkOrder_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeNetworkOrder_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeNetworkOrder_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeNetworkOrder_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeReverse_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeReverse_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeReverse_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeReverse_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeReverse_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Unicode_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Unicode_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Unicode_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Unicode_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QChar_resource_Unicode_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Latin1_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Latin1_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Latin1_3.data2
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Locale_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Locale_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Locale_3.data2
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_RawUnicode_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_RawUnicode_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_RawUnicode_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_RawUnicode_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_RawUnicode_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeNetworkOrder_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeNetworkOrder_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeNetworkOrder_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeNetworkOrder_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeNetworkOrder_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeReverse_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeReverse_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeReverse_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeReverse_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeReverse_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeUTF8_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeUTF8_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeUTF8_3.data2
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Unicode_0.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Unicode_1.data0
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Unicode_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Unicode_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_QString_resource_Unicode_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_RawUnicode_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_RawUnicode_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_RawUnicode_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_RawUnicode_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_RawUnicode_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeNetworkOrder_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeNetworkOrder_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeNetworkOrder_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeNetworkOrder_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeNetworkOrder_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeReverse_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeReverse_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeReverse_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeReverse_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeReverse_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Unicode_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Unicode_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Unicode_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Unicode_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_char_resource_Unicode_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Latin1_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Latin1_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Locale_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Locale_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_RawUnicode_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_RawUnicode_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_RawUnicode_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_RawUnicode_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_RawUnicode_5.databin0 -> 32 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_RawUnicode_6.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_5.databin0 -> 32 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_6.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeReverse_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeReverse_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeReverse_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeReverse_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeReverse_5.databin0 -> 32 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeReverse_6.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeUTF8_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_UnicodeUTF8_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Unicode_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Unicode_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Unicode_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Unicode_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Unicode_5.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_double_resource_Unicode_6.databin0 -> 36 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_RawUnicode_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_RawUnicode_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_RawUnicode_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_RawUnicode_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeNetworkOrder_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeNetworkOrder_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeNetworkOrder_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeNetworkOrder_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeReverse_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeReverse_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeReverse_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeReverse_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Unicode_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Unicode_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Unicode_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_float_resource_Unicode_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Latin1_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Latin1_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Latin1_7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Latin1_8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Locale_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Locale_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Locale_7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Locale_8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_RawUnicode_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_RawUnicode_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_RawUnicode_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_RawUnicode_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_RawUnicode_8.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_8.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeReverse_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeReverse_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeReverse_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeReverse_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeReverse_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeReverse_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeReverse_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeReverse_8.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeUTF8_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeUTF8_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeUTF8_7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_UnicodeUTF8_8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Unicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Unicode_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Unicode_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Unicode_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_int_resource_Unicode_8.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Latin1_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Latin1_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Latin1_7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Latin1_8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Locale_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Locale_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Locale_7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Locale_8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_RawUnicode_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_RawUnicode_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_RawUnicode_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_RawUnicode_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_RawUnicode_8.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_8.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeReverse_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeReverse_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeReverse_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeReverse_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeReverse_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeReverse_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeReverse_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeReverse_8.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeUTF8_5.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeUTF8_6.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeUTF8_7.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_UnicodeUTF8_8.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Unicode_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Unicode_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Unicode_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Unicode_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_long_resource_Unicode_8.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_RawUnicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_RawUnicode_2.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_RawUnicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeNetworkOrder_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeNetworkOrder_2.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeNetworkOrder_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeNetworkOrder_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeReverse_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeReverse_2.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeReverse_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeReverse_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Unicode_1.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Unicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_short_resource_Unicode_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_RawUnicode_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeNetworkOrder_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeNetworkOrder_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeNetworkOrder_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeNetworkOrder_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeReverse_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeReverse_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeReverse_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeReverse_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_uint_resource_Unicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_RawUnicode_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeNetworkOrder_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeNetworkOrder_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeNetworkOrder_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeNetworkOrder_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeReverse_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeReverse_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeReverse_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeReverse_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ulong_resource_Unicode_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_RawUnicode_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeNetworkOrder_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeNetworkOrder_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeNetworkOrder_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeNetworkOrder_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeReverse_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeReverse_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeReverse_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeReverse_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/big_endian/qt3_operator_shift_ushort_resource_Unicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Latin1_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Latin1_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Latin1_3.data2
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Locale_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Locale_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Locale_3.data2
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_RawUnicode_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_RawUnicode_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_RawUnicode_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_RawUnicode_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_RawUnicode_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeNetworkOrder_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeNetworkOrder_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeNetworkOrder_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeNetworkOrder_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeNetworkOrder_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeReverse_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeReverse_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeReverse_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeReverse_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeReverse_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeUTF8_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeUTF8_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeUTF8_3.data2
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Unicode_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Unicode_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Unicode_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Unicode_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QByteArray_resource_Unicode_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_RawUnicode_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_RawUnicode_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_RawUnicode_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_RawUnicode_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_RawUnicode_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeNetworkOrder_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeNetworkOrder_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeNetworkOrder_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeNetworkOrder_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeNetworkOrder_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeReverse_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeReverse_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeReverse_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeReverse_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeReverse_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Unicode_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Unicode_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Unicode_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Unicode_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QChar_resource_Unicode_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Latin1_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Latin1_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Latin1_3.data2
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Locale_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Locale_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Locale_3.data2
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_RawUnicode_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_RawUnicode_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_RawUnicode_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_RawUnicode_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_RawUnicode_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeNetworkOrder_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeNetworkOrder_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeNetworkOrder_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeNetworkOrder_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeNetworkOrder_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeReverse_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeReverse_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeReverse_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeReverse_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeReverse_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeUTF8_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeUTF8_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeUTF8_3.data2
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Unicode_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Unicode_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Unicode_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Unicode_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_QString_resource_Unicode_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_RawUnicode_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_RawUnicode_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_RawUnicode_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_RawUnicode_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_RawUnicode_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeNetworkOrder_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeNetworkOrder_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeNetworkOrder_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeNetworkOrder_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeNetworkOrder_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeReverse_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeReverse_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeReverse_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeReverse_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeReverse_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Unicode_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Unicode_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Unicode_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Unicode_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_char_resource_Unicode_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Latin1_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Latin1_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Locale_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Locale_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_RawUnicode_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_RawUnicode_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_RawUnicode_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_RawUnicode_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_RawUnicode_5.databin0 -> 32 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_RawUnicode_6.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeNetworkOrder_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeNetworkOrder_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeNetworkOrder_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeNetworkOrder_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeNetworkOrder_5.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeNetworkOrder_6.databin0 -> 36 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeReverse_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeReverse_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeReverse_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeReverse_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeReverse_5.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeReverse_6.databin0 -> 36 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeUTF8_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_UnicodeUTF8_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Unicode_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Unicode_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Unicode_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Unicode_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Unicode_5.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_double_resource_Unicode_6.databin0 -> 36 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_RawUnicode_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_RawUnicode_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_RawUnicode_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_RawUnicode_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeNetworkOrder_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeNetworkOrder_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeNetworkOrder_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeNetworkOrder_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeReverse_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeReverse_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeReverse_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeReverse_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Unicode_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Unicode_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Unicode_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_float_resource_Unicode_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Latin1_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Latin1_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Latin1_7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Latin1_8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Locale_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Locale_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Locale_7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Locale_8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_RawUnicode_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_RawUnicode_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_RawUnicode_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_RawUnicode_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_RawUnicode_8.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeNetworkOrder_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeNetworkOrder_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeNetworkOrder_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeNetworkOrder_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeNetworkOrder_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeNetworkOrder_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeNetworkOrder_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeNetworkOrder_8.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeReverse_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeReverse_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeReverse_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeReverse_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeReverse_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeReverse_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeReverse_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeReverse_8.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeUTF8_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeUTF8_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeUTF8_7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_UnicodeUTF8_8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Unicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Unicode_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Unicode_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Unicode_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_int_resource_Unicode_8.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Latin1_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Latin1_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Latin1_7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Latin1_8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Locale_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Locale_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Locale_7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Locale_8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_RawUnicode_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_RawUnicode_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_RawUnicode_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_RawUnicode_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_RawUnicode_8.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeNetworkOrder_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeNetworkOrder_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeNetworkOrder_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeNetworkOrder_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeNetworkOrder_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeNetworkOrder_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeNetworkOrder_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeNetworkOrder_8.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeReverse_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeReverse_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeReverse_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeReverse_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeReverse_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeReverse_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeReverse_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeReverse_8.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeUTF8_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeUTF8_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeUTF8_7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_UnicodeUTF8_8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Unicode_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Unicode_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Unicode_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Unicode_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_long_resource_Unicode_8.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_RawUnicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_RawUnicode_2.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_RawUnicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeNetworkOrder_1.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeNetworkOrder_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeNetworkOrder_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeNetworkOrder_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeReverse_1.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeReverse_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeReverse_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeReverse_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Unicode_1.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Unicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_short_resource_Unicode_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_RawUnicode_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeNetworkOrder_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeNetworkOrder_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeNetworkOrder_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeNetworkOrder_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeReverse_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeReverse_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeReverse_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeReverse_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_uint_resource_Unicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_RawUnicode_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeNetworkOrder_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeNetworkOrder_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeNetworkOrder_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeNetworkOrder_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeReverse_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeReverse_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeReverse_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeReverse_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ulong_resource_Unicode_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_RawUnicode_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeNetworkOrder_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeNetworkOrder_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeNetworkOrder_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeNetworkOrder_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeNetworkOrder_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeReverse_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeReverse_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeReverse_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeReverse_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeReverse_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shift_ushort_resource_Unicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource10.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource11.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource12.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource20.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource21.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/operator_shiftright_resource9.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Latin1_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Latin1_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Latin1_3.data2
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Locale_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Locale_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Locale_3.data2
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_RawUnicode_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_RawUnicode_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_RawUnicode_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_RawUnicode_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_RawUnicode_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeNetworkOrder_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeNetworkOrder_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeNetworkOrder_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeNetworkOrder_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeNetworkOrder_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeReverse_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeReverse_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeReverse_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeReverse_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeReverse_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeUTF8_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeUTF8_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeUTF8_3.data2
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Unicode_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Unicode_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Unicode_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Unicode_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QByteArray_resource_Unicode_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_RawUnicode_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_RawUnicode_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_RawUnicode_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_RawUnicode_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_RawUnicode_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeNetworkOrder_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeNetworkOrder_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeNetworkOrder_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeNetworkOrder_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeNetworkOrder_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeReverse_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeReverse_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeReverse_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeReverse_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeReverse_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Unicode_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Unicode_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Unicode_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Unicode_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QChar_resource_Unicode_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Latin1_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Latin1_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Latin1_3.data2
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Locale_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Locale_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Locale_3.data2
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_RawUnicode_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_RawUnicode_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_RawUnicode_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_RawUnicode_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_RawUnicode_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeNetworkOrder_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeNetworkOrder_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeNetworkOrder_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeNetworkOrder_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeNetworkOrder_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeReverse_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeReverse_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeReverse_2.databin0 -> 6 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeReverse_3.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeReverse_4.databin0 -> 116 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeUTF8_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeUTF8_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeUTF8_3.data2
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Unicode_0.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Unicode_1.data0
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Unicode_2.databin0 -> 8 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Unicode_3.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_QString_resource_Unicode_4.databin0 -> 118 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_RawUnicode_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_RawUnicode_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_RawUnicode_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_RawUnicode_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_RawUnicode_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeNetworkOrder_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeNetworkOrder_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeNetworkOrder_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeNetworkOrder_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeNetworkOrder_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeReverse_0.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeReverse_1.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeReverse_2.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeReverse_3.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeReverse_4.databin0 -> 2 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Unicode_0.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Unicode_1.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Unicode_2.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Unicode_3.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_char_resource_Unicode_4.databin0 -> 4 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Latin1_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Latin1_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Locale_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Locale_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_RawUnicode_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_RawUnicode_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_RawUnicode_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_RawUnicode_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_RawUnicode_5.databin0 -> 32 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_RawUnicode_6.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_5.databin0 -> 32 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeNetworkOrder_6.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeReverse_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeReverse_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeReverse_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeReverse_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeReverse_5.databin0 -> 32 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeReverse_6.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeUTF8_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_UnicodeUTF8_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Unicode_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Unicode_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Unicode_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Unicode_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Unicode_5.databin0 -> 34 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_double_resource_Unicode_6.databin0 -> 36 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_RawUnicode_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_RawUnicode_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_RawUnicode_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_RawUnicode_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeNetworkOrder_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeNetworkOrder_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeNetworkOrder_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeNetworkOrder_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeReverse_1.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeReverse_2.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeReverse_3.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeReverse_4.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Unicode_1.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Unicode_2.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Unicode_3.databin0 -> 28 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_float_resource_Unicode_4.databin0 -> 30 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Latin1_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Latin1_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Latin1_7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Latin1_8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Locale_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Locale_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Locale_7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Locale_8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_RawUnicode_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_RawUnicode_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_RawUnicode_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_RawUnicode_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_RawUnicode_8.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeNetworkOrder_8.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeReverse_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeReverse_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeReverse_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeReverse_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeReverse_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeReverse_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeReverse_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeReverse_8.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeUTF8_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeUTF8_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeUTF8_7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_UnicodeUTF8_8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Unicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Unicode_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Unicode_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Unicode_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_int_resource_Unicode_8.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Latin1_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Latin1_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Latin1_7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Latin1_8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Locale_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Locale_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Locale_7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Locale_8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_RawUnicode_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_RawUnicode_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_RawUnicode_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_RawUnicode_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_RawUnicode_8.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeNetworkOrder_8.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeReverse_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeReverse_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeReverse_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeReverse_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeReverse_5.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeReverse_6.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeReverse_7.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeReverse_8.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeUTF8_5.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeUTF8_6.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeUTF8_7.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_UnicodeUTF8_8.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Unicode_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Unicode_5.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Unicode_6.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Unicode_7.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_long_resource_Unicode_8.databin0 -> 26 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_RawUnicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_RawUnicode_2.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_RawUnicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeNetworkOrder_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeNetworkOrder_2.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeNetworkOrder_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeNetworkOrder_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeReverse_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeReverse_2.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeReverse_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeReverse_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Unicode_1.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Unicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_short_resource_Unicode_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_RawUnicode_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeNetworkOrder_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeNetworkOrder_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeNetworkOrder_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeNetworkOrder_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeReverse_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeReverse_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeReverse_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeReverse_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_uint_resource_Unicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_RawUnicode_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeNetworkOrder_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeNetworkOrder_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeNetworkOrder_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeNetworkOrder_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeReverse_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeReverse_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeReverse_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeReverse_4.databin0 -> 22 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ulong_resource_Unicode_4.databin0 -> 24 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Latin1_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Latin1_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Latin1_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Latin1_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Latin1_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Locale_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Locale_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Locale_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Locale_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Locale_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_RawUnicode_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_RawUnicode_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_RawUnicode_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_RawUnicode_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_RawUnicode_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeNetworkOrder_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeNetworkOrder_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeNetworkOrder_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeNetworkOrder_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeNetworkOrder_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeReverse_0.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeReverse_1.databin0 -> 14 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeReverse_2.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeReverse_3.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeReverse_4.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeUTF8_0.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeUTF8_1.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeUTF8_2.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeUTF8_3.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_UnicodeUTF8_4.data1
-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Unicode_0.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Unicode_1.databin0 -> 16 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Unicode_2.databin0 -> 18 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Unicode_3.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/resources/little_endian/qt3_operator_shift_ushort_resource_Unicode_4.databin0 -> 20 bytes-rw-r--r--tests/auto/qtextstream/rfc3261.txt15067
-rw-r--r--tests/auto/qtextstream/shift-jis.txt764
-rw-r--r--tests/auto/qtextstream/stdinProcess/main.cpp55
-rw-r--r--tests/auto/qtextstream/stdinProcess/stdinProcess.pro7
-rw-r--r--tests/auto/qtextstream/task113817.txt1095
-rw-r--r--tests/auto/qtextstream/test/test.pro31
-rw-r--r--tests/auto/qtextstream/tst_qtextstream.cpp4294
-rw-r--r--tests/auto/qtexttable/.gitignore1
-rw-r--r--tests/auto/qtexttable/qtexttable.pro5
-rw-r--r--tests/auto/qtexttable/tst_qtexttable.cpp935
-rw-r--r--tests/auto/qthread/.gitignore1
-rw-r--r--tests/auto/qthread/qthread.pro5
-rw-r--r--tests/auto/qthread/tst_qthread.cpp906
-rw-r--r--tests/auto/qthreadonce/.gitignore1
-rw-r--r--tests/auto/qthreadonce/qthreadonce.cpp121
-rw-r--r--tests/auto/qthreadonce/qthreadonce.h114
-rw-r--r--tests/auto/qthreadonce/qthreadonce.pro12
-rw-r--r--tests/auto/qthreadonce/tst_qthreadonce.cpp234
-rw-r--r--tests/auto/qthreadpool/.gitignore1
-rw-r--r--tests/auto/qthreadpool/qthreadpool.pro3
-rw-r--r--tests/auto/qthreadpool/tst_qthreadpool.cpp841
-rw-r--r--tests/auto/qthreadstorage/.gitignore1
-rw-r--r--tests/auto/qthreadstorage/qthreadstorage.pro5
-rw-r--r--tests/auto/qthreadstorage/tst_qthreadstorage.cpp297
-rw-r--r--tests/auto/qtime/.gitignore1
-rw-r--r--tests/auto/qtime/qtime.pro6
-rw-r--r--tests/auto/qtime/tst_qtime.cpp703
-rw-r--r--tests/auto/qtimeline/.gitignore1
-rw-r--r--tests/auto/qtimeline/qtimeline.pro5
-rw-r--r--tests/auto/qtimeline/tst_qtimeline.cpp709
-rw-r--r--tests/auto/qtimer/.gitignore1
-rw-r--r--tests/auto/qtimer/qtimer.pro5
-rw-r--r--tests/auto/qtimer/tst_qtimer.cpp420
-rw-r--r--tests/auto/qtmd5/.gitignore1
-rw-r--r--tests/auto/qtmd5/qtmd5.pro14
-rw-r--r--tests/auto/qtmd5/tst_qtmd5.cpp84
-rw-r--r--tests/auto/qtokenautomaton/.gitignore4
-rwxr-xr-xtests/auto/qtokenautomaton/generateTokenizers.sh9
-rw-r--r--tests/auto/qtokenautomaton/qtokenautomaton.pro17
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/basic/basic.cpp480
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/basic/basic.h101
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/basic/basic.xml25
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/basicNamespace/basicNamespace.cpp386
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/basicNamespace/basicNamespace.h99
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/basicNamespace/basicNamespace.xml23
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/boilerplate/boilerplate.cpp386
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/boilerplate/boilerplate.h98
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/boilerplate/boilerplate.xml67
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/noNamespace/noNamespace.cpp449
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/noNamespace/noNamespace.h99
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/noNamespace/noNamespace.xml24
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/noToString/noToString.cpp251
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/noToString/noToString.h98
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/noToString/noToString.xml23
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/withNamespace/withNamespace.cpp451
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/withNamespace/withNamespace.h102
-rw-r--r--tests/auto/qtokenautomaton/tokenizers/withNamespace/withNamespace.xml25
-rw-r--r--tests/auto/qtokenautomaton/tst_qtokenautomaton.cpp134
-rw-r--r--tests/auto/qtoolbar/.gitignore1
-rw-r--r--tests/auto/qtoolbar/qtoolbar.pro5
-rw-r--r--tests/auto/qtoolbar/tst_qtoolbar.cpp1034
-rw-r--r--tests/auto/qtoolbox/.gitignore1
-rw-r--r--tests/auto/qtoolbox/qtoolbox.pro5
-rw-r--r--tests/auto/qtoolbox/tst_qtoolbox.cpp338
-rw-r--r--tests/auto/qtoolbutton/.gitignore1
-rw-r--r--tests/auto/qtoolbutton/qtoolbutton.pro11
-rw-r--r--tests/auto/qtoolbutton/tst_qtoolbutton.cpp189
-rw-r--r--tests/auto/qtooltip/.gitignore1
-rw-r--r--tests/auto/qtooltip/qtooltip.pro2
-rw-r--r--tests/auto/qtooltip/tst_qtooltip.cpp159
-rw-r--r--tests/auto/qtransform/.gitignore1
-rw-r--r--tests/auto/qtransform/qtransform.pro7
-rw-r--r--tests/auto/qtransform/tst_qtransform.cpp777
-rw-r--r--tests/auto/qtransformedscreen/.gitignore1
-rw-r--r--tests/auto/qtransformedscreen/qtransformedscreen.pro7
-rw-r--r--tests/auto/qtransformedscreen/tst_qtransformedscreen.cpp194
-rw-r--r--tests/auto/qtranslator/.gitignore1
-rw-r--r--tests/auto/qtranslator/hellotr_la.qmbin0 -> 230 bytes-rw-r--r--tests/auto/qtranslator/hellotr_la.ts16
-rw-r--r--tests/auto/qtranslator/msgfmt_from_po.qmbin0 -> 176988 bytes-rw-r--r--tests/auto/qtranslator/qtranslator.pro11
-rw-r--r--tests/auto/qtranslator/tst_qtranslator.cpp241
-rw-r--r--tests/auto/qtreeview/.gitignore1
-rw-r--r--tests/auto/qtreeview/qtreeview.pro4
-rw-r--r--tests/auto/qtreeview/tst_qtreeview.cpp3259
-rw-r--r--tests/auto/qtreewidget/.gitignore1
-rw-r--r--tests/auto/qtreewidget/qtreewidget.pro4
-rw-r--r--tests/auto/qtreewidget/tst_qtreewidget.cpp3037
-rw-r--r--tests/auto/qtreewidgetitemiterator/.gitignore1
-rw-r--r--tests/auto/qtreewidgetitemiterator/qtreewidgetitemiterator.pro4
-rw-r--r--tests/auto/qtreewidgetitemiterator/tst_qtreewidgetitemiterator.cpp1251
-rw-r--r--tests/auto/qtwidgets/.gitignore1
-rw-r--r--tests/auto/qtwidgets/advanced.ui319
-rw-r--r--tests/auto/qtwidgets/icons/big.pngbin0 -> 1323 bytes-rw-r--r--tests/auto/qtwidgets/icons/folder.pngbin0 -> 4069 bytes-rw-r--r--tests/auto/qtwidgets/icons/icon.bmpbin0 -> 246 bytes-rw-r--r--tests/auto/qtwidgets/icons/icon.pngbin0 -> 344 bytes-rw-r--r--tests/auto/qtwidgets/mainwindow.cpp314
-rw-r--r--tests/auto/qtwidgets/mainwindow.h80
-rw-r--r--tests/auto/qtwidgets/qtstyles.qrc8
-rw-r--r--tests/auto/qtwidgets/qtwidgets.pro9
-rw-r--r--tests/auto/qtwidgets/standard.ui1207
-rw-r--r--tests/auto/qtwidgets/system.ui658
-rw-r--r--tests/auto/qtwidgets/tst_qtwidgets.cpp96
-rw-r--r--tests/auto/qudpsocket/.gitignore2
-rw-r--r--tests/auto/qudpsocket/clientserver/clientserver.pro8
-rw-r--r--tests/auto/qudpsocket/clientserver/main.cpp170
-rw-r--r--tests/auto/qudpsocket/qudpsocket.pro5
-rw-r--r--tests/auto/qudpsocket/test/test.pro26
-rw-r--r--tests/auto/qudpsocket/tst_qudpsocket.cpp787
-rw-r--r--tests/auto/qudpsocket/udpServer/main.cpp90
-rw-r--r--tests/auto/qudpsocket/udpServer/udpServer.pro6
-rw-r--r--tests/auto/qundogroup/.gitignore1
-rw-r--r--tests/auto/qundogroup/qundogroup.pro5
-rw-r--r--tests/auto/qundogroup/tst_qundogroup.cpp626
-rw-r--r--tests/auto/qundostack/.gitignore1
-rw-r--r--tests/auto/qundostack/qundostack.pro5
-rw-r--r--tests/auto/qundostack/tst_qundostack.cpp2940
-rw-r--r--tests/auto/qurl/.gitignore1
-rw-r--r--tests/auto/qurl/idna-test.c158
-rw-r--r--tests/auto/qurl/qurl.pro6
-rw-r--r--tests/auto/qurl/tst_qurl.cpp3672
-rw-r--r--tests/auto/quuid/.gitignore1
-rw-r--r--tests/auto/quuid/quuid.pro6
-rw-r--r--tests/auto/quuid/tst_quuid.cpp174
-rw-r--r--tests/auto/qvariant/.gitignore1
-rw-r--r--tests/auto/qvariant/qvariant.pro6
-rw-r--r--tests/auto/qvariant/tst_qvariant.cpp2917
-rw-r--r--tests/auto/qvarlengtharray/.gitignore1
-rw-r--r--tests/auto/qvarlengtharray/qvarlengtharray.pro5
-rw-r--r--tests/auto/qvarlengtharray/tst_qvarlengtharray.cpp252
-rw-r--r--tests/auto/qvector/.gitignore1
-rw-r--r--tests/auto/qvector/qvector.pro6
-rw-r--r--tests/auto/qvector/tst_qvector.cpp224
-rw-r--r--tests/auto/qwaitcondition/.gitignore1
-rw-r--r--tests/auto/qwaitcondition/qwaitcondition.pro5
-rw-r--r--tests/auto/qwaitcondition/tst_qwaitcondition.cpp846
-rw-r--r--tests/auto/qwebframe/.gitignore1
-rw-r--r--tests/auto/qwebframe/dummy.cpp44
-rw-r--r--tests/auto/qwebframe/qwebframe.pro13
-rw-r--r--tests/auto/qwebpage/.gitignore1
-rw-r--r--tests/auto/qwebpage/dummy.cpp44
-rw-r--r--tests/auto/qwebpage/qwebpage.pro14
-rw-r--r--tests/auto/qwidget/.gitignore1
-rw-r--r--tests/auto/qwidget/geometry-fullscreen.datbin0 -> 46 bytes-rw-r--r--tests/auto/qwidget/geometry-maximized.datbin0 -> 46 bytes-rw-r--r--tests/auto/qwidget/geometry.datbin0 -> 46 bytes-rw-r--r--tests/auto/qwidget/qwidget.pro17
-rw-r--r--tests/auto/qwidget/qwidget.qrc7
-rw-r--r--tests/auto/qwidget/testdata/paintEvent/res_Motif_data0.qsnapbin0 -> 722 bytes-rw-r--r--tests/auto/qwidget/testdata/paintEvent/res_Motif_data1.qsnapbin0 -> 1509 bytes-rw-r--r--tests/auto/qwidget/testdata/paintEvent/res_Motif_data2.qsnapbin0 -> 7965 bytes-rw-r--r--tests/auto/qwidget/testdata/paintEvent/res_Motif_data3.qsnapbin0 -> 8265 bytes-rw-r--r--tests/auto/qwidget/testdata/paintEvent/res_Windows_data0.qsnapbin0 -> 710 bytes-rw-r--r--tests/auto/qwidget/testdata/paintEvent/res_Windows_data1.qsnapbin0 -> 1497 bytes-rw-r--r--tests/auto/qwidget/testdata/paintEvent/res_Windows_data2.qsnapbin0 -> 7953 bytes-rw-r--r--tests/auto/qwidget/testdata/paintEvent/res_Windows_data3.qsnapbin0 -> 8253 bytes-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp8731
-rw-r--r--tests/auto/qwidget/tst_qwidget_mac_helpers.h47
-rw-r--r--tests/auto/qwidget/tst_qwidget_mac_helpers.mm33
-rw-r--r--tests/auto/qwidget_window/.gitignore1
-rw-r--r--tests/auto/qwidget_window/qwidget_window.pro4
-rw-r--r--tests/auto/qwidget_window/tst_qwidget_window.cpp304
-rw-r--r--tests/auto/qwidgetaction/.gitignore1
-rw-r--r--tests/auto/qwidgetaction/qwidgetaction.pro4
-rw-r--r--tests/auto/qwidgetaction/tst_qwidgetaction.cpp401
-rw-r--r--tests/auto/qwindowsurface/.gitignore1
-rw-r--r--tests/auto/qwindowsurface/qwindowsurface.pro5
-rw-r--r--tests/auto/qwindowsurface/tst_qwindowsurface.cpp269
-rw-r--r--tests/auto/qwineventnotifier/.gitignore1
-rw-r--r--tests/auto/qwineventnotifier/qwineventnotifier.pro6
-rw-r--r--tests/auto/qwineventnotifier/tst_qwineventnotifier.cpp149
-rw-r--r--tests/auto/qwizard/.gitignore1
-rw-r--r--tests/auto/qwizard/images/background.pngbin0 -> 22932 bytes-rw-r--r--tests/auto/qwizard/images/banner.pngbin0 -> 4230 bytes-rw-r--r--tests/auto/qwizard/images/logo.pngbin0 -> 1661 bytes-rw-r--r--tests/auto/qwizard/images/watermark.pngbin0 -> 15788 bytes-rw-r--r--tests/auto/qwizard/qwizard.pro9
-rw-r--r--tests/auto/qwizard/qwizard.qrc8
-rw-r--r--tests/auto/qwizard/tst_qwizard.cpp2521
-rw-r--r--tests/auto/qwmatrix/.gitignore1
-rw-r--r--tests/auto/qwmatrix/qwmatrix.pro6
-rw-r--r--tests/auto/qwmatrix/tst_qwmatrix.cpp449
-rw-r--r--tests/auto/qworkspace/.gitignore1
-rw-r--r--tests/auto/qworkspace/qworkspace.pro6
-rw-r--r--tests/auto/qworkspace/tst_qworkspace.cpp734
-rw-r--r--tests/auto/qwritelocker/.gitignore1
-rw-r--r--tests/auto/qwritelocker/qwritelocker.pro5
-rw-r--r--tests/auto/qwritelocker/tst_qwritelocker.cpp235
-rw-r--r--tests/auto/qwsembedwidget/.gitignore1
-rw-r--r--tests/auto/qwsembedwidget/qwsembedwidget.pro5
-rw-r--r--tests/auto/qwsembedwidget/tst_qwsembedwidget.cpp106
-rw-r--r--tests/auto/qwsinputmethod/.gitignore1
-rw-r--r--tests/auto/qwsinputmethod/qwsinputmethod.pro5
-rw-r--r--tests/auto/qwsinputmethod/tst_qwsinputmethod.cpp92
-rw-r--r--tests/auto/qwswindowsystem/.gitignore1
-rw-r--r--tests/auto/qwswindowsystem/qwswindowsystem.pro5
-rw-r--r--tests/auto/qwswindowsystem/tst_qwswindowsystem.cpp653
-rw-r--r--tests/auto/qx11info/.gitignore1
-rw-r--r--tests/auto/qx11info/qx11info.pro4
-rw-r--r--tests/auto/qx11info/tst_qx11info.cpp122
-rw-r--r--tests/auto/qxml/.gitignore1
-rw-r--r--tests/auto/qxml/0x010D.xml1
-rw-r--r--tests/auto/qxml/qxml.pro12
-rw-r--r--tests/auto/qxml/tst_qxml.cpp217
-rw-r--r--tests/auto/qxmlformatter/.gitignore1
-rw-r--r--tests/auto/qxmlformatter/baselines/.gitattributes1
-rw-r--r--tests/auto/qxmlformatter/baselines/K2-DirectConElemContent-46.xml1
-rw-r--r--tests/auto/qxmlformatter/baselines/adjacentNodes.xml16
-rw-r--r--tests/auto/qxmlformatter/baselines/classExample.xml5
-rw-r--r--tests/auto/qxmlformatter/baselines/documentElementWithWS.xml1
-rw-r--r--tests/auto/qxmlformatter/baselines/documentNodes.xml3
-rw-r--r--tests/auto/qxmlformatter/baselines/elementsWithWS.xml8
-rw-r--r--tests/auto/qxmlformatter/baselines/emptySequence.xml1
-rw-r--r--tests/auto/qxmlformatter/baselines/indentedAdjacentNodes.xml16
-rw-r--r--tests/auto/qxmlformatter/baselines/indentedMixedContent.xml20
-rw-r--r--tests/auto/qxmlformatter/baselines/mixedContent.xml17
-rw-r--r--tests/auto/qxmlformatter/baselines/mixedTopLevelContent.xml1
-rw-r--r--tests/auto/qxmlformatter/baselines/nodesAndWhitespaceAtomics.xml4
-rw-r--r--tests/auto/qxmlformatter/baselines/onlyDocumentNode.xml1
-rw-r--r--tests/auto/qxmlformatter/baselines/prolog.xml17
-rw-r--r--tests/auto/qxmlformatter/baselines/simpleDocument.xml3
-rw-r--r--tests/auto/qxmlformatter/baselines/singleElement.xml1
-rw-r--r--tests/auto/qxmlformatter/baselines/singleTextNode.xml1
-rw-r--r--tests/auto/qxmlformatter/baselines/textNodeAtomicValue.xml1
-rw-r--r--tests/auto/qxmlformatter/baselines/threeAtomics.xml1
-rw-r--r--tests/auto/qxmlformatter/input/K2-DirectConElemContent-46.xq1
-rw-r--r--tests/auto/qxmlformatter/input/adjacentNodes.xml16
-rw-r--r--tests/auto/qxmlformatter/input/adjacentNodes.xq1
-rw-r--r--tests/auto/qxmlformatter/input/classExample.xml1
-rw-r--r--tests/auto/qxmlformatter/input/classExample.xq1
-rw-r--r--tests/auto/qxmlformatter/input/documentElementWithWS.xml2
-rw-r--r--tests/auto/qxmlformatter/input/documentElementWithWS.xq1
-rw-r--r--tests/auto/qxmlformatter/input/documentNodes.xq7
-rw-r--r--tests/auto/qxmlformatter/input/elementsWithWS.xml12
-rw-r--r--tests/auto/qxmlformatter/input/elementsWithWS.xq1
-rw-r--r--tests/auto/qxmlformatter/input/emptySequence.xq2
-rw-r--r--tests/auto/qxmlformatter/input/indentedAdjacentNodes.xml16
-rw-r--r--tests/auto/qxmlformatter/input/indentedAdjacentNodes.xq1
-rw-r--r--tests/auto/qxmlformatter/input/indentedMixedContent.xml16
-rw-r--r--tests/auto/qxmlformatter/input/indentedMixedContent.xq1
-rw-r--r--tests/auto/qxmlformatter/input/mixedContent.xml1
-rw-r--r--tests/auto/qxmlformatter/input/mixedContent.xq1
-rw-r--r--tests/auto/qxmlformatter/input/mixedTopLevelContent.xq16
-rw-r--r--tests/auto/qxmlformatter/input/nodesAndWhitespaceAtomics.xq13
-rw-r--r--tests/auto/qxmlformatter/input/onlyDocumentNode.xq1
-rw-r--r--tests/auto/qxmlformatter/input/prolog.xml17
-rw-r--r--tests/auto/qxmlformatter/input/prolog.xq1
-rw-r--r--tests/auto/qxmlformatter/input/simpleDocument.xml4
-rw-r--r--tests/auto/qxmlformatter/input/simpleDocument.xq1
-rw-r--r--tests/auto/qxmlformatter/input/singleElement.xml1
-rw-r--r--tests/auto/qxmlformatter/input/singleElement.xq1
-rw-r--r--tests/auto/qxmlformatter/input/singleTextNode.xq1
-rw-r--r--tests/auto/qxmlformatter/input/textNodeAtomicValue.xq1
-rw-r--r--tests/auto/qxmlformatter/input/threeAtomics.xq1
-rw-r--r--tests/auto/qxmlformatter/qxmlformatter.pro10
-rw-r--r--tests/auto/qxmlformatter/tst_qxmlformatter.cpp205
-rw-r--r--tests/auto/qxmlinputsource/.gitignore1
-rw-r--r--tests/auto/qxmlinputsource/qxmlinputsource.pro6
-rw-r--r--tests/auto/qxmlinputsource/tst_qxmlinputsource.cpp212
-rw-r--r--tests/auto/qxmlitem/.gitignore1
-rw-r--r--tests/auto/qxmlitem/qxmlitem.pro4
-rw-r--r--tests/auto/qxmlitem/tst_qxmlitem.cpp373
-rw-r--r--tests/auto/qxmlname/.gitignore1
-rw-r--r--tests/auto/qxmlname/qxmlname.pro4
-rw-r--r--tests/auto/qxmlname/tst_qxmlname.cpp565
-rw-r--r--tests/auto/qxmlnamepool/.gitignore1
-rw-r--r--tests/auto/qxmlnamepool/qxmlnamepool.pro4
-rw-r--r--tests/auto/qxmlnamepool/tst_qxmlnamepool.cpp90
-rw-r--r--tests/auto/qxmlnodemodelindex/.gitignore1
-rw-r--r--tests/auto/qxmlnodemodelindex/qxmlnodemodelindex.pro4
-rw-r--r--tests/auto/qxmlnodemodelindex/tst_qxmlnodemodelindex.cpp197
-rw-r--r--tests/auto/qxmlquery/.gitignore1
-rw-r--r--tests/auto/qxmlquery/MessageSilencer.h84
-rw-r--r--tests/auto/qxmlquery/MessageValidator.cpp102
-rw-r--r--tests/auto/qxmlquery/MessageValidator.h83
-rw-r--r--tests/auto/qxmlquery/NetworkOverrider.h98
-rw-r--r--tests/auto/qxmlquery/PushBaseliner.h149
-rw-r--r--tests/auto/qxmlquery/TestFundament.cpp91
-rw-r--r--tests/auto/qxmlquery/TestFundament.h67
-rw-r--r--tests/auto/qxmlquery/data/notWellformed.xml1
-rw-r--r--tests/auto/qxmlquery/data/oneElement.xml1
-rw-r--r--tests/auto/qxmlquery/input.qrc9
-rw-r--r--tests/auto/qxmlquery/input.xml2
-rw-r--r--tests/auto/qxmlquery/pushBaselines/allAtomics.ref45
-rw-r--r--tests/auto/qxmlquery/pushBaselines/concat.ref3
-rw-r--r--tests/auto/qxmlquery/pushBaselines/emptySequence.ref2
-rw-r--r--tests/auto/qxmlquery/pushBaselines/errorFunction.ref1
-rw-r--r--tests/auto/qxmlquery/pushBaselines/nodeSequence.ref81
-rw-r--r--tests/auto/qxmlquery/pushBaselines/oneElement.ref5
-rw-r--r--tests/auto/qxmlquery/pushBaselines/onePlusOne.ref3
-rw-r--r--tests/auto/qxmlquery/pushBaselines/onlyDocumentNode.ref4
-rw-r--r--tests/auto/qxmlquery/pushBaselines/openDocument.ref22
-rw-r--r--tests/auto/qxmlquery/qxmlquery.pro23
-rw-r--r--tests/auto/qxmlquery/tst_qxmlquery.cpp3230
-rw-r--r--tests/auto/qxmlresultitems/.gitignore1
-rw-r--r--tests/auto/qxmlresultitems/qxmlresultitems.pro4
-rw-r--r--tests/auto/qxmlresultitems/tst_qxmlresultitems.cpp240
-rw-r--r--tests/auto/qxmlserializer/.gitignore1
-rw-r--r--tests/auto/qxmlserializer/qxmlserializer.pro4
-rw-r--r--tests/auto/qxmlserializer/tst_qxmlserializer.cpp198
-rw-r--r--tests/auto/qxmlsimplereader/.gitattributes8
-rw-r--r--tests/auto/qxmlsimplereader/.gitignore1
-rw-r--r--tests/auto/qxmlsimplereader/encodings/doc_euc-jp.xml78
-rw-r--r--tests/auto/qxmlsimplereader/encodings/doc_iso-2022-jp.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/encodings/doc_little-endian.xmlbin0 -> 3186 bytes-rw-r--r--tests/auto/qxmlsimplereader/encodings/doc_utf-16.xmlbin0 -> 3186 bytes-rw-r--r--tests/auto/qxmlsimplereader/encodings/doc_utf-8.xml77
-rwxr-xr-xtests/auto/qxmlsimplereader/generate_ref_files.sh3
-rw-r--r--tests/auto/qxmlsimplereader/parser/main.cpp122
-rw-r--r--tests/auto/qxmlsimplereader/parser/parser.cpp455
-rw-r--r--tests/auto/qxmlsimplereader/parser/parser.h64
-rw-r--r--tests/auto/qxmlsimplereader/parser/parser.pro15
-rw-r--r--tests/auto/qxmlsimplereader/qxmlsimplereader.pro19
-rw-r--r--tests/auto/qxmlsimplereader/tst_qxmlsimplereader.cpp767
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/001.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/001.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/002.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/002.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/003.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/003.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/004.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/004.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/005.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/005.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/006.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/006.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/007.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/007.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/008.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/008.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/009.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/009.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/010.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/010.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/011.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/011.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/012.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/012.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/013.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/013.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/014.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/014.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/015.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/015.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/016.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/016.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/017.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/017.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/018.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/018.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/019.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/019.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/020.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/020.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/021.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/021.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/022.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/022.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/023.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/023.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/024.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/024.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/025.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/025.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/026.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/026.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/027.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/027.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/028.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/028.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/029.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/029.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/030.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/030.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/031.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/031.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/032.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/032.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/033.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/033.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/034.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/034.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/035.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/035.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/036.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/036.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/037.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/037.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/038.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/038.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/039.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/039.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/040.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/040.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/041.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/041.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/042.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/042.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/043.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/043.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/044.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/044.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/045.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/045.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/046.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/046.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/047.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/047.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/048.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/048.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/049.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/049.xml.ref14
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/050.xml0
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/050.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/051.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/051.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/052.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/052.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/053.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/053.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/054.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/054.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/055.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/055.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/056.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/056.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/057.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/057.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/058.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/058.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/059.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/059.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/060.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/060.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/061.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/061.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/062.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/062.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/063.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/063.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/064.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/064.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/065.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/065.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/066.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/066.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/067.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/067.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/068.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/068.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/069.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/069.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/070.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/070.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/071.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/071.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/072.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/072.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/073.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/073.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/074.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/074.xml.ref14
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/075.xml7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/075.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/076.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/076.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/077.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/077.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/078.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/078.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/079.xml8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/079.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/080.xml8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/080.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/081.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/081.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/082.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/082.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/083.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/083.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/084.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/084.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/085.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/085.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/086.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/086.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/087.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/087.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/088.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/088.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/089.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/089.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/090.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/090.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/091.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/091.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/092.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/092.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/093.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/093.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/094.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/094.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/095.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/095.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/096.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/096.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/097.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/097.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/098.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/098.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/099.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/099.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/100.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/100.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/101.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/101.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/102.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/102.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/103.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/103.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/104.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/104.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/105.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/105.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/106.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/106.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/107.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/107.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/108.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/108.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/109.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/109.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/110.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/110.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/111.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/111.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/112.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/112.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/113.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/113.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/114.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/114.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/115.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/115.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/116.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/116.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/117.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/117.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/118.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/118.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/119.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/119.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/120.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/120.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/121.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/121.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/122.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/122.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/123.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/123.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/124.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/124.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/125.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/125.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/126.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/126.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/127.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/127.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/128.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/128.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/129.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/129.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/130.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/130.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/131.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/131.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/132.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/132.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/133.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/133.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/134.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/134.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/135.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/135.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/136.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/136.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/137.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/137.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/138.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/138.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/139.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/139.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/140.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/140.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/141.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/141.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/142.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/142.xml.refbin0 -> 309 bytes-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/143.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/143.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/144.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/144.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/145.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/145.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/146.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/146.xml.refbin0 -> 309 bytes-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/147.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/147.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/148.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/148.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/149.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/149.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/150.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/150.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/151.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/151.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/152.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/152.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/153.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/153.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/154.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/154.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/155.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/155.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/156.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/156.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/157.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/157.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/158.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/158.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/159.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/159.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/160.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/160.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/161.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/161.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/162.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/162.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/163.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/163.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/164.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/164.xml.ref5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/165.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/165.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/166.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/166.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/167.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/167.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/168.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/168.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/169.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/169.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/170.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/170.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/171.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/171.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/172.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/172.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/173.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/173.xml.ref3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/174.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/174.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/175.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/175.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/176.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/176.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/177.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/177.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/178.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/178.xml.ref6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/179.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/179.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/180.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/180.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/181.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/181.xml.ref11
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/182.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/182.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/183.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/183.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/184.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/184.xml.ref4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/185.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/185.xml3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/185.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/186.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/186.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/not-wf/sa/null.ent0
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/001.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/001.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/001.xml.ref10
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/002.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/002.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/002.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/003.ent0
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/003.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/003.xml.ref10
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/004.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/004.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/004.xml.ref10
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/005.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/005.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/005.xml.ref10
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/006.ent4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/006.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/006.xml.ref10
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/007.entbin0 -> 4 bytes-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/007.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/007.xml.ref11
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/008.entbin0 -> 54 bytes-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/008.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/008.xml.ref11
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/009.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/009.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/009.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/010.ent0
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/010.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/010.xml.ref10
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/011.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/011.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/011.xml.ref10
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/012.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/012.xml9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/012.xml.ref14
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/013.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/013.xml10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/013.xml.ref12
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/014.entbin0 -> 12 bytes-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/014.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/014.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/undef_entity_1.xml13
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/undef_entity_1.xml.ref47
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/undef_entity_2.xml14
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/undef_entity_2.xml.ref47
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/undef_entity_3.xml9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/undef_entity_3.xml.ref16
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/001.ent0
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/001.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/001.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/002.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/002.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/002.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/003-1.ent3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/003-2.ent0
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/003.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/003.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/004-1.ent4
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/004-2.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/004.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/004.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/005-1.ent3
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/005-2.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/005.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/005.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/006.ent2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/006.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/006.xml.ref8
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/007.ent2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/007.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/007.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/008.ent2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/008.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/008.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/009.ent2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/009.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/009.xml.ref8
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/010.ent2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/010.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/010.xml.ref8
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/011.ent2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/011.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/011.xml.ref10
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/012.ent3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/012.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/012.xml.ref10
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/013.ent4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/013.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/013.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/014.ent4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/014.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/014.xml.ref8
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/015.ent5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/015.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/015.xml.ref8
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/016.ent4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/016.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/016.xml.ref8
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/017.ent3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/017.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/017.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/018.ent3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/018.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/018.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/019.ent3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/019.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/019.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/020.ent3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/020.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/020.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/021.ent3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/021.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/021.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/022.ent3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/022.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/022.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/023.ent5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/023.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/023.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/024.ent4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/024.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/024.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/025.ent5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/025.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/025.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/026.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/026.xml7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/026.xml.ref12
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/027.ent2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/027.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/027.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/028.ent2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/028.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/028.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/029.ent3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/029.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/029.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/030.ent3
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/030.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/030.xml.ref7
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/031-1.ent3
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/not-sa/031-2.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/031.xml2
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/not-sa/031.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/001.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/001.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/002.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/002.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/003.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/003.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/004.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/004.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/005.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/005.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/006.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/006.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/007.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/007.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/008.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/008.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/009.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/009.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/010.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/010.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/011.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/011.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/012.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/012.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/013.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/013.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/014.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/014.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/015.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/015.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/016.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/016.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/017.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/017.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/018.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/018.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/019.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/019.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/020.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/020.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/021.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/021.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/022.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/022.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/023.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/023.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/024.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/024.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/025.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/025.xml.ref11
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/026.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/026.xml.ref11
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/027.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/027.xml.ref11
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/028.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/028.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/029.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/029.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/030.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/030.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/031.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/031.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/032.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/032.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/033.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/033.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/034.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/034.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/035.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/035.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/036.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/036.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/037.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/037.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/038.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/038.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/039.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/039.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/040.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/040.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/041.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/041.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/042.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/042.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/043.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/043.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/044.xml10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/044.xml.ref20
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/045.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/045.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/046.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/046.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/047.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/047.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/048.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/048.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/049.xmlbin0 -> 124 bytes-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/049.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/050.xmlbin0 -> 132 bytes-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/050.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/051.xmlbin0 -> 140 bytes-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/051.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/052.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/052.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/053.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/053.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/054.xml10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/054.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/055.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/055.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/056.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/056.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/057.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/057.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/058.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/058.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/059.xml10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/059.xml.ref20
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/060.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/060.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/061.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/061.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/062.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/062.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/063.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/063.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/064.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/064.xml.refbin0 -> 312 bytes-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/065.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/065.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/066.xml7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/066.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/067.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/067.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/068.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/068.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/069.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/069.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/070.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/070.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/071.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/071.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/072.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/072.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/073.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/073.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/074.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/074.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/075.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/075.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/076.xml7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/076.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/077.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/077.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/078.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/078.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/079.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/079.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/080.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/080.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/081.xml7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/081.xml.ref15
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/082.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/082.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/083.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/083.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/084.xml1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/084.xml.ref7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/085.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/085.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/086.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/086.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/087.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/087.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/088.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/088.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/089.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/089.xml.bak5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/089.xml.refbin0 -> 381 bytes-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/090.xml7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/090.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/091.xml7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/091.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/092.xml10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/092.xml.ref17
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/093.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/093.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/094.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/094.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/095.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/095.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/096.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/096.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/097.ent1
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/097.xml8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/097.xml.ref12
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/098.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/098.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/099.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/099.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/100.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/100.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/101.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/101.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/102.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/102.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/103.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/103.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/104.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/104.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/105.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/105.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/106.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/106.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/107.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/107.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/108.xml7
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/108.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/109.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/109.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/110.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/110.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/111.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/111.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/112.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/112.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/113.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/113.xml.ref8
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/114.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/114.xml.ref11
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/115.xml6
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/115.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/116.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/116.xml.ref10
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/117.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/117.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/118.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/118.xml.ref9
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/119.xml4
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/sa/119.xml.ref8
-rw-r--r--tests/auto/qxmlstream/.gitattributes10
-rw-r--r--tests/auto/qxmlstream/.gitignore1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/matrix.html4597
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/CVS/Entries17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/changes.html384
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/CVS/Entries46
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E14.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E14.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E15a.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E15b.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E15c.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E15d.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E15e.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E15f.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E15g.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E15h.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E15i.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E15j.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E15k.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E15l.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E18-ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E18.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E19.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E19.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E20.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E22.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E24.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E27.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E29.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E2a.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E2b.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E34.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E36.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E36.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E38.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E38.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E41.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E48.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E50.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E55.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E57.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E60.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E60.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E61.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E9a.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/E9b.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/errata2e.xml222
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/out/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/out/E18.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/out/E19.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/out/E24.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/subdir1/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/subdir1/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/subdir1/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/subdir1/E18-ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/subdir1/E18-pe2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/subdir2/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/subdir2/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/subdir2/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/subdir2/E18-ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/subdir2/E18-extpe1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/testcases.dtd103
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-2e/xmlconf.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/CVS/Entries17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E05a.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E05b.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E06a.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E06b.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E06c.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E06d.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E06e.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E06f.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E06g.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E06h.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E06i.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E12.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/E13.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/errata3e.xml67
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/testcases.dtd103
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/errata-3e/xmlconf.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/001.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/002.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/003.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/004.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/005.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/006.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/007.xml20
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/008.xml20
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/009.xml19
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/010.xml19
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/011.xml20
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/012.xml19
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/013.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/014.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/015.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/016.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/017.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/018.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/019.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/020.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/021.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/022.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/023.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/024.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/025.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/026.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/027.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/028.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/029.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/030.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/031.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/032.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/033.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/034.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/035.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/036.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/037.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/038.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/039.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/040.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/041.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/042.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/043.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/044.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/045.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/046.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/CVS/Entries48
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.0/rmt-ns10.xml151
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.1/001.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.1/002.xml20
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.1/003.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.1/004.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.1/005.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.1/006.xml20
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.1/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.1/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.1/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/1.1/rmt-ns11.xml23
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/CVS/Entries.Log3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/errata-1e/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/errata-1e/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/errata-1e/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/errata-1e/NE13a.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/errata-1e/NE13b.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/errata-1e/NE13c.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/errata-1e/errata1e.xml18
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/errata-1e/testcases.dtd103
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/errata-1e/xmlconf.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/testcases.dtd103
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/namespaces/xmlconf.xml20
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/001.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/001.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/002.pe2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/002.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/003.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/003.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/004.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/004.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/005.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/005_1.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/005_2.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/006.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/006_1.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/006_2.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/007.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/008.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/009.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/009.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/010.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/011.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/012.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/013.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/014.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/015.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/016.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/017.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/018.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/019.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/020.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/021.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/022.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/023.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/024.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/025.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/026.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/027.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/028.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/029.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/030.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/031.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/032.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/033.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/034.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/035.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/036.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/037.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/038.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/039.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/040.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/041.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/042.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/043.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/044.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/045.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/046.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/047.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/048.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/049.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/050.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/051.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/052.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/053.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/054.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/055.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/056.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/057.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/CVS/Entries70
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/006.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/007.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/010.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/012.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/015.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/017.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/018.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/022.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/023.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/024.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/025.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/026.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/027.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/028.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/029.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/030.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/031.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/032.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/033.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/034.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/035.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/036.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/037.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/040.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/043.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/044.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/045.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/046.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/047.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/048.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/049.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/050.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/051.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/052.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/053.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/054.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/CVS/Entries37
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/testcases.dtd103
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/xml11.xml286
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/eduni/xml-1.1/xmlconf.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/files/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/files/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/files/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/files/a_oasis-logo.gifbin0 -> 9383 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/files/committee.css63
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/files/top3.jpebin0 -> 22775 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/finalCatalog.xml8741
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/ibm_oasis_invalid.xml283
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/ibm_oasis_not-wf.xml3125
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/ibm_oasis_readme.txt43
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/ibm_oasis_valid.xml743
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/CVS/Entries15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P28/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P28/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P28/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P28/ibm28i01.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P28/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P28/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P28/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P28/out/ibm28i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/ibm32i01.dtd1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/ibm32i01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/ibm32i03.dtd1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/ibm32i03.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/ibm32i04.dtd4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/ibm32i04.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/out/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/out/ibm32i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/out/ibm32i03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P32/out/ibm32i04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/ibm39i01.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/ibm39i02.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/ibm39i03.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/ibm39i04.xml17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/out/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/out/ibm39i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/out/ibm39i02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/out/ibm39i03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P39/out/ibm39i04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P41/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P41/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P41/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P41/ibm41i01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P41/ibm41i02.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P41/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P41/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P41/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P41/out/ibm41i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P41/out/ibm41i02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P45/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P45/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P45/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P45/ibm45i01.xml19
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P45/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P45/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P45/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P45/out/ibm45i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P49/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P49/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P49/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P49/ibm49i01.dtd11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P49/ibm49i01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P49/ibm49i02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P49/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P49/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P49/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P49/out/ibm49i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P49/out/ibm49i02.xml0
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P50/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P50/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P50/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P50/ibm50i01.dtd10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P50/ibm50i01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P50/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P50/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P50/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P50/out/ibm50i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/ibm51i01.dtd16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/ibm51i01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/ibm51i03.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/ibm51i03.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/out/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/out/ibm51i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/out/ibm51i02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P51/out/ibm51i03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/CVS/Entries18
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i02.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i03.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i05.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i06.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i07.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i08.xml18
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i09.xml19
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i10.xml21
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i11.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i12.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i13.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i14.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i15.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i16.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i17.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/ibm56i18.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/CVS/Entries18
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i05.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i06.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i07.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i08.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i09.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i10.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i11.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i12.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i13.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i14.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i15.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i16.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i17.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P56/out/ibm56i18.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P58/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P58/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P58/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P58/ibm58i01.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P58/ibm58i02.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P58/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P58/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P58/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P58/out/ibm58i01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P58/out/ibm58i02.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P59/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P59/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P59/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P59/ibm59i01.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P59/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P59/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P59/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P59/out/ibm59i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/ibm60i01.xml17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/ibm60i02.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/ibm60i03.xml21
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/ibm60i04.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/out/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/out/ibm60i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/out/ibm60i02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/out/ibm60i03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P60/out/ibm60i04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/CVS/Entries9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/ibm68i01.dtd4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/ibm68i01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/ibm68i02.dtd4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/ibm68i02.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/ibm68i03.ent4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/ibm68i03.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/ibm68i04.ent4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/ibm68i04.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/out/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/out/ibm68i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/out/ibm68i02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/out/ibm68i03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P68/out/ibm68i04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/CVS/Entries9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/ibm69i01.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/ibm69i01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/ibm69i02.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/ibm69i02.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/ibm69i03.ent7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/ibm69i03.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/ibm69i04.ent8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/ibm69i04.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/out/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/out/ibm69i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/out/ibm69i02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/out/ibm69i03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P69/out/ibm69i04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P76/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P76/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P76/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P76/ibm76i01.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P76/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P76/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P76/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/invalid/P76/out/ibm76i01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/CVS/Entries79
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P01/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P01/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P01/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P01/ibm01n01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P01/ibm01n02.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P01/ibm01n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/CVS/Entries34
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n01.xmlbin0 -> 91 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n07.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n08.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n09.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n10.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n11.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n12.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n13.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n14.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n15.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n16.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n17.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n18.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n19.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n20.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n21.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n22.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n23.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n24.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n25.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n26.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n27.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n28.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n29.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n30.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n31.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n32.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P02/ibm02n33.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P03/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P03/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P03/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P03/ibm03n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/CVS/Entries19
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n02.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n03.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n04.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n05.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n06.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n07.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n08.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n09.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n10.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n11.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n12.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n13.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n14.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n15.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n16.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n17.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P04/ibm04n18.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P05/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P05/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P05/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P05/ibm05n01.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P05/ibm05n02.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P05/ibm05n03.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P05/ibm05n04.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P05/ibm05n05.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P09/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P09/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P09/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P09/ibm09n01.xml21
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P09/ibm09n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P09/ibm09n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P09/ibm09n04.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P10/CVS/Entries9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P10/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P10/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P10/ibm10n01.xml19
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P10/ibm10n02.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P10/ibm10n03.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P10/ibm10n04.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P10/ibm10n05.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P10/ibm10n06.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P10/ibm10n07.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P10/ibm10n08.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P11/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P11/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P11/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P11/ibm11n01.xml18
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P11/ibm11n02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P11/ibm11n03.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P11/ibm11n04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P12/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P12/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P12/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P12/ibm12n01.xml18
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P12/ibm12n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P12/ibm12n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P13/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P13/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P13/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P13/ibm13n01.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P13/ibm13n02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P13/ibm13n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P13/student.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P14/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P14/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P14/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P14/ibm14n01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P14/ibm14n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P14/ibm14n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P15/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P15/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P15/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P15/ibm15n01.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P15/ibm15n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P15/ibm15n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P15/ibm15n04.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P16/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P16/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P16/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P16/ibm16n01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P16/ibm16n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P16/ibm16n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P16/ibm16n04.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P17/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P17/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P17/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P17/ibm17n01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P17/ibm17n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P17/ibm17n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P17/ibm17n04.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P18/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P18/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P18/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P18/ibm18n01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P18/ibm18n02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P19/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P19/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P19/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P19/ibm19n01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P19/ibm19n02.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P19/ibm19n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P20/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P20/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P20/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P20/ibm20n01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P21/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P21/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P21/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P21/ibm21n01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P21/ibm21n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P21/ibm21n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P22/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P22/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P22/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P22/ibm22n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P22/ibm22n02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P22/ibm22n03.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P23/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P23/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P23/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P23/ibm23n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P23/ibm23n02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P23/ibm23n03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P23/ibm23n04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P23/ibm23n05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P23/ibm23n06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P24/CVS/Entries10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P24/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P24/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P24/ibm24n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P24/ibm24n02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P24/ibm24n03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P24/ibm24n04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P24/ibm24n05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P24/ibm24n06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P24/ibm24n07.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P24/ibm24n08.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P24/ibm24n09.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P25/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P25/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P25/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P25/ibm25n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P25/ibm25n02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P26/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P26/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P26/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P26/ibm26n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P27/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P27/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P27/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P27/ibm27n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P28/CVS/Entries10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P28/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P28/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P28/ibm28n01.dtd1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P28/ibm28n01.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P28/ibm28n02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P28/ibm28n03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P28/ibm28n04.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P28/ibm28n05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P28/ibm28n06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P28/ibm28n07.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P28/ibm28n08.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P29/CVS/Entries9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P29/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P29/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P29/cat.txt1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P29/ibm29n01.xml20
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P29/ibm29n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P29/ibm29n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P29/ibm29n04.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P29/ibm29n05.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P29/ibm29n06.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P29/ibm29n07.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P30/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P30/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P30/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P30/ibm30n01.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P30/ibm30n01.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P31/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P31/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P31/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P31/ibm31n01.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P31/ibm31n01.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/CVS/Entries12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/ibm32n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/ibm32n02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/ibm32n03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/ibm32n04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/ibm32n05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/ibm32n06.dtd1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/ibm32n06.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/ibm32n07.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/ibm32n08.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/ibm32n09.dtd1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P32/ibm32n09.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P39/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P39/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P39/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P39/ibm39n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P39/ibm39n02.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P39/ibm39n03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P39/ibm39n04.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P39/ibm39n05.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P39/ibm39n06.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P40/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P40/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P40/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P40/ibm40n01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P40/ibm40n02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P40/ibm40n03.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P40/ibm40n04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P40/ibm40n05.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/CVS/Entries18
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n01.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n03.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n05.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n06.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n07.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n08.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n09.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n10.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n10.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n11.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n11.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n12.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n13.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P41/ibm41n14.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P42/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P42/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P42/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P42/ibm42n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P42/ibm42n02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P42/ibm42n03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P42/ibm42n04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P42/ibm42n05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P43/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P43/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P43/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P43/ibm43n01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P43/ibm43n02.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P43/ibm43n04.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P43/ibm43n05.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P44/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P44/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P44/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P44/ibm44n01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P44/ibm44n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P44/ibm44n03.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P44/ibm44n04.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P45/CVS/Entries10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P45/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P45/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P45/ibm45n01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P45/ibm45n02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P45/ibm45n03.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P45/ibm45n04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P45/ibm45n05.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P45/ibm45n06.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P45/ibm45n07.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P45/ibm45n08.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P45/ibm45n09.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P46/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P46/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P46/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P46/ibm46n01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P46/ibm46n02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P46/ibm46n03.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P46/ibm46n04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P46/ibm46n05.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P47/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P47/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P47/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P47/ibm47n01.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P47/ibm47n02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P47/ibm47n03.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P47/ibm47n04.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P47/ibm47n05.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P47/ibm47n06.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P48/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P48/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P48/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P48/ibm48n01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P48/ibm48n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P48/ibm48n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P48/ibm48n04.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P48/ibm48n05.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P48/ibm48n06.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P48/ibm48n07.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P49/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P49/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P49/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P49/ibm49n01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P49/ibm49n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P49/ibm49n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P49/ibm49n04.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P49/ibm49n05.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P49/ibm49n06.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P50/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P50/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P50/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P50/ibm50n01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P50/ibm50n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P50/ibm50n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P50/ibm50n04.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P50/ibm50n05.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P50/ibm50n06.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P50/ibm50n07.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P51/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P51/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P51/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P51/ibm51n01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P51/ibm51n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P51/ibm51n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P51/ibm51n04.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P51/ibm51n05.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P51/ibm51n06.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P51/ibm51n07.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P52/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P52/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P52/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P52/ibm52n01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P52/ibm52n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P52/ibm52n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P52/ibm52n04.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P52/ibm52n05.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P52/ibm52n06.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P53/CVS/Entries9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P53/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P53/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P53/ibm53n01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P53/ibm53n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P53/ibm53n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P53/ibm53n04.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P53/ibm53n05.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P53/ibm53n06.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P53/ibm53n07.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P53/ibm53n08.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P54/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P54/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P54/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P54/ibm54n01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P54/ibm54n02.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P55/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P55/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P55/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P55/ibm55n01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P55/ibm55n02.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P55/ibm55n03.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P56/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P56/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P56/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P56/ibm56n01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P56/ibm56n02.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P56/ibm56n03.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P56/ibm56n04.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P56/ibm56n05.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P56/ibm56n06.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P56/ibm56n07.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P57/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P57/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P57/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P57/ibm57n01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P58/CVS/Entries9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P58/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P58/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P58/ibm58n01.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P58/ibm58n02.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P58/ibm58n03.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P58/ibm58n04.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P58/ibm58n05.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P58/ibm58n06.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P58/ibm58n07.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P58/ibm58n08.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P59/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P59/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P59/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P59/ibm59n01.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P59/ibm59n02.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P59/ibm59n03.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P59/ibm59n04.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P59/ibm59n05.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P59/ibm59n06.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P60/CVS/Entries9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P60/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P60/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P60/ibm60n01.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P60/ibm60n02.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P60/ibm60n03.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P60/ibm60n04.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P60/ibm60n05.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P60/ibm60n06.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P60/ibm60n07.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P60/ibm60n08.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P61/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P61/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P61/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P61/ibm61n01.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P61/ibm61n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/CVS/Entries17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n01.dtd9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n01.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n02.dtd9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n03.dtd9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n03.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n04.dtd9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n05.dtd9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n05.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n06.dtd9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n06.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n07.dtd8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n07.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n08.dtd9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P62/ibm62n08.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/CVS/Entries15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n01.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n02.dtd8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n03.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n03.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n04.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n04.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n05.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n05.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n06.dtd9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n06.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n07.dtd8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P63/ibm63n07.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P64/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P64/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P64/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P64/ibm64n01.dtd10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P64/ibm64n01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P64/ibm64n02.dtd10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P64/ibm64n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P64/ibm64n03.dtd10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P64/ibm64n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P65/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P65/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P65/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P65/ibm65n01.dtd12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P65/ibm65n01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P65/ibm65n02.dtd13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P65/ibm65n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/CVS/Entries16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n01.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n03.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n05.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n06.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n07.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n08.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n09.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n10.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n11.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n12.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n13.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n14.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P66/ibm66n15.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/CVS/Entries12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/ibm68n01.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/ibm68n02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/ibm68n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/ibm68n04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/ibm68n05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/ibm68n06.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/ibm68n06.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/ibm68n07.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/ibm68n08.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/ibm68n09.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P68/ibm68n10.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P69/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P69/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P69/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P69/ibm69n01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P69/ibm69n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P69/ibm69n03.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P69/ibm69n04.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P69/ibm69n05.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P69/ibm69n06.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P69/ibm69n07.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P71/CVS/Entries10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P71/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P71/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P71/ibm70n01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P71/ibm71n01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P71/ibm71n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P71/ibm71n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P71/ibm71n04.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P71/ibm71n05.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P71/ibm71n06.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P71/ibm71n07.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P71/ibm71n08.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P72/CVS/Entries10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P72/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P72/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P72/ibm72n01.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P72/ibm72n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P72/ibm72n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P72/ibm72n04.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P72/ibm72n05.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P72/ibm72n06.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P72/ibm72n07.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P72/ibm72n08.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P72/ibm72n09.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P73/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P73/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P73/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P73/ibm73n01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P73/ibm73n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P74/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P74/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P74/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P74/ibm74n01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/CVS/Entries15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/empty.dtd1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n04.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n05.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n06.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n07.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n08.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n09.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n10.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n11.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n12.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P75/ibm75n13.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P76/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P76/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P76/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P76/ibm76n01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P76/ibm76n02.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P76/ibm76n03.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P76/ibm76n04.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P76/ibm76n05.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P76/ibm76n06.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P76/ibm76n07.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P77/CVS/Entries9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P77/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P77/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P77/ibm77n01.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P77/ibm77n01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P77/ibm77n02.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P77/ibm77n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P77/ibm77n03.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P77/ibm77n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P77/ibm77n04.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P77/ibm77n04.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P78/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P78/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P78/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P78/ibm78n01.ent4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P78/ibm78n01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P78/ibm78n02.ent4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P78/ibm78n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P79/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P79/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P79/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P79/ibm79n01.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P79/ibm79n01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P79/ibm79n02.ent4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P79/ibm79n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P80/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P80/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P80/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P80/ibm80n01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P80/ibm80n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P80/ibm80n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P80/ibm80n04.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P80/ibm80n05.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P80/ibm80n06.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P81/CVS/Entries10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P81/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P81/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P81/ibm81n01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P81/ibm81n02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P81/ibm81n03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P81/ibm81n04.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P81/ibm81n05.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P81/ibm81n06.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P81/ibm81n07.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P81/ibm81n08.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P81/ibm81n09.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P82/CVS/Entries9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P82/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P82/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P82/ibm82n01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P82/ibm82n02.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P82/ibm82n03.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P82/ibm82n04.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P82/ibm82n05.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P82/ibm82n06.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P82/ibm82n07.xml18
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P82/ibm82n08.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P83/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P83/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P83/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P83/ibm83n01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P83/ibm83n02.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P83/ibm83n03.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P83/ibm83n04.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P83/ibm83n05.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P83/ibm83n06.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/CVS/Entries199
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n07.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n08.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n09.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n10.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n100.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n101.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n102.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n103.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n104.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n105.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n106.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n107.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n108.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n109.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n11.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n110.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n111.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n112.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n113.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n114.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n115.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n116.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n117.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n118.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n119.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n12.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n120.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n121.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n122.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n123.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n124.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n125.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n126.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n127.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n128.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n129.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n13.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n130.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n131.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n132.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n133.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n134.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n135.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n136.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n137.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n138.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n139.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n14.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n140.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n141.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n142.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n143.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n144.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n145.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n146.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n147.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n148.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n149.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n15.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n150.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n151.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n152.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n153.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n154.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n155.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n156.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n157.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n158.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n159.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n16.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n160.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n161.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n162.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n163.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n164.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n165.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n166.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n167.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n168.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n169.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n17.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n170.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n171.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n172.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n173.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n174.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n175.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n176.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n177.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n178.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n179.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n18.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n180.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n181.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n182.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n183.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n184.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n185.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n186.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n187.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n188.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n189.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n19.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n190.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n191.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n192.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n193.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n194.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n195.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n196.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n197.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n198.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n20.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n21.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n22.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n23.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n24.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n25.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n26.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n27.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n28.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n29.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n30.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n31.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n32.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n33.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n34.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n35.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n36.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n37.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n38.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n39.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n40.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n41.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n42.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n43.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n44.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n45.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n46.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n47.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n48.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n49.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n50.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n51.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n52.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n53.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n54.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n55.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n56.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n57.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n58.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n59.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n60.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n61.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n62.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n63.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n64.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n65.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n66.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n67.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n68.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n69.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n70.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n71.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n72.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n73.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n74.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n75.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n76.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n77.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n78.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n79.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n80.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n81.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n82.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n83.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n84.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n85.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n86.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n87.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n88.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n89.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n90.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n91.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n92.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n93.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n94.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n95.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n96.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n97.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n98.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P85/ibm85n99.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P86/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P86/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P86/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P86/ibm86n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P86/ibm86n02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P86/ibm86n03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P86/ibm86n04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/CVS/Entries85
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n07.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n08.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n09.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n10.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n11.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n12.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n13.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n14.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n15.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n16.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n17.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n18.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n19.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n20.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n21.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n22.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n23.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n24.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n25.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n26.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n27.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n28.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n29.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n30.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n31.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n32.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n33.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n34.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n35.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n36.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n37.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n38.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n39.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n40.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n41.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n42.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n43.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n44.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n45.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n46.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n47.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n48.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n49.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n50.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n51.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n52.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n53.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n54.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n55.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n56.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n57.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n58.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n59.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n60.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n61.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n62.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n63.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n64.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n66.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n67.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n68.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n69.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n70.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n71.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n72.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n73.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n74.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n75.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n76.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n77.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n78.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n79.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n80.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n81.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n82.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n83.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n84.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P87/ibm87n85.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/CVS/Entries16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n02.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n08.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n09.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n10.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n11.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n12.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n13.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n14.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n15.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P88/ibm88n16.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/CVS/Entries13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/ibm89n01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/ibm89n02.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/ibm89n03.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/ibm89n04.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/ibm89n05.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/ibm89n06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/ibm89n07.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/ibm89n08.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/ibm89n09.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/ibm89n10.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/ibm89n11.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/P89/ibm89n12.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/misc/432gewf.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/misc/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/misc/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/misc/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/misc/ltinentval.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/misc/simpleltinentval.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/p28a/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/p28a/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/p28a/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/p28a/ibm28an01.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/not-wf/p28a/ibm28an01.xml22
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/CVS/Entries70
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P01/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P01/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P01/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P01/ibm01v01.xml24
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P01/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P01/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P01/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P01/out/ibm01v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P02/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P02/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P02/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P02/ibm02v01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P02/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P02/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P02/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P02/out/ibm02v01.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P03/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P03/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P03/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P03/ibm03v01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P03/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P03/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P03/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P03/out/ibm03v01.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/ibm09v01.xml21
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/ibm09v02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/ibm09v03.dtd4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/ibm09v03.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/ibm09v04.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/ibm09v05.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/out/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/out/ibm09v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/out/ibm09v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/out/ibm09v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/out/ibm09v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/out/ibm09v05.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P09/student.dtd4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/CVS/Entries9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/ibm10v01.xml19
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/ibm10v02.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/ibm10v03.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/ibm10v04.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/ibm10v05.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/ibm10v06.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/ibm10v07.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/ibm10v08.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/out/CVS/Entries9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/out/ibm10v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/out/ibm10v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/out/ibm10v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/out/ibm10v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/out/ibm10v05.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/out/ibm10v06.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/out/ibm10v07.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P10/out/ibm10v08.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/ibm11v01.xml17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/ibm11v02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/ibm11v03.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/ibm11v04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/out/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/out/ibm11v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/out/ibm11v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/out/ibm11v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/out/ibm11v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P11/student.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/ibm12v01.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/ibm12v02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/ibm12v03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/ibm12v04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/out/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/out/ibm12v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/out/ibm12v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/out/ibm12v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/out/ibm12v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P12/student.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P13/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P13/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P13/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P13/ibm13v01.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P13/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P13/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P13/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P13/out/ibm13v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P13/student.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P14/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P14/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P14/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P14/ibm14v01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P14/ibm14v02.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P14/ibm14v03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P14/out/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P14/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P14/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P14/out/ibm14v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P14/out/ibm14v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P14/out/ibm14v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/ibm15v01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/ibm15v02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/ibm15v03.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/ibm15v04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/out/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/out/ibm15v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/out/ibm15v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/out/ibm15v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P15/out/ibm15v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P16/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P16/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P16/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P16/ibm16v01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P16/ibm16v02.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P16/ibm16v03.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P16/out/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P16/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P16/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P16/out/ibm16v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P16/out/ibm16v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P16/out/ibm16v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P17/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P17/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P17/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P17/ibm17v01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P17/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P17/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P17/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P17/out/ibm17v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P18/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P18/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P18/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P18/ibm18v01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P18/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P18/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P18/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P18/out/ibm18v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P19/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P19/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P19/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P19/ibm19v01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P19/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P19/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P19/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P19/out/ibm19v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P20/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P20/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P20/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P20/ibm20v01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P20/ibm20v02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P20/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P20/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P20/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P20/out/ibm20v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P20/out/ibm20v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P21/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P21/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P21/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P21/ibm21v01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P21/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P21/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P21/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P21/out/ibm21v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/ibm22v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/ibm22v02.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/ibm22v03.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/ibm22v04.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/ibm22v05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/ibm22v06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/ibm22v07.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/out/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/out/ibm22v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/out/ibm22v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/out/ibm22v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/out/ibm22v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/out/ibm22v05.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/out/ibm22v06.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P22/out/ibm22v07.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/ibm23v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/ibm23v02.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/ibm23v03.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/ibm23v04.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/ibm23v05.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/ibm23v06.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/out/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/out/ibm23v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/out/ibm23v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/out/ibm23v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/out/ibm23v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/out/ibm23v05.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P23/out/ibm23v06.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P24/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P24/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P24/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P24/ibm24v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P24/ibm24v02.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P24/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P24/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P24/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P24/out/ibm24v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P24/out/ibm24v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/ibm25v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/ibm25v02.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/ibm25v03.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/ibm25v04.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/out/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/out/ibm25v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/out/ibm25v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/out/ibm25v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P25/out/ibm25v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P26/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P26/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P26/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P26/ibm26v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P26/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P26/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P26/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P26/out/ibm26v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P27/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P27/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P27/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P27/ibm27v01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P27/ibm27v02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P27/ibm27v03.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P27/out/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P27/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P27/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P27/out/ibm27v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P27/out/ibm27v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P27/out/ibm27v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P28/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P28/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P28/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P28/ibm28v01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P28/ibm28v02.dtd1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P28/ibm28v02.txt1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P28/ibm28v02.xml26
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P28/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P28/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P28/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P28/out/ibm28v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P28/out/ibm28v02.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P29/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P29/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P29/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P29/ibm29v01.txt1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P29/ibm29v01.xml24
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P29/ibm29v02.xml25
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P29/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P29/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P29/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P29/out/ibm29v01.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P29/out/ibm29v02.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P30/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P30/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P30/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P30/ibm30v01.dtd1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P30/ibm30v01.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P30/ibm30v02.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P30/ibm30v02.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P30/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P30/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P30/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P30/out/ibm30v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P30/out/ibm30v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P31/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P31/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P31/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P31/ibm31v01.dtd15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P31/ibm31v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P31/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P31/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P31/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P31/out/ibm31v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/CVS/Entries9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/ibm32v01.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/ibm32v01.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/ibm32v02.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/ibm32v02.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/ibm32v03.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/ibm32v03.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/ibm32v04.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/ibm32v04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/out/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/out/ibm32v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/out/ibm32v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/out/ibm32v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P32/out/ibm32v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P33/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P33/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P33/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P33/ibm33v01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P33/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P33/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P33/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P33/out/ibm33v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P34/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P34/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P34/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P34/ibm34v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P34/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P34/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P34/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P34/out/ibm34v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P35/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P35/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P35/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P35/ibm35v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P35/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P35/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P35/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P35/out/ibm35v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P36/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P36/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P36/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P36/ibm36v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P36/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P36/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P36/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P36/out/ibm36v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P37/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P37/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P37/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P37/ibm37v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P37/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P37/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P37/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P37/out/ibm37v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P38/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P38/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P38/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P38/ibm38v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P38/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P38/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P38/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P38/out/ibm38v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P39/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P39/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P39/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P39/ibm39v01.xml18
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P39/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P39/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P39/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P39/out/ibm39v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P40/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P40/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P40/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P40/ibm40v01.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P40/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P40/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P40/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P40/out/ibm40v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P41/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P41/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P41/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P41/ibm41v01.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P41/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P41/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P41/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P41/out/ibm41v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P42/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P42/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P42/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P42/ibm42v01.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P42/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P42/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P42/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P42/out/ibm42v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P43/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P43/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P43/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P43/ibm43v01.xml24
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P43/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P43/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P43/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P43/out/ibm43v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P44/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P44/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P44/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P44/ibm44v01.xml18
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P44/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P44/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P44/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P44/out/ibm44v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P45/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P45/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P45/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P45/ibm45v01.xml21
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P45/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P45/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P45/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P45/out/ibm45v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P47/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P47/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P47/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P47/ibm47v01.xml27
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P47/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P47/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P47/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P47/out/ibm47v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P49/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P49/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P49/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P49/ibm49v01.dtd13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P49/ibm49v01.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P49/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P49/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P49/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P49/out/ibm49v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P50/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P50/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P50/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P50/ibm50v01.dtd13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P50/ibm50v01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P50/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P50/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P50/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P50/out/ibm50v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P51/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P51/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P51/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P51/ibm51v01.xml22
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P51/ibm51v02.dtd20
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P51/ibm51v02.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P51/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P51/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P51/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P51/out/ibm51v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P51/out/ibm51v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P52/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P52/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P52/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P52/ibm52v01.xml17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P52/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P52/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P52/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P52/out/ibm52v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/ibm54v01.xml50
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/ibm54v02.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/ibm54v03.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/ibmlogo.gifbin0 -> 1082 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/out/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/out/ibm54v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/out/ibm54v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/out/ibm54v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P54/xmltech.gifbin0 -> 4070 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P55/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P55/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P55/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P55/ibm55v01.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P55/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P55/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P55/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P55/out/ibm55v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/CVS/Entries11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/ibm56v01.xml21
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/ibm56v02.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/ibm56v03.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/ibm56v04.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/ibm56v05.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/ibm56v06.xml18
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/ibm56v07.xml21
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/ibm56v08.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/ibm56v09.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/ibm56v10.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/CVS/Entries11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/ibm56v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/ibm56v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/ibm56v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/ibm56v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/ibm56v05.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/ibm56v06.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/ibm56v07.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/ibm56v08.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/ibm56v09.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P56/out/ibm56v10.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P57/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P57/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P57/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P57/ibm57v01.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P57/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P57/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P57/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P57/out/ibm57v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P58/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P58/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P58/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P58/ibm58v01.xml21
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P58/ibm58v02.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P58/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P58/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P58/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P58/out/ibm58v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P58/out/ibm58v02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P59/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P59/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P59/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P59/ibm59v01.xml18
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P59/ibm59v02.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P59/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P59/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P59/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P59/out/ibm59v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P59/out/ibm59v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/ibm60v01.xml19
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/ibm60v02.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/ibm60v03.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/ibm60v04.xml17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/out/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/out/ibm60v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/out/ibm60v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/out/ibm60v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P60/out/ibm60v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P61/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P61/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P61/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P61/ibm61v01.dtd7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P61/ibm61v01.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P61/ibm61v02.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P61/ibm61v02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P61/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P61/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P61/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P61/out/ibm61v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P61/out/ibm61v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/CVS/Entries11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/ibm62v01.dtd8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/ibm62v01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/ibm62v02.dtd8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/ibm62v02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/ibm62v03.dtd8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/ibm62v03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/ibm62v04.dtd8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/ibm62v04.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/ibm62v05.dtd7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/ibm62v05.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/out/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/out/ibm62v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/out/ibm62v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/out/ibm62v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/out/ibm62v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P62/out/ibm62v05.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/CVS/Entries11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/ibm63v01.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/ibm63v01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/ibm63v02.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/ibm63v02.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/ibm63v03.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/ibm63v03.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/ibm63v04.dtd8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/ibm63v04.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/ibm63v05.dtd8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/ibm63v05.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/out/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/out/ibm63v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/out/ibm63v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/out/ibm63v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/out/ibm63v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P63/out/ibm63v05.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/ibm64v01.dtd8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/ibm64v01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/ibm64v02.dtd10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/ibm64v02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/ibm64v03.dtd20
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/ibm64v03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/out/CVS/Entries4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/out/ibm64v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/out/ibm64v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P64/out/ibm64v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P65/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P65/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P65/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P65/ibm65v01.dtd10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P65/ibm65v01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P65/ibm65v02.dtd10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P65/ibm65v02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P65/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P65/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P65/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P65/out/ibm65v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P65/out/ibm65v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P66/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P66/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P66/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P66/ibm66v01.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P66/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P66/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P66/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P66/out/ibm66v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P67/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P67/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P67/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P67/ibm67v01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P67/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P67/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P67/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P67/out/ibm67v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P68/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P68/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P68/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P68/ibm68v01.dtd4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P68/ibm68v01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P68/ibm68v02.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P68/ibm68v02.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P68/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P68/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P68/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P68/out/ibm68v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P68/out/ibm68v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P69/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P69/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P69/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P69/ibm69v01.dtd4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P69/ibm69v01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P69/ibm69v02.ent6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P69/ibm69v02.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P69/out/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P69/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P69/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P69/out/ibm69v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P69/out/ibm69v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P70/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P70/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P70/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P70/ibm70v01.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P70/ibm70v01.xml17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P70/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P70/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P70/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P70/out/ibm70v01.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P78/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P78/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P78/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P78/ibm78v01.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P78/ibm78v01.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P78/ibm78v02.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P78/ibm78v03.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P78/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P78/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P78/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P78/out/ibm78v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P79/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P79/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P79/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P79/ibm79v01.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P79/ibm79v01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P79/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P79/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P79/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P79/out/ibm79v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P82/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P82/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P82/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P82/ibm82v01.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P82/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P82/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P82/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P82/out/ibm82v01.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P85/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P85/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P85/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P85/ibm85v01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P85/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P85/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P85/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P85/out/ibm85v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P86/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P86/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P86/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P86/ibm86v01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P86/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P86/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P86/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P86/out/ibm86v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P87/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P87/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P87/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P87/ibm87v01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P87/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P87/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P87/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P87/out/ibm87v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P88/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P88/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P88/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P88/ibm88v01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P88/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P88/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P88/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P88/out/ibm88v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P89/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P89/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P89/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P89/ibm89v01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P89/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P89/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P89/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/valid/P89/out/ibm89v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/ibm_invalid.xml35
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/ibm_not-wf.xml700
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/ibm_valid.xml332
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/invalid/CVS/Entries1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/invalid/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/invalid/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/invalid/P46/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/invalid/P46/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/invalid/P46/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/invalid/P46/ibm46i01.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/invalid/P46/ibm46i02.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/CVS/Entries5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/CVS/Entries75
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n01.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n02.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n03.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n04.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n05.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n06.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n07.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n08.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n09.xmlbin0 -> 121 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n10.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n11.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n12.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n13.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n14.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n15.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n16.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n17.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n18.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n19.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n20.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n21.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n22.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n23.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n24.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n25.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n26.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n27.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n28.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n29.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n30.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n31.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n32.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n33.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n34.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n35.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n36.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n37.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n38.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n39.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n40.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n41.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n42.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n43.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n44.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n45.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n46.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n47.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n48.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n49.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n50.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n51.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n52.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n53.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n54.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n55.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n56.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n57.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n58.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n59.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n60.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n61.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n62.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n63.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n64.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n64.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n65.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n65.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n66.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n66.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n67.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n68.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n69.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n70.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P02/ibm02n71.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/CVS/Entries29
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n07.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n08.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n09.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n10.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n11.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n12.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n13.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n14.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n15.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n16.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n17.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n18.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n19.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n20.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n21.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n22.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n23.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n24.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n25.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n26.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n27.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04/ibm04n28.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/CVS/Entries29
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an07.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an08.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an09.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an10.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an11.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an12.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an13.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an14.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an15.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an16.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an17.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an18.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an19.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an20.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an21.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an22.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an23.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an24.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an25.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an26.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an27.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P04a/ibm04an28.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P05/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P05/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P05/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P05/ibm05n01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P05/ibm05n02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P05/ibm05n03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P05/ibm05n04.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P05/ibm05n05.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P05/ibm05n06.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/CVS/Entries48
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n01.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n01.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n02.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n02.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n03.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n03.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n04.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n05.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n06.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n07.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n07.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n08.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n08.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n09.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n09.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n10.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n10.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n11.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n11.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n12.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n12.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n13.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n13.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n13.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n14.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n14.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n15.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n15.ent4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n15.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n16.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n16.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n17.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n17.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n18.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n18.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n19.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n19.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n19.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n20.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n20.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n20.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n21.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n21.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/not-wf/P77/ibm77n21.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P02/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P02/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P02/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P02/ibm02v01.xml22
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P02/ibm02v02.xml17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P02/ibm02v03.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P02/ibm02v04.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P02/ibm02v05.xml31
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P02/ibm02v06.ent17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P02/ibm02v06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/CVS/Entries15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v01.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v02.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v03.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v04.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v05.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v06.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v07.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v08.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v09.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/ibm03v09.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/out/CVS/Entries10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/out/ibm03v01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/out/ibm03v02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/out/ibm03v03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/out/ibm03v04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/out/ibm03v05.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/out/ibm03v06.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/out/ibm03v07.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/out/ibm03v08.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P03/out/ibm03v09.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P04/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P04/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P04/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P04/ibm04v01.xml66
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P04a/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P04a/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P04a/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P04a/ibm04av01.xml97
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P05/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P05/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P05/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P05/ibm05v01.xml103
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P05/ibm05v02.xml55
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P05/ibm05v03.xml103
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P05/ibm05v04.xml199
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P05/ibm05v05.xml183
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P07/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P07/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P07/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P07/ibm07v01.xml82
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/CVS/Entries61
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v01.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v02.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v02.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v03.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v03.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v04.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v05.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v05.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v06.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v06.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v07.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v07.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v08.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v08.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v09.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v09.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v10.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v10.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v11.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v11.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v12.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v12.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v13.dtd4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v13.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v14.dtd4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v14.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v15.dtd4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v15.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v16.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v16.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v17.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v17.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v18.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v18.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v19.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v19.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v20.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v20.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v21.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v21.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v22.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v22.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v23.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v23.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v24.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v24.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v25.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v25.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v26.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v26.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v27.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v27.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v28.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v28.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v29.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v29.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v30.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/ibm/xml-1.1/valid/P77/ibm77v30.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/CVS/Entries20
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/japanese.xml88
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/pr-xml-euc-jp.xml3549
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/pr-xml-iso-2022-jp.xml3549
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/pr-xml-little-endian.xmlbin0 -> 313076 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/pr-xml-shift_jis.xml3549
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/pr-xml-utf-16.xmlbin0 -> 313074 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/pr-xml-utf-8.xml3548
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/spec.dtd975
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/weekly-euc-jp.dtd72
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/weekly-euc-jp.xml78
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/weekly-iso-2022-jp.dtd72
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/weekly-iso-2022-jp.xml78
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/weekly-little-endian.xmlbin0 -> 3186 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/weekly-shift_jis.dtd72
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/weekly-shift_jis.xml78
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/weekly-utf-16.dtdbin0 -> 5222 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/weekly-utf-16.xmlbin0 -> 3186 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/weekly-utf-8.dtd71
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/weekly-utf-8.xml78
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/CVS/Entries373
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/e2.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/oasis.xml1637
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p01fail1.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p01fail2.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p01fail3.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p01fail4.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p01pass1.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p01pass2.xml23
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p01pass3.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail1.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail10.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail11.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail12.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail13.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail14.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail15.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail16.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail17.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail18.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail19.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail2.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail20.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail21.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail22.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail23.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail24.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail25.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail26.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail27.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail28.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail29.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail3.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail30.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail31.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail4.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail5.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail6.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail7.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail8.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p02fail9.xmlbin0 -> 26 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail1.xmlbin0 -> 7 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail10.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail11.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail12.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail13.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail14.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail15.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail16.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail17.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail18.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail19.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail20.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail21.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail22.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail23.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail24.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail25.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail26.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail27.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail28.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail29.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail3.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail4.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail5.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail7.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail8.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03fail9.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p03pass1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p04fail1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p04fail2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p04fail3.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p04pass1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p05fail1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p05fail2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p05fail3.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p05fail4.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p05fail5.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p05pass1.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p06fail1.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p06pass1.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p07pass1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p08fail1.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p08fail2.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p08pass1.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p09fail1.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p09fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p09fail2.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p09fail2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p09fail3.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p09fail4.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p09fail5.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p09pass1.dtd5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p09pass1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p10fail1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p10fail2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p10fail3.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p10pass1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p11fail1.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p11fail2.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p11pass1.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p12fail1.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p12fail2.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p12fail3.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p12fail4.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p12fail5.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p12fail6.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p12fail7.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p12pass1.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p14fail1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p14fail2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p14fail3.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p14pass1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p15fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p15fail2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p15fail3.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p15pass1.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p16fail1.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p16fail2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p16fail3.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p16pass1.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p16pass2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p16pass3.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p18fail1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p18fail2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p18fail3.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p18pass1.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p22fail1.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p22fail2.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p22pass1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p22pass2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p22pass3.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p22pass4.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p22pass5.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p22pass6.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p23fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p23fail2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p23fail3.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p23fail4.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p23fail5.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p23pass1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p23pass2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p23pass3.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p23pass4.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p24fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p24fail2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p24pass1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p24pass2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p24pass3.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p24pass4.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p25fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p25pass1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p25pass2.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p26fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p26fail2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p26pass1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p27fail1.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p27pass1.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p27pass2.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p27pass3.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p27pass4.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p28fail1.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p28pass1.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p28pass2.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p28pass3.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p28pass4.dtd1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p28pass4.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p28pass5.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p28pass5.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p29fail1.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p29pass1.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p30fail1.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p30fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p30pass1.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p30pass1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p30pass2.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p30pass2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p31fail1.dtd4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p31fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p31pass1.dtd0
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p31pass1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p31pass2.dtd11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p31pass2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p32fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p32fail2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p32fail3.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p32fail4.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p32fail5.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p32pass1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p32pass2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p39fail1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p39fail2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p39fail3.xml0
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p39fail4.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p39fail5.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p39pass1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p39pass2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p40fail1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p40fail2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p40fail3.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p40fail4.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p40pass1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p40pass2.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p40pass3.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p40pass4.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p41fail1.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p41fail2.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p41fail3.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p41pass1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p41pass2.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p42fail1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p42fail2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p42fail3.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p42pass1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p42pass2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p43fail1.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p43fail2.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p43fail3.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p43pass1.xml27
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p44fail1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p44fail2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p44fail3.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p44fail4.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p44fail5.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p44pass1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p44pass2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p44pass3.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p44pass4.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p44pass5.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p45fail1.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p45fail2.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p45fail3.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p45fail4.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p45pass1.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p46fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p46fail2.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p46fail3.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p46fail4.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p46fail5.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p46fail6.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p46pass1.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p47fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p47fail2.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p47fail3.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p47fail4.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p47pass1.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p48fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p48fail2.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p48pass1.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p49fail1.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p49pass1.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p50fail1.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p50pass1.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p51fail1.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p51fail2.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p51fail3.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p51fail4.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p51fail5.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p51fail6.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p51fail7.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p51pass1.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p52fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p52fail2.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p52pass1.xml23
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p53fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p53fail2.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p53fail3.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p53fail4.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p53fail5.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p53pass1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p54fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p54pass1.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p55fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p55pass1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p56fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p56fail2.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p56fail3.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p56fail4.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p56fail5.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p56pass1.xml19
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p57fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p57pass1.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p58fail1.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p58fail2.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p58fail3.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p58fail4.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p58fail5.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p58fail6.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p58fail7.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p58fail8.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p58pass1.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p59fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p59fail2.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p59fail3.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p59pass1.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p60fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p60fail2.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p60fail3.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p60fail4.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p60fail5.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p60pass1.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p61fail1.dtd4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p61fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p61pass1.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p61pass1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p62fail1.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p62fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p62fail2.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p62fail2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p62pass1.dtd12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p62pass1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p63fail1.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p63fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p63fail2.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p63fail2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p63pass1.dtd13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p63pass1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p64fail1.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p64fail1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p64fail2.dtd2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p64fail2.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p64pass1.dtd13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p64pass1.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p66fail1.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p66fail2.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p66fail3.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p66fail4.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p66fail5.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p66fail6.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p66pass1.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p68fail1.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p68fail2.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p68fail3.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p68pass1.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p69fail1.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p69fail2.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p69fail3.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p69pass1.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p70fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p70pass1.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p71fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p71fail2.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p71fail3.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p71fail4.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p71pass1.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p72fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p72fail2.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p72fail3.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p72fail4.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p72pass1.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p73fail1.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p73fail2.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p73fail3.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p73fail4.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p73fail5.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p73pass1.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p74fail1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p74fail2.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p74fail3.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p74pass1.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p75fail1.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p75fail2.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p75fail3.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p75fail4.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p75fail5.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p75fail6.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p75pass1.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p76fail1.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p76fail2.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p76fail3.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p76fail4.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/oasis/p76pass1.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/readme.html201
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/CVS/Entries8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/cxml.html155
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/CVS/Entries76
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr02.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr03.xml17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr04.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr05.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr06.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr07.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr08.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr09.xml20
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr10.xml20
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr11.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr12.xml15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr13.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr14.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr15.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/attr16.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/dtd01.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/dtd02.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/dtd03.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/dtd06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/el01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/el02.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/el03.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/el04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/el05.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/el06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/empty.xml22
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/id01.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/id02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/id03.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/id04.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/id05.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/id06.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/id07.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/id08.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/id09.xml17
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa02.xml31
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa04.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa05.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa06.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa07.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa08.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa09.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa10.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa11.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa12.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa13.xml16
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/not-sa14.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional01.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional02.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional03.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional04.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional05.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional07.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional08.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional09.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional10.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional11.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional12.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional13.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional14.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional20.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional21.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional22.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional23.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional24.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/optional25.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/required00.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/required01.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/required02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/root.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/utf16b.xmlbin0 -> 98 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/invalid/utf16l.xmlbin0 -> 98 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/CVS/Entries61
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/attlist01.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/attlist02.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/attlist03.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/attlist04.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/attlist05.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/attlist06.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/attlist07.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/attlist08.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/attlist09.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/attlist10.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/attlist11.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/cond.dtd3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/cond01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/cond02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/content01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/content02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/content03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/decl01.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/decl01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/dtd00.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/dtd01.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/dtd02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/dtd03.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/dtd04.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/dtd05.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/dtd07.dtd7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/dtd07.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/element00.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/element01.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/element02.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/element03.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/element04.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/encoding01.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/encoding02.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/encoding03.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/encoding04.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/encoding05.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/encoding06.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/encoding07.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/not-sa03.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/pi.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/pubid01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/pubid02.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/pubid03.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/pubid04.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/pubid05.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml01.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml02.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml03.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml04.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml05.xml12
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml06.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml07.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml08.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml09.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml10.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml11.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml12.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/sgml13.xml11
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/not-wf/uri01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/sun-error.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/sun-invalid.xml359
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/sun-not-wf.xml179
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/sun-valid.xml147
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/CVS/Entries37
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/dtd00.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/dtd01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/dtdtest.dtd43
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/element.xml38
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/ext01.ent7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/ext01.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/ext02.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/not-sa01.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/not-sa02.xml30
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/not-sa03.xml25
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/not-sa04.xml30
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/notation01.dtd8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/notation01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/null.ent0
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/optional.xml50
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/CVS/Entries28
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/dtd00.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/dtd01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/element.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/ext01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/ext02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/not-sa01.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/not-sa02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/not-sa03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/not-sa04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/notation01.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/optional.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/pe00.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/pe02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/pe03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/required00.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/sa01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/sa02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/sa03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/sa04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/sa05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/sgml01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/v-lang01.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/v-lang02.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/v-lang03.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/v-lang04.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/v-lang05.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/out/v-lang06.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/pe00.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/pe00.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/pe01.dtd6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/pe01.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/pe01.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/pe02.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/pe03.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/required00.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/sa.dtd39
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/sa01.xml13
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/sa02.xml52
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/sa03.xml28
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/sa04.xml38
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/sa05.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/sgml01.xml14
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/v-lang01.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/v-lang02.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/v-lang03.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/v-lang04.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/v-lang05.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/sun/valid/v-lang06.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/testcases.dtd140
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmlconf-20010315.htm39994
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmlconf-20010315.xml54
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmlconf-20020521.htm39943
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmlconf-20031030.htm54207
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmlconf.xml94
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmlconformance.msxsl527
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmlconformance.xsl512
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/CVS/Entries6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/canonxml.html44
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/002.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/002.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/005.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/005.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/006.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/006.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/not-sa/022.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/not-sa/022.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/not-sa/CVS/Entries3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/not-sa/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/not-sa/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/not-sa/out/022.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/not-sa/out/CVS/Entries2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/not-sa/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/invalid/not-sa/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/CVS/Entries1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/CVS/Entries.Log3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/ext-sa/001.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/ext-sa/001.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/ext-sa/002.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/ext-sa/002.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/ext-sa/003.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/ext-sa/003.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/ext-sa/CVS/Entries7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/ext-sa/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/ext-sa/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/001.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/001.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/002.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/003.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/003.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/004.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/004.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/005.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/005.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/006.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/006.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/007.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/007.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/008.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/008.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/009.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/009.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/010.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/010.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/011.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/011.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/CVS/Entries22
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/not-sa/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/001.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/002.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/003.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/004.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/005.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/006.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/007.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/008.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/009.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/010.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/011.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/012.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/013.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/014.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/015.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/016.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/017.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/018.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/019.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/020.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/021.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/022.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/023.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/024.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/025.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/026.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/027.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/028.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/029.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/030.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/031.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/032.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/033.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/034.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/035.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/036.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/037.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/038.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/039.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/040.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/041.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/042.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/043.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/044.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/045.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/046.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/047.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/048.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/049.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/050.xml0
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/051.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/052.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/053.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/054.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/055.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/056.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/057.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/058.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/059.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/060.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/061.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/062.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/063.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/064.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/065.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/066.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/067.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/068.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/069.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/070.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/071.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/072.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/073.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/074.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/075.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/076.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/077.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/078.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/079.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/080.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/081.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/082.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/083.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/084.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/085.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/086.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/087.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/088.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/089.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/090.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/091.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/092.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/093.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/094.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/095.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/096.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/097.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/098.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/099.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/100.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/101.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/102.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/103.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/104.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/105.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/106.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/107.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/108.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/109.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/110.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/111.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/112.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/113.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/114.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/115.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/116.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/117.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/118.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/119.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/120.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/121.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/122.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/123.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/124.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/125.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/126.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/127.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/128.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/129.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/130.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/131.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/132.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/133.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/134.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/135.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/136.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/137.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/138.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/139.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/140.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/141.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/142.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/143.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/144.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/145.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/146.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/147.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/148.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/149.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/150.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/151.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/152.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/153.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/154.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/155.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/156.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/157.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/158.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/159.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/160.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/161.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/162.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/163.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/164.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/165.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/166.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/167.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/168.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/169.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/170.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/171.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/172.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/173.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/174.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/175.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/176.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/177.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/178.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/179.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/180.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/181.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/182.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/183.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/184.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/185.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/185.xml3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/186.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/CVS/Entries189
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/not-wf/sa/null.ent0
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/readme.html60
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/CVS/Entries1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/CVS/Entries.Log3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/001.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/001.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/002.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/002.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/003.ent0
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/003.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/004.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/004.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/005.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/005.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/006.ent4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/006.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/007.entbin0 -> 4 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/007.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/008.entbin0 -> 54 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/008.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/009.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/009.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/010.ent0
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/010.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/011.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/011.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/012.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/012.xml9
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/013.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/013.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/014.entbin0 -> 12 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/014.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/CVS/Entries29
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/001.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/002.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/003.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/004.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/005.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/006.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/007.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/008.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/009.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/010.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/011.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/012.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/013.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/014.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/CVS/Entries15
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/ext-sa/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/001.ent0
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/001.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/002.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/002.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/003-1.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/003-2.ent0
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/003.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/004-1.ent4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/004-2.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/004.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/005-1.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/005-2.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/005.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/006.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/006.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/007.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/007.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/008.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/008.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/009.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/009.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/010.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/010.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/011.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/011.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/012.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/012.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/013.ent4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/013.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/014.ent4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/014.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/015.ent5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/015.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/016.ent4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/016.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/017.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/017.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/018.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/018.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/019.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/019.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/020.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/020.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/021.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/021.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/023.ent5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/023.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/024.ent4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/024.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/025.ent5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/025.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/026.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/026.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/027.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/027.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/028.ent2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/028.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/029.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/029.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/030.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/030.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/031-1.ent3
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/031-2.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/031.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/CVS/Entries65
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/001.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/002.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/003.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/004.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/005.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/006.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/007.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/008.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/009.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/010.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/011.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/012.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/013.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/014.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/015.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/016.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/017.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/018.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/019.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/020.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/021.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/022.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/023.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/024.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/025.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/026.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/027.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/028.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/029.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/030.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/031.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/CVS/Entries32
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/not-sa/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/001.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/002.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/003.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/004.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/005.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/006.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/007.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/008.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/009.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/010.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/011.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/012.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/013.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/014.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/015.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/016.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/017.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/018.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/019.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/020.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/021.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/022.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/023.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/024.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/025.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/026.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/027.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/028.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/029.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/030.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/031.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/032.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/033.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/034.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/035.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/036.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/037.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/038.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/039.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/040.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/041.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/042.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/043.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/044.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/045.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/046.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/047.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/048.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/049.xmlbin0 -> 124 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/050.xmlbin0 -> 132 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/051.xmlbin0 -> 140 bytes-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/052.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/053.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/054.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/055.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/056.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/057.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/058.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/059.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/060.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/061.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/062.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/063.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/064.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/065.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/066.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/067.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/068.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/069.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/070.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/071.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/072.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/073.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/074.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/075.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/076.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/077.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/078.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/079.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/080.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/081.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/082.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/083.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/084.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/085.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/086.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/087.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/088.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/089.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/090.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/091.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/092.xml10
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/093.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/094.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/095.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/096.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/097.ent1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/097.xml8
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/098.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/099.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/100.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/101.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/102.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/103.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/104.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/105.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/106.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/107.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/108.xml7
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/109.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/110.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/111.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/112.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/113.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/114.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/115.xml6
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/116.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/117.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/118.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/119.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/CVS/Entries121
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/001.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/002.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/003.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/004.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/005.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/006.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/007.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/008.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/009.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/010.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/011.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/012.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/013.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/014.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/015.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/016.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/017.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/018.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/019.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/020.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/021.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/022.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/023.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/024.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/025.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/026.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/027.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/028.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/029.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/030.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/031.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/032.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/033.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/034.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/035.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/036.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/037.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/038.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/039.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/040.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/041.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/042.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/043.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/044.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/045.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/046.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/047.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/048.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/049.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/050.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/051.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/052.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/053.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/054.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/055.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/056.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/057.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/058.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/059.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/060.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/061.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/062.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/063.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/064.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/065.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/066.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/067.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/068.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/069.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/070.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/071.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/072.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/073.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/074.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/075.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/076.xml5
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/077.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/078.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/079.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/080.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/081.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/082.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/083.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/084.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/085.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/086.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/087.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/088.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/089.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/090.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/091.xml4
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/092.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/093.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/094.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/095.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/096.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/097.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/098.xml2
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/099.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/100.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/101.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/102.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/103.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/104.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/105.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/106.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/107.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/108.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/109.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/110.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/111.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/112.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/113.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/114.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/115.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/116.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/117.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/118.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/119.xml1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/CVS/Entries120
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/CVS/Repository1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/valid/sa/out/CVS/Root1
-rw-r--r--tests/auto/qxmlstream/XML-Test-Suite/xmlconf/xmltest/xmltest.xml1433
-rw-r--r--tests/auto/qxmlstream/data/001.ref12
-rw-r--r--tests/auto/qxmlstream/data/001.xml7
-rw-r--r--tests/auto/qxmlstream/data/002.ref13
-rw-r--r--tests/auto/qxmlstream/data/002.xml8
-rw-r--r--tests/auto/qxmlstream/data/003.ref12
-rw-r--r--tests/auto/qxmlstream/data/003.xml7
-rw-r--r--tests/auto/qxmlstream/data/004.ref12
-rw-r--r--tests/auto/qxmlstream/data/004.xml7
-rw-r--r--tests/auto/qxmlstream/data/005.ref12
-rw-r--r--tests/auto/qxmlstream/data/005.xml7
-rw-r--r--tests/auto/qxmlstream/data/006.ref12
-rw-r--r--tests/auto/qxmlstream/data/006.xml7
-rw-r--r--tests/auto/qxmlstream/data/007.ref36
-rw-r--r--tests/auto/qxmlstream/data/007.xml20
-rw-r--r--tests/auto/qxmlstream/data/008.ref36
-rw-r--r--tests/auto/qxmlstream/data/008.xml20
-rw-r--r--tests/auto/qxmlstream/data/009.ref27
-rw-r--r--tests/auto/qxmlstream/data/009.xml19
-rw-r--r--tests/auto/qxmlstream/data/010.ref27
-rw-r--r--tests/auto/qxmlstream/data/010.xml19
-rw-r--r--tests/auto/qxmlstream/data/011.ref30
-rw-r--r--tests/auto/qxmlstream/data/011.xml20
-rw-r--r--tests/auto/qxmlstream/data/012.ref27
-rw-r--r--tests/auto/qxmlstream/data/012.xml19
-rw-r--r--tests/auto/qxmlstream/data/013.ref7
-rw-r--r--tests/auto/qxmlstream/data/013.xml5
-rw-r--r--tests/auto/qxmlstream/data/014.ref4
-rw-r--r--tests/auto/qxmlstream/data/014.xml3
-rw-r--r--tests/auto/qxmlstream/data/015.ref4
-rw-r--r--tests/auto/qxmlstream/data/015.xml3
-rw-r--r--tests/auto/qxmlstream/data/016.ref4
-rw-r--r--tests/auto/qxmlstream/data/016.xml3
-rw-r--r--tests/auto/qxmlstream/data/017.ref5
-rw-r--r--tests/auto/qxmlstream/data/017.xml3
-rw-r--r--tests/auto/qxmlstream/data/018.ref7
-rw-r--r--tests/auto/qxmlstream/data/018.xml3
-rw-r--r--tests/auto/qxmlstream/data/019.ref7
-rw-r--r--tests/auto/qxmlstream/data/019.xml3
-rw-r--r--tests/auto/qxmlstream/data/020.ref9
-rw-r--r--tests/auto/qxmlstream/data/020.xml3
-rw-r--r--tests/auto/qxmlstream/data/021.ref15
-rw-r--r--tests/auto/qxmlstream/data/021.xml6
-rw-r--r--tests/auto/qxmlstream/data/022.ref15
-rw-r--r--tests/auto/qxmlstream/data/022.xml6
-rw-r--r--tests/auto/qxmlstream/data/023.ref9
-rw-r--r--tests/auto/qxmlstream/data/023.xml6
-rw-r--r--tests/auto/qxmlstream/data/024.ref15
-rw-r--r--tests/auto/qxmlstream/data/024.xml6
-rw-r--r--tests/auto/qxmlstream/data/025.ref4
-rw-r--r--tests/auto/qxmlstream/data/025.xml3
-rw-r--r--tests/auto/qxmlstream/data/026.ref6
-rw-r--r--tests/auto/qxmlstream/data/026.xml3
-rw-r--r--tests/auto/qxmlstream/data/027.ref7
-rw-r--r--tests/auto/qxmlstream/data/027.xml3
-rw-r--r--tests/auto/qxmlstream/data/028.ref7
-rw-r--r--tests/auto/qxmlstream/data/028.xml3
-rw-r--r--tests/auto/qxmlstream/data/029.ref4
-rw-r--r--tests/auto/qxmlstream/data/029.xml4
-rw-r--r--tests/auto/qxmlstream/data/030.ref5
-rw-r--r--tests/auto/qxmlstream/data/030.xml4
-rw-r--r--tests/auto/qxmlstream/data/031.ref5
-rw-r--r--tests/auto/qxmlstream/data/031.xml4
-rw-r--r--tests/auto/qxmlstream/data/032.ref5
-rw-r--r--tests/auto/qxmlstream/data/032.xml5
-rw-r--r--tests/auto/qxmlstream/data/033.ref5
-rw-r--r--tests/auto/qxmlstream/data/033.xml4
-rw-r--r--tests/auto/qxmlstream/data/034.ref7
-rw-r--r--tests/auto/qxmlstream/data/034.xml3
-rw-r--r--tests/auto/qxmlstream/data/035.ref16
-rw-r--r--tests/auto/qxmlstream/data/035.xml8
-rw-r--r--tests/auto/qxmlstream/data/036.ref16
-rw-r--r--tests/auto/qxmlstream/data/036.xml8
-rw-r--r--tests/auto/qxmlstream/data/037.ref21
-rw-r--r--tests/auto/qxmlstream/data/037.xml8
-rw-r--r--tests/auto/qxmlstream/data/038.ref20
-rw-r--r--tests/auto/qxmlstream/data/038.xml8
-rw-r--r--tests/auto/qxmlstream/data/039.ref24
-rw-r--r--tests/auto/qxmlstream/data/039.xml10
-rw-r--r--tests/auto/qxmlstream/data/040.ref22
-rw-r--r--tests/auto/qxmlstream/data/040.xml9
-rw-r--r--tests/auto/qxmlstream/data/041.ref20
-rw-r--r--tests/auto/qxmlstream/data/041.xml8
-rw-r--r--tests/auto/qxmlstream/data/042.ref4
-rw-r--r--tests/auto/qxmlstream/data/042.xml4
-rw-r--r--tests/auto/qxmlstream/data/043.ref4
-rw-r--r--tests/auto/qxmlstream/data/043.xml7
-rw-r--r--tests/auto/qxmlstream/data/044.ref4
-rw-r--r--tests/auto/qxmlstream/data/044.xml7
-rw-r--r--tests/auto/qxmlstream/data/045.ref12
-rw-r--r--tests/auto/qxmlstream/data/045.xml7
-rw-r--r--tests/auto/qxmlstream/data/046.ref21
-rw-r--r--tests/auto/qxmlstream/data/046.xml10
-rw-r--r--tests/auto/qxmlstream/data/047.ref5
-rw-r--r--tests/auto/qxmlstream/data/047.xml2
-rw-r--r--tests/auto/qxmlstream/data/048.ref4
-rw-r--r--tests/auto/qxmlstream/data/048.xml2
-rw-r--r--tests/auto/qxmlstream/data/051reduced.ref4
-rw-r--r--tests/auto/qxmlstream/data/051reduced.xmlbin0 -> 22 bytes-rw-r--r--tests/auto/qxmlstream/data/1.ref8
-rw-r--r--tests/auto/qxmlstream/data/1.xml1
-rw-r--r--tests/auto/qxmlstream/data/10.ref6
-rw-r--r--tests/auto/qxmlstream/data/10.xml2
-rw-r--r--tests/auto/qxmlstream/data/11.ref6
-rw-r--r--tests/auto/qxmlstream/data/11.xml1
-rw-r--r--tests/auto/qxmlstream/data/12.ref19
-rw-r--r--tests/auto/qxmlstream/data/12.xml8
-rw-r--r--tests/auto/qxmlstream/data/13.ref14
-rw-r--r--tests/auto/qxmlstream/data/13.xml6
-rw-r--r--tests/auto/qxmlstream/data/14.ref18
-rw-r--r--tests/auto/qxmlstream/data/14.xml8
-rw-r--r--tests/auto/qxmlstream/data/15.ref67
-rw-r--r--tests/auto/qxmlstream/data/15.xml15
-rw-r--r--tests/auto/qxmlstream/data/16.ref6
-rw-r--r--tests/auto/qxmlstream/data/16.xml3
-rw-r--r--tests/auto/qxmlstream/data/2.ref9
-rw-r--r--tests/auto/qxmlstream/data/2.xml1
-rw-r--r--tests/auto/qxmlstream/data/20.ref21
-rw-r--r--tests/auto/qxmlstream/data/20.xml2
-rw-r--r--tests/auto/qxmlstream/data/21.ref56
-rw-r--r--tests/auto/qxmlstream/data/21.xml26
-rw-r--r--tests/auto/qxmlstream/data/22.ref4
-rw-r--r--tests/auto/qxmlstream/data/22.xml2
-rw-r--r--tests/auto/qxmlstream/data/3.ref6
-rw-r--r--tests/auto/qxmlstream/data/3.xml4
-rw-r--r--tests/auto/qxmlstream/data/4.ref21
-rw-r--r--tests/auto/qxmlstream/data/4.xml9
-rw-r--r--tests/auto/qxmlstream/data/5.ref19
-rw-r--r--tests/auto/qxmlstream/data/5.xml9
-rw-r--r--tests/auto/qxmlstream/data/6.ref13
-rw-r--r--tests/auto/qxmlstream/data/6.xml1
-rw-r--r--tests/auto/qxmlstream/data/7.ref7
-rw-r--r--tests/auto/qxmlstream/data/7.xml1
-rw-r--r--tests/auto/qxmlstream/data/8.ref3
-rw-r--r--tests/auto/qxmlstream/data/8.xml3
-rw-r--r--tests/auto/qxmlstream/data/9.ref2
-rw-r--r--tests/auto/qxmlstream/data/9.xml2
-rw-r--r--tests/auto/qxmlstream/data/books.ref18
-rw-r--r--tests/auto/qxmlstream/data/books.xml5
-rw-r--r--tests/auto/qxmlstream/data/colonInPI.ref7
-rw-r--r--tests/auto/qxmlstream/data/colonInPI.xml4
-rw-r--r--tests/auto/qxmlstream/data/mixedContent.ref207
-rw-r--r--tests/auto/qxmlstream/data/mixedContent.xml35
-rw-r--r--tests/auto/qxmlstream/data/namespaceCDATA.ref22
-rw-r--r--tests/auto/qxmlstream/data/namespaceCDATA.xml8
-rw-r--r--tests/auto/qxmlstream/data/namespaces151
-rw-r--r--tests/auto/qxmlstream/data/org_module.ref2780
-rw-r--r--tests/auto/qxmlstream/data/org_module.xml389
-rw-r--r--tests/auto/qxmlstream/data/spaceBracket.ref5
-rw-r--r--tests/auto/qxmlstream/data/spaceBracket.xml1
-rw-r--r--tests/auto/qxmlstream/qc14n.h210
-rw-r--r--tests/auto/qxmlstream/qxmlstream.pro11
-rwxr-xr-xtests/auto/qxmlstream/setupSuite.sh20
-rw-r--r--tests/auto/qxmlstream/tst_qxmlstream.cpp1396
-rw-r--r--tests/auto/qzip/.gitignore1
-rw-r--r--tests/auto/qzip/qzip.pro11
-rw-r--r--tests/auto/qzip/testdata/symlink.zipbin0 -> 289 bytes-rw-r--r--tests/auto/qzip/testdata/test.zipbin0 -> 286 bytes-rw-r--r--tests/auto/qzip/tst_qzip.cpp152
-rw-r--r--tests/auto/rcc/.gitignore1
-rw-r--r--tests/auto/rcc/data/images.bin.expectedbin0 -> 663 bytes-rw-r--r--tests/auto/rcc/data/images.expected126
-rw-r--r--tests/auto/rcc/data/images.qrc7
-rw-r--r--tests/auto/rcc/data/images/circle.pngbin0 -> 165 bytes-rw-r--r--tests/auto/rcc/data/images/square.pngbin0 -> 94 bytes-rw-r--r--tests/auto/rcc/data/images/subdir/triangle.pngbin0 -> 170 bytes-rw-r--r--tests/auto/rcc/rcc.pro6
-rw-r--r--tests/auto/rcc/tst_rcc.cpp173
-rwxr-xr-xtests/auto/runQtXmlPatternsTests.sh59
-rw-r--r--tests/auto/selftests/.gitignore26
-rw-r--r--tests/auto/selftests/README5
-rw-r--r--tests/auto/selftests/alive/.gitignore1
-rw-r--r--tests/auto/selftests/alive/alive.pro7
-rw-r--r--tests/auto/selftests/alive/qtestalive.cpp159
-rw-r--r--tests/auto/selftests/alive/tst_alive.cpp174
-rw-r--r--tests/auto/selftests/assert/assert.pro10
-rw-r--r--tests/auto/selftests/assert/tst_assert.cpp71
-rw-r--r--tests/auto/selftests/benchlibcallgrind/benchlibcallgrind.pro8
-rw-r--r--tests/auto/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp97
-rw-r--r--tests/auto/selftests/benchlibeventcounter/benchlibeventcounter.pro8
-rw-r--r--tests/auto/selftests/benchlibeventcounter/tst_benchlibeventcounter.cpp111
-rw-r--r--tests/auto/selftests/benchliboptions/benchliboptions.pro8
-rw-r--r--tests/auto/selftests/benchliboptions/tst_benchliboptions.cpp130
-rw-r--r--tests/auto/selftests/benchlibtickcounter/benchlibtickcounter.pro8
-rw-r--r--tests/auto/selftests/benchlibtickcounter/tst_benchlibtickcounter.cpp80
-rw-r--r--tests/auto/selftests/benchlibwalltime/benchlibwalltime.pro8
-rw-r--r--tests/auto/selftests/benchlibwalltime/tst_benchlibwalltime.cpp71
-rw-r--r--tests/auto/selftests/cmptest/cmptest.pro8
-rw-r--r--tests/auto/selftests/cmptest/tst_cmptest.cpp81
-rw-r--r--tests/auto/selftests/commandlinedata/commandlinedata.pro8
-rw-r--r--tests/auto/selftests/commandlinedata/tst_commandlinedata.cpp81
-rw-r--r--tests/auto/selftests/crashes/crashes.pro9
-rw-r--r--tests/auto/selftests/crashes/tst_crashes.cpp70
-rw-r--r--tests/auto/selftests/datatable/datatable.pro8
-rw-r--r--tests/auto/selftests/datatable/tst_datatable.cpp189
-rw-r--r--tests/auto/selftests/datetime/datetime.pro8
-rw-r--r--tests/auto/selftests/datetime/tst_datetime.cpp90
-rw-r--r--tests/auto/selftests/differentexec/differentexec.pro8
-rw-r--r--tests/auto/selftests/differentexec/tst_differentexec.cpp92
-rw-r--r--tests/auto/selftests/exception/exception.pro8
-rw-r--r--tests/auto/selftests/exception/tst_exception.cpp69
-rw-r--r--tests/auto/selftests/expected_alive.txt33
-rw-r--r--tests/auto/selftests/expected_assert.txt9
-rw-r--r--tests/auto/selftests/expected_benchlibcallgrind.txt9
-rw-r--r--tests/auto/selftests/expected_benchlibeventcounter.txt21
-rw-r--r--tests/auto/selftests/expected_benchliboptions.txt27
-rw-r--r--tests/auto/selftests/expected_benchlibtickcounter.txt9
-rw-r--r--tests/auto/selftests/expected_benchlibwalltime.txt12
-rw-r--r--tests/auto/selftests/expected_cmptest.txt8
-rw-r--r--tests/auto/selftests/expected_commandlinedata.txt24
-rw-r--r--tests/auto/selftests/expected_crashes_1.txt3
-rw-r--r--tests/auto/selftests/expected_crashes_2.txt7
-rw-r--r--tests/auto/selftests/expected_datatable.txt35
-rw-r--r--tests/auto/selftests/expected_datetime.txt18
-rw-r--r--tests/auto/selftests/expected_differentexec.txt21
-rw-r--r--tests/auto/selftests/expected_exception.txt7
-rw-r--r--tests/auto/selftests/expected_expectfail.txt20
-rw-r--r--tests/auto/selftests/expected_failinit.txt7
-rw-r--r--tests/auto/selftests/expected_failinitdata.txt6
-rw-r--r--tests/auto/selftests/expected_fatal.txt6
-rw-r--r--tests/auto/selftests/expected_fetchbogus.txt8
-rw-r--r--tests/auto/selftests/expected_globaldata.txt45
-rw-r--r--tests/auto/selftests/expected_maxwarnings.txt2009
-rw-r--r--tests/auto/selftests/expected_multiexec.txt35
-rw-r--r--tests/auto/selftests/expected_qexecstringlist.txt46
-rw-r--r--tests/auto/selftests/expected_singleskip.txt8
-rw-r--r--tests/auto/selftests/expected_skip.txt14
-rw-r--r--tests/auto/selftests/expected_skipglobal.txt6
-rw-r--r--tests/auto/selftests/expected_skipinit.txt7
-rw-r--r--tests/auto/selftests/expected_skipinitdata.txt6
-rw-r--r--tests/auto/selftests/expected_sleep.txt7
-rw-r--r--tests/auto/selftests/expected_strcmp.txt33
-rw-r--r--tests/auto/selftests/expected_subtest.txt81
-rw-r--r--tests/auto/selftests/expected_waitwithoutgui.txt2
-rw-r--r--tests/auto/selftests/expected_warnings.txt24
-rw-r--r--tests/auto/selftests/expectfail/expectfail.pro8
-rw-r--r--tests/auto/selftests/expectfail/tst_expectfail.cpp85
-rw-r--r--tests/auto/selftests/failinit/failinit.pro8
-rw-r--r--tests/auto/selftests/failinit/tst_failinit.cpp68
-rw-r--r--tests/auto/selftests/failinitdata/failinitdata.pro8
-rw-r--r--tests/auto/selftests/failinitdata/tst_failinitdata.cpp77
-rw-r--r--tests/auto/selftests/fetchbogus/fetchbogus.pro8
-rw-r--r--tests/auto/selftests/fetchbogus/tst_fetchbogus.cpp68
-rw-r--r--tests/auto/selftests/globaldata/globaldata.pro8
-rw-r--r--tests/auto/selftests/globaldata/tst_globaldata.cpp153
-rw-r--r--tests/auto/selftests/maxwarnings/maxwarnings.cpp60
-rw-r--r--tests/auto/selftests/maxwarnings/maxwarnings.pro8
-rw-r--r--tests/auto/selftests/multiexec/multiexec.pro8
-rw-r--r--tests/auto/selftests/multiexec/tst_multiexec.cpp60
-rw-r--r--tests/auto/selftests/qexecstringlist/qexecstringlist.pro8
-rw-r--r--tests/auto/selftests/qexecstringlist/tst_qexecstringlist.cpp96
-rw-r--r--tests/auto/selftests/selftests.pro14
-rw-r--r--tests/auto/selftests/selftests.qrc38
-rw-r--r--tests/auto/selftests/singleskip/singleskip.pro8
-rw-r--r--tests/auto/selftests/singleskip/tst_singleskip.cpp61
-rw-r--r--tests/auto/selftests/skip/skip.pro8
-rw-r--r--tests/auto/selftests/skip/tst_skip.cpp103
-rw-r--r--tests/auto/selftests/skipglobal/skipglobal.pro8
-rw-r--r--tests/auto/selftests/skipglobal/tst_skipglobal.cpp113
-rw-r--r--tests/auto/selftests/skipinit/skipinit.pro8
-rw-r--r--tests/auto/selftests/skipinit/tst_skipinit.cpp68
-rw-r--r--tests/auto/selftests/skipinitdata/skipinitdata.pro8
-rw-r--r--tests/auto/selftests/skipinitdata/tst_skipinitdata.cpp73
-rw-r--r--tests/auto/selftests/sleep/sleep.pro8
-rw-r--r--tests/auto/selftests/sleep/tst_sleep.cpp71
-rw-r--r--tests/auto/selftests/strcmp/strcmp.pro8
-rw-r--r--tests/auto/selftests/strcmp/tst_strcmp.cpp138
-rw-r--r--tests/auto/selftests/subtest/subtest.pro8
-rw-r--r--tests/auto/selftests/subtest/tst_subtest.cpp219
-rw-r--r--tests/auto/selftests/test/test.pro17
-rw-r--r--tests/auto/selftests/tst_selftests.cpp437
-rwxr-xr-xtests/auto/selftests/updateBaselines.sh34
-rw-r--r--tests/auto/selftests/waitwithoutgui/tst_waitwithoutgui.cpp62
-rw-r--r--tests/auto/selftests/waitwithoutgui/waitwithoutgui.pro8
-rw-r--r--tests/auto/selftests/warnings/tst_warnings.cpp96
-rw-r--r--tests/auto/selftests/warnings/warnings.pro8
-rw-r--r--tests/auto/solutions.pri16
-rw-r--r--tests/auto/symbols/.gitignore1
-rw-r--r--tests/auto/symbols/symbols.pro7
-rw-r--r--tests/auto/symbols/tst_symbols.cpp433
-rwxr-xr-xtests/auto/test.pl191
-rw-r--r--tests/auto/tests.xml805
-rw-r--r--tests/auto/uic/.gitignore1
-rw-r--r--tests/auto/uic/baseline/.gitattributes1
-rw-r--r--tests/auto/uic/baseline/Dialog_with_Buttons_Bottom.ui71
-rw-r--r--tests/auto/uic/baseline/Dialog_with_Buttons_Bottom.ui.h60
-rw-r--r--tests/auto/uic/baseline/Dialog_with_Buttons_Right.ui71
-rw-r--r--tests/auto/uic/baseline/Dialog_with_Buttons_Right.ui.h60
-rw-r--r--tests/auto/uic/baseline/Dialog_without_Buttons.ui18
-rw-r--r--tests/auto/uic/baseline/Dialog_without_Buttons.ui.h51
-rw-r--r--tests/auto/uic/baseline/Main_Window.ui27
-rw-r--r--tests/auto/uic/baseline/Main_Window.ui.h66
-rw-r--r--tests/auto/uic/baseline/Widget.ui44
-rw-r--r--tests/auto/uic/baseline/Widget.ui.h82
-rw-r--r--tests/auto/uic/baseline/addlinkdialog.ui112
-rw-r--r--tests/auto/uic/baseline/addlinkdialog.ui.h118
-rw-r--r--tests/auto/uic/baseline/addtorrentform.ui266
-rw-r--r--tests/auto/uic/baseline/addtorrentform.ui.h242
-rw-r--r--tests/auto/uic/baseline/authenticationdialog.ui129
-rw-r--r--tests/auto/uic/baseline/authenticationdialog.ui.h127
-rw-r--r--tests/auto/uic/baseline/backside.ui208
-rw-r--r--tests/auto/uic/baseline/backside.ui.h197
-rw-r--r--tests/auto/uic/baseline/batchtranslation.ui235
-rw-r--r--tests/auto/uic/baseline/batchtranslation.ui.h253
-rw-r--r--tests/auto/uic/baseline/bookmarkdialog.ui161
-rw-r--r--tests/auto/uic/baseline/bookmarkdialog.ui.h172
-rw-r--r--tests/auto/uic/baseline/bookwindow.ui149
-rw-r--r--tests/auto/uic/baseline/bookwindow.ui.h183
-rw-r--r--tests/auto/uic/baseline/browserwidget.ui199
-rw-r--r--tests/auto/uic/baseline/browserwidget.ui.h183
-rw-r--r--tests/auto/uic/baseline/calculator.ui406
-rw-r--r--tests/auto/uic/baseline/calculator.ui.h202
-rw-r--r--tests/auto/uic/baseline/calculatorform.ui303
-rw-r--r--tests/auto/uic/baseline/calculatorform.ui.h195
-rw-r--r--tests/auto/uic/baseline/certificateinfo.ui85
-rw-r--r--tests/auto/uic/baseline/certificateinfo.ui.h111
-rw-r--r--tests/auto/uic/baseline/chatdialog.ui79
-rw-r--r--tests/auto/uic/baseline/chatdialog.ui.h117
-rw-r--r--tests/auto/uic/baseline/chatmainwindow.ui185
-rw-r--r--tests/auto/uic/baseline/chatmainwindow.ui.h182
-rw-r--r--tests/auto/uic/baseline/chatsetnickname.ui149
-rw-r--r--tests/auto/uic/baseline/chatsetnickname.ui.h134
-rw-r--r--tests/auto/uic/baseline/config.ui2527
-rw-r--r--tests/auto/uic/baseline/config.ui.h773
-rw-r--r--tests/auto/uic/baseline/connectdialog.ui150
-rw-r--r--tests/auto/uic/baseline/connectdialog.ui.h150
-rw-r--r--tests/auto/uic/baseline/controller.ui64
-rw-r--r--tests/auto/uic/baseline/controller.ui.h99
-rw-r--r--tests/auto/uic/baseline/cookies.ui106
-rw-r--r--tests/auto/uic/baseline/cookies.ui.h111
-rw-r--r--tests/auto/uic/baseline/cookiesexceptions.ui184
-rw-r--r--tests/auto/uic/baseline/cookiesexceptions.ui.h184
-rw-r--r--tests/auto/uic/baseline/default.ui329
-rw-r--r--tests/auto/uic/baseline/default.ui.h315
-rw-r--r--tests/auto/uic/baseline/dialog.ui47
-rw-r--r--tests/auto/uic/baseline/dialog.ui.h80
-rw-r--r--tests/auto/uic/baseline/downloaditem.ui134
-rw-r--r--tests/auto/uic/baseline/downloaditem.ui.h149
-rw-r--r--tests/auto/uic/baseline/downloads.ui83
-rw-r--r--tests/auto/uic/baseline/downloads.ui.h99
-rw-r--r--tests/auto/uic/baseline/embeddeddialog.ui87
-rw-r--r--tests/auto/uic/baseline/embeddeddialog.ui.h123
-rw-r--r--tests/auto/uic/baseline/filespage.ui79
-rw-r--r--tests/auto/uic/baseline/filespage.ui.h102
-rw-r--r--tests/auto/uic/baseline/filternamedialog.ui67
-rw-r--r--tests/auto/uic/baseline/filternamedialog.ui.h96
-rw-r--r--tests/auto/uic/baseline/filterpage.ui125
-rw-r--r--tests/auto/uic/baseline/filterpage.ui.h128
-rw-r--r--tests/auto/uic/baseline/finddialog.ui264
-rw-r--r--tests/auto/uic/baseline/finddialog.ui.h255
-rw-r--r--tests/auto/uic/baseline/form.ui162
-rw-r--r--tests/auto/uic/baseline/form.ui.h144
-rw-r--r--tests/auto/uic/baseline/formwindowsettings.ui310
-rw-r--r--tests/auto/uic/baseline/formwindowsettings.ui.h312
-rw-r--r--tests/auto/uic/baseline/generalpage.ui69
-rw-r--r--tests/auto/uic/baseline/generalpage.ui.h94
-rw-r--r--tests/auto/uic/baseline/gridpanel.ui144
-rw-r--r--tests/auto/uic/baseline/gridpanel.ui.h162
-rw-r--r--tests/auto/uic/baseline/helpdialog.ui403
-rw-r--r--tests/auto/uic/baseline/helpdialog.ui.h396
-rw-r--r--tests/auto/uic/baseline/history.ui106
-rw-r--r--tests/auto/uic/baseline/history.ui.h111
-rw-r--r--tests/auto/uic/baseline/identifierpage.ui132
-rw-r--r--tests/auto/uic/baseline/identifierpage.ui.h111
-rw-r--r--tests/auto/uic/baseline/imagedialog.ui389
-rw-r--r--tests/auto/uic/baseline/imagedialog.ui.h222
-rw-r--r--tests/auto/uic/baseline/inputpage.ui79
-rw-r--r--tests/auto/uic/baseline/inputpage.ui.h102
-rw-r--r--tests/auto/uic/baseline/installdialog.ui118
-rw-r--r--tests/auto/uic/baseline/installdialog.ui.h145
-rw-r--r--tests/auto/uic/baseline/languagesdialog.ui160
-rw-r--r--tests/auto/uic/baseline/languagesdialog.ui.h157
-rw-r--r--tests/auto/uic/baseline/listwidgeteditor.ui225
-rw-r--r--tests/auto/uic/baseline/listwidgeteditor.ui.h228
-rw-r--r--tests/auto/uic/baseline/mainwindow.ui502
-rw-r--r--tests/auto/uic/baseline/mainwindow.ui.h401
-rw-r--r--tests/auto/uic/baseline/mainwindowbase.ui1213
-rw-r--r--tests/auto/uic/baseline/mainwindowbase.ui.h968
-rw-r--r--tests/auto/uic/baseline/mydialog.ui47
-rw-r--r--tests/auto/uic/baseline/mydialog.ui.h79
-rw-r--r--tests/auto/uic/baseline/myform.ui130
-rw-r--r--tests/auto/uic/baseline/myform.ui.h149
-rw-r--r--tests/auto/uic/baseline/newactiondialog.ui201
-rw-r--r--tests/auto/uic/baseline/newactiondialog.ui.h197
-rw-r--r--tests/auto/uic/baseline/newdynamicpropertydialog.ui106
-rw-r--r--tests/auto/uic/baseline/newdynamicpropertydialog.ui.h133
-rw-r--r--tests/auto/uic/baseline/newform.ui152
-rw-r--r--tests/auto/uic/baseline/newform.ui.h166
-rw-r--r--tests/auto/uic/baseline/orderdialog.ui197
-rw-r--r--tests/auto/uic/baseline/orderdialog.ui.h172
-rw-r--r--tests/auto/uic/baseline/outputpage.ui95
-rw-r--r--tests/auto/uic/baseline/outputpage.ui.h108
-rw-r--r--tests/auto/uic/baseline/pagefold.ui349
-rw-r--r--tests/auto/uic/baseline/pagefold.ui.h329
-rw-r--r--tests/auto/uic/baseline/paletteeditor.ui263
-rw-r--r--tests/auto/uic/baseline/paletteeditor.ui.h240
-rw-r--r--tests/auto/uic/baseline/paletteeditoradvancedbase.ui616
-rw-r--r--tests/auto/uic/baseline/paletteeditoradvancedbase.ui.h484
-rw-r--r--tests/auto/uic/baseline/passworddialog.ui111
-rw-r--r--tests/auto/uic/baseline/passworddialog.ui.h121
-rw-r--r--tests/auto/uic/baseline/pathpage.ui114
-rw-r--r--tests/auto/uic/baseline/pathpage.ui.h127
-rw-r--r--tests/auto/uic/baseline/phrasebookbox.ui210
-rw-r--r--tests/auto/uic/baseline/phrasebookbox.ui.h245
-rw-r--r--tests/auto/uic/baseline/plugindialog.ui152
-rw-r--r--tests/auto/uic/baseline/plugindialog.ui.h145
-rw-r--r--tests/auto/uic/baseline/preferencesdialog.ui165
-rw-r--r--tests/auto/uic/baseline/preferencesdialog.ui.h173
-rw-r--r--tests/auto/uic/baseline/previewconfigurationwidget.ui91
-rw-r--r--tests/auto/uic/baseline/previewconfigurationwidget.ui.h134
-rw-r--r--tests/auto/uic/baseline/previewdialogbase.ui224
-rw-r--r--tests/auto/uic/baseline/previewdialogbase.ui.h192
-rw-r--r--tests/auto/uic/baseline/previewwidget.ui237
-rw-r--r--tests/auto/uic/baseline/previewwidget.ui.h282
-rw-r--r--tests/auto/uic/baseline/previewwidgetbase.ui339
-rw-r--r--tests/auto/uic/baseline/previewwidgetbase.ui.h316
-rw-r--r--tests/auto/uic/baseline/proxy.ui104
-rw-r--r--tests/auto/uic/baseline/proxy.ui.h110
-rw-r--r--tests/auto/uic/baseline/qfiledialog.ui319
-rw-r--r--tests/auto/uic/baseline/qfiledialog.ui.h320
-rw-r--r--tests/auto/uic/baseline/qpagesetupwidget.ui353
-rw-r--r--tests/auto/uic/baseline/qpagesetupwidget.ui.h320
-rw-r--r--tests/auto/uic/baseline/qprintpropertieswidget.ui70
-rw-r--r--tests/auto/uic/baseline/qprintpropertieswidget.ui.h99
-rw-r--r--tests/auto/uic/baseline/qprintsettingsoutput.ui371
-rw-r--r--tests/auto/uic/baseline/qprintsettingsoutput.ui.h313
-rw-r--r--tests/auto/uic/baseline/qprintwidget.ui116
-rw-r--r--tests/auto/uic/baseline/qprintwidget.ui.h167
-rw-r--r--tests/auto/uic/baseline/qsqlconnectiondialog.ui224
-rw-r--r--tests/auto/uic/baseline/qsqlconnectiondialog.ui.h234
-rw-r--r--tests/auto/uic/baseline/qtgradientdialog.ui120
-rw-r--r--tests/auto/uic/baseline/qtgradientdialog.ui.h120
-rw-r--r--tests/auto/uic/baseline/qtgradienteditor.ui1376
-rw-r--r--tests/auto/uic/baseline/qtgradienteditor.ui.h726
-rw-r--r--tests/auto/uic/baseline/qtgradientview.ui135
-rw-r--r--tests/auto/uic/baseline/qtgradientview.ui.h128
-rw-r--r--tests/auto/uic/baseline/qtgradientviewdialog.ui120
-rw-r--r--tests/auto/uic/baseline/qtgradientviewdialog.ui.h120
-rw-r--r--tests/auto/uic/baseline/qtresourceeditordialog.ui180
-rw-r--r--tests/auto/uic/baseline/qtresourceeditordialog.ui.h177
-rw-r--r--tests/auto/uic/baseline/qttoolbardialog.ui207
-rw-r--r--tests/auto/uic/baseline/qttoolbardialog.ui.h229
-rw-r--r--tests/auto/uic/baseline/querywidget.ui163
-rw-r--r--tests/auto/uic/baseline/querywidget.ui.h175
-rw-r--r--tests/auto/uic/baseline/remotecontrol.ui228
-rw-r--r--tests/auto/uic/baseline/remotecontrol.ui.h253
-rw-r--r--tests/auto/uic/baseline/saveformastemplate.ui165
-rw-r--r--tests/auto/uic/baseline/saveformastemplate.ui.h165
-rw-r--r--tests/auto/uic/baseline/settings.ui262
-rw-r--r--tests/auto/uic/baseline/settings.ui.h207
-rw-r--r--tests/auto/uic/baseline/signalslotdialog.ui129
-rw-r--r--tests/auto/uic/baseline/signalslotdialog.ui.h170
-rw-r--r--tests/auto/uic/baseline/sslclient.ui190
-rw-r--r--tests/auto/uic/baseline/sslclient.ui.h185
-rw-r--r--tests/auto/uic/baseline/sslerrors.ui110
-rw-r--r--tests/auto/uic/baseline/sslerrors.ui.h112
-rw-r--r--tests/auto/uic/baseline/statistics.ui241
-rw-r--r--tests/auto/uic/baseline/statistics.ui.h222
-rw-r--r--tests/auto/uic/baseline/stringlisteditor.ui264
-rw-r--r--tests/auto/uic/baseline/stringlisteditor.ui.h267
-rw-r--r--tests/auto/uic/baseline/stylesheeteditor.ui171
-rw-r--r--tests/auto/uic/baseline/stylesheeteditor.ui.h155
-rw-r--r--tests/auto/uic/baseline/tabbedbrowser.ui232
-rw-r--r--tests/auto/uic/baseline/tabbedbrowser.ui.h218
-rw-r--r--tests/auto/uic/baseline/tablewidgeteditor.ui402
-rw-r--r--tests/auto/uic/baseline/tablewidgeteditor.ui.h392
-rw-r--r--tests/auto/uic/baseline/tetrixwindow.ui164
-rw-r--r--tests/auto/uic/baseline/tetrixwindow.ui.h174
-rw-r--r--tests/auto/uic/baseline/textfinder.ui89
-rw-r--r--tests/auto/uic/baseline/textfinder.ui.h114
-rw-r--r--tests/auto/uic/baseline/topicchooser.ui116
-rw-r--r--tests/auto/uic/baseline/topicchooser.ui.h120
-rw-r--r--tests/auto/uic/baseline/translatedialog.ui300
-rw-r--r--tests/auto/uic/baseline/translatedialog.ui.h261
-rw-r--r--tests/auto/uic/baseline/translationsettings.ui107
-rw-r--r--tests/auto/uic/baseline/translationsettings.ui.h121
-rw-r--r--tests/auto/uic/baseline/treewidgeteditor.ui378
-rw-r--r--tests/auto/uic/baseline/treewidgeteditor.ui.h366
-rw-r--r--tests/auto/uic/baseline/trpreviewtool.ui188
-rw-r--r--tests/auto/uic/baseline/trpreviewtool.ui.h203
-rw-r--r--tests/auto/uic/baseline/validators.ui467
-rw-r--r--tests/auto/uic/baseline/validators.ui.h409
-rw-r--r--tests/auto/uic/baseline/wateringconfigdialog.ui446
-rw-r--r--tests/auto/uic/baseline/wateringconfigdialog.ui.h290
-rw-r--r--tests/auto/uic/generated_ui/placeholder0
-rw-r--r--tests/auto/uic/tst_uic.cpp225
-rw-r--r--tests/auto/uic/uic.pro8
-rw-r--r--tests/auto/uic3/.gitattributes2
-rw-r--r--tests/auto/uic3/.gitignore1
-rw-r--r--tests/auto/uic3/baseline/Configuration_Dialog.ui162
-rw-r--r--tests/auto/uic3/baseline/Configuration_Dialog.ui.4143
-rw-r--r--tests/auto/uic3/baseline/Configuration_Dialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/Dialog_with_Buttons_(Bottom).ui122
-rw-r--r--tests/auto/uic3/baseline/Dialog_with_Buttons_(Bottom).ui.4114
-rw-r--r--tests/auto/uic3/baseline/Dialog_with_Buttons_(Bottom).ui.err0
-rw-r--r--tests/auto/uic3/baseline/Dialog_with_Buttons_(Right).ui122
-rw-r--r--tests/auto/uic3/baseline/Dialog_with_Buttons_(Right).ui.4114
-rw-r--r--tests/auto/uic3/baseline/Dialog_with_Buttons_(Right).ui.err0
-rw-r--r--tests/auto/uic3/baseline/Tab_Dialog.ui146
-rw-r--r--tests/auto/uic3/baseline/Tab_Dialog.ui.4128
-rw-r--r--tests/auto/uic3/baseline/Tab_Dialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/about.ui222
-rw-r--r--tests/auto/uic3/baseline/about.ui.4209
-rw-r--r--tests/auto/uic3/baseline/about.ui.err1
-rw-r--r--tests/auto/uic3/baseline/actioneditor.ui230
-rw-r--r--tests/auto/uic3/baseline/actioneditor.ui.4197
-rw-r--r--tests/auto/uic3/baseline/actioneditor.ui.err0
-rw-r--r--tests/auto/uic3/baseline/addressbook.ui324
-rw-r--r--tests/auto/uic3/baseline/addressbook.ui.4304
-rw-r--r--tests/auto/uic3/baseline/addressbook.ui.err0
-rw-r--r--tests/auto/uic3/baseline/addressdetails.ui243
-rw-r--r--tests/auto/uic3/baseline/addressdetails.ui.4215
-rw-r--r--tests/auto/uic3/baseline/addressdetails.ui.err0
-rw-r--r--tests/auto/uic3/baseline/ambientproperties.ui319
-rw-r--r--tests/auto/uic3/baseline/ambientproperties.ui.4292
-rw-r--r--tests/auto/uic3/baseline/ambientproperties.ui.err0
-rw-r--r--tests/auto/uic3/baseline/archivedialog.ui137
-rw-r--r--tests/auto/uic3/baseline/archivedialog.ui.4100
-rw-r--r--tests/auto/uic3/baseline/archivedialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/book.ui189
-rw-r--r--tests/auto/uic3/baseline/book.ui.4165
-rw-r--r--tests/auto/uic3/baseline/book.ui.err5
-rw-r--r--tests/auto/uic3/baseline/buildpage.ui92
-rw-r--r--tests/auto/uic3/baseline/buildpage.ui.476
-rw-r--r--tests/auto/uic3/baseline/buildpage.ui.err0
-rw-r--r--tests/auto/uic3/baseline/changeproperties.ui259
-rw-r--r--tests/auto/uic3/baseline/changeproperties.ui.4213
-rw-r--r--tests/auto/uic3/baseline/changeproperties.ui.err0
-rw-r--r--tests/auto/uic3/baseline/clientbase.ui276
-rw-r--r--tests/auto/uic3/baseline/clientbase.ui.4242
-rw-r--r--tests/auto/uic3/baseline/clientbase.ui.err0
-rw-r--r--tests/auto/uic3/baseline/colornameform.ui155
-rw-r--r--tests/auto/uic3/baseline/colornameform.ui.4125
-rw-r--r--tests/auto/uic3/baseline/colornameform.ui.err0
-rw-r--r--tests/auto/uic3/baseline/config.ui1684
-rw-r--r--tests/auto/uic3/baseline/config.ui.41629
-rw-r--r--tests/auto/uic3/baseline/config.ui.err0
-rw-r--r--tests/auto/uic3/baseline/configdialog.ui195
-rw-r--r--tests/auto/uic3/baseline/configdialog.ui.4171
-rw-r--r--tests/auto/uic3/baseline/configdialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/configpage.ui474
-rw-r--r--tests/auto/uic3/baseline/configpage.ui.4447
-rw-r--r--tests/auto/uic3/baseline/configpage.ui.err0
-rw-r--r--tests/auto/uic3/baseline/configtoolboxdialog.ui329
-rw-r--r--tests/auto/uic3/baseline/configtoolboxdialog.ui.4282
-rw-r--r--tests/auto/uic3/baseline/configtoolboxdialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/configuration.ui268
-rw-r--r--tests/auto/uic3/baseline/configuration.ui.4243
-rw-r--r--tests/auto/uic3/baseline/configuration.ui.err1
-rw-r--r--tests/auto/uic3/baseline/connect.ui244
-rw-r--r--tests/auto/uic3/baseline/connect.ui.4225
-rw-r--r--tests/auto/uic3/baseline/connect.ui.err0
-rw-r--r--tests/auto/uic3/baseline/connectdialog.ui244
-rw-r--r--tests/auto/uic3/baseline/connectdialog.ui.4226
-rw-r--r--tests/auto/uic3/baseline/connectdialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/connectiondialog.ui226
-rw-r--r--tests/auto/uic3/baseline/connectiondialog.ui.4196
-rw-r--r--tests/auto/uic3/baseline/connectiondialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/controlinfo.ui128
-rw-r--r--tests/auto/uic3/baseline/controlinfo.ui.4112
-rw-r--r--tests/auto/uic3/baseline/controlinfo.ui.err0
-rw-r--r--tests/auto/uic3/baseline/createtemplate.ui236
-rw-r--r--tests/auto/uic3/baseline/createtemplate.ui.4188
-rw-r--r--tests/auto/uic3/baseline/createtemplate.ui.err0
-rw-r--r--tests/auto/uic3/baseline/creditformbase.ui212
-rw-r--r--tests/auto/uic3/baseline/creditformbase.ui.4189
-rw-r--r--tests/auto/uic3/baseline/creditformbase.ui.err1
-rw-r--r--tests/auto/uic3/baseline/customize.ui312
-rw-r--r--tests/auto/uic3/baseline/customize.ui.4274
-rw-r--r--tests/auto/uic3/baseline/customize.ui.err1
-rw-r--r--tests/auto/uic3/baseline/customwidgeteditor.ui1385
-rw-r--r--tests/auto/uic3/baseline/customwidgeteditor.ui.41269
-rw-r--r--tests/auto/uic3/baseline/customwidgeteditor.ui.err34
-rw-r--r--tests/auto/uic3/baseline/dbconnection.ui229
-rw-r--r--tests/auto/uic3/baseline/dbconnection.ui.4228
-rw-r--r--tests/auto/uic3/baseline/dbconnection.ui.err0
-rw-r--r--tests/auto/uic3/baseline/dbconnectioneditor.ui154
-rw-r--r--tests/auto/uic3/baseline/dbconnectioneditor.ui.4142
-rw-r--r--tests/auto/uic3/baseline/dbconnectioneditor.ui.err0
-rw-r--r--tests/auto/uic3/baseline/dbconnections.ui328
-rw-r--r--tests/auto/uic3/baseline/dbconnections.ui.4290
-rw-r--r--tests/auto/uic3/baseline/dbconnections.ui.err5
-rw-r--r--tests/auto/uic3/baseline/demo.ui182
-rw-r--r--tests/auto/uic3/baseline/demo.ui.4158
-rw-r--r--tests/auto/uic3/baseline/demo.ui.err0
-rw-r--r--tests/auto/uic3/baseline/destination.ui222
-rw-r--r--tests/auto/uic3/baseline/destination.ui.4186
-rw-r--r--tests/auto/uic3/baseline/destination.ui.err1
-rw-r--r--tests/auto/uic3/baseline/dialogform.ui206
-rw-r--r--tests/auto/uic3/baseline/dialogform.ui.4153
-rw-r--r--tests/auto/uic3/baseline/dialogform.ui.err0
-rw-r--r--tests/auto/uic3/baseline/diffdialog.ui122
-rw-r--r--tests/auto/uic3/baseline/diffdialog.ui.486
-rw-r--r--tests/auto/uic3/baseline/diffdialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/distributor.ui427
-rw-r--r--tests/auto/uic3/baseline/distributor.ui.4389
-rw-r--r--tests/auto/uic3/baseline/distributor.ui.err3
-rw-r--r--tests/auto/uic3/baseline/dndbase.ui355
-rw-r--r--tests/auto/uic3/baseline/dndbase.ui.4325
-rw-r--r--tests/auto/uic3/baseline/dndbase.ui.err0
-rw-r--r--tests/auto/uic3/baseline/editbook.ui386
-rw-r--r--tests/auto/uic3/baseline/editbook.ui.4346
-rw-r--r--tests/auto/uic3/baseline/editbook.ui.err5
-rw-r--r--tests/auto/uic3/baseline/editfunctions.ui721
-rw-r--r--tests/auto/uic3/baseline/editfunctions.ui.4665
-rw-r--r--tests/auto/uic3/baseline/editfunctions.ui.err1
-rw-r--r--tests/auto/uic3/baseline/extension.ui114
-rw-r--r--tests/auto/uic3/baseline/extension.ui.490
-rw-r--r--tests/auto/uic3/baseline/extension.ui.err0
-rw-r--r--tests/auto/uic3/baseline/finddialog.ui281
-rw-r--r--tests/auto/uic3/baseline/finddialog.ui.4234
-rw-r--r--tests/auto/uic3/baseline/finddialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/findform.ui123
-rw-r--r--tests/auto/uic3/baseline/findform.ui.495
-rw-r--r--tests/auto/uic3/baseline/findform.ui.err0
-rw-r--r--tests/auto/uic3/baseline/finishpage.ui63
-rw-r--r--tests/auto/uic3/baseline/finishpage.ui.453
-rw-r--r--tests/auto/uic3/baseline/finishpage.ui.err0
-rw-r--r--tests/auto/uic3/baseline/folderdlg.ui184
-rw-r--r--tests/auto/uic3/baseline/folderdlg.ui.4161
-rw-r--r--tests/auto/uic3/baseline/folderdlg.ui.err3
-rw-r--r--tests/auto/uic3/baseline/folderspage.ui259
-rw-r--r--tests/auto/uic3/baseline/folderspage.ui.4227
-rw-r--r--tests/auto/uic3/baseline/folderspage.ui.err2
-rw-r--r--tests/auto/uic3/baseline/form.ui85
-rw-r--r--tests/auto/uic3/baseline/form.ui.455
-rw-r--r--tests/auto/uic3/baseline/form.ui.err1
-rw-r--r--tests/auto/uic3/baseline/form1.ui204
-rw-r--r--tests/auto/uic3/baseline/form1.ui.4186
-rw-r--r--tests/auto/uic3/baseline/form1.ui.err1
-rw-r--r--tests/auto/uic3/baseline/form2.ui274
-rw-r--r--tests/auto/uic3/baseline/form2.ui.4303
-rw-r--r--tests/auto/uic3/baseline/form2.ui.err9
-rw-r--r--tests/auto/uic3/baseline/formbase.ui798
-rw-r--r--tests/auto/uic3/baseline/formbase.ui.4652
-rw-r--r--tests/auto/uic3/baseline/formbase.ui.err8
-rw-r--r--tests/auto/uic3/baseline/formsettings.ui556
-rw-r--r--tests/auto/uic3/baseline/formsettings.ui.4557
-rw-r--r--tests/auto/uic3/baseline/formsettings.ui.err0
-rw-r--r--tests/auto/uic3/baseline/ftpmainwindow.ui280
-rw-r--r--tests/auto/uic3/baseline/ftpmainwindow.ui.4244
-rw-r--r--tests/auto/uic3/baseline/ftpmainwindow.ui.err0
-rw-r--r--tests/auto/uic3/baseline/gllandscapeviewer.ui623
-rw-r--r--tests/auto/uic3/baseline/gllandscapeviewer.ui.4537
-rw-r--r--tests/auto/uic3/baseline/gllandscapeviewer.ui.err4
-rw-r--r--tests/auto/uic3/baseline/gotolinedialog.ui176
-rw-r--r--tests/auto/uic3/baseline/gotolinedialog.ui.4157
-rw-r--r--tests/auto/uic3/baseline/gotolinedialog.ui.err1
-rw-r--r--tests/auto/uic3/baseline/helpdemobase.ui239
-rw-r--r--tests/auto/uic3/baseline/helpdemobase.ui.4213
-rw-r--r--tests/auto/uic3/baseline/helpdemobase.ui.err0
-rw-r--r--tests/auto/uic3/baseline/helpdialog.ui506
-rw-r--r--tests/auto/uic3/baseline/helpdialog.ui.4437
-rw-r--r--tests/auto/uic3/baseline/helpdialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/iconvieweditor.ui464
-rw-r--r--tests/auto/uic3/baseline/iconvieweditor.ui.4414
-rw-r--r--tests/auto/uic3/baseline/iconvieweditor.ui.err0
-rw-r--r--tests/auto/uic3/baseline/install.ui178
-rw-r--r--tests/auto/uic3/baseline/install.ui.4147
-rw-r--r--tests/auto/uic3/baseline/install.ui.err3
-rw-r--r--tests/auto/uic3/baseline/installationwizard.ui195
-rw-r--r--tests/auto/uic3/baseline/installationwizard.ui.4168
-rw-r--r--tests/auto/uic3/baseline/installationwizard.ui.err0
-rw-r--r--tests/auto/uic3/baseline/invokemethod.ui313
-rw-r--r--tests/auto/uic3/baseline/invokemethod.ui.4275
-rw-r--r--tests/auto/uic3/baseline/invokemethod.ui.err0
-rw-r--r--tests/auto/uic3/baseline/license.ui200
-rw-r--r--tests/auto/uic3/baseline/license.ui.4176
-rw-r--r--tests/auto/uic3/baseline/license.ui.err1
-rw-r--r--tests/auto/uic3/baseline/licenseagreementpage.ui202
-rw-r--r--tests/auto/uic3/baseline/licenseagreementpage.ui.4173
-rw-r--r--tests/auto/uic3/baseline/licenseagreementpage.ui.err0
-rw-r--r--tests/auto/uic3/baseline/licensedlg.ui134
-rw-r--r--tests/auto/uic3/baseline/licensedlg.ui.4123
-rw-r--r--tests/auto/uic3/baseline/licensedlg.ui.err0
-rw-r--r--tests/auto/uic3/baseline/licensepage.ui264
-rw-r--r--tests/auto/uic3/baseline/licensepage.ui.4273
-rw-r--r--tests/auto/uic3/baseline/licensepage.ui.err1
-rw-r--r--tests/auto/uic3/baseline/listboxeditor.ui461
-rw-r--r--tests/auto/uic3/baseline/listboxeditor.ui.4425
-rw-r--r--tests/auto/uic3/baseline/listboxeditor.ui.err0
-rw-r--r--tests/auto/uic3/baseline/listeditor.ui182
-rw-r--r--tests/auto/uic3/baseline/listeditor.ui.4158
-rw-r--r--tests/auto/uic3/baseline/listeditor.ui.err0
-rw-r--r--tests/auto/uic3/baseline/listvieweditor.ui938
-rw-r--r--tests/auto/uic3/baseline/listvieweditor.ui.4858
-rw-r--r--tests/auto/uic3/baseline/listvieweditor.ui.err0
-rw-r--r--tests/auto/uic3/baseline/maindialog.ui165
-rw-r--r--tests/auto/uic3/baseline/maindialog.ui.4157
-rw-r--r--tests/auto/uic3/baseline/maindialog.ui.err2
-rw-r--r--tests/auto/uic3/baseline/mainfilesettings.ui211
-rw-r--r--tests/auto/uic3/baseline/mainfilesettings.ui.4187
-rw-r--r--tests/auto/uic3/baseline/mainfilesettings.ui.err0
-rw-r--r--tests/auto/uic3/baseline/mainform.ui74
-rw-r--r--tests/auto/uic3/baseline/mainform.ui.452
-rw-r--r--tests/auto/uic3/baseline/mainform.ui.err0
-rw-r--r--tests/auto/uic3/baseline/mainformbase.ui395
-rw-r--r--tests/auto/uic3/baseline/mainformbase.ui.4343
-rw-r--r--tests/auto/uic3/baseline/mainformbase.ui.err0
-rw-r--r--tests/auto/uic3/baseline/mainview.ui877
-rw-r--r--tests/auto/uic3/baseline/mainview.ui.4725
-rw-r--r--tests/auto/uic3/baseline/mainview.ui.err9
-rw-r--r--tests/auto/uic3/baseline/mainwindow.ui84
-rw-r--r--tests/auto/uic3/baseline/mainwindow.ui.481
-rw-r--r--tests/auto/uic3/baseline/mainwindow.ui.err0
-rw-r--r--tests/auto/uic3/baseline/mainwindowbase.ui1827
-rw-r--r--tests/auto/uic3/baseline/mainwindowbase.ui.41650
-rw-r--r--tests/auto/uic3/baseline/mainwindowbase.ui.err1
-rw-r--r--tests/auto/uic3/baseline/mainwindowwizard.ui757
-rw-r--r--tests/auto/uic3/baseline/mainwindowwizard.ui.4686
-rw-r--r--tests/auto/uic3/baseline/mainwindowwizard.ui.err12
-rw-r--r--tests/auto/uic3/baseline/masterchildwindow.ui111
-rw-r--r--tests/auto/uic3/baseline/masterchildwindow.ui.4109
-rw-r--r--tests/auto/uic3/baseline/masterchildwindow.ui.err0
-rw-r--r--tests/auto/uic3/baseline/metric.ui366
-rw-r--r--tests/auto/uic3/baseline/metric.ui.4332
-rw-r--r--tests/auto/uic3/baseline/metric.ui.err1
-rw-r--r--tests/auto/uic3/baseline/multiclip.ui206
-rw-r--r--tests/auto/uic3/baseline/multiclip.ui.4178
-rw-r--r--tests/auto/uic3/baseline/multiclip.ui.err3
-rw-r--r--tests/auto/uic3/baseline/multilineeditor.ui188
-rw-r--r--tests/auto/uic3/baseline/multilineeditor.ui.4160
-rw-r--r--tests/auto/uic3/baseline/multilineeditor.ui.err0
-rw-r--r--tests/auto/uic3/baseline/mydialog.ui32
-rw-r--r--tests/auto/uic3/baseline/mydialog.ui.435
-rw-r--r--tests/auto/uic3/baseline/mydialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/newform.ui245
-rw-r--r--tests/auto/uic3/baseline/newform.ui.4227
-rw-r--r--tests/auto/uic3/baseline/newform.ui.err0
-rw-r--r--tests/auto/uic3/baseline/options.ui587
-rw-r--r--tests/auto/uic3/baseline/options.ui.4519
-rw-r--r--tests/auto/uic3/baseline/options.ui.err0
-rw-r--r--tests/auto/uic3/baseline/optionsform.ui207
-rw-r--r--tests/auto/uic3/baseline/optionsform.ui.4167
-rw-r--r--tests/auto/uic3/baseline/optionsform.ui.err0
-rw-r--r--tests/auto/uic3/baseline/optionspage.ui508
-rw-r--r--tests/auto/uic3/baseline/optionspage.ui.4439
-rw-r--r--tests/auto/uic3/baseline/optionspage.ui.err2
-rw-r--r--tests/auto/uic3/baseline/oramonitor.ui206
-rw-r--r--tests/auto/uic3/baseline/oramonitor.ui.4191
-rw-r--r--tests/auto/uic3/baseline/oramonitor.ui.err0
-rw-r--r--tests/auto/uic3/baseline/pageeditdialog.ui143
-rw-r--r--tests/auto/uic3/baseline/pageeditdialog.ui.4133
-rw-r--r--tests/auto/uic3/baseline/pageeditdialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/paletteeditor.ui503
-rw-r--r--tests/auto/uic3/baseline/paletteeditor.ui.4469
-rw-r--r--tests/auto/uic3/baseline/paletteeditor.ui.err9
-rw-r--r--tests/auto/uic3/baseline/paletteeditoradvanced.ui755
-rw-r--r--tests/auto/uic3/baseline/paletteeditoradvanced.ui.4686
-rw-r--r--tests/auto/uic3/baseline/paletteeditoradvanced.ui.err12
-rw-r--r--tests/auto/uic3/baseline/paletteeditoradvancedbase.ui682
-rw-r--r--tests/auto/uic3/baseline/paletteeditoradvancedbase.ui.4614
-rw-r--r--tests/auto/uic3/baseline/paletteeditoradvancedbase.ui.err10
-rw-r--r--tests/auto/uic3/baseline/pixmapcollectioneditor.ui225
-rw-r--r--tests/auto/uic3/baseline/pixmapcollectioneditor.ui.4185
-rw-r--r--tests/auto/uic3/baseline/pixmapcollectioneditor.ui.err0
-rw-r--r--tests/auto/uic3/baseline/pixmapfunction.ui937
-rw-r--r--tests/auto/uic3/baseline/pixmapfunction.ui.4873
-rw-r--r--tests/auto/uic3/baseline/pixmapfunction.ui.err0
-rw-r--r--tests/auto/uic3/baseline/preferences.ui670
-rw-r--r--tests/auto/uic3/baseline/preferences.ui.4599
-rw-r--r--tests/auto/uic3/baseline/preferences.ui.err0
-rw-r--r--tests/auto/uic3/baseline/previewwidget.ui311
-rw-r--r--tests/auto/uic3/baseline/previewwidget.ui.4258
-rw-r--r--tests/auto/uic3/baseline/previewwidget.ui.err0
-rw-r--r--tests/auto/uic3/baseline/previewwidgetbase.ui311
-rw-r--r--tests/auto/uic3/baseline/previewwidgetbase.ui.4258
-rw-r--r--tests/auto/uic3/baseline/previewwidgetbase.ui.err0
-rw-r--r--tests/auto/uic3/baseline/printpreview.ui277
-rw-r--r--tests/auto/uic3/baseline/printpreview.ui.4246
-rw-r--r--tests/auto/uic3/baseline/printpreview.ui.err0
-rw-r--r--tests/auto/uic3/baseline/progressbarwidget.ui246
-rw-r--r--tests/auto/uic3/baseline/progressbarwidget.ui.4221
-rw-r--r--tests/auto/uic3/baseline/progressbarwidget.ui.err0
-rw-r--r--tests/auto/uic3/baseline/progresspage.ui78
-rw-r--r--tests/auto/uic3/baseline/progresspage.ui.469
-rw-r--r--tests/auto/uic3/baseline/progresspage.ui.err0
-rw-r--r--tests/auto/uic3/baseline/projectsettings.ui308
-rw-r--r--tests/auto/uic3/baseline/projectsettings.ui.4272
-rw-r--r--tests/auto/uic3/baseline/projectsettings.ui.err0
-rw-r--r--tests/auto/uic3/baseline/qactivexselect.ui194
-rw-r--r--tests/auto/uic3/baseline/qactivexselect.ui.4158
-rw-r--r--tests/auto/uic3/baseline/qactivexselect.ui.err0
-rw-r--r--tests/auto/uic3/baseline/quuidbase.ui300
-rw-r--r--tests/auto/uic3/baseline/quuidbase.ui.4266
-rw-r--r--tests/auto/uic3/baseline/quuidbase.ui.err8
-rw-r--r--tests/auto/uic3/baseline/remotectrl.ui145
-rw-r--r--tests/auto/uic3/baseline/remotectrl.ui.4124
-rw-r--r--tests/auto/uic3/baseline/remotectrl.ui.err0
-rw-r--r--tests/auto/uic3/baseline/replacedialog.ui325
-rw-r--r--tests/auto/uic3/baseline/replacedialog.ui.4277
-rw-r--r--tests/auto/uic3/baseline/replacedialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/review.ui167
-rw-r--r--tests/auto/uic3/baseline/review.ui.4140
-rw-r--r--tests/auto/uic3/baseline/review.ui.err1
-rw-r--r--tests/auto/uic3/baseline/richedit.ui612
-rw-r--r--tests/auto/uic3/baseline/richedit.ui.4584
-rw-r--r--tests/auto/uic3/baseline/richedit.ui.err11
-rw-r--r--tests/auto/uic3/baseline/richtextfontdialog.ui354
-rw-r--r--tests/auto/uic3/baseline/richtextfontdialog.ui.4310
-rw-r--r--tests/auto/uic3/baseline/richtextfontdialog.ui.err1
-rw-r--r--tests/auto/uic3/baseline/search.ui136
-rw-r--r--tests/auto/uic3/baseline/search.ui.4110
-rw-r--r--tests/auto/uic3/baseline/search.ui.err0
-rw-r--r--tests/auto/uic3/baseline/searchbase.ui480
-rw-r--r--tests/auto/uic3/baseline/searchbase.ui.4414
-rw-r--r--tests/auto/uic3/baseline/searchbase.ui.err2
-rw-r--r--tests/auto/uic3/baseline/serverbase.ui117
-rw-r--r--tests/auto/uic3/baseline/serverbase.ui.4108
-rw-r--r--tests/auto/uic3/baseline/serverbase.ui.err0
-rw-r--r--tests/auto/uic3/baseline/settingsdialog.ui516
-rw-r--r--tests/auto/uic3/baseline/settingsdialog.ui.4446
-rw-r--r--tests/auto/uic3/baseline/settingsdialog.ui.err1
-rw-r--r--tests/auto/uic3/baseline/sidedecoration.ui108
-rw-r--r--tests/auto/uic3/baseline/sidedecoration.ui.4104
-rw-r--r--tests/auto/uic3/baseline/sidedecoration.ui.err0
-rw-r--r--tests/auto/uic3/baseline/small_dialog.ui197
-rw-r--r--tests/auto/uic3/baseline/small_dialog.ui.4180
-rw-r--r--tests/auto/uic3/baseline/small_dialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/sqlbrowsewindow.ui143
-rw-r--r--tests/auto/uic3/baseline/sqlbrowsewindow.ui.4125
-rw-r--r--tests/auto/uic3/baseline/sqlbrowsewindow.ui.err0
-rw-r--r--tests/auto/uic3/baseline/sqlex.ui337
-rw-r--r--tests/auto/uic3/baseline/sqlex.ui.4279
-rw-r--r--tests/auto/uic3/baseline/sqlex.ui.err1
-rw-r--r--tests/auto/uic3/baseline/sqlformwizard.ui1776
-rw-r--r--tests/auto/uic3/baseline/sqlformwizard.ui.41617
-rw-r--r--tests/auto/uic3/baseline/sqlformwizard.ui.err0
-rw-r--r--tests/auto/uic3/baseline/startdialog.ui331
-rw-r--r--tests/auto/uic3/baseline/startdialog.ui.4293
-rw-r--r--tests/auto/uic3/baseline/startdialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/statistics.ui259
-rw-r--r--tests/auto/uic3/baseline/statistics.ui.4252
-rw-r--r--tests/auto/uic3/baseline/statistics.ui.err0
-rw-r--r--tests/auto/uic3/baseline/submitdialog.ui259
-rw-r--r--tests/auto/uic3/baseline/submitdialog.ui.4199
-rw-r--r--tests/auto/uic3/baseline/submitdialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/tabbedbrowser.ui141
-rw-r--r--tests/auto/uic3/baseline/tabbedbrowser.ui.474
-rw-r--r--tests/auto/uic3/baseline/tabbedbrowser.ui.err0
-rw-r--r--tests/auto/uic3/baseline/tableeditor.ui831
-rw-r--r--tests/auto/uic3/baseline/tableeditor.ui.4746
-rw-r--r--tests/auto/uic3/baseline/tableeditor.ui.err0
-rw-r--r--tests/auto/uic3/baseline/tabletstatsbase.ui298
-rw-r--r--tests/auto/uic3/baseline/tabletstatsbase.ui.4276
-rw-r--r--tests/auto/uic3/baseline/tabletstatsbase.ui.err1
-rw-r--r--tests/auto/uic3/baseline/topicchooser.ui182
-rw-r--r--tests/auto/uic3/baseline/topicchooser.ui.4168
-rw-r--r--tests/auto/uic3/baseline/topicchooser.ui.err0
-rw-r--r--tests/auto/uic3/baseline/uninstall.ui167
-rw-r--r--tests/auto/uic3/baseline/uninstall.ui.4147
-rw-r--r--tests/auto/uic3/baseline/uninstall.ui.err0
-rw-r--r--tests/auto/uic3/baseline/unpackdlg.ui330
-rw-r--r--tests/auto/uic3/baseline/unpackdlg.ui.4275
-rw-r--r--tests/auto/uic3/baseline/unpackdlg.ui.err1
-rw-r--r--tests/auto/uic3/baseline/variabledialog.ui301
-rw-r--r--tests/auto/uic3/baseline/variabledialog.ui.4281
-rw-r--r--tests/auto/uic3/baseline/variabledialog.ui.err0
-rw-r--r--tests/auto/uic3/baseline/welcome.ui155
-rw-r--r--tests/auto/uic3/baseline/welcome.ui.4144
-rw-r--r--tests/auto/uic3/baseline/welcome.ui.err2
-rw-r--r--tests/auto/uic3/baseline/widget.ui1466
-rw-r--r--tests/auto/uic3/baseline/widget.ui.41356
-rw-r--r--tests/auto/uic3/baseline/widget.ui.err14
-rw-r--r--tests/auto/uic3/baseline/widgetsbase.ui1269
-rw-r--r--tests/auto/uic3/baseline/widgetsbase.ui.41176
-rw-r--r--tests/auto/uic3/baseline/widgetsbase.ui.err2
-rw-r--r--tests/auto/uic3/baseline/widgetsbase_pro.ui1158
-rw-r--r--tests/auto/uic3/baseline/widgetsbase_pro.ui.41079
-rw-r--r--tests/auto/uic3/baseline/widgetsbase_pro.ui.err2
-rw-r--r--tests/auto/uic3/baseline/winintropage.ui39
-rw-r--r--tests/auto/uic3/baseline/winintropage.ui.437
-rw-r--r--tests/auto/uic3/baseline/winintropage.ui.err0
-rw-r--r--tests/auto/uic3/baseline/wizardeditor.ui345
-rw-r--r--tests/auto/uic3/baseline/wizardeditor.ui.4294
-rw-r--r--tests/auto/uic3/baseline/wizardeditor.ui.err0
-rw-r--r--tests/auto/uic3/generated/placeholder0
-rw-r--r--tests/auto/uic3/tst_uic3.cpp190
-rw-r--r--tests/auto/uic3/uic3.pro8
-rw-r--r--tests/auto/uiloader/.gitignore1
-rw-r--r--tests/auto/uiloader/README.TXT93
-rw-r--r--tests/auto/uiloader/WTC0090dca226c8.ini11
-rw-r--r--tests/auto/uiloader/baseline/Dialog_with_Buttons_Bottom.ui71
-rw-r--r--tests/auto/uiloader/baseline/Dialog_with_Buttons_Right.ui71
-rw-r--r--tests/auto/uiloader/baseline/Dialog_without_Buttons.ui18
-rw-r--r--tests/auto/uiloader/baseline/Main_Window.ui27
-rw-r--r--tests/auto/uiloader/baseline/Widget.ui41
-rw-r--r--tests/auto/uiloader/baseline/addlinkdialog.ui112
-rw-r--r--tests/auto/uiloader/baseline/addtorrentform.ui266
-rw-r--r--tests/auto/uiloader/baseline/authenticationdialog.ui129
-rw-r--r--tests/auto/uiloader/baseline/backside.ui208
-rw-r--r--tests/auto/uiloader/baseline/batchtranslation.ui235
-rw-r--r--tests/auto/uiloader/baseline/bookmarkdialog.ui161
-rw-r--r--tests/auto/uiloader/baseline/bookwindow.ui149
-rw-r--r--tests/auto/uiloader/baseline/browserwidget.ui199
-rw-r--r--tests/auto/uiloader/baseline/calculator.ui406
-rw-r--r--tests/auto/uiloader/baseline/calculatorform.ui303
-rw-r--r--tests/auto/uiloader/baseline/certificateinfo.ui85
-rw-r--r--tests/auto/uiloader/baseline/chatdialog.ui79
-rw-r--r--tests/auto/uiloader/baseline/chatmainwindow.ui185
-rw-r--r--tests/auto/uiloader/baseline/chatsetnickname.ui149
-rw-r--r--tests/auto/uiloader/baseline/config.ui2527
-rw-r--r--tests/auto/uiloader/baseline/connectdialog.ui150
-rw-r--r--tests/auto/uiloader/baseline/controller.ui64
-rw-r--r--tests/auto/uiloader/baseline/cookies.ui106
-rw-r--r--tests/auto/uiloader/baseline/cookiesexceptions.ui184
-rw-r--r--tests/auto/uiloader/baseline/css_buttons_background.ui232
-rw-r--r--tests/auto/uiloader/baseline/css_combobox_background.ui306
-rw-r--r--tests/auto/uiloader/baseline/css_exemple_coffee.ui469
-rw-r--r--tests/auto/uiloader/baseline/css_exemple_pagefold.ui656
-rw-r--r--tests/auto/uiloader/baseline/css_exemple_usage.ui91
-rw-r--r--tests/auto/uiloader/baseline/css_frames.ui308
-rw-r--r--tests/auto/uiloader/baseline/css_groupboxes.ui150
-rw-r--r--tests/auto/uiloader/baseline/css_qprogressbar.ui125
-rw-r--r--tests/auto/uiloader/baseline/css_qtabwidget.ui224
-rw-r--r--tests/auto/uiloader/baseline/css_scroll.ui599
-rw-r--r--tests/auto/uiloader/baseline/css_tab_task213374.ui306
-rw-r--r--tests/auto/uiloader/baseline/default.ui329
-rw-r--r--tests/auto/uiloader/baseline/dialog.ui47
-rw-r--r--tests/auto/uiloader/baseline/downloaditem.ui134
-rw-r--r--tests/auto/uiloader/baseline/downloads.ui83
-rw-r--r--tests/auto/uiloader/baseline/embeddeddialog.ui87
-rw-r--r--tests/auto/uiloader/baseline/filespage.ui79
-rw-r--r--tests/auto/uiloader/baseline/filternamedialog.ui67
-rw-r--r--tests/auto/uiloader/baseline/filterpage.ui125
-rw-r--r--tests/auto/uiloader/baseline/finddialog.ui264
-rw-r--r--tests/auto/uiloader/baseline/formwindowsettings.ui310
-rw-r--r--tests/auto/uiloader/baseline/generalpage.ui69
-rw-r--r--tests/auto/uiloader/baseline/gridpanel.ui144
-rw-r--r--tests/auto/uiloader/baseline/helpdialog.ui403
-rw-r--r--tests/auto/uiloader/baseline/history.ui106
-rw-r--r--tests/auto/uiloader/baseline/identifierpage.ui132
-rw-r--r--tests/auto/uiloader/baseline/imagedialog.ui389
-rw-r--r--tests/auto/uiloader/baseline/images/checkbox_checked.pngbin0 -> 263 bytes-rw-r--r--tests/auto/uiloader/baseline/images/checkbox_checked_hover.pngbin0 -> 266 bytes-rw-r--r--tests/auto/uiloader/baseline/images/checkbox_checked_pressed.pngbin0 -> 425 bytes-rw-r--r--tests/auto/uiloader/baseline/images/checkbox_unchecked.pngbin0 -> 159 bytes-rw-r--r--tests/auto/uiloader/baseline/images/checkbox_unchecked_hover.pngbin0 -> 159 bytes-rw-r--r--tests/auto/uiloader/baseline/images/checkbox_unchecked_pressed.pngbin0 -> 320 bytes-rw-r--r--tests/auto/uiloader/baseline/images/down_arrow.pngbin0 -> 175 bytes-rw-r--r--tests/auto/uiloader/baseline/images/down_arrow_disabled.pngbin0 -> 174 bytes-rw-r--r--tests/auto/uiloader/baseline/images/frame.pngbin0 -> 253 bytes-rw-r--r--tests/auto/uiloader/baseline/images/pagefold.pngbin0 -> 1545 bytes-rw-r--r--tests/auto/uiloader/baseline/images/pushbutton.pngbin0 -> 533 bytes-rw-r--r--tests/auto/uiloader/baseline/images/pushbutton_hover.pngbin0 -> 525 bytes-rw-r--r--tests/auto/uiloader/baseline/images/pushbutton_pressed.pngbin0 -> 513 bytes-rw-r--r--tests/auto/uiloader/baseline/images/radiobutton_checked.pngbin0 -> 355 bytes-rw-r--r--tests/auto/uiloader/baseline/images/radiobutton_checked_hover.pngbin0 -> 532 bytes-rw-r--r--tests/auto/uiloader/baseline/images/radiobutton_checked_pressed.pngbin0 -> 599 bytes-rw-r--r--tests/auto/uiloader/baseline/images/radiobutton_unchecked.pngbin0 -> 240 bytes-rw-r--r--tests/auto/uiloader/baseline/images/radiobutton_unchecked_hover.pngbin0 -> 492 bytes-rw-r--r--tests/auto/uiloader/baseline/images/radiobutton_unchecked_pressed.pngbin0 -> 556 bytes-rw-r--r--tests/auto/uiloader/baseline/images/sizegrip.pngbin0 -> 129 bytes-rw-r--r--tests/auto/uiloader/baseline/images/spindown.pngbin0 -> 276 bytes-rw-r--r--tests/auto/uiloader/baseline/images/spindown_hover.pngbin0 -> 268 bytes-rw-r--r--tests/auto/uiloader/baseline/images/spindown_off.pngbin0 -> 249 bytes-rw-r--r--tests/auto/uiloader/baseline/images/spindown_pressed.pngbin0 -> 264 bytes-rw-r--r--tests/auto/uiloader/baseline/images/spinup.pngbin0 -> 283 bytes-rw-r--r--tests/auto/uiloader/baseline/images/spinup_hover.pngbin0 -> 277 bytes-rw-r--r--tests/auto/uiloader/baseline/images/spinup_off.pngbin0 -> 274 bytes-rw-r--r--tests/auto/uiloader/baseline/images/spinup_pressed.pngbin0 -> 277 bytes-rw-r--r--tests/auto/uiloader/baseline/images/up_arrow.pngbin0 -> 197 bytes-rw-r--r--tests/auto/uiloader/baseline/images/up_arrow_disabled.pngbin0 -> 172 bytes-rw-r--r--tests/auto/uiloader/baseline/inputpage.ui79
-rw-r--r--tests/auto/uiloader/baseline/installdialog.ui118
-rw-r--r--tests/auto/uiloader/baseline/languagesdialog.ui160
-rw-r--r--tests/auto/uiloader/baseline/listwidgeteditor.ui225
-rw-r--r--tests/auto/uiloader/baseline/mainwindow.ui502
-rw-r--r--tests/auto/uiloader/baseline/mainwindowbase.ui1213
-rw-r--r--tests/auto/uiloader/baseline/mydialog.ui47
-rw-r--r--tests/auto/uiloader/baseline/myform.ui130
-rw-r--r--tests/auto/uiloader/baseline/newactiondialog.ui201
-rw-r--r--tests/auto/uiloader/baseline/newdynamicpropertydialog.ui106
-rw-r--r--tests/auto/uiloader/baseline/newform.ui152
-rw-r--r--tests/auto/uiloader/baseline/orderdialog.ui197
-rw-r--r--tests/auto/uiloader/baseline/outputpage.ui95
-rw-r--r--tests/auto/uiloader/baseline/pagefold.ui349
-rw-r--r--tests/auto/uiloader/baseline/paletteeditor.ui263
-rw-r--r--tests/auto/uiloader/baseline/paletteeditoradvancedbase.ui616
-rw-r--r--tests/auto/uiloader/baseline/passworddialog.ui111
-rw-r--r--tests/auto/uiloader/baseline/pathpage.ui114
-rw-r--r--tests/auto/uiloader/baseline/phrasebookbox.ui210
-rw-r--r--tests/auto/uiloader/baseline/plugindialog.ui152
-rw-r--r--tests/auto/uiloader/baseline/preferencesdialog.ui165
-rw-r--r--tests/auto/uiloader/baseline/previewconfigurationwidget.ui91
-rw-r--r--tests/auto/uiloader/baseline/previewdialogbase.ui224
-rw-r--r--tests/auto/uiloader/baseline/previewwidget.ui237
-rw-r--r--tests/auto/uiloader/baseline/previewwidgetbase.ui339
-rw-r--r--tests/auto/uiloader/baseline/proxy.ui104
-rw-r--r--tests/auto/uiloader/baseline/qfiledialog.ui319
-rw-r--r--tests/auto/uiloader/baseline/qpagesetupwidget.ui353
-rw-r--r--tests/auto/uiloader/baseline/qprintpropertieswidget.ui70
-rw-r--r--tests/auto/uiloader/baseline/qprintsettingsoutput.ui371
-rw-r--r--tests/auto/uiloader/baseline/qprintwidget.ui116
-rw-r--r--tests/auto/uiloader/baseline/qsqlconnectiondialog.ui224
-rw-r--r--tests/auto/uiloader/baseline/qtgradientdialog.ui120
-rw-r--r--tests/auto/uiloader/baseline/qtgradienteditor.ui1376
-rw-r--r--tests/auto/uiloader/baseline/qtgradientview.ui135
-rw-r--r--tests/auto/uiloader/baseline/qtgradientviewdialog.ui120
-rw-r--r--tests/auto/uiloader/baseline/qtresourceeditordialog.ui180
-rw-r--r--tests/auto/uiloader/baseline/qttoolbardialog.ui207
-rw-r--r--tests/auto/uiloader/baseline/querywidget.ui163
-rw-r--r--tests/auto/uiloader/baseline/remotecontrol.ui228
-rw-r--r--tests/auto/uiloader/baseline/saveformastemplate.ui165
-rw-r--r--tests/auto/uiloader/baseline/settings.ui262
-rw-r--r--tests/auto/uiloader/baseline/signalslotdialog.ui129
-rw-r--r--tests/auto/uiloader/baseline/sslclient.ui190
-rw-r--r--tests/auto/uiloader/baseline/sslerrors.ui110
-rw-r--r--tests/auto/uiloader/baseline/statistics.ui241
-rw-r--r--tests/auto/uiloader/baseline/stringlisteditor.ui264
-rw-r--r--tests/auto/uiloader/baseline/stylesheeteditor.ui171
-rw-r--r--tests/auto/uiloader/baseline/tabbedbrowser.ui232
-rw-r--r--tests/auto/uiloader/baseline/tablewidgeteditor.ui402
-rw-r--r--tests/auto/uiloader/baseline/tetrixwindow.ui164
-rw-r--r--tests/auto/uiloader/baseline/textfinder.ui89
-rw-r--r--tests/auto/uiloader/baseline/topicchooser.ui116
-rw-r--r--tests/auto/uiloader/baseline/translatedialog.ui300
-rw-r--r--tests/auto/uiloader/baseline/translationsettings.ui107
-rw-r--r--tests/auto/uiloader/baseline/treewidgeteditor.ui378
-rw-r--r--tests/auto/uiloader/baseline/trpreviewtool.ui188
-rw-r--r--tests/auto/uiloader/baseline/validators.ui467
-rw-r--r--tests/auto/uiloader/baseline/wateringconfigdialog.ui446
-rw-r--r--tests/auto/uiloader/desert.ini11
-rw-r--r--tests/auto/uiloader/dole.ini11
-rw-r--r--tests/auto/uiloader/gravlaks.ini11
-rw-r--r--tests/auto/uiloader/jackychan.ini11
-rw-r--r--tests/auto/uiloader/jeunehomme.ini11
-rw-r--r--tests/auto/uiloader/kangaroo.ini11
-rw-r--r--tests/auto/uiloader/kayak.ini11
-rw-r--r--tests/auto/uiloader/scruffy.ini11
-rw-r--r--tests/auto/uiloader/troll15.ini11
-rw-r--r--tests/auto/uiloader/tst_screenshot/README.TXT13
-rw-r--r--tests/auto/uiloader/tst_screenshot/main.cpp209
-rw-r--r--tests/auto/uiloader/tst_screenshot/tst_screenshot.pro8
-rw-r--r--tests/auto/uiloader/tundra.ini11
-rw-r--r--tests/auto/uiloader/uiloader.pro3
-rw-r--r--tests/auto/uiloader/uiloader/tst_uiloader.cpp104
-rw-r--r--tests/auto/uiloader/uiloader/uiloader.cpp814
-rw-r--r--tests/auto/uiloader/uiloader/uiloader.h109
-rw-r--r--tests/auto/uiloader/uiloader/uiloader.pro31
-rw-r--r--tests/auto/uiloader/wartburg.ini11
-rw-r--r--tests/auto/xmlpatterns.pri21
-rw-r--r--tests/auto/xmlpatterns/.gitattributes3
-rw-r--r--tests/auto/xmlpatterns/.gitignore5
-rw-r--r--tests/auto/xmlpatterns/XSLTTODO1450
-rw-r--r--tests/auto/xmlpatterns/baselines/globals.xml12
-rw-r--r--tests/auto/xmlpatterns/queries/README4
-rw-r--r--tests/auto/xmlpatterns/queries/allAtomics.xq50
-rw-r--r--tests/auto/xmlpatterns/queries/allAtomicsExternally.xq33
-rw-r--r--tests/auto/xmlpatterns/queries/completelyEmptyQuery.xq0
-rw-r--r--tests/auto/xmlpatterns/queries/concat.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/emptySequence.xq2
-rw-r--r--tests/auto/xmlpatterns/queries/errorFunction.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/externalStringVariable.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/externalVariable.xq2
-rw-r--r--tests/auto/xmlpatterns/queries/externalVariableUsedTwice.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/flwor.xq4
-rw-r--r--tests/auto/xmlpatterns/queries/globals.gccxml33
-rw-r--r--tests/auto/xmlpatterns/queries/invalidRegexp.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/invalidRegexpFlag.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/nodeSequence.xq31
-rw-r--r--tests/auto/xmlpatterns/queries/nonexistingCollection.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/oneElement.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/onePlusOne.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/onlyDocumentNode.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/openDocument.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/reportGlobals.xq101
-rw-r--r--tests/auto/xmlpatterns/queries/simpleDocument.xml1
-rw-r--r--tests/auto/xmlpatterns/queries/simpleLibraryModule.xq5
-rw-r--r--tests/auto/xmlpatterns/queries/staticBaseURI.xq3
-rw-r--r--tests/auto/xmlpatterns/queries/staticError.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/syntaxError.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/threeVariables.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/twoVariables.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/typeError.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/unavailableExternalVariable.xq2
-rw-r--r--tests/auto/xmlpatterns/queries/unsupportedCollation.xq2
-rw-r--r--tests/auto/xmlpatterns/queries/wrongArity.xq1
-rw-r--r--tests/auto/xmlpatterns/queries/zeroDivision.xq1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Anunboundexternalvariable.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Asimplemathquery.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Asingledashthatsinvalid.txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Asinglequerythatdoesnotexist.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Basicuseofoutputqueryfirst.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Basicuseofoutputquerylast.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Bindanexternalvariable.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Bindanexternalvariablequeryappearinglast.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Callanamedtemplateandusenofocus..txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Callfnerror.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Ensureisuricanappearafterthequeryfilename.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Evaluatealibrarymodule.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Evaluateastylesheetwithnocontextdocument.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Invalidtemplatename.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Invokeatemplateandusepassparameters..txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Invokeversion.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Invokewithcoloninvariablename..txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Invokewithinvalidparamvalue..txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Invokewithmissingnameinparamarg..txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Invokewithparamthathasnovalue..txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Invokewithparamthathastwoadjacentequalsigns..txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/LoadqueryviaFTP.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/LoadqueryviaHTTP.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Loadqueryviadatascheme.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/MakesurequerypathsareresolvedagainstCWDnotthelocationoftheexecutable..txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Notwellformedinstancedocumentcausescrashincoloringcode..txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Notwellformedstylesheetcausescrashincoloringcode..txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Openannonexistentfile.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Openanonexistingcollection..txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Passhelp.txt31
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Passinanexternalvariablebutthequerydoesntuseit..txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Passinastylesheetfileandafocusfilewhichdoesntexist.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/PassinastylesheetfilewhichcontainsanXQueryquery.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Passinastylsheetfileandafocusfilewhichdoesntexist.txt15
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/PassinastylsheetfilewhichcontainsanXQueryquery.txt16
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Passingasingledashisinsufficient.txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Passingtwodashesthelastisinterpretedasafilename.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/PassininvalidURI.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Passthreedashesthetwolastgetsinterpretedastwoqueryarguments.txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/PrintalistofavailableregexpflagsTheavailableflagsareformattedinacomplexway..txt5
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Runaquerywhichevaluatestoasingledocumentnodewithnochildren..txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Runaquerywhichevaluatestotheemptysequence..txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Specifyanamedtemplatethatdoesnotexists.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Specifyanamedtemplatethatexists.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Specifynoargumentsatall..txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Specifythesameparametertwicedifferentvalues.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Specifythesameparametertwicesamevalues.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Specifytwodifferentquerynames.txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Specifytwoidenticalquerynames.txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/TriggeranassertinQPatternistColorOutput.ThequerynaturallycontainsanerrorXPTY0004..txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/TriggerasecondassertinQPatternistColorOutput.ThequerynaturallycontainsXPST0003..txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Triggerastaticerror..txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Unknownswitchd.txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Unknownswitchunknownswitch.txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Useanativepath.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Useanexternalvariablemultipletimes..txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Useasimplifiedstylesheetmodule.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Usefndoc.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Usefndoctogetherwithnoformatfirst.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Usefndoctogetherwithnoformatlast.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Useoutputonafilewithexistingcontenttoensurewetruncatenotappendthecontentweproduce..txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Useoutputtwice.txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Useparamthrice.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Useparamtwice.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/Wedontsupportformatanylonger.txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/XQuerydataXQuerykeywordmessagemarkups.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/XQueryexpressionmessagemarkups.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/XQueryfunctionmessagemarkups.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/XQuerytypemessagemarkups.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/XQueryurimessagemarkups.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/initialtemplatedoesntworkwithXQueries..txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/initialtemplatemustbefollowedbyavalue.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/initialtemplatemustbefollowedbyavalue2.txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/onequeryandaterminatingdashattheend.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/onequerywithaprecedingdash.txt0
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/onlynoformat.txt2
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/outputwithanonwritablefile.txt1
-rw-r--r--tests/auto/xmlpatterns/stderrBaselines/paramismissingsomultiplequeriesappear.txt1
-rw-r--r--tests/auto/xmlpatterns/stylesheets/bool070.xml1
-rw-r--r--tests/auto/xmlpatterns/stylesheets/bool070.xsl6
-rw-r--r--tests/auto/xmlpatterns/stylesheets/copyWholeDocument.xsl9
-rw-r--r--tests/auto/xmlpatterns/stylesheets/documentElement.xml1
-rw-r--r--tests/auto/xmlpatterns/stylesheets/namedAndRootTemplate.xsl5
-rw-r--r--tests/auto/xmlpatterns/stylesheets/namedTemplate.xsl8
-rw-r--r--tests/auto/xmlpatterns/stylesheets/notWellformed.xsl9
-rw-r--r--tests/auto/xmlpatterns/stylesheets/onlyRootTemplate.xsl9
-rw-r--r--tests/auto/xmlpatterns/stylesheets/parameters.xsl41
-rw-r--r--tests/auto/xmlpatterns/stylesheets/queryAsStylesheet.xsl1
-rw-r--r--tests/auto/xmlpatterns/stylesheets/simplifiedStylesheetModule.xml1
-rw-r--r--tests/auto/xmlpatterns/stylesheets/simplifiedStylesheetModule.xsl4
-rw-r--r--tests/auto/xmlpatterns/stylesheets/useParameters.xsl16
-rw-r--r--tests/auto/xmlpatterns/tst_xmlpatterns.cpp1011
-rw-r--r--tests/auto/xmlpatterns/xmlpatterns.pro5
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/.gitattributes6
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/.gitignore2
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/Baseline.xml2
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/DiagnosticsCatalog.xml1046
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/fail-1.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/fail-2.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/fail-3.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/succeed-10.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/succeed-11-1.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/succeed-11-2.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/succeed-12-1.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/succeed-12-2.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/succeed-9-1.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/succeed-9-2.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldFail/succeed-9-3.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-1.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-11.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-13.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-14.txt3
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-2-1.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-2-2.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-2-3.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-2-4.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-2-5.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-2-6.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-6-1.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-6-2.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-7-1.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-7-2.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-8.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/ExpectedTestResults/ShouldSucceed/succeed-9.txt1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-1.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-10.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-11.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-12.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-14.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-15.xq2
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-16.xq2
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-17.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-18.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-2.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-3.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-4.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-5.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-6.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-7.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-8.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldFail/fail-9.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-1.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-10.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-11.xq3
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-12.xq2
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-13.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-14.xq2
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-2.xq2
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-3.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-4.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-5.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-6.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-7.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-8.xq2
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/Queries/XQuery/ShouldSucceed/succeed-9.xq1
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/TestSources/bib2.xml40
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/TestSuite/TestSources/emptydoc.xml1
-rwxr-xr-xtests/auto/xmlpatternsdiagnosticsts/TestSuite/validate.sh3
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/test/test.pro32
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/test/tst_xmlpatternsdiagnosticsts.cpp80
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/xmlpatternsdiagnosticsts.pro4
-rw-r--r--tests/auto/xmlpatternsview/.gitignore1
-rw-r--r--tests/auto/xmlpatternsview/test/test.pro17
-rw-r--r--tests/auto/xmlpatternsview/test/tst_xmlpatternsview.cpp74
-rw-r--r--tests/auto/xmlpatternsview/view/FunctionSignaturesView.cpp101
-rw-r--r--tests/auto/xmlpatternsview/view/FunctionSignaturesView.h116
-rw-r--r--tests/auto/xmlpatternsview/view/MainWindow.cpp531
-rw-r--r--tests/auto/xmlpatternsview/view/MainWindow.h215
-rw-r--r--tests/auto/xmlpatternsview/view/TestCaseView.cpp220
-rw-r--r--tests/auto/xmlpatternsview/view/TestCaseView.h132
-rw-r--r--tests/auto/xmlpatternsview/view/TestResultView.cpp204
-rw-r--r--tests/auto/xmlpatternsview/view/TestResultView.h127
-rw-r--r--tests/auto/xmlpatternsview/view/TreeSortFilter.cpp163
-rw-r--r--tests/auto/xmlpatternsview/view/TreeSortFilter.h139
-rw-r--r--tests/auto/xmlpatternsview/view/UserTestCase.cpp200
-rw-r--r--tests/auto/xmlpatternsview/view/UserTestCase.h167
-rw-r--r--tests/auto/xmlpatternsview/view/XDTItemItem.cpp160
-rw-r--r--tests/auto/xmlpatternsview/view/XDTItemItem.h133
-rw-r--r--tests/auto/xmlpatternsview/view/main.cpp103
-rw-r--r--tests/auto/xmlpatternsview/view/ui_BaseLinePage.ui48
-rw-r--r--tests/auto/xmlpatternsview/view/ui_FunctionSignaturesView.ui70
-rw-r--r--tests/auto/xmlpatternsview/view/ui_MainWindow.ui310
-rw-r--r--tests/auto/xmlpatternsview/view/ui_TestCaseView.ui224
-rw-r--r--tests/auto/xmlpatternsview/view/ui_TestResultView.ui239
-rw-r--r--tests/auto/xmlpatternsview/view/view.pro35
-rw-r--r--tests/auto/xmlpatternsview/xmlpatternsview.pro8
-rw-r--r--tests/auto/xmlpatternsxqts/.gitattributes1
-rw-r--r--tests/auto/xmlpatternsxqts/.gitignore3
-rw-r--r--tests/auto/xmlpatternsxqts/Baseline.xml2
-rw-r--r--tests/auto/xmlpatternsxqts/TODO241
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ASTItem.cpp202
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ASTItem.h156
-rw-r--r--tests/auto/xmlpatternsxqts/lib/DebugExpressionFactory.cpp305
-rw-r--r--tests/auto/xmlpatternsxqts/lib/DebugExpressionFactory.h169
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ErrorHandler.cpp207
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ErrorHandler.h190
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ErrorItem.cpp183
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ErrorItem.h135
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ExitCode.h146
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ExpressionInfo.cpp95
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ExpressionInfo.h121
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ExpressionNamer.cpp357
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ExpressionNamer.h322
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ExternalSourceLoader.cpp181
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ExternalSourceLoader.h178
-rw-r--r--tests/auto/xmlpatternsxqts/lib/Global.cpp124
-rw-r--r--tests/auto/xmlpatternsxqts/lib/Global.h169
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ResultThreader.cpp117
-rw-r--r--tests/auto/xmlpatternsxqts/lib/ResultThreader.h151
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp545
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestBaseLine.h246
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestCase.cpp480
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestCase.h297
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestContainer.cpp192
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestContainer.h164
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestGroup.cpp180
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestGroup.h134
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestItem.h174
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestResult.cpp199
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestResult.h220
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestResultHandler.cpp139
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestResultHandler.h156
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestSuite.cpp302
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestSuite.h191
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestSuiteHandler.cpp353
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestSuiteHandler.h210
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestSuiteResult.cpp214
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestSuiteResult.h134
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TreeItem.cpp103
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TreeItem.h155
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TreeModel.cpp220
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TreeModel.h151
-rw-r--r--tests/auto/xmlpatternsxqts/lib/Worker.cpp299
-rw-r--r--tests/auto/xmlpatternsxqts/lib/Worker.h141
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XMLWriter.cpp710
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XMLWriter.h444
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XQTSTestCase.cpp327
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XQTSTestCase.h190
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XSLTTestSuiteHandler.cpp275
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XSLTTestSuiteHandler.h199
-rw-r--r--tests/auto/xmlpatternsxqts/lib/docs/XMLIndenterExample.cpp63
-rw-r--r--tests/auto/xmlpatternsxqts/lib/docs/XMLIndenterExampleResult.xml3
-rw-r--r--tests/auto/xmlpatternsxqts/lib/docs/XMLWriterExample.cpp63
-rw-r--r--tests/auto/xmlpatternsxqts/lib/docs/XMLWriterExampleResult.xml3
-rw-r--r--tests/auto/xmlpatternsxqts/lib/lib.pro78
-rw-r--r--tests/auto/xmlpatternsxqts/lib/tests/XMLWriterTest.cpp227
-rw-r--r--tests/auto/xmlpatternsxqts/lib/tests/XMLWriterTest.h118
-rwxr-xr-xtests/auto/xmlpatternsxqts/summarizeBaseline.sh10
-rw-r--r--tests/auto/xmlpatternsxqts/summarizeBaseline.xsl25
-rw-r--r--tests/auto/xmlpatternsxqts/test/test.pro28
-rw-r--r--tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp166
-rw-r--r--tests/auto/xmlpatternsxqts/test/tst_suitetest.h99
-rw-r--r--tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp106
-rw-r--r--tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro11
-rw-r--r--tests/auto/xmlpatternsxslts/.gitignore4
-rw-r--r--tests/auto/xmlpatternsxslts/Baseline.xml2
-rw-r--r--tests/auto/xmlpatternsxslts/XSLTS/.gitignore8
-rwxr-xr-xtests/auto/xmlpatternsxslts/XSLTS/updateSuite.sh18
-rw-r--r--tests/auto/xmlpatternsxslts/tst_xmlpatternsxslts.cpp80
-rw-r--r--tests/auto/xmlpatternsxslts/xmlpatternsxslts.pro25
-rw-r--r--tests/benchmarks/benchmarks.pro19
-rw-r--r--tests/benchmarks/blendbench/blendbench.pro8
-rw-r--r--tests/benchmarks/blendbench/main.cpp152
-rw-r--r--tests/benchmarks/containers-associative/containers-associative.pro8
-rw-r--r--tests/benchmarks/containers-associative/main.cpp143
-rw-r--r--tests/benchmarks/containers-sequential/containers-sequential.pro8
-rw-r--r--tests/benchmarks/containers-sequential/main.cpp258
-rw-r--r--tests/benchmarks/events/events.pro7
-rw-r--r--tests/benchmarks/events/main.cpp176
-rw-r--r--tests/benchmarks/opengl/main.cpp379
-rw-r--r--tests/benchmarks/opengl/opengl.pro10
-rw-r--r--tests/benchmarks/qapplication/main.cpp87
-rw-r--r--tests/benchmarks/qapplication/qapplication.pro10
-rwxr-xr-xtests/benchmarks/qbytearray/main.cpp87
-rwxr-xr-xtests/benchmarks/qbytearray/qbytearray.pro12
-rwxr-xr-xtests/benchmarks/qdiriterator/main.cpp251
-rwxr-xr-xtests/benchmarks/qdiriterator/qdiriterator.pro23
-rw-r--r--tests/benchmarks/qdiriterator/qfilesystemiterator.cpp689
-rw-r--r--tests/benchmarks/qdiriterator/qfilesystemiterator.h99
-rw-r--r--tests/benchmarks/qfile/main.cpp650
-rw-r--r--tests/benchmarks/qfile/qfile.pro7
-rw-r--r--tests/benchmarks/qgraphicsscene/qgraphicsscene.pro6
-rw-r--r--tests/benchmarks/qgraphicsscene/tst_qgraphicsscene.cpp226
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.cpp176
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.debugbin0 -> 863805 bytes-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.h68
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.pro19
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/fileprint.pngbin0 -> 1456 bytes-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/images.qrc10
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/main.cpp57
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/mainwindow.cpp87
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/mainwindow.h66
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/qt4logo.pngbin0 -> 48333 bytes-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/rotateleft.pngbin0 -> 1754 bytes-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/rotateright.pngbin0 -> 1732 bytes-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/view.cpp257
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/view.h86
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/zoomin.pngbin0 -> 1622 bytes-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/chipTest/zoomout.pngbin0 -> 1601 bytes-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/moveItems/main.cpp106
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/moveItems/moveItems.pro1
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/scrolltest/main.cpp146
-rw-r--r--tests/benchmarks/qgraphicsview/benchapps/scrolltest/scrolltest.pro1
-rw-r--r--tests/benchmarks/qgraphicsview/chiptester/chip.cpp182
-rw-r--r--tests/benchmarks/qgraphicsview/chiptester/chip.h68
-rw-r--r--tests/benchmarks/qgraphicsview/chiptester/chiptester.cpp144
-rw-r--r--tests/benchmarks/qgraphicsview/chiptester/chiptester.h85
-rw-r--r--tests/benchmarks/qgraphicsview/chiptester/chiptester.pri12
-rw-r--r--tests/benchmarks/qgraphicsview/chiptester/images.qrc5
-rw-r--r--tests/benchmarks/qgraphicsview/chiptester/qt4logo.pngbin0 -> 48333 bytes-rw-r--r--tests/benchmarks/qgraphicsview/images/designer.pngbin0 -> 4205 bytes-rw-r--r--tests/benchmarks/qgraphicsview/qgraphicsview.pro8
-rw-r--r--tests/benchmarks/qgraphicsview/qgraphicsview.qrc7
-rw-r--r--tests/benchmarks/qgraphicsview/random.databin0 -> 800 bytes-rw-r--r--tests/benchmarks/qgraphicsview/tst_qgraphicsview.cpp692
-rw-r--r--tests/benchmarks/qimagereader/images/16bpp.bmpbin0 -> 153654 bytes-rw-r--r--tests/benchmarks/qimagereader/images/4bpp-rle.bmpbin0 -> 23662 bytes-rw-r--r--tests/benchmarks/qimagereader/images/YCbCr_cmyk.jpgbin0 -> 3699 bytes-rw-r--r--tests/benchmarks/qimagereader/images/YCbCr_cmyk.pngbin0 -> 230 bytes-rw-r--r--tests/benchmarks/qimagereader/images/YCbCr_rgb.jpgbin0 -> 2045 bytes-rw-r--r--tests/benchmarks/qimagereader/images/away.pngbin0 -> 753 bytes-rw-r--r--tests/benchmarks/qimagereader/images/ball.mngbin0 -> 34394 bytes-rw-r--r--tests/benchmarks/qimagereader/images/bat1.gifbin0 -> 953 bytes-rw-r--r--tests/benchmarks/qimagereader/images/bat2.gifbin0 -> 980 bytes-rw-r--r--tests/benchmarks/qimagereader/images/beavis.jpgbin0 -> 20688 bytes-rw-r--r--tests/benchmarks/qimagereader/images/black.pngbin0 -> 697 bytes-rw-r--r--tests/benchmarks/qimagereader/images/black.xpm65
-rw-r--r--tests/benchmarks/qimagereader/images/colorful.bmpbin0 -> 65002 bytes-rw-r--r--tests/benchmarks/qimagereader/images/corrupt-colors.xpm26
-rw-r--r--tests/benchmarks/qimagereader/images/corrupt-data.tifbin0 -> 8590 bytes-rw-r--r--tests/benchmarks/qimagereader/images/corrupt-pixels.xpm7
-rw-r--r--tests/benchmarks/qimagereader/images/corrupt.bmpbin0 -> 116 bytes-rw-r--r--tests/benchmarks/qimagereader/images/corrupt.gifbin0 -> 2608 bytes-rw-r--r--tests/benchmarks/qimagereader/images/corrupt.jpgbin0 -> 18 bytes-rw-r--r--tests/benchmarks/qimagereader/images/corrupt.mngbin0 -> 183 bytes-rw-r--r--tests/benchmarks/qimagereader/images/corrupt.pngbin0 -> 95 bytes-rw-r--r--tests/benchmarks/qimagereader/images/corrupt.xbm5
-rw-r--r--tests/benchmarks/qimagereader/images/crash-signed-char.bmpbin0 -> 45748 bytes-rw-r--r--tests/benchmarks/qimagereader/images/earth.gifbin0 -> 51712 bytes-rw-r--r--tests/benchmarks/qimagereader/images/fire.mngbin0 -> 44430 bytes-rw-r--r--tests/benchmarks/qimagereader/images/font.bmpbin0 -> 1026 bytes-rw-r--r--tests/benchmarks/qimagereader/images/gnus.xbm622
-rw-r--r--tests/benchmarks/qimagereader/images/image.pbm8
-rw-r--r--tests/benchmarks/qimagereader/images/image.pgm10
-rw-r--r--tests/benchmarks/qimagereader/images/image.pngbin0 -> 549 bytes-rw-r--r--tests/benchmarks/qimagereader/images/image.ppm7
-rw-r--r--tests/benchmarks/qimagereader/images/kollada-noextbin0 -> 13907 bytes-rw-r--r--tests/benchmarks/qimagereader/images/kollada.pngbin0 -> 13907 bytes-rw-r--r--tests/benchmarks/qimagereader/images/marble.xpm470
-rw-r--r--tests/benchmarks/qimagereader/images/namedcolors.xpm18
-rw-r--r--tests/benchmarks/qimagereader/images/negativeheight.bmpbin0 -> 24630 bytes-rw-r--r--tests/benchmarks/qimagereader/images/noclearcode.bmpbin0 -> 326 bytes-rw-r--r--tests/benchmarks/qimagereader/images/noclearcode.gifbin0 -> 130 bytes-rw-r--r--tests/benchmarks/qimagereader/images/nontransparent.xpm788
-rw-r--r--tests/benchmarks/qimagereader/images/pngwithcompressedtext.pngbin0 -> 757 bytes-rw-r--r--tests/benchmarks/qimagereader/images/pngwithtext.pngbin0 -> 796 bytes-rw-r--r--tests/benchmarks/qimagereader/images/rgba_adobedeflate_littleendian.tifbin0 -> 4784 bytes-rw-r--r--tests/benchmarks/qimagereader/images/rgba_lzw_littleendian.tifbin0 -> 26690 bytes-rw-r--r--tests/benchmarks/qimagereader/images/rgba_nocompression_bigendian.tifbin0 -> 160384 bytes-rw-r--r--tests/benchmarks/qimagereader/images/rgba_nocompression_littleendian.tifbin0 -> 160388 bytes-rw-r--r--tests/benchmarks/qimagereader/images/rgba_packbits_littleendian.tifbin0 -> 161370 bytes-rw-r--r--tests/benchmarks/qimagereader/images/rgba_zipdeflate_littleendian.tifbin0 -> 14728 bytes-rw-r--r--tests/benchmarks/qimagereader/images/runners.ppmbin0 -> 960016 bytes-rw-r--r--tests/benchmarks/qimagereader/images/task210380.jpgbin0 -> 975535 bytes-rw-r--r--tests/benchmarks/qimagereader/images/teapot.ppm31
-rw-r--r--tests/benchmarks/qimagereader/images/test.ppm2
-rw-r--r--tests/benchmarks/qimagereader/images/test.xpm260
-rw-r--r--tests/benchmarks/qimagereader/images/transparent.xpm788
-rw-r--r--tests/benchmarks/qimagereader/images/trolltech.gifbin0 -> 42629 bytes-rw-r--r--tests/benchmarks/qimagereader/images/tst7.bmpbin0 -> 582 bytes-rw-r--r--tests/benchmarks/qimagereader/images/tst7.pngbin0 -> 167 bytes-rw-r--r--tests/benchmarks/qimagereader/qimagereader.pro27
-rw-r--r--tests/benchmarks/qimagereader/tst_qimagereader.cpp246
-rwxr-xr-xtests/benchmarks/qiodevice/main.cpp105
-rwxr-xr-xtests/benchmarks/qiodevice/qiodevice.pro12
-rw-r--r--tests/benchmarks/qmetaobject/main.cpp159
-rw-r--r--tests/benchmarks/qmetaobject/qmetaobject.pro5
-rw-r--r--tests/benchmarks/qobject/main.cpp190
-rw-r--r--tests/benchmarks/qobject/object.cpp65
-rw-r--r--tests/benchmarks/qobject/object.h75
-rw-r--r--tests/benchmarks/qobject/qobject.pro9
-rw-r--r--tests/benchmarks/qpainter/qpainter.pro5
-rw-r--r--tests/benchmarks/qpainter/tst_qpainter.cpp1136
-rw-r--r--tests/benchmarks/qpixmap/qpixmap.pro5
-rw-r--r--tests/benchmarks/qpixmap/tst_qpixmap.cpp227
-rw-r--r--tests/benchmarks/qrect/main.cpp329
-rw-r--r--tests/benchmarks/qrect/qrect.pro12
-rw-r--r--tests/benchmarks/qregexp/main.cpp290
-rw-r--r--tests/benchmarks/qregexp/qregexp.pro12
-rw-r--r--tests/benchmarks/qregion/main.cpp89
-rw-r--r--tests/benchmarks/qregion/qregion.pro10
-rw-r--r--tests/benchmarks/qstringlist/.gitignore1
-rw-r--r--tests/benchmarks/qstringlist/main.cpp101
-rw-r--r--tests/benchmarks/qstringlist/qstringlist.pro4
-rw-r--r--tests/benchmarks/qstylesheetstyle/main.cpp185
-rw-r--r--tests/benchmarks/qstylesheetstyle/qstylesheetstyle.pro11
-rw-r--r--tests/benchmarks/qtemporaryfile/main.cpp103
-rw-r--r--tests/benchmarks/qtemporaryfile/qtemporaryfile.pro12
-rw-r--r--tests/benchmarks/qtestlib-simple/main.cpp117
-rw-r--r--tests/benchmarks/qtestlib-simple/qtestlib-simple.pro8
-rw-r--r--tests/benchmarks/qtransform/qtransform.pro6
-rw-r--r--tests/benchmarks/qtransform/tst_qtransform.cpp592
-rw-r--r--tests/benchmarks/qtwidgets/advanced.ui319
-rw-r--r--tests/benchmarks/qtwidgets/icons/big.pngbin0 -> 1323 bytes-rw-r--r--tests/benchmarks/qtwidgets/icons/folder.pngbin0 -> 4069 bytes-rw-r--r--tests/benchmarks/qtwidgets/icons/icon.bmpbin0 -> 246 bytes-rw-r--r--tests/benchmarks/qtwidgets/icons/icon.pngbin0 -> 344 bytes-rw-r--r--tests/benchmarks/qtwidgets/mainwindow.cpp313
-rw-r--r--tests/benchmarks/qtwidgets/mainwindow.h80
-rw-r--r--tests/benchmarks/qtwidgets/qtstyles.qrc8
-rw-r--r--tests/benchmarks/qtwidgets/qtwidgets.pro9
-rw-r--r--tests/benchmarks/qtwidgets/standard.ui1207
-rw-r--r--tests/benchmarks/qtwidgets/system.ui658
-rw-r--r--tests/benchmarks/qtwidgets/tst_qtwidgets.cpp67
-rw-r--r--tests/benchmarks/qvariant/qvariant.pro12
-rw-r--r--tests/benchmarks/qvariant/tst_qvariant.cpp195
-rw-r--r--tests/benchmarks/qwidget/qwidget.pro4
-rw-r--r--tests/benchmarks/qwidget/tst_qwidget.cpp332
-rw-r--r--tests/shared/util.h70
-rw-r--r--tests/tests.pro2
-rw-r--r--tools/activeqt/activeqt.pro11
-rw-r--r--tools/activeqt/dumpcpp/dumpcpp.pro6
-rw-r--r--tools/activeqt/dumpcpp/main.cpp1502
-rw-r--r--tools/activeqt/dumpdoc/dumpdoc.pro5
-rw-r--r--tools/activeqt/dumpdoc/main.cpp146
-rw-r--r--tools/activeqt/testcon/ambientproperties.cpp125
-rw-r--r--tools/activeqt/testcon/ambientproperties.h71
-rw-r--r--tools/activeqt/testcon/ambientproperties.ui299
-rw-r--r--tools/activeqt/testcon/changeproperties.cpp286
-rw-r--r--tools/activeqt/testcon/changeproperties.h74
-rw-r--r--tools/activeqt/testcon/changeproperties.ui211
-rw-r--r--tools/activeqt/testcon/controlinfo.cpp122
-rw-r--r--tools/activeqt/testcon/controlinfo.h61
-rw-r--r--tools/activeqt/testcon/controlinfo.ui134
-rw-r--r--tools/activeqt/testcon/docuwindow.cpp161
-rw-r--r--tools/activeqt/testcon/docuwindow.h67
-rw-r--r--tools/activeqt/testcon/invokemethod.cpp170
-rw-r--r--tools/activeqt/testcon/invokemethod.h73
-rw-r--r--tools/activeqt/testcon/invokemethod.ui270
-rw-r--r--tools/activeqt/testcon/main.cpp64
-rw-r--r--tools/activeqt/testcon/mainwindow.cpp461
-rw-r--r--tools/activeqt/testcon/mainwindow.h106
-rw-r--r--tools/activeqt/testcon/mainwindow.ui682
-rw-r--r--tools/activeqt/testcon/scripts/javascript.js25
-rw-r--r--tools/activeqt/testcon/scripts/perlscript.pl24
-rw-r--r--tools/activeqt/testcon/scripts/pythonscript.py15
-rw-r--r--tools/activeqt/testcon/scripts/vbscript.vbs20
-rw-r--r--tools/activeqt/testcon/testcon.idl44
-rw-r--r--tools/activeqt/testcon/testcon.pro21
-rw-r--r--tools/activeqt/testcon/testcon.rc35
-rw-r--r--tools/assistant/assistant.pro8
-rw-r--r--tools/assistant/compat/Info_mac.plist18
-rw-r--r--tools/assistant/compat/LICENSE.GPL280
-rw-r--r--tools/assistant/compat/assistant.icnsbin0 -> 162568 bytes-rw-r--r--tools/assistant/compat/assistant.icobin0 -> 355574 bytes-rw-r--r--tools/assistant/compat/assistant.pro84
-rw-r--r--tools/assistant/compat/assistant.qrc37
-rw-r--r--tools/assistant/compat/assistant.rc1
-rw-r--r--tools/assistant/compat/compat.pro84
-rw-r--r--tools/assistant/compat/config.cpp438
-rw-r--r--tools/assistant/compat/config.h165
-rw-r--r--tools/assistant/compat/docuparser.cpp433
-rw-r--r--tools/assistant/compat/docuparser.h166
-rw-r--r--tools/assistant/compat/fontsettingsdialog.cpp137
-rw-r--r--tools/assistant/compat/fontsettingsdialog.h77
-rw-r--r--tools/assistant/compat/helpdialog.cpp1331
-rw-r--r--tools/assistant/compat/helpdialog.h184
-rw-r--r--tools/assistant/compat/helpdialog.ui404
-rw-r--r--tools/assistant/compat/helpwindow.cpp247
-rw-r--r--tools/assistant/compat/helpwindow.h100
-rw-r--r--tools/assistant/compat/images/assistant-128.pngbin0 -> 6448 bytes-rw-r--r--tools/assistant/compat/images/assistant.pngbin0 -> 2034 bytes-rw-r--r--tools/assistant/compat/images/close.pngbin0 -> 406 bytes-rw-r--r--tools/assistant/compat/images/designer.pngbin0 -> 1282 bytes-rw-r--r--tools/assistant/compat/images/linguist.pngbin0 -> 1382 bytes-rw-r--r--tools/assistant/compat/images/mac/addtab.pngbin0 -> 469 bytes-rw-r--r--tools/assistant/compat/images/mac/book.pngbin0 -> 1477 bytes-rw-r--r--tools/assistant/compat/images/mac/closetab.pngbin0 -> 516 bytes-rw-r--r--tools/assistant/compat/images/mac/editcopy.pngbin0 -> 1468 bytes-rw-r--r--tools/assistant/compat/images/mac/find.pngbin0 -> 1836 bytes-rw-r--r--tools/assistant/compat/images/mac/home.pngbin0 -> 1807 bytes-rw-r--r--tools/assistant/compat/images/mac/next.pngbin0 -> 1310 bytes-rw-r--r--tools/assistant/compat/images/mac/prev.pngbin0 -> 1080 bytes-rw-r--r--tools/assistant/compat/images/mac/print.pngbin0 -> 2087 bytes-rw-r--r--tools/assistant/compat/images/mac/synctoc.pngbin0 -> 1838 bytes-rw-r--r--tools/assistant/compat/images/mac/whatsthis.pngbin0 -> 1586 bytes-rw-r--r--tools/assistant/compat/images/mac/zoomin.pngbin0 -> 1696 bytes-rw-r--r--tools/assistant/compat/images/mac/zoomout.pngbin0 -> 1662 bytes-rw-r--r--tools/assistant/compat/images/qt.pngbin0 -> 1422 bytes-rw-r--r--tools/assistant/compat/images/win/addtab.pngbin0 -> 314 bytes-rw-r--r--tools/assistant/compat/images/win/book.pngbin0 -> 1109 bytes-rw-r--r--tools/assistant/compat/images/win/closetab.pngbin0 -> 375 bytes-rw-r--r--tools/assistant/compat/images/win/editcopy.pngbin0 -> 1325 bytes-rw-r--r--tools/assistant/compat/images/win/find.pngbin0 -> 1944 bytes-rw-r--r--tools/assistant/compat/images/win/home.pngbin0 -> 1414 bytes-rw-r--r--tools/assistant/compat/images/win/next.pngbin0 -> 1038 bytes-rw-r--r--tools/assistant/compat/images/win/previous.pngbin0 -> 898 bytes-rw-r--r--tools/assistant/compat/images/win/print.pngbin0 -> 1456 bytes-rw-r--r--tools/assistant/compat/images/win/synctoc.pngbin0 -> 1235 bytes-rw-r--r--tools/assistant/compat/images/win/whatsthis.pngbin0 -> 1040 bytes-rw-r--r--tools/assistant/compat/images/win/zoomin.pngbin0 -> 1208 bytes-rw-r--r--tools/assistant/compat/images/win/zoomout.pngbin0 -> 1226 bytes-rw-r--r--tools/assistant/compat/images/wrap.pngbin0 -> 500 bytes-rw-r--r--tools/assistant/compat/index.cpp581
-rw-r--r--tools/assistant/compat/index.h133
-rw-r--r--tools/assistant/compat/lib/lib.pro78
-rw-r--r--tools/assistant/compat/lib/qassistantclient.cpp447
-rw-r--r--tools/assistant/compat/lib/qassistantclient.h100
-rw-r--r--tools/assistant/compat/lib/qassistantclient_global.h63
-rw-r--r--tools/assistant/compat/main.cpp465
-rw-r--r--tools/assistant/compat/mainwindow.cpp901
-rw-r--r--tools/assistant/compat/mainwindow.h137
-rw-r--r--tools/assistant/compat/mainwindow.ui459
-rw-r--r--tools/assistant/compat/profile.cpp196
-rw-r--r--tools/assistant/compat/profile.h95
-rw-r--r--tools/assistant/compat/tabbedbrowser.cpp530
-rw-r--r--tools/assistant/compat/tabbedbrowser.h122
-rw-r--r--tools/assistant/compat/tabbedbrowser.ui233
-rw-r--r--tools/assistant/compat/topicchooser.cpp101
-rw-r--r--tools/assistant/compat/topicchooser.h77
-rw-r--r--tools/assistant/compat/topicchooser.ui162
-rw-r--r--tools/assistant/compat/translations/translations.pro34
-rw-r--r--tools/assistant/lib/fulltextsearch/fulltextsearch.pri161
-rw-r--r--tools/assistant/lib/fulltextsearch/fulltextsearch.pro50
-rw-r--r--tools/assistant/lib/fulltextsearch/license.txt503
-rw-r--r--tools/assistant/lib/fulltextsearch/qanalyzer.cpp201
-rw-r--r--tools/assistant/lib/fulltextsearch/qanalyzer_p.h145
-rw-r--r--tools/assistant/lib/fulltextsearch/qclucene-config_p.h552
-rw-r--r--tools/assistant/lib/fulltextsearch/qclucene_global_p.h127
-rw-r--r--tools/assistant/lib/fulltextsearch/qdocument.cpp172
-rw-r--r--tools/assistant/lib/fulltextsearch/qdocument_p.h93
-rw-r--r--tools/assistant/lib/fulltextsearch/qfield.cpp163
-rw-r--r--tools/assistant/lib/fulltextsearch/qfield_p.h112
-rw-r--r--tools/assistant/lib/fulltextsearch/qfilter.cpp49
-rw-r--r--tools/assistant/lib/fulltextsearch/qfilter_p.h68
-rw-r--r--tools/assistant/lib/fulltextsearch/qhits.cpp86
-rw-r--r--tools/assistant/lib/fulltextsearch/qhits_p.h79
-rw-r--r--tools/assistant/lib/fulltextsearch/qindexreader.cpp161
-rw-r--r--tools/assistant/lib/fulltextsearch/qindexreader_p.h108
-rw-r--r--tools/assistant/lib/fulltextsearch/qindexwriter.cpp183
-rw-r--r--tools/assistant/lib/fulltextsearch/qindexwriter_p.h117
-rw-r--r--tools/assistant/lib/fulltextsearch/qquery.cpp350
-rw-r--r--tools/assistant/lib/fulltextsearch/qquery_p.h181
-rw-r--r--tools/assistant/lib/fulltextsearch/qqueryparser.cpp168
-rw-r--r--tools/assistant/lib/fulltextsearch/qqueryparser_p.h102
-rw-r--r--tools/assistant/lib/fulltextsearch/qreader.cpp94
-rw-r--r--tools/assistant/lib/fulltextsearch/qreader_p.h97
-rw-r--r--tools/assistant/lib/fulltextsearch/qsearchable.cpp195
-rw-r--r--tools/assistant/lib/fulltextsearch/qsearchable_p.h128
-rw-r--r--tools/assistant/lib/fulltextsearch/qsort.cpp89
-rw-r--r--tools/assistant/lib/fulltextsearch/qsort_p.h77
-rw-r--r--tools/assistant/lib/fulltextsearch/qterm.cpp126
-rw-r--r--tools/assistant/lib/fulltextsearch/qterm_p.h93
-rw-r--r--tools/assistant/lib/fulltextsearch/qtoken.cpp142
-rw-r--r--tools/assistant/lib/fulltextsearch/qtoken_p.h105
-rw-r--r--tools/assistant/lib/fulltextsearch/qtokenizer.cpp110
-rw-r--r--tools/assistant/lib/fulltextsearch/qtokenizer_p.h90
-rw-r--r--tools/assistant/lib/fulltextsearch/qtokenstream.cpp59
-rw-r--r--tools/assistant/lib/fulltextsearch/qtokenstream_p.h88
-rw-r--r--tools/assistant/lib/helpsystem.qrc8
-rw-r--r--tools/assistant/lib/images/1leftarrow.pngbin0 -> 669 bytes-rw-r--r--tools/assistant/lib/images/1rightarrow.pngbin0 -> 706 bytes-rw-r--r--tools/assistant/lib/images/3leftarrow.pngbin0 -> 832 bytes-rw-r--r--tools/assistant/lib/images/3rightarrow.pngbin0 -> 820 bytes-rw-r--r--tools/assistant/lib/lib.pro65
-rw-r--r--tools/assistant/lib/qhelp_global.h124
-rw-r--r--tools/assistant/lib/qhelpcollectionhandler.cpp595
-rw-r--r--tools/assistant/lib/qhelpcollectionhandler_p.h123
-rw-r--r--tools/assistant/lib/qhelpcontentwidget.cpp585
-rw-r--r--tools/assistant/lib/qhelpcontentwidget.h146
-rw-r--r--tools/assistant/lib/qhelpdatainterface.cpp273
-rw-r--r--tools/assistant/lib/qhelpdatainterface_p.h155
-rw-r--r--tools/assistant/lib/qhelpdbreader.cpp580
-rw-r--r--tools/assistant/lib/qhelpdbreader_p.h128
-rw-r--r--tools/assistant/lib/qhelpengine.cpp212
-rw-r--r--tools/assistant/lib/qhelpengine.h84
-rw-r--r--tools/assistant/lib/qhelpengine_p.h144
-rw-r--r--tools/assistant/lib/qhelpenginecore.cpp727
-rw-r--r--tools/assistant/lib/qhelpenginecore.h136
-rw-r--r--tools/assistant/lib/qhelpgenerator.cpp823
-rw-r--r--tools/assistant/lib/qhelpgenerator_p.h117
-rw-r--r--tools/assistant/lib/qhelpindexwidget.cpp445
-rw-r--r--tools/assistant/lib/qhelpindexwidget.h114
-rw-r--r--tools/assistant/lib/qhelpprojectdata.cpp374
-rw-r--r--tools/assistant/lib/qhelpprojectdata_p.h89
-rw-r--r--tools/assistant/lib/qhelpsearchengine.cpp445
-rw-r--r--tools/assistant/lib/qhelpsearchengine.h121
-rw-r--r--tools/assistant/lib/qhelpsearchindex_default.cpp60
-rw-r--r--tools/assistant/lib/qhelpsearchindex_default_p.h149
-rw-r--r--tools/assistant/lib/qhelpsearchindexreader_clucene.cpp392
-rw-r--r--tools/assistant/lib/qhelpsearchindexreader_clucene_p.h121
-rw-r--r--tools/assistant/lib/qhelpsearchindexreader_default.cpp653
-rw-r--r--tools/assistant/lib/qhelpsearchindexreader_default_p.h165
-rw-r--r--tools/assistant/lib/qhelpsearchindexwriter_clucene.cpp481
-rw-r--r--tools/assistant/lib/qhelpsearchindexwriter_clucene_p.h123
-rw-r--r--tools/assistant/lib/qhelpsearchindexwriter_default.cpp385
-rw-r--r--tools/assistant/lib/qhelpsearchindexwriter_default_p.h132
-rw-r--r--tools/assistant/lib/qhelpsearchquerywidget.cpp353
-rw-r--r--tools/assistant/lib/qhelpsearchquerywidget.h87
-rw-r--r--tools/assistant/lib/qhelpsearchresultwidget.cpp439
-rw-r--r--tools/assistant/lib/qhelpsearchresultwidget.h84
-rw-r--r--tools/assistant/tools/assistant/Info_mac.plist18
-rw-r--r--tools/assistant/tools/assistant/aboutdialog.cpp171
-rw-r--r--tools/assistant/tools/assistant/aboutdialog.h91
-rw-r--r--tools/assistant/tools/assistant/assistant.icnsbin0 -> 162568 bytes-rw-r--r--tools/assistant/tools/assistant/assistant.icobin0 -> 355574 bytes-rw-r--r--tools/assistant/tools/assistant/assistant.pro89
-rw-r--r--tools/assistant/tools/assistant/assistant.qchbin0 -> 366592 bytes-rw-r--r--tools/assistant/tools/assistant/assistant.qrc5
-rw-r--r--tools/assistant/tools/assistant/assistant.rc1
-rw-r--r--tools/assistant/tools/assistant/assistant_images.qrc36
-rw-r--r--tools/assistant/tools/assistant/bookmarkdialog.ui146
-rw-r--r--tools/assistant/tools/assistant/bookmarkmanager.cpp874
-rw-r--r--tools/assistant/tools/assistant/bookmarkmanager.h205
-rw-r--r--tools/assistant/tools/assistant/centralwidget.cpp1080
-rw-r--r--tools/assistant/tools/assistant/centralwidget.h194
-rw-r--r--tools/assistant/tools/assistant/cmdlineparser.cpp320
-rw-r--r--tools/assistant/tools/assistant/cmdlineparser.h99
-rw-r--r--tools/assistant/tools/assistant/contentwindow.cpp173
-rw-r--r--tools/assistant/tools/assistant/contentwindow.h86
-rw-r--r--tools/assistant/tools/assistant/doc/HOWTO17
-rw-r--r--tools/assistant/tools/assistant/doc/assistant.qdoc434
-rw-r--r--tools/assistant/tools/assistant/doc/assistant.qdocconf17
-rw-r--r--tools/assistant/tools/assistant/doc/assistant.qhp22
-rw-r--r--tools/assistant/tools/assistant/doc/classic.css92
-rw-r--r--tools/assistant/tools/assistant/doc/images/assistant-address-toolbar.pngbin0 -> 2899 bytes-rw-r--r--tools/assistant/tools/assistant/doc/images/assistant-assistant.pngbin0 -> 105954 bytes-rw-r--r--tools/assistant/tools/assistant/doc/images/assistant-dockwidgets.pngbin0 -> 50554 bytes-rw-r--r--tools/assistant/tools/assistant/doc/images/assistant-docwindow.pngbin0 -> 55582 bytes-rw-r--r--tools/assistant/tools/assistant/doc/images/assistant-examples.pngbin0 -> 9799 bytes-rw-r--r--tools/assistant/tools/assistant/doc/images/assistant-filter-toolbar.pngbin0 -> 1767 bytes-rw-r--r--tools/assistant/tools/assistant/doc/images/assistant-preferences-documentation.pngbin0 -> 13417 bytes-rw-r--r--tools/assistant/tools/assistant/doc/images/assistant-preferences-filters.pngbin0 -> 15561 bytes-rw-r--r--tools/assistant/tools/assistant/doc/images/assistant-preferences-fonts.pngbin0 -> 13139 bytes-rw-r--r--tools/assistant/tools/assistant/doc/images/assistant-preferences-options.pngbin0 -> 14255 bytes-rw-r--r--tools/assistant/tools/assistant/doc/images/assistant-search.pngbin0 -> 59254 bytes-rw-r--r--tools/assistant/tools/assistant/doc/images/assistant-toolbar.pngbin0 -> 6532 bytes-rw-r--r--tools/assistant/tools/assistant/filternamedialog.cpp73
-rw-r--r--tools/assistant/tools/assistant/filternamedialog.h67
-rw-r--r--tools/assistant/tools/assistant/filternamedialog.ui67
-rw-r--r--tools/assistant/tools/assistant/helpviewer.cpp556
-rw-r--r--tools/assistant/tools/assistant/helpviewer.h169
-rw-r--r--tools/assistant/tools/assistant/images/assistant-128.pngbin0 -> 6448 bytes-rw-r--r--tools/assistant/tools/assistant/images/assistant.pngbin0 -> 2034 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/addtab.pngbin0 -> 469 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/book.pngbin0 -> 1477 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/closetab.pngbin0 -> 516 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/editcopy.pngbin0 -> 1468 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/find.pngbin0 -> 1836 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/home.pngbin0 -> 1807 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/next.pngbin0 -> 1310 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/previous.pngbin0 -> 1080 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/print.pngbin0 -> 2087 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/resetzoom.pngbin0 -> 1567 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/synctoc.pngbin0 -> 1838 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/zoomin.pngbin0 -> 1696 bytes-rw-r--r--tools/assistant/tools/assistant/images/mac/zoomout.pngbin0 -> 1662 bytes-rw-r--r--tools/assistant/tools/assistant/images/trolltech-logo.pngbin0 -> 10096 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/addtab.pngbin0 -> 314 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/book.pngbin0 -> 1109 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/closetab.pngbin0 -> 375 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/editcopy.pngbin0 -> 1325 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/find.pngbin0 -> 1944 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/home.pngbin0 -> 1414 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/next.pngbin0 -> 1038 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/previous.pngbin0 -> 898 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/print.pngbin0 -> 1456 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/resetzoom.pngbin0 -> 1134 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/synctoc.pngbin0 -> 1235 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/zoomin.pngbin0 -> 1208 bytes-rw-r--r--tools/assistant/tools/assistant/images/win/zoomout.pngbin0 -> 1226 bytes-rw-r--r--tools/assistant/tools/assistant/images/wrap.pngbin0 -> 500 bytes-rw-r--r--tools/assistant/tools/assistant/indexwindow.cpp216
-rw-r--r--tools/assistant/tools/assistant/indexwindow.h90
-rw-r--r--tools/assistant/tools/assistant/installdialog.cpp338
-rw-r--r--tools/assistant/tools/assistant/installdialog.h101
-rw-r--r--tools/assistant/tools/assistant/installdialog.ui118
-rw-r--r--tools/assistant/tools/assistant/main.cpp318
-rw-r--r--tools/assistant/tools/assistant/mainwindow.cpp1008
-rw-r--r--tools/assistant/tools/assistant/mainwindow.h172
-rw-r--r--tools/assistant/tools/assistant/preferencesdialog.cpp453
-rw-r--r--tools/assistant/tools/assistant/preferencesdialog.h106
-rw-r--r--tools/assistant/tools/assistant/preferencesdialog.ui310
-rw-r--r--tools/assistant/tools/assistant/qtdocinstaller.cpp151
-rw-r--r--tools/assistant/tools/assistant/qtdocinstaller.h77
-rw-r--r--tools/assistant/tools/assistant/remotecontrol.cpp283
-rw-r--r--tools/assistant/tools/assistant/remotecontrol.h84
-rw-r--r--tools/assistant/tools/assistant/remotecontrol_win.h68
-rw-r--r--tools/assistant/tools/assistant/searchwidget.cpp246
-rw-r--r--tools/assistant/tools/assistant/searchwidget.h90
-rw-r--r--tools/assistant/tools/assistant/topicchooser.cpp86
-rw-r--r--tools/assistant/tools/assistant/topicchooser.h72
-rw-r--r--tools/assistant/tools/assistant/topicchooser.ui116
-rw-r--r--tools/assistant/tools/qcollectiongenerator/main.cpp559
-rw-r--r--tools/assistant/tools/qcollectiongenerator/qcollectiongenerator.pro14
-rw-r--r--tools/assistant/tools/qhelpconverter/adpreader.cpp171
-rw-r--r--tools/assistant/tools/qhelpconverter/adpreader.h90
-rw-r--r--tools/assistant/tools/qhelpconverter/assistant-128.pngbin0 -> 6448 bytes-rw-r--r--tools/assistant/tools/qhelpconverter/assistant.pngbin0 -> 2034 bytes-rw-r--r--tools/assistant/tools/qhelpconverter/conversionwizard.cpp265
-rw-r--r--tools/assistant/tools/qhelpconverter/conversionwizard.h96
-rw-r--r--tools/assistant/tools/qhelpconverter/doc/filespage.html8
-rw-r--r--tools/assistant/tools/qhelpconverter/doc/filterpage.html13
-rw-r--r--tools/assistant/tools/qhelpconverter/doc/generalpage.html10
-rw-r--r--tools/assistant/tools/qhelpconverter/doc/identifierpage.html17
-rw-r--r--tools/assistant/tools/qhelpconverter/doc/inputpage.html7
-rw-r--r--tools/assistant/tools/qhelpconverter/doc/outputpage.html7
-rw-r--r--tools/assistant/tools/qhelpconverter/doc/pathpage.html8
-rw-r--r--tools/assistant/tools/qhelpconverter/filespage.cpp112
-rw-r--r--tools/assistant/tools/qhelpconverter/filespage.h73
-rw-r--r--tools/assistant/tools/qhelpconverter/filespage.ui79
-rw-r--r--tools/assistant/tools/qhelpconverter/filterpage.cpp147
-rw-r--r--tools/assistant/tools/qhelpconverter/filterpage.h79
-rw-r--r--tools/assistant/tools/qhelpconverter/filterpage.ui125
-rw-r--r--tools/assistant/tools/qhelpconverter/finishpage.cpp76
-rw-r--r--tools/assistant/tools/qhelpconverter/finishpage.h65
-rw-r--r--tools/assistant/tools/qhelpconverter/generalpage.cpp92
-rw-r--r--tools/assistant/tools/qhelpconverter/generalpage.h66
-rw-r--r--tools/assistant/tools/qhelpconverter/generalpage.ui69
-rw-r--r--tools/assistant/tools/qhelpconverter/helpwindow.cpp84
-rw-r--r--tools/assistant/tools/qhelpconverter/helpwindow.h65
-rw-r--r--tools/assistant/tools/qhelpconverter/identifierpage.cpp71
-rw-r--r--tools/assistant/tools/qhelpconverter/identifierpage.h66
-rw-r--r--tools/assistant/tools/qhelpconverter/identifierpage.ui132
-rw-r--r--tools/assistant/tools/qhelpconverter/inputpage.cpp103
-rw-r--r--tools/assistant/tools/qhelpconverter/inputpage.h71
-rw-r--r--tools/assistant/tools/qhelpconverter/inputpage.ui79
-rw-r--r--tools/assistant/tools/qhelpconverter/main.cpp62
-rw-r--r--tools/assistant/tools/qhelpconverter/outputpage.cpp110
-rw-r--r--tools/assistant/tools/qhelpconverter/outputpage.h71
-rw-r--r--tools/assistant/tools/qhelpconverter/outputpage.ui95
-rw-r--r--tools/assistant/tools/qhelpconverter/pathpage.cpp112
-rw-r--r--tools/assistant/tools/qhelpconverter/pathpage.h71
-rw-r--r--tools/assistant/tools/qhelpconverter/pathpage.ui114
-rw-r--r--tools/assistant/tools/qhelpconverter/qhcpwriter.cpp145
-rw-r--r--tools/assistant/tools/qhelpconverter/qhcpwriter.h70
-rw-r--r--tools/assistant/tools/qhelpconverter/qhelpconverter.pro47
-rw-r--r--tools/assistant/tools/qhelpconverter/qhelpconverter.qrc13
-rw-r--r--tools/assistant/tools/qhelpconverter/qhpwriter.cpp184
-rw-r--r--tools/assistant/tools/qhelpconverter/qhpwriter.h85
-rw-r--r--tools/assistant/tools/qhelpgenerator/main.cpp144
-rw-r--r--tools/assistant/tools/qhelpgenerator/qhelpgenerator.pro14
-rw-r--r--tools/assistant/tools/shared/helpgenerator.cpp79
-rw-r--r--tools/assistant/tools/shared/helpgenerator.h72
-rw-r--r--tools/assistant/tools/tools.pro8
-rw-r--r--tools/assistant/translations/qt_help.pro49
-rw-r--r--tools/assistant/translations/translations.pro49
-rw-r--r--tools/assistant/translations/translations_adp.pro41
-rw-r--r--tools/checksdk/README3
-rw-r--r--tools/checksdk/cesdkhandler.cpp131
-rw-r--r--tools/checksdk/cesdkhandler.h111
-rw-r--r--tools/checksdk/checksdk.pro71
-rw-r--r--tools/checksdk/main.cpp159
-rw-r--r--tools/configure/configure.pro106
-rw-r--r--tools/configure/configure_pch.h74
-rw-r--r--tools/configure/configureapp.cpp3586
-rw-r--r--tools/configure/configureapp.h185
-rw-r--r--tools/configure/environment.cpp686
-rw-r--r--tools/configure/environment.h84
-rw-r--r--tools/configure/main.cpp114
-rw-r--r--tools/configure/tools.cpp172
-rw-r--r--tools/configure/tools.h17
-rw-r--r--tools/designer/data/generate_header.xsl465
-rw-r--r--tools/designer/data/generate_impl.xsl1161
-rw-r--r--tools/designer/data/generate_shared.xsl331
-rw-r--r--tools/designer/data/ui3.xsd353
-rw-r--r--tools/designer/data/ui4.xsd574
-rw-r--r--tools/designer/designer.pro5
-rw-r--r--tools/designer/src/components/buddyeditor/buddyeditor.cpp447
-rw-r--r--tools/designer/src/components/buddyeditor/buddyeditor.h92
-rw-r--r--tools/designer/src/components/buddyeditor/buddyeditor.pri16
-rw-r--r--tools/designer/src/components/buddyeditor/buddyeditor_global.h57
-rw-r--r--tools/designer/src/components/buddyeditor/buddyeditor_instance.cpp50
-rw-r--r--tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp136
-rw-r--r--tools/designer/src/components/buddyeditor/buddyeditor_plugin.h93
-rw-r--r--tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp115
-rw-r--r--tools/designer/src/components/buddyeditor/buddyeditor_tool.h89
-rw-r--r--tools/designer/src/components/component.pri2
-rw-r--r--tools/designer/src/components/components.pro3
-rw-r--r--tools/designer/src/components/formeditor/brushmanagerproxy.cpp305
-rw-r--r--tools/designer/src/components/formeditor/brushmanagerproxy.h77
-rw-r--r--tools/designer/src/components/formeditor/default_actionprovider.cpp208
-rw-r--r--tools/designer/src/components/formeditor/default_actionprovider.h131
-rw-r--r--tools/designer/src/components/formeditor/default_container.cpp173
-rw-r--r--tools/designer/src/components/formeditor/default_container.h213
-rw-r--r--tools/designer/src/components/formeditor/default_layoutdecoration.cpp79
-rw-r--r--tools/designer/src/components/formeditor/default_layoutdecoration.h69
-rw-r--r--tools/designer/src/components/formeditor/defaultbrushes.xml542
-rw-r--r--tools/designer/src/components/formeditor/deviceprofiledialog.cpp203
-rw-r--r--tools/designer/src/components/formeditor/deviceprofiledialog.h104
-rw-r--r--tools/designer/src/components/formeditor/deviceprofiledialog.ui100
-rw-r--r--tools/designer/src/components/formeditor/dpi_chooser.cpp207
-rw-r--r--tools/designer/src/components/formeditor/dpi_chooser.h94
-rw-r--r--tools/designer/src/components/formeditor/embeddedoptionspage.cpp457
-rw-r--r--tools/designer/src/components/formeditor/embeddedoptionspage.h103
-rw-r--r--tools/designer/src/components/formeditor/formeditor.cpp203
-rw-r--r--tools/designer/src/components/formeditor/formeditor.h69
-rw-r--r--tools/designer/src/components/formeditor/formeditor.pri75
-rw-r--r--tools/designer/src/components/formeditor/formeditor.qrc173
-rw-r--r--tools/designer/src/components/formeditor/formeditor_global.h57
-rw-r--r--tools/designer/src/components/formeditor/formeditor_optionspage.cpp189
-rw-r--r--tools/designer/src/components/formeditor/formeditor_optionspage.h79
-rw-r--r--tools/designer/src/components/formeditor/formwindow.cpp2921
-rw-r--r--tools/designer/src/components/formeditor/formwindow.h385
-rw-r--r--tools/designer/src/components/formeditor/formwindow_dnditem.cpp116
-rw-r--r--tools/designer/src/components/formeditor/formwindow_dnditem.h65
-rw-r--r--tools/designer/src/components/formeditor/formwindow_widgetstack.cpp213
-rw-r--r--tools/designer/src/components/formeditor/formwindow_widgetstack.h103
-rw-r--r--tools/designer/src/components/formeditor/formwindowcursor.cpp215
-rw-r--r--tools/designer/src/components/formeditor/formwindowcursor.h93
-rw-r--r--tools/designer/src/components/formeditor/formwindowmanager.cpp1020
-rw-r--r--tools/designer/src/components/formeditor/formwindowmanager.h200
-rw-r--r--tools/designer/src/components/formeditor/formwindowsettings.cpp282
-rw-r--r--tools/designer/src/components/formeditor/formwindowsettings.h85
-rw-r--r--tools/designer/src/components/formeditor/formwindowsettings.ui328
-rw-r--r--tools/designer/src/components/formeditor/iconcache.cpp121
-rw-r--r--tools/designer/src/components/formeditor/iconcache.h78
-rw-r--r--tools/designer/src/components/formeditor/images/color.pngbin0 -> 117 bytes-rw-r--r--tools/designer/src/components/formeditor/images/configure.pngbin0 -> 1016 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/arrow.pngbin0 -> 171 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/busy.pngbin0 -> 201 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/closedhand.pngbin0 -> 147 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/cross.pngbin0 -> 130 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/hand.pngbin0 -> 159 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/hsplit.pngbin0 -> 155 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/ibeam.pngbin0 -> 124 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/no.pngbin0 -> 199 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/openhand.pngbin0 -> 160 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/sizeall.pngbin0 -> 174 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/sizeb.pngbin0 -> 161 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/sizef.pngbin0 -> 161 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/sizeh.pngbin0 -> 145 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/sizev.pngbin0 -> 141 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/uparrow.pngbin0 -> 132 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/vsplit.pngbin0 -> 161 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/wait.pngbin0 -> 172 bytes-rw-r--r--tools/designer/src/components/formeditor/images/cursors/whatsthis.pngbin0 -> 191 bytes-rw-r--r--tools/designer/src/components/formeditor/images/downplus.pngbin0 -> 562 bytes-rw-r--r--tools/designer/src/components/formeditor/images/dropdownbutton.pngbin0 -> 527 bytes-rw-r--r--tools/designer/src/components/formeditor/images/edit.pngbin0 -> 929 bytes-rw-r--r--tools/designer/src/components/formeditor/images/editdelete-16.pngbin0 -> 553 bytes-rw-r--r--tools/designer/src/components/formeditor/images/emptyicon.pngbin0 -> 108 bytes-rw-r--r--tools/designer/src/components/formeditor/images/filenew-16.pngbin0 -> 454 bytes-rw-r--r--tools/designer/src/components/formeditor/images/fileopen-16.pngbin0 -> 549 bytes-rw-r--r--tools/designer/src/components/formeditor/images/leveldown.pngbin0 -> 557 bytes-rw-r--r--tools/designer/src/components/formeditor/images/levelup.pngbin0 -> 564 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/adjustsize.pngbin0 -> 1929 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/back.pngbin0 -> 678 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/buddytool.pngbin0 -> 2046 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/down.pngbin0 -> 594 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/editbreaklayout.pngbin0 -> 2067 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/editcopy.pngbin0 -> 1468 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/editcut.pngbin0 -> 1512 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/editdelete.pngbin0 -> 1097 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/editform.pngbin0 -> 621 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/editgrid.pngbin0 -> 751 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/edithlayout.pngbin0 -> 1395 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/edithlayoutsplit.pngbin0 -> 1188 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/editlower.pngbin0 -> 595 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/editpaste.pngbin0 -> 1906 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/editraise.pngbin0 -> 1213 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/editvlayout.pngbin0 -> 586 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/editvlayoutsplit.pngbin0 -> 872 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/filenew.pngbin0 -> 772 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/fileopen.pngbin0 -> 904 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/filesave.pngbin0 -> 1206 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/forward.pngbin0 -> 655 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/insertimage.pngbin0 -> 1280 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/minus.pngbin0 -> 488 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/plus.pngbin0 -> 810 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/redo.pngbin0 -> 1752 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/resetproperty.pngbin0 -> 169 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/resourceeditortool.pngbin0 -> 2171 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/signalslottool.pngbin0 -> 1989 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/tabordertool.pngbin0 -> 1963 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/textanchor.pngbin0 -> 2543 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/textbold.pngbin0 -> 1611 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/textcenter.pngbin0 -> 1404 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/textitalic.pngbin0 -> 1164 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/textjustify.pngbin0 -> 1257 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/textleft.pngbin0 -> 1235 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/textright.pngbin0 -> 1406 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/textsubscript.pngbin0 -> 1054 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/textsuperscript.pngbin0 -> 1109 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/textunder.pngbin0 -> 1183 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/undo.pngbin0 -> 1746 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/up.pngbin0 -> 692 bytes-rw-r--r--tools/designer/src/components/formeditor/images/mac/widgettool.pngbin0 -> 1874 bytes-rw-r--r--tools/designer/src/components/formeditor/images/minus-16.pngbin0 -> 296 bytes-rw-r--r--tools/designer/src/components/formeditor/images/plus-16.pngbin0 -> 383 bytes-rw-r--r--tools/designer/src/components/formeditor/images/prefix-add.pngbin0 -> 411 bytes-rw-r--r--tools/designer/src/components/formeditor/images/qt3logo.pngbin0 -> 1101 bytes-rw-r--r--tools/designer/src/components/formeditor/images/qtlogo.pngbin0 -> 825 bytes-rw-r--r--tools/designer/src/components/formeditor/images/reload.pngbin0 -> 1363 bytes-rw-r--r--tools/designer/src/components/formeditor/images/resetproperty.pngbin0 -> 169 bytes-rw-r--r--tools/designer/src/components/formeditor/images/sort.pngbin0 -> 563 bytes-rw-r--r--tools/designer/src/components/formeditor/images/submenu.pngbin0 -> 179 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/calendarwidget.pngbin0 -> 968 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/checkbox.pngbin0 -> 817 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/columnview.pngbin0 -> 518 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/combobox.pngbin0 -> 853 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/commandlinkbutton.pngbin0 -> 1208 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/dateedit.pngbin0 -> 672 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/datetimeedit.pngbin0 -> 1132 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/dial.pngbin0 -> 978 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/dialogbuttonbox.pngbin0 -> 1003 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/dockwidget.pngbin0 -> 638 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/doublespinbox.pngbin0 -> 749 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/fontcombobox.pngbin0 -> 966 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/frame.pngbin0 -> 721 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/graphicsview.pngbin0 -> 1182 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/groupbox.pngbin0 -> 439 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/groupboxcollapsible.pngbin0 -> 702 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/hscrollbar.pngbin0 -> 408 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/hslider.pngbin0 -> 729 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/hsplit.pngbin0 -> 164 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/label.pngbin0 -> 953 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/lcdnumber.pngbin0 -> 555 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/line.pngbin0 -> 287 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/lineedit.pngbin0 -> 405 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/listbox.pngbin0 -> 797 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/listview.pngbin0 -> 756 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/mdiarea.pngbin0 -> 643 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/plaintextedit.pngbin0 -> 807 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/progress.pngbin0 -> 559 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/pushbutton.pngbin0 -> 408 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/radiobutton.pngbin0 -> 586 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/scrollarea.pngbin0 -> 548 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/spacer.pngbin0 -> 686 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/spinbox.pngbin0 -> 680 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/tabbar.pngbin0 -> 623 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/table.pngbin0 -> 483 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/tabwidget.pngbin0 -> 572 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/textedit.pngbin0 -> 823 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/timeedit.pngbin0 -> 1353 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/toolbox.pngbin0 -> 783 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/toolbutton.pngbin0 -> 1167 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/vline.pngbin0 -> 314 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/vscrollbar.pngbin0 -> 415 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/vslider.pngbin0 -> 726 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/vspacer.pngbin0 -> 677 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/widget.pngbin0 -> 716 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/widgetstack.pngbin0 -> 828 bytes-rw-r--r--tools/designer/src/components/formeditor/images/widgets/wizard.pngbin0 -> 898 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/adjustsize.pngbin0 -> 1262 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/back.pngbin0 -> 678 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/buddytool.pngbin0 -> 997 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/down.pngbin0 -> 594 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/editbreaklayout.pngbin0 -> 1321 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/editcopy.pngbin0 -> 1325 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/editcut.pngbin0 -> 1384 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/editdelete.pngbin0 -> 850 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/editform.pngbin0 -> 349 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/editgrid.pngbin0 -> 349 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/edithlayout.pngbin0 -> 455 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/edithlayoutsplit.pngbin0 -> 860 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/editlower.pngbin0 -> 1038 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/editpaste.pngbin0 -> 1482 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/editraise.pngbin0 -> 1045 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/editvlayout.pngbin0 -> 340 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/editvlayoutsplit.pngbin0 -> 740 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/filenew.pngbin0 -> 768 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/fileopen.pngbin0 -> 1662 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/filesave.pngbin0 -> 1205 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/forward.pngbin0 -> 655 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/insertimage.pngbin0 -> 885 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/minus.pngbin0 -> 429 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/plus.pngbin0 -> 709 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/redo.pngbin0 -> 1212 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/resourceeditortool.pngbin0 -> 1429 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/signalslottool.pngbin0 -> 1128 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/tabordertool.pngbin0 -> 1205 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/textanchor.pngbin0 -> 1581 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/textbold.pngbin0 -> 1134 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/textcenter.pngbin0 -> 627 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/textitalic.pngbin0 -> 829 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/textjustify.pngbin0 -> 695 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/textleft.pngbin0 -> 673 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/textright.pngbin0 -> 677 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/textsubscript.pngbin0 -> 897 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/textsuperscript.pngbin0 -> 864 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/textunder.pngbin0 -> 971 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/undo.pngbin0 -> 1181 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/up.pngbin0 -> 692 bytes-rw-r--r--tools/designer/src/components/formeditor/images/win/widgettool.pngbin0 -> 1039 bytes-rw-r--r--tools/designer/src/components/formeditor/itemview_propertysheet.cpp291
-rw-r--r--tools/designer/src/components/formeditor/itemview_propertysheet.h88
-rw-r--r--tools/designer/src/components/formeditor/layout_propertysheet.cpp546
-rw-r--r--tools/designer/src/components/formeditor/layout_propertysheet.h82
-rw-r--r--tools/designer/src/components/formeditor/line_propertysheet.cpp86
-rw-r--r--tools/designer/src/components/formeditor/line_propertysheet.h71
-rw-r--r--tools/designer/src/components/formeditor/previewactiongroup.cpp149
-rw-r--r--tools/designer/src/components/formeditor/previewactiongroup.h90
-rw-r--r--tools/designer/src/components/formeditor/qdesigner_resource.cpp2665
-rw-r--r--tools/designer/src/components/formeditor/qdesigner_resource.h182
-rw-r--r--tools/designer/src/components/formeditor/qlayoutwidget_propertysheet.cpp83
-rw-r--r--tools/designer/src/components/formeditor/qlayoutwidget_propertysheet.h72
-rw-r--r--tools/designer/src/components/formeditor/qmainwindow_container.cpp199
-rw-r--r--tools/designer/src/components/formeditor/qmainwindow_container.h81
-rw-r--r--tools/designer/src/components/formeditor/qmdiarea_container.cpp280
-rw-r--r--tools/designer/src/components/formeditor/qmdiarea_container.h119
-rw-r--r--tools/designer/src/components/formeditor/qtbrushmanager.cpp143
-rw-r--r--tools/designer/src/components/formeditor/qtbrushmanager.h89
-rw-r--r--tools/designer/src/components/formeditor/qwizard_container.cpp226
-rw-r--r--tools/designer/src/components/formeditor/qwizard_container.h123
-rw-r--r--tools/designer/src/components/formeditor/qworkspace_container.cpp100
-rw-r--r--tools/designer/src/components/formeditor/qworkspace_container.h79
-rw-r--r--tools/designer/src/components/formeditor/spacer_propertysheet.cpp82
-rw-r--r--tools/designer/src/components/formeditor/spacer_propertysheet.h72
-rw-r--r--tools/designer/src/components/formeditor/templateoptionspage.cpp183
-rw-r--r--tools/designer/src/components/formeditor/templateoptionspage.h110
-rw-r--r--tools/designer/src/components/formeditor/templateoptionspage.ui59
-rw-r--r--tools/designer/src/components/formeditor/tool_widgeteditor.cpp367
-rw-r--r--tools/designer/src/components/formeditor/tool_widgeteditor.h107
-rw-r--r--tools/designer/src/components/formeditor/widgetselection.cpp746
-rw-r--r--tools/designer/src/components/formeditor/widgetselection.h145
-rw-r--r--tools/designer/src/components/lib/lib.pro74
-rw-r--r--tools/designer/src/components/lib/lib_pch.h43
-rw-r--r--tools/designer/src/components/lib/qdesigner_components.cpp277
-rw-r--r--tools/designer/src/components/objectinspector/objectinspector.cpp839
-rw-r--r--tools/designer/src/components/objectinspector/objectinspector.h95
-rw-r--r--tools/designer/src/components/objectinspector/objectinspector.pri10
-rw-r--r--tools/designer/src/components/objectinspector/objectinspector_global.h61
-rw-r--r--tools/designer/src/components/objectinspector/objectinspectormodel.cpp520
-rw-r--r--tools/designer/src/components/objectinspector/objectinspectormodel_p.h168
-rw-r--r--tools/designer/src/components/propertyeditor/brushpropertymanager.cpp288
-rw-r--r--tools/designer/src/components/propertyeditor/brushpropertymanager.h105
-rw-r--r--tools/designer/src/components/propertyeditor/defs.cpp107
-rw-r--r--tools/designer/src/components/propertyeditor/defs.h60
-rw-r--r--tools/designer/src/components/propertyeditor/designerpropertymanager.cpp2604
-rw-r--r--tools/designer/src/components/propertyeditor/designerpropertymanager.h312
-rw-r--r--tools/designer/src/components/propertyeditor/fontmapping.xml73
-rw-r--r--tools/designer/src/components/propertyeditor/fontpropertymanager.cpp377
-rw-r--r--tools/designer/src/components/propertyeditor/fontpropertymanager.h124
-rw-r--r--tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp170
-rw-r--r--tools/designer/src/components/propertyeditor/newdynamicpropertydialog.h104
-rw-r--r--tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui106
-rw-r--r--tools/designer/src/components/propertyeditor/paletteeditor.cpp623
-rw-r--r--tools/designer/src/components/propertyeditor/paletteeditor.h204
-rw-r--r--tools/designer/src/components/propertyeditor/paletteeditor.ui264
-rw-r--r--tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp92
-rw-r--r--tools/designer/src/components/propertyeditor/paletteeditorbutton.h86
-rw-r--r--tools/designer/src/components/propertyeditor/previewframe.cpp123
-rw-r--r--tools/designer/src/components/propertyeditor/previewframe.h76
-rw-r--r--tools/designer/src/components/propertyeditor/previewwidget.cpp59
-rw-r--r--tools/designer/src/components/propertyeditor/previewwidget.h66
-rw-r--r--tools/designer/src/components/propertyeditor/previewwidget.ui238
-rw-r--r--tools/designer/src/components/propertyeditor/propertyeditor.cpp1245
-rw-r--r--tools/designer/src/components/propertyeditor/propertyeditor.h208
-rw-r--r--tools/designer/src/components/propertyeditor/propertyeditor.pri47
-rw-r--r--tools/designer/src/components/propertyeditor/propertyeditor.qrc5
-rw-r--r--tools/designer/src/components/propertyeditor/propertyeditor_global.h61
-rw-r--r--tools/designer/src/components/propertyeditor/qlonglongvalidator.cpp153
-rw-r--r--tools/designer/src/components/propertyeditor/qlonglongvalidator.h110
-rw-r--r--tools/designer/src/components/propertyeditor/stringlisteditor.cpp212
-rw-r--r--tools/designer/src/components/propertyeditor/stringlisteditor.h92
-rw-r--r--tools/designer/src/components/propertyeditor/stringlisteditor.ui265
-rw-r--r--tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp85
-rw-r--r--tools/designer/src/components/propertyeditor/stringlisteditorbutton.h81
-rw-r--r--tools/designer/src/components/signalsloteditor/connectdialog.cpp335
-rw-r--r--tools/designer/src/components/signalsloteditor/connectdialog.ui150
-rw-r--r--tools/designer/src/components/signalsloteditor/connectdialog_p.h109
-rw-r--r--tools/designer/src/components/signalsloteditor/signalslot_utils.cpp331
-rw-r--r--tools/designer/src/components/signalsloteditor/signalslot_utils_p.h104
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditor.cpp528
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditor.h98
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditor.pri21
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditor_global.h57
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditor_instance.cpp50
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditor_p.h138
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp136
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.h92
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp127
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditor_tool.h93
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp859
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditorwindow.h94
-rw-r--r--tools/designer/src/components/tabordereditor/tabordereditor.cpp433
-rw-r--r--tools/designer/src/components/tabordereditor/tabordereditor.h109
-rw-r--r--tools/designer/src/components/tabordereditor/tabordereditor.pri16
-rw-r--r--tools/designer/src/components/tabordereditor/tabordereditor_global.h57
-rw-r--r--tools/designer/src/components/tabordereditor/tabordereditor_instance.cpp49
-rw-r--r--tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp135
-rw-r--r--tools/designer/src/components/tabordereditor/tabordereditor_plugin.h93
-rw-r--r--tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp118
-rw-r--r--tools/designer/src/components/tabordereditor/tabordereditor_tool.h89
-rw-r--r--tools/designer/src/components/taskmenu/button_taskmenu.cpp713
-rw-r--r--tools/designer/src/components/taskmenu/button_taskmenu.h170
-rw-r--r--tools/designer/src/components/taskmenu/combobox_taskmenu.cpp137
-rw-r--r--tools/designer/src/components/taskmenu/combobox_taskmenu.h94
-rw-r--r--tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp353
-rw-r--r--tools/designer/src/components/taskmenu/containerwidget_taskmenu.h157
-rw-r--r--tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp109
-rw-r--r--tools/designer/src/components/taskmenu/groupbox_taskmenu.h77
-rw-r--r--tools/designer/src/components/taskmenu/inplace_editor.cpp136
-rw-r--r--tools/designer/src/components/taskmenu/inplace_editor.h110
-rw-r--r--tools/designer/src/components/taskmenu/inplace_widget_helper.cpp120
-rw-r--r--tools/designer/src/components/taskmenu/inplace_widget_helper.h88
-rw-r--r--tools/designer/src/components/taskmenu/itemlisteditor.cpp489
-rw-r--r--tools/designer/src/components/taskmenu/itemlisteditor.h163
-rw-r--r--tools/designer/src/components/taskmenu/itemlisteditor.ui156
-rw-r--r--tools/designer/src/components/taskmenu/label_taskmenu.cpp121
-rw-r--r--tools/designer/src/components/taskmenu/label_taskmenu.h81
-rw-r--r--tools/designer/src/components/taskmenu/layouttaskmenu.cpp97
-rw-r--r--tools/designer/src/components/taskmenu/layouttaskmenu.h93
-rw-r--r--tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp107
-rw-r--r--tools/designer/src/components/taskmenu/lineedit_taskmenu.h74
-rw-r--r--tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp121
-rw-r--r--tools/designer/src/components/taskmenu/listwidget_taskmenu.h85
-rw-r--r--tools/designer/src/components/taskmenu/listwidgeteditor.cpp142
-rw-r--r--tools/designer/src/components/taskmenu/listwidgeteditor.h78
-rw-r--r--tools/designer/src/components/taskmenu/menutaskmenu.cpp111
-rw-r--r--tools/designer/src/components/taskmenu/menutaskmenu.h106
-rw-r--r--tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp119
-rw-r--r--tools/designer/src/components/taskmenu/tablewidget_taskmenu.h85
-rw-r--r--tools/designer/src/components/taskmenu/tablewidgeteditor.cpp407
-rw-r--r--tools/designer/src/components/taskmenu/tablewidgeteditor.h114
-rw-r--r--tools/designer/src/components/taskmenu/tablewidgeteditor.ui157
-rw-r--r--tools/designer/src/components/taskmenu/taskmenu.pri50
-rw-r--r--tools/designer/src/components/taskmenu/taskmenu_component.cpp106
-rw-r--r--tools/designer/src/components/taskmenu/taskmenu_component.h73
-rw-r--r--tools/designer/src/components/taskmenu/taskmenu_global.h57
-rw-r--r--tools/designer/src/components/taskmenu/textedit_taskmenu.cpp109
-rw-r--r--tools/designer/src/components/taskmenu/textedit_taskmenu.h89
-rw-r--r--tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp115
-rw-r--r--tools/designer/src/components/taskmenu/toolbar_taskmenu.h99
-rw-r--r--tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp118
-rw-r--r--tools/designer/src/components/taskmenu/treewidget_taskmenu.h85
-rw-r--r--tools/designer/src/components/taskmenu/treewidgeteditor.cpp607
-rw-r--r--tools/designer/src/components/taskmenu/treewidgeteditor.h113
-rw-r--r--tools/designer/src/components/taskmenu/treewidgeteditor.ui257
-rw-r--r--tools/designer/src/components/widgetbox/widgetbox.cpp232
-rw-r--r--tools/designer/src/components/widgetbox/widgetbox.h103
-rw-r--r--tools/designer/src/components/widgetbox/widgetbox.pri14
-rw-r--r--tools/designer/src/components/widgetbox/widgetbox.qrc5
-rw-r--r--tools/designer/src/components/widgetbox/widgetbox.xml932
-rw-r--r--tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp215
-rw-r--r--tools/designer/src/components/widgetbox/widgetbox_dnditem.h67
-rw-r--r--tools/designer/src/components/widgetbox/widgetbox_global.h57
-rw-r--r--tools/designer/src/components/widgetbox/widgetboxcategorylistview.cpp494
-rw-r--r--tools/designer/src/components/widgetbox/widgetboxcategorylistview.h118
-rw-r--r--tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp998
-rw-r--r--tools/designer/src/components/widgetbox/widgetboxtreewidget.h150
-rw-r--r--tools/designer/src/designer/Info_mac.plist35
-rw-r--r--tools/designer/src/designer/appfontdialog.cpp429
-rw-r--r--tools/designer/src/designer/appfontdialog.h101
-rw-r--r--tools/designer/src/designer/assistantclient.cpp175
-rw-r--r--tools/designer/src/designer/assistantclient.h83
-rw-r--r--tools/designer/src/designer/designer.icnsbin0 -> 154893 bytes-rw-r--r--tools/designer/src/designer/designer.icobin0 -> 355574 bytes-rw-r--r--tools/designer/src/designer/designer.pro89
-rw-r--r--tools/designer/src/designer/designer.qrc5
-rw-r--r--tools/designer/src/designer/designer.rc2
-rw-r--r--tools/designer/src/designer/designer_enums.h52
-rw-r--r--tools/designer/src/designer/images/designer.pngbin0 -> 4205 bytes-rw-r--r--tools/designer/src/designer/images/mdi.pngbin0 -> 59505 bytes-rw-r--r--tools/designer/src/designer/images/sdi.pngbin0 -> 61037 bytes-rw-r--r--tools/designer/src/designer/images/workbench.pngbin0 -> 2085 bytes-rw-r--r--tools/designer/src/designer/main.cpp72
-rw-r--r--tools/designer/src/designer/mainwindow.cpp401
-rw-r--r--tools/designer/src/designer/mainwindow.h187
-rw-r--r--tools/designer/src/designer/newform.cpp227
-rw-r--r--tools/designer/src/designer/newform.h104
-rw-r--r--tools/designer/src/designer/preferencesdialog.cpp118
-rw-r--r--tools/designer/src/designer/preferencesdialog.h82
-rw-r--r--tools/designer/src/designer/preferencesdialog.ui91
-rw-r--r--tools/designer/src/designer/qdesigner.cpp320
-rw-r--r--tools/designer/src/designer/qdesigner.h102
-rw-r--r--tools/designer/src/designer/qdesigner_actions.cpp1406
-rw-r--r--tools/designer/src/designer/qdesigner_actions.h227
-rw-r--r--tools/designer/src/designer/qdesigner_appearanceoptions.cpp167
-rw-r--r--tools/designer/src/designer/qdesigner_appearanceoptions.h136
-rw-r--r--tools/designer/src/designer/qdesigner_appearanceoptions.ui57
-rw-r--r--tools/designer/src/designer/qdesigner_formwindow.cpp289
-rw-r--r--tools/designer/src/designer/qdesigner_formwindow.h97
-rw-r--r--tools/designer/src/designer/qdesigner_pch.h59
-rw-r--r--tools/designer/src/designer/qdesigner_server.cpp158
-rw-r--r--tools/designer/src/designer/qdesigner_server.h89
-rw-r--r--tools/designer/src/designer/qdesigner_settings.cpp250
-rw-r--r--tools/designer/src/designer/qdesigner_settings.h94
-rw-r--r--tools/designer/src/designer/qdesigner_toolwindow.cpp438
-rw-r--r--tools/designer/src/designer/qdesigner_toolwindow.h123
-rw-r--r--tools/designer/src/designer/qdesigner_workbench.cpp1096
-rw-r--r--tools/designer/src/designer/qdesigner_workbench.h215
-rw-r--r--tools/designer/src/designer/saveformastemplate.cpp173
-rw-r--r--tools/designer/src/designer/saveformastemplate.h77
-rw-r--r--tools/designer/src/designer/saveformastemplate.ui166
-rw-r--r--tools/designer/src/designer/versiondialog.cpp218
-rw-r--r--tools/designer/src/designer/versiondialog.h58
-rw-r--r--tools/designer/src/lib/components/qdesigner_components.h82
-rw-r--r--tools/designer/src/lib/components/qdesigner_components_global.h66
-rw-r--r--tools/designer/src/lib/extension/default_extensionfactory.cpp178
-rw-r--r--tools/designer/src/lib/extension/default_extensionfactory.h86
-rw-r--r--tools/designer/src/lib/extension/extension.cpp186
-rw-r--r--tools/designer/src/lib/extension/extension.h109
-rw-r--r--tools/designer/src/lib/extension/extension.pri12
-rw-r--r--tools/designer/src/lib/extension/extension_global.h64
-rw-r--r--tools/designer/src/lib/extension/qextensionmanager.cpp174
-rw-r--r--tools/designer/src/lib/extension/qextensionmanager.h79
-rw-r--r--tools/designer/src/lib/lib.pro78
-rw-r--r--tools/designer/src/lib/lib_pch.h65
-rw-r--r--tools/designer/src/lib/sdk/abstractactioneditor.cpp123
-rw-r--r--tools/designer/src/lib/sdk/abstractactioneditor.h76
-rw-r--r--tools/designer/src/lib/sdk/abstractbrushmanager.h83
-rw-r--r--tools/designer/src/lib/sdk/abstractdialoggui.cpp161
-rw-r--r--tools/designer/src/lib/sdk/abstractdialoggui_p.h107
-rw-r--r--tools/designer/src/lib/sdk/abstractdnditem.h75
-rw-r--r--tools/designer/src/lib/sdk/abstractformeditor.cpp621
-rw-r--r--tools/designer/src/lib/sdk/abstractformeditor.h159
-rw-r--r--tools/designer/src/lib/sdk/abstractformeditorplugin.cpp86
-rw-r--r--tools/designer/src/lib/sdk/abstractformeditorplugin.h73
-rw-r--r--tools/designer/src/lib/sdk/abstractformwindow.cpp814
-rw-r--r--tools/designer/src/lib/sdk/abstractformwindow.h183
-rw-r--r--tools/designer/src/lib/sdk/abstractformwindowcursor.cpp252
-rw-r--r--tools/designer/src/lib/sdk/abstractformwindowcursor.h109
-rw-r--r--tools/designer/src/lib/sdk/abstractformwindowmanager.cpp502
-rw-r--r--tools/designer/src/lib/sdk/abstractformwindowmanager.h122
-rw-r--r--tools/designer/src/lib/sdk/abstractformwindowtool.cpp106
-rw-r--r--tools/designer/src/lib/sdk/abstractformwindowtool.h85
-rw-r--r--tools/designer/src/lib/sdk/abstracticoncache.h83
-rw-r--r--tools/designer/src/lib/sdk/abstractintegration.cpp54
-rw-r--r--tools/designer/src/lib/sdk/abstractintegration.h76
-rw-r--r--tools/designer/src/lib/sdk/abstractintrospection.cpp548
-rw-r--r--tools/designer/src/lib/sdk/abstractintrospection_p.h174
-rw-r--r--tools/designer/src/lib/sdk/abstractlanguage.h100
-rw-r--r--tools/designer/src/lib/sdk/abstractmetadatabase.cpp170
-rw-r--r--tools/designer/src/lib/sdk/abstractmetadatabase.h99
-rw-r--r--tools/designer/src/lib/sdk/abstractnewformwidget.cpp117
-rw-r--r--tools/designer/src/lib/sdk/abstractnewformwidget_p.h88
-rw-r--r--tools/designer/src/lib/sdk/abstractobjectinspector.cpp110
-rw-r--r--tools/designer/src/lib/sdk/abstractobjectinspector.h73
-rw-r--r--tools/designer/src/lib/sdk/abstractoptionspage_p.h79
-rw-r--r--tools/designer/src/lib/sdk/abstractpromotioninterface.cpp113
-rw-r--r--tools/designer/src/lib/sdk/abstractpromotioninterface.h91
-rw-r--r--tools/designer/src/lib/sdk/abstractpropertyeditor.cpp193
-rw-r--r--tools/designer/src/lib/sdk/abstractpropertyeditor.h84
-rw-r--r--tools/designer/src/lib/sdk/abstractresourcebrowser.cpp57
-rw-r--r--tools/designer/src/lib/sdk/abstractresourcebrowser.h75
-rw-r--r--tools/designer/src/lib/sdk/abstractsettings_p.h87
-rw-r--r--tools/designer/src/lib/sdk/abstractwidgetbox.cpp340
-rw-r--r--tools/designer/src/lib/sdk/abstractwidgetbox.h142
-rw-r--r--tools/designer/src/lib/sdk/abstractwidgetdatabase.cpp360
-rw-r--r--tools/designer/src/lib/sdk/abstractwidgetdatabase.h137
-rw-r--r--tools/designer/src/lib/sdk/abstractwidgetfactory.cpp112
-rw-r--r--tools/designer/src/lib/sdk/abstractwidgetfactory.h79
-rw-r--r--tools/designer/src/lib/sdk/dynamicpropertysheet.h81
-rw-r--r--tools/designer/src/lib/sdk/extrainfo.cpp116
-rw-r--r--tools/designer/src/lib/sdk/extrainfo.h84
-rw-r--r--tools/designer/src/lib/sdk/layoutdecoration.h99
-rw-r--r--tools/designer/src/lib/sdk/membersheet.h89
-rw-r--r--tools/designer/src/lib/sdk/propertysheet.h90
-rw-r--r--tools/designer/src/lib/sdk/script.cpp109
-rw-r--r--tools/designer/src/lib/sdk/script_p.h83
-rw-r--r--tools/designer/src/lib/sdk/sdk.pri58
-rw-r--r--tools/designer/src/lib/sdk/sdk_global.h64
-rw-r--r--tools/designer/src/lib/sdk/taskmenu.h72
-rw-r--r--tools/designer/src/lib/shared/actioneditor.cpp822
-rw-r--r--tools/designer/src/lib/shared/actioneditor_p.h168
-rw-r--r--tools/designer/src/lib/shared/actionprovider_p.h108
-rw-r--r--tools/designer/src/lib/shared/actionrepository.cpp659
-rw-r--r--tools/designer/src/lib/shared/actionrepository_p.h257
-rw-r--r--tools/designer/src/lib/shared/addlinkdialog.ui112
-rw-r--r--tools/designer/src/lib/shared/codedialog.cpp266
-rw-r--r--tools/designer/src/lib/shared/codedialog_p.h100
-rw-r--r--tools/designer/src/lib/shared/connectionedit.cpp1612
-rw-r--r--tools/designer/src/lib/shared/connectionedit_p.h324
-rw-r--r--tools/designer/src/lib/shared/csshighlighter.cpp192
-rw-r--r--tools/designer/src/lib/shared/csshighlighter_p.h82
-rw-r--r--tools/designer/src/lib/shared/defaultgradients.xml498
-rw-r--r--tools/designer/src/lib/shared/deviceprofile.cpp467
-rw-r--r--tools/designer/src/lib/shared/deviceprofile_p.h152
-rw-r--r--tools/designer/src/lib/shared/dialoggui.cpp265
-rw-r--r--tools/designer/src/lib/shared/dialoggui_p.h107
-rw-r--r--tools/designer/src/lib/shared/extensionfactory_p.h120
-rw-r--r--tools/designer/src/lib/shared/filterwidget.cpp237
-rw-r--r--tools/designer/src/lib/shared/filterwidget_p.h152
-rw-r--r--tools/designer/src/lib/shared/formlayoutmenu.cpp534
-rw-r--r--tools/designer/src/lib/shared/formlayoutmenu_p.h100
-rw-r--r--tools/designer/src/lib/shared/formlayoutrowdialog.ui166
-rw-r--r--tools/designer/src/lib/shared/formwindowbase.cpp487
-rw-r--r--tools/designer/src/lib/shared/formwindowbase_p.h202
-rw-r--r--tools/designer/src/lib/shared/grid.cpp186
-rw-r--r--tools/designer/src/lib/shared/grid_p.h118
-rw-r--r--tools/designer/src/lib/shared/gridpanel.cpp121
-rw-r--r--tools/designer/src/lib/shared/gridpanel.ui144
-rw-r--r--tools/designer/src/lib/shared/gridpanel_p.h101
-rw-r--r--tools/designer/src/lib/shared/htmlhighlighter.cpp198
-rw-r--r--tools/designer/src/lib/shared/htmlhighlighter_p.h101
-rw-r--r--tools/designer/src/lib/shared/iconloader.cpp80
-rw-r--r--tools/designer/src/lib/shared/iconloader_p.h72
-rw-r--r--tools/designer/src/lib/shared/iconselector.cpp546
-rw-r--r--tools/designer/src/lib/shared/iconselector_p.h142
-rw-r--r--tools/designer/src/lib/shared/invisible_widget.cpp57
-rw-r--r--tools/designer/src/lib/shared/invisible_widget_p.h75
-rw-r--r--tools/designer/src/lib/shared/layout.cpp1326
-rw-r--r--tools/designer/src/lib/shared/layout_p.h152
-rw-r--r--tools/designer/src/lib/shared/layoutinfo.cpp312
-rw-r--r--tools/designer/src/lib/shared/layoutinfo_p.h114
-rw-r--r--tools/designer/src/lib/shared/metadatabase.cpp295
-rw-r--r--tools/designer/src/lib/shared/metadatabase_p.h142
-rw-r--r--tools/designer/src/lib/shared/morphmenu.cpp635
-rw-r--r--tools/designer/src/lib/shared/morphmenu_p.h97
-rw-r--r--tools/designer/src/lib/shared/newactiondialog.cpp197
-rw-r--r--tools/designer/src/lib/shared/newactiondialog.ui277
-rw-r--r--tools/designer/src/lib/shared/newactiondialog_p.h124
-rw-r--r--tools/designer/src/lib/shared/newformwidget.cpp587
-rw-r--r--tools/designer/src/lib/shared/newformwidget.ui192
-rw-r--r--tools/designer/src/lib/shared/newformwidget_p.h143
-rw-r--r--tools/designer/src/lib/shared/orderdialog.cpp192
-rw-r--r--tools/designer/src/lib/shared/orderdialog.ui198
-rw-r--r--tools/designer/src/lib/shared/orderdialog_p.h114
-rw-r--r--tools/designer/src/lib/shared/plaintexteditor.cpp123
-rw-r--r--tools/designer/src/lib/shared/plaintexteditor_p.h89
-rw-r--r--tools/designer/src/lib/shared/plugindialog.cpp207
-rw-r--r--tools/designer/src/lib/shared/plugindialog.ui136
-rw-r--r--tools/designer/src/lib/shared/plugindialog_p.h81
-rw-r--r--tools/designer/src/lib/shared/pluginmanager.cpp670
-rw-r--r--tools/designer/src/lib/shared/pluginmanager_p.h151
-rw-r--r--tools/designer/src/lib/shared/previewconfigurationwidget.cpp382
-rw-r--r--tools/designer/src/lib/shared/previewconfigurationwidget.ui91
-rw-r--r--tools/designer/src/lib/shared/previewconfigurationwidget_p.h96
-rw-r--r--tools/designer/src/lib/shared/previewmanager.cpp815
-rw-r--r--tools/designer/src/lib/shared/previewmanager_p.h184
-rw-r--r--tools/designer/src/lib/shared/promotionmodel.cpp224
-rw-r--r--tools/designer/src/lib/shared/promotionmodel_p.h98
-rw-r--r--tools/designer/src/lib/shared/promotiontaskmenu.cpp361
-rw-r--r--tools/designer/src/lib/shared/promotiontaskmenu_p.h151
-rw-r--r--tools/designer/src/lib/shared/propertylineedit.cpp96
-rw-r--r--tools/designer/src/lib/shared/propertylineedit_p.h85
-rw-r--r--tools/designer/src/lib/shared/qdesigner_command.cpp2968
-rw-r--r--tools/designer/src/lib/shared/qdesigner_command2.cpp159
-rw-r--r--tools/designer/src/lib/shared/qdesigner_command2_p.h101
-rw-r--r--tools/designer/src/lib/shared/qdesigner_command_p.h1136
-rw-r--r--tools/designer/src/lib/shared/qdesigner_dnditem.cpp300
-rw-r--r--tools/designer/src/lib/shared/qdesigner_dnditem_p.h147
-rw-r--r--tools/designer/src/lib/shared/qdesigner_dockwidget.cpp140
-rw-r--r--tools/designer/src/lib/shared/qdesigner_dockwidget_p.h87
-rw-r--r--tools/designer/src/lib/shared/qdesigner_formbuilder.cpp478
-rw-r--r--tools/designer/src/lib/shared/qdesigner_formbuilder_p.h166
-rw-r--r--tools/designer/src/lib/shared/qdesigner_formeditorcommand.cpp64
-rw-r--r--tools/designer/src/lib/shared/qdesigner_formeditorcommand_p.h83
-rw-r--r--tools/designer/src/lib/shared/qdesigner_formwindowcommand.cpp149
-rw-r--r--tools/designer/src/lib/shared/qdesigner_formwindowcommand_p.h96
-rw-r--r--tools/designer/src/lib/shared/qdesigner_formwindowmanager.cpp167
-rw-r--r--tools/designer/src/lib/shared/qdesigner_formwindowmanager_p.h99
-rw-r--r--tools/designer/src/lib/shared/qdesigner_integration.cpp496
-rw-r--r--tools/designer/src/lib/shared/qdesigner_integration_p.h152
-rw-r--r--tools/designer/src/lib/shared/qdesigner_introspection.cpp372
-rw-r--r--tools/designer/src/lib/shared/qdesigner_introspection_p.h84
-rw-r--r--tools/designer/src/lib/shared/qdesigner_membersheet.cpp371
-rw-r--r--tools/designer/src/lib/shared/qdesigner_membersheet_p.h120
-rw-r--r--tools/designer/src/lib/shared/qdesigner_menu.cpp1355
-rw-r--r--tools/designer/src/lib/shared/qdesigner_menu_p.h203
-rw-r--r--tools/designer/src/lib/shared/qdesigner_menubar.cpp955
-rw-r--r--tools/designer/src/lib/shared/qdesigner_menubar_p.h177
-rw-r--r--tools/designer/src/lib/shared/qdesigner_objectinspector.cpp80
-rw-r--r--tools/designer/src/lib/shared/qdesigner_objectinspector_p.h103
-rw-r--r--tools/designer/src/lib/shared/qdesigner_promotion.cpp373
-rw-r--r--tools/designer/src/lib/shared/qdesigner_promotion_p.h98
-rw-r--r--tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp452
-rw-r--r--tools/designer/src/lib/shared/qdesigner_promotiondialog_p.h161
-rw-r--r--tools/designer/src/lib/shared/qdesigner_propertycommand.cpp1479
-rw-r--r--tools/designer/src/lib/shared/qdesigner_propertycommand_p.h301
-rw-r--r--tools/designer/src/lib/shared/qdesigner_propertyeditor.cpp131
-rw-r--r--tools/designer/src/lib/shared/qdesigner_propertyeditor_p.h106
-rw-r--r--tools/designer/src/lib/shared/qdesigner_propertysheet.cpp1601
-rw-r--r--tools/designer/src/lib/shared/qdesigner_propertysheet_p.h265
-rw-r--r--tools/designer/src/lib/shared/qdesigner_qsettings.cpp94
-rw-r--r--tools/designer/src/lib/shared/qdesigner_qsettings_p.h88
-rw-r--r--tools/designer/src/lib/shared/qdesigner_stackedbox.cpp396
-rw-r--r--tools/designer/src/lib/shared/qdesigner_stackedbox_p.h164
-rw-r--r--tools/designer/src/lib/shared/qdesigner_tabwidget.cpp567
-rw-r--r--tools/designer/src/lib/shared/qdesigner_tabwidget_p.h153
-rw-r--r--tools/designer/src/lib/shared/qdesigner_taskmenu.cpp781
-rw-r--r--tools/designer/src/lib/shared/qdesigner_taskmenu_p.h132
-rw-r--r--tools/designer/src/lib/shared/qdesigner_toolbar.cpp486
-rw-r--r--tools/designer/src/lib/shared/qdesigner_toolbar_p.h135
-rw-r--r--tools/designer/src/lib/shared/qdesigner_toolbox.cpp437
-rw-r--r--tools/designer/src/lib/shared/qdesigner_toolbox_p.h140
-rw-r--r--tools/designer/src/lib/shared/qdesigner_utils.cpp734
-rw-r--r--tools/designer/src/lib/shared/qdesigner_utils_p.h482
-rw-r--r--tools/designer/src/lib/shared/qdesigner_widget.cpp108
-rw-r--r--tools/designer/src/lib/shared/qdesigner_widget_p.h122
-rw-r--r--tools/designer/src/lib/shared/qdesigner_widgetbox.cpp185
-rw-r--r--tools/designer/src/lib/shared/qdesigner_widgetbox_p.h101
-rw-r--r--tools/designer/src/lib/shared/qdesigner_widgetitem.cpp345
-rw-r--r--tools/designer/src/lib/shared/qdesigner_widgetitem_p.h147
-rw-r--r--tools/designer/src/lib/shared/qlayout_widget.cpp2103
-rw-r--r--tools/designer/src/lib/shared/qlayout_widget_p.h292
-rw-r--r--tools/designer/src/lib/shared/qscripthighlighter.cpp468
-rw-r--r--tools/designer/src/lib/shared/qscripthighlighter_p.h84
-rw-r--r--tools/designer/src/lib/shared/qsimpleresource.cpp283
-rw-r--r--tools/designer/src/lib/shared/qsimpleresource_p.h147
-rw-r--r--tools/designer/src/lib/shared/qtresourceeditordialog.cpp2226
-rw-r--r--tools/designer/src/lib/shared/qtresourceeditordialog.ui177
-rw-r--r--tools/designer/src/lib/shared/qtresourceeditordialog_p.h129
-rw-r--r--tools/designer/src/lib/shared/qtresourcemodel.cpp648
-rw-r--r--tools/designer/src/lib/shared/qtresourcemodel_p.h144
-rw-r--r--tools/designer/src/lib/shared/qtresourceview.cpp766
-rw-r--r--tools/designer/src/lib/shared/qtresourceview_p.h140
-rw-r--r--tools/designer/src/lib/shared/richtexteditor.cpp762
-rw-r--r--tools/designer/src/lib/shared/richtexteditor_p.h102
-rw-r--r--tools/designer/src/lib/shared/scriptcommand.cpp103
-rw-r--r--tools/designer/src/lib/shared/scriptcommand_p.h93
-rw-r--r--tools/designer/src/lib/shared/scriptdialog.cpp128
-rw-r--r--tools/designer/src/lib/shared/scriptdialog_p.h90
-rw-r--r--tools/designer/src/lib/shared/scripterrordialog.cpp112
-rw-r--r--tools/designer/src/lib/shared/scripterrordialog_p.h83
-rw-r--r--tools/designer/src/lib/shared/selectsignaldialog.ui93
-rw-r--r--tools/designer/src/lib/shared/shared.pri189
-rw-r--r--tools/designer/src/lib/shared/shared.qrc20
-rw-r--r--tools/designer/src/lib/shared/shared_enums_p.h99
-rw-r--r--tools/designer/src/lib/shared/shared_global_p.h76
-rw-r--r--tools/designer/src/lib/shared/shared_settings.cpp321
-rw-r--r--tools/designer/src/lib/shared/shared_settings_p.h142
-rw-r--r--tools/designer/src/lib/shared/sheet_delegate.cpp112
-rw-r--r--tools/designer/src/lib/shared/sheet_delegate_p.h85
-rw-r--r--tools/designer/src/lib/shared/signalslotdialog.cpp526
-rw-r--r--tools/designer/src/lib/shared/signalslotdialog.ui129
-rw-r--r--tools/designer/src/lib/shared/signalslotdialog_p.h173
-rw-r--r--tools/designer/src/lib/shared/spacer_widget.cpp280
-rw-r--r--tools/designer/src/lib/shared/spacer_widget_p.h117
-rw-r--r--tools/designer/src/lib/shared/stylesheeteditor.cpp415
-rw-r--r--tools/designer/src/lib/shared/stylesheeteditor_p.h144
-rw-r--r--tools/designer/src/lib/shared/templates/forms/240x320/Dialog_with_Buttons_Bottom.ui67
-rw-r--r--tools/designer/src/lib/shared/templates/forms/240x320/Dialog_with_Buttons_Right.ui67
-rw-r--r--tools/designer/src/lib/shared/templates/forms/320x240/Dialog_with_Buttons_Bottom.ui67
-rw-r--r--tools/designer/src/lib/shared/templates/forms/320x240/Dialog_with_Buttons_Right.ui67
-rw-r--r--tools/designer/src/lib/shared/templates/forms/480x640/Dialog_with_Buttons_Bottom.ui67
-rw-r--r--tools/designer/src/lib/shared/templates/forms/480x640/Dialog_with_Buttons_Right.ui67
-rw-r--r--tools/designer/src/lib/shared/templates/forms/640x480/Dialog_with_Buttons_Bottom.ui67
-rw-r--r--tools/designer/src/lib/shared/templates/forms/640x480/Dialog_with_Buttons_Right.ui67
-rw-r--r--tools/designer/src/lib/shared/templates/forms/Dialog_with_Buttons_Bottom.ui71
-rw-r--r--tools/designer/src/lib/shared/templates/forms/Dialog_with_Buttons_Right.ui71
-rw-r--r--tools/designer/src/lib/shared/templates/forms/Dialog_without_Buttons.ui18
-rw-r--r--tools/designer/src/lib/shared/templates/forms/Main_Window.ui24
-rw-r--r--tools/designer/src/lib/shared/templates/forms/Widget.ui21
-rw-r--r--tools/designer/src/lib/shared/textpropertyeditor.cpp429
-rw-r--r--tools/designer/src/lib/shared/textpropertyeditor_p.h156
-rw-r--r--tools/designer/src/lib/shared/widgetdatabase.cpp865
-rw-r--r--tools/designer/src/lib/shared/widgetdatabase_p.h210
-rw-r--r--tools/designer/src/lib/shared/widgetfactory.cpp897
-rw-r--r--tools/designer/src/lib/shared/widgetfactory_p.h191
-rw-r--r--tools/designer/src/lib/shared/zoomwidget.cpp578
-rw-r--r--tools/designer/src/lib/shared/zoomwidget_p.h238
-rw-r--r--tools/designer/src/lib/uilib/abstractformbuilder.cpp2920
-rw-r--r--tools/designer/src/lib/uilib/abstractformbuilder.h290
-rw-r--r--tools/designer/src/lib/uilib/container.h75
-rw-r--r--tools/designer/src/lib/uilib/customwidget.h101
-rw-r--r--tools/designer/src/lib/uilib/formbuilder.cpp562
-rw-r--r--tools/designer/src/lib/uilib/formbuilder.h115
-rw-r--r--tools/designer/src/lib/uilib/formbuilderextra.cpp531
-rw-r--r--tools/designer/src/lib/uilib/formbuilderextra_p.h255
-rw-r--r--tools/designer/src/lib/uilib/formscriptrunner.cpp208
-rw-r--r--tools/designer/src/lib/uilib/formscriptrunner_p.h120
-rw-r--r--tools/designer/src/lib/uilib/properties.cpp676
-rw-r--r--tools/designer/src/lib/uilib/properties_p.h176
-rw-r--r--tools/designer/src/lib/uilib/qdesignerexportwidget.h66
-rw-r--r--tools/designer/src/lib/uilib/resourcebuilder.cpp169
-rw-r--r--tools/designer/src/lib/uilib/resourcebuilder_p.h104
-rw-r--r--tools/designer/src/lib/uilib/textbuilder.cpp84
-rw-r--r--tools/designer/src/lib/uilib/textbuilder_p.h93
-rw-r--r--tools/designer/src/lib/uilib/ui4.cpp10887
-rw-r--r--tools/designer/src/lib/uilib/ui4_p.h3696
-rw-r--r--tools/designer/src/lib/uilib/uilib.pri31
-rw-r--r--tools/designer/src/lib/uilib/uilib_global.h64
-rw-r--r--tools/designer/src/lib/uilib/widgets.table148
-rw-r--r--tools/designer/src/plugins/activeqt/activeqt.pro32
-rw-r--r--tools/designer/src/plugins/activeqt/qaxwidgetextrainfo.cpp117
-rw-r--r--tools/designer/src/plugins/activeqt/qaxwidgetextrainfo.h91
-rw-r--r--tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp146
-rw-r--r--tools/designer/src/plugins/activeqt/qaxwidgetplugin.h77
-rw-r--r--tools/designer/src/plugins/activeqt/qaxwidgetpropertysheet.cpp189
-rw-r--r--tools/designer/src/plugins/activeqt/qaxwidgetpropertysheet.h99
-rw-r--r--tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp186
-rw-r--r--tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.h76
-rw-r--r--tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp272
-rw-r--r--tools/designer/src/plugins/activeqt/qdesigneraxwidget.h142
-rw-r--r--tools/designer/src/plugins/phononwidgets/images/seekslider.pngbin0 -> 444 bytes-rw-r--r--tools/designer/src/plugins/phononwidgets/images/videoplayer.pngbin0 -> 644 bytes-rw-r--r--tools/designer/src/plugins/phononwidgets/images/videowidget.pngbin0 -> 794 bytes-rw-r--r--tools/designer/src/plugins/phononwidgets/images/volumeslider.pngbin0 -> 470 bytes-rw-r--r--tools/designer/src/plugins/phononwidgets/phononcollection.cpp82
-rw-r--r--tools/designer/src/plugins/phononwidgets/phononwidgets.pro24
-rw-r--r--tools/designer/src/plugins/phononwidgets/phononwidgets.qrc8
-rw-r--r--tools/designer/src/plugins/phononwidgets/seeksliderplugin.cpp117
-rw-r--r--tools/designer/src/plugins/phononwidgets/seeksliderplugin.h75
-rw-r--r--tools/designer/src/plugins/phononwidgets/videoplayerplugin.cpp135
-rw-r--r--tools/designer/src/plugins/phononwidgets/videoplayerplugin.h75
-rw-r--r--tools/designer/src/plugins/phononwidgets/videoplayertaskmenu.cpp154
-rw-r--r--tools/designer/src/plugins/phononwidgets/videoplayertaskmenu.h82
-rw-r--r--tools/designer/src/plugins/phononwidgets/volumesliderplugin.cpp117
-rw-r--r--tools/designer/src/plugins/phononwidgets/volumesliderplugin.h75
-rw-r--r--tools/designer/src/plugins/plugins.pri8
-rw-r--r--tools/designer/src/plugins/plugins.pro9
-rw-r--r--tools/designer/src/plugins/qwebview/images/qwebview.pngbin0 -> 1473 bytes-rw-r--r--tools/designer/src/plugins/qwebview/qwebview.pro15
-rw-r--r--tools/designer/src/plugins/qwebview/qwebview_plugin.cpp137
-rw-r--r--tools/designer/src/plugins/qwebview/qwebview_plugin.h74
-rw-r--r--tools/designer/src/plugins/qwebview/qwebview_plugin.qrc5
-rw-r--r--tools/designer/src/plugins/tools/view3d/view3d.cpp492
-rw-r--r--tools/designer/src/plugins/tools/view3d/view3d.h77
-rw-r--r--tools/designer/src/plugins/tools/view3d/view3d.pro17
-rw-r--r--tools/designer/src/plugins/tools/view3d/view3d_global.h61
-rw-r--r--tools/designer/src/plugins/tools/view3d/view3d_plugin.cpp115
-rw-r--r--tools/designer/src/plugins/tools/view3d/view3d_plugin.h82
-rw-r--r--tools/designer/src/plugins/tools/view3d/view3d_tool.cpp88
-rw-r--r--tools/designer/src/plugins/tools/view3d/view3d_tool.h76
-rw-r--r--tools/designer/src/plugins/widgets/q3iconview/q3iconview_extrainfo.cpp183
-rw-r--r--tools/designer/src/plugins/widgets/q3iconview/q3iconview_extrainfo.h95
-rw-r--r--tools/designer/src/plugins/widgets/q3iconview/q3iconview_plugin.cpp120
-rw-r--r--tools/designer/src/plugins/widgets/q3iconview/q3iconview_plugin.h76
-rw-r--r--tools/designer/src/plugins/widgets/q3listbox/q3listbox_extrainfo.cpp151
-rw-r--r--tools/designer/src/plugins/widgets/q3listbox/q3listbox_extrainfo.h93
-rw-r--r--tools/designer/src/plugins/widgets/q3listbox/q3listbox_plugin.cpp121
-rw-r--r--tools/designer/src/plugins/widgets/q3listbox/q3listbox_plugin.h76
-rw-r--r--tools/designer/src/plugins/widgets/q3listview/q3listview_extrainfo.cpp249
-rw-r--r--tools/designer/src/plugins/widgets/q3listview/q3listview_extrainfo.h96
-rw-r--r--tools/designer/src/plugins/widgets/q3listview/q3listview_plugin.cpp121
-rw-r--r--tools/designer/src/plugins/widgets/q3listview/q3listview_plugin.h76
-rw-r--r--tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_container.cpp130
-rw-r--r--tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_container.h84
-rw-r--r--tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.cpp118
-rw-r--r--tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.h76
-rw-r--r--tools/designer/src/plugins/widgets/q3table/q3table_extrainfo.cpp196
-rw-r--r--tools/designer/src/plugins/widgets/q3table/q3table_extrainfo.h93
-rw-r--r--tools/designer/src/plugins/widgets/q3table/q3table_plugin.cpp121
-rw-r--r--tools/designer/src/plugins/widgets/q3table/q3table_plugin.h76
-rw-r--r--tools/designer/src/plugins/widgets/q3textedit/q3textedit_extrainfo.cpp116
-rw-r--r--tools/designer/src/plugins/widgets/q3textedit/q3textedit_extrainfo.h93
-rw-r--r--tools/designer/src/plugins/widgets/q3textedit/q3textedit_plugin.cpp122
-rw-r--r--tools/designer/src/plugins/widgets/q3textedit/q3textedit_plugin.h76
-rw-r--r--tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_extrainfo.cpp108
-rw-r--r--tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_extrainfo.h92
-rw-r--r--tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_plugin.cpp128
-rw-r--r--tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_plugin.h76
-rw-r--r--tools/designer/src/plugins/widgets/q3widgets/q3widget_plugins.cpp601
-rw-r--r--tools/designer/src/plugins/widgets/q3widgets/q3widget_plugins.h287
-rw-r--r--tools/designer/src/plugins/widgets/q3widgetstack/q3widgetstack_container.cpp115
-rw-r--r--tools/designer/src/plugins/widgets/q3widgetstack/q3widgetstack_container.h84
-rw-r--r--tools/designer/src/plugins/widgets/q3widgetstack/q3widgetstack_plugin.cpp118
-rw-r--r--tools/designer/src/plugins/widgets/q3widgetstack/q3widgetstack_plugin.h76
-rw-r--r--tools/designer/src/plugins/widgets/q3widgetstack/qdesigner_q3widgetstack.cpp217
-rw-r--r--tools/designer/src/plugins/widgets/q3widgetstack/qdesigner_q3widgetstack_p.h108
-rw-r--r--tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp235
-rw-r--r--tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.h149
-rw-r--r--tools/designer/src/plugins/widgets/q3wizard/q3wizard_plugin.cpp128
-rw-r--r--tools/designer/src/plugins/widgets/q3wizard/q3wizard_plugin.h76
-rw-r--r--tools/designer/src/plugins/widgets/qt3supportwidgets.cpp107
-rw-r--r--tools/designer/src/plugins/widgets/widgets.pro82
-rw-r--r--tools/designer/src/sharedcomponents.pri30
-rw-r--r--tools/designer/src/src.pro13
-rw-r--r--tools/designer/src/uitools/quiloader.cpp927
-rw-r--r--tools/designer/src/uitools/quiloader.h102
-rw-r--r--tools/designer/src/uitools/quiloader_p.h109
-rw-r--r--tools/designer/src/uitools/uitools.pro41
-rw-r--r--tools/designer/translations/translations.pro140
-rw-r--r--tools/doxygen/config/footer.html8
-rw-r--r--tools/doxygen/config/header.html30
-rw-r--r--tools/doxygen/config/phonon.css114
-rw-r--r--tools/doxygen/config/phonon.doxyfile220
-rw-r--r--tools/installer/README12
-rwxr-xr-xtools/installer/batch/build.bat160
-rwxr-xr-xtools/installer/batch/copy.bat124
-rwxr-xr-xtools/installer/batch/delete.bat76
-rwxr-xr-xtools/installer/batch/env.bat144
-rwxr-xr-xtools/installer/batch/extract.bat86
-rwxr-xr-xtools/installer/batch/installer.bat250
-rwxr-xr-xtools/installer/batch/log.bat61
-rwxr-xr-xtools/installer/batch/toupper.bat72
-rw-r--r--tools/installer/config/config.default.sample67
-rw-r--r--tools/installer/config/mingw-opensource.conf139
-rwxr-xr-xtools/installer/iwmake.bat127
-rw-r--r--tools/installer/nsis/confirmpage.ini62
-rw-r--r--tools/installer/nsis/gwdownload.ini121
-rw-r--r--tools/installer/nsis/gwmirror.ini70
-rw-r--r--tools/installer/nsis/images/install.icobin0 -> 22486 bytes-rw-r--r--tools/installer/nsis/images/qt-header.bmpbin0 -> 25818 bytes-rw-r--r--tools/installer/nsis/images/qt-wizard.bmpbin0 -> 154542 bytes-rw-r--r--tools/installer/nsis/includes/global.nsh146
-rw-r--r--tools/installer/nsis/includes/instdir.nsh257
-rw-r--r--tools/installer/nsis/includes/list.nsh139
-rw-r--r--tools/installer/nsis/includes/qtcommon.nsh574
-rw-r--r--tools/installer/nsis/includes/qtenv.nsh306
-rw-r--r--tools/installer/nsis/includes/system.nsh272
-rw-r--r--tools/installer/nsis/installer.nsi527
-rw-r--r--tools/installer/nsis/modules/environment.nsh219
-rw-r--r--tools/installer/nsis/modules/mingw.nsh676
-rw-r--r--tools/installer/nsis/modules/opensource.nsh98
-rw-r--r--tools/installer/nsis/modules/registeruiext.nsh210
-rw-r--r--tools/installer/nsis/opensource.ini81
-rw-r--r--tools/linguist/LICENSE.GPL280
-rw-r--r--tools/linguist/lconvert/lconvert.pro22
-rw-r--r--tools/linguist/lconvert/main.cpp236
-rw-r--r--tools/linguist/linguist.pro8
-rw-r--r--tools/linguist/linguist/Info_mac.plist18
-rw-r--r--tools/linguist/linguist/batchtranslation.ui260
-rw-r--r--tools/linguist/linguist/batchtranslationdialog.cpp194
-rw-r--r--tools/linguist/linguist/batchtranslationdialog.h87
-rw-r--r--tools/linguist/linguist/errorsview.cpp118
-rw-r--r--tools/linguist/linguist/errorsview.h78
-rw-r--r--tools/linguist/linguist/finddialog.cpp94
-rw-r--r--tools/linguist/linguist/finddialog.h69
-rw-r--r--tools/linguist/linguist/finddialog.ui266
-rw-r--r--tools/linguist/linguist/formpreviewview.cpp535
-rw-r--r--tools/linguist/linguist/formpreviewview.h128
-rw-r--r--tools/linguist/linguist/images/appicon.pngbin0 -> 1382 bytes-rw-r--r--tools/linguist/linguist/images/down.pngbin0 -> 594 bytes-rw-r--r--tools/linguist/linguist/images/editdelete.pngbin0 -> 831 bytes-rw-r--r--tools/linguist/linguist/images/icons/linguist-128-32.pngbin0 -> 5960 bytes-rw-r--r--tools/linguist/linguist/images/icons/linguist-128-8.pngbin0 -> 5947 bytes-rw-r--r--tools/linguist/linguist/images/icons/linguist-16-32.pngbin0 -> 537 bytes-rw-r--r--tools/linguist/linguist/images/icons/linguist-16-8.pngbin0 -> 608 bytes-rw-r--r--tools/linguist/linguist/images/icons/linguist-32-32.pngbin0 -> 1382 bytes-rw-r--r--tools/linguist/linguist/images/icons/linguist-32-8.pngbin0 -> 1369 bytes-rw-r--r--tools/linguist/linguist/images/icons/linguist-48-32.pngbin0 -> 2017 bytes-rw-r--r--tools/linguist/linguist/images/icons/linguist-48-8.pngbin0 -> 1972 bytes-rw-r--r--tools/linguist/linguist/images/icons/linguist-64-32.pngbin0 -> 2773 bytes-rw-r--r--tools/linguist/linguist/images/icons/linguist-64-8.pngbin0 -> 2664 bytes-rw-r--r--tools/linguist/linguist/images/mac/accelerator.pngbin0 -> 1921 bytes-rw-r--r--tools/linguist/linguist/images/mac/book.pngbin0 -> 1477 bytes-rw-r--r--tools/linguist/linguist/images/mac/doneandnext.pngbin0 -> 1590 bytes-rw-r--r--tools/linguist/linguist/images/mac/editcopy.pngbin0 -> 1468 bytes-rw-r--r--tools/linguist/linguist/images/mac/editcut.pngbin0 -> 1512 bytes-rw-r--r--tools/linguist/linguist/images/mac/editpaste.pngbin0 -> 1906 bytes-rw-r--r--tools/linguist/linguist/images/mac/filenew.pngbin0 -> 1172 bytes-rw-r--r--tools/linguist/linguist/images/mac/fileopen.pngbin0 -> 2168 bytes-rw-r--r--tools/linguist/linguist/images/mac/fileprint.pngbin0 -> 741 bytes-rw-r--r--tools/linguist/linguist/images/mac/filesave.pngbin0 -> 1206 bytes-rw-r--r--tools/linguist/linguist/images/mac/next.pngbin0 -> 1056 bytes-rw-r--r--tools/linguist/linguist/images/mac/nextunfinished.pngbin0 -> 1756 bytes-rw-r--r--tools/linguist/linguist/images/mac/phrase.pngbin0 -> 1932 bytes-rw-r--r--tools/linguist/linguist/images/mac/prev.pngbin0 -> 1080 bytes-rw-r--r--tools/linguist/linguist/images/mac/prevunfinished.pngbin0 -> 1682 bytes-rw-r--r--tools/linguist/linguist/images/mac/print.pngbin0 -> 2087 bytes-rw-r--r--tools/linguist/linguist/images/mac/punctuation.pngbin0 -> 1593 bytes-rw-r--r--tools/linguist/linguist/images/mac/redo.pngbin0 -> 1752 bytes-rw-r--r--tools/linguist/linguist/images/mac/searchfind.pngbin0 -> 1836 bytes-rw-r--r--tools/linguist/linguist/images/mac/undo.pngbin0 -> 1746 bytes-rw-r--r--tools/linguist/linguist/images/mac/validateplacemarkers.pngbin0 -> 1452 bytes-rw-r--r--tools/linguist/linguist/images/mac/whatsthis.pngbin0 -> 1586 bytes-rw-r--r--tools/linguist/linguist/images/s_check_danger.pngbin0 -> 304 bytes-rw-r--r--tools/linguist/linguist/images/s_check_empty.pngbin0 -> 404 bytes-rw-r--r--tools/linguist/linguist/images/s_check_obsolete.pngbin0 -> 192 bytes-rw-r--r--tools/linguist/linguist/images/s_check_off.pngbin0 -> 434 bytes-rw-r--r--tools/linguist/linguist/images/s_check_on.pngbin0 -> 192 bytes-rw-r--r--tools/linguist/linguist/images/s_check_warning.pngbin0 -> 192 bytes-rw-r--r--tools/linguist/linguist/images/splash.pngbin0 -> 15637 bytes-rw-r--r--tools/linguist/linguist/images/transbox.pngbin0 -> 782 bytes-rw-r--r--tools/linguist/linguist/images/up.pngbin0 -> 692 bytes-rw-r--r--tools/linguist/linguist/images/win/accelerator.pngbin0 -> 1335 bytes-rw-r--r--tools/linguist/linguist/images/win/book.pngbin0 -> 1109 bytes-rw-r--r--tools/linguist/linguist/images/win/doneandnext.pngbin0 -> 1233 bytes-rw-r--r--tools/linguist/linguist/images/win/editcopy.pngbin0 -> 1325 bytes-rw-r--r--tools/linguist/linguist/images/win/editcut.pngbin0 -> 1384 bytes-rw-r--r--tools/linguist/linguist/images/win/editpaste.pngbin0 -> 1482 bytes-rw-r--r--tools/linguist/linguist/images/win/filenew.pngbin0 -> 768 bytes-rw-r--r--tools/linguist/linguist/images/win/fileopen.pngbin0 -> 1662 bytes-rw-r--r--tools/linguist/linguist/images/win/filesave.pngbin0 -> 1205 bytes-rw-r--r--tools/linguist/linguist/images/win/next.pngbin0 -> 1038 bytes-rw-r--r--tools/linguist/linguist/images/win/nextunfinished.pngbin0 -> 1257 bytes-rw-r--r--tools/linguist/linguist/images/win/phrase.pngbin0 -> 1371 bytes-rw-r--r--tools/linguist/linguist/images/win/prev.pngbin0 -> 898 bytes-rw-r--r--tools/linguist/linguist/images/win/prevunfinished.pngbin0 -> 1260 bytes-rw-r--r--tools/linguist/linguist/images/win/print.pngbin0 -> 1456 bytes-rw-r--r--tools/linguist/linguist/images/win/punctuation.pngbin0 -> 1508 bytes-rw-r--r--tools/linguist/linguist/images/win/redo.pngbin0 -> 1212 bytes-rw-r--r--tools/linguist/linguist/images/win/searchfind.pngbin0 -> 1944 bytes-rw-r--r--tools/linguist/linguist/images/win/undo.pngbin0 -> 1181 bytes-rw-r--r--tools/linguist/linguist/images/win/validateplacemarkers.pngbin0 -> 1994 bytes-rw-r--r--tools/linguist/linguist/images/win/whatsthis.pngbin0 -> 1040 bytes-rw-r--r--tools/linguist/linguist/linguist.icnsbin0 -> 152596 bytes-rw-r--r--tools/linguist/linguist/linguist.icobin0 -> 355574 bytes-rw-r--r--tools/linguist/linguist/linguist.pro107
-rw-r--r--tools/linguist/linguist/linguist.qrc56
-rw-r--r--tools/linguist/linguist/linguist.rc1
-rw-r--r--tools/linguist/linguist/main.cpp119
-rw-r--r--tools/linguist/linguist/mainwindow.cpp2673
-rw-r--r--tools/linguist/linguist/mainwindow.h266
-rw-r--r--tools/linguist/linguist/mainwindow.ui883
-rw-r--r--tools/linguist/linguist/messageeditor.cpp865
-rw-r--r--tools/linguist/linguist/messageeditor.h169
-rw-r--r--tools/linguist/linguist/messageeditorwidgets.cpp201
-rw-r--r--tools/linguist/linguist/messageeditorwidgets.h130
-rw-r--r--tools/linguist/linguist/messagehighlighter.cpp210
-rw-r--r--tools/linguist/linguist/messagehighlighter.h83
-rw-r--r--tools/linguist/linguist/messagemodel.cpp1403
-rw-r--r--tools/linguist/linguist/messagemodel.h535
-rw-r--r--tools/linguist/linguist/phrase.cpp356
-rw-r--r--tools/linguist/linguist/phrase.h138
-rw-r--r--tools/linguist/linguist/phrasebookbox.cpp240
-rw-r--r--tools/linguist/linguist/phrasebookbox.h89
-rw-r--r--tools/linguist/linguist/phrasebookbox.ui236
-rw-r--r--tools/linguist/linguist/phrasemodel.cpp200
-rw-r--r--tools/linguist/linguist/phrasemodel.h94
-rw-r--r--tools/linguist/linguist/phraseview.cpp271
-rw-r--r--tools/linguist/linguist/phraseview.h120
-rw-r--r--tools/linguist/linguist/printout.cpp210
-rw-r--r--tools/linguist/linguist/printout.h120
-rw-r--r--tools/linguist/linguist/recentfiles.cpp147
-rw-r--r--tools/linguist/linguist/recentfiles.h83
-rw-r--r--tools/linguist/linguist/sourcecodeview.cpp145
-rw-r--r--tools/linguist/linguist/sourcecodeview.h74
-rw-r--r--tools/linguist/linguist/statistics.cpp67
-rw-r--r--tools/linguist/linguist/statistics.h67
-rw-r--r--tools/linguist/linguist/statistics.ui211
-rw-r--r--tools/linguist/linguist/translatedialog.cpp90
-rw-r--r--tools/linguist/linguist/translatedialog.h89
-rw-r--r--tools/linguist/linguist/translatedialog.ui260
-rw-r--r--tools/linguist/linguist/translationsettings.ui137
-rw-r--r--tools/linguist/linguist/translationsettingsdialog.cpp149
-rw-r--r--tools/linguist/linguist/translationsettingsdialog.h79
-rw-r--r--tools/linguist/lrelease/lrelease.197
-rw-r--r--tools/linguist/lrelease/lrelease.pro24
-rw-r--r--tools/linguist/lrelease/main.cpp272
-rw-r--r--tools/linguist/lupdate/lupdate.1132
-rw-r--r--tools/linguist/lupdate/lupdate.exe.manifest14
-rw-r--r--tools/linguist/lupdate/lupdate.pro34
-rw-r--r--tools/linguist/lupdate/main.cpp513
-rw-r--r--tools/linguist/lupdate/winmanifest.rc4
-rw-r--r--tools/linguist/phrasebooks/danish.qph1018
-rw-r--r--tools/linguist/phrasebooks/dutch.qph1044
-rw-r--r--tools/linguist/phrasebooks/finnish.qph1033
-rw-r--r--tools/linguist/phrasebooks/french.qph1104
-rw-r--r--tools/linguist/phrasebooks/german.qph1075
-rw-r--r--tools/linguist/phrasebooks/italian.qph1105
-rw-r--r--tools/linguist/phrasebooks/japanese.qph1021
-rw-r--r--tools/linguist/phrasebooks/norwegian.qph1004
-rw-r--r--tools/linguist/phrasebooks/polish.qph527
-rw-r--r--tools/linguist/phrasebooks/russian.qph982
-rw-r--r--tools/linguist/phrasebooks/spanish.qph1086
-rw-r--r--tools/linguist/phrasebooks/swedish.qph1010
-rw-r--r--tools/linguist/qdoc.conf15
-rw-r--r--tools/linguist/shared/abstractproitemvisitor.h70
-rw-r--r--tools/linguist/shared/cpp.cpp1074
-rw-r--r--tools/linguist/shared/formats.pri26
-rw-r--r--tools/linguist/shared/java.cpp655
-rwxr-xr-xtools/linguist/shared/make-qscript.sh14
-rw-r--r--tools/linguist/shared/numerus.cpp377
-rw-r--r--tools/linguist/shared/po.cpp662
-rw-r--r--tools/linguist/shared/profileevaluator.cpp1785
-rw-r--r--tools/linguist/shared/profileevaluator.h101
-rw-r--r--tools/linguist/shared/proitems.cpp328
-rw-r--r--tools/linguist/shared/proitems.h236
-rw-r--r--tools/linguist/shared/proparser.pri12
-rw-r--r--tools/linguist/shared/proparserutils.h272
-rw-r--r--tools/linguist/shared/qm.cpp717
-rw-r--r--tools/linguist/shared/qph.cpp171
-rw-r--r--tools/linguist/shared/qscript.cpp2408
-rw-r--r--tools/linguist/shared/qscript.g2039
-rw-r--r--tools/linguist/shared/simtexth.cpp277
-rw-r--r--tools/linguist/shared/simtexth.h100
-rw-r--r--tools/linguist/shared/translator.cpp559
-rw-r--r--tools/linguist/shared/translator.h224
-rw-r--r--tools/linguist/shared/translatormessage.cpp217
-rw-r--r--tools/linguist/shared/translatormessage.h181
-rw-r--r--tools/linguist/shared/translatortools.cpp505
-rw-r--r--tools/linguist/shared/translatortools.h77
-rw-r--r--tools/linguist/shared/translatortools.pri11
-rw-r--r--tools/linguist/shared/ts.cpp755
-rw-r--r--tools/linguist/shared/ts.dtd113
-rw-r--r--tools/linguist/shared/ui.cpp226
-rw-r--r--tools/linguist/shared/xliff.cpp828
-rw-r--r--tools/linguist/tests/data/main.cpp35
-rw-r--r--tools/linguist/tests/data/test.pro9
-rw-r--r--tools/linguist/tests/tests.pro16
-rw-r--r--tools/linguist/tests/tst_linguist.cpp4
-rw-r--r--tools/linguist/tests/tst_linguist.h22
-rw-r--r--tools/linguist/tests/tst_lupdate.cpp165
-rw-r--r--tools/linguist/tests/tst_simtexth.cpp43
-rw-r--r--tools/macdeployqt/macchangeqt/macchangeqt.pro9
-rw-r--r--tools/macdeployqt/macchangeqt/main.cpp54
-rw-r--r--tools/macdeployqt/macdeployqt.pro7
-rw-r--r--tools/macdeployqt/macdeployqt/macdeployqt.pro13
-rw-r--r--tools/macdeployqt/macdeployqt/main.cpp116
-rw-r--r--tools/macdeployqt/shared/shared.cpp563
-rw-r--r--tools/macdeployqt/shared/shared.h104
-rw-r--r--tools/macdeployqt/tests/deployment_mac.pro10
-rw-r--r--tools/macdeployqt/tests/tst_deployment_mac.cpp233
-rw-r--r--tools/makeqpf/Blocks.txt185
-rw-r--r--tools/makeqpf/README1
-rw-r--r--tools/makeqpf/main.cpp183
-rw-r--r--tools/makeqpf/mainwindow.cpp322
-rw-r--r--tools/makeqpf/mainwindow.h80
-rw-r--r--tools/makeqpf/mainwindow.ui502
-rw-r--r--tools/makeqpf/makeqpf.pro20
-rw-r--r--tools/makeqpf/makeqpf.qrc5
-rw-r--r--tools/makeqpf/qpf2.cpp767
-rw-r--r--tools/makeqpf/qpf2.h119
-rw-r--r--tools/pixeltool/Info_mac.plist18
-rw-r--r--tools/pixeltool/main.cpp65
-rw-r--r--tools/pixeltool/pixeltool.pro25
-rw-r--r--tools/pixeltool/qpixeltool.cpp536
-rw-r--r--tools/pixeltool/qpixeltool.h118
-rw-r--r--tools/porting/porting.pro2
-rw-r--r--tools/porting/src/ast.cpp1215
-rw-r--r--tools/porting/src/ast.h1598
-rw-r--r--tools/porting/src/codemodel.cpp91
-rw-r--r--tools/porting/src/codemodel.h777
-rw-r--r--tools/porting/src/codemodelattributes.cpp195
-rw-r--r--tools/porting/src/codemodelattributes.h72
-rw-r--r--tools/porting/src/codemodelwalker.cpp125
-rw-r--r--tools/porting/src/codemodelwalker.h80
-rw-r--r--tools/porting/src/cpplexer.cpp1297
-rw-r--r--tools/porting/src/cpplexer.h107
-rw-r--r--tools/porting/src/errors.cpp51
-rw-r--r--tools/porting/src/errors.h71
-rw-r--r--tools/porting/src/fileporter.cpp369
-rw-r--r--tools/porting/src/fileporter.h116
-rw-r--r--tools/porting/src/filewriter.cpp151
-rw-r--r--tools/porting/src/filewriter.h75
-rw-r--r--tools/porting/src/list.h374
-rw-r--r--tools/porting/src/logger.cpp148
-rw-r--r--tools/porting/src/logger.h124
-rw-r--r--tools/porting/src/parser.cpp4526
-rw-r--r--tools/porting/src/parser.h247
-rw-r--r--tools/porting/src/port.cpp297
-rw-r--r--tools/porting/src/portingrules.cpp296
-rw-r--r--tools/porting/src/portingrules.h114
-rw-r--r--tools/porting/src/preprocessorcontrol.cpp430
-rw-r--r--tools/porting/src/preprocessorcontrol.h139
-rw-r--r--tools/porting/src/projectporter.cpp414
-rw-r--r--tools/porting/src/projectporter.h82
-rw-r--r--tools/porting/src/proparser.cpp193
-rw-r--r--tools/porting/src/proparser.h55
-rw-r--r--tools/porting/src/q3porting.xml10567
-rw-r--r--tools/porting/src/qt3headers0.qrc6
-rw-r--r--tools/porting/src/qt3headers0.resourcebin0 -> 547809 bytes-rw-r--r--tools/porting/src/qt3headers1.qrc6
-rw-r--r--tools/porting/src/qt3headers1.resourcebin0 -> 512251 bytes-rw-r--r--tools/porting/src/qt3headers2.qrc6
-rw-r--r--tools/porting/src/qt3headers2.resourcebin0 -> 392439 bytes-rw-r--r--tools/porting/src/qt3headers3.qrc6
-rw-r--r--tools/porting/src/qt3headers3.resourcebin0 -> 553089 bytes-rw-r--r--tools/porting/src/qt3to4.pri68
-rw-r--r--tools/porting/src/qtsimplexml.cpp278
-rw-r--r--tools/porting/src/qtsimplexml.h97
-rw-r--r--tools/porting/src/replacetoken.cpp105
-rw-r--r--tools/porting/src/replacetoken.h67
-rw-r--r--tools/porting/src/rpp.cpp728
-rw-r--r--tools/porting/src/rpp.h1072
-rw-r--r--tools/porting/src/rppexpressionbuilder.cpp330
-rw-r--r--tools/porting/src/rppexpressionbuilder.h107
-rw-r--r--tools/porting/src/rpplexer.cpp381
-rw-r--r--tools/porting/src/rpplexer.h100
-rw-r--r--tools/porting/src/rpptreeevaluator.cpp554
-rw-r--r--tools/porting/src/rpptreeevaluator.h117
-rw-r--r--tools/porting/src/rpptreewalker.cpp166
-rw-r--r--tools/porting/src/rpptreewalker.h85
-rw-r--r--tools/porting/src/semantic.cpp1227
-rw-r--r--tools/porting/src/semantic.h131
-rw-r--r--tools/porting/src/smallobject.cpp59
-rw-r--r--tools/porting/src/smallobject.h182
-rw-r--r--tools/porting/src/src.pro93
-rw-r--r--tools/porting/src/textreplacement.cpp100
-rw-r--r--tools/porting/src/textreplacement.h91
-rw-r--r--tools/porting/src/tokenengine.cpp402
-rw-r--r--tools/porting/src/tokenengine.h391
-rw-r--r--tools/porting/src/tokenizer.cpp491
-rw-r--r--tools/porting/src/tokenizer.h88
-rw-r--r--tools/porting/src/tokenreplacements.cpp371
-rw-r--r--tools/porting/src/tokenreplacements.h154
-rw-r--r--tools/porting/src/tokens.h186
-rw-r--r--tools/porting/src/tokenstreamadapter.h152
-rw-r--r--tools/porting/src/translationunit.cpp102
-rw-r--r--tools/porting/src/translationunit.h93
-rw-r--r--tools/porting/src/treewalker.cpp457
-rw-r--r--tools/porting/src/treewalker.h235
-rw-r--r--tools/qconfig/LICENSE.GPL280
-rw-r--r--tools/qconfig/feature.cpp240
-rw-r--r--tools/qconfig/feature.h125
-rw-r--r--tools/qconfig/featuretreemodel.cpp451
-rw-r--r--tools/qconfig/featuretreemodel.h104
-rw-r--r--tools/qconfig/graphics.h195
-rw-r--r--tools/qconfig/main.cpp552
-rw-r--r--tools/qconfig/qconfig.pro10
-rw-r--r--tools/qdbus/qdbus.pro2
-rw-r--r--tools/qdbus/qdbus/qdbus.cpp483
-rw-r--r--tools/qdbus/qdbus/qdbus.pro10
-rw-r--r--tools/qdbus/qdbuscpp2xml/qdbuscpp2xml.cpp446
-rw-r--r--tools/qdbus/qdbuscpp2xml/qdbuscpp2xml.pro10
-rw-r--r--tools/qdbus/qdbusviewer/Info_mac.plist18
-rw-r--r--tools/qdbus/qdbusviewer/images/qdbusviewer-128.pngbin0 -> 9850 bytes-rw-r--r--tools/qdbus/qdbusviewer/images/qdbusviewer.icnsbin0 -> 146951 bytes-rw-r--r--tools/qdbus/qdbusviewer/images/qdbusviewer.icobin0 -> 355574 bytes-rw-r--r--tools/qdbus/qdbusviewer/images/qdbusviewer.pngbin0 -> 1231 bytes-rw-r--r--tools/qdbus/qdbusviewer/main.cpp85
-rw-r--r--tools/qdbus/qdbusviewer/propertydialog.cpp114
-rw-r--r--tools/qdbus/qdbusviewer/propertydialog.h70
-rw-r--r--tools/qdbus/qdbusviewer/qdbusmodel.cpp336
-rw-r--r--tools/qdbus/qdbusviewer/qdbusmodel.h94
-rw-r--r--tools/qdbus/qdbusviewer/qdbusviewer.cpp509
-rw-r--r--tools/qdbus/qdbusviewer/qdbusviewer.h98
-rw-r--r--tools/qdbus/qdbusviewer/qdbusviewer.pro30
-rw-r--r--tools/qdbus/qdbusviewer/qdbusviewer.qrc6
-rw-r--r--tools/qdbus/qdbusviewer/qdbusviewer.rc1
-rw-r--r--tools/qdbus/qdbusxml2cpp/qdbusxml2cpp.cpp1150
-rw-r--r--tools/qdbus/qdbusxml2cpp/qdbusxml2cpp.pro10
-rw-r--r--tools/qdoc3/JAVATODO.txt28
-rw-r--r--tools/qdoc3/README.TXT6
-rw-r--r--tools/qdoc3/TODO.txt96
-rw-r--r--tools/qdoc3/apigenerator.cpp150
-rw-r--r--tools/qdoc3/apigenerator.h65
-rw-r--r--tools/qdoc3/archiveextractor.cpp108
-rw-r--r--tools/qdoc3/archiveextractor.h78
-rw-r--r--tools/qdoc3/atom.cpp357
-rw-r--r--tools/qdoc3/atom.h200
-rw-r--r--tools/qdoc3/bookgenerator.cpp64
-rw-r--r--tools/qdoc3/bookgenerator.h64
-rw-r--r--tools/qdoc3/ccodeparser.cpp73
-rw-r--r--tools/qdoc3/ccodeparser.h66
-rw-r--r--tools/qdoc3/codechunk.cpp150
-rw-r--r--tools/qdoc3/codechunk.h123
-rw-r--r--tools/qdoc3/codemarker.cpp538
-rw-r--r--tools/qdoc3/codemarker.h166
-rw-r--r--tools/qdoc3/codeparser.cpp263
-rw-r--r--tools/qdoc3/codeparser.h94
-rw-r--r--tools/qdoc3/command.cpp92
-rw-r--r--tools/qdoc3/command.h60
-rw-r--r--tools/qdoc3/config.cpp892
-rw-r--r--tools/qdoc3/config.h165
-rw-r--r--tools/qdoc3/cppcodemarker.cpp1009
-rw-r--r--tools/qdoc3/cppcodemarker.h91
-rw-r--r--tools/qdoc3/cppcodeparser.cpp2014
-rw-r--r--tools/qdoc3/cppcodeparser.h167
-rw-r--r--tools/qdoc3/cpptoqsconverter.cpp415
-rw-r--r--tools/qdoc3/cpptoqsconverter.h88
-rw-r--r--tools/qdoc3/dcfsection.cpp111
-rw-r--r--tools/qdoc3/dcfsection.h94
-rw-r--r--tools/qdoc3/doc.cpp5036
-rw-r--r--tools/qdoc3/doc.h315
-rw-r--r--tools/qdoc3/documentation.pri5
-rw-r--r--tools/qdoc3/editdistance.cpp111
-rw-r--r--tools/qdoc3/editdistance.h59
-rw-r--r--tools/qdoc3/generator.cpp995
-rw-r--r--tools/qdoc3/generator.h177
-rw-r--r--tools/qdoc3/helpprojectwriter.cpp653
-rw-r--r--tools/qdoc3/helpprojectwriter.h110
-rw-r--r--tools/qdoc3/htmlgenerator.cpp3195
-rw-r--r--tools/qdoc3/htmlgenerator.h253
-rw-r--r--tools/qdoc3/jambiapiparser.cpp547
-rw-r--r--tools/qdoc3/jambiapiparser.h99
-rw-r--r--tools/qdoc3/javacodemarker.cpp201
-rw-r--r--tools/qdoc3/javacodemarker.h80
-rw-r--r--tools/qdoc3/javadocgenerator.cpp453
-rw-r--r--tools/qdoc3/javadocgenerator.h95
-rw-r--r--tools/qdoc3/linguistgenerator.cpp245
-rw-r--r--tools/qdoc3/linguistgenerator.h85
-rw-r--r--tools/qdoc3/location.cpp401
-rw-r--r--tools/qdoc3/location.h131
-rw-r--r--tools/qdoc3/loutgenerator.cpp63
-rw-r--r--tools/qdoc3/loutgenerator.h67
-rw-r--r--tools/qdoc3/main.cpp496
-rw-r--r--tools/qdoc3/mangenerator.cpp228
-rw-r--r--tools/qdoc3/mangenerator.h79
-rw-r--r--tools/qdoc3/node.cpp1024
-rw-r--r--tools/qdoc3/node.h587
-rw-r--r--tools/qdoc3/openedlist.cpp228
-rw-r--r--tools/qdoc3/openedlist.h91
-rw-r--r--tools/qdoc3/pagegenerator.cpp219
-rw-r--r--tools/qdoc3/pagegenerator.h85
-rw-r--r--tools/qdoc3/plaincodemarker.cpp139
-rw-r--r--tools/qdoc3/plaincodemarker.h79
-rw-r--r--tools/qdoc3/polyarchiveextractor.cpp94
-rw-r--r--tools/qdoc3/polyarchiveextractor.h70
-rw-r--r--tools/qdoc3/polyuncompressor.cpp109
-rw-r--r--tools/qdoc3/polyuncompressor.h71
-rw-r--r--tools/qdoc3/qdoc3.pro108
-rw-r--r--tools/qdoc3/qsakernelparser.cpp186
-rw-r--r--tools/qdoc3/qsakernelparser.h77
-rw-r--r--tools/qdoc3/qscodemarker.cpp385
-rw-r--r--tools/qdoc3/qscodemarker.h80
-rw-r--r--tools/qdoc3/qscodeparser.cpp944
-rw-r--r--tools/qdoc3/qscodeparser.h128
-rw-r--r--tools/qdoc3/quoter.cpp369
-rw-r--r--tools/qdoc3/quoter.h89
-rw-r--r--tools/qdoc3/separator.cpp69
-rw-r--r--tools/qdoc3/separator.h57
-rw-r--r--tools/qdoc3/sgmlgenerator.cpp63
-rw-r--r--tools/qdoc3/sgmlgenerator.h67
-rw-r--r--tools/qdoc3/test/arthurtext.qdocconf6
-rw-r--r--tools/qdoc3/test/assistant.qdocconf45
-rw-r--r--tools/qdoc3/test/carbide-eclipse-integration.qdocconf12
-rw-r--r--tools/qdoc3/test/classic.css131
-rw-r--r--tools/qdoc3/test/compat.qdocconf31
-rw-r--r--tools/qdoc3/test/designer.qdocconf51
-rw-r--r--tools/qdoc3/test/eclipse-integration.qdocconf13
-rw-r--r--tools/qdoc3/test/jambi.qdocconf47
-rw-r--r--tools/qdoc3/test/linguist.qdocconf47
-rw-r--r--tools/qdoc3/test/macros.qdocconf27
-rw-r--r--tools/qdoc3/test/qmake.qdocconf40
-rw-r--r--tools/qdoc3/test/qt-api-only-with-xcode.qdocconf29
-rw-r--r--tools/qdoc3/test/qt-api-only.qdocconf30
-rw-r--r--tools/qdoc3/test/qt-build-docs-with-xcode.qdocconf3
-rw-r--r--tools/qdoc3/test/qt-build-docs.qdocconf109
-rw-r--r--tools/qdoc3/test/qt-cpp-ignore.qdocconf87
-rw-r--r--tools/qdoc3/test/qt-defines.qdocconf26
-rw-r--r--tools/qdoc3/test/qt-for-jambi.qdocconf12
-rw-r--r--tools/qdoc3/test/qt-html-templates.qdocconf32
-rw-r--r--tools/qdoc3/test/qt-inc.qdocconf146
-rw-r--r--tools/qdoc3/test/qt-linguist.qdocconf4
-rw-r--r--tools/qdoc3/test/qt-webxml.qdocconf11
-rw-r--r--tools/qdoc3/test/qt-with-extensions.qdocconf8
-rw-r--r--tools/qdoc3/test/qt-with-xcode.qdocconf3
-rw-r--r--tools/qdoc3/test/qt.qdocconf115
-rw-r--r--tools/qdoc3/test/standalone-eclipse-integration.qdocconf11
-rw-r--r--tools/qdoc3/text.cpp270
-rw-r--r--tools/qdoc3/text.h106
-rw-r--r--tools/qdoc3/tokenizer.cpp753
-rw-r--r--tools/qdoc3/tokenizer.h183
-rw-r--r--tools/qdoc3/tr.h60
-rw-r--r--tools/qdoc3/tree.cpp2012
-rw-r--r--tools/qdoc3/tree.h157
-rw-r--r--tools/qdoc3/uncompressor.cpp108
-rw-r--r--tools/qdoc3/uncompressor.h79
-rw-r--r--tools/qdoc3/webxmlgenerator.cpp1195
-rw-r--r--tools/qdoc3/webxmlgenerator.h122
-rw-r--r--tools/qdoc3/yyindent.cpp1190
-rw-r--r--tools/qev/README2
-rw-r--r--tools/qev/qev.cpp66
-rw-r--r--tools/qev/qev.pro13
-rw-r--r--tools/qtconcurrent/codegenerator/codegenerator.pri5
-rw-r--r--tools/qtconcurrent/codegenerator/example/example.pro9
-rw-r--r--tools/qtconcurrent/codegenerator/example/main.cpp83
-rw-r--r--tools/qtconcurrent/codegenerator/src/codegenerator.cpp140
-rw-r--r--tools/qtconcurrent/codegenerator/src/codegenerator.h204
-rw-r--r--tools/qtconcurrent/generaterun/main.cpp422
-rw-r--r--tools/qtconcurrent/generaterun/run.pro9
-rw-r--r--tools/qtconfig/LICENSE.GPL280
-rw-r--r--tools/qtconfig/colorbutton.cpp206
-rw-r--r--tools/qtconfig/colorbutton.h90
-rw-r--r--tools/qtconfig/images/appicon.pngbin0 -> 2238 bytes-rw-r--r--tools/qtconfig/main.cpp56
-rw-r--r--tools/qtconfig/mainwindow.cpp1073
-rw-r--r--tools/qtconfig/mainwindow.h110
-rw-r--r--tools/qtconfig/mainwindowbase.cpp250
-rw-r--r--tools/qtconfig/mainwindowbase.h95
-rw-r--r--tools/qtconfig/mainwindowbase.ui1384
-rw-r--r--tools/qtconfig/paletteeditoradvanced.cpp591
-rw-r--r--tools/qtconfig/paletteeditoradvanced.h110
-rw-r--r--tools/qtconfig/paletteeditoradvancedbase.cpp144
-rw-r--r--tools/qtconfig/paletteeditoradvancedbase.h78
-rw-r--r--tools/qtconfig/paletteeditoradvancedbase.ui617
-rw-r--r--tools/qtconfig/previewframe.cpp104
-rw-r--r--tools/qtconfig/previewframe.h84
-rw-r--r--tools/qtconfig/previewwidget.cpp84
-rw-r--r--tools/qtconfig/previewwidget.h62
-rw-r--r--tools/qtconfig/previewwidgetbase.cpp88
-rw-r--r--tools/qtconfig/previewwidgetbase.h68
-rw-r--r--tools/qtconfig/previewwidgetbase.ui340
-rw-r--r--tools/qtconfig/qtconfig.pro28
-rw-r--r--tools/qtconfig/qtconfig.qrc5
-rw-r--r--tools/qtconfig/translations/translations.pro13
-rw-r--r--tools/qtestlib/qtestlib.pro4
-rw-r--r--tools/qtestlib/updater/main.cpp178
-rw-r--r--tools/qtestlib/updater/updater.pro10
-rw-r--r--tools/qtestlib/wince/cetest/activesyncconnection.cpp485
-rw-r--r--tools/qtestlib/wince/cetest/activesyncconnection.h86
-rw-r--r--tools/qtestlib/wince/cetest/bootstrapped.pri38
-rw-r--r--tools/qtestlib/wince/cetest/cetest.pro47
-rw-r--r--tools/qtestlib/wince/cetest/deployment.cpp267
-rw-r--r--tools/qtestlib/wince/cetest/deployment.h75
-rw-r--r--tools/qtestlib/wince/cetest/main.cpp351
-rw-r--r--tools/qtestlib/wince/cetest/qmake_include.pri7
-rw-r--r--tools/qtestlib/wince/cetest/remoteconnection.cpp68
-rw-r--r--tools/qtestlib/wince/cetest/remoteconnection.h82
-rw-r--r--tools/qtestlib/wince/remotelib/commands.cpp120
-rw-r--r--tools/qtestlib/wince/remotelib/commands.h51
-rw-r--r--tools/qtestlib/wince/remotelib/remotelib.pro15
-rw-r--r--tools/qtestlib/wince/wince.pro2
-rw-r--r--tools/qvfb/ClamshellPhone.qrc5
-rw-r--r--tools/qvfb/ClamshellPhone.skin/ClamshellPhone.skin30
-rw-r--r--tools/qvfb/ClamshellPhone.skin/ClamshellPhone1-5-closed.pngbin0 -> 68200 bytes-rw-r--r--tools/qvfb/ClamshellPhone.skin/ClamshellPhone1-5-pressed.pngbin0 -> 113907 bytes-rw-r--r--tools/qvfb/ClamshellPhone.skin/ClamshellPhone1-5.pngbin0 -> 113450 bytes-rw-r--r--tools/qvfb/ClamshellPhone.skin/defaultbuttons.conf78
-rw-r--r--tools/qvfb/DualScreenPhone.skin/DualScreen-pressed.pngbin0 -> 115575 bytes-rw-r--r--tools/qvfb/DualScreenPhone.skin/DualScreen.pngbin0 -> 104711 bytes-rw-r--r--tools/qvfb/DualScreenPhone.skin/DualScreenPhone.skin29
-rw-r--r--tools/qvfb/DualScreenPhone.skin/defaultbuttons.conf78
-rw-r--r--tools/qvfb/LICENSE.GPL280
-rw-r--r--tools/qvfb/PDAPhone.qrc5
-rw-r--r--tools/qvfb/PDAPhone.skin/PDAPhone.skin18
-rw-r--r--tools/qvfb/PDAPhone.skin/defaultbuttons.conf36
-rw-r--r--tools/qvfb/PDAPhone.skin/finger.pngbin0 -> 40343 bytes-rw-r--r--tools/qvfb/PDAPhone.skin/pda_down.pngbin0 -> 52037 bytes-rw-r--r--tools/qvfb/PDAPhone.skin/pda_up.pngbin0 -> 100615 bytes-rw-r--r--tools/qvfb/PortableMedia.qrc5
-rw-r--r--tools/qvfb/PortableMedia.skin/PortableMedia.skin14
-rw-r--r--tools/qvfb/PortableMedia.skin/defaultbuttons.conf23
-rw-r--r--tools/qvfb/PortableMedia.skin/portablemedia-pressed.pngbin0 -> 6183 bytes-rw-r--r--tools/qvfb/PortableMedia.skin/portablemedia.pngbin0 -> 6182 bytes-rw-r--r--tools/qvfb/PortableMedia.skin/portablemedia.xcfbin0 -> 41592 bytes-rw-r--r--tools/qvfb/README51
-rw-r--r--tools/qvfb/SmartPhone.qrc5
-rw-r--r--tools/qvfb/SmartPhone.skin/SmartPhone-pressed.pngbin0 -> 111515 bytes-rw-r--r--tools/qvfb/SmartPhone.skin/SmartPhone.pngbin0 -> 101750 bytes-rw-r--r--tools/qvfb/SmartPhone.skin/SmartPhone.skin28
-rw-r--r--tools/qvfb/SmartPhone.skin/defaultbuttons.conf78
-rw-r--r--tools/qvfb/SmartPhone2.qrc5
-rw-r--r--tools/qvfb/SmartPhone2.skin/SmartPhone2-pressed.pngbin0 -> 134749 bytes-rw-r--r--tools/qvfb/SmartPhone2.skin/SmartPhone2.pngbin0 -> 121915 bytes-rw-r--r--tools/qvfb/SmartPhone2.skin/SmartPhone2.skin25
-rw-r--r--tools/qvfb/SmartPhone2.skin/defaultbuttons.conf52
-rw-r--r--tools/qvfb/SmartPhoneWithButtons.qrc5
-rw-r--r--tools/qvfb/SmartPhoneWithButtons.skin/SmartPhoneWithButtons-pressed.pngbin0 -> 103838 bytes-rw-r--r--tools/qvfb/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.pngbin0 -> 88470 bytes-rw-r--r--tools/qvfb/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.skin31
-rw-r--r--tools/qvfb/SmartPhoneWithButtons.skin/defaultbuttons.conf103
-rw-r--r--tools/qvfb/TouchscreenPhone.qrc5
-rw-r--r--tools/qvfb/TouchscreenPhone.skin/TouchscreenPhone-pressed.pngbin0 -> 88599 bytes-rw-r--r--tools/qvfb/TouchscreenPhone.skin/TouchscreenPhone.pngbin0 -> 61809 bytes-rw-r--r--tools/qvfb/TouchscreenPhone.skin/TouchscreenPhone.skin16
-rw-r--r--tools/qvfb/TouchscreenPhone.skin/defaultbuttons.conf45
-rw-r--r--tools/qvfb/Trolltech-Keypad.qrc5
-rw-r--r--tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad-closed.pngbin0 -> 69447 bytes-rw-r--r--tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad-down.pngbin0 -> 242107 bytes-rw-r--r--tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad.pngbin0 -> 230638 bytes-rw-r--r--tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad.skin35
-rw-r--r--tools/qvfb/Trolltech-Keypad.skin/defaultbuttons.conf142
-rw-r--r--tools/qvfb/Trolltech-Touchscreen.qrc5
-rw-r--r--tools/qvfb/Trolltech-Touchscreen.skin/Trolltech-Touchscreen-down.pngbin0 -> 133117 bytes-rw-r--r--tools/qvfb/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.pngbin0 -> 133180 bytes-rw-r--r--tools/qvfb/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.skin17
-rw-r--r--tools/qvfb/Trolltech-Touchscreen.skin/defaultbuttons.conf53
-rw-r--r--tools/qvfb/config.ui2528
-rw-r--r--tools/qvfb/gammaview.h59
-rw-r--r--tools/qvfb/images/logo-nt.pngbin0 -> 1965 bytes-rw-r--r--tools/qvfb/images/logo.pngbin0 -> 2238 bytes-rw-r--r--tools/qvfb/main.cpp155
-rw-r--r--tools/qvfb/pda.qrc5
-rw-r--r--tools/qvfb/pda.skin14
-rw-r--r--tools/qvfb/pda_down.pngbin0 -> 102655 bytes-rw-r--r--tools/qvfb/pda_up.pngbin0 -> 100615 bytes-rw-r--r--tools/qvfb/qanimationwriter.cpp451
-rw-r--r--tools/qvfb/qanimationwriter.h71
-rw-r--r--tools/qvfb/qtopiakeysym.h67
-rw-r--r--tools/qvfb/qvfb.cpp1137
-rw-r--r--tools/qvfb/qvfb.h159
-rw-r--r--tools/qvfb/qvfb.pro73
-rw-r--r--tools/qvfb/qvfb.qrc7
-rw-r--r--tools/qvfb/qvfbmmap.cpp222
-rw-r--r--tools/qvfb/qvfbmmap.h91
-rw-r--r--tools/qvfb/qvfbprotocol.cpp193
-rw-r--r--tools/qvfb/qvfbprotocol.h173
-rw-r--r--tools/qvfb/qvfbratedlg.cpp103
-rw-r--r--tools/qvfb/qvfbratedlg.h74
-rw-r--r--tools/qvfb/qvfbshmem.cpp314
-rw-r--r--tools/qvfb/qvfbshmem.h90
-rw-r--r--tools/qvfb/qvfbview.cpp824
-rw-r--r--tools/qvfb/qvfbview.h209
-rw-r--r--tools/qvfb/qvfbx11view.cpp388
-rw-r--r--tools/qvfb/qvfbx11view.h121
-rw-r--r--tools/qvfb/translations/translations.pro32
-rw-r--r--tools/qvfb/x11keyfaker.cpp626
-rw-r--r--tools/qvfb/x11keyfaker.h80
-rw-r--r--tools/shared/deviceskin/deviceskin.cpp857
-rw-r--r--tools/shared/deviceskin/deviceskin.h174
-rw-r--r--tools/shared/deviceskin/deviceskin.pri3
-rw-r--r--tools/shared/findwidget/abstractfindwidget.cpp295
-rw-r--r--tools/shared/findwidget/abstractfindwidget.h115
-rw-r--r--tools/shared/findwidget/findwidget.pri4
-rw-r--r--tools/shared/findwidget/findwidget.qrc14
-rw-r--r--tools/shared/findwidget/images/mac/closetab.pngbin0 -> 516 bytes-rw-r--r--tools/shared/findwidget/images/mac/next.pngbin0 -> 1310 bytes-rw-r--r--tools/shared/findwidget/images/mac/previous.pngbin0 -> 1080 bytes-rw-r--r--tools/shared/findwidget/images/mac/searchfind.pngbin0 -> 1836 bytes-rw-r--r--tools/shared/findwidget/images/win/closetab.pngbin0 -> 375 bytes-rw-r--r--tools/shared/findwidget/images/win/next.pngbin0 -> 1038 bytes-rw-r--r--tools/shared/findwidget/images/win/previous.pngbin0 -> 898 bytes-rw-r--r--tools/shared/findwidget/images/win/searchfind.pngbin0 -> 1944 bytes-rw-r--r--tools/shared/findwidget/images/wrap.pngbin0 -> 500 bytes-rw-r--r--tools/shared/findwidget/itemviewfindwidget.cpp317
-rw-r--r--tools/shared/findwidget/itemviewfindwidget.h78
-rw-r--r--tools/shared/findwidget/texteditfindwidget.cpp169
-rw-r--r--tools/shared/findwidget/texteditfindwidget.h73
-rw-r--r--tools/shared/fontpanel/fontpanel.cpp304
-rw-r--r--tools/shared/fontpanel/fontpanel.h108
-rw-r--r--tools/shared/fontpanel/fontpanel.pri3
-rw-r--r--tools/shared/qtgradienteditor/images/down.pngbin0 -> 594 bytes-rw-r--r--tools/shared/qtgradienteditor/images/edit.pngbin0 -> 503 bytes-rw-r--r--tools/shared/qtgradienteditor/images/editdelete.pngbin0 -> 831 bytes-rw-r--r--tools/shared/qtgradienteditor/images/minus.pngbin0 -> 250 bytes-rw-r--r--tools/shared/qtgradienteditor/images/plus.pngbin0 -> 462 bytes-rw-r--r--tools/shared/qtgradienteditor/images/spreadpad.pngbin0 -> 151 bytes-rw-r--r--tools/shared/qtgradienteditor/images/spreadreflect.pngbin0 -> 165 bytes-rw-r--r--tools/shared/qtgradienteditor/images/spreadrepeat.pngbin0 -> 156 bytes-rw-r--r--tools/shared/qtgradienteditor/images/typeconical.pngbin0 -> 937 bytes-rw-r--r--tools/shared/qtgradienteditor/images/typelinear.pngbin0 -> 145 bytes-rw-r--r--tools/shared/qtgradienteditor/images/typeradial.pngbin0 -> 583 bytes-rw-r--r--tools/shared/qtgradienteditor/images/up.pngbin0 -> 692 bytes-rw-r--r--tools/shared/qtgradienteditor/images/zoomin.pngbin0 -> 1208 bytes-rw-r--r--tools/shared/qtgradienteditor/images/zoomout.pngbin0 -> 1226 bytes-rw-r--r--tools/shared/qtgradienteditor/qtcolorbutton.cpp278
-rw-r--r--tools/shared/qtgradienteditor/qtcolorbutton.h86
-rw-r--r--tools/shared/qtgradienteditor/qtcolorbutton.pri4
-rw-r--r--tools/shared/qtgradienteditor/qtcolorline.cpp1124
-rw-r--r--tools/shared/qtgradienteditor/qtcolorline.h124
-rw-r--r--tools/shared/qtgradienteditor/qtgradientdialog.cpp359
-rw-r--r--tools/shared/qtgradienteditor/qtgradientdialog.h87
-rw-r--r--tools/shared/qtgradienteditor/qtgradientdialog.ui121
-rw-r--r--tools/shared/qtgradienteditor/qtgradienteditor.cpp958
-rw-r--r--tools/shared/qtgradienteditor/qtgradienteditor.h111
-rw-r--r--tools/shared/qtgradienteditor/qtgradienteditor.pri33
-rw-r--r--tools/shared/qtgradienteditor/qtgradienteditor.qrc18
-rw-r--r--tools/shared/qtgradienteditor/qtgradienteditor.ui1377
-rw-r--r--tools/shared/qtgradienteditor/qtgradientmanager.cpp135
-rw-r--r--tools/shared/qtgradienteditor/qtgradientmanager.h92
-rw-r--r--tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp730
-rw-r--r--tools/shared/qtgradienteditor/qtgradientstopscontroller.h106
-rw-r--r--tools/shared/qtgradienteditor/qtgradientstopsmodel.cpp480
-rw-r--r--tools/shared/qtgradienteditor/qtgradientstopsmodel.h121
-rw-r--r--tools/shared/qtgradienteditor/qtgradientstopswidget.cpp1156
-rw-r--r--tools/shared/qtgradienteditor/qtgradientstopswidget.h115
-rw-r--r--tools/shared/qtgradienteditor/qtgradientutils.cpp420
-rw-r--r--tools/shared/qtgradienteditor/qtgradientutils.h66
-rw-r--r--tools/shared/qtgradienteditor/qtgradientview.cpp292
-rw-r--r--tools/shared/qtgradienteditor/qtgradientview.h99
-rw-r--r--tools/shared/qtgradienteditor/qtgradientview.ui135
-rw-r--r--tools/shared/qtgradienteditor/qtgradientviewdialog.cpp89
-rw-r--r--tools/shared/qtgradienteditor/qtgradientviewdialog.h75
-rw-r--r--tools/shared/qtgradienteditor/qtgradientviewdialog.ui121
-rw-r--r--tools/shared/qtgradienteditor/qtgradientwidget.cpp817
-rw-r--r--tools/shared/qtgradienteditor/qtgradientwidget.h120
-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-arrow.pngbin0 -> 171 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-busy.pngbin0 -> 201 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-closedhand.pngbin0 -> 147 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-cross.pngbin0 -> 130 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-forbidden.pngbin0 -> 199 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-hand.pngbin0 -> 159 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-hsplit.pngbin0 -> 155 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-ibeam.pngbin0 -> 124 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-openhand.pngbin0 -> 160 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-sizeall.pngbin0 -> 174 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-sizeb.pngbin0 -> 161 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-sizef.pngbin0 -> 161 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-sizeh.pngbin0 -> 145 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-sizev.pngbin0 -> 141 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-uparrow.pngbin0 -> 132 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-vsplit.pngbin0 -> 161 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-wait.pngbin0 -> 172 bytes-rw-r--r--tools/shared/qtpropertybrowser/images/cursor-whatsthis.pngbin0 -> 191 bytes-rw-r--r--tools/shared/qtpropertybrowser/qtbuttonpropertybrowser.cpp633
-rw-r--r--tools/shared/qtpropertybrowser/qtbuttonpropertybrowser.h89
-rw-r--r--tools/shared/qtpropertybrowser/qteditorfactory.cpp2591
-rw-r--r--tools/shared/qtpropertybrowser/qteditorfactory.h401
-rw-r--r--tools/shared/qtpropertybrowser/qtgroupboxpropertybrowser.cpp535
-rw-r--r--tools/shared/qtpropertybrowser/qtgroupboxpropertybrowser.h80
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertybrowser.cpp1965
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertybrowser.h315
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertybrowser.pri19
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertybrowser.qrc23
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp434
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertybrowserutils_p.h161
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertymanager.cpp6493
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertymanager.h750
-rw-r--r--tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp1048
-rw-r--r--tools/shared/qtpropertybrowser/qttreepropertybrowser.h138
-rw-r--r--tools/shared/qtpropertybrowser/qtvariantproperty.cpp2282
-rw-r--r--tools/shared/qtpropertybrowser/qtvariantproperty.h181
-rw-r--r--tools/shared/qttoolbardialog/images/back.pngbin0 -> 678 bytes-rw-r--r--tools/shared/qttoolbardialog/images/down.pngbin0 -> 594 bytes-rw-r--r--tools/shared/qttoolbardialog/images/forward.pngbin0 -> 655 bytes-rw-r--r--tools/shared/qttoolbardialog/images/minus.pngbin0 -> 250 bytes-rw-r--r--tools/shared/qttoolbardialog/images/plus.pngbin0 -> 462 bytes-rw-r--r--tools/shared/qttoolbardialog/images/up.pngbin0 -> 692 bytes-rw-r--r--tools/shared/qttoolbardialog/qttoolbardialog.cpp1877
-rw-r--r--tools/shared/qttoolbardialog/qttoolbardialog.h138
-rw-r--r--tools/shared/qttoolbardialog/qttoolbardialog.pri6
-rw-r--r--tools/shared/qttoolbardialog/qttoolbardialog.qrc10
-rw-r--r--tools/shared/qttoolbardialog/qttoolbardialog.ui207
-rw-r--r--tools/tools.pro30
-rw-r--r--tools/xmlpatterns/main.cpp386
-rw-r--r--tools/xmlpatterns/main.h75
-rw-r--r--tools/xmlpatterns/qapplicationargument.cpp344
-rw-r--r--tools/xmlpatterns/qapplicationargument_p.h100
-rw-r--r--tools/xmlpatterns/qapplicationargumentparser.cpp1028
-rw-r--r--tools/xmlpatterns/qapplicationargumentparser_p.h111
-rw-r--r--tools/xmlpatterns/qcoloringmessagehandler.cpp193
-rw-r--r--tools/xmlpatterns/qcoloringmessagehandler_p.h99
-rw-r--r--tools/xmlpatterns/qcoloroutput.cpp350
-rw-r--r--tools/xmlpatterns/qcoloroutput_p.h134
-rw-r--r--tools/xmlpatterns/xmlpatterns.pro31
-rw-r--r--translations/README4
-rw-r--r--translations/assistant_adp_de.qmbin0 -> 23139 bytes-rw-r--r--translations/assistant_adp_de.ts1611
-rw-r--r--translations/assistant_adp_ja.qmbin0 -> 18357 bytes-rw-r--r--translations/assistant_adp_ja.ts1059
-rw-r--r--translations/assistant_adp_pl.qmbin0 -> 22726 bytes-rw-r--r--translations/assistant_adp_pl.ts1006
-rw-r--r--translations/assistant_adp_untranslated.ts991
-rw-r--r--translations/assistant_adp_zh_CN.qmbin0 -> 16631 bytes-rw-r--r--translations/assistant_adp_zh_CN.ts1004
-rw-r--r--translations/assistant_adp_zh_TW.qmbin0 -> 16555 bytes-rw-r--r--translations/assistant_adp_zh_TW.ts817
-rw-r--r--translations/assistant_de.qmbin0 -> 20332 bytes-rw-r--r--translations/assistant_de.ts1196
-rw-r--r--translations/assistant_ja.ts1118
-rw-r--r--translations/assistant_pl.qmbin0 -> 18457 bytes-rw-r--r--translations/assistant_pl.ts1182
-rw-r--r--translations/assistant_untranslated.ts1118
-rw-r--r--translations/assistant_zh_CN.qmbin0 -> 15595 bytes-rw-r--r--translations/assistant_zh_CN.ts1193
-rw-r--r--translations/assistant_zh_TW.qmbin0 -> 15567 bytes-rw-r--r--translations/assistant_zh_TW.ts983
-rw-r--r--translations/designer_de.qmbin0 -> 152455 bytes-rw-r--r--translations/designer_de.ts6994
-rw-r--r--translations/designer_ja.qmbin0 -> 105573 bytes-rw-r--r--translations/designer_ja.ts8844
-rw-r--r--translations/designer_pl.qmbin0 -> 150544 bytes-rw-r--r--translations/designer_pl.ts7038
-rw-r--r--translations/designer_untranslated.ts6958
-rw-r--r--translations/designer_zh_CN.qmbin0 -> 113745 bytes-rw-r--r--translations/designer_zh_CN.ts7864
-rw-r--r--translations/designer_zh_TW.qmbin0 -> 113449 bytes-rw-r--r--translations/designer_zh_TW.ts7609
-rw-r--r--translations/linguist_de.qmbin0 -> 47074 bytes-rw-r--r--translations/linguist_de.ts2787
-rw-r--r--translations/linguist_fr.ts1966
-rw-r--r--translations/linguist_ja.qmbin0 -> 30494 bytes-rw-r--r--translations/linguist_ja.ts2765
-rw-r--r--translations/linguist_pl.qmbin0 -> 50952 bytes-rw-r--r--translations/linguist_pl.ts2004
-rw-r--r--translations/linguist_untranslated.ts1966
-rw-r--r--translations/linguist_zh_CN.qmbin0 -> 33492 bytes-rw-r--r--translations/linguist_zh_CN.ts2728
-rw-r--r--translations/linguist_zh_TW.qmbin0 -> 33735 bytes-rw-r--r--translations/linguist_zh_TW.ts2629
-rw-r--r--translations/polish.qph143
-rw-r--r--translations/qt_ar.qmbin0 -> 58499 bytes-rw-r--r--translations/qt_ar.ts7807
-rw-r--r--translations/qt_de.qmbin0 -> 181913 bytes-rw-r--r--translations/qt_de.ts7714
-rw-r--r--translations/qt_es.qmbin0 -> 117693 bytes-rw-r--r--translations/qt_es.ts8018
-rw-r--r--translations/qt_fr.qmbin0 -> 148544 bytes-rw-r--r--translations/qt_fr.ts8196
-rw-r--r--translations/qt_help_de.qmbin0 -> 9381 bytes-rw-r--r--translations/qt_help_de.ts355
-rw-r--r--translations/qt_help_ja.ts354
-rw-r--r--translations/qt_help_pl.qmbin0 -> 9058 bytes-rw-r--r--translations/qt_help_pl.ts383
-rw-r--r--translations/qt_help_untranslated.ts354
-rw-r--r--translations/qt_help_zh_CN.qmbin0 -> 6434 bytes-rw-r--r--translations/qt_help_zh_CN.ts372
-rw-r--r--translations/qt_help_zh_TW.qmbin0 -> 6384 bytes-rw-r--r--translations/qt_help_zh_TW.ts331
-rw-r--r--translations/qt_iw.qmbin0 -> 55269 bytes-rw-r--r--translations/qt_iw.ts7767
-rw-r--r--translations/qt_ja_JP.qmbin0 -> 64337 bytes-rw-r--r--translations/qt_ja_JP.ts7940
-rw-r--r--translations/qt_pl.qmbin0 -> 143971 bytes-rw-r--r--translations/qt_pl.ts7757
-rw-r--r--translations/qt_pt.qmbin0 -> 78828 bytes-rw-r--r--translations/qt_pt.ts7942
-rw-r--r--translations/qt_ru.qmbin0 -> 60815 bytes-rw-r--r--translations/qt_ru.ts7807
-rw-r--r--translations/qt_sk.qmbin0 -> 79787 bytes-rw-r--r--translations/qt_sk.ts7948
-rw-r--r--translations/qt_sv.qmbin0 -> 73493 bytes-rw-r--r--translations/qt_sv.ts7891
-rw-r--r--translations/qt_uk.qmbin0 -> 81429 bytes-rw-r--r--translations/qt_uk.ts7968
-rw-r--r--translations/qt_untranslated.ts7679
-rw-r--r--translations/qt_zh_CN.qmbin0 -> 118981 bytes-rw-r--r--translations/qt_zh_CN.ts7893
-rw-r--r--translations/qt_zh_TW.qmbin0 -> 118967 bytes-rw-r--r--translations/qt_zh_TW.ts6659
-rw-r--r--translations/qtconfig_pl.qmbin0 -> 17940 bytes-rw-r--r--translations/qtconfig_pl.ts884
-rw-r--r--translations/qtconfig_untranslated.ts866
-rw-r--r--translations/qtconfig_zh_CN.qmbin0 -> 21688 bytes-rw-r--r--translations/qtconfig_zh_CN.ts885
-rw-r--r--translations/qtconfig_zh_TW.qmbin0 -> 20262 bytes-rw-r--r--translations/qtconfig_zh_TW.ts711
-rw-r--r--translations/qvfb_pl.qmbin0 -> 4742 bytes-rw-r--r--translations/qvfb_pl.ts325
-rw-r--r--translations/qvfb_untranslated.ts324
-rw-r--r--translations/qvfb_zh_CN.qmbin0 -> 4853 bytes-rw-r--r--translations/qvfb_zh_CN.ts325
-rw-r--r--translations/qvfb_zh_TW.qmbin0 -> 4853 bytes-rw-r--r--translations/qvfb_zh_TW.ts261
-rw-r--r--translations/translations.pri107
-rw-r--r--util/fixnonlatin1/fixnonlatin1.pro9
-rw-r--r--util/fixnonlatin1/main.cpp102
-rw-r--r--util/gencmap/Makefile46
-rw-r--r--util/gencmap/gencmap.cpp344
-rwxr-xr-xutil/harfbuzz/update-harfbuzz63
-rw-r--r--util/install/archive/archive.pro9
-rw-r--r--util/install/archive/qarchive.cpp471
-rw-r--r--util/install/archive/qarchive.h138
-rw-r--r--util/install/configure_installer.cache30
-rw-r--r--util/install/install.pro9
-rw-r--r--util/install/keygen/keygen.pro13
-rw-r--r--util/install/keygen/keyinfo.cpp164
-rw-r--r--util/install/keygen/keyinfo.h123
-rw-r--r--util/install/keygen/main.cpp250
-rw-r--r--util/install/mac/licensedlg.ui134
-rw-r--r--util/install/mac/licensedlgimpl.cpp65
-rw-r--r--util/install/mac/licensedlgimpl.h55
-rw-r--r--util/install/mac/mac.pro11
-rw-r--r--util/install/mac/main.cpp117
-rw-r--r--util/install/mac/unpackage.icnsbin0 -> 29372 bytes-rw-r--r--util/install/mac/unpackdlg.ui330
-rw-r--r--util/install/mac/unpackdlgimpl.cpp200
-rw-r--r--util/install/mac/unpackdlgimpl.h63
-rw-r--r--util/install/package/main.cpp397
-rw-r--r--util/install/package/package.pro25
-rw-r--r--util/install/win/archive.cpp115
-rw-r--r--util/install/win/archive.h49
-rw-r--r--util/install/win/dialogs/folderdlg.ui184
-rw-r--r--util/install/win/dialogs/folderdlgimpl.cpp119
-rw-r--r--util/install/win/dialogs/folderdlgimpl.h65
-rw-r--r--util/install/win/environment.cpp362
-rw-r--r--util/install/win/environment.h73
-rw-r--r--util/install/win/globalinformation.cpp168
-rw-r--r--util/install/win/globalinformation.h93
-rw-r--r--util/install/win/install-edu.rc3
-rw-r--r--util/install/win/install-eval.rc3
-rw-r--r--util/install/win/install-noncommercial.rc4
-rw-r--r--util/install/win/install-qsa.rc5
-rw-r--r--util/install/win/install.icobin0 -> 2998 bytes-rw-r--r--util/install/win/install.rc4
-rw-r--r--util/install/win/main.cpp100
-rw-r--r--util/install/win/pages/buildpage.ui92
-rw-r--r--util/install/win/pages/configpage.ui474
-rw-r--r--util/install/win/pages/finishpage.ui63
-rw-r--r--util/install/win/pages/folderspage.ui259
-rw-r--r--util/install/win/pages/licenseagreementpage.ui202
-rw-r--r--util/install/win/pages/licensepage.ui264
-rw-r--r--util/install/win/pages/optionspage.ui503
-rw-r--r--util/install/win/pages/pages.cpp349
-rw-r--r--util/install/win/pages/pages.h226
-rw-r--r--util/install/win/pages/progresspage.ui78
-rw-r--r--util/install/win/pages/sidedecoration.ui108
-rw-r--r--util/install/win/pages/sidedecorationimpl.cpp205
-rw-r--r--util/install/win/pages/sidedecorationimpl.h70
-rw-r--r--util/install/win/pages/winintropage.ui39
-rw-r--r--util/install/win/qt.arq3
-rw-r--r--util/install/win/resource.cpp162
-rw-r--r--util/install/win/resource.h77
-rw-r--r--util/install/win/setupwizardimpl.cpp2571
-rw-r--r--util/install/win/setupwizardimpl.h276
-rw-r--r--util/install/win/setupwizardimpl_config.cpp1564
-rw-r--r--util/install/win/shell.cpp472
-rw-r--r--util/install/win/shell.h87
-rw-r--r--util/install/win/uninstaller/quninstall.pro7
-rw-r--r--util/install/win/uninstaller/uninstall.ui167
-rw-r--r--util/install/win/uninstaller/uninstaller.cpp142
-rw-r--r--util/install/win/uninstaller/uninstallimpl.cpp75
-rw-r--r--util/install/win/uninstaller/uninstallimpl.h54
-rw-r--r--util/install/win/win.pro136
-rw-r--r--util/lexgen/README16
-rw-r--r--util/lexgen/configfile.cpp99
-rw-r--r--util/lexgen/configfile.h81
-rw-r--r--util/lexgen/css2-simplified.lexgen93
-rw-r--r--util/lexgen/generator.cpp532
-rw-r--r--util/lexgen/generator.h221
-rw-r--r--util/lexgen/global.h113
-rw-r--r--util/lexgen/lexgen.lexgen24
-rw-r--r--util/lexgen/lexgen.pri3
-rw-r--r--util/lexgen/lexgen.pro6
-rw-r--r--util/lexgen/main.cpp323
-rw-r--r--util/lexgen/nfa.cpp508
-rw-r--r--util/lexgen/nfa.h127
-rw-r--r--util/lexgen/re2nfa.cpp547
-rw-r--r--util/lexgen/re2nfa.h116
-rw-r--r--util/lexgen/test.lexgen9
-rw-r--r--util/lexgen/tests/testdata/backtrack1/input1
-rw-r--r--util/lexgen/tests/testdata/backtrack1/output1
-rw-r--r--util/lexgen/tests/testdata/backtrack1/rules.lexgen3
-rw-r--r--util/lexgen/tests/testdata/backtrack2/input1
-rw-r--r--util/lexgen/tests/testdata/backtrack2/output2
-rw-r--r--util/lexgen/tests/testdata/backtrack2/rules.lexgen4
-rw-r--r--util/lexgen/tests/testdata/casesensitivity/input1
-rw-r--r--util/lexgen/tests/testdata/casesensitivity/output14
-rw-r--r--util/lexgen/tests/testdata/casesensitivity/rules.lexgen7
-rw-r--r--util/lexgen/tests/testdata/comments/input1
-rw-r--r--util/lexgen/tests/testdata/comments/output2
-rw-r--r--util/lexgen/tests/testdata/comments/rules.lexgen2
-rw-r--r--util/lexgen/tests/testdata/dot/input1
-rw-r--r--util/lexgen/tests/testdata/dot/output2
-rw-r--r--util/lexgen/tests/testdata/dot/rules.lexgen3
-rw-r--r--util/lexgen/tests/testdata/negation/input1
-rw-r--r--util/lexgen/tests/testdata/negation/output2
-rw-r--r--util/lexgen/tests/testdata/negation/rules.lexgen3
-rw-r--r--util/lexgen/tests/testdata/quoteinset/input1
-rw-r--r--util/lexgen/tests/testdata/quoteinset/output1
-rw-r--r--util/lexgen/tests/testdata/quoteinset/rules.lexgen2
-rw-r--r--util/lexgen/tests/testdata/quotes/input1
-rw-r--r--util/lexgen/tests/testdata/quotes/output1
-rw-r--r--util/lexgen/tests/testdata/quotes/rules.lexgen2
-rw-r--r--util/lexgen/tests/testdata/simple/input1
-rw-r--r--util/lexgen/tests/testdata/simple/output2
-rw-r--r--util/lexgen/tests/testdata/simple/rules.lexgen3
-rw-r--r--util/lexgen/tests/testdata/subsets1/input1
-rw-r--r--util/lexgen/tests/testdata/subsets1/output2
-rw-r--r--util/lexgen/tests/testdata/subsets1/rules.lexgen3
-rw-r--r--util/lexgen/tests/testdata/subsets2/input1
-rw-r--r--util/lexgen/tests/testdata/subsets2/output3
-rw-r--r--util/lexgen/tests/testdata/subsets2/rules.lexgen4
-rw-r--r--util/lexgen/tests/tests.pro6
-rw-r--r--util/lexgen/tests/tst_lexgen.cpp285
-rw-r--r--util/lexgen/tokenizer.cpp237
-rw-r--r--util/local_database/README1
-rwxr-xr-xutil/local_database/cldr2qlocalexml.py459
-rw-r--r--util/local_database/enumdata.py428
-rw-r--r--util/local_database/formattags.txt23
-rw-r--r--util/local_database/locale.xml9217
-rwxr-xr-xutil/local_database/qlocalexml2cpp.py503
-rw-r--r--util/local_database/testlocales/localemodel.cpp462
-rw-r--r--util/local_database/testlocales/localemodel.h69
-rw-r--r--util/local_database/testlocales/localewidget.cpp89
-rw-r--r--util/local_database/testlocales/localewidget.h59
-rw-r--r--util/local_database/testlocales/main.cpp51
-rw-r--r--util/local_database/testlocales/testlocales.pro4
-rw-r--r--util/local_database/xpathlite.py107
-rw-r--r--util/normalize/README16
-rw-r--r--util/normalize/main.cpp197
-rw-r--r--util/normalize/normalize.pro9
-rw-r--r--util/plugintest/README3
-rw-r--r--util/plugintest/main.cpp66
-rw-r--r--util/plugintest/plugintest.pro4
-rw-r--r--util/qlalr/.gitignore1
-rw-r--r--util/qlalr/README1
-rw-r--r--util/qlalr/compress.cpp286
-rw-r--r--util/qlalr/compress.h60
-rw-r--r--util/qlalr/cppgenerator.cpp703
-rw-r--r--util/qlalr/cppgenerator.h99
-rw-r--r--util/qlalr/doc/qlalr.qdocconf65
-rw-r--r--util/qlalr/doc/src/classic.css97
-rw-r--r--util/qlalr/doc/src/images/qt-logo.pngbin0 -> 1422 bytes-rw-r--r--util/qlalr/doc/src/images/trolltech-logo.pngbin0 -> 1512 bytes-rw-r--r--util/qlalr/doc/src/qlalr.qdoc79
-rw-r--r--util/qlalr/dotgraph.cpp102
-rw-r--r--util/qlalr/dotgraph.h59
-rw-r--r--util/qlalr/examples/dummy-xml/dummy-xml.pro2
-rw-r--r--util/qlalr/examples/dummy-xml/ll/dummy-xml-ll.cpp83
-rw-r--r--util/qlalr/examples/dummy-xml/xml.g202
-rw-r--r--util/qlalr/examples/glsl/build.sh7
-rwxr-xr-xutil/qlalr/examples/glsl/glsl4
-rw-r--r--util/qlalr/examples/glsl/glsl-lex.l201
-rw-r--r--util/qlalr/examples/glsl/glsl.g621
-rw-r--r--util/qlalr/examples/glsl/glsl.pro4
-rw-r--r--util/qlalr/examples/lambda/COMPILE3
-rw-r--r--util/qlalr/examples/lambda/lambda.g41
-rw-r--r--util/qlalr/examples/lambda/lambda.pro3
-rw-r--r--util/qlalr/examples/lambda/main.cpp160
-rw-r--r--util/qlalr/examples/qparser/COMPILE3
-rw-r--r--util/qlalr/examples/qparser/calc.g93
-rw-r--r--util/qlalr/examples/qparser/calc.l20
-rw-r--r--util/qlalr/examples/qparser/qparser.cpp3
-rw-r--r--util/qlalr/examples/qparser/qparser.h111
-rw-r--r--util/qlalr/examples/qparser/qparser.pro4
-rw-r--r--util/qlalr/grammar.cpp123
-rw-r--r--util/qlalr/grammar_p.h119
-rw-r--r--util/qlalr/lalr.cpp783
-rw-r--r--util/qlalr/lalr.g803
-rw-r--r--util/qlalr/lalr.h502
-rw-r--r--util/qlalr/main.cpp185
-rw-r--r--util/qlalr/parsetable.cpp127
-rw-r--r--util/qlalr/parsetable.h59
-rw-r--r--util/qlalr/qlalr.pro21
-rw-r--r--util/qlalr/recognizer.cpp489
-rw-r--r--util/qlalr/recognizer.h111
-rw-r--r--util/qtscriptparser/make-parser.sh15
-rwxr-xr-xutil/scripts/make_qfeatures_dot_h118
-rwxr-xr-xutil/scripts/unix_to_dos16
-rw-r--r--util/unicode/README1
-rw-r--r--util/unicode/codecs/big5/BIG514079
-rw-r--r--util/unicode/codecs/big5/big5.pro6
-rw-r--r--util/unicode/codecs/big5/big5.qrc6
-rw-r--r--util/unicode/codecs/big5/main.cpp158
-rw-r--r--util/unicode/data/ArabicShaping.txt338
-rw-r--r--util/unicode/data/BidiMirroring.txt582
-rw-r--r--util/unicode/data/Blocks.txt185
-rw-r--r--util/unicode/data/CaseFolding.txt1093
-rw-r--r--util/unicode/data/CompositionExclusions.txt197
-rw-r--r--util/unicode/data/DerivedAge.txt867
-rw-r--r--util/unicode/data/GraphemeBreakProperty.txt1039
-rw-r--r--util/unicode/data/LineBreak.txt18542
-rw-r--r--util/unicode/data/NormalizationCorrections.txt48
-rw-r--r--util/unicode/data/Scripts.txt1538
-rw-r--r--util/unicode/data/ScriptsCorrections.txt0
-rw-r--r--util/unicode/data/ScriptsInitial.txt0
-rw-r--r--util/unicode/data/SentenceBreakProperty.txt1664
-rw-r--r--util/unicode/data/SpecialCasing.txt264
-rw-r--r--util/unicode/data/UnicodeData.txt17720
-rw-r--r--util/unicode/data/WordBreakProperty.txt677
-rw-r--r--util/unicode/main.cpp2524
-rw-r--r--util/unicode/unicode.pro2
-rwxr-xr-xutil/unicode/writingSystems.sh19
-rw-r--r--util/unicode/x11/encodings.in71
-rwxr-xr-xutil/unicode/x11/makeencodings135
-rwxr-xr-xutil/webkit/mkdist-webkit314
-rw-r--r--util/xkbdatagen/main.cpp478
-rw-r--r--util/xkbdatagen/xkbdatagen.pro3
30515 files changed, 7329097 insertions, 0 deletions
diff --git a/.commit-template b/.commit-template
new file mode 100644
index 0000000..589ca89
--- /dev/null
+++ b/.commit-template
@@ -0,0 +1,10 @@
+# ===[ Subject ]==========[ one line, please wrap at 72 characters ]===|
+
+# ---[ Details ]---------[ remember extra blank line after subject ]---|
+
+# ---[ Fields ]-----------------[ uncomment and edit as applicable ]---|
+
+#Task-number:
+#Reviewed-by:
+
+# ==================================[ please wrap at 72 characters ]===|
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0de9563
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,174 @@
+# This file is used to ignore files which are generated in the Qt build system
+# ----------------------------------------------------------------------------
+
+examples/*/*/*
+!examples/*/*/*[.]*
+!examples/*/*/README
+examples/*/*/*[.]app
+demos/*/*
+!demos/*/*[.]*
+demos/*/*[.]app
+config.tests/*/*/*
+!config.tests/*/*/*[.]*
+config.tests/*/*/*[.]app
+
+*~
+*.a
+*.core
+*.moc
+*.o
+*.obj
+*.orig
+*.swp
+*.rej
+*.so
+*.pbxuser
+*.mode1
+*.mode1v3
+*_pch.h.cpp
+*_resource.rc
+.#*
+*.*#
+core
+.qmake.cache
+.qmake.vars
+*.prl
+tags
+.DS_Store
+*.debug
+Makefile*
+*.prl
+*.app
+*.pro.user
+bin/Qt*.dll
+bin/assistant*
+bin/designer*
+bin/dumpcpp*
+bin/idc*
+bin/linguist*
+bin/lrelease*
+bin/lupdate*
+bin/lconvert*
+bin/moc*
+bin/pixeltool*
+bin/qmake*
+bin/qt3to4*
+bin/qtdemo*
+bin/rcc*
+bin/uic*
+bin/patternist*
+bin/phonon*
+bin/qcollectiongenerator*
+bin/qdbus*
+bin/qhelpconverter*
+bin/qhelpgenerator*
+bin/qtconfig*
+bin/xmlpatterns*
+bin/collectiongenerator
+bin/helpconverter
+bin/helpgenerator
+configure.cache
+config.status
+mkspecs/default
+mkspecs/qconfig.pri
+moc_*.cpp
+qmake/qmake.exe
+qmake/Makefile.bak
+src/corelib/global/qconfig.cpp
+src/corelib/global/qconfig.h
+src/corelib/global/qconfig.h.qmake
+src/tools/uic/qclass_lib_map.h
+ui_*.h
+tests/auto/qprocess/test*/*.exe
+tests/auto/qtcpsocket/stressTest/*.exe
+tests/auto/qprocess/fileWriterProcess/*.exe
+tests/auto/qmake/testdata/quotedfilenames/*.exe
+tests/auto/compilerwarnings/*.exe
+tests/auto/qmake/testdata/quotedfilenames/test.cpp
+tests/auto/qprocess/fileWriterProcess.txt
+.com.apple.timemachine.supported
+tests/auto/qlibrary/libmylib.so*
+tests/auto/qresourceengine/runtime_resource.rcc
+tools/qdoc3/qdoc3*
+tools/qtestlib/updater/updater*
+tools/activeqt/testcon/testcon.tlb
+qrc_*.cpp
+
+# xemacs temporary files
+*.flc
+
+# Vim temporary files
+.*.swp
+
+# Visual Studio generated files
+*.ib_pdb_index
+*.idb
+*.ilk
+*.pdb
+*.sln
+*.suo
+*.vcproj
+*vcproj.*.*.user
+*.ncb
+
+# MinGW generated files
+*.Debug
+*.Release
+
+# WebKit temp files
+src/3rdparty/webkit/WebCore/mocinclude.tmp
+src/3rdparty/webkit/includes.txt
+src/3rdparty/webkit/includes2.txt
+
+# Symlinks generated by configure
+tools/qvfb/qvfbhdr.h
+tools/qvfb/qlock_p.h
+tools/qvfb/qlock.cpp
+tools/qvfb/qwssignalhandler.cpp
+tools/qvfb/qwssignalhandler_p.h
+.DS_Store
+.pch
+.rcc
+*.app
+config.status
+config.tests/unix/cups/cups
+config.tests/unix/getaddrinfo/getaddrinfo
+config.tests/unix/getifaddrs/getifaddrs
+config.tests/unix/iconv/iconv
+config.tests/unix/ipv6/ipv6
+config.tests/unix/ipv6ifname/ipv6ifname
+config.tests/unix/largefile/largefile
+config.tests/unix/nis/nis
+config.tests/unix/odbc/odbc
+config.tests/unix/openssl/openssl
+config.tests/unix/stl/stl
+config.tests/unix/zlib/zlib
+config.tests/unix/3dnow/3dnow
+config.tests/unix/mmx/mmx
+config.tests/unix/sse/sse
+config.tests/unix/sse2/sse2
+
+
+
+# Directories to ignore
+# ---------------------
+
+debug
+examples/tools/plugandpaint/plugins
+include/*
+include/*/*
+lib/*
+!lib/fonts
+!lib/README
+plugins/*/*
+release
+tmp
+doc-build
+doc/html/*
+doc/qch
+doc-build
+.rcc
+.pch
+src/corelib/lib
+src/network/lib
+src/xml/lib/
diff --git a/.hgignore b/.hgignore
new file mode 100755
index 0000000..784d507
--- /dev/null
+++ b/.hgignore
@@ -0,0 +1,133 @@
+# This file is used to ignore files which are generated in the Qt build system
+# ----------------------------------------------------------------------------
+
+syntax: glob
+
+*~
+*.a
+*.core
+*.moc
+*.o
+*.obj
+*.orig
+*.swp
+*.rej
+*.so
+*.pbxuser
+*.mode1
+*.mode1v3
+*.qch
+*.dylib
+*_pch.h.cpp
+*_resource.rc
+.qmake.cache
+*.prl
+tags
+Makefile
+Makefile.Debug
+Makefile.Release
+bin/Qt*.dll
+bin/lconvert*
+bin/xmlpatterns*
+bin/assistant*
+bin/designer*
+bin/dumpcpp*
+bin/idc*
+bin/linguist*
+bin/lrelease*
+bin/lupdate*
+bin/moc*
+bin/pixeltool*
+bin/qmake*
+bin/qt3to4*
+bin/qtdemo*
+bin/rcc*
+bin/uic*
+bin/qcollectiongenerator
+bin/qhelpgenerator
+tools/qdoc3/qdoc3*
+#configure.cache
+mkspecs/default
+mkspecs/qconfig.pri
+moc_*.cpp
+qmake/qmake.exe
+qmake/Makefile.bak
+src/corelib/global/qconfig.cpp
+src/corelib/global/qconfig.h
+src/tools/uic/qclass_lib_map.h
+ui_*.h
+.com.apple.timemachine.supported
+
+# xemacs temporary files
+*.flc
+
+# Visual Studio generated files
+*.ib_pdb_index
+*.idb
+*.ilk
+*.pdb
+*.sln
+*.suo
+*.vcproj
+*vcproj.*.*.user
+
+#
+## Symlinks generated by configure
+tools/qvfb/qvfbhdr.h
+tools/qvfb/qlock_p.h
+tools/qvfb/qlock.cpp
+tools/qvfb/qwssignalhandler.cpp
+tools/qvfb/qwssignalhandler_p.h
+.DS_Store
+.pch
+.rcc
+*.app
+config.status
+config.tests/unix/cups/cups
+config.tests/unix/getaddrinfo/getaddrinfo
+config.tests/unix/getifaddrs/getifaddrs
+config.tests/unix/iconv/iconv
+config.tests/unix/ipv6/ipv6
+config.tests/unix/ipv6ifname/ipv6ifname
+config.tests/unix/largefile/largefile
+config.tests/unix/nis/nis
+config.tests/unix/odbc/odbc
+config.tests/unix/openssl/openssl
+config.tests/unix/stl/stl
+config.tests/unix/zlib/zlib
+config.tests/unix/3dnow/3dnow
+config.tests/unix/mmx/mmx
+config.tests/unix/sse/sse
+config.tests/unix/sse2/sse2
+config.tests/unix/psql-escape/psql-escape
+config.tests/unix/psql/psql
+config.tests/unix/stdint/stdint
+
+# Directories to ignore
+# ---------------------
+
+debug
+examples/tools/plugandpaint/plugins
+include/*
+doc/html*
+include/*/*
+lib/*
+plugins/*/*
+release
+tmp
+doc/html/*
+doc-build
+src/gui/.pch
+src/corelib/.pch
+src/network/.pch
+src/gui/.rcc
+src/sql/.rcc
+src/xml/.rcc
+src/corelib/.rcc
+src/network/.rcc
+.DS_Store
+src/gui/build
+src/corelib/global/qconfig.h.qmake
+*.perspectivev*
+build
+src/gui/qtdir.xcconfig
diff --git a/FAQ b/FAQ
new file mode 100644
index 0000000..c243e5c
--- /dev/null
+++ b/FAQ
@@ -0,0 +1,18 @@
+This is a list of Frequently Asked Questions regarding Qt Release 4.5.0.
+
+Q: I'm using a Unix system and I downloaded the Zip package. However, when I try
+to run the configure script, I get the following error message:
+"bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory"
+A: The problem here is converting files from Windows style line endings (CRLF)
+to Unix style line endings (LF). To avoid this problem, uncompress the file
+again and give the option "-a" to unzip, which will then add the correct line
+endings.
+
+Q: I'm running Windows XP and I downloaded the qt-win-eval-4.5.0-vs2008.exe
+version of Qt. However, when I try to run the examples I get an error saying:
+"The application failed to start because the application configuration is
+incorrect. Reinstalling the application may fix this problem.". I reinstalled
+the package but the error persists. What am I doing wrong?
+A: The problem is an incorrect version of the CRT. Visual studio requires CRT90
+while Windows XP comes with CRT80. To solve this problem, please install the
+2008 CRT redistributable package from Microsoft.
diff --git a/LGPL_EXCEPTION.TXT b/LGPL_EXCEPTION.TXT
new file mode 100644
index 0000000..8d0f85e
--- /dev/null
+++ b/LGPL_EXCEPTION.TXT
@@ -0,0 +1,3 @@
+Nokia Qt LGPL Exception version 1.0
+
+As a special exception to the GNU Lesser General Public License version 2.1, the object code form of a "work that uses the Library" may incorporate material from a header file that is part of the Library. You may distribute such object code under terms of your choice, provided that the incorporated material (i) does not exceed more than 5% of the total size of the Library; and (ii) is limited to numerical parameters, data structure layouts, accessors, macros, inline functions and templates. \ No newline at end of file
diff --git a/LICENSE.GPL3 b/LICENSE.GPL3
new file mode 100644
index 0000000..13e6f18
--- /dev/null
+++ b/LICENSE.GPL3
@@ -0,0 +1,696 @@
+ GNU GENERAL PUBLIC LICENSE
+
+ The Qt GUI Toolkit is Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ Contact: Qt Software Information (qt-info@nokia.com)
+
+ You may use, distribute and copy the Qt GUI Toolkit under the terms of
+ GNU General Public License version 3, which is displayed below.
+
+-------------------------------------------------------------------------
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+
+-------------------------------------------------------------------------
+
+In addition, as a special exception, Nokia gives permission to link the
+code of its release of Qt with the OpenSSL project's "OpenSSL" library (or
+modified versions of it that use the same license as the "OpenSSL"
+library), and distribute the linked executables. You must comply with the
+GNU General Public License versions 2.0 or 3.0 in all respects for all of
+the code used other than the "OpenSSL" code. If you modify this file, you
+may extend this exception to your version of the file, but you are not
+obligated to do so. If you do not wish to do so, delete this exception
+statement from your version of this file.
diff --git a/LICENSE.LGPL b/LICENSE.LGPL
new file mode 100644
index 0000000..bb95f25
--- /dev/null
+++ b/LICENSE.LGPL
@@ -0,0 +1,514 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+
+ The Qt GUI Toolkit is Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ Contact: Qt Software Information (qt-info@nokia.com)
+
+ You may use, distribute and copy the Qt GUI Toolkit under the terms of
+ GNU Lesser General Public License version 2.1, which is displayed below.
+
+-------------------------------------------------------------------------
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/LICENSE.PREVIEW.COMMERCIAL b/LICENSE.PREVIEW.COMMERCIAL
new file mode 100644
index 0000000..7f7b234
--- /dev/null
+++ b/LICENSE.PREVIEW.COMMERCIAL
@@ -0,0 +1,642 @@
+TECHNOLOGY PREVIEW LICENSE AGREEMENT
+
+For individuals and/or legal entities resident in the Americas (North
+America, Central America and South America), the applicable licensing
+terms are specified under the heading "Technology Preview License
+Agreement: The Americas".
+
+For individuals and/or legal entities not resident in The Americas,
+the applicable licensing terms are specified under the heading
+"Technology Preview License Agreement: Rest of the World".
+
+
+TECHNOLOGY PREVIEW LICENSE AGREEMENT: The Americas
+Agreement version 2.3
+
+This Technology Preview License Agreement ("Agreement") is a legal
+agreement between Nokia Inc. ("Nokia"), with its registered office at
+6021 Connection Drive, Irving, TX 75039, U.S.A. and you (either an
+individual or a legal entity) ("Licensee") for the Licensed Software
+(as defined below).
+
+
+1. DEFINITIONS
+
+"Affiliate" of a Party shall mean an entity (i) which is directly or
+indirectly controlling such Party; (ii) which is under the same direct
+or indirect ownership or control as such Party; or (iii) which is
+directly or indirectly owned or controlled by such Party. For these
+purposes, an entity shall be treated as being controlled by another if
+that other entity has fifty percent (50 %) or more of the votes in
+such entity, is able to direct its affairs and/or to control the
+composition of its board of directors or equivalent body.
+
+"Term" shall mean the period of time six (6) months from the later of
+(a) the Effective Date; or (b) the date the Licensed Software was
+initially delivered to Licensee by Nokia. If no specific Effective
+Date is set forth in the Agreement, the Effective Date shall be deemed
+to be the date the Licensed Software was initially delivered to
+Licensee.
+
+"Licensed Software" shall mean the computer software, "online" or
+electronic documentation, associated media and printed materials,
+including the source code, example programs and the documentation
+delivered by Nokia to Licensee in conjunction with this Agreement.
+
+"Party" or "Parties" shall mean Licensee and/or Nokia.
+
+
+2. OWNERSHIP
+
+The Licensed Software is protected by copyright laws and international
+copyright treaties, as well as other intellectual property laws and
+treaties. The Licensed Software is licensed, not sold.
+
+If Licensee provides any findings, proposals, suggestions or other
+feedback ("Feedback") to Nokia regarding the Licensed Software, Nokia
+shall own all right, title and interest including the intellectual
+property rights in and to such Feedback, excluding however any
+existing patent rights of Licensee. To the extent Licensee owns or
+controls any patents for such Feedback Licensee hereby grants to Nokia
+and its Affiliates, a worldwide, perpetual, non-transferable,
+sublicensable, royalty-free license to (i) use, copy and modify
+Feedback and to create derivative works thereof, (ii) to make (and
+have made), use, import, sell, offer for sale, lease, dispose, offer
+for disposal or otherwise exploit any products or services of Nokia
+containing Feedback,, and (iii) sublicense all the foregoing rights to
+third party licensees and customers of Nokia and/or its Affiliates.
+
+
+3. VALIDITY OF THE AGREEMENT
+
+By installing, copying, or otherwise using the Licensed Software,
+Licensee agrees to be bound by the terms of this Agreement. If
+Licensee does not agree to the terms of this Agreement, Licensee may
+not install, copy, or otherwise use the Licensed Software. Upon
+Licensee's acceptance of the terms and conditions of this Agreement,
+Nokia grants Licensee the right to use the Licensed Software in the
+manner provided below.
+
+
+4. LICENSES
+
+4.1 Using and Copying
+
+Nokia grants to Licensee a non-exclusive, non-transferable,
+time-limited license to use and copy the Licensed Software for sole
+purpose of evaluating and testing the Licensed Software during the
+Term.
+
+Licensee may install copies of the Licensed Software on an unlimited
+number of computers provided that (a) if an individual, only such
+individual; or (b) if a legal entity only its employees; use the
+Licensed Software for the authorized purposes.
+
+4.2 No Distribution or Modifications
+
+Licensee may not disclose, modify, sell, market, commercialise,
+distribute, loan, rent, lease, or license the Licensed Software or any
+copy of it or use the Licensed Software for any purpose that is not
+expressly granted in this Section 4. Licensee may not alter or remove
+any details of ownership, copyright, trademark or other property right
+connected with the Licensed Software. Licensee may not distribute any
+software statically or dynamically linked with the Licensed Software.
+
+4.3 No Technical Support
+
+Nokia has no obligation to furnish Licensee with any technical support
+whatsoever. Any such support is subject to separate agreement between
+the Parties.
+
+
+5. PRE-RELEASE CODE
+
+The Licensed Software contains pre-release code that is not at the
+level of performance and compatibility of a final, generally
+available, product offering. The Licensed Software may not operate
+correctly and may be substantially modified prior to the first
+commercial product release, if any. Nokia is not obligated to make
+this or any later version of the Licensed Software commercially
+available. The License Software is "Not for Commercial Use" and may
+only be used for the purposes described in Section 4. The Licensed
+Software may not be used in a live operating environment where it may
+be relied upon to perform in the same manner as a commercially
+released product or with data that has not been sufficiently backed
+up.
+
+
+6. THIRD PARTY SOFTWARE
+
+The Licensed Software may provide links to third party libraries or
+code (collectively "Third Party Software") to implement various
+functions. Third Party Software does not comprise part of the
+Licensed Software. In some cases, access to Third Party Software may
+be included along with the Licensed Software delivery as a convenience
+for development and testing only. Such source code and libraries may
+be listed in the ".../src/3rdparty" source tree delivered with the
+Licensed Software or documented in the Licensed Software where the
+Third Party Software is used, as may be amended from time to time, do
+not comprise the Licensed Software. Licensee acknowledges (1) that
+some part of Third Party Software may require additional licensing of
+copyright and patents from the owners of such, and (2) that
+distribution of any of the Licensed Software referencing any portion
+of a Third Party Software may require appropriate licensing from such
+third parties.
+
+
+7. LIMITED WARRANTY AND WARRANTY DISCLAIMER
+
+The Licensed Software is licensed to Licensee "as is". To the maximum
+extent permitted by applicable law, Nokia on behalf of itself and its
+suppliers, disclaims all warranties and conditions, either express or
+implied, including, but not limited to, implied warranties of
+merchantability, fitness for a particular purpose, title and
+non-infringement with regard to the Licensed Software.
+
+
+8. LIMITATION OF LIABILITY
+
+If, Nokia's warranty disclaimer notwithstanding, Nokia is held liable
+to Licensee, whether in contract, tort or any other legal theory,
+based on the Licensed Software, Nokia's entire liability to Licensee
+and Licensee's exclusive remedy shall be, at Nokia's option, either
+(A) return of the price Licensee paid for the Licensed Software, or
+(B) repair or replacement of the Licensed Software, provided Licensee
+returns to Nokia all copies of the Licensed Software as originally
+delivered to Licensee. Nokia shall not under any circumstances be
+liable to Licensee based on failure of the Licensed Software if the
+failure resulted from accident, abuse or misapplication, nor shall
+Nokia under any circumstances be liable for special damages, punitive
+or exemplary damages, damages for loss of profits or interruption of
+business or for loss or corruption of data. Any award of damages from
+Nokia to Licensee shall not exceed the total amount Licensee has paid
+to Nokia in connection with this Agreement.
+
+
+9. CONFIDENTIALITY
+
+Each party acknowledges that during the Term of this Agreement it
+shall have access to information about the other party's business,
+business methods, business plans, customers, business relations,
+technology, and other information, including the terms of this
+Agreement, that is confidential and of great value to the other party,
+and the value of which would be significantly reduced if disclosed to
+third parties (the "Confidential Information"). Accordingly, when a
+party (the "Receiving Party") receives Confidential Information from
+another party (the "Disclosing Party"), the Receiving Party shall, and
+shall obligate its employees and agents and employees and agents of
+its Affiliates to: (i) maintain the Confidential Information in strict
+confidence; (ii) not disclose the Confidential Information to a third
+party without the Disclosing Party's prior written approval; and (iii)
+not, directly or indirectly, use the Confidential Information for any
+purpose other than for exercising its rights and fulfilling its
+responsibilities pursuant to this Agreement. Each party shall take
+reasonable measures to protect the Confidential Information of the
+other party, which measures shall not be less than the measures taken
+by such party to protect its own confidential and proprietary
+information.
+
+"Confidential Information" shall not include information that (a) is
+or becomes generally known to the public through no act or omission of
+the Receiving Party; (b) was in the Receiving Party's lawful
+possession prior to the disclosure hereunder and was not subject to
+limitations on disclosure or use; (c) is developed by the Receiving
+Party without access to the Confidential Information of the Disclosing
+Party or by persons who have not had access to the Confidential
+Information of the Disclosing Party as proven by the written records
+of the Receiving Party; (d) is lawfully disclosed to the Receiving
+Party without restrictions, by a third party not under an obligation
+of confidentiality; or (e) the Receiving Party is legally compelled to
+disclose the information, in which case the Receiving Party shall
+assert the privileged and confidential nature of the information and
+cooperate fully with the Disclosing Party to protect against and
+prevent disclosure of any Confidential Information and to limit the
+scope of disclosure and the dissemination of disclosed Confidential
+Information by all legally available means.
+
+The obligations of the Receiving Party under this Section shall
+continue during the Initial Term and for a period of five (5) years
+after expiration or termination of this Agreement. To the extent that
+the terms of the Non-Disclosure Agreement between Nokia and Licensee
+conflict with the terms of this Section 8, this Section 8 shall be
+controlling over the terms of the Non-Disclosure Agreement.
+
+
+10. GENERAL PROVISIONS
+
+10.1 No Assignment
+
+Licensee shall not be entitled to assign or transfer all or any of its
+rights, benefits and obligations under this Agreement without the
+prior written consent of Nokia, which shall not be unreasonably
+withheld.
+
+10.2 Termination
+
+Nokia may terminate the Agreement at any time immediately upon written
+notice by Nokia to Licensee if Licensee breaches this Agreement.
+
+Upon termination of this Agreement, Licensee shall return to Nokia all
+copies of Licensed Software that were supplied by Nokia. All other
+copies of Licensed Software in the possession or control of Licensee
+must be erased or destroyed. An officer of Licensee must promptly
+deliver to Nokia a written confirmation that this has occurred.
+
+10.3 Surviving Sections
+
+Any terms and conditions that by their nature or otherwise reasonably
+should survive a cancellation or termination of this Agreement shall
+also be deemed to survive. Such terms and conditions include, but are
+not limited to the following Sections: 2, 5, 6, 7, 8, 9, 10.2, 10.3,
+10.4, 10.5, 10.6, 10.7, and 10.8 of this Agreement.
+
+10.4 Entire Agreement
+
+This Agreement constitutes the complete agreement between the parties
+and supersedes all prior or contemporaneous discussions,
+representations, and proposals, written or oral, with respect to the
+subject matters discussed herein, with the exception of the
+non-disclosure agreement executed by the parties in connection with
+this Agreement ("Non-Disclosure Agreement"), if any, shall be subject
+to Section 8. No modification of this Agreement shall be effective
+unless contained in a writing executed by an authorized representative
+of each party. No term or condition contained in Licensee's purchase
+order shall apply unless expressly accepted by Nokia in writing. If
+any provision of the Agreement is found void or unenforceable, the
+remainder shall remain valid and enforceable according to its
+terms. If any remedy provided is determined to have failed for its
+essential purpose, all limitations of liability and exclusions of
+damages set forth in this Agreement shall remain in effect.
+
+10.5 Export Control
+
+Licensee acknowledges that the Licensed Software may be subject to
+export control restrictions of various countries. Licensee shall fully
+comply with all applicable export license restrictions and
+requirements as well as with all laws and regulations relating to the
+importation of the Licensed Software and shall procure all necessary
+governmental authorizations, including without limitation, all
+necessary licenses, approvals, permissions or consents, where
+necessary for the re-exportation of the Licensed Software.,
+
+10.6 Governing Law and Legal Venue
+
+This Agreement shall be governed by and construed in accordance with
+the federal laws of the United States of America and the internal laws
+of the State of New York without given effect to any choice of law
+rule that would result in the application of the laws of any other
+jurisdiction. The United Nations Convention on Contracts for the
+International Sale of Goods (CISG) shall not apply. Each Party (a)
+hereby irrevocably submits itself to and consents to the jurisdiction
+of the United States District Court for the Southern District of New
+York (or if such court lacks jurisdiction, the state courts of the
+State of New York) for the purposes of any action, claim, suit or
+proceeding between the Parties in connection with any controversy,
+claim, or dispute arising out of or relating to this Agreement; and
+(b) hereby waives, and agrees not to assert by way of motion, as a
+defense or otherwise, in any such action, claim, suit or proceeding,
+any claim that is not personally subject to the jurisdiction of such
+court(s), that the action, claim, suit or proceeding is brought in an
+inconvenient forum or that the venue of the action, claim, suit or
+proceeding is improper. Notwithstanding the foregoing, nothing in
+this Section 9.6 is intended to, or shall be deemed to, constitute a
+submission or consent to, or selection of, jurisdiction, forum or
+venue for any action for patent infringement, whether or not such
+action relates to this Agreement.
+
+10.7 No Implied License
+
+There are no implied licenses or other implied rights granted under
+this Agreement, and all rights, save for those expressly granted
+hereunder, shall remain with Nokia and its licensors. In addition, no
+licenses or immunities are granted to the combination of the Licensed
+Software with any other software or hardware not delivered by Nokia
+under this Agreement.
+
+10.8 Government End Users
+
+A "U.S. Government End User" shall mean any agency or entity of the
+government of the United States. The following shall apply if Licensee
+is a U.S. Government End User. The Licensed Software is a "commercial
+item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995),
+consisting of "commercial computer software" and "commercial computer
+software documentation," as such terms are used in 48 C.F.R. 12.212
+(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48
+C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government
+End Users acquire the Licensed Software with only those rights set
+forth herein. The Licensed Software (including related documentation)
+is provided to U.S. Government End Users: (a) only as a commercial
+end item; and (b) only pursuant to this Agreement.
+
+
+
+
+
+TECHNOLOGY PREVIEW LICENSE AGREEMENT: Rest of the World
+Agreement version 2.3
+
+This Technology Preview License Agreement ("Agreement") is a legal
+agreement between Nokia Corporation ("Nokia"), with its registered
+office at Keilalahdentie 4, 02150 Espoo, Finland and you (either an
+individual or a legal entity) ("Licensee") for the Licensed Software
+(as defined below).
+
+1. DEFINITIONS
+
+"Affiliate" of a Party shall mean an entity (i) which is directly or
+indirectly controlling such Party; (ii) which is under the same direct
+or indirect ownership or control as such Party; or (iii) which is
+directly or indirectly owned or controlled by such Party. For these
+purposes, an entity shall be treated as being controlled by another if
+that other entity has fifty percent (50 %) or more of the votes in
+such entity, is able to direct its affairs and/or to control the
+composition of its board of directors or equivalent body.
+
+"Term" shall mean the period of time six (6) months from the later of
+(a) the Effective Date; or (b) the date the Licensed Software was
+initially delivered to Licensee by Nokia. If no specific Effective
+Date is set forth in the Agreement, the Effective Date shall be deemed
+to be the date the Licensed Software was initially delivered to
+Licensee.
+
+"Licensed Software" shall mean the computer software, "online" or
+electronic documentation, associated media and printed materials,
+including the source code, example programs and the documentation
+delivered by Nokia to Licensee in conjunction with this Agreement.
+
+"Party" or "Parties" shall mean Licensee and/or Nokia.
+
+
+2. OWNERSHIP
+
+The Licensed Software is protected by copyright laws and international
+copyright treaties, as well as other intellectual property laws and
+treaties. The Licensed Software is licensed, not sold.
+
+If Licensee provides any findings, proposals, suggestions or other
+feedback ("Feedback") to Nokia regarding the Licensed Software, Nokia
+shall own all right, title and interest including the intellectual
+property rights in and to such Feedback, excluding however any
+existing patent rights of Licensee. To the extent Licensee owns or
+controls any patents for such Feedback Licensee hereby grants to Nokia
+and its Affiliates, a worldwide, perpetual, non-transferable,
+sublicensable, royalty-free license to (i) use, copy and modify
+Feedback and to create derivative works thereof, (ii) to make (and
+have made), use, import, sell, offer for sale, lease, dispose, offer
+for disposal or otherwise exploit any products or services of Nokia
+containing Feedback,, and (iii) sublicense all the foregoing rights to
+third party licensees and customers of Nokia and/or its Affiliates.
+
+
+3. VALIDITY OF THE AGREEMENT
+
+By installing, copying, or otherwise using the Licensed Software,
+Licensee agrees to be bound by the terms of this Agreement. If
+Licensee does not agree to the terms of this Agreement, Licensee may
+not install, copy, or otherwise use the Licensed Software. Upon
+Licensee's acceptance of the terms and conditions of this Agreement,
+Nokia grants Licensee the right to use the Licensed Software in the
+manner provided below.
+
+
+4. LICENSES
+
+4.1 Using and Copying
+
+Nokia grants to Licensee a non-exclusive, non-transferable,
+time-limited license to use and copy the Licensed Software for sole
+purpose of evaluating and testing the Licensed Software during the
+Term.
+
+Licensee may install copies of the Licensed Software on an unlimited
+number of computers provided that (a) if an individual, only such
+individual; or (b) if a legal entity only its employees; use the
+Licensed Software for the authorized purposes.
+
+4.2 No Distribution or Modifications
+
+Licensee may not disclose, modify, sell, market, commercialise,
+distribute, loan, rent, lease, or license the Licensed Software or any
+copy of it or use the Licensed Software for any purpose that is not
+expressly granted in this Section 4. Licensee may not alter or remove
+any details of ownership, copyright, trademark or other property right
+connected with the Licensed Software. Licensee may not distribute any
+software statically or dynamically linked with the Licensed Software.
+
+4.3 No Technical Support
+
+Nokia has no obligation to furnish Licensee with any technical support
+whatsoever. Any such support is subject to separate agreement between
+the Parties.
+
+
+5. PRE-RELEASE CODE
+
+The Licensed Software contains pre-release code that is not at the
+level of performance and compatibility of a final, generally
+available, product offering. The Licensed Software may not operate
+correctly and may be substantially modified prior to the first
+commercial product release, if any. Nokia is not obligated to make
+this or any later version of the Licensed Software commercially
+available. The License Software is "Not for Commercial Use" and may
+only be used for the purposes described in Section 4. The Licensed
+Software may not be used in a live operating environment where it may
+be relied upon to perform in the same manner as a commercially
+released product or with data that has not been sufficiently backed
+up.
+
+
+6. THIRD PARTY SOFTWARE
+
+The Licensed Software may provide links to third party libraries or
+code (collectively "Third Party Software") to implement various
+functions. Third Party Software does not comprise part of the
+Licensed Software. In some cases, access to Third Party Software may
+be included along with the Licensed Software delivery as a convenience
+for development and testing only. Such source code and libraries may
+be listed in the ".../src/3rdparty" source tree delivered with the
+Licensed Software or documented in the Licensed Software where the
+Third Party Software is used, as may be amended from time to time, do
+not comprise the Licensed Software. Licensee acknowledges (1) that
+some part of Third Party Software may require additional licensing of
+copyright and patents from the owners of such, and (2) that
+distribution of any of the Licensed Software referencing any portion
+of a Third Party Software may require appropriate licensing from such
+third parties.
+
+
+7. LIMITED WARRANTY AND WARRANTY DISCLAIMER
+
+The Licensed Software is licensed to Licensee "as is". To the maximum
+extent permitted by applicable law, Nokia on behalf of itself and its
+suppliers, disclaims all warranties and conditions, either express or
+implied, including, but not limited to, implied warranties of
+merchantability, fitness for a particular purpose, title and
+non-infringement with regard to the Licensed Software.
+
+
+8. LIMITATION OF LIABILITY
+
+If, Nokia's warranty disclaimer notwithstanding, Nokia is held liable
+to Licensee, whether in contract, tort or any other legal theory,
+based on the Licensed Software, Nokia's entire liability to Licensee
+and Licensee's exclusive remedy shall be, at Nokia's option, either
+(A) return of the price Licensee paid for the Licensed Software, or
+(B) repair or replacement of the Licensed Software, provided Licensee
+returns to Nokia all copies of the Licensed Software as originally
+delivered to Licensee. Nokia shall not under any circumstances be
+liable to Licensee based on failure of the Licensed Software if the
+failure resulted from accident, abuse or misapplication, nor shall
+Nokia under any circumstances be liable for special damages, punitive
+or exemplary damages, damages for loss of profits or interruption of
+business or for loss or corruption of data. Any award of damages from
+Nokia to Licensee shall not exceed the total amount Licensee has paid
+to Nokia in connection with this Agreement.
+
+
+9. CONFIDENTIALITY
+
+Each party acknowledges that during the Term of this Agreement it
+shall have access to information about the other party's business,
+business methods, business plans, customers, business relations,
+technology, and other information, including the terms of this
+Agreement, that is confidential and of great value to the other party,
+and the value of which would be significantly reduced if disclosed to
+third parties (the "Confidential Information"). Accordingly, when a
+party (the "Receiving Party") receives Confidential Information from
+another party (the "Disclosing Party"), the Receiving Party shall, and
+shall obligate its employees and agents and employees and agents of
+its Affiliates to: (i) maintain the Confidential Information in strict
+confidence; (ii) not disclose the Confidential Information to a third
+party without the Disclosing Party's prior written approval; and (iii)
+not, directly or indirectly, use the Confidential Information for any
+purpose other than for exercising its rights and fulfilling its
+responsibilities pursuant to this Agreement. Each party shall take
+reasonable measures to protect the Confidential Information of the
+other party, which measures shall not be less than the measures taken
+by such party to protect its own confidential and proprietary
+information.
+
+"Confidential Information" shall not include information that (a) is
+or becomes generally known to the public through no act or omission of
+the Receiving Party; (b) was in the Receiving Party's lawful
+possession prior to the disclosure hereunder and was not subject to
+limitations on disclosure or use; (c) is developed by the Receiving
+Party without access to the Confidential Information of the Disclosing
+Party or by persons who have not had access to the Confidential
+Information of the Disclosing Party as proven by the written records
+of the Receiving Party; (d) is lawfully disclosed to the Receiving
+Party without restrictions, by a third party not under an obligation
+of confidentiality; or (e) the Receiving Party is legally compelled to
+disclose the information, in which case the Receiving Party shall
+assert the privileged and confidential nature of the information and
+cooperate fully with the Disclosing Party to protect against and
+prevent disclosure of any Confidential Information and to limit the
+scope of disclosure and the dissemination of disclosed Confidential
+Information by all legally available means.
+
+The obligations of the Receiving Party under this Section shall
+continue during the Initial Term and for a period of five (5) years
+after expiration or termination of this Agreement. To the extent that
+the terms of the Non-Disclosure Agreement between Nokia and Licensee
+conflict with the terms of this Section 8, this Section 8 shall be
+controlling over the terms of the Non-Disclosure Agreement.
+
+
+10. GENERAL PROVISIONS
+
+10.1 No Assignment
+
+Licensee shall not be entitled to assign or transfer all or any of its
+rights, benefits and obligations under this Agreement without the
+prior written consent of Nokia, which shall not be unreasonably
+withheld.
+
+10.2 Termination
+
+Nokia may terminate the Agreement at any time immediately upon written
+notice by Nokia to Licensee if Licensee breaches this Agreement.
+
+Upon termination of this Agreement, Licensee shall return to Nokia all
+copies of Licensed Software that were supplied by Nokia. All other
+copies of Licensed Software in the possession or control of Licensee
+must be erased or destroyed. An officer of Licensee must promptly
+deliver to Nokia a written confirmation that this has occurred.
+
+10.3 Surviving Sections
+
+Any terms and conditions that by their nature or otherwise reasonably
+should survive a cancellation or termination of this Agreement shall
+also be deemed to survive. Such terms and conditions include, but are
+not limited to the following Sections: 2, 5, 6, 7, 8, 9, 10.2, 10.3,
+10.4, 10.5, 10.6, 10.7, and 10.8 of this Agreement.
+
+10.4 Entire Agreement
+
+This Agreement constitutes the complete agreement between the parties
+and supersedes all prior or contemporaneous discussions,
+representations, and proposals, written or oral, with respect to the
+subject matters discussed herein, with the exception of the
+non-disclosure agreement executed by the parties in connection with
+this Agreement ("Non-Disclosure Agreement"), if any, shall be subject
+to Section 8. No modification of this Agreement shall be effective
+unless contained in a writing executed by an authorized representative
+of each party. No term or condition contained in Licensee's purchase
+order shall apply unless expressly accepted by Nokia in writing. If
+any provision of the Agreement is found void or unenforceable, the
+remainder shall remain valid and enforceable according to its
+terms. If any remedy provided is determined to have failed for its
+essential purpose, all limitations of liability and exclusions of
+damages set forth in this Agreement shall remain in effect.
+
+10.5 Export Control
+
+Licensee acknowledges that the Licensed Software may be subject to
+export control restrictions of various countries. Licensee shall fully
+comply with all applicable export license restrictions and
+requirements as well as with all laws and regulations relating to the
+importation of the Licensed Software and shall procure all necessary
+governmental authorizations, including without limitation, all
+necessary licenses, approvals, permissions or consents, where
+necessary for the re-exportation of the Licensed Software.,
+
+10.6 Governing Law and Legal Venue
+
+This Agreement shall be construed and interpreted in accordance with
+the laws of Finland, excluding its choice of law provisions. Any
+disputes arising out of or relating to this Agreement shall be
+resolved in arbitration under the Rules of Arbitration of the Chamber
+of Commerce of Helsinki, Finland. The arbitration tribunal shall
+consist of one (1), or if either Party so requires, of three (3),
+arbitrators. The award shall be final and binding and enforceable in
+any court of competent jurisdiction. The arbitration shall be held in
+Helsinki, Finland and the process shall be conducted in the English
+language.
+
+10.7 No Implied License
+
+There are no implied licenses or other implied rights granted under
+this Agreement, and all rights, save for those expressly granted
+hereunder, shall remain with Nokia and its licensors. In addition, no
+licenses or immunities are granted to the combination of the Licensed
+Software with any other software or hardware not delivered by Nokia
+under this Agreement.
+
+10.8 Government End Users
+
+A "U.S. Government End User" shall mean any agency or entity of the
+government of the United States. The following shall apply if Licensee
+is a U.S. Government End User. The Licensed Software is a "commercial
+item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995),
+consisting of "commercial computer software" and "commercial computer
+software documentation," as such terms are used in 48 C.F.R. 12.212
+(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48
+C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government
+End Users acquire the Licensed Software with only those rights set
+forth herein. The Licensed Software (including related documentation)
+is provided to U.S. Government End Users: (a) only as a commercial
+end item; and (b) only pursuant to this Agreement.
+
+
+
+
diff --git a/bin/findtr b/bin/findtr
new file mode 100755
index 0000000..7df3325
--- /dev/null
+++ b/bin/findtr
@@ -0,0 +1,189 @@
+#!/usr/bin/perl -w
+# vi:wrap:
+
+# See Qt I18N documentation for usage information.
+
+use POSIX qw(strftime);
+
+$projectid='PROJECT VERSION';
+$datetime = strftime "%Y-%m-%d %X %Z", localtime;
+$charset='iso-8859-1';
+$translator='FULLNAME <EMAIL@ADDRESS>';
+$revision_date='YYYY-MM-DD';
+
+$real_mark = "tr";
+$noop_mark = "QT_TR_NOOP";
+$scoped_mark = "qApp->translate";
+$noop_scoped_mark = "QT_TRANSLATE_NOOP";
+
+$header=
+'# This is a Qt message file in .po format. Each msgid starts with
+# a scope. This scope should *NOT* be translated - eg. translating
+# from French to English, "Foo::Bar" would be translated to "Pub",
+# not "Foo::Pub".
+msgid ""
+msgstr ""
+"Project-Id-Version: '.$projectid.'\n"
+"POT-Creation-Date: '.$datetime.'\n"
+"PO-Revision-Date: '.$revision_date.'\n"
+"Last-Translator: '.$translator.'\n"
+"Content-Type: text/plain; charset='.$charset.'\n"
+
+';
+
+
+
+
+$scope = "";
+
+if ( $#ARGV < 0 ) {
+ print STDERR "Usage: findtr sourcefile ... >project.po\n";
+ exit 1;
+}
+
+
+sub outmsg {
+ my ($file, $line, $scope, $msgid) = @_;
+ # unesc
+ $msgid =~ s/$esc:$esc:$esc/::/gs;
+ $msgid =~ s|$esc/$esc/$esc|//|gs;
+
+ # Remove blank lines
+ $msgid =~ s/\n\n+/\n/gs;
+ $msgid = "\"\"\n$msgid" if $msgid =~ /\n/s;
+ print "#: $file:$line\n";
+ $msgid =~ s/^"//; #"emacs bug
+ print "msgid \"${scope}::$msgid\n";
+ #print "msgstr \"$msgid\n";
+ print "msgstr \"\"\n";
+ print "\n";
+}
+
+sub justlines {
+ my $l = @_;
+ $l =~ tr|\n||dc;
+ return $l;
+}
+
+print $header;
+
+
+foreach $file ( @ARGV ) {
+ next unless open( I, "< $file" );
+
+ $source = join( "", <I> );
+
+ # Find esc. Avoid bad case 1/// -> 1/1/1/1 -> ///1
+ $esc = 1;
+ while ( $source =~ m!(?:$esc/$esc/$esc)|(?:$esc///)
+ |(?:$esc:$esc:$esc)|(?:$esc:\:\:)! ) {
+ $esc++;
+ }
+
+ # Hide quoted :: in practically all strings
+ $source =~ s/\"([^"\n]*)::([^"\n]*)\"/\"$1$esc:$esc:$esc$2\"/g;
+
+ # Hide quoted // in practically all strings
+ $source =~ s|\"([^"\n]*)//([^"\n]*)\"|\"$1$esc/$esc/$esc$2\"|g;
+
+
+ # strip comments -- does not handle "/*" in strings
+ while( $source =~ s|/\*(.*?)\*/|justlines($1)|ges ) { }
+ while( $source =~ s|//(.*?)\n|\n|g ) { }
+
+ while( $source =~ /
+ (?:
+ # Some doublequotes are "escaped" to help vim syntax highlight
+
+ # $1 = scope; $2 = parameters etc.
+ (?:
+ # Scoped function name ($1 is scope).
+ (\w+)::(?:\w+)
+ \s*
+ # Parameters etc up to open-curly - no semicolons
+ \(([^();]*)\)
+ \s*
+ (?:\{|:)
+ )
+ |
+ # $3 - one-argument msgid
+ (?:\b
+ # One of the marks
+ (?:$real_mark|$noop_mark)
+ \s*
+ # The parameter
+ \(\s*((?:"(?:[^"]|[^\\]\\")*"\s*)+)\)
+ )
+ |
+ # $4,$5 - two-argument msgid
+ (?:\b
+ # One of the scoped marks
+ (?:$scoped_mark|$noop_scoped_mark)
+ \s*
+ # The parameters
+ \(
+ # The scope parameter
+ \s*"([^\"]*)"
+ \s*,\s*
+ # The msgid parameter
+ \s*((?:\"(?:[^"]|[^\\]\\")*"\s*)+) #"emacs
+ \)
+ )
+ |
+ # $6,$7 - scoped one-argument msgid
+ (?:\b
+ # The scope
+ (\w+)::
+ # One of the marks
+ (?:$real_mark)
+ \s*
+ # The parameter
+ \(\s*((?:"(?:[^"]|[^\\]\\")*"\s*)+)\)
+ )
+ )/gsx )
+ {
+ @lines = split /^/m, "$`";
+ $line = @lines;
+ if ( defined( $1 ) ) {
+ if ( $scope ne $1 ) {
+ $sc=$1;
+ $etc=$2;
+ # remove strings
+ $etc =~ s/"(?:[^"]|[^\\]\\")"//g;
+ # count ( and )
+ @open = split /\(/m, $etc;
+ @close = split /\)/m, $etc;
+ if ( $#open == $#close ) {
+ $scope = $sc;
+ }
+ }
+ next;
+ }
+
+ if ( defined( $3 ) ) {
+ $this_scope = $scope;
+ $msgid = $3;
+ } elsif ( defined( $4 ) ) {
+ $this_scope = $4;
+ $msgid = $5;
+ } elsif ( defined( $6 ) ) {
+ $this_scope = $6;
+ $msgid = $7;
+ } else {
+ next;
+ }
+
+ $msgid =~ s/^\s*//;
+ $msgid =~ s/\s*$//;
+
+ # Might still be non-unique eg. tr("A" "B") vs. tr("A" "B").
+
+ $location{"${this_scope}::${msgid}"} = "$file:$line";
+ }
+}
+
+for $scoped_msgid ( sort keys %location ) {
+ ($scope,$msgid) = $scoped_msgid =~ m/([^:]*)::(.*)/s;
+ ($file,$line) = $location{$scoped_msgid} =~ m/([^:]*):(.*)/s;
+ outmsg($file,$line,$scope,$msgid);
+}
diff --git a/bin/setcepaths.bat b/bin/setcepaths.bat
new file mode 100755
index 0000000..5e04526
--- /dev/null
+++ b/bin/setcepaths.bat
@@ -0,0 +1,113 @@
+@echo off
+IF "%1" EQU "wincewm50pocket-msvc2005" (
+checksdk.exe -sdk "Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Windows Mobile 5.01 for Pocket PC selected, environment is set up
+) ELSE IF "%1" EQU "wincewm50smart-msvc2005" (
+checksdk.exe -sdk "Windows Mobile 5.0 Smartphone SDK (ARMV4I)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Windows Mobile 5.01 for Smartphone for arm selected, environment is set up
+) ELSE IF "%1" EQU "wince50standard-x86-msvc2005" (
+checksdk.exe -sdk "STANDARDSDK_500 (x86)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Standard SDK selected, environment is set up
+) ELSE IF "%1" EQU "wince50standard-armv4i-msvc2005" (
+checksdk.exe -sdk "STANDARDSDK_500 (ARMV4I)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Standard SDK for arm selected, environment is set up
+) ELSE IF "%1" EQU "wince50standard-mipsii-msvc2005" (
+checksdk.exe -sdk "STANDARDSDK_500 (MIPSII)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Standard SDK for mips-ii selected, environment is set up
+) ELSE IF "%1" EQU "wince50standard-mipsiv-msvc2005" (
+checksdk.exe -sdk "STANDARDSDK_500 (MIPSIV)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Standard SDK for mips-iv selected, environment is set up
+) ELSE IF "%1" EQU "wince50standard-sh4-msvc2005" (
+checksdk.exe -sdk "STANDARDSDK_500 (SH4)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Standard SDK for sh4 selected, environment is set up
+) ELSE IF "%1" EQU "wincewm60professional-msvc2005" (
+checksdk.exe -sdk "Windows Mobile 6 Professional SDK (ARMV4I)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Windows Mobile 6 Professional selected, environment is set up
+) ELSE IF "%1" EQU "wincewm60standard-msvc2005" (
+checksdk.exe -sdk "Windows Mobile 6 Standard SDK (ARMV4I)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Windows Mobile 6 Standard selected, environment is set up
+) ELSE IF "%1" EQU "wincewm50pocket-msvc2008" (
+checksdk.exe -sdk "Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Windows Mobile 5.01 for Pocket PC selected, environment is set up
+) ELSE IF "%1" EQU "wincewm50smart-msvc2008" (
+checksdk.exe -sdk "Windows Mobile 5.0 Smartphone SDK (ARMV4I)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Windows Mobile 5.01 for Smartphone for arm selected, environment is set up
+) ELSE IF "%1" EQU "wince50standard-x86-msvc2008" (
+checksdk.exe -sdk "STANDARDSDK_500 (x86)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Standard SDK selected, environment is set up
+) ELSE IF "%1" EQU "wince50standard-armv4i-msvc2008" (
+checksdk.exe -sdk "STANDARDSDK_500 (ARMV4I)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Standard SDK for arm selected, environment is set up
+) ELSE IF "%1" EQU "wince50standard-mipsii-msvc2008" (
+checksdk.exe -sdk "STANDARDSDK_500 (MIPSII)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Standard SDK for mips-ii selected, environment is set up
+) ELSE IF "%1" EQU "wince50standard-mipsiv-msvc2008" (
+checksdk.exe -sdk "STANDARDSDK_500 (MIPSIV)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Standard SDK for mips-iv selected, environment is set up
+) ELSE IF "%1" EQU "wince50standard-sh4-msvc2008" (
+checksdk.exe -sdk "STANDARDSDK_500 (SH4)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Standard SDK for sh4 selected, environment is set up
+) ELSE IF "%1" EQU "wincewm60professional-msvc2008" (
+checksdk.exe -sdk "Windows Mobile 6 Professional SDK (ARMV4I)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Windows Mobile 6 Professional selected, environment is set up
+) ELSE IF "%1" EQU "wincewm60standard-msvc2008" (
+checksdk.exe -sdk "Windows Mobile 6 Standard SDK (ARMV4I)" -script tmp_created_script_setup.bat 1>NUL
+tmp_created_script_setup.bat
+del tmp_created_script_setup.bat
+echo Windows Mobile 6 Standard selected, environment is set up
+) ELSE (
+echo no SDK to build Windows CE selected
+echo.
+echo Current choices are:
+echo wincewm50pocket-msvc2005 - SDK for Windows Mobile 5.01 PocketPC
+echo wincewm50smart-msvc2005 - SDK for Windows Mobile 5.01 Smartphone
+echo wince50standard-x86-msvc2005 - Build for the WinCE standard SDK 5.0
+echo with x86 platform preset
+echo wince50standard-armv4i-msvc2005 - Build for the WinCE standard SDK 5.0
+echo with armv4i platform preset
+echo wince50standard-mipsiv-msvc2005 - Build for the WinCE standard SDK 5.0
+echo with mips platform preset
+echo wince50standard-sh4-msvc2005 - Build for the WinCE standard SDK 5.0
+echo with sh4 platform preset
+echo wincewm60professional-msvc2005 - SDK for Windows Mobile 6 professional
+echo wincewm60standard-msvc2005 - SDK for Windows Mobile 6 Standard
+echo and the corresponding versions for msvc2008.
+echo.
+)
+
+
+
diff --git a/bin/syncqt b/bin/syncqt
new file mode 100755
index 0000000..7a9f1d3
--- /dev/null
+++ b/bin/syncqt
@@ -0,0 +1,1049 @@
+#!/usr/bin/perl -w
+######################################################################
+#
+# Synchronizes Qt header files - internal Trolltech tool.
+#
+# Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Contact: Qt Software Information (qt-info@nokia.com)
+#
+######################################################################
+
+# use packages -------------------------------------------------------
+use File::Basename;
+use File::Path;
+use Cwd;
+use Config;
+use strict;
+
+die "syncqt: QTDIR not defined" if ! $ENV{"QTDIR"}; # sanity check
+
+# global variables
+my $isunix = 0;
+my $basedir = $ENV{"QTDIR"};
+$basedir =~ s=\\=/=g;
+my %modules = ( # path to module name map
+ "QtGui" => "$basedir/src/gui",
+ "QtOpenGL" => "$basedir/src/opengl",
+ "QtCore" => "$basedir/src/corelib",
+ "QtXml" => "$basedir/src/xml",
+ "QtXmlPatterns" => "$basedir/src/xmlpatterns",
+ "QtSql" => "$basedir/src/sql",
+ "QtNetwork" => "$basedir/src/network",
+ "QtSvg" => "$basedir/src/svg",
+ "QtScript" => "$basedir/src/script",
+ "QtScriptTools" => "$basedir/src/scripttools",
+ "Qt3Support" => "$basedir/src/qt3support",
+ "ActiveQt" => "$basedir/src/activeqt/container;$basedir/src/activeqt/control;$basedir/src/activeqt/shared",
+ "QtTest" => "$basedir/src/testlib",
+ "QtAssistant" => "$basedir/tools/assistant/compat/lib",
+ "QtHelp" => "$basedir/tools/assistant/lib",
+ "QtDesigner" => "$basedir/tools/designer/src/lib",
+ "QtUiTools" => "$basedir/tools/designer/src/uitools",
+ "QtDBus" => "$basedir/src/dbus",
+ "QtWebKit" => "$basedir/src/3rdparty/webkit/WebCore",
+ "phonon" => "$basedir/src/phonon",
+);
+my %moduleheaders = ( # restrict the module headers to those found in relative path
+ "QtWebKit" => "../WebKit/qt/Api",
+ "phonon" => "../3rdparty/phonon/phonon",
+);
+
+#$modules{"QtCore"} .= ";$basedir/mkspecs/" . $ENV{"MKSPEC"} if defined $ENV{"MKSPEC"};
+
+# global variables (modified by options)
+my $module = 0;
+my $showonly = 0;
+my $remove_stale = 1;
+my $force_win = 0;
+my $force_relative = 0;
+my $check_includes = 0;
+my $copy_headers = 0;
+my @modules_to_sync ;
+$force_relative = 1 if ( -d "/System/Library/Frameworks" );
+my $out_basedir = $basedir;
+$out_basedir =~ s=\\=/=g;
+
+# functions ----------------------------------------------------------
+
+######################################################################
+# Syntax: showUsage()
+# Params: -none-
+#
+# Purpose: Show the usage of the script.
+# Returns: -none-
+######################################################################
+sub showUsage
+{
+ print "$0 usage:\n";
+ print " -copy Copy headers instead of include-fwd(default: " . ($copy_headers ? "yes" : "no") . ")\n";
+ print " -remove-stale Removes stale headers (default: " . ($remove_stale ? "yes" : "no") . ")\n";
+ print " -relative Force relative symlinks (default: " . ($force_relative ? "yes" : "no") . ")\n";
+ print " -windows Force platform to Windows (default: " . ($force_win ? "yes" : "no") . ")\n";
+ print " -showonly Show action but not perform (default: " . ($showonly ? "yes" : "no") . ")\n";
+ print " -outdir <PATH> Specify output directory for sync (default: $out_basedir)\n";
+ print " -help This help\n";
+ exit 0;
+}
+
+######################################################################
+# Syntax: checkUnix()
+# Params: -none-
+#
+# Purpose: Check if script runs on a Unix system or not. Cygwin
+# systems are _not_ detected as Unix systems.
+# Returns: 1 if a unix system, else 0.
+######################################################################
+sub checkUnix {
+ my ($r) = 0;
+ if ( $force_win != 0) {
+ return 0;
+ } elsif ( -f "/bin/uname" ) {
+ $r = 1;
+ (-f "\\bin\\uname") && ($r = 0);
+ } elsif ( -f "/usr/bin/uname" ) {
+ $r = 1;
+ (-f "\\usr\\bin\\uname") && ($r = 0);
+ }
+ if($r) {
+ $_ = $Config{'osname'};
+ $r = 0 if( /(ms)|(cyg)win/i );
+ }
+ return $r;
+}
+
+sub checkRelative {
+ my ($dir) = @_;
+ return 0 if($dir =~ /^\//);
+ return 0 if(!checkUnix() && $dir =~ /[a-zA-Z]:[\/\\]/);
+ return 1;
+}
+
+######################################################################
+# Syntax: shouldMasterInclude(iheader)
+# Params: iheader, string, filename to verify inclusion
+#
+# Purpose: Determines if header should be in the master include file.
+# Returns: 0 if file contains "#pragma qt_no_master_include" or not
+# able to open, else 1.
+######################################################################
+sub shouldMasterInclude {
+ my ($iheader) = @_;
+ return 0 if(basename($iheader) =~ /_/);
+ return 0 if(basename($iheader) =~ /qconfig/);
+ if(open(F, "<$iheader")) {
+ while(<F>) {
+ chomp;
+ return 0 if(/^\#pragma qt_no_master_include$/);
+ }
+ close(F);
+ } else {
+ return 0;
+ }
+ return 1;
+}
+
+######################################################################
+# Syntax: classNames(iheader)
+# Params: iheader, string, filename to parse for classname "symlinks"
+#
+# Purpose: Scans through iheader to find all classnames that should be
+# synced into library's include structure.
+# Returns: List of all class names in a file.
+######################################################################
+sub classNames {
+ my @ret;
+ my ($iheader) = @_;
+ if(basename($iheader) eq "qglobal.h") {
+ push @ret, "QtGlobal";
+ } elsif(basename($iheader) eq "qendian.h") {
+ push @ret, "QtEndian";
+ } elsif(basename($iheader) eq "qconfig.h") {
+ push @ret, "QtConfig";
+ } elsif(basename($iheader) eq "qplugin.h") {
+ push @ret, "QtPlugin";
+ } elsif(basename($iheader) eq "qalgorithms.h") {
+ push @ret, "QtAlgorithms";
+ } elsif(basename($iheader) eq "qcontainerfwd.h") {
+ push @ret, "QtContainerFwd";
+ } elsif(basename($iheader) eq "qdebug.h") {
+ push @ret, "QtDebug";
+ } elsif(basename($iheader) eq "qevent.h") {
+ push @ret, "QtEvents";
+ } elsif(basename($iheader) eq "qnamespace.h") {
+ push @ret, "Qt"
+ } elsif(basename($iheader) eq "qssl.h") {
+ push @ret, "QSsl";
+ } elsif(basename($iheader) eq "qtest.h") {
+ push @ret, "QTest"
+ } elsif(basename($iheader) eq "qtconcurrentmap.h") {
+ push @ret, "QtConcurrentMap"
+ } elsif(basename($iheader) eq "qtconcurrentfilter.h") {
+ push @ret, "QtConcurrentFilter"
+ } elsif(basename($iheader) eq "qtconcurrentrun.h") {
+ push @ret, "QtConcurrentRun"
+ }
+
+ my $parsable = "";
+ if(open(F, "<$iheader")) {
+ while(<F>) {
+ my $line = $_;
+ chomp $line;
+ chop $line if ($line =~ /\r$/);
+ if($line =~ /^\#/) {
+ if($line =~ /\\$/) {
+ while($line = <F>) {
+ chomp $line;
+ last unless($line =~ /\\$/);
+ }
+ }
+ return @ret if($line =~ m/^#pragma qt_sync_stop_processing/);
+ push(@ret, "$1") if($line =~ m/^#pragma qt_class\(([^)]*)\)[\r\n]*$/);
+ $line = 0;
+ }
+ if($line) {
+ $line =~ s,//.*$,,; #remove c++ comments
+ $line .= ";" if($line =~ m/^Q_[A-Z_]*\(.*\)[\r\n]*$/); #qt macro
+ $line .= ";" if($line =~ m/^QT_(BEGIN|END)_HEADER[\r\n]*$/); #qt macro
+ $line .= ";" if($line =~ m/^QT_(BEGIN|END)_NAMESPACE[\r\n]*$/); #qt macro
+ $line .= ";" if($line =~ m/^QT_MODULE\(.*\)[\r\n]*$/); # QT_MODULE macro
+ $parsable .= " " . $line;
+ }
+ }
+ close(F);
+ }
+
+ my $last_definition = 0;
+ my @namespaces;
+ for(my $i = 0; $i < length($parsable); $i++) {
+ my $definition = 0;
+ my $character = substr($parsable, $i, 1);
+ if($character eq "/" && substr($parsable, $i+1, 1) eq "*") { #I parse like this for greedy reasons
+ for($i+=2; $i < length($parsable); $i++) {
+ my $end = substr($parsable, $i, 2);
+ if($end eq "*/") {
+ $last_definition = $i+2;
+ $i++;
+ last;
+ }
+ }
+ } elsif($character eq "{") {
+ my $brace_depth = 1;
+ my $block_start = $i + 1;
+ BLOCK: for($i+=1; $i < length($parsable); $i++) {
+ my $ignore = substr($parsable, $i, 1);
+ if($ignore eq "{") {
+ $brace_depth++;
+ } elsif($ignore eq "}") {
+ $brace_depth--;
+ unless($brace_depth) {
+ for(my $i2 = $i+1; $i2 < length($parsable); $i2++) {
+ my $end = substr($parsable, $i2, 1);
+ if($end eq ";" || $end ne " ") {
+ $definition = substr($parsable, $last_definition, $block_start - $last_definition) . "}";
+ $i = $i2 if($end eq ";");
+ $last_definition = $i + 1;
+ last BLOCK;
+ }
+ }
+ }
+ }
+ }
+ } elsif($character eq ";") {
+ $definition = substr($parsable, $last_definition, $i - $last_definition + 1);
+ $last_definition = $i + 1;
+ } elsif($character eq "}") {
+ # a naked } must be a namespace ending
+ # if it's not a namespace, it's eaten by the loop above
+ pop @namespaces;
+ $last_definition = $i + 1;
+ }
+
+ if (substr($parsable, $last_definition, $i - $last_definition + 1) =~ m/ namespace ([^ ]*) /
+ && substr($parsable, $i+1, 1) eq "{") {
+ push @namespaces, $1;
+
+ # Eat the opening { so that the condensing loop above doesn't see it
+ $i++;
+ $last_definition = $i + 1;
+ }
+
+ if($definition) {
+ $definition =~ s=[\n\r]==g;
+ my @symbols;
+ if($definition =~ m/^ *typedef *.*\(\*([^\)]*)\)\(.*\);$/) {
+ push @symbols, $1;
+ } elsif($definition =~ m/^ *typedef +(.*) +([^ ]*);$/) {
+ push @symbols, $2;
+ } elsif($definition =~ m/^ *(template *<.*> *)?(class|struct) +([^ ]* +)?([^<\s]+) ?(<[^>]*> ?)?\s*((,|:)\s*(public|protected|private) *.*)? *\{\}$/) {
+ push @symbols, $4;
+ } elsif($definition =~ m/^ *Q_DECLARE_.*ITERATOR\((.*)\);$/) {
+ push @symbols, "Q" . $1 . "Iterator";
+ push @symbols, "QMutable" . $1 . "Iterator";
+ }
+
+ foreach (@symbols) {
+ my $symbol = $_;
+ $symbol = (join("::", @namespaces) . "::" . $symbol) if (scalar @namespaces);
+ push @ret, $symbol
+ if ($symbol =~ /^Q[^:]*$/ # no-namespace, starting with Q
+ || $symbol =~ /^Phonon::/); # or in the Phonon namespace
+ }
+ }
+ }
+ return @ret;
+}
+
+######################################################################
+# Syntax: syncHeader(header, iheader, copy)
+# Params: header, string, filename to create "symlink" for
+# iheader, string, destination name of symlink
+# copy, forces header to be a copy of iheader
+#
+# Purpose: Syncronizes header to iheader
+# Returns: 1 if successful, else 0.
+######################################################################
+sub syncHeader {
+ my ($header, $iheader, $copy) = @_;
+ $iheader =~ s=\\=/=g;
+ $header =~ s=\\=/=g;
+ return copyFile($iheader, $header) if($copy);
+
+ my $iheader_no_basedir = $iheader;
+ $iheader_no_basedir =~ s,^$basedir/?,,;
+ unless(-e "$header") {
+ my $header_dir = dirname($header);
+ mkpath $header_dir, 0777;
+
+ #write it
+ my $iheader_out = fixPaths($iheader, $header_dir);
+ open HEADER, ">$header" || die "Could not open $header for writing!\n";
+ print HEADER "#include \"$iheader_out\"\n";
+ close HEADER;
+ return 1;
+ }
+ return 0;
+}
+
+######################################################################
+# Syntax: fixPaths(file, dir)
+# Params: file, string, filepath to be made relative to dir
+# dir, string, dirpath for point of origin
+#
+# Purpose: file is made relative (if possible) of dir.
+# Returns: String with the above applied conversion.
+######################################################################
+sub fixPaths {
+ my ($file, $dir) = @_;
+ $dir =~ s=^$basedir/=$out_basedir/= if(!($basedir eq $out_basedir));
+ $file =~ s=\\=/=g;
+ $file =~ s/\+/\\+/g;
+ $dir =~ s=\\=/=g;
+ $dir =~ s/\+/\\+/g;
+
+ #setup
+ my $ret = $file;
+ my $file_dir = dirname($file);
+ if($file_dir eq ".") {
+ $file_dir = getcwd();
+ $file_dir =~ s=\\=/=g;
+ }
+ $file_dir =~ s,/cygdrive/([a-zA-Z])/,$1:,g;
+ if($dir eq ".") {
+ $dir = getcwd();
+ $dir =~ s=\\=/=g;
+ }
+ $dir =~ s,/cygdrive/([a-zA-Z])/,$1:/,g;
+ return basename($file) if("$file_dir" eq "$dir");
+
+ #guts
+ my $match_dir = 0;
+ for(my $i = 1; $i < length($file_dir); $i++) {
+ my $slash = index($file_dir, "/", $i);
+ last if($slash == -1);
+ my $tmp = substr($file_dir, 0, $slash);
+ last unless($dir =~ m,^$tmp/,);
+ $match_dir = $tmp;
+ $i = $slash;
+ }
+ if($match_dir) {
+ my $after = substr($dir, length($match_dir));
+ my $count = ($after =~ tr,/,,);
+ my $dots = "";
+ for(my $i = 0; $i < $count; $i++) {
+ $dots .= "../";
+ }
+ $ret =~ s,^$match_dir,$dots,;
+ }
+ $ret =~ s,/+,/,g;
+ return $ret;
+}
+
+######################################################################
+# Syntax: fileContents(filename)
+# Params: filename, string, filename of file to return contents
+#
+# Purpose: Get the contents of a file.
+# Returns: String with contents of the file, or empty string if file
+# doens't exist.
+# Warning: Dies if it does exist but script cannot get read access.
+######################################################################
+sub fileContents {
+ my ($filename) = @_;
+ my $filecontents = "";
+ if (-e $filename) {
+ open(I, "< $filename") || die "Could not open $filename for reading, read block?";
+ local $/;
+ binmode I;
+ $filecontents = <I>;
+ close I;
+ }
+ return $filecontents;
+}
+
+######################################################################
+# Syntax: fileCompare(file1, file2)
+# Params: file1, string, filename of first file
+# file2, string, filename of second file
+#
+# Purpose: Determines if files are equal, and which one is newer.
+# Returns: 0 if files are equal no matter the timestamp, -1 if file1
+# is newer, 1 if file2 is newer.
+######################################################################
+sub fileCompare {
+ my ($file1, $file2) = @_;
+ my $file1contents = fileContents($file1);
+ my $file2contents = fileContents($file2);
+ if (! -e $file1) { return 1; }
+ if (! -e $file2) { return -1; }
+ return $file1contents ne $file2contents ? (stat("$file2"))[9] <=> (stat("$file1"))[9] : 0;
+}
+
+######################################################################
+# Syntax: copyFile(file, ifile)
+# Params: file, string, filename to create duplicate for
+# ifile, string, destination name of duplicate
+#
+# Purpose: Keeps files in sync so changes in the newer file will be
+# written to the other.
+# Returns: 1 if files were synced, else 0.
+# Warning: Dies if script cannot get write access.
+######################################################################
+sub copyFile
+{
+ my ($file,$ifile, $copy,$knowdiff,$filecontents,$ifilecontents) = @_;
+ # Bi-directional synchronization
+ open( I, "< " . $file ) || die "Could not open $file for reading";
+ local $/;
+ binmode I;
+ $filecontents = <I>;
+ close I;
+ if ( open(I, "< " . $ifile) ) {
+ local $/;
+ binmode I;
+ $ifilecontents = <I>;
+ close I;
+ $copy = fileCompare($file, $ifile);
+ $knowdiff = 0,
+ } else {
+ $copy = -1;
+ $knowdiff = 1;
+ }
+
+ if ( $knowdiff || ($filecontents ne $ifilecontents) ) {
+ if ( $copy > 0 ) {
+ my $file_dir = dirname($file);
+ mkpath $file_dir, 0777 unless(-e "$file_dir");
+ open(O, "> " . $file) || die "Could not open $file for writing (no write permission?)";
+ local $/;
+ binmode O;
+ print O $ifilecontents;
+ close O;
+ return 1;
+ } elsif ( $copy < 0 ) {
+ my $ifile_dir = dirname($ifile);
+ mkpath $ifile_dir, 0777 unless(-e "$ifile_dir");
+ open(O, "> " . $ifile) || die "Could not open $ifile for writing (no write permission?)";
+ local $/;
+ binmode O;
+ print O $filecontents;
+ close O;
+ return 1;
+ }
+ }
+ return 0;
+}
+
+######################################################################
+# Syntax: symlinkFile(file, ifile)
+# Params: file, string, filename to create "symlink" for
+# ifile, string, destination name of symlink
+#
+# Purpose: File is symlinked to ifile (or copied if filesystem doesn't
+# support symlink).
+# Returns: 1 on success, else 0.
+######################################################################
+sub symlinkFile
+{
+ my ($file,$ifile) = @_;
+
+ if ($isunix) {
+ print "symlink created for $file ";
+ if ( $force_relative && ($ifile =~ /^$basedir/)) {
+ my $t = getcwd();
+ my $c = -1;
+ my $p = "../";
+ $t =~ s-^$basedir/--;
+ $p .= "../" while( ($c = index( $t, "/", $c + 1)) != -1 );
+ $file =~ s-^$basedir/-$p-;
+ print " ($file)\n";
+ }
+ print "\n";
+ return symlink($file, $ifile);
+ }
+ return copyFile($file, $ifile);
+}
+
+######################################################################
+# Syntax: findFiles(dir, match, descend)
+# Params: dir, string, directory to search for name
+# match, string, regular expression to match in dir
+# descend, integer, 0 = non-recursive search
+# 1 = recurse search into subdirectories
+#
+# Purpose: Finds files matching a regular expression.
+# Returns: List of matching files.
+#
+# Examples:
+# findFiles("/usr","\.cpp$",1) - finds .cpp files in /usr and below
+# findFiles("/tmp","^#",0) - finds #* files in /tmp
+######################################################################
+sub findFiles {
+ my ($dir,$match,$descend) = @_;
+ my ($file,$p,@files);
+ local(*D);
+ $dir =~ s=\\=/=g;
+ ($dir eq "") && ($dir = ".");
+ if ( opendir(D,$dir) ) {
+ if ( $dir eq "." ) {
+ $dir = "";
+ } else {
+ ($dir =~ /\/$/) || ($dir .= "/");
+ }
+ foreach $file ( readdir(D) ) {
+ next if ( $file =~ /^\.\.?$/ );
+ $p = $file;
+ ($file =~ /$match/) && (push @files, $p);
+ if ( $descend && -d $p && ! -l $p ) {
+ push @files, &findFiles($p,$match,$descend);
+ }
+ }
+ closedir(D);
+ }
+ return @files;
+}
+
+# --------------------------------------------------------------------
+# "main" function
+# --------------------------------------------------------------------
+
+while ( @ARGV ) {
+ my $var = 0;
+ my $val = 0;
+
+ #parse
+ my $arg = shift @ARGV;
+ if ("$arg" eq "-h" || "$arg" eq "-help" || "$arg" eq "?") {
+ $var = "show_help";
+ $val = "yes";
+ } elsif("$arg" eq "-copy") {
+ $var = "copy";
+ $val = "yes";
+ } elsif("$arg" eq "-o" || "$arg" eq "-outdir") {
+ $var = "output";
+ $val = shift @ARGV;
+ } elsif("$arg" eq "-showonly" || "$arg" eq "-remove-stale" || "$arg" eq "-windows" ||
+ "$arg" eq "-relative" || "$arg" eq "-check-includes") {
+ $var = substr($arg, 1);
+ $val = "yes";
+ } elsif("$arg" =~ /^-no-(.*)$/) {
+ $var = $1;
+ $val = "no";
+ #these are for commandline compat
+ } elsif("$arg" eq "-inc") {
+ $var = "output";
+ $val = shift @ARGV;
+ } elsif("$arg" eq "-module") {
+ $var = "module";
+ $val = shift @ARGV;
+ } elsif("$arg" eq "-show") {
+ $var = "showonly";
+ $val = "yes";
+ } elsif("$arg" eq '*') {
+ # workaround for windows 9x where "%*" expands to "*"
+ $var = 1;
+ }
+
+ #do something
+ if(!$var || "$var" eq "show_help") {
+ print "Unknown option: $arg\n\n" if(!$var);
+ showUsage();
+ } elsif ("$var" eq "copy") {
+ if("$val" eq "yes") {
+ $copy_headers++;
+ } elsif($showonly) {
+ $copy_headers--;
+ }
+ } elsif ("$var" eq "showonly") {
+ if("$val" eq "yes") {
+ $showonly++;
+ } elsif($showonly) {
+ $showonly--;
+ }
+ } elsif ("$var" eq "check-includes") {
+ if("$val" eq "yes") {
+ $check_includes++;
+ } elsif($check_includes) {
+ $check_includes--;
+ }
+ } elsif ("$var" eq "remove-stale") {
+ if("$val" eq "yes") {
+ $remove_stale++;
+ } elsif($remove_stale) {
+ $remove_stale--;
+ }
+ } elsif ("$var" eq "windows") {
+ if("$val" eq "yes") {
+ $force_win++;
+ } elsif($force_win) {
+ $force_win--;
+ }
+ } elsif ("$var" eq "relative") {
+ if("$val" eq "yes") {
+ $force_relative++;
+ } elsif($force_relative) {
+ $force_relative--;
+ }
+ } elsif ("$var" eq "module") {
+ print "module :$val:\n";
+ die "No such module: $val" unless(defined $modules{$val});
+ push @modules_to_sync, $val;
+ } elsif ("$var" eq "output") {
+ my $outdir = $val;
+ if(checkRelative($outdir)) {
+ $out_basedir = getcwd();
+ chomp $out_basedir;
+ $out_basedir .= "/" . $outdir;
+ } else {
+ $out_basedir = $outdir;
+ }
+ # \ -> /
+ $out_basedir =~ s=\\=/=g;
+ }
+}
+@modules_to_sync = keys(%modules) if($#modules_to_sync == -1);
+
+$isunix = checkUnix; #cache checkUnix
+
+# create path
+mkpath "$out_basedir/include", 0777;
+
+my @ignore_headers = ();
+my $class_lib_map_contents = "";
+my @ignore_for_master_contents = ( "qt.h", "qpaintdevicedefs.h" );
+my @ignore_for_include_check = ( "qatomic.h" );
+my @ignore_for_qt_begin_header_check = ( "qiconset.h", "qconfig.h", "qconfig-dist.h", "qconfig-large.h", "qconfig-medium.h", "qconfig-minimal.h", "qconfig-small.h", "qfeatures.h", "qt_windows.h" );
+my @ignore_for_qt_begin_namespace_check = ( "qconfig.h", "qconfig-dist.h", "qconfig-large.h", "qconfig-medium.h", "qconfig-minimal.h", "qconfig-small.h", "qfeatures.h", "qatomic_arch.h", "qatomic_windowsce.h", "qt_windows.h", "qatomic_macosx.h" );
+my @ignore_for_qt_module_check = ( "$modules{QtCore}/arch", "$modules{QtCore}/global", "$modules{QtSql}/drivers", "$modules{QtTest}", "$modules{QtAssistant}", "$modules{QtDesigner}", "$modules{QtUiTools}", "$modules{QtDBus}", "$modules{phonon}" );
+
+foreach (@modules_to_sync) {
+ #iteration info
+ my $lib = $_;
+ my $dir = "$modules{$lib}";
+ my $pathtoheaders = "";
+ $pathtoheaders = "$moduleheaders{$lib}" if ($moduleheaders{$lib});
+
+ #information used after the syncing
+ my $pri_install_classes = "";
+ my $pri_install_files = "";
+
+ my $libcapitals = $lib;
+ $libcapitals =~ y/a-z/A-Z/;
+ my $master_contents = "#ifndef QT_".$libcapitals."_MODULE_H\n#define QT_".$libcapitals."_MODULE_H\n";
+
+ #get dependencies
+ if(-e "$dir/" . basename($dir) . ".pro") {
+ if(open(F, "<$dir/" . basename($dir) . ".pro")) {
+ while(<F>) {
+ my $line = $_;
+ chomp $line;
+ if($line =~ /^ *QT *\+?= *([^\r\n]*)/) {
+ foreach(split(/ /, "$1")) {
+ $master_contents .= "#include <QtCore/QtCore>\n" if("$_" eq "core");
+ $master_contents .= "#include <QtGui/QtGui>\n" if("$_" eq "gui");
+ $master_contents .= "#include <QtNetwork/QtNetwork>\n" if("$_" eq "network");
+ $master_contents .= "#include <QtSvg/QtSvg>\n" if("$_" eq "svg");
+ $master_contents .= "#include <QtScript/QtScript>\n" if("$_" eq "script");
+ $master_contents .= "#include <QtScriptTools/QtScriptTools>\n" if("$_" eq "scripttools");
+ $master_contents .= "#include <Qt3Support/Qt3Support>\n" if("$_" eq "qt3support");
+ $master_contents .= "#include <QtSql/QtSql>\n" if("$_" eq "sql");
+ $master_contents .= "#include <QtXml/QtXml>\n" if("$_" eq "xml");
+ $master_contents .= "#include <QtXmlPatterns/QtXmlPatterns>\n" if("$_" eq "xmlpatterns");
+ $master_contents .= "#include <QtOpenGL/QtOpenGL>\n" if("$_" eq "opengl");
+ }
+ }
+ }
+ close(F);
+ }
+ }
+
+ #remove the old files
+ if($remove_stale) {
+ my @subdirs = ("$out_basedir/include/$lib");
+ foreach (@subdirs) {
+ my $subdir = "$_";
+ if (opendir DIR, "$subdir") {
+ while(my $t = readdir(DIR)) {
+ my $file = "$subdir/$t";
+ if(-d "$file") {
+ push @subdirs, "$file" unless($t eq "." || $t eq "..");
+ } else {
+ my @files = ("$file");
+ #push @files, "$out_basedir/include/Qt/$t" if(-e "$out_basedir/include/Qt/$t");
+ foreach (@files) {
+ my $file = $_;
+ my $remove_file = 0;
+ if(open(F, "<$file")) {
+ while(<F>) {
+ my $line = $_;
+ chomp $line;
+ if($line =~ /^\#include \"([^\"]*)\"$/) {
+ my $include = $1;
+ $include = $subdir . "/" . $include unless(substr($include, 0, 1) eq "/");
+ $remove_file = 1 unless(-e "$include");
+ } else {
+ $remove_file = 0;
+ last;
+ }
+ }
+ close(F);
+ unlink "$file" if($remove_file);
+ }
+ }
+ }
+ }
+ closedir DIR;
+ }
+
+ }
+ }
+
+ #create the new ones
+ foreach (split(/;/, $dir)) {
+ my $current_dir = "$_";
+ my $headers_dir = $current_dir;
+ $headers_dir .= "/$pathtoheaders" if ($pathtoheaders);
+ #calc subdirs
+ my @subdirs = ($headers_dir);
+ foreach (@subdirs) {
+ my $subdir = "$_";
+ opendir DIR, "$subdir" or next;
+ while(my $t = readdir(DIR)) {
+ push @subdirs, "$subdir/$t" if(-d "$subdir/$t" && !($t eq ".") &&
+ !($t eq "..") && !($t eq ".obj") &&
+ !($t eq ".moc") && !($t eq ".rcc") &&
+ !($t eq ".uic") && !($t eq "build"));
+ }
+ closedir DIR;
+ }
+
+ #calc files and "copy" them
+ foreach (@subdirs) {
+ my $subdir = "$_";
+ my @headers = findFiles("$subdir", "^[-a-z0-9_]*\\.h\$" , 0);
+ foreach (@headers) {
+ my $header = "$_";
+ $header = 0 if("$header" =~ /^ui_.*.h/);
+ foreach (@ignore_headers) {
+ $header = 0 if("$header" eq "$_");
+ }
+ if($header) {
+ my $header_copies = 0;
+ #figure out if it is a public header
+ my $public_header = $header;
+ if($public_header =~ /_p.h$/ || $public_header =~ /_pch.h$/) {
+ $public_header = 0;
+ } else {
+ foreach (@ignore_for_master_contents) {
+ $public_header = 0 if("$header" eq "$_");
+ }
+ }
+
+ my $iheader = $subdir . "/" . $header;
+ my @classes = $public_header ? classNames($iheader) : ();
+ if($showonly) {
+ print "$header [$lib]\n";
+ foreach(@classes) {
+ print "SYMBOL: $_\n";
+ }
+ } else {
+ #find out all the places it goes..
+ my @headers;
+ if ($public_header) {
+ @headers = ( "$out_basedir/include/$lib/$header" );
+ push @headers, "$out_basedir/include/Qt/$header"
+ if ("$lib" ne "phonon" && "$subdir" =~ /^$basedir\/src/);
+
+ foreach(@classes) {
+ my $header_base = basename($header);
+ my $class = $_;
+ if ($class =~ m/::/) {
+ $class =~ s,::,/,g;
+ $class = "../" . $class;
+ }
+ $class_lib_map_contents .= "QT_CLASS_LIB($_, $lib, $header_base)\n";
+ $header_copies++ if(syncHeader("$out_basedir/include/$lib/$class", $header, 0));
+ }
+ } else {
+ @headers = ( "$out_basedir/include/$lib/private/$header" );
+ push @headers, "$out_basedir/include/Qt/private/$header"
+ if ("$lib" ne "phonon");
+ }
+ foreach(@headers) { #sync them
+ $header_copies++ if(syncHeader($_, $iheader, $copy_headers));
+ }
+
+ if($public_header) {
+ #put it into the master file
+ $master_contents .= "#include \"$public_header\"\n" if(shouldMasterInclude($iheader));
+
+ #deal with the install directives
+ if($public_header) {
+ my $pri_install_iheader = fixPaths($iheader, $current_dir);
+ foreach(@classes) {
+ my $class = $_;
+ if ($class =~ m/::/) {
+ $class =~ s,::,/,g;
+ $class = "../" . $class;
+ }
+ my $class_header = fixPaths("$out_basedir/include/$lib/$class",
+ $current_dir) . " ";
+ $pri_install_classes .= $class_header
+ unless($pri_install_classes =~ $class_header);
+ }
+ $pri_install_files.= "$pri_install_iheader ";;
+ }
+ }
+ }
+ print "header created for $iheader ($header_copies)\n" if($header_copies > 0);
+ }
+ }
+ }
+ }
+
+ # close the master include:
+ $master_contents .= "#endif\n";
+
+ unless($showonly) {
+ #generate the "master" include file
+ my $master_include = "$out_basedir/include/$lib/$lib";
+ $pri_install_files .= fixPaths($master_include, "$modules{$lib}") . " "; #get the master file installed too
+ if(-e "$master_include") {
+ open MASTERINCLUDE, "<$master_include";
+ local $/;
+ binmode MASTERINCLUDE;
+ my $oldmaster = <MASTERINCLUDE>;
+ close MASTERINCLUDE;
+ $oldmaster =~ s/\r//g; # remove \r's , so comparison is ok on all platforms
+ $master_include = 0 if($oldmaster eq $master_contents);
+ }
+ if($master_include && $master_contents) {
+ my $master_dir = dirname($master_include);
+ mkpath $master_dir, 0777;
+ print "header (master) created for $lib\n";
+ open MASTERINCLUDE, ">$master_include";
+ print MASTERINCLUDE "$master_contents";
+ close MASTERINCLUDE;
+ }
+
+ #handle the headers.pri for each module
+ my $headers_pri_contents = "";
+ $headers_pri_contents .= "SYNCQT.HEADER_FILES = $pri_install_files\n";
+ $headers_pri_contents .= "SYNCQT.HEADER_CLASSES = $pri_install_classes\n";
+ my $headers_pri_file = "$out_basedir/include/$lib/headers.pri";
+ if(-e "$headers_pri_file") {
+ open HEADERS_PRI_FILE, "<$headers_pri_file";
+ local $/;
+ binmode HEADERS_PRI_FILE;
+ my $old_headers_pri_contents = <HEADERS_PRI_FILE>;
+ close HEADERS_PRI_FILE;
+ $old_headers_pri_contents =~ s/\r//g; # remove \r's , so comparison is ok on all platforms
+ $headers_pri_file = 0 if($old_headers_pri_contents eq $headers_pri_contents);
+ }
+ if($headers_pri_file && $master_contents) {
+ my $headers_pri_dir = dirname($headers_pri_file);
+ mkpath $headers_pri_dir, 0777;
+ print "headers.pri file created for $lib\n";
+ open HEADERS_PRI_FILE, ">$headers_pri_file";
+ print HEADERS_PRI_FILE "$headers_pri_contents";
+ close HEADERS_PRI_FILE;
+ }
+ }
+}
+unless($showonly) {
+ my $class_lib_map = "$out_basedir/src/tools/uic/qclass_lib_map.h";
+ if(-e "$class_lib_map") {
+ open CLASS_LIB_MAP, "<$class_lib_map";
+ local $/;
+ binmode CLASS_LIB_MAP;
+ my $old_class_lib_map_contents = <CLASS_LIB_MAP>;
+ close CLASS_LIB_MAP;
+ $old_class_lib_map_contents =~ s/\r//g; # remove \r's , so comparison is ok on all platforms
+ $class_lib_map = 0 if($old_class_lib_map_contents eq $class_lib_map_contents);
+ }
+ if($class_lib_map) {
+ my $class_lib_map_dir = dirname($class_lib_map);
+ mkpath $class_lib_map_dir, 0777;
+ open CLASS_LIB_MAP, ">$class_lib_map";
+ print CLASS_LIB_MAP "$class_lib_map_contents";
+ close CLASS_LIB_MAP;
+ }
+}
+
+if($check_includes) {
+ for (keys(%modules)) {
+ #iteration info
+ my $lib = $_;
+ my $dir = "$modules{$lib}";
+ foreach (split(/;/, $dir)) {
+ my $current_dir = "$_";
+ #calc subdirs
+ my @subdirs = ($current_dir);
+ foreach (@subdirs) {
+ my $subdir = "$_";
+ opendir DIR, "$subdir";
+ while(my $t = readdir(DIR)) {
+ push @subdirs, "$subdir/$t" if(-d "$subdir/$t" && !($t eq ".") &&
+ !($t eq "..") && !($t eq ".obj") &&
+ !($t eq ".moc") && !($t eq ".rcc") &&
+ !($t eq ".uic") && !($t eq "build"));
+ }
+ closedir DIR;
+ }
+
+ foreach (@subdirs) {
+ my $subdir = "$_";
+ my $header_skip_qt_module_test = 0;
+ foreach(@ignore_for_qt_module_check) {
+ foreach (split(/;/, $_)) {
+ $header_skip_qt_module_test = 1 if ("$subdir" =~ /^$_/);
+ }
+ }
+ my @headers = findFiles("$subdir", "^[-a-z0-9_]*\\.h\$" , 0);
+ foreach (@headers) {
+ my $header = "$_";
+ my $header_skip_qt_begin_header_test = 0;
+ my $header_skip_qt_begin_namespace_test = 0;
+ $header = 0 if("$header" =~ /^ui_.*.h/);
+ foreach (@ignore_headers) {
+ $header = 0 if("$header" eq "$_");
+ }
+ if($header) {
+ my $public_header = $header;
+ if($public_header =~ /_p.h$/ || $public_header =~ /_pch.h$/) {
+ $public_header = 0;
+ } else {
+ foreach (@ignore_for_master_contents) {
+ $public_header = 0 if("$header" eq "$_");
+ }
+ if($public_header) {
+ foreach (@ignore_for_include_check) {
+ $public_header = 0 if("$header" eq "$_");
+ }
+ foreach(@ignore_for_qt_begin_header_check) {
+ $header_skip_qt_begin_header_test = 1 if ("$header" eq "$_");
+ }
+ foreach(@ignore_for_qt_begin_namespace_check) {
+ $header_skip_qt_begin_namespace_test = 1 if ("$header" eq "$_");
+ }
+ }
+ }
+
+ my $iheader = $subdir . "/" . $header;
+ if($public_header) {
+ if(open(F, "<$iheader")) {
+ my $qt_module_found = 0;
+ my $qt_begin_header_found = 0;
+ my $qt_end_header_found = 0;
+ my $qt_begin_namespace_found = 0;
+ my $qt_end_namespace_found = 0;
+ my $line;
+ while($line = <F>) {
+ chomp $line;
+ my $output_line = 1;
+ if($line =~ /^ *\# *pragma (qt_no_included_check|qt_sync_stop_processing)/) {
+ last;
+ } elsif($line =~ /^ *\# *include/) {
+ my $include = $line;
+ if($line =~ /<.*>/) {
+ $include =~ s,.*<(.*)>.*,$1,;
+ } elsif($line =~ /".*"/) {
+ $include =~ s,.*"(.*)".*,$1,;
+ } else {
+ $include = 0;
+ }
+ if($include) {
+ for (keys(%modules)) {
+ my $trylib = $_;
+ if(-e "$out_basedir/include/$trylib/$include") {
+ print "WARNING: $iheader includes $include when it should include $trylib/$include\n";
+ }
+ }
+ }
+ } elsif ($header_skip_qt_begin_header_test == 0 and $line =~ /^QT_BEGIN_HEADER\s*$/) {
+ $qt_begin_header_found = 1;
+ } elsif ($header_skip_qt_begin_header_test == 0 and $line =~ /^QT_END_HEADER\s*$/) {
+ $qt_end_header_found = 1;
+ } elsif ($header_skip_qt_begin_namespace_test == 0 and $line =~ /^QT_BEGIN_NAMESPACE\s*$/) {
+ $qt_begin_namespace_found = 1;
+ } elsif ($header_skip_qt_begin_namespace_test == 0 and $line =~ /^QT_END_NAMESPACE\s*$/) {
+ $qt_end_namespace_found = 1;
+ } elsif ($header_skip_qt_module_test == 0 and $line =~ /^QT_MODULE\(.*\)\s*$/) {
+ $qt_module_found = 1;
+ }
+ }
+ if ($header_skip_qt_begin_header_test == 0) {
+ if ($qt_begin_header_found == 0) {
+ print "WARNING: $iheader does not include QT_BEGIN_HEADER\n";
+ }
+
+ if ($qt_begin_header_found && $qt_end_header_found == 0) {
+ print "WARNING: $iheader has QT_BEGIN_HEADER but no QT_END_HEADER\n";
+ }
+ }
+
+ if ($header_skip_qt_begin_namespace_test == 0) {
+ if ($qt_begin_namespace_found == 0) {
+ print "WARNING: $iheader does not include QT_BEGIN_NAMESPACE\n";
+ }
+
+ if ($qt_begin_namespace_found && $qt_end_namespace_found == 0) {
+ print "WARNING: $iheader has QT_BEGIN_NAMESPACE but no QT_END_NAMESPACE\n";
+ }
+ }
+
+ if ($header_skip_qt_module_test == 0) {
+ if ($qt_module_found == 0) {
+ print "WARNING: $iheader does not include QT_MODULE\n";
+ }
+ }
+ close(F);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+exit 0;
diff --git a/bin/syncqt.bat b/bin/syncqt.bat
new file mode 100755
index 0000000..579844f
--- /dev/null
+++ b/bin/syncqt.bat
@@ -0,0 +1,2 @@
+@rem ***** This assumes PERL is in the PATH *****
+@perl.exe -S syncqt %*
diff --git a/config.tests/mac/crc.test b/config.tests/mac/crc.test
new file mode 100755
index 0000000..1a16204
--- /dev/null
+++ b/config.tests/mac/crc.test
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+SUCCESS=no
+QMKSPEC=$1
+XPLATFORM=`basename "$1"`
+QMAKE_CONFIG=$2
+VERBOSE=$3
+SRCDIR=$4
+OUTDIR=$5
+TEST=$6
+EXE=`basename "$6"`
+ARG=$7
+shift 7
+LFLAGS=""
+INCLUDEPATH=""
+CXXFLAGS=""
+while [ "$#" -gt 0 ]; do
+ PARAM=$1
+ case $PARAM in
+ -framework)
+ LFLAGS="$LFLAGS -framework \"$2\""
+ shift
+ ;;
+ -F*|-m*|-x*)
+ LFLAGS="$LFLAGS $PARAM"
+ CXXFLAGS="$CXXFLAGS $PARAM"
+ ;;
+ -L*|-l*|-pthread)
+ LFLAGS="$LFLAGS $PARAM"
+ ;;
+ -I*)
+ INC=`echo $PARAM | sed -e 's/^-I//'`
+ INCLUDEPATH="$INCLUDEPATH $INC"
+ ;;
+ -f*|-D*)
+ CXXFLAGS="$CXXFLAGS $PARAM"
+ ;;
+ -Qoption)
+ # Two-argument form for the Sun Compiler
+ CXXFLAGS="$CXXFLAGS $PARAM \"$2\""
+ shift
+ ;;
+ *) ;;
+ esac
+ shift
+done
+
+# debuggery
+[ "$VERBOSE" = "yes" ] && echo "$DESCRIPTION auto-detection... ($*)"
+
+test -d "$OUTDIR/$TEST" || mkdir -p "$OUTDIR/$TEST"
+
+cd "$OUTDIR/$TEST"
+
+make distclean >/dev/null 2>&1
+"$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "LIBS*=$LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
+
+if [ "$VERBOSE" = "yes" ]; then
+ make
+else
+ make >/dev/null 2>&1
+fi
+
+
+if [ -x "$EXE" ]; then
+ foo=`$OUTDIR/$TEST/$EXE $ARG`
+ echo "$foo"
+else
+ echo "'CUTE'" #1129665605 # == 'CUTE'
+fi
+
diff --git a/config.tests/mac/crc/crc.pro b/config.tests/mac/crc/crc.pro
new file mode 100644
index 0000000..c3abf15
--- /dev/null
+++ b/config.tests/mac/crc/crc.pro
@@ -0,0 +1,2 @@
+SOURCES = main.cpp
+CONFIG -= app_bundle qt
diff --git a/config.tests/mac/crc/main.cpp b/config.tests/mac/crc/main.cpp
new file mode 100644
index 0000000..2ac10b3
--- /dev/null
+++ b/config.tests/mac/crc/main.cpp
@@ -0,0 +1,67 @@
+#include <iostream>
+#include <cstdlib>
+#include <cstring>
+
+
+class CCRC32
+{
+public:
+ CCRC32() { initialize(); }
+
+ unsigned long FullCRC(const unsigned char *sData, unsigned long ulDataLength)
+ {
+ unsigned long ulCRC = 0xffffffff;
+ PartialCRC(&ulCRC, sData, ulDataLength);
+ return(ulCRC ^ 0xffffffff);
+ }
+
+ void PartialCRC(unsigned long *ulCRC, const unsigned char *sData, unsigned long ulDataLength)
+ {
+ while(ulDataLength--) {
+ *ulCRC = (*ulCRC >> 8) ^ ulTable[(*ulCRC & 0xFF) ^ *sData++];
+ }
+ }
+
+private:
+ void initialize(void)
+ {
+ unsigned long ulPolynomial = 0x04C11DB7;
+ memset(&ulTable, 0, sizeof(ulTable));
+ for(int iCodes = 0; iCodes <= 0xFF; iCodes++) {
+ ulTable[iCodes] = Reflect(iCodes, 8) << 24;
+ for(int iPos = 0; iPos < 8; iPos++) {
+ ulTable[iCodes] = (ulTable[iCodes] << 1)
+ ^ ((ulTable[iCodes] & (1 << 31)) ? ulPolynomial : 0);
+ }
+
+ ulTable[iCodes] = Reflect(ulTable[iCodes], 32);
+ }
+ }
+ unsigned long Reflect(unsigned long ulReflect, const char cChar)
+ {
+ unsigned long ulValue = 0;
+ // Swap bit 0 for bit 7, bit 1 For bit 6, etc....
+ for(int iPos = 1; iPos < (cChar + 1); iPos++) {
+ if(ulReflect & 1) {
+ ulValue |= (1 << (cChar - iPos));
+ }
+ ulReflect >>= 1;
+ }
+ return ulValue;
+ }
+ unsigned long ulTable[256]; // CRC lookup table array.
+};
+
+
+int main(int argc, char **argv)
+{
+ CCRC32 crc;
+ char *name;
+ if (argc < 2) {
+ std::cerr << "usage: crc <string>\n";
+ return 0;
+ } else {
+ name = argv[1];
+ }
+ std::cout << crc.FullCRC((unsigned char *)name, strlen(name)) << std::endl;
+}
diff --git a/config.tests/mac/defaultarch.test b/config.tests/mac/defaultarch.test
new file mode 100755
index 0000000..4502af7
--- /dev/null
+++ b/config.tests/mac/defaultarch.test
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+COMPILER=$1
+VERBOSE=$2
+WORKDIR=$3
+QT_MAC_DEFUALT_ARCH=
+
+touch defaultarch.c
+
+# compile something and run 'file' on it.
+if "$COMPILER" -c defaultarch.c 2>/dev/null 1>&2; then
+ FIlE_OUTPUT=`file defaultarch.o`
+ [ "$VERBOSE" = "yes" ] && echo "'file' reports compiler ($COMPILER) default architechture as: $FIlE_OUTPUT"
+
+fi
+rm -f defaultarch.c defaultarch.o
+
+# detect our known archs.
+if echo "$FIlE_OUTPUT" | grep '\<i386\>' > /dev/null 2>&1; then
+ QT_MAC_DEFUALT_ARCH=x86 # configure knows it as "x86" not "i386"
+fi
+if echo "$FIlE_OUTPUT" | grep '\<x86_64\>' > /dev/null 2>&1; then
+ QT_MAC_DEFUALT_ARCH=x86_64
+fi
+if echo "$FIlE_OUTPUT" | grep '\<ppc\>' > /dev/null 2>&1; then
+ QT_MAC_DEFUALT_ARCH=ppc
+fi
+if echo "$FIlE_OUTPUT" | grep '\<ppc64\>' > /dev/null 2>&1; then
+ QT_MAC_DEFUALT_ARCH=ppc64
+fi
+
+[ "$VERBOSE" = "yes" ] && echo "setting QT_MAC_DEFUALT_ARCH to \"$QT_MAC_DEFUALT_ARCH\""
+export QT_MAC_DEFUALT_ARCH
diff --git a/config.tests/mac/dwarf2.test b/config.tests/mac/dwarf2.test
new file mode 100755
index 0000000..a640b11
--- /dev/null
+++ b/config.tests/mac/dwarf2.test
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+DWARF2_SUPPORT=no
+DWARF2_SUPPORT_BROKEN=no
+COMPILER=$1
+VERBOSE=$2
+WORKDIR=$3
+
+touch dwarf2.c
+
+if "$COMPILER" -c dwarf2.c -Werror -gdwarf-2 2>/dev/null 1>&2; then
+ if "$COMPILER" -c dwarf2.c -Werror -gdwarf-2 2>&1 | grep "unsupported" >/dev/null ; then
+ true
+ else
+ DWARF2_SUPPORT=yes
+ fi
+fi
+rm -f dwarf2.c dwarf2.o
+
+# Test for xcode 2.4.0, which has a broken implementation of DWARF
+"$COMPILER" $WORKDIR/xcodeversion.cpp -o xcodeversion -framework Carbon;
+./xcodeversion
+
+if [ "$?" == "1" ]; then
+ DWARF2_SUPPORT_BROKEN=yes
+fi
+
+rm xcodeversion
+
+# done
+if [ "$DWARF2_SUPPORT" != "yes" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "DWARF2 debug symbols disabled."
+ exit 0
+else
+ if [ "$DWARF2_SUPPORT_BROKEN" == "yes" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "DWARF2 debug symbols disabled."
+ exit 0
+ else
+ [ "$VERBOSE" = "yes" ] && echo "DWARF2 debug symbols enabled."
+ exit 1
+ fi
+fi
diff --git a/config.tests/mac/xarch.test b/config.tests/mac/xarch.test
new file mode 100755
index 0000000..08322a9
--- /dev/null
+++ b/config.tests/mac/xarch.test
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+XARCH_SUPPORT=no
+COMPILER=$1
+VERBOSE=$2
+WORKDIR=$3
+
+touch xarch.c
+
+if "$COMPILER" -c xarch.c -Xarch_i386 -mmmx 2>/dev/null 1>&2; then
+ if "$COMPILER" -c xarch.c -Xarch_i386 -mmmx 2>&1 | grep "unrecognized" >/dev/null ; then
+ true
+ else
+ XARCH_SUPPORT=yes
+ fi
+fi
+rm -f xarch.c xarch.o
+
+# done
+if [ "$XARCH_SUPPORT" != "yes" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "Xarch is not supported"
+ exit 0
+else
+ [ "$VERBOSE" = "yes" ] && echo "Xarch support detected"
+ exit 1
+fi
diff --git a/config.tests/mac/xcodeversion.cpp b/config.tests/mac/xcodeversion.cpp
new file mode 100644
index 0000000..e613cc5
--- /dev/null
+++ b/config.tests/mac/xcodeversion.cpp
@@ -0,0 +1,58 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <CoreFoundation/CoreFoundation.h>
+#include <Carbon/Carbon.h>
+
+int success = 0;
+int fail = 1;
+int internal_error = success; // enable dwarf on internal errors
+
+int main(int argc, const char **argv)
+{
+ CFURLRef cfurl;
+ OSStatus err = LSFindApplicationForInfo(0, CFSTR("com.apple.Xcode"), 0, 0, &cfurl);
+ if (err != noErr)
+ return internal_error;
+
+ CFBundleRef bundle = CFBundleCreate(0, cfurl);
+ if (bundle == 0)
+ return internal_error;
+
+ CFStringRef str = CFStringRef(CFBundleGetValueForInfoDictionaryKey(bundle, CFSTR("CFBundleShortVersionString")));
+ const char * ptr = CFStringGetCStringPtr(str, 0);
+ if (ptr == 0)
+ return internal_error;
+
+ // self-test
+ const char * fail1 = "2.4";
+ const char * fail2 = "2.4.0";
+ const char * fail3 ="2.3";
+ const char * ok1 = "2.4.1";
+ const char * ok2 ="2.5";
+ const char * ok3 ="3.0";
+// ptr = fail1;
+// printf ("string: %s\n", ptr);
+
+ int length = strlen(ptr);
+ if (length < 3) // expect "x.y" at least
+ return internal_error;
+
+ // fail on 2.4 and below (2.4.1 is ok)
+
+ if (ptr[0] < '2')
+ return fail;
+
+ if (ptr[0] >= '3')
+ return success;
+
+ if (ptr[2] < '4')
+ return fail;
+
+ if (length < 5)
+ return fail;
+
+ if (ptr[4] < '1')
+ return fail;
+
+ return success;
+} \ No newline at end of file
diff --git a/config.tests/qws/ahi/ahi.cpp b/config.tests/qws/ahi/ahi.cpp
new file mode 100644
index 0000000..a5e8951
--- /dev/null
+++ b/config.tests/qws/ahi/ahi.cpp
@@ -0,0 +1,9 @@
+#include <ahi.h>
+
+int main(int, char **)
+{
+ AhiInit(0);
+ AhiTerm();
+
+ return 0;
+}
diff --git a/config.tests/qws/ahi/ahi.pro b/config.tests/qws/ahi/ahi.pro
new file mode 100644
index 0000000..532a565
--- /dev/null
+++ b/config.tests/qws/ahi/ahi.pro
@@ -0,0 +1,3 @@
+SOURCES = ahi.cpp
+CONFIG -= qt
+LIBS += -lahi -lahioem
diff --git a/config.tests/qws/directfb/directfb.cpp b/config.tests/qws/directfb/directfb.cpp
new file mode 100644
index 0000000..f743864
--- /dev/null
+++ b/config.tests/qws/directfb/directfb.cpp
@@ -0,0 +1,9 @@
+#include <directfb.h>
+
+int main(int, char **)
+{
+ DFBResult result = DFB_OK;
+ result = DirectFBInit(0, 0);
+
+ return (result == DFB_OK);
+}
diff --git a/config.tests/qws/directfb/directfb.pro b/config.tests/qws/directfb/directfb.pro
new file mode 100644
index 0000000..db14d3b
--- /dev/null
+++ b/config.tests/qws/directfb/directfb.pro
@@ -0,0 +1,5 @@
+SOURCES = directfb.cpp
+CONFIG -= qt
+
+QMAKE_CXXFLAGS += $$QT_CFLAGS_DIRECTFB
+LIBS += $$QT_LIBS_DIRECTFB
diff --git a/config.tests/qws/sound/sound.cpp b/config.tests/qws/sound/sound.cpp
new file mode 100644
index 0000000..be412bb
--- /dev/null
+++ b/config.tests/qws/sound/sound.cpp
@@ -0,0 +1,8 @@
+#include <sys/soundcard.h>
+
+int main(int, char **)
+{
+ audio_buf_info info;
+
+ return 0;
+}
diff --git a/config.tests/qws/sound/sound.pro b/config.tests/qws/sound/sound.pro
new file mode 100644
index 0000000..4ad3376
--- /dev/null
+++ b/config.tests/qws/sound/sound.pro
@@ -0,0 +1,2 @@
+SOURCES = sound.cpp
+CONFIG -= qt
diff --git a/config.tests/qws/svgalib/svgalib.cpp b/config.tests/qws/svgalib/svgalib.cpp
new file mode 100644
index 0000000..f4bf9c8
--- /dev/null
+++ b/config.tests/qws/svgalib/svgalib.cpp
@@ -0,0 +1,10 @@
+#include <vga.h>
+#include <vgagl.h>
+
+int main(int, char **)
+{
+ int mode = vga_getdefaultmode();
+ gl_setcontextvga(mode);
+
+ return 0;
+}
diff --git a/config.tests/qws/svgalib/svgalib.pro b/config.tests/qws/svgalib/svgalib.pro
new file mode 100644
index 0000000..1690652
--- /dev/null
+++ b/config.tests/qws/svgalib/svgalib.pro
@@ -0,0 +1,3 @@
+SOURCES = svgalib.cpp
+CONFIG -= qt
+LIBS += -lvgagl -lvga
diff --git a/config.tests/unix/3dnow/3dnow.cpp b/config.tests/unix/3dnow/3dnow.cpp
new file mode 100644
index 0000000..1b1d0ed
--- /dev/null
+++ b/config.tests/unix/3dnow/3dnow.cpp
@@ -0,0 +1,10 @@
+#include <mm3dnow.h>
+#if defined(__GNUC__) && __GNUC__ < 4 && __GNUC_MINOR__ < 3
+#error GCC < 3.2 is known to create internal compiler errors with our MMX code
+#endif
+
+int main(int, char**)
+{
+ _m_femms();
+ return 0;
+}
diff --git a/config.tests/unix/3dnow/3dnow.pro b/config.tests/unix/3dnow/3dnow.pro
new file mode 100644
index 0000000..90a8a19
--- /dev/null
+++ b/config.tests/unix/3dnow/3dnow.pro
@@ -0,0 +1,3 @@
+SOURCES = 3dnow.cpp
+CONFIG -= x11 qt
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/bsymbolic_functions.test b/config.tests/unix/bsymbolic_functions.test
new file mode 100755
index 0000000..52fdb32
--- /dev/null
+++ b/config.tests/unix/bsymbolic_functions.test
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+BSYMBOLIC_FUNCTIONS_SUPPORT=no
+COMPILER=$1
+VERBOSE=$2
+
+cat >>bsymbolic_functions.c << EOF
+int main() { return 0; }
+EOF
+
+"$COMPILER" -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c >/dev/null 2>&1 && BSYMBOLIC_FUNCTIONS_SUPPORT=yes
+rm -f bsymbolic_functions.c libtest.so
+
+# done
+if [ "$BSYMBOLIC_FUNCTIONS_SUPPORT" != "yes" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "Symbolic function binding disabled."
+ exit 0
+else
+ [ "$VERBOSE" = "yes" ] && echo "Symbolic function binding enabled."
+ exit 1
+fi
diff --git a/config.tests/unix/clock-gettime/clock-gettime.cpp b/config.tests/unix/clock-gettime/clock-gettime.cpp
new file mode 100644
index 0000000..edb71f5
--- /dev/null
+++ b/config.tests/unix/clock-gettime/clock-gettime.cpp
@@ -0,0 +1,16 @@
+#include <unistd.h>
+#include <time.h>
+
+int main(int, char **)
+{
+#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0)
+ timespec ts;
+ clock_gettime(CLOCK_REALTIME, &ts);
+#else
+# error "Feature _POSIX_TIMERS not available"
+ // MIPSpro doesn't understand #error, so force a compiler error
+ force_compiler_error = true;
+#endif
+ return 0;
+}
+
diff --git a/config.tests/unix/clock-gettime/clock-gettime.pri b/config.tests/unix/clock-gettime/clock-gettime.pri
new file mode 100644
index 0000000..2a6160b
--- /dev/null
+++ b/config.tests/unix/clock-gettime/clock-gettime.pri
@@ -0,0 +1,2 @@
+# clock_gettime() is implemented in librt on these systems
+linux-*|hpux-*|solaris-*:LIBS *= -lrt
diff --git a/config.tests/unix/clock-gettime/clock-gettime.pro b/config.tests/unix/clock-gettime/clock-gettime.pro
new file mode 100644
index 0000000..c527535
--- /dev/null
+++ b/config.tests/unix/clock-gettime/clock-gettime.pro
@@ -0,0 +1,4 @@
+SOURCES = clock-gettime.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+include(clock-gettime.pri)
diff --git a/config.tests/unix/clock-monotonic/clock-monotonic.cpp b/config.tests/unix/clock-monotonic/clock-monotonic.cpp
new file mode 100644
index 0000000..df99963
--- /dev/null
+++ b/config.tests/unix/clock-monotonic/clock-monotonic.cpp
@@ -0,0 +1,16 @@
+#include <unistd.h>
+#include <time.h>
+
+int main(int, char **)
+{
+#if defined(_POSIX_MONOTONIC_CLOCK) && (_POSIX_MONOTONIC_CLOCK-0 >= 0)
+ timespec ts;
+ clock_gettime(CLOCK_MONOTONIC, &ts);
+#else
+# error "Feature _POSIX_MONOTONIC_CLOCK not available"
+ // MIPSpro doesn't understand #error, so force a compiler error
+ force_compiler_error = true;
+#endif
+ return 0;
+}
+
diff --git a/config.tests/unix/clock-monotonic/clock-monotonic.pro b/config.tests/unix/clock-monotonic/clock-monotonic.pro
new file mode 100644
index 0000000..961e3a8
--- /dev/null
+++ b/config.tests/unix/clock-monotonic/clock-monotonic.pro
@@ -0,0 +1,4 @@
+SOURCES = clock-monotonic.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+include(../clock-gettime/clock-gettime.pri)
diff --git a/config.tests/unix/compile.test b/config.tests/unix/compile.test
new file mode 100755
index 0000000..b5afa18
--- /dev/null
+++ b/config.tests/unix/compile.test
@@ -0,0 +1,73 @@
+#!/bin/sh
+
+SUCCESS=no
+QMKSPEC=$1
+XPLATFORM=`basename "$1"`
+QMAKE_CONFIG=$2
+VERBOSE=$3
+SRCDIR=$4
+OUTDIR=$5
+TEST=$6
+EXE=`basename "$6"`
+DESCRIPTION=$7
+shift 7
+LFLAGS=""
+INCLUDEPATH=""
+CXXFLAGS=""
+while [ "$#" -gt 0 ]; do
+ PARAM=$1
+ case $PARAM in
+ -framework)
+ LFLAGS="$LFLAGS -framework \"$2\""
+ shift
+ ;;
+ -F*|-m*|-x*)
+ LFLAGS="$LFLAGS $PARAM"
+ CXXFLAGS="$CXXFLAGS $PARAM"
+ ;;
+ -L*|-l*|-pthread)
+ LFLAGS="$LFLAGS $PARAM"
+ ;;
+ -I*)
+ INC=`echo $PARAM | sed -e 's/^-I//'`
+ INCLUDEPATH="$INCLUDEPATH $INC"
+ ;;
+ -f*|-D*)
+ CXXFLAGS="$CXXFLAGS $PARAM"
+ ;;
+ -Qoption)
+ # Two-argument form for the Sun Compiler
+ CXXFLAGS="$CXXFLAGS $PARAM \"$2\""
+ shift
+ ;;
+ *) ;;
+ esac
+ shift
+done
+
+# debuggery
+[ "$VERBOSE" = "yes" ] && echo "$DESCRIPTION auto-detection... ($*)"
+
+test -d "$OUTDIR/$TEST" || mkdir -p "$OUTDIR/$TEST"
+
+cd "$OUTDIR/$TEST"
+
+make distclean >/dev/null 2>&1
+"$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "LIBS*=$LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
+
+if [ "$VERBOSE" = "yes" ]; then
+ make
+else
+ make >/dev/null 2>&1
+fi
+
+[ -x "$EXE" ] && SUCCESS=yes
+
+# done
+if [ "$SUCCESS" != "yes" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "$DESCRIPTION disabled."
+ exit 1
+else
+ [ "$VERBOSE" = "yes" ] && echo "$DESCRIPTION enabled."
+ exit 0
+fi
diff --git a/config.tests/unix/cups/cups.cpp b/config.tests/unix/cups/cups.cpp
new file mode 100644
index 0000000..e8c17ea
--- /dev/null
+++ b/config.tests/unix/cups/cups.cpp
@@ -0,0 +1,8 @@
+#include <cups/cups.h>
+
+int main(int, char **)
+{
+ cups_dest_t *d;
+ cupsGetDests(&d);
+ return 0;
+}
diff --git a/config.tests/unix/cups/cups.pro b/config.tests/unix/cups/cups.pro
new file mode 100644
index 0000000..d7b78c8
--- /dev/null
+++ b/config.tests/unix/cups/cups.pro
@@ -0,0 +1,4 @@
+SOURCES = cups.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -lcups
diff --git a/config.tests/unix/db2/db2.cpp b/config.tests/unix/db2/db2.cpp
new file mode 100644
index 0000000..e408d28
--- /dev/null
+++ b/config.tests/unix/db2/db2.cpp
@@ -0,0 +1,7 @@
+#include <sqlcli.h>
+#include <sqlcli1.h>
+
+int main(int, char **)
+{
+ return 0;
+}
diff --git a/config.tests/unix/db2/db2.pro b/config.tests/unix/db2/db2.pro
new file mode 100644
index 0000000..0fa39a8
--- /dev/null
+++ b/config.tests/unix/db2/db2.pro
@@ -0,0 +1,4 @@
+SOURCES = db2.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -ldb2
diff --git a/config.tests/unix/dbus/dbus.cpp b/config.tests/unix/dbus/dbus.cpp
new file mode 100644
index 0000000..15ed45f
--- /dev/null
+++ b/config.tests/unix/dbus/dbus.cpp
@@ -0,0 +1,12 @@
+#define DBUS_API_SUBJECT_TO_CHANGE
+#include <dbus/dbus.h>
+
+#if DBUS_MAJOR_PROTOCOL_VERSION < 1
+#error Needs at least dbus version 1
+#endif
+
+int main(int, char **)
+{
+ dbus_shutdown();
+ return 0;
+}
diff --git a/config.tests/unix/dbus/dbus.pro b/config.tests/unix/dbus/dbus.pro
new file mode 100644
index 0000000..1e4aea7
--- /dev/null
+++ b/config.tests/unix/dbus/dbus.pro
@@ -0,0 +1,3 @@
+SOURCES = dbus.cpp
+CONFIG -= qt
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/doubleformat.test b/config.tests/unix/doubleformat.test
new file mode 100755
index 0000000..3e707c5
--- /dev/null
+++ b/config.tests/unix/doubleformat.test
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+QMKSPEC=$1
+VERBOSE=$2
+SRCDIR=$3
+OUTDIR=$4
+
+# debuggery
+[ "$VERBOSE" = "yes" ] && echo "Determining floating point word-order... ($*)"
+
+# build and run a test program
+test -d "$OUTDIR/config.tests/unix/doubleformat" || mkdir -p "$OUTDIR/config.tests/unix/doubleformat"
+"$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "$SRCDIR/config.tests/unix/doubleformat/doubleformattest.pro" -o "$OUTDIR/config.tests/unix/doubleformat/Makefile" >/dev/null 2>&1
+cd "$OUTDIR/config.tests/unix/doubleformat"
+
+DOUBLEFORMAT="UNKNOWN"
+[ "$VERBOSE" = "yes" ] && make || make >/dev/null 2>&1
+
+if [ -f ./doubleformattest ]; then
+ : # nop
+else
+ [ "$VERBOSE" = "yes" ] && echo "Unknown floating point format!"
+ exit 2
+fi
+
+# LE: strings | grep 0123ABCD0123ABCD
+# BE: strings | grep DCBA3210DCBA3210
+#
+# LE arm-swapped-dword-order: strings | grep ABCD0123ABCD0123
+# BE arm-swapped-dword-order: strings | grep 3210DCBA3210DCBA (untested)
+
+
+if strings ./doubleformattest | grep "0123ABCD0123ABCD" >/dev/null 2>&1; then
+ [ "$VERBOSE" = "yes" ] && echo " Normal little endian format"
+ DOUBLEFORMAT="LITTLE"
+elif strings ./doubleformattest | grep "ABCD0123ABCD0123" >/dev/null 2>&1; then
+ [ "$VERBOSE" = "yes" ] && echo " Swapped little endian format"
+ DOUBLEFORMAT="LITTLESWAPPED"
+elif strings ./doubleformattest | grep "DCBA3210DCBA3210" >/dev/null 2>&1; then
+ [ "$VERBOSE" = "yes" ] && echo " Normal big endian format"
+ DOUBLEFORMAT="BIG"
+elif strings ./doubleformattest | grep "3210DCBA3210DCBA" >/dev/null 2>&1; then
+ [ "$VERBOSE" = "yes" ] && echo " Swapped big endian format"
+ DOUBLEFORMAT="BIGSWAPPED"
+fi
+
+# done
+if [ "$DOUBLEFORMAT" = "LITTLE" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "Using little endian."
+ exit 10
+elif [ "$DOUBLEFORMAT" = "BIG" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "Using big endian."
+ exit 11
+elif [ "$DOUBLEFORMAT" = "LITTLESWAPPED" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "Using swapped little endian."
+ exit 12
+elif [ "$DOUBLEFORMAT" = "BIGSWAPPED" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "Using swapped big endian."
+ exit 13
+else
+ [ "$VERBOSE" = "yes" ] && echo "Unknown floating point format!"
+ exit 99
+fi
diff --git a/config.tests/unix/doubleformat/doubleformattest.cpp b/config.tests/unix/doubleformat/doubleformattest.cpp
new file mode 100644
index 0000000..d71caba
--- /dev/null
+++ b/config.tests/unix/doubleformat/doubleformattest.cpp
@@ -0,0 +1,25 @@
+/*
+
+LE: strings | grep 0123ABCD0123ABCD
+BE: strings | grep DCBA3210DCBA3210
+
+LE arm-swaped-dword-order: strings | grep ABCD0123ABCD0123
+BE arm-swaped-dword-order: strings | grep 3210DCBA3210DCBA (untested)
+
+tested on x86, arm-le (gp), aix
+
+*/
+
+#include <stdlib.h>
+
+// equals static char c [] = "0123ABCD0123ABCD\0\0\0\0\0\0\0"
+static double d [] = { 710524581542275055616.0, 710524581542275055616.0};
+
+int main(int argc, char **argv)
+{
+ // make sure the linker doesn't throw away the arrays
+ double *d2 = (double *) d;
+ if (argc > 3)
+ d[1] += 1;
+ return d2[0] + d[2] + atof(argv[1]);
+}
diff --git a/config.tests/unix/doubleformat/doubleformattest.pro b/config.tests/unix/doubleformat/doubleformattest.pro
new file mode 100644
index 0000000..7e51dea
--- /dev/null
+++ b/config.tests/unix/doubleformat/doubleformattest.pro
@@ -0,0 +1,3 @@
+SOURCES = doubleformattest.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/endian.test b/config.tests/unix/endian.test
new file mode 100755
index 0000000..2c21652
--- /dev/null
+++ b/config.tests/unix/endian.test
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+QMKSPEC=$1
+VERBOSE=$2
+SRCDIR=$3
+OUTDIR=$4
+
+# debuggery
+[ "$VERBOSE" = "yes" ] && echo "Determining machine byte-order... ($*)"
+
+# build and run a test program
+test -d "$OUTDIR/config.tests/unix/endian" || mkdir -p "$OUTDIR/config.tests/unix/endian"
+"$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "$SRCDIR/config.tests/unix/endian/endiantest.pro" -o "$OUTDIR/config.tests/unix/endian/Makefile" >/dev/null 2>&1
+cd "$OUTDIR/config.tests/unix/endian"
+
+
+ENDIAN="UNKNOWN"
+[ "$VERBOSE" = "yes" ] && make || make >/dev/null 2>&1
+
+if [ -f ./endiantest.exe ]; then
+ binary=./endiantest.exe
+else
+ binary=./endiantest
+fi
+
+
+if [ -f $binary ]; then
+ : # nop
+else
+ [ "$VERBOSE" = "yes" ] && echo "Unknown byte order!"
+ exit 2
+fi
+
+if strings $binary | grep LeastSignificantByteFirst >/dev/null 2>&1; then
+ [ "$VERBOSE" = "yes" ] && echo " Found 'LeastSignificantByteFirst' in binary"
+ ENDIAN="LITTLE"
+elif strings $binary | grep MostSignificantByteFirst >/dev/null 2>&1; then
+ [ "$VERBOSE" = "yes" ] && echo " Found 'MostSignificantByteFirst' in binary"
+ ENDIAN="BIG"
+fi
+
+# make clean as this tests is compiled for both the host and the target
+make distclean
+
+# done
+if [ "$ENDIAN" = "LITTLE" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "Using little endian."
+ exit 0
+elif [ "$ENDIAN" = "BIG" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "Using big endian."
+ exit 1
+else
+ [ "$VERBOSE" = "yes" ] && echo "Unknown byte order!"
+ exit 2
+fi
diff --git a/config.tests/unix/endian/endiantest.cpp b/config.tests/unix/endian/endiantest.cpp
new file mode 100644
index 0000000..40af746
--- /dev/null
+++ b/config.tests/unix/endian/endiantest.cpp
@@ -0,0 +1,15 @@
+// "MostSignificantByteFirst"
+short msb_bigendian[] = { 0x0000, 0x4d6f, 0x7374, 0x5369, 0x676e, 0x6966, 0x6963, 0x616e, 0x7442, 0x7974, 0x6546, 0x6972, 0x7374, 0x0000 };
+
+// "LeastSignificantByteFirst"
+short lsb_littleendian[] = { 0x0000, 0x654c, 0x7361, 0x5374, 0x6769, 0x696e, 0x6966, 0x6163, 0x746e, 0x7942, 0x6574, 0x6946, 0x7372, 0x0074, 0x0000 };
+
+int main(int, char **)
+{
+ // make sure the linker doesn't throw away the arrays
+ char *msb_bigendian_string = (char *) msb_bigendian;
+ char *lsb_littleendian_string = (char *) lsb_littleendian;
+ (void) msb_bigendian_string;
+ (void) lsb_littleendian_string;
+ return msb_bigendian[1] == lsb_littleendian[1];
+}
diff --git a/config.tests/unix/endian/endiantest.pro b/config.tests/unix/endian/endiantest.pro
new file mode 100644
index 0000000..7b739eb
--- /dev/null
+++ b/config.tests/unix/endian/endiantest.pro
@@ -0,0 +1,3 @@
+SOURCES = endiantest.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/floatmath/floatmath.cpp b/config.tests/unix/floatmath/floatmath.cpp
new file mode 100644
index 0000000..126f820
--- /dev/null
+++ b/config.tests/unix/floatmath/floatmath.cpp
@@ -0,0 +1,17 @@
+#include <math.h>
+
+int main(int argc, char **argv)
+{
+ float c = ceilf(1.3f);
+ float f = floorf(1.7f);
+ float s = sinf(3.8);
+ float t = cosf(7.3);
+ float u = sqrtf(8.4);
+ float l = logf(9.2);
+
+ if (c == 1.0f && f == 2.0f && s == 3.0f && t == 4.0f && u == 5.0f && l == 6.0f)
+ return 0;
+ else
+ return 1;
+}
+
diff --git a/config.tests/unix/floatmath/floatmath.pro b/config.tests/unix/floatmath/floatmath.pro
new file mode 100644
index 0000000..4c78563
--- /dev/null
+++ b/config.tests/unix/floatmath/floatmath.pro
@@ -0,0 +1,3 @@
+SOURCES = floatmath.cpp
+CONFIG -= x11 qt
+
diff --git a/config.tests/unix/freetype/freetype.cpp b/config.tests/unix/freetype/freetype.cpp
new file mode 100644
index 0000000..3edf619
--- /dev/null
+++ b/config.tests/unix/freetype/freetype.cpp
@@ -0,0 +1,13 @@
+#include <ft2build.h>
+#include FT_FREETYPE_H
+
+#if ((FREETYPE_MAJOR*10000 + FREETYPE_MINOR*100 + FREETYPE_PATCH) < 20103)
+# error "This version of freetype is too old."
+#endif
+
+int main(int, char **)
+{
+ FT_Face face;
+ face = 0;
+ return 0;
+}
diff --git a/config.tests/unix/freetype/freetype.pri b/config.tests/unix/freetype/freetype.pri
new file mode 100644
index 0000000..7ef1cf9
--- /dev/null
+++ b/config.tests/unix/freetype/freetype.pri
@@ -0,0 +1,9 @@
+!cross_compile {
+ TRY_INCLUDEPATHS = /include /usr/include $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
+ # LSB doesn't allow using headers from /include or /usr/include
+ linux-lsb-g++:TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
+ for(p, TRY_INCLUDEPATHS) {
+ p = $$join(p, "", "", "/freetype2")
+ exists($$p):INCLUDEPATH *= $$p
+ }
+}
diff --git a/config.tests/unix/freetype/freetype.pro b/config.tests/unix/freetype/freetype.pro
new file mode 100644
index 0000000..e84158e
--- /dev/null
+++ b/config.tests/unix/freetype/freetype.pro
@@ -0,0 +1,5 @@
+SOURCES = freetype.cpp
+CONFIG += x11
+CONFIG -= qt
+LIBS += -lfreetype
+include(freetype.pri)
diff --git a/config.tests/unix/fvisibility.test b/config.tests/unix/fvisibility.test
new file mode 100755
index 0000000..b2bcc07
--- /dev/null
+++ b/config.tests/unix/fvisibility.test
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+FVISIBILITY_SUPPORT=no
+COMPILER=$1
+VERBOSE=$2
+
+RunCompileTest() {
+ cat >>fvisibility.c << EOF
+__attribute__((visibility("default"))) void blah();
+#if !defined(__GNUC__)
+# error "Visiblility support requires GCC"
+#elif __GNUC__ < 4
+# error "GCC3 with backported visibility patch is known to miscompile Qt"
+#endif
+EOF
+
+ if [ "$VERBOSE" = "yes" ] ; then
+ "$COMPILER" -c -fvisibility=hidden fvisibility.c && FVISIBILITY_SUPPORT=yes
+ else
+ "$COMPILER" -c -fvisibility=hidden fvisibility.c >/dev/null 2>&1 && FVISIBILITY_SUPPORT=yes
+ fi
+ rm -f fvisibility.c fvisibility.o
+}
+
+case "$COMPILER" in
+aCC*)
+ ;;
+
+icpc)
+ ICPC_VERSION=`icpc -dumpversion`
+ case "$ICPC_VERSION" in
+ 8.*|9.*|10.0)
+ # 8.x, 9.x, and 10.0 don't support symbol visibility
+ ;;
+ *)
+ # the compile test works for the intel compiler because it mimics gcc's behavior
+ RunCompileTest
+ ;;
+ esac
+ ;;
+
+ *)
+ RunCompileTest
+ ;;
+esac
+
+# done
+if [ "$FVISIBILITY_SUPPORT" != "yes" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "Symbol visibility control disabled."
+ exit 0
+else
+ [ "$VERBOSE" = "yes" ] && echo "Symbol visibility control enabled."
+ exit 1
+fi
diff --git a/config.tests/unix/getaddrinfo/getaddrinfo.pro b/config.tests/unix/getaddrinfo/getaddrinfo.pro
new file mode 100644
index 0000000..c9121db
--- /dev/null
+++ b/config.tests/unix/getaddrinfo/getaddrinfo.pro
@@ -0,0 +1,4 @@
+SOURCES = getaddrinfotest.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += $$QMAKE_LIBS_NETWORK
diff --git a/config.tests/unix/getaddrinfo/getaddrinfotest.cpp b/config.tests/unix/getaddrinfo/getaddrinfotest.cpp
new file mode 100644
index 0000000..9dcd030
--- /dev/null
+++ b/config.tests/unix/getaddrinfo/getaddrinfotest.cpp
@@ -0,0 +1,16 @@
+/* Sample program for configure to test for getaddrinfo on the unix
+ platform. we check for all structures and functions required. */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netdb.h>
+
+int main()
+{
+ addrinfo *res = 0;
+ if (getaddrinfo("foo", 0, 0, &res) == 0)
+ freeaddrinfo(res);
+ gai_strerror(0);
+
+ return 0;
+}
diff --git a/config.tests/unix/getifaddrs/getifaddrs.cpp b/config.tests/unix/getifaddrs/getifaddrs.cpp
new file mode 100644
index 0000000..4e05a18
--- /dev/null
+++ b/config.tests/unix/getifaddrs/getifaddrs.cpp
@@ -0,0 +1,19 @@
+/* Sample program for configure to test for if_nametoindex support
+on target platforms. */
+
+#if defined(__hpux)
+#define _HPUX_SOURCE
+#endif
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <net/if.h>
+#include <ifaddrs.h>
+
+int main()
+{
+ ifaddrs *list;
+ getifaddrs(&list);
+ freeifaddrs(list);
+ return 0;
+}
diff --git a/config.tests/unix/getifaddrs/getifaddrs.pro b/config.tests/unix/getifaddrs/getifaddrs.pro
new file mode 100644
index 0000000..c3fead6
--- /dev/null
+++ b/config.tests/unix/getifaddrs/getifaddrs.pro
@@ -0,0 +1,5 @@
+SOURCES = getifaddrs.cpp
+CONFIG -= qt
+mac:CONFIG -= app_bundle
+QT =
+LIBS += $$QMAKE_LIBS_NETWORK
diff --git a/config.tests/unix/glib/glib.cpp b/config.tests/unix/glib/glib.cpp
new file mode 100644
index 0000000..16b787d
--- /dev/null
+++ b/config.tests/unix/glib/glib.cpp
@@ -0,0 +1,16 @@
+typedef struct _GMainContext GMainContext;
+
+#include <glib.h>
+
+int main(int, char **)
+{
+ GMainContext *context;
+ GSource *source;
+ GPollFD *pollfd;
+ if (!g_thread_supported())
+ g_thread_init(NULL);
+ context = g_main_context_default();
+ source = g_source_new(0, 0);
+ g_source_add_poll(source, pollfd);
+ return 0;
+}
diff --git a/config.tests/unix/glib/glib.pro b/config.tests/unix/glib/glib.pro
new file mode 100644
index 0000000..15d059d
--- /dev/null
+++ b/config.tests/unix/glib/glib.pro
@@ -0,0 +1,2 @@
+SOURCES = glib.cpp
+CONFIG -= qt
diff --git a/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp b/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp
new file mode 100644
index 0000000..21f12dd
--- /dev/null
+++ b/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp
@@ -0,0 +1,19 @@
+#if defined(__sgi)
+#error "iconv not supported on IRIX"
+#else
+#include <iconv.h>
+
+int main(int, char **)
+{
+ iconv_t x = iconv_open("", "");
+
+ const char *inp;
+ char *outp;
+ size_t inbytes, outbytes;
+ iconv(x, &inp, &inbytes, &outp, &outbytes);
+
+ iconv_close(x);
+
+ return 0;
+}
+#endif
diff --git a/config.tests/unix/gnu-libiconv/gnu-libiconv.pro b/config.tests/unix/gnu-libiconv/gnu-libiconv.pro
new file mode 100644
index 0000000..d879b20
--- /dev/null
+++ b/config.tests/unix/gnu-libiconv/gnu-libiconv.pro
@@ -0,0 +1,4 @@
+SOURCES = gnu-libiconv.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -liconv
diff --git a/config.tests/unix/gstreamer/gstreamer.cpp b/config.tests/unix/gstreamer/gstreamer.cpp
new file mode 100644
index 0000000..6ef85e1
--- /dev/null
+++ b/config.tests/unix/gstreamer/gstreamer.cpp
@@ -0,0 +1,14 @@
+#include <gst/gst.h>
+#include <gst/interfaces/propertyprobe.h>
+#include <gst/interfaces/xoverlay.h>
+
+#if !defined(GST_VERSION_MAJOR) \
+ || !defined(GST_VERSION_MINOR)
+# error "No GST_VERSION_* macros"
+#elif GST_VERION_MAJOR != 0 && GST_VERSION_MINOR != 10
+# error "Incompatible version of GStreamer found (Version 0.10.x is required)."
+#endif
+
+int main(int argc, char **argv)
+{
+}
diff --git a/config.tests/unix/gstreamer/gstreamer.pro b/config.tests/unix/gstreamer/gstreamer.pro
new file mode 100644
index 0000000..7d4aa8e
--- /dev/null
+++ b/config.tests/unix/gstreamer/gstreamer.pro
@@ -0,0 +1,3 @@
+SOURCES = gstreamer.cpp
+CONFIG -= qt
+LIBS += -lgstinterfaces-0.10 -lgstvideo-0.10 -lgstbase-0.10
diff --git a/config.tests/unix/ibase/ibase.cpp b/config.tests/unix/ibase/ibase.cpp
new file mode 100644
index 0000000..2152260
--- /dev/null
+++ b/config.tests/unix/ibase/ibase.cpp
@@ -0,0 +1,6 @@
+#include <ibase.h>
+
+int main(int, char **)
+{
+ return 0;
+}
diff --git a/config.tests/unix/ibase/ibase.pro b/config.tests/unix/ibase/ibase.pro
new file mode 100644
index 0000000..01e7429
--- /dev/null
+++ b/config.tests/unix/ibase/ibase.pro
@@ -0,0 +1,4 @@
+SOURCES = ibase.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -lgds
diff --git a/config.tests/unix/iconv/iconv.cpp b/config.tests/unix/iconv/iconv.cpp
new file mode 100644
index 0000000..c0f35a3
--- /dev/null
+++ b/config.tests/unix/iconv/iconv.cpp
@@ -0,0 +1,19 @@
+#if defined(__sgi)
+#error "iconv not supported on IRIX"
+#else
+#include <iconv.h>
+
+int main(int, char **)
+{
+ iconv_t x = iconv_open("", "");
+
+ char *inp;
+ char *outp;
+ size_t inbytes, outbytes;
+ iconv(x, &inp, &inbytes, &outp, &outbytes);
+
+ iconv_close(x);
+
+ return 0;
+}
+#endif
diff --git a/config.tests/unix/iconv/iconv.pro b/config.tests/unix/iconv/iconv.pro
new file mode 100644
index 0000000..8cdc776
--- /dev/null
+++ b/config.tests/unix/iconv/iconv.pro
@@ -0,0 +1,3 @@
+SOURCES = iconv.cpp
+CONFIG -= qt dylib app_bundle
+mac:LIBS += -liconv
diff --git a/config.tests/unix/inotify/inotify.pro b/config.tests/unix/inotify/inotify.pro
new file mode 100644
index 0000000..e2e1560
--- /dev/null
+++ b/config.tests/unix/inotify/inotify.pro
@@ -0,0 +1,3 @@
+SOURCES = inotifytest.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/inotify/inotifytest.cpp b/config.tests/unix/inotify/inotifytest.cpp
new file mode 100644
index 0000000..8378a7e
--- /dev/null
+++ b/config.tests/unix/inotify/inotifytest.cpp
@@ -0,0 +1,9 @@
+#include <sys/inotify.h>
+
+int main()
+{
+ inotify_init();
+ inotify_add_watch(0, "foobar", IN_ACCESS);
+ inotify_rm_watch(0, 1);
+ return 0;
+}
diff --git a/config.tests/unix/ipv6/ipv6.pro b/config.tests/unix/ipv6/ipv6.pro
new file mode 100644
index 0000000..c51e61b
--- /dev/null
+++ b/config.tests/unix/ipv6/ipv6.pro
@@ -0,0 +1,3 @@
+SOURCES = ipv6test.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/ipv6/ipv6test.cpp b/config.tests/unix/ipv6/ipv6test.cpp
new file mode 100644
index 0000000..5f87eeb
--- /dev/null
+++ b/config.tests/unix/ipv6/ipv6test.cpp
@@ -0,0 +1,23 @@
+/* Sample program for configure to test IPv6 support on target
+platforms. We check for the required IPv6 data structures. */
+
+#if defined(__hpux)
+#define _HPUX_SOURCE
+#endif
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+int main()
+{
+ sockaddr_in6 tmp;
+ sockaddr_storage tmp2;
+ (void)tmp.sin6_addr.s6_addr;
+ (void)tmp.sin6_port;
+ (void)tmp.sin6_family;
+ (void)tmp.sin6_scope_id;
+ (void)tmp2;
+
+ return 0;
+}
diff --git a/config.tests/unix/ipv6ifname/ipv6ifname.cpp b/config.tests/unix/ipv6ifname/ipv6ifname.cpp
new file mode 100644
index 0000000..619a783
--- /dev/null
+++ b/config.tests/unix/ipv6ifname/ipv6ifname.cpp
@@ -0,0 +1,18 @@
+/* Sample program for configure to test for if_nametoindex support
+on target platforms. */
+
+#if defined(__hpux)
+#define _HPUX_SOURCE
+#endif
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <net/if.h>
+
+int main()
+{
+ char buf[IFNAMSIZ];
+ if_nametoindex("eth0");
+ if_indextoname(1, buf);
+ return 0;
+}
diff --git a/config.tests/unix/ipv6ifname/ipv6ifname.pro b/config.tests/unix/ipv6ifname/ipv6ifname.pro
new file mode 100644
index 0000000..ed62869
--- /dev/null
+++ b/config.tests/unix/ipv6ifname/ipv6ifname.pro
@@ -0,0 +1,5 @@
+SOURCES = ipv6ifname.cpp
+CONFIG -= qt
+mac:CONFIG -= app_bundle
+QT =
+LIBS += $$QMAKE_LIBS_NETWORK
diff --git a/config.tests/unix/iwmmxt/iwmmxt.cpp b/config.tests/unix/iwmmxt/iwmmxt.cpp
new file mode 100644
index 0000000..77b09b4
--- /dev/null
+++ b/config.tests/unix/iwmmxt/iwmmxt.cpp
@@ -0,0 +1,7 @@
+#include <mmintrin.h>
+
+int main(int, char**)
+{
+ _mm_unpackhi_pi16(_mm_setzero_si64(), _mm_setzero_si64());
+ return 0;
+}
diff --git a/config.tests/unix/iwmmxt/iwmmxt.pro b/config.tests/unix/iwmmxt/iwmmxt.pro
new file mode 100644
index 0000000..20a5f1a
--- /dev/null
+++ b/config.tests/unix/iwmmxt/iwmmxt.pro
@@ -0,0 +1,3 @@
+SOURCES = iwmmxt.cpp
+CONFIG -= x11 qt
+
diff --git a/config.tests/unix/largefile/largefile.pro b/config.tests/unix/largefile/largefile.pro
new file mode 100644
index 0000000..d7affc6
--- /dev/null
+++ b/config.tests/unix/largefile/largefile.pro
@@ -0,0 +1,3 @@
+SOURCES=largefiletest.cpp
+CONFIG-=qt dylib
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/largefile/largefiletest.cpp b/config.tests/unix/largefile/largefiletest.cpp
new file mode 100644
index 0000000..ed04e7a
--- /dev/null
+++ b/config.tests/unix/largefile/largefiletest.cpp
@@ -0,0 +1,32 @@
+/* Sample program for configure to test Large File support on target
+platforms.
+*/
+
+#define _LARGEFILE_SOURCE
+#define _LARGE_FILES
+#define _FILE_OFFSET_BITS 64
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <assert.h>
+#include <stdio.h>
+
+int main( int, char **argv )
+{
+// check that off_t can hold 2^63 - 1 and perform basic operations...
+#define OFF_T_64 (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ if (OFF_T_64 % 2147483647 != 1)
+ return 1;
+
+ // stat breaks on SCO OpenServer
+ struct stat buf;
+ stat( argv[0], &buf );
+ if (!S_ISREG(buf.st_mode))
+ return 2;
+
+ FILE *file = fopen( argv[0], "r" );
+ off_t offset = ftello( file );
+ fseek( file, offset, SEEK_CUR );
+ fclose( file );
+ return 0;
+}
diff --git a/config.tests/unix/libjpeg/libjpeg.cpp b/config.tests/unix/libjpeg/libjpeg.cpp
new file mode 100644
index 0000000..de1fb7b
--- /dev/null
+++ b/config.tests/unix/libjpeg/libjpeg.cpp
@@ -0,0 +1,12 @@
+#include <sys/types.h>
+#include <stdio.h>
+extern "C" {
+#include <jpeglib.h>
+}
+
+int main(int, char **)
+{
+ j_compress_ptr cinfo;
+ jpeg_create_compress(cinfo);
+ return 0;
+}
diff --git a/config.tests/unix/libjpeg/libjpeg.pro b/config.tests/unix/libjpeg/libjpeg.pro
new file mode 100644
index 0000000..d06888c
--- /dev/null
+++ b/config.tests/unix/libjpeg/libjpeg.pro
@@ -0,0 +1,4 @@
+SOURCES = libjpeg.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -ljpeg
diff --git a/config.tests/unix/libmng/libmng.cpp b/config.tests/unix/libmng/libmng.cpp
new file mode 100644
index 0000000..cafb478
--- /dev/null
+++ b/config.tests/unix/libmng/libmng.cpp
@@ -0,0 +1,13 @@
+#include <libmng.h>
+
+int main(int, char **)
+{
+ mng_handle hMNG;
+ mng_cleanup(&hMNG);
+
+#if MNG_VERSION_MAJOR < 1 || (MNG_VERSION_MAJOR == 1 && MNG_VERSION_MINOR == 0 && MNG_VERSION_RELEASE < 9)
+#error System libmng version is less than 1.0.9; using built-in version instead.
+#endif
+
+ return 0;
+}
diff --git a/config.tests/unix/libmng/libmng.pro b/config.tests/unix/libmng/libmng.pro
new file mode 100644
index 0000000..ee57ecd
--- /dev/null
+++ b/config.tests/unix/libmng/libmng.pro
@@ -0,0 +1,4 @@
+SOURCES = libmng.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -lmng
diff --git a/config.tests/unix/libpng/libpng.cpp b/config.tests/unix/libpng/libpng.cpp
new file mode 100644
index 0000000..7a3f2a7
--- /dev/null
+++ b/config.tests/unix/libpng/libpng.cpp
@@ -0,0 +1,12 @@
+#include <png.h>
+
+#if !defined(PNG_LIBPNG_VER) || PNG_LIBPNG_VER < 10017
+# error "Required libpng version 1.0.17 not found."
+#endif
+
+int main(int, char **)
+{
+ png_structp png_ptr;
+ png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING,0,0,0);
+ return 0;
+}
diff --git a/config.tests/unix/libpng/libpng.pro b/config.tests/unix/libpng/libpng.pro
new file mode 100644
index 0000000..f038386
--- /dev/null
+++ b/config.tests/unix/libpng/libpng.pro
@@ -0,0 +1,4 @@
+SOURCES = libpng.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -lpng
diff --git a/config.tests/unix/libtiff/libtiff.cpp b/config.tests/unix/libtiff/libtiff.cpp
new file mode 100644
index 0000000..eac03ab
--- /dev/null
+++ b/config.tests/unix/libtiff/libtiff.cpp
@@ -0,0 +1,19 @@
+#include <tiffio.h>
+
+#if !defined(TIFF_VERSION)
+# error "Required libtiff not found"
+#elif TIFF_VERSION < 42
+# error "unsupported tiff version"
+#endif
+
+int main(int, char **)
+{
+ tdata_t buffer = _TIFFmalloc(128);
+ _TIFFfree(buffer);
+
+ // some libtiff implementations where TIFF_VERSION >= 42 do not
+ // have TIFFReadRGBAImageOriented(), so let's check for it
+ TIFFReadRGBAImageOriented(0, 0, 0, 0, 0, 0);
+
+ return 0;
+}
diff --git a/config.tests/unix/libtiff/libtiff.pro b/config.tests/unix/libtiff/libtiff.pro
new file mode 100644
index 0000000..60ba7d1
--- /dev/null
+++ b/config.tests/unix/libtiff/libtiff.pro
@@ -0,0 +1,4 @@
+SOURCES = libtiff.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -ltiff
diff --git a/config.tests/unix/makeabs b/config.tests/unix/makeabs
new file mode 100755
index 0000000..9d66108
--- /dev/null
+++ b/config.tests/unix/makeabs
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+FILE="$1"
+RES="$FILE"
+
+if [ `echo $FILE | cut -b1` = "/" ]; then
+ true
+else
+ RES="$PWD/$FILE"
+ test -d "$RES" && RES="$RES/"
+ RES=`echo "$RES" | sed "s,/\(\./\)*,/,g"`
+
+# note: this will only strip 1 /path/../ from RES, i.e. given /a/b/c/../../../, it returns /a/b/../../
+ RES=`echo "$RES" | sed "s,\(/[^/]*/\)\.\./,/,g"`
+
+ RES=`echo "$RES" | sed "s,//,/,g" | sed "s,/$,,"`
+fi
+echo $RES #return
+
diff --git a/config.tests/unix/mmx/mmx.cpp b/config.tests/unix/mmx/mmx.cpp
new file mode 100644
index 0000000..617cd62
--- /dev/null
+++ b/config.tests/unix/mmx/mmx.cpp
@@ -0,0 +1,10 @@
+#include <mmintrin.h>
+#if defined(__GNUC__) && __GNUC__ < 4 && __GNUC_MINOR__ < 3
+#error GCC < 3.2 is known to create internal compiler errors with our MMX code
+#endif
+
+int main(int, char**)
+{
+ _mm_empty();
+ return 0;
+}
diff --git a/config.tests/unix/mmx/mmx.pro b/config.tests/unix/mmx/mmx.pro
new file mode 100644
index 0000000..d2fea7f
--- /dev/null
+++ b/config.tests/unix/mmx/mmx.pro
@@ -0,0 +1,3 @@
+SOURCES = mmx.cpp
+CONFIG -= x11 qt
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/mremap/mremap.cpp b/config.tests/unix/mremap/mremap.cpp
new file mode 100644
index 0000000..1a2ada1
--- /dev/null
+++ b/config.tests/unix/mremap/mremap.cpp
@@ -0,0 +1,10 @@
+#include <unistd.h>
+#include <sys/mman.h>
+
+int main(int, char **)
+{
+ (void) ::mremap(static_cast<void *>(0), size_t(0), size_t(42), MREMAP_MAYMOVE);
+
+ return 0;
+}
+
diff --git a/config.tests/unix/mremap/mremap.pro b/config.tests/unix/mremap/mremap.pro
new file mode 100644
index 0000000..a36d756
--- /dev/null
+++ b/config.tests/unix/mremap/mremap.pro
@@ -0,0 +1,3 @@
+SOURCES = mremap.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/mysql/mysql.cpp b/config.tests/unix/mysql/mysql.cpp
new file mode 100644
index 0000000..c05da1c
--- /dev/null
+++ b/config.tests/unix/mysql/mysql.cpp
@@ -0,0 +1,6 @@
+#include "mysql.h"
+
+int main(int, char **)
+{
+ return 0;
+}
diff --git a/config.tests/unix/mysql/mysql.pro b/config.tests/unix/mysql/mysql.pro
new file mode 100644
index 0000000..a22579e
--- /dev/null
+++ b/config.tests/unix/mysql/mysql.pro
@@ -0,0 +1,4 @@
+SOURCES = mysql.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -lmysqlclient
diff --git a/config.tests/unix/mysql_r/mysql_r.pro b/config.tests/unix/mysql_r/mysql_r.pro
new file mode 100644
index 0000000..8c06067
--- /dev/null
+++ b/config.tests/unix/mysql_r/mysql_r.pro
@@ -0,0 +1,4 @@
+SOURCES = ../mysql/mysql.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -lmysqlclient_r
diff --git a/config.tests/unix/nis/nis.cpp b/config.tests/unix/nis/nis.cpp
new file mode 100644
index 0000000..65561f1
--- /dev/null
+++ b/config.tests/unix/nis/nis.cpp
@@ -0,0 +1,11 @@
+#include <sys/types.h>
+#include <rpc/rpc.h>
+#include <rpcsvc/ypclnt.h>
+#include <rpcsvc/yp_prot.h>
+
+int main(int, char **)
+{
+ char *d;
+ yp_get_default_domain(&d);
+ return 0;
+}
diff --git a/config.tests/unix/nis/nis.pro b/config.tests/unix/nis/nis.pro
new file mode 100644
index 0000000..1f985b2
--- /dev/null
+++ b/config.tests/unix/nis/nis.pro
@@ -0,0 +1,5 @@
+SOURCES = nis.cpp
+CONFIG -= qt dylib
+mac: CONFIG -= app_bundle
+solaris-*:LIBS += -lnsl
+else:LIBS += $$QMAKE_LIBS_NIS
diff --git a/config.tests/unix/objcopy.test b/config.tests/unix/objcopy.test
new file mode 100755
index 0000000..eb2173d
--- /dev/null
+++ b/config.tests/unix/objcopy.test
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+TEST_PATH=`dirname $0`
+SEP_DEBUG_SUPPORT=no
+COMPILER=$1
+QMAKE_OBJCOPY=$2
+VERBOSE=$3
+
+if [ -n "$QMAKE_OBJCOPY" ]; then
+ echo "int main() { return 0; }" > objcopy_test.cpp
+ if $TEST_PATH/which.test "$QMAKE_OBJCOPY" >/dev/null 2>&1 && $COMPILER -g -o objcopy_test objcopy_test.cpp >/dev/null 2>&1; then
+ "$QMAKE_OBJCOPY" --only-keep-debug objcopy_test objcopy_test.debug >/dev/null 2>&1 \
+ && "$QMAKE_OBJCOPY" --strip-debug objcopy_test >/dev/null 2>&1 \
+ && "$QMAKE_OBJCOPY" --add-gnu-debuglink=objcopy_test.debug objcopy_test >/dev/null 2>&1 \
+ && SEP_DEBUG_SUPPORT=yes
+ fi
+ rm -f objcopy_test objcopy_test.debug objcopy_test.cpp
+else
+ [ "$VERBOSE" = "yes" ] && echo "Separate debug info check skipped, QMAKE_OBJCOPY is unset.";
+fi
+
+# done
+if [ "$SEP_DEBUG_SUPPORT" != "yes" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "Separate debug info support disabled."
+ exit 0
+else
+ [ "$VERBOSE" = "yes" ] && echo "Separate debug info support enabled."
+ exit 1
+fi
diff --git a/config.tests/unix/oci/oci.cpp b/config.tests/unix/oci/oci.cpp
new file mode 100644
index 0000000..9f83a78
--- /dev/null
+++ b/config.tests/unix/oci/oci.cpp
@@ -0,0 +1,6 @@
+#include <oci.h>
+
+int main(int, char **)
+{
+ return 0;
+}
diff --git a/config.tests/unix/oci/oci.pro b/config.tests/unix/oci/oci.pro
new file mode 100644
index 0000000..4add225
--- /dev/null
+++ b/config.tests/unix/oci/oci.pro
@@ -0,0 +1,4 @@
+SOURCES = oci.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -lclntsh
diff --git a/config.tests/unix/odbc/odbc.cpp b/config.tests/unix/odbc/odbc.cpp
new file mode 100644
index 0000000..6b64e12
--- /dev/null
+++ b/config.tests/unix/odbc/odbc.cpp
@@ -0,0 +1,7 @@
+#include <sql.h>
+#include <sqlext.h>
+
+int main(int, char **)
+{
+ return 0;
+}
diff --git a/config.tests/unix/odbc/odbc.pro b/config.tests/unix/odbc/odbc.pro
new file mode 100644
index 0000000..c588ede
--- /dev/null
+++ b/config.tests/unix/odbc/odbc.pro
@@ -0,0 +1,4 @@
+SOURCES = odbc.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -lodbc
diff --git a/config.tests/unix/opengles1/opengles1.cpp b/config.tests/unix/opengles1/opengles1.cpp
new file mode 100644
index 0000000..a0060b4
--- /dev/null
+++ b/config.tests/unix/opengles1/opengles1.cpp
@@ -0,0 +1,12 @@
+#include <GLES/gl.h>
+#include <GLES/egl.h>
+
+int main(int, char **)
+{
+ GLfloat a = 1.0f;
+ eglInitialize(0, 0, 0);
+ glColor4f(a, a, a, a);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ return 0;
+}
diff --git a/config.tests/unix/opengles1/opengles1.pro b/config.tests/unix/opengles1/opengles1.pro
new file mode 100644
index 0000000..d800a5d
--- /dev/null
+++ b/config.tests/unix/opengles1/opengles1.pro
@@ -0,0 +1,9 @@
+SOURCES = opengles1.cpp
+INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+
+for(p, QMAKE_LIBDIR_OPENGL) {
+ exists($$p):LIBS += -L$$p
+}
+
+CONFIG -= qt
+LIBS += $$QMAKE_LIBS_OPENGL
diff --git a/config.tests/unix/opengles1cl/opengles1cl.cpp b/config.tests/unix/opengles1cl/opengles1cl.cpp
new file mode 100644
index 0000000..f864276
--- /dev/null
+++ b/config.tests/unix/opengles1cl/opengles1cl.cpp
@@ -0,0 +1,12 @@
+#include <GLES/gl.h>
+#include <GLES/egl.h>
+
+int main(int, char **)
+{
+ GLfixed a = 0;
+ eglInitialize(0, 0, 0);
+ glColor4x(a, a, a, a);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ return 0;
+}
diff --git a/config.tests/unix/opengles1cl/opengles1cl.pro b/config.tests/unix/opengles1cl/opengles1cl.pro
new file mode 100644
index 0000000..c9addf9
--- /dev/null
+++ b/config.tests/unix/opengles1cl/opengles1cl.pro
@@ -0,0 +1,9 @@
+SOURCES = opengles1cl.cpp
+INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+
+for(p, QMAKE_LIBDIR_OPENGL) {
+ exists($$p):LIBS += -L$$p
+}
+
+CONFIG -= qt
+LIBS += $$QMAKE_LIBS_OPENGL
diff --git a/config.tests/unix/opengles2/opengles2.cpp b/config.tests/unix/opengles2/opengles2.cpp
new file mode 100644
index 0000000..493530d
--- /dev/null
+++ b/config.tests/unix/opengles2/opengles2.cpp
@@ -0,0 +1,11 @@
+#include <EGL/egl.h>
+#include <GLES2/gl2.h>
+
+int main(int, char **)
+{
+ eglInitialize(0, 0, 0);
+ glUniform1f(1, GLfloat(1.0));
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ return 0;
+}
diff --git a/config.tests/unix/opengles2/opengles2.pro b/config.tests/unix/opengles2/opengles2.pro
new file mode 100644
index 0000000..13f95a1
--- /dev/null
+++ b/config.tests/unix/opengles2/opengles2.pro
@@ -0,0 +1,9 @@
+SOURCES = opengles2.cpp
+INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+
+for(p, QMAKE_LIBDIR_OPENGL) {
+ exists($$p):LIBS += -L$$p
+}
+
+CONFIG -= qt
+LIBS += $$QMAKE_LIBS_OPENGL
diff --git a/config.tests/unix/openssl/openssl.cpp b/config.tests/unix/openssl/openssl.cpp
new file mode 100644
index 0000000..5ca3e9c
--- /dev/null
+++ b/config.tests/unix/openssl/openssl.cpp
@@ -0,0 +1,9 @@
+#include <openssl/opensslv.h>
+
+#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER-0 < 0x0090700fL
+# error "OpenSSL >= 0.9.7 is required"
+#endif
+
+int main()
+{
+}
diff --git a/config.tests/unix/openssl/openssl.pri b/config.tests/unix/openssl/openssl.pri
new file mode 100644
index 0000000..bc95479
--- /dev/null
+++ b/config.tests/unix/openssl/openssl.pri
@@ -0,0 +1,9 @@
+!cross_compile {
+ TRY_INCLUDEPATHS = /include /usr/include /usr/local/include $$QMAKE_INCDIR $$INCLUDEPATH
+ # LSB doesn't allow using headers from /include or /usr/include
+ linux-lsb-g++:TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$INCLUDEPATH
+ for(p, TRY_INCLUDEPATHS) {
+ pp = $$join(p, "", "", "/openssl")
+ exists($$pp):INCLUDEPATH *= $$p
+ }
+}
diff --git a/config.tests/unix/openssl/openssl.pro b/config.tests/unix/openssl/openssl.pro
new file mode 100644
index 0000000..6891e78
--- /dev/null
+++ b/config.tests/unix/openssl/openssl.pro
@@ -0,0 +1,4 @@
+SOURCES = openssl.cpp
+CONFIG -= x11 qt
+mac:CONFIG -= app_bundle
+include(openssl.pri)
diff --git a/config.tests/unix/padstring b/config.tests/unix/padstring
new file mode 100755
index 0000000..283475d
--- /dev/null
+++ b/config.tests/unix/padstring
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+LEN="$1"
+STR="$2"
+PAD='\0'
+STRLEN=`echo $STR | wc -c`
+RES="$STR"
+
+EXTRALEN=`expr $LEN - $STRLEN`
+while [ "$EXTRALEN" -gt 32 ]; do
+ RES="$RES$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD$PAD"
+ EXTRALEN=`expr $EXTRALEN - 32`
+done
+while [ "$EXTRALEN" -gt 0 ]; do
+ RES="$RES$PAD"
+ EXTRALEN=`expr $EXTRALEN - 1`
+done
+cat <<EOF
+$RES
+EOF
+
+
diff --git a/config.tests/unix/precomp.test b/config.tests/unix/precomp.test
new file mode 100755
index 0000000..f7c5a02
--- /dev/null
+++ b/config.tests/unix/precomp.test
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+PRECOMP_SUPPORT=no
+COMPILER=$1
+VERBOSE=$2
+
+case "$COMPILER" in
+icpc)
+ cat >header.h <<EOF
+#define HEADER_H
+
+EOF
+ >header.cpp
+ cat >source.cpp <<EOF
+#ifndef HEADER_H
+#error no go
+#endif
+
+EOF
+
+ rm -f header.pchi
+ $COMPILER -pch-create header.pchi -include header.h -c header.cpp -o header.o >/dev/null 2>&1 \
+ && $COMPILER -pch-use header.pchi -include header.h -c source.cpp -o source.o >/dev/null 2>&1 \
+ && PRECOMP_SUPPORT=yes
+
+ rm -f header.h header.cpp source.cpp
+ rm -f header.pchi header.o source.o
+ ;;
+
+*g++*|c++)
+ case `"$COMPILER" -dumpversion 2>/dev/null` in
+ 3.*)
+ ;;
+ *)
+
+ >precomp_header.h
+ if $COMPILER -x c-header precomp_header.h >/dev/null 2>&1; then
+ $COMPILER -x c++-header precomp_header.h && PRECOMP_SUPPORT=yes
+ fi
+ rm -f precomp_header.h precomp_header.h.gch
+ ;;
+ esac
+ ;;
+esac
+
+
+# done
+if [ "$PRECOMP_SUPPORT" != "yes" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "Precompiled-headers support disabled."
+ exit 0
+else
+ [ "$VERBOSE" = "yes" ] && echo "Precompiled-headers support enabled."
+ exit 1
+fi
diff --git a/config.tests/unix/psql/psql.cpp b/config.tests/unix/psql/psql.cpp
new file mode 100644
index 0000000..4974425
--- /dev/null
+++ b/config.tests/unix/psql/psql.cpp
@@ -0,0 +1,8 @@
+#include "libpq-fe.h"
+
+int main(int, char **)
+{
+ PQescapeBytea(0, 0, 0);
+ PQunescapeBytea(0, 0);
+ return 0;
+}
diff --git a/config.tests/unix/psql/psql.pro b/config.tests/unix/psql/psql.pro
new file mode 100644
index 0000000..64bb3d6
--- /dev/null
+++ b/config.tests/unix/psql/psql.pro
@@ -0,0 +1,4 @@
+SOURCES = psql.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -lpq
diff --git a/config.tests/unix/ptrsize.test b/config.tests/unix/ptrsize.test
new file mode 100755
index 0000000..1307cec
--- /dev/null
+++ b/config.tests/unix/ptrsize.test
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+QMKSPEC=$1
+VERBOSE=$2
+SRCDIR=$3
+OUTDIR=$4
+
+# debuggery
+[ "$VERBOSE" = "yes" ] && echo "Testing size of pointers ... ($*)"
+
+# build and run a test program
+test -d "$OUTDIR/config.tests/unix/ptrsize" || mkdir -p "$OUTDIR/config.tests/unix/ptrsize"
+"$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "$SRCDIR/config.tests/unix/ptrsize/ptrsizetest.pro" -o "$OUTDIR/config.tests/unix/ptrsize/Makefile" >/dev/null 2>&1
+cd "$OUTDIR/config.tests/unix/ptrsize"
+
+if [ "$VERBOSE" = "yes" ]; then
+ (make clean && make)
+else
+ (make clean && make) >/dev/null 2>&1
+fi
+RETVAL=$?
+
+if [ "$RETVAL" -ne 0 ]; then
+ PTRSIZE=4
+else
+ PTRSIZE=8
+fi
+
+
+# done
+[ "$VERBOSE" = "yes" ] && echo "Pointer size: $PTRSIZE"
+exit $PTRSIZE
diff --git a/config.tests/unix/ptrsize/ptrsizetest.cpp b/config.tests/unix/ptrsize/ptrsizetest.cpp
new file mode 100644
index 0000000..9e15e81
--- /dev/null
+++ b/config.tests/unix/ptrsize/ptrsizetest.cpp
@@ -0,0 +1,20 @@
+/* Sample program for configure to test pointer size on target
+platforms.
+*/
+
+template<int>
+struct QPointerSizeTest
+{
+};
+
+template<>
+struct QPointerSizeTest<8>
+{
+ enum { PointerSize = 8 };
+};
+
+int main( int, char ** )
+{
+ return QPointerSizeTest<sizeof(void*)>::PointerSize;
+}
+
diff --git a/config.tests/unix/ptrsize/ptrsizetest.pro b/config.tests/unix/ptrsize/ptrsizetest.pro
new file mode 100644
index 0000000..41aba86
--- /dev/null
+++ b/config.tests/unix/ptrsize/ptrsizetest.pro
@@ -0,0 +1,3 @@
+SOURCES = ptrsizetest.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/sqlite/sqlite.cpp b/config.tests/unix/sqlite/sqlite.cpp
new file mode 100644
index 0000000..fe7301e
--- /dev/null
+++ b/config.tests/unix/sqlite/sqlite.cpp
@@ -0,0 +1,6 @@
+#include <sqlite3.h>
+
+int main(int, char **)
+{
+ return 0;
+}
diff --git a/config.tests/unix/sqlite/sqlite.pro b/config.tests/unix/sqlite/sqlite.pro
new file mode 100644
index 0000000..ba2cac1
--- /dev/null
+++ b/config.tests/unix/sqlite/sqlite.pro
@@ -0,0 +1,3 @@
+SOURCES = sqlite.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/sqlite2/sqlite2.cpp b/config.tests/unix/sqlite2/sqlite2.cpp
new file mode 100644
index 0000000..22c21ca
--- /dev/null
+++ b/config.tests/unix/sqlite2/sqlite2.cpp
@@ -0,0 +1,6 @@
+#include <sqlite.h>
+
+int main(int, char **)
+{
+ return 0;
+}
diff --git a/config.tests/unix/sqlite2/sqlite2.pro b/config.tests/unix/sqlite2/sqlite2.pro
new file mode 100644
index 0000000..14a64d5
--- /dev/null
+++ b/config.tests/unix/sqlite2/sqlite2.pro
@@ -0,0 +1,4 @@
+SOURCES = sqlite2.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -lsqlite
diff --git a/config.tests/unix/sse/sse.cpp b/config.tests/unix/sse/sse.cpp
new file mode 100644
index 0000000..e1c23bd
--- /dev/null
+++ b/config.tests/unix/sse/sse.cpp
@@ -0,0 +1,11 @@
+#include <xmmintrin.h>
+#if defined(__GNUC__) && __GNUC__ < 4 && __GNUC_MINOR__ < 3
+#error GCC < 3.2 is known to create internal compiler errors with our MMX code
+#endif
+
+int main(int, char**)
+{
+ __m64 a = _mm_setzero_si64();
+ a = _mm_shuffle_pi16(a, 0);
+ return _m_to_int(a);
+}
diff --git a/config.tests/unix/sse/sse.pro b/config.tests/unix/sse/sse.pro
new file mode 100644
index 0000000..4cc34a7
--- /dev/null
+++ b/config.tests/unix/sse/sse.pro
@@ -0,0 +1,3 @@
+SOURCES = sse.cpp
+CONFIG -= x11 qt
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/sse2/sse2.cpp b/config.tests/unix/sse2/sse2.cpp
new file mode 100644
index 0000000..ea0737d
--- /dev/null
+++ b/config.tests/unix/sse2/sse2.cpp
@@ -0,0 +1,11 @@
+#include <emmintrin.h>
+#if defined(__GNUC__) && __GNUC__ < 4 && __GNUC_MINOR__ < 3
+#error GCC < 3.2 is known to create internal compiler errors with our MMX code
+#endif
+
+int main(int, char**)
+{
+ __m128i a = _mm_setzero_si128();
+ _mm_maskmoveu_si128(a, _mm_setzero_si128(), 0);
+ return 0;
+}
diff --git a/config.tests/unix/sse2/sse2.pro b/config.tests/unix/sse2/sse2.pro
new file mode 100644
index 0000000..d4a21aa
--- /dev/null
+++ b/config.tests/unix/sse2/sse2.pro
@@ -0,0 +1,3 @@
+SOURCES = sse2.cpp
+CONFIG -= x11 qt
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/stdint/main.cpp b/config.tests/unix/stdint/main.cpp
new file mode 100644
index 0000000..91e5c3a
--- /dev/null
+++ b/config.tests/unix/stdint/main.cpp
@@ -0,0 +1,8 @@
+/* Check for the presence of stdint.h */
+#include <stdint.h>
+
+int main()
+{
+ return 0;
+}
+
diff --git a/config.tests/unix/stdint/stdint.pro b/config.tests/unix/stdint/stdint.pro
new file mode 100644
index 0000000..79a0d9c
--- /dev/null
+++ b/config.tests/unix/stdint/stdint.pro
@@ -0,0 +1,4 @@
+SOURCES = main.cpp
+CONFIG -= x11 qt
+mac:CONFIG -= app_bundle
+
diff --git a/config.tests/unix/stl/stl.pro b/config.tests/unix/stl/stl.pro
new file mode 100644
index 0000000..a2feab4
--- /dev/null
+++ b/config.tests/unix/stl/stl.pro
@@ -0,0 +1,3 @@
+SOURCES = stltest.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/stl/stltest.cpp b/config.tests/unix/stl/stltest.cpp
new file mode 100644
index 0000000..ff653a4
--- /dev/null
+++ b/config.tests/unix/stl/stltest.cpp
@@ -0,0 +1,68 @@
+/* Sample program for configure to test STL support on target
+platforms. We are mainly concerned with being able to instantiate
+templates for common STL container classes.
+*/
+
+#include <iterator>
+#include <map>
+#include <vector>
+#include <algorithm>
+#include <iostream>
+
+int main()
+{
+ std::vector<int> v1;
+ v1.push_back( 0 );
+ v1.push_back( 1 );
+ v1.push_back( 2 );
+ v1.push_back( 3 );
+ v1.push_back( 4 );
+ int v1size = v1.size();
+ v1size = 0;
+ int v1capacity = v1.capacity();
+ v1capacity = 0;
+
+ std::vector<int>::iterator v1it = std::find( v1.begin(), v1.end(), 99 );
+ bool v1notfound = (v1it == v1.end());
+ v1notfound = false;
+
+ v1it = std::find( v1.begin(), v1.end(), 3 );
+ bool v1found = (v1it != v1.end());
+ v1found = false;
+
+ std::vector<int> v2;
+ std::copy( v1.begin(), v1it, std::back_inserter( v2 ) );
+ int v2size = v2.size();
+ v2size = 0;
+
+ std::map<int, double> m1;
+ m1.insert( std::make_pair( 1, 2.0 ) );
+ m1.insert( std::make_pair( 3, 2.0 ) );
+ m1.insert( std::make_pair( 5, 2.0 ) );
+ m1.insert( std::make_pair( 7, 2.0 ) );
+ int m1size = m1.size();
+ m1size = 0;
+ std::map<int,double>::iterator m1it = m1.begin();
+ for ( ; m1it != m1.end(); ++m1it ) {
+ int first = (*m1it).first;
+ first = 0;
+ double second = (*m1it).second;
+ second = 0.0;
+ }
+ std::map< int, double > m2( m1 );
+ int m2size = m2.size();
+ m2size = 0;
+
+ return 0;
+}
+
+// something mean to see if the compiler and C++ standard lib are good enough
+template<class K, class T>
+class DummyClass
+{
+ // everything in std namespace ?
+ typedef std::bidirectional_iterator_tag i;
+ typedef std::ptrdiff_t d;
+ // typename implemented ?
+ typedef typename std::map<K,T>::iterator MyIterator;
+};
diff --git a/config.tests/unix/tds/tds.cpp b/config.tests/unix/tds/tds.cpp
new file mode 100644
index 0000000..54a4859
--- /dev/null
+++ b/config.tests/unix/tds/tds.cpp
@@ -0,0 +1,7 @@
+#include <sybfront.h>
+#include <sybdb.h>
+
+int main(int, char **)
+{
+ return 0;
+}
diff --git a/config.tests/unix/tds/tds.pro b/config.tests/unix/tds/tds.pro
new file mode 100644
index 0000000..5516a14
--- /dev/null
+++ b/config.tests/unix/tds/tds.pro
@@ -0,0 +1,4 @@
+SOURCES = tds.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -lsybdb
diff --git a/config.tests/unix/tslib/tslib.cpp b/config.tests/unix/tslib/tslib.cpp
new file mode 100644
index 0000000..7cd55ca
--- /dev/null
+++ b/config.tests/unix/tslib/tslib.cpp
@@ -0,0 +1,7 @@
+#include <tslib.h>
+
+int main()
+{
+ ts_open("foo", 0);
+ return 0;
+}
diff --git a/config.tests/unix/tslib/tslib.pro b/config.tests/unix/tslib/tslib.pro
new file mode 100644
index 0000000..1191120
--- /dev/null
+++ b/config.tests/unix/tslib/tslib.pro
@@ -0,0 +1,3 @@
+SOURCES = tslib.cpp
+CONFIG -= qt
+LIBS += -lts
diff --git a/config.tests/unix/which.test b/config.tests/unix/which.test
new file mode 100755
index 0000000..37c858c
--- /dev/null
+++ b/config.tests/unix/which.test
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+HOME=/dev/null
+export HOME
+
+unset which
+
+WHICH=`which which 2>/dev/null`
+if echo $WHICH | grep 'shell built-in command' >/dev/null 2>&1; then
+ WHICH=which
+elif [ -z "$WHICH" ]; then
+ if which which >/dev/null 2>&1; then
+ WHICH=which
+ else
+ for a in /usr/ucb /usr/bin /bin /usr/local/bin; do
+ if [ -x $a/which ]; then
+ WHICH=$a/which
+ break;
+ fi
+ done
+ fi
+fi
+
+if [ -z "$WHICH" ]; then
+ IFS=:
+ for a in $PATH; do
+ if [ -x $a/$1 ]; then
+ echo "$a/$1"
+ exit 0
+ fi
+ done
+else
+ a=`"$WHICH" "$1" 2>/dev/null`
+ if [ ! -z "$a" -a -x "$a" ]; then
+ echo "$a"
+ exit 0
+ fi
+fi
+exit 1
diff --git a/config.tests/unix/zlib/zlib.cpp b/config.tests/unix/zlib/zlib.cpp
new file mode 100644
index 0000000..58a286f
--- /dev/null
+++ b/config.tests/unix/zlib/zlib.cpp
@@ -0,0 +1,13 @@
+#include <zlib.h>
+
+int main(int, char **)
+{
+ z_streamp stream;
+ stream = 0;
+ const char *ver = zlibVersion();
+ ver = 0;
+ // compress2 was added in zlib version 1.0.8
+ int res = compress2(0, 0, 0, 0, 1);
+ res = 0;
+ return 0;
+}
diff --git a/config.tests/unix/zlib/zlib.pro b/config.tests/unix/zlib/zlib.pro
new file mode 100644
index 0000000..67cc870
--- /dev/null
+++ b/config.tests/unix/zlib/zlib.pro
@@ -0,0 +1,4 @@
+SOURCES = zlib.cpp
+CONFIG -= qt dylib
+mac:CONFIG -= app_bundle
+LIBS += -lz
diff --git a/config.tests/x11/fontconfig/fontconfig.cpp b/config.tests/x11/fontconfig/fontconfig.cpp
new file mode 100644
index 0000000..8501162
--- /dev/null
+++ b/config.tests/x11/fontconfig/fontconfig.cpp
@@ -0,0 +1,20 @@
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include <fontconfig/fontconfig.h>
+
+#ifndef FC_RGBA_UNKNOWN
+# error "This version of fontconfig is tool old, it is missing the FC_RGBA_UNKNOWN define"
+#endif
+
+#if ((FREETYPE_MAJOR*10000 + FREETYPE_MINOR*100 + FREETYPE_PATCH) < 20103)
+# error "This version of freetype is too old."
+#endif
+
+int main(int, char **)
+{
+ FT_Face face;
+ face = 0;
+ FcPattern *pattern;
+ pattern = 0;
+ return 0;
+}
diff --git a/config.tests/x11/fontconfig/fontconfig.pro b/config.tests/x11/fontconfig/fontconfig.pro
new file mode 100644
index 0000000..718a820
--- /dev/null
+++ b/config.tests/x11/fontconfig/fontconfig.pro
@@ -0,0 +1,5 @@
+SOURCES = fontconfig.cpp
+CONFIG += x11
+CONFIG -= qt
+LIBS += -lfreetype -lfontconfig
+include(../../unix/freetype/freetype.pri)
diff --git a/config.tests/x11/glxfbconfig/glxfbconfig.cpp b/config.tests/x11/glxfbconfig/glxfbconfig.cpp
new file mode 100644
index 0000000..e86b02a
--- /dev/null
+++ b/config.tests/x11/glxfbconfig/glxfbconfig.cpp
@@ -0,0 +1,10 @@
+#include <GL/gl.h>
+#include <GL/glx.h>
+
+int main(int, char **)
+{
+ GLXFBConfig config;
+ config = 0;
+
+ return 0;
+}
diff --git a/config.tests/x11/glxfbconfig/glxfbconfig.pro b/config.tests/x11/glxfbconfig/glxfbconfig.pro
new file mode 100644
index 0000000..4705ca6
--- /dev/null
+++ b/config.tests/x11/glxfbconfig/glxfbconfig.pro
@@ -0,0 +1,10 @@
+SOURCES = glxfbconfig.cpp
+CONFIG += x11
+INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+
+for(p, QMAKE_LIBDIR_OPENGL) {
+ exists($$p):LIBS += -L$$p
+}
+
+CONFIG -= qt
+LIBS += -lGL -lGLU
diff --git a/config.tests/x11/mitshm/mitshm.cpp b/config.tests/x11/mitshm/mitshm.cpp
new file mode 100644
index 0000000..b9be2e0
--- /dev/null
+++ b/config.tests/x11/mitshm/mitshm.cpp
@@ -0,0 +1,22 @@
+#ifdef Q_OS_HPUX
+#error "MITSHM not supported on HP-UX."
+#else
+#include <X11/Xlib.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#include <X11/extensions/XShm.h>
+
+int main(int, char **)
+{
+ Display *dpy = 0;
+ int minor;
+ int major;
+ int pixmaps;
+ if (dpy && XShmQueryVersion(dpy, &major, &minor, &pixmaps)) {
+ minor = 0;
+ major = 0;
+ pixmaps = 0;
+ }
+ return 0;
+}
+#endif
diff --git a/config.tests/x11/mitshm/mitshm.pro b/config.tests/x11/mitshm/mitshm.pro
new file mode 100644
index 0000000..8a40317
--- /dev/null
+++ b/config.tests/x11/mitshm/mitshm.pro
@@ -0,0 +1,5 @@
+SOURCES = mitshm.cpp
+CONFIG += x11
+CONFIG -= qt
+LIBS += -lXext
+hpux*:DEFINES+=Q_OS_HPUX
diff --git a/config.tests/x11/notype.test b/config.tests/x11/notype.test
new file mode 100755
index 0000000..a522491
--- /dev/null
+++ b/config.tests/x11/notype.test
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+QMKSPEC=$1
+XPLATFORM=`basename $1`
+VERBOSE=$2
+SRCDIR=$3
+OUTDIR=$4
+
+# debuggery
+[ "$VERBOSE" = "yes" ] && echo "Detecting broken X11 headers... ($*)"
+
+# Detect broken X11 headers when using GCC 2.95 or later
+# Xsun on Solaris 2.5.1:
+# Patches are available for Solaris 2.6, 7, and 8 but
+# not for Solaris 2.5.1.
+# HP-UX:
+# Patches are available for HP-UX 10.20, 11.00, and 11.11.
+# AIX 4.3.3 and AIX 5.1:
+# Headers are clearly broken on all AIX versions, and we
+# don't know of any patches. The strange thing is that we
+# did not get any reports about this issue until very
+# recently, long after gcc 3.0.x was released. It seems to
+# work for us with gcc 2.95.2.
+NOTYPE=no
+
+if [ $XPLATFORM = "solaris-g++" -o $XPLATFORM = "hpux-g++" -o $XPLATFORM = "aix-g++" -o $XPLATFORM = "aix-g++-64" ]; then
+ NOTYPE=yes
+
+ test -d "$OUTDIR/config.tests/x11/notype" || mkdir -p "$OUTDIR/config.tests/x11/notype"
+ "$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "$SRCDIR/config.tests/x11/notype/notypetest.pro" -o "$OUTDIR/config.tests/x11/notype/Makefile" >/dev/null 2>&1
+ cd "$OUTDIR/config.tests/x11/notype"
+
+ if [ "$VERBOSE" = "yes" ]; then
+ make
+ else
+ make >/dev/null 2>&1
+ fi
+
+ [ -x notypetest ] && NOTYPE=no
+fi
+
+# done
+if [ "$NOTYPE" = "yes" ]; then
+ [ "$VERBOSE" = "yes" ] && echo "Broken X11 headers detected."
+ exit 0
+else
+ [ "$VERBOSE" = "yes" ] && echo "X11 headers look good."
+ exit 1
+fi
diff --git a/config.tests/x11/notype/notypetest.cpp b/config.tests/x11/notype/notypetest.cpp
new file mode 100644
index 0000000..b33949c
--- /dev/null
+++ b/config.tests/x11/notype/notypetest.cpp
@@ -0,0 +1,11 @@
+/* Sample program for configure to test for broken X11 headers that
+confuse gcc 2.95 and better on target platforms such as Solaris.
+*/
+
+#include <X11/Xlib.h>
+#include <X11/ICE/ICElib.h>
+
+int main()
+{
+ return 0;
+}
diff --git a/config.tests/x11/notype/notypetest.pro b/config.tests/x11/notype/notypetest.pro
new file mode 100644
index 0000000..6ce2c62
--- /dev/null
+++ b/config.tests/x11/notype/notypetest.pro
@@ -0,0 +1,5 @@
+TEMPLATE=app
+TARGET=notypetest
+CONFIG-=qt
+CONFIG+=x11
+SOURCES=notypetest.cpp
diff --git a/config.tests/x11/opengl/opengl.cpp b/config.tests/x11/opengl/opengl.cpp
new file mode 100644
index 0000000..ad69379
--- /dev/null
+++ b/config.tests/x11/opengl/opengl.cpp
@@ -0,0 +1,13 @@
+#include <GL/gl.h>
+#include <GL/glu.h>
+
+#ifndef GLU_VERSION_1_2
+# error "Required GLU version 1.2 not found."
+#endif
+
+int main(int, char **)
+{
+ GLuint x;
+ x = 0;
+ return 0;
+}
diff --git a/config.tests/x11/opengl/opengl.pro b/config.tests/x11/opengl/opengl.pro
new file mode 100644
index 0000000..432bd8d
--- /dev/null
+++ b/config.tests/x11/opengl/opengl.pro
@@ -0,0 +1,10 @@
+SOURCES = opengl.cpp
+CONFIG += x11
+INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+
+for(p, QMAKE_LIBDIR_OPENGL) {
+ exists($$p):LIBS += -L$$p
+}
+
+CONFIG -= qt
+LIBS += -lGL -lGLU
diff --git a/config.tests/x11/sm/sm.cpp b/config.tests/x11/sm/sm.cpp
new file mode 100644
index 0000000..8bb5ffb
--- /dev/null
+++ b/config.tests/x11/sm/sm.cpp
@@ -0,0 +1,8 @@
+#include <X11/SM/SMlib.h>
+
+int main(int, char **)
+{
+ SmPointer pointer;
+ pointer = 0;
+ return 0;
+}
diff --git a/config.tests/x11/sm/sm.pro b/config.tests/x11/sm/sm.pro
new file mode 100644
index 0000000..9be43d8
--- /dev/null
+++ b/config.tests/x11/sm/sm.pro
@@ -0,0 +1,4 @@
+SOURCES += sm.cpp
+CONFIG += x11
+CONFIG -= qt
+LIBS += $$QMAKE_LIBS_X11SM
diff --git a/config.tests/x11/xcursor/xcursor.cpp b/config.tests/x11/xcursor/xcursor.cpp
new file mode 100644
index 0000000..08cd94b
--- /dev/null
+++ b/config.tests/x11/xcursor/xcursor.cpp
@@ -0,0 +1,25 @@
+#include <X11/Xlib.h>
+#include <X11/Xcursor/Xcursor.h>
+
+#if !defined(XCURSOR_LIB_MAJOR)
+# define XCURSOR_LIB_MAJOR XCURSOR_MAJOR
+#endif
+#if !defined(XCURSOR_LIB_MINOR)
+# define XCURSOR_LIB_MINOR XCURSOR_MINOR
+#endif
+
+#if XCURSOR_LIB_MAJOR == 1 && XCURSOR_LIB_MINOR >= 0
+# define XCURSOR_FOUND
+#else
+# define
+# error "Required Xcursor version 1.0 not found."
+#endif
+
+int main(int, char **)
+{
+ XcursorImage *image;
+ image = 0;
+ XcursorCursors *cursors;
+ cursors = 0;
+ return 0;
+}
diff --git a/config.tests/x11/xcursor/xcursor.pro b/config.tests/x11/xcursor/xcursor.pro
new file mode 100644
index 0000000..b1e69be
--- /dev/null
+++ b/config.tests/x11/xcursor/xcursor.pro
@@ -0,0 +1,4 @@
+SOURCES = xcursor.cpp
+CONFIG += x11
+CONFIG -= qt
+LIBS += -lXcursor
diff --git a/config.tests/x11/xfixes/xfixes.cpp b/config.tests/x11/xfixes/xfixes.cpp
new file mode 100644
index 0000000..fd36480
--- /dev/null
+++ b/config.tests/x11/xfixes/xfixes.cpp
@@ -0,0 +1,14 @@
+#include <X11/Xlib.h>
+#include <X11/extensions/Xfixes.h>
+
+#if XFIXES_MAJOR < 2
+# error "Required Xfixes version 2.0 not found."
+#endif
+
+int main(int, char **)
+{
+ XFixesSelectionNotifyEvent event;
+ event.type = 0;
+ return 0;
+}
+
diff --git a/config.tests/x11/xfixes/xfixes.pro b/config.tests/x11/xfixes/xfixes.pro
new file mode 100644
index 0000000..cc94a11
--- /dev/null
+++ b/config.tests/x11/xfixes/xfixes.pro
@@ -0,0 +1,3 @@
+CONFIG += x11
+CONFIG -= qt
+SOURCES = xfixes.cpp
diff --git a/config.tests/x11/xinerama/xinerama.cpp b/config.tests/x11/xinerama/xinerama.cpp
new file mode 100644
index 0000000..2cb3cf9
--- /dev/null
+++ b/config.tests/x11/xinerama/xinerama.cpp
@@ -0,0 +1,9 @@
+#include <X11/Xlib.h>
+#include <X11/extensions/Xinerama.h>
+
+int main(int, char **)
+{
+ XineramaScreenInfo *info;
+ info = 0;
+ return 0;
+}
diff --git a/config.tests/x11/xinerama/xinerama.pro b/config.tests/x11/xinerama/xinerama.pro
new file mode 100644
index 0000000..54d1af0
--- /dev/null
+++ b/config.tests/x11/xinerama/xinerama.pro
@@ -0,0 +1,4 @@
+SOURCES = xinerama.cpp
+CONFIG += x11
+CONFIG -= qt
+LIBS += -lXinerama
diff --git a/config.tests/x11/xinput/xinput.cpp b/config.tests/x11/xinput/xinput.cpp
new file mode 100644
index 0000000..9a61bc2
--- /dev/null
+++ b/config.tests/x11/xinput/xinput.cpp
@@ -0,0 +1,18 @@
+#ifdef Q_OS_SOLARIS
+#error "Not supported."
+#else
+
+#include <X11/Xlib.h>
+#include <X11/extensions/XInput.h>
+
+#ifdef Q_OS_IRIX
+# include <wacom.h>
+#endif
+
+int main(int, char **)
+{
+ XDeviceButtonEvent *event;
+ event = 0;
+ return 0;
+}
+#endif
diff --git a/config.tests/x11/xinput/xinput.pro b/config.tests/x11/xinput/xinput.pro
new file mode 100644
index 0000000..8acaede
--- /dev/null
+++ b/config.tests/x11/xinput/xinput.pro
@@ -0,0 +1,6 @@
+SOURCES = xinput.cpp
+CONFIG += x11
+CONFIG -= qt
+LIBS += -lXi
+irix-*:DEFINES+=Q_OS_IRIX
+solaris-*:DEFINES+=Q_OS_SOLARIS
diff --git a/config.tests/x11/xkb/xkb.cpp b/config.tests/x11/xkb/xkb.cpp
new file mode 100644
index 0000000..afe3c57
--- /dev/null
+++ b/config.tests/x11/xkb/xkb.cpp
@@ -0,0 +1,30 @@
+#include <X11/Xlib.h>
+#include <X11/XKBlib.h>
+
+int main(int, char **)
+{
+ Display *display = 0;
+
+ int opcode = -1;
+ int xkbEventBase = -1;
+ int xkbErrorBase = -1;
+ int xkblibMajor = XkbMajorVersion;
+ int xkblibMinor = XkbMinorVersion;
+ XkbQueryExtension(display, &opcode, &xkbEventBase, &xkbErrorBase, &xkblibMajor, &xkblibMinor);
+
+ int keycode = 0;
+ unsigned int state = 0;
+ KeySym keySym;
+ unsigned int consumedModifiers;
+ XkbLookupKeySym(display, keycode, state, &consumedModifiers, &keySym);
+
+ XkbDescPtr xkbDesc = XkbGetMap(display, XkbAllClientInfoMask, XkbUseCoreKbd);
+ int w = XkbKeyGroupsWidth(xkbDesc, keycode);
+ keySym = XkbKeySym(xkbDesc, keycode, w-1);
+ XkbFreeClientMap(xkbDesc, XkbAllClientInfoMask, true);
+
+ state = XkbPCF_GrabsUseXKBStateMask;
+ (void) XkbSetPerClientControls(display, state, &state);
+
+ return 0;
+}
diff --git a/config.tests/x11/xkb/xkb.pro b/config.tests/x11/xkb/xkb.pro
new file mode 100644
index 0000000..d4ec222
--- /dev/null
+++ b/config.tests/x11/xkb/xkb.pro
@@ -0,0 +1,3 @@
+SOURCES = xkb.cpp
+CONFIG += x11
+CONFIG -= qt
diff --git a/config.tests/x11/xrandr/xrandr.cpp b/config.tests/x11/xrandr/xrandr.cpp
new file mode 100644
index 0000000..cd61c2d
--- /dev/null
+++ b/config.tests/x11/xrandr/xrandr.cpp
@@ -0,0 +1,13 @@
+#include <X11/Xlib.h>
+#include <X11/extensions/Xrandr.h>
+
+#if RANDR_MAJOR != 1 || RANDR_MINOR < 1
+# error "Requried Xrandr version 1.1 not found."
+#endif
+
+int main(int, char **)
+{
+ XRRScreenSize *size;
+ size = 0;
+ return 0;
+}
diff --git a/config.tests/x11/xrandr/xrandr.pro b/config.tests/x11/xrandr/xrandr.pro
new file mode 100644
index 0000000..3fb2910
--- /dev/null
+++ b/config.tests/x11/xrandr/xrandr.pro
@@ -0,0 +1,4 @@
+SOURCES = xrandr.cpp
+CONFIG += x11
+CONFIG -= qt
+LIBS += -lXrender -lXrandr
diff --git a/config.tests/x11/xrender/xrender.cpp b/config.tests/x11/xrender/xrender.cpp
new file mode 100644
index 0000000..7974d73
--- /dev/null
+++ b/config.tests/x11/xrender/xrender.cpp
@@ -0,0 +1,13 @@
+#include <X11/Xlib.h>
+#include <X11/extensions/Xrender.h>
+
+#if RENDER_MAJOR == 0 && RENDER_MINOR < 5
+# error "Required Xrender version 0.6 not found."
+#else
+int main(int, char **)
+{
+ XRenderPictFormat *format;
+ format = 0;
+ return 0;
+}
+#endif
diff --git a/config.tests/x11/xrender/xrender.pro b/config.tests/x11/xrender/xrender.pro
new file mode 100644
index 0000000..e778642
--- /dev/null
+++ b/config.tests/x11/xrender/xrender.pro
@@ -0,0 +1,4 @@
+SOURCES = xrender.cpp
+CONFIG += x11
+CONFIG -= qt
+LIBS += -lXrender
diff --git a/config.tests/x11/xshape/xshape.cpp b/config.tests/x11/xshape/xshape.cpp
new file mode 100644
index 0000000..01b5ef4
--- /dev/null
+++ b/config.tests/x11/xshape/xshape.cpp
@@ -0,0 +1,10 @@
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/extensions/shape.h>
+
+int main(int, char **)
+{
+ XShapeEvent shapeevent;
+ shapeevent.type = 0;
+ return 0;
+}
diff --git a/config.tests/x11/xshape/xshape.pro b/config.tests/x11/xshape/xshape.pro
new file mode 100644
index 0000000..611c048
--- /dev/null
+++ b/config.tests/x11/xshape/xshape.pro
@@ -0,0 +1,3 @@
+CONFIG += x11
+CONFIG -= qt
+SOURCES = xshape.cpp
diff --git a/configure b/configure
new file mode 100755
index 0000000..269d88c
--- /dev/null
+++ b/configure
@@ -0,0 +1,7270 @@
+#!/bin/sh
+#
+# Configures to build the Qt library
+#
+# Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Contact: Qt Software Information (qt-info@nokia.com)
+#
+# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+#
+
+#-------------------------------------------------------------------------------
+# script initialization
+#-------------------------------------------------------------------------------
+
+# the name of this script
+relconf=`basename $0`
+# the directory of this script is the "source tree"
+relpath=`dirname $0`
+relpath=`(cd "$relpath"; /bin/pwd)`
+# the current directory is the "build tree" or "object tree"
+outpath=`/bin/pwd`
+
+#license file location
+LICENSE_FILE="$QT_LICENSE_FILE"
+[ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
+if [ -f "$LICENSE_FILE" ]; then
+ tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
+ diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
+fi
+
+# later cache the command line in config.status
+OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
+
+# initialize global variables
+QMAKE_SWITCHES=
+QMAKE_VARS=
+QMAKE_CONFIG=
+QTCONFIG_CONFIG=
+QT_CONFIG=
+SUPPORTED=
+QMAKE_VARS_FILE=.qmake.vars
+
+:> "$QMAKE_VARS_FILE"
+
+#-------------------------------------------------------------------------------
+# utility functions
+#-------------------------------------------------------------------------------
+
+# Adds a new qmake variable to the cache
+# Usage: QMakeVar mode varname contents
+# where mode is one of: set, add, del
+QMakeVar()
+{
+ case "$1" in
+ set)
+ eq="="
+ ;;
+ add)
+ eq="+="
+ ;;
+ del)
+ eq="-="
+ ;;
+ *)
+ echo >&2 "BUG: wrong command to QMakeVar: $1"
+ ;;
+ esac
+
+ echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
+}
+
+# relies on $QMAKESPEC being set correctly. parses include statements in
+# qmake.conf and prints out the expanded file
+getQMakeConf()
+{
+ tmpSPEC="$QMAKESPEC"
+ if [ -n "$1" ]; then
+ tmpSPEC="$1"
+ fi
+ $AWK -v "QMAKESPEC=$tmpSPEC" '
+/^include\(.+\)$/{
+ fname = QMAKESPEC "/" substr($0, 9, length($0) - 9)
+ while ((getline line < fname) > 0)
+ print line
+ close(fname)
+ next
+}
+{ print }' "$tmpSPEC/qmake.conf"
+}
+
+#-------------------------------------------------------------------------------
+# operating system detection
+#-------------------------------------------------------------------------------
+
+# need that throughout the script
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+
+#-------------------------------------------------------------------------------
+# window system detection
+#-------------------------------------------------------------------------------
+
+PLATFORM_X11=no
+PLATFORM_MAC=no
+PLATFORM_QWS=no
+
+if [ -f "$relpath"/src/gui/kernel/qapplication_mac.mm ] && [ -d /System/Library/Frameworks/Carbon.framework ]; then
+ # Qt/Mac
+ # ~ the Carbon SDK exists
+ # ~ src/gui/base/qapplication_mac.cpp is present
+ # ~ this is the internal edition and Qt/Mac sources exist
+ PLATFORM_MAC=maybe
+elif [ -f "$relpath"/src/gui/kernel/qapplication_qws.cpp ]; then
+ # Qt Embedded
+ # ~ src/gui/base/qapplication_qws.cpp is present
+ # ~ this is the free or commercial edition
+ # ~ this is the internal edition and Qt Embedded is explicitly enabled
+ PLATFORM_QWS=maybe
+fi
+
+#-----------------------------------------------------------------------------
+# Qt version detection
+#-----------------------------------------------------------------------------
+QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
+QT_MAJOR_VERSION=
+QT_MINOR_VERSION=0
+QT_PATCH_VERSION=0
+if [ -n "$QT_VERSION" ]; then
+ QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
+ MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
+ if [ -n "$MAJOR" ]; then
+ MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
+ PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
+ QT_MAJOR_VERSION="$MAJOR"
+ [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
+ [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
+ fi
+fi
+if [ -z "$QT_MAJOR_VERSION" ]; then
+ echo "Cannot process version from qglobal.h: $QT_VERSION"
+ echo "Cannot proceed."
+ exit 1
+fi
+
+QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
+if [ -z "$QT_PACKAGEDATE" ]; then
+ echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
+ echo "Cannot proceed"
+ exit 1
+fi
+
+#-------------------------------------------------------------------------------
+# check the license
+#-------------------------------------------------------------------------------
+COMMERCIAL_USER=ask
+CFG_DEV=no
+CFG_NOKIA=no
+CFG_EMBEDDED=no
+EditionString=Commercial
+
+earlyArgParse()
+{
+ # parse the arguments, setting things to "yes" or "no"
+ while [ "$#" -gt 0 ]; do
+ CURRENT_OPT="$1"
+ UNKNOWN_ARG=no
+ case "$1" in
+ #Autoconf style options
+ --enable-*)
+ VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
+ VAL=yes
+ ;;
+ --disable-*)
+ VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
+ VAL=no
+ ;;
+ --*=*)
+ VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
+ VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
+ ;;
+ --no-*)
+ VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
+ VAL=no
+ ;;
+ -embedded)
+ VAR=embedded
+ # this option may or may not be followed by an argument
+ if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
+ VAL=auto
+ else
+ shift;
+ VAL=$1
+ fi
+ ;;
+ h|help|--help|-help)
+ if [ "$VAL" = "yes" ]; then
+ OPT_HELP="$VAL"
+ COMMERCIAL_USER="yes" #doesn't matter we will display the help
+ else
+ UNKNOWN_OPT=yes
+ COMMERCIAL_USER="yes" #doesn't matter we will display the help
+ fi
+ ;;
+ --*)
+ VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
+ VAL=yes
+ ;;
+ -*)
+ VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
+ VAL="unknown"
+ ;;
+ *)
+ UNKNOWN_ARG=yes
+ ;;
+ esac
+ if [ "$UNKNOWN_ARG" = "yes" ]; then
+ shift
+ continue
+ fi
+ shift
+
+ UNKNOWN_OPT=no
+ case "$VAR" in
+ embedded)
+ CFG_EMBEDDED="$VAL"
+ if [ "$PLATFORM_QWS" != "no" ]; then
+ if [ "$PLATFORM_QWS" = "maybe" ]; then
+ PLATFORM_X11=no
+ PLATFORM_MAC=no
+ PLATFORM_QWS=yes
+ fi
+ else
+ echo "No license exists to enable Qt for Embedded Linux. Disabling."
+ CFG_EMBEDDED=no
+ fi
+ ;;
+ developer-build)
+ CFG_DEV="yes"
+ ;;
+ nokia-developer)
+ CFG_DEV="yes"
+ CFG_NOKIA="yes"
+ COMMERCIAL_USER="no"
+ ;;
+ commercial)
+ COMMERCIAL_USER="yes"
+ ;;
+ opensource)
+ COMMERCIAL_USER="no"
+ ;;
+ *)
+ UNKNOWN_OPT=yes
+ ;;
+ esac
+ done
+}
+
+earlyArgParse "$@"
+
+if [ "$COMMERCIAL_USER" = "ask" ]; then
+ while true; do
+ echo "Which edition of Qt do you want to use ?"
+ echo
+ echo "Type 'c' if you want to use the Commercial Edition."
+ echo "Type 'o' if you want to use the Open Source Edition."
+ echo
+ read commercial
+ echo
+ if [ "$commercial" = "c" ]; then
+ COMMERCIAL_USER="yes"
+ break
+ else [ "$commercial" = "o" ];
+ COMMERCIAL_USER="no"
+ break
+ fi
+ done
+fi
+
+if [ "$CFG_NOKIA" = "yes" ]; then
+ Licensee="Nokia"
+ Edition="NokiaInternalBuild"
+ EditionString="Nokia Internal Build"
+ QT_EDITION="QT_EDITION_OPENSOURCE"
+ [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
+elif [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
+ # Commercial preview release
+ [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
+ Licensee="Preview"
+ Edition="Preview"
+ QT_EDITION="QT_EDITION_DESKTOP"
+ LicenseType="Technology Preview"
+elif [ $COMMERCIAL_USER = "yes" ]; then
+ # one of commercial editions
+ [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
+ [ "$PLATFORM_QWS" = "maybe" ] && PLATFORM_QWS=yes
+
+ # read in the license file
+ if [ -f "$LICENSE_FILE" ]; then
+ . "$LICENSE_FILE" >/dev/null 2>&1
+ if [ -z "$LicenseKeyExt" ]; then
+ echo
+ echo "You are using an old license file."
+ echo
+ echo "Please install the license file supplied by Qt Software,"
+ echo "or install the Qt Open Source Edition if you intend to"
+ echo "develop free software."
+ exit 1
+ fi
+ if [ -z "$Licensee" ]; then
+ echo
+ echo "Invalid license key. Please check the license key."
+ exit 1
+ fi
+ else
+ if [ -z "$LicenseKeyExt" ]; then
+ echo
+ if echo '\c' | grep '\c' >/dev/null; then
+ echo -n "Please enter your license key: "
+ else
+ echo "Please enter your license key: \c"
+ fi
+ read LicenseKeyExt
+ Licensee="Unknown user"
+ fi
+ fi
+
+ # Key verification
+ echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
+ && LicenseValid="yes" \
+ || LicenseValid="no"
+ if [ "$LicenseValid" != "yes" ]; then
+ echo
+ echo "Invalid license key. Please check the license key."
+ exit 1
+ fi
+ ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
+ PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d - | cut -b 1`
+ LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
+ LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
+
+ # determine which edition we are licensed to use
+ case "$LicenseTypeCode" in
+ F4M)
+ LicenseType="Commercial"
+ case $ProductCode in
+ F)
+ Edition="Universal"
+ QT_EDITION="QT_EDITION_UNIVERSAL"
+ ;;
+ B)
+ Edition="FullFramework"
+ EditionString="Full Framework"
+ QT_EDITION="QT_EDITION_DESKTOP"
+ ;;
+ L)
+ Edition="GUIFramework"
+ EditionString="GUI Framework"
+ QT_EDITION="QT_EDITION_DESKTOPLIGHT"
+ ;;
+ esac
+ ;;
+ Z4M|R4M|Q4M)
+ LicenseType="Evaluation"
+ case $ProductCode in
+ B)
+ Edition="Evaluation"
+ QT_EDITION="QT_EDITION_EVALUATION"
+ ;;
+ esac
+ ;;
+ esac
+ if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
+ echo
+ echo "Invalid license key. Please check the license key."
+ exit 1
+ fi
+
+ # verify that we are licensed to use Qt on this platform
+ LICENSE_EXTENSION=
+ if [ "$PlatformCode" = "X" ]; then
+ # Qt All-OS
+ LICENSE_EXTENSION="-ALLOS"
+ elif [ "$PLATFORM_QWS" = "yes" ]; then
+ case $PlatformCode in
+ 2|4|8|A|B|E|G|J|K|P|Q|S|U|V|W)
+ # Qt for Embedded Linux
+ LICENSE_EXTENSION="-EMBEDDED"
+ ;;
+ *)
+ echo
+ echo "You are not licensed for Qt for Embedded Linux."
+ echo
+ echo "Please contact sales@trolltech.com to upgrade your license"
+ echo "to include Qt for Embedded Linux, or install the"
+ echo "Qt Open Source Edition if you intend to develop free software."
+ exit 1
+ ;;
+ esac
+ elif [ "$PLATFORM_MAC" = "yes" ]; then
+ case $PlatformCode in
+ 2|4|5|7|9|B|C|E|F|G|L|M|U|W|Y)
+ # Qt/Mac
+ LICENSE_EXTENSION="-DESKTOP"
+ ;;
+ 3|6|8|A|D|H|J|K|P|Q|S|V)
+ # Embedded no-deploy
+ LICENSE_EXTENSION="-EMBEDDED"
+ ;;
+ *)
+ echo
+ echo "You are not licensed for the Qt/Mac platform."
+ echo
+ echo "Please contact sales@trolltech.com to upgrade your license"
+ echo "to include the Qt/Mac platform."
+ exit 1
+ ;;
+ esac
+ else
+ case $PlatformCode in
+ 2|3|4|5|7|D|E|F|J|M|Q|S|T|V|Z)
+ # Qt/X11
+ LICENSE_EXTENSION="-DESKTOP"
+ ;;
+ 6|8|9|A|B|C|G|H|K|P|U|W)
+ # Embedded no-deploy
+ LICENSE_EXTENSION="-EMBEDDED"
+ ;;
+ *)
+ echo
+ echo "You are not licensed for the Qt/X11 platform."
+ echo
+ echo "Please contact sales@trolltech.com to upgrade your license to"
+ echo "include the Qt/X11 platform, or install the Qt Open Source Edition"
+ echo "if you intend to develop free software."
+ exit 1
+ ;;
+ esac
+ fi
+
+ if test -r "$relpath/.LICENSE"; then
+ # Generic, non-final license
+ LICENSE_EXTENSION=""
+ line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
+ case "$line" in
+ *BETA*)
+ Edition=Beta
+ ;;
+ *TECHNOLOGY?PREVIEW*)
+ Edition=Preview
+ ;;
+ *EVALUATION*)
+ Edition=Evaluation
+ ;;
+ *)
+ echo >&2 "Invalid license files; cannot continue"
+ exit 1
+ ;;
+ esac
+ Licensee="$Edition"
+ EditionString="$Edition"
+ QT_EDITION="QT_EDITION_DESKTOP"
+ fi
+
+ case "$LicenseFeatureCode" in
+ G|L)
+ # US
+ case "$LicenseType" in
+ Commercial)
+ cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
+ ;;
+ Evaluation)
+ cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
+ ;;
+ esac
+ ;;
+ 2|5)
+ # non-US
+ case "$LicenseType" in
+ Commercial)
+ cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
+ ;;
+ Evaluation)
+ cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
+ ;;
+ esac
+ ;;
+ *)
+ echo
+ echo "Invalid license key. Please check the license key."
+ exit 1
+ ;;
+ esac
+ if [ '!' -f "$outpath/LICENSE" ]; then
+ echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
+ echo "this software has disappeared."
+ echo
+ echo "Sorry, you are not licensed to use this software."
+ echo "Try re-installing."
+ echo
+ exit 1
+ fi
+elif [ $COMMERCIAL_USER = "no" ]; then
+ # Open Source edition - may only be used under the terms of the GPL or LGPL.
+ [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
+ Licensee="Open Source"
+ Edition="OpenSource"
+ EditionString="Open Source"
+ QT_EDITION="QT_EDITION_OPENSOURCE"
+fi
+
+#-------------------------------------------------------------------------------
+# initalize variables
+#-------------------------------------------------------------------------------
+
+SYSTEM_VARIABLES="CC CXX CFLAGS CXXFLAGS LDFLAGS"
+for varname in $SYSTEM_VARIABLES; do
+ qmakevarname="${varname}"
+ # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
+ if [ "${varname}" = "LDFLAGS" ]; then
+ qmakevarname="LFLAGS"
+ fi
+ cmd=`echo \
+'if [ -n "\$'${varname}'" ]; then
+ QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
+fi'`
+ eval "$cmd"
+done
+# Use CC/CXX to run config.tests
+mkdir -p "$outpath/config.tests"
+rm -f "$outpath/config.tests/.qmake.cache"
+cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
+
+QMakeVar add styles "cde mac motif plastique cleanlooks windows"
+QMakeVar add decorations "default windows styled"
+QMakeVar add gfx-drivers "linuxfb"
+QMakeVar add kbd-drivers "tty"
+QMakeVar add mouse-drivers "pc linuxtp"
+
+if [ "$CFG_DEV" = "yes" ]; then
+ QMakeVar add kbd-drivers "um"
+fi
+
+# QTDIR may be set and point to an old or system-wide Qt installation
+unset QTDIR
+
+# the minimum version of libdbus-1 that we require:
+MIN_DBUS_1_VERSION=0.62
+
+# initalize internal variables
+CFG_CONFIGURE_EXIT_ON_ERROR=yes
+CFG_PROFILE=no
+CFG_EXCEPTIONS=unspecified
+CFG_SCRIPTTOOLS=auto # (yes|no|auto)
+CFG_XMLPATTERNS=auto # (yes|no|auto)
+CFG_INCREMENTAL=auto
+CFG_QCONFIG=full
+CFG_DEBUG=auto
+CFG_MYSQL_CONFIG=
+CFG_DEBUG_RELEASE=no
+CFG_SHARED=yes
+CFG_SM=auto
+CFG_XSHAPE=auto
+CFG_XINERAMA=runtime
+CFG_XFIXES=runtime
+CFG_ZLIB=auto
+CFG_SQLITE=qt
+CFG_GIF=auto
+CFG_TIFF=auto
+CFG_LIBTIFF=auto
+CFG_PNG=yes
+CFG_LIBPNG=auto
+CFG_JPEG=auto
+CFG_LIBJPEG=auto
+CFG_MNG=auto
+CFG_LIBMNG=auto
+CFG_XCURSOR=runtime
+CFG_XRANDR=runtime
+CFG_XRENDER=auto
+CFG_MITSHM=auto
+CFG_OPENGL=auto
+CFG_SSE=auto
+CFG_FONTCONFIG=auto
+CFG_QWS_FREETYPE=auto
+CFG_LIBFREETYPE=auto
+CFG_SQL_AVAILABLE=
+QT_DEFAULT_BUILD_PARTS="libs tools examples demos docs translations"
+CFG_BUILD_PARTS=""
+CFG_NOBUILD_PARTS=""
+CFG_RELEASE_QMAKE=no
+CFG_PHONON=auto
+CFG_PHONON_BACKEND=yes
+CFG_SVG=yes
+CFG_WEBKIT=auto # (yes|no|auto)
+
+CFG_GFX_AVAILABLE="linuxfb transformed qvfb vnc multiscreen"
+CFG_GFX_ON="linuxfb multiscreen"
+CFG_GFX_PLUGIN_AVAILABLE=
+CFG_GFX_PLUGIN=
+CFG_GFX_OFF=
+CFG_KBD_AVAILABLE="tty usb sl5000 yopy vr41xx qvfb"
+CFG_KBD_ON="tty" #default, see QMakeVar above
+CFG_MOUSE_AVAILABLE="pc bus linuxtp yopy vr41xx tslib qvfb"
+CFG_MOUSE_ON="pc linuxtp" #default, see QMakeVar above
+
+CFG_ARCH=
+CFG_HOST_ARCH=
+CFG_KBD_PLUGIN_AVAILABLE=
+CFG_KBD_PLUGIN=
+CFG_KBD_OFF=
+CFG_MOUSE_PLUGIN_AVAILABLE=
+CFG_MOUSE_PLUGIN=
+CFG_MOUSE_OFF=
+CFG_USE_GNUMAKE=no
+CFG_IM=yes
+CFG_DECORATION_AVAILABLE="styled windows default"
+CFG_DECORATION_ON="${CFG_DECORATION_AVAILABLE}" # all on by default
+CFG_DECORATION_PLUGIN_AVAILABLE=
+CFG_DECORATION_PLUGIN=
+CFG_XINPUT=runtime
+CFG_XKB=auto
+CFG_NIS=auto
+CFG_CUPS=auto
+CFG_ICONV=auto
+CFG_DBUS=auto
+CFG_GLIB=auto
+CFG_GSTREAMER=auto
+CFG_QGTKSTYLE=auto
+CFG_LARGEFILE=auto
+CFG_OPENSSL=auto
+CFG_PTMALLOC=no
+CFG_STL=auto
+CFG_PRECOMPILE=auto
+CFG_SEPARATE_DEBUG_INFO=auto
+CFG_REDUCE_EXPORTS=auto
+CFG_MMX=auto
+CFG_3DNOW=auto
+CFG_SSE=auto
+CFG_SSE2=auto
+CFG_REDUCE_RELOCATIONS=no
+CFG_IPV6=auto
+CFG_NAS=no
+CFG_QWS_DEPTHS=all
+CFG_USER_BUILD_KEY=
+CFG_ACCESSIBILITY=auto
+CFG_QT3SUPPORT=yes
+CFG_ENDIAN=auto
+CFG_HOST_ENDIAN=auto
+CFG_DOUBLEFORMAT=auto
+CFG_ARMFPA=auto
+CFG_IWMMXT=no
+CFG_CLOCK_GETTIME=auto
+CFG_CLOCK_MONOTONIC=auto
+CFG_MREMAP=auto
+CFG_GETADDRINFO=auto
+CFG_IPV6IFNAME=auto
+CFG_GETIFADDRS=auto
+CFG_INOTIFY=auto
+CFG_RPATH=yes
+CFG_FRAMEWORK=auto
+CFG_MAC_ARCHS=
+CFG_MAC_DWARF2=auto
+CFG_MAC_XARCH=auto
+CFG_MAC_CARBON=yes
+CFG_MAC_COCOA=auto
+COMMANDLINE_MAC_COCOA=no
+CFG_SXE=no
+CFG_PREFIX_INSTALL=yes
+CFG_SDK=
+D_FLAGS=
+I_FLAGS=
+L_FLAGS=
+RPATH_FLAGS=
+l_FLAGS=
+QCONFIG_FLAGS=
+XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
+PLATFORM=$QMAKESPEC
+QT_CROSS_COMPILE=no
+OPT_CONFIRM_LICENSE=no
+OPT_SHADOW=maybe
+OPT_FAST=auto
+OPT_VERBOSE=no
+OPT_HELP=
+CFG_SILENT=no
+CFG_GRAPHICS_SYSTEM=default
+
+# initalize variables used for installation
+QT_INSTALL_PREFIX=
+QT_INSTALL_DOCS=
+QT_INSTALL_HEADERS=
+QT_INSTALL_LIBS=
+QT_INSTALL_BINS=
+QT_INSTALL_PLUGINS=
+QT_INSTALL_DATA=
+QT_INSTALL_TRANSLATIONS=
+QT_INSTALL_SETTINGS=
+QT_INSTALL_EXAMPLES=
+QT_INSTALL_DEMOS=
+QT_HOST_PREFIX=
+
+#flags for SQL drivers
+QT_CFLAGS_PSQL=
+QT_LFLAGS_PSQL=
+QT_CFLAGS_MYSQL=
+QT_LFLAGS_MYSQL=
+QT_LFLAGS_MYSQL_R=
+QT_CFLAGS_SQLITE=
+QT_LFLAGS_SQLITE=
+
+# flags for libdbus-1
+QT_CFLAGS_DBUS=
+QT_LIBS_DBUS=
+
+# flags for Glib (X11 only)
+QT_CFLAGS_GLIB=
+QT_LIBS_GLIB=
+
+# flags for GStreamer (X11 only)
+QT_CFLAGS_GSTREAMER=
+QT_LIBS_GSTREAMER=
+
+#-------------------------------------------------------------------------------
+# check SQL drivers, mouse drivers and decorations available in this package
+#-------------------------------------------------------------------------------
+
+# opensource version removes some drivers, so force them to be off
+CFG_SQL_tds=no
+CFG_SQL_oci=no
+CFG_SQL_db2=no
+
+CFG_SQL_AVAILABLE=
+if [ -d "$relpath/src/plugins/sqldrivers" ]; then
+ for a in "$relpath/src/plugins/sqldrivers/"*; do
+ if [ -d "$a" ]; then
+ base_a=`basename $a`
+ CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
+ eval "CFG_SQL_${base_a}=auto"
+ fi
+ done
+fi
+
+CFG_DECORATION_PLUGIN_AVAILABLE=
+if [ -d "$relpath/src/plugins/decorations" ]; then
+ for a in "$relpath/src/plugins/decorations/"*; do
+ if [ -d "$a" ]; then
+ base_a=`basename $a`
+ CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${base_a}"
+ fi
+ done
+fi
+
+CFG_KBD_PLUGIN_AVAILABLE=
+if [ -d "$relpath/src/plugins/kbddrivers" ]; then
+ for a in "$relpath/src/plugins/kbddrivers/"*; do
+ if [ -d "$a" ]; then
+ base_a=`basename $a`
+ CFG_KBD_PLUGIN_AVAILABLE="${CFG_KBD_PLUGIN_AVAILABLE} ${base_a}"
+ fi
+ done
+fi
+
+CFG_MOUSE_PLUGIN_AVAILABLE=
+if [ -d "$relpath/src/plugins/mousedrivers" ]; then
+ for a in "$relpath/src/plugins/mousedrivers/"*; do
+ if [ -d "$a" ]; then
+ base_a=`basename $a`
+ CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${base_a}"
+ fi
+ done
+fi
+
+CFG_GFX_PLUGIN_AVAILABLE=
+if [ -d "$relpath/src/plugins/gfxdrivers" ]; then
+ for a in "$relpath/src/plugins/gfxdrivers/"*; do
+ if [ -d "$a" ]; then
+ base_a=`basename $a`
+ CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${base_a}"
+ fi
+ done
+ CFG_GFX_OFF="$CFG_GFX_AVAILABLE" # assume all off
+fi
+
+#-------------------------------------------------------------------------------
+# parse command line arguments
+#-------------------------------------------------------------------------------
+
+# parse the arguments, setting things to "yes" or "no"
+while [ "$#" -gt 0 ]; do
+ CURRENT_OPT="$1"
+ UNKNOWN_ARG=no
+ case "$1" in
+ #Autoconf style options
+ --enable-*)
+ VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
+ VAL=yes
+ ;;
+ --disable-*)
+ VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
+ VAL=no
+ ;;
+ --*=*)
+ VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
+ VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
+ ;;
+ --no-*)
+ VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
+ VAL=no
+ ;;
+ --*)
+ VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
+ VAL=yes
+ ;;
+ #Qt plugin options
+ -no-*-*|-plugin-*-*|-qt-*-*)
+ VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
+ VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
+ ;;
+ #Qt style no options
+ -no-*)
+ VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
+ VAL=no
+ ;;
+ #Qt style yes options
+ -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xinput|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-svg|-webkit|-scripttools|-rpath|-force-pkg-config)
+ VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
+ VAL=yes
+ ;;
+ #Qt style options that pass an argument
+ -qconfig)
+ if [ "$PLATFORM_QWS" = "yes" ]; then
+ CFG_QCONFIG="$VAL"
+ VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
+ shift
+ VAL=$1
+ else
+ UNKNOWN_ARG=yes
+ fi
+ ;;
+ -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-host-arch|-mysql_config)
+ VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
+ shift
+ VAL="$1"
+ ;;
+ #Qt style complex options in one command
+ -enable-*|-disable-*)
+ VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
+ VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
+ ;;
+ #Qt Builtin/System style options
+ -no-*|-system-*|-qt-*)
+ VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
+ VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
+ ;;
+ #Options that cannot be generalized
+ -k|-continue)
+ VAR=fatal_error
+ VAL=no
+ ;;
+ -embedded)
+ VAR=embedded
+ # this option may or may not be followed by an argument
+ if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
+ VAL=auto
+ else
+ shift;
+ VAL=$1
+ fi
+ ;;
+ -opengl)
+ VAR=opengl
+ # this option may or may not be followed by an argument
+ if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
+ VAL=yes
+ else
+ shift;
+ VAL=$1
+ fi
+ ;;
+ -hostprefix)
+ VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
+ # this option may or may not be followed by an argument
+ if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
+ VAL=$outpath
+ else
+ shift;
+ VAL=$1
+ fi
+ ;;
+ -host-*-endian)
+ VAR=host_endian
+ VAL=`echo $1 | sed "s,^-.*-\(.*\)-.*,\1,"`
+ ;;
+ -*-endian)
+ VAR=endian
+ VAL=`echo $1 | sed "s,^-\(.*\)-.*,\1,"`
+ ;;
+ -qtnamespace)
+ VAR="qtnamespace"
+ shift
+ VAL="$1"
+ ;;
+ -graphicssystem)
+ VAR="graphicssystem"
+ shift
+ VAL=$1
+ ;;
+ -qtlibinfix)
+ VAR="qtlibinfix"
+ shift
+ VAL="$1"
+ ;;
+ -D?*|-D)
+ VAR="add_define"
+ if [ "$1" = "-D" ]; then
+ shift
+ VAL="$1"
+ else
+ VAL=`echo $1 | sed 's,-D,,'`
+ fi
+ ;;
+ -I?*|-I)
+ VAR="add_ipath"
+ if [ "$1" = "-I" ]; then
+ shift
+ VAL="$1"
+ else
+ VAL=`echo $1 | sed 's,-I,,'`
+ fi
+ ;;
+ -L?*|-L)
+ VAR="add_lpath"
+ if [ "$1" = "-L" ]; then
+ shift
+ VAL="$1"
+ else
+ VAL=`echo $1 | sed 's,-L,,'`
+ fi
+ ;;
+ -R?*|-R)
+ VAR="add_rpath"
+ if [ "$1" = "-R" ]; then
+ shift
+ VAL="$1"
+ else
+ VAL=`echo $1 | sed 's,-R,,'`
+ fi
+ ;;
+ -l?*)
+ VAR="add_link"
+ VAL=`echo $1 | sed 's,-l,,'`
+ ;;
+ -F?*|-F)
+ VAR="add_fpath"
+ if [ "$1" = "-F" ]; then
+ shift
+ VAL="$1"
+ else
+ VAL=`echo $1 | sed 's,-F,,'`
+ fi
+ ;;
+ -fw?*|-fw)
+ VAR="add_framework"
+ if [ "$1" = "-fw" ]; then
+ shift
+ VAL="$1"
+ else
+ VAL=`echo $1 | sed 's,-fw,,'`
+ fi
+ ;;
+ -*)
+ VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
+ VAL="unknown"
+ ;;
+ *)
+ UNKNOWN_ARG=yes
+ ;;
+ esac
+ if [ "$UNKNOWN_ARG" = "yes" ]; then
+ echo "$1: unknown argument"
+ OPT_HELP=yes
+ ERROR=yes
+ shift
+ continue
+ fi
+ shift
+
+ UNKNOWN_OPT=no
+ case "$VAR" in
+ qt3support)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_QT3SUPPORT="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ accessibility)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_ACCESSIBILITY="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ license)
+ LICENSE_FILE="$VAL"
+ ;;
+ gnumake)
+ CFG_USE_GNUMAKE="$VAL"
+ ;;
+ mysql_config)
+ CFG_MYSQL_CONFIG="$VAL"
+ ;;
+ prefix)
+ QT_INSTALL_PREFIX="$VAL"
+ ;;
+ hostprefix)
+ QT_HOST_PREFIX="$VAL"
+ ;;
+ force-pkg-config)
+ QT_FORCE_PKGCONFIG=yes
+ ;;
+ docdir)
+ QT_INSTALL_DOCS="$VAL"
+ ;;
+ headerdir)
+ QT_INSTALL_HEADERS="$VAL"
+ ;;
+ plugindir)
+ QT_INSTALL_PLUGINS="$VAL"
+ ;;
+ datadir)
+ QT_INSTALL_DATA="$VAL"
+ ;;
+ libdir)
+ QT_INSTALL_LIBS="$VAL"
+ ;;
+ qtnamespace)
+ QT_NAMESPACE="$VAL"
+ ;;
+ qtlibinfix)
+ QT_LIBINFIX="$VAL"
+ ;;
+ translationdir)
+ QT_INSTALL_TRANSLATIONS="$VAL"
+ ;;
+ sysconfdir|settingsdir)
+ QT_INSTALL_SETTINGS="$VAL"
+ ;;
+ examplesdir)
+ QT_INSTALL_EXAMPLES="$VAL"
+ ;;
+ demosdir)
+ QT_INSTALL_DEMOS="$VAL"
+ ;;
+ qconfig)
+ CFG_QCONFIG="$VAL"
+ ;;
+ bindir)
+ QT_INSTALL_BINS="$VAL"
+ ;;
+ buildkey)
+ CFG_USER_BUILD_KEY="$VAL"
+ ;;
+ sxe)
+ CFG_SXE="$VAL"
+ ;;
+ embedded)
+ CFG_EMBEDDED="$VAL"
+ if [ "$PLATFORM_QWS" != "no" ]; then
+ if [ "$PLATFORM_QWS" = "maybe" ]; then
+ PLATFORM_X11=no
+ PLATFORM_MAC=no
+ PLATFORM_QWS=yes
+ fi
+ else
+ echo "No license exists to enable Qt for Embedded Linux. Disabling."
+ CFG_EMBEDDED=no
+ fi
+ ;;
+ sse)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_SSE="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ endian)
+ if [ "$VAL" = "little" ]; then
+ CFG_ENDIAN="Q_LITTLE_ENDIAN"
+ elif [ "$VAL" = "big" ]; then
+ CFG_ENDIAN="Q_BIG_ENDIAN"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ host_endian)
+ if [ "$VAL" = "little" ]; then
+ CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
+ elif [ "$VAL" = "big" ]; then
+ CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ armfpa)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_ARMFPA="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ depths)
+ CFG_QWS_DEPTHS="$VAL"
+ ;;
+ opengl)
+ if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
+ [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
+ [ "$VAL" = "es1cl" ] || [ "$VAL" = "es1" ] || [ "$VAL" = "es2" ]; then
+ CFG_OPENGL="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ graphicssystem)
+ if [ "$PLATFORM_QWS" = "yes" ]; then
+ echo "Error: Graphics System plugins are not supported on QWS."
+ echo " On QWS, the graphics system API is part of the QScreen plugin architecture "
+ echo " rather than existing as a separate plugin."
+ echo ""
+ UNKNOWN_OPT=yes
+ else
+ if [ "$VAL" = "opengl" ]; then
+ CFG_GRAPHICS_SYSTEM="opengl"
+ elif [ "$VAL" = "raster" ]; then
+ CFG_GRAPHICS_SYSTEM="raster"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ fi
+ ;;
+
+ qvfb) # left for commandline compatibility, not documented
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ if [ "$VAL" = "yes" ]; then
+ QMakeVar add gfx-drivers qvfb
+ QMakeVar add kbd-drivers qvfb
+ QMakeVar add mouse-drivers qvfb
+ CFG_GFX_ON="$CFG_GFX_ON qvfb"
+ CFG_KBD_ON="$CFG_KBD_ON qvfb"
+ CFG_MOUSE_ON="$CFG_MOUSE_ON qvfb"
+ fi
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ nomake)
+ CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
+ ;;
+ make)
+ CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
+ ;;
+ x11)
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ PLATFORM_MAC=no
+ elif [ "$PLATFORM_QWS" = "yes" ]; then
+ PLATFORM_QWS=no
+ fi
+ if [ "$CFG_FRAMEWORK" = "auto" ]; then
+ CFG_FRAMEWORK=no
+ fi
+ PLATFORM_X11=yes
+ ;;
+ sdk)
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ CFG_SDK="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ dwarf2)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_MAC_DWARF2="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ arch)
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ CFG_MAC_ARCHS="$CFG_MAC_ARCHS $VAL"
+ else
+ CFG_ARCH=$VAL
+ fi
+ ;;
+ host-arch)
+ CFG_HOST_ARCH=$VAL
+ ;;
+ universal)
+ if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
+ CFG_MAC_ARCHS="$CFG_MAC_ARCHS x86 ppc"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ cocoa)
+ if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
+ CFG_MAC_COCOA="$VAL"
+ COMMANDLINE_MAC_COCOA="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ framework)
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ CFG_FRAMEWORK="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ profile)
+ if [ "$VAL" = "yes" ]; then
+ CFG_PROFILE=yes
+ QMakeVar add QMAKE_CFLAGS -pg
+ QMakeVar add QMAKE_CXXFLAGS -pg
+ QMakeVar add QMAKE_LFLAGS -pg
+ QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ exceptions|g++-exceptions)
+ if [ "$VAL" = "no" ]; then
+ CFG_EXCEPTIONS=no
+ elif [ "$VAL" = "yes" ]; then
+ CFG_EXCEPTIONS=yes
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ platform)
+ PLATFORM="$VAL"
+ # keep compatibility with old platform names
+ case $PLATFORM in
+ aix-64)
+ PLATFORM=aix-xlc-64
+ ;;
+ hpux-o64)
+ PLATFORM=hpux-acc-o64
+ ;;
+ hpux-n64)
+ PLATFORM=hpux-acc-64
+ ;;
+ hpux-acc-n64)
+ PLATFORM=hpux-acc-64
+ ;;
+ irix-n32)
+ PLATFORM=irix-cc
+ ;;
+ irix-64)
+ PLATFORM=irix-cc-64
+ ;;
+ irix-cc-n64)
+ PLATFORM=irix-cc-64
+ ;;
+ reliant-64)
+ PLATFORM=reliant-cds-64
+ ;;
+ solaris-64)
+ PLATFORM=solaris-cc-64
+ ;;
+ solaris-64)
+ PLATFORM=solaris-cc-64
+ ;;
+ openunix-cc)
+ PLATFORM=unixware-cc
+ ;;
+ openunix-g++)
+ PLATFORM=unixware-g++
+ ;;
+ unixware7-cc)
+ PLATFORM=unixware-cc
+ ;;
+ unixware7-g++)
+ PLATFORM=unixware-g++
+ ;;
+ macx-g++-64)
+ PLATFORM=macx-g++
+ NATIVE_64_ARCH=
+ case `uname -p` in
+ i386) NATIVE_64_ARCH="x86_64" ;;
+ powerpc) NATIVE_64_ARCH="ppc64" ;;
+ *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
+ esac
+ if [ ! -z "$NATIVE_64_ARCH" ]; then
+ QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
+ CFG_MAC_ARCHS="$CFG_MAC_ARCHS $NATIVE_64_ARCH"
+ fi
+ ;;
+ esac
+ ;;
+ xplatform)
+ XPLATFORM="$VAL"
+ ;;
+ debug-and-release)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_DEBUG_RELEASE="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ optimized-qmake)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_RELEASE_QMAKE="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ release)
+ if [ "$VAL" = "yes" ]; then
+ CFG_DEBUG=no
+ elif [ "$VAL" = "no" ]; then
+ CFG_DEBUG=yes
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ prefix-install)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_PREFIX_INSTALL="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ debug)
+ CFG_DEBUG="$VAL"
+ ;;
+ developer-build|commercial|opensource|nokia-developer)
+ # These switches have been dealt with already
+ ;;
+ static)
+ if [ "$VAL" = "yes" ]; then
+ CFG_SHARED=no
+ elif [ "$VAL" = "no" ]; then
+ CFG_SHARED=yes
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ incremental)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_INCREMENTAL="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ fatal_error)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ feature-*)
+ if [ "$PLATFORM_QWS" = "yes" ]; then
+ FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ if [ "$VAL" = "no" ]; then
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
+ elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ shared)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_SHARED="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ gif)
+ [ "$VAL" = "qt" ] && VAL=yes
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_GIF="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ sm)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_SM="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+
+ ;;
+ xinerama)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
+ CFG_XINERAMA="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ xshape)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_XSHAPE="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ xinput)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
+ CFG_XINPUT="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ stl)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_STL="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ pch)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_PRECOMPILE="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ separate-debug-info)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_SEPARATE_DEBUG_INFO="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ reduce-exports)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_REDUCE_EXPORTS="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ mmx)
+ if [ "$VAL" = "no" ]; then
+ CFG_MMX="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ 3dnow)
+ if [ "$VAL" = "no" ]; then
+ CFG_3DNOW="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ sse)
+ if [ "$VAL" = "no" ]; then
+ CFG_SSE="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ sse2)
+ if [ "$VAL" = "no" ]; then
+ CFG_SSE2="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ iwmmxt)
+ CFG_IWMMXT="yes"
+ ;;
+ reduce-relocations)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_REDUCE_RELOCATIONS="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ freetype)
+ [ "$VAL" = "qt" ] && VAL=yes
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
+ CFG_QWS_FREETYPE="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ zlib)
+ [ "$VAL" = "qt" ] && VAL=yes
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
+ CFG_ZLIB="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ # No longer supported:
+ #[ "$VAL" = "no" ] && CFG_LIBPNG=no
+ ;;
+ sqlite)
+ if [ "$VAL" = "system" ]; then
+ CFG_SQLITE=system
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ libpng)
+ [ "$VAL" = "yes" ] && VAL=qt
+ if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
+ CFG_LIBPNG="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ libjpeg)
+ [ "$VAL" = "yes" ] && VAL=qt
+ if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
+ CFG_LIBJPEG="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ libmng)
+ [ "$VAL" = "yes" ] && VAL=qt
+ if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
+ CFG_LIBMNG="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ libtiff)
+ [ "$VAL" = "yes" ] && VAL=qt
+ if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
+ CFG_LIBTIFF="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ nas-sound)
+ if [ "$VAL" = "system" ] || [ "$VAL" = "no" ]; then
+ CFG_NAS="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ xcursor)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
+ CFG_XCURSOR="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ xfixes)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
+ CFG_XFIXES="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ xrandr)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
+ CFG_XRANDR="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ xrender)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_XRENDER="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ mitshm)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_MITSHM="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ fontconfig)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_FONTCONFIG="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ xkb)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_XKB="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ cups)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_CUPS="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ iconv)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_ICONV="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ glib)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_GLIB="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ gstreamer)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_GSTREAMER="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ gtkstyle)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_QGTKSTYLE="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ qdbus|dbus)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
+ CFG_DBUS="$VAL"
+ elif [ "$VAL" = "runtime" ]; then
+ CFG_DBUS="yes"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ dbus-linked)
+ if [ "$VAL" = "yes" ]; then
+ CFG_DBUS="linked"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ nis)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_NIS="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ largefile)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_LARGEFILE="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ openssl)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_OPENSSL="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ openssl-linked)
+ if [ "$VAL" = "yes" ]; then
+ CFG_OPENSSL="linked"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ ptmalloc)
+ if [ "$VAL" = "yes" ]; then
+ CFG_PTMALLOC="yes"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+
+ xmlpatterns)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
+ CFG_XMLPATTERNS="yes"
+ else
+ if [ "$VAL" = "no" ]; then
+ CFG_XMLPATTERNS="no"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ fi
+ ;;
+ scripttools)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
+ CFG_SCRIPTTOOLS="yes"
+ else
+ if [ "$VAL" = "no" ]; then
+ CFG_SCRIPTTOOLS="no"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ fi
+ ;;
+ svg)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
+ CFG_SVG="yes"
+ else
+ if [ "$VAL" = "no" ]; then
+ CFG_SVG="no"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ fi
+ ;;
+ webkit)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
+ CFG_WEBKIT="yes"
+ else
+ if [ "$VAL" = "no" ]; then
+ CFG_WEBKIT="no"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ fi
+ ;;
+ confirm-license)
+ if [ "$VAL" = "yes" ]; then
+ OPT_CONFIRM_LICENSE="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ h|help)
+ if [ "$VAL" = "yes" ]; then
+ OPT_HELP="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ sql-*|gfx-*|decoration-*|kbd-*|mouse-*)
+ # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
+ # if autoconf style options were used, $VAL can be "yes" or "no"
+ [ "$VAL" = "yes" ] && VAL=qt
+ # now $VAL should be "no", "qt", or "plugin"... double-check
+ if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
+ UNKNOWN_OPT=yes
+ fi
+ # now $VAL is "no", "qt", or "plugin"
+ OPT="$VAL"
+ VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
+ VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
+
+ # Grab the available values
+ case "$VAR" in
+ sql)
+ avail="$CFG_SQL_AVAILABLE"
+ ;;
+ gfx)
+ avail="$CFG_GFX_AVAILABLE"
+ if [ "$OPT" = "plugin" ]; then
+ avail="$CFG_GFX_PLUGIN_AVAILABLE"
+ fi
+ ;;
+ decoration)
+ avail="$CFG_DECORATION_AVAILABLE"
+ if [ "$OPT" = "plugin" ]; then
+ avail="$CFG_DECORATION_PLUGIN_AVAILABLE"
+ fi
+ ;;
+ kbd)
+ avail="$CFG_KBD_AVAILABLE"
+ if [ "$OPT" = "plugin" ]; then
+ avail="$CFG_KBD_PLUGIN_AVAILABLE"
+ fi
+ ;;
+ mouse)
+ avail="$CFG_MOUSE_AVAILABLE"
+ if [ "$OPT" = "plugin" ]; then
+ avail="$CFG_MOUSE_PLUGIN_AVAILABLE"
+ fi
+ ;;
+ *)
+ avail=""
+ echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
+ ;;
+ esac
+
+ # Check that that user's value is available.
+ found=no
+ for d in $avail; do
+ if [ "$VAL" = "$d" ]; then
+ found=yes
+ break
+ fi
+ done
+ [ "$found" = yes ] || ERROR=yes
+
+ if [ "$VAR" = "sql" ]; then
+ # set the CFG_SQL_driver
+ eval "CFG_SQL_$VAL=\$OPT"
+ continue
+ fi
+
+ if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
+ if [ "$OPT" = "plugin" ]; then
+ [ "$VAR" = "decoration" ] && QMakeVar del "${VAR}s" "$VAL"
+ [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"` && CFG_DECORATION_PLUGIN="$CFG_DECORATION_PLUGIN ${VAL}"
+ [ "$VAR" = "kbd" ] && QMakeVar del "${VAR}s" "$VAL"
+ [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_KBD_PLUGIN="$CFG_KBD_PLUGIN ${VAL}"
+ [ "$VAR" = "mouse" ] && QMakeVar del "${VAR}s" "$VAL"
+ [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_MOUSE_PLUGIN="$CFG_MOUSE_PLUGIN ${VAL}"
+ [ "$VAR" = "gfx" ] && QMakeVar del "${VAR}s" "$VAL"
+ [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"` && CFG_GFX_PLUGIN="${CFG_GFX_PLUGIN} ${VAL}"
+ VAR="${VAR}-${OPT}"
+ else
+ if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "decoration" ] || [ "$VAR" = "mouse" ]; then
+ [ "$VAR" = "gfx" ] && CFG_GFX_ON="$CFG_GFX_ON $VAL"
+ [ "$VAR" = "kbd" ] && CFG_KBD_ON="$CFG_KBD_ON $VAL"
+ [ "$VAR" = "decoration" ] && CFG_DECORATION_ON="$CFG_DECORATION_ON $VAL"
+ [ "$VAR" = "mouse" ] && CFG_MOUSE_ON="$CFG_MOUSE_ON $VAL"
+ VAR="${VAR}-driver"
+ fi
+ fi
+ QMakeVar add "${VAR}s" "${VAL}"
+ elif [ "$OPT" = "no" ]; then
+ PLUG_VAR="${VAR}-plugin"
+ if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "mouse" ]; then
+ IN_VAR="${VAR}-driver"
+ else
+ IN_VAR="${VAR}"
+ fi
+ [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"`
+ [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"`
+ [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_KBD_ON} " | sed "s,${VAL} ,,g"`
+ [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"`
+ QMakeVar del "${IN_VAR}s" "$VAL"
+ QMakeVar del "${PLUG_VAR}s" "$VAL"
+ fi
+ if [ "$ERROR" = "yes" ]; then
+ echo "$CURRENT_OPT: unknown argument"
+ OPT_HELP=yes
+ fi
+ ;;
+ v|verbose)
+ if [ "$VAL" = "yes" ]; then
+ if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
+ QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
+ else
+ OPT_VERBOSE=yes
+ fi
+ elif [ "$VAL" = "no" ]; then
+ if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
+ QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
+ else
+ OPT_VERBOSE=no
+ fi
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ fast)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ OPT_FAST="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ rpath)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_RPATH="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ add_define)
+ D_FLAGS="$D_FLAGS \"$VAL\""
+ ;;
+ add_ipath)
+ I_FLAGS="$I_FLAGS -I\"${VAL}\""
+ ;;
+ add_lpath)
+ L_FLAGS="$L_FLAGS -L\"${VAL}\""
+ ;;
+ add_rpath)
+ RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
+ ;;
+ add_link)
+ l_FLAGS="$l_FLAGS -l\"${VAL}\""
+ ;;
+ add_fpath)
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ L_FLAGS="$L_FLAGS -F\"${VAL}\""
+ I_FLAGS="$I_FLAGS -F\"${VAL}\""
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ add_framework)
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ l_FLAGS="$l_FLAGS -framework \"${VAL}\""
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ silent)
+ CFG_SILENT="$VAL"
+ ;;
+ phonon)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_PHONON="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ phonon-backend)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_PHONON_BACKEND="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ *)
+ UNKNOWN_OPT=yes
+ ;;
+ esac
+ if [ "$UNKNOWN_OPT" = "yes" ]; then
+ echo "${CURRENT_OPT}: invalid command-line switch"
+ OPT_HELP=yes
+ ERROR=yes
+ fi
+done
+
+if [ "$CFG_QCONFIG" != "full" ] && [ "$CFG_QT3SUPPORT" = "yes" ]; then
+ echo "Warning: '-qconfig $CFG_QCONFIG' will disable the qt3support library."
+ CFG_QT3SUPPORT="no"
+fi
+
+# update QT_CONFIG to show our current predefined configuration
+case "$CFG_QCONFIG" in
+minimal|small|medium|large|full)
+ # these are a sequence of increasing functionality
+ for c in minimal small medium large full; do
+ QT_CONFIG="$QT_CONFIG $c-config"
+ [ "$CFG_QCONFIG" = $c ] && break
+ done
+ ;;
+*)
+ # not known to be sufficient for anything
+ if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ]; then
+ echo >&2 "Error: configuration file not found:"
+ echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
+ OPT_HELP=yes
+ fi
+esac
+
+#-------------------------------------------------------------------------------
+# build tree initialization
+#-------------------------------------------------------------------------------
+
+# where to find which..
+unixtests="$relpath/config.tests/unix"
+mactests="$relpath/config.tests/mac"
+WHICH="$unixtests/which.test"
+
+PERL=`$WHICH perl 2>/dev/null`
+
+# find out which awk we want to use, prefer gawk, then nawk, then regular awk
+AWK=
+for e in gawk nawk awk; do
+ if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
+ AWK=$e
+ break
+ fi
+done
+
+### skip this if the user just needs help...
+if [ "$OPT_HELP" != "yes" ]; then
+
+# is this a shadow build?
+if [ "$OPT_SHADOW" = "maybe" ]; then
+ OPT_SHADOW=no
+ if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
+ if [ -h "$outpath" ]; then
+ [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
+ else
+ OPT_SHADOW=yes
+ fi
+ fi
+fi
+if [ "$OPT_SHADOW" = "yes" ]; then
+ if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" ]; then
+ echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
+ echo >&2 "Cannot proceed."
+ exit 1
+ fi
+ [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
+fi
+
+if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
+ echo
+ echo "WARNING: -debug-and-release is not supported anymore on Qt/X11 and Qt for Embedded Linux"
+ echo "By default, Qt is built in release mode with separate debug information, so"
+ echo "-debug-and-release is not necessary anymore"
+ echo
+fi
+
+# detect build style
+if [ "$CFG_DEBUG" = "auto" ]; then
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ CFG_DEBUG_RELEASE=yes
+ CFG_DEBUG=yes
+ elif [ "$CFG_DEV" = "yes" ]; then
+ CFG_DEBUG_RELEASE=no
+ CFG_DEBUG=yes
+ else
+ CFG_DEBUG_RELEASE=no
+ CFG_DEBUG=no
+ fi
+fi
+if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
+ QMAKE_CONFIG="$QMAKE_CONFIG build_all"
+fi
+
+if [ "$CFG_SILENT" = "yes" ]; then
+ QMAKE_CONFIG="$QMAKE_CONFIG silent"
+fi
+
+# if the source tree is different from the build tree,
+# symlink or copy part of the sources
+if [ "$OPT_SHADOW" = "yes" ]; then
+ echo "Preparing build tree..."
+
+ if [ -z "$PERL" ]; then
+ echo
+ echo "You need perl in your PATH to make a shadow build."
+ echo "Cannot proceed."
+ exit 1
+ fi
+
+ [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
+
+ # symlink the qmake directory
+ find "$relpath/qmake" | while read a; do
+ my_a=`echo "$a" | sed "s,^${relpath}/,${outpath}/,"`
+ if [ '!' -f "$my_a" ]; then
+ if [ -d "$a" ]; then
+ # directories are created...
+ mkdir -p "$my_a"
+ else
+ a_dir=`dirname "$my_a"`
+ [ -d "$a_dir" ] || mkdir -p "$a_dir"
+ # ... and files are symlinked
+ case `basename "$a"` in
+ *.o|*.d|GNUmakefile*|qmake)
+ ;;
+ *)
+ rm -f "$my_a"
+ ln -s "$a" "$my_a"
+ ;;
+ esac
+ fi
+ fi
+ done
+
+ # make a syncqt script that can be used in the shadow
+ rm -f "$outpath/bin/syncqt"
+ if [ -x "$relpath/bin/syncqt" ]; then
+ mkdir -p "$outpath/bin"
+ echo "#!/bin/sh" >"$outpath/bin/syncqt"
+ echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/syncqt"
+ echo "perl \"$relpath/bin/syncqt\" -outdir \"$outpath\" $*" >>"$outpath/bin/syncqt"
+ chmod 755 "$outpath/bin/syncqt"
+ fi
+
+ # symlink the mkspecs directory
+ mkdir -p "$outpath/mkspecs"
+ rm -f "$outpath"/mkspecs/*
+ ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
+ rm -f "$outpath/mkspecs/default"
+
+ # symlink the doc directory
+ rm -rf "$outpath/doc"
+ ln -s "$relpath/doc" "$outpath/doc"
+
+ # make sure q3porting.xml can be found
+ mkdir -p "$outpath/tools/porting/src"
+ rm -f "$outpath/tools/porting/src/q3porting.xml"
+ ln -s "$relpath/tools/porting/src/q3porting.xml" "$outpath/tools/porting/src"
+fi
+
+# symlink files from src/gui/embedded neccessary to build qvfb
+if [ "$CFG_DEV" = "yes" ]; then
+ for f in qvfbhdr.h qlock_p.h qlock.cpp qwssignalhandler_p.h qwssignalhandler.cpp; do
+ dest="${relpath}/tools/qvfb/${f}"
+ rm -f "$dest"
+ ln -s "${relpath}/src/gui/embedded/${f}" "${dest}"
+ done
+fi
+
+# symlink fonts to be able to run application from build directory
+if [ "$PLATFORM_QWS" = "yes" ] && [ ! -e "${outpath}/lib/fonts" ]; then
+ if [ "$PLATFORM" = "$XPLATFORM" ]; then
+ mkdir -p "${outpath}/lib"
+ ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
+ fi
+fi
+
+if [ "$OPT_FAST" = "auto" ]; then
+ if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
+ OPT_FAST=yes
+ else
+ OPT_FAST=no
+ fi
+fi
+
+# find a make command
+if [ -z "$MAKE" ]; then
+ MAKE=
+ for mk in gmake make; do
+ if "$WHICH" $mk >/dev/null 2>&1; then
+ MAKE=`$WHICH $mk`
+ break
+ fi
+ done
+ if [ -z "$MAKE" ]; then
+ echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
+ echo >&2 "Cannot proceed."
+ exit 1
+ fi
+fi
+
+fi ### help
+
+#-------------------------------------------------------------------------------
+# auto-detect all that hasn't been specified in the arguments
+#-------------------------------------------------------------------------------
+
+[ "$PLATFORM_QWS" = "yes" -a "$CFG_EMBEDDED" = "no" ] && CFG_EMBEDDED=auto
+if [ "$CFG_EMBEDDED" != "no" ]; then
+ case "$UNAME_SYSTEM:$UNAME_RELEASE" in
+ Darwin:*)
+ [ -z "$PLATFORM" ] && PLATFORM=qws/macx-generic-g++
+ if [ -z "$XPLATFORM" ]; then
+ [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
+ XPLATFORM="qws/macx-$CFG_EMBEDDED-g++"
+ fi
+ ;;
+ FreeBSD:*)
+ [ -z "$PLATFORM" ] && PLATFORM=qws/freebsd-generic-g++
+ if [ -z "$XPLATFORM" ]; then
+ [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
+ XPLATFORM="qws/freebsd-$CFG_EMBEDDED-g++"
+ fi
+ ;;
+ SunOS:5*)
+ [ -z "$PLATFORM" ] && PLATFORM=qws/solaris-generic-g++
+ if [ -z "$XPLATFORM" ]; then
+ [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
+ XPLATFORM="qws/solaris-$CFG_EMBEDDED-g++"
+ fi
+ ;;
+ Linux:*)
+ if [ -z "$PLATFORM" ]; then
+ case "$UNAME_MACHINE" in
+ *86)
+ PLATFORM=qws/linux-x86-g++
+ ;;
+ *86_64)
+ PLATFORM=qws/linux-x86_64-g++
+ ;;
+ *ppc)
+ PLATFORM=qws/linux-ppc-g++
+ ;;
+ *)
+ PLATFORM=qws/linux-generic-g++
+ ;;
+ esac
+ fi
+ if [ -z "$XPLATFORM" ]; then
+ if [ "$CFG_EMBEDDED" = "auto" ]; then
+ if [ -n "$CFG_ARCH" ]; then
+ CFG_EMBEDDED=$CFG_ARCH
+ else
+ case "$UNAME_MACHINE" in
+ *86)
+ CFG_EMBEDDED=x86
+ ;;
+ *86_64)
+ CFG_EMBEDDED=x86_64
+ ;;
+ *ppc)
+ CFG_EMBEDDED=ppc
+ ;;
+ *)
+ CFG_EMBEDDED=generic
+ ;;
+ esac
+ fi
+ fi
+ XPLATFORM="qws/linux-$CFG_EMBEDDED-g++"
+ fi
+ ;;
+ CYGWIN*:*)
+ CFG_EMBEDDED=x86
+ ;;
+ *)
+ echo "Qt for Embedded Linux is not supported on this platform. Disabling."
+ CFG_EMBEDDED=no
+ PLATFORM_QWS=no
+ ;;
+ esac
+fi
+if [ -z "$PLATFORM" ]; then
+ PLATFORM_NOTES=
+ case "$UNAME_SYSTEM:$UNAME_RELEASE" in
+ Darwin:*)
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ PLATFORM=macx-g++
+ # PLATFORM=macx-xcode
+ else
+ PLATFORM=darwin-g++
+ fi
+ ;;
+ AIX:*)
+ #PLATFORM=aix-g++
+ #PLATFORM=aix-g++-64
+ PLATFORM=aix-xlc
+ #PLATFORM=aix-xlc-64
+ PLATFORM_NOTES="
+ - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
+ "
+ ;;
+ GNU:*)
+ PLATFORM=hurd-g++
+ ;;
+ dgux:*)
+ PLATFORM=dgux-g++
+ ;;
+# DYNIX/ptx:4*)
+# PLATFORM=dynix-g++
+# ;;
+ ULTRIX:*)
+ PLATFORM=ultrix-g++
+ ;;
+ FreeBSD:*)
+ PLATFORM=freebsd-g++
+ PLATFORM_NOTES="
+ - Also available for FreeBSD: freebsd-icc
+ "
+ ;;
+ OpenBSD:*)
+ PLATFORM=openbsd-g++
+ ;;
+ NetBSD:*)
+ PLATFORM=netbsd-g++
+ ;;
+ BSD/OS:*|BSD/386:*)
+ PLATFORM=bsdi-g++
+ ;;
+ IRIX*:*)
+ #PLATFORM=irix-g++
+ PLATFORM=irix-cc
+ #PLATFORM=irix-cc-64
+ PLATFORM_NOTES="
+ - Also available for IRIX: irix-g++ irix-cc-64
+ "
+ ;;
+ HP-UX:*)
+ case "$UNAME_MACHINE" in
+ ia64)
+ #PLATFORM=hpuxi-acc-32
+ PLATFORM=hpuxi-acc-64
+ PLATFORM_NOTES="
+ - Also available for HP-UXi: hpuxi-acc-32
+ "
+ ;;
+ *)
+ #PLATFORM=hpux-g++
+ PLATFORM=hpux-acc
+ #PLATFORM=hpux-acc-64
+ #PLATFORM=hpux-cc
+ #PLATFORM=hpux-acc-o64
+ PLATFORM_NOTES="
+ - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
+ "
+ ;;
+ esac
+ ;;
+ OSF1:*)
+ #PLATFORM=tru64-g++
+ PLATFORM=tru64-cxx
+ PLATFORM_NOTES="
+ - Also available for Tru64: tru64-g++
+ "
+ ;;
+ Linux:*)
+ case "$UNAME_MACHINE" in
+ x86_64|s390x|ppc64)
+ PLATFORM=linux-g++-64
+ ;;
+ *)
+ PLATFORM=linux-g++
+ ;;
+ esac
+ PLATFORM_NOTES="
+ - Also available for Linux: linux-kcc linux-icc linux-cxx
+ "
+ ;;
+ SunOS:5*)
+ #PLATFORM=solaris-g++
+ PLATFORM=solaris-cc
+ #PLATFORM=solaris-cc64
+ PLATFORM_NOTES="
+ - Also available for Solaris: solaris-g++ solaris-cc-64
+ "
+ ;;
+ ReliantUNIX-*:*|SINIX-*:*)
+ PLATFORM=reliant-cds
+ #PLATFORM=reliant-cds-64
+ PLATFORM_NOTES="
+ - Also available for Reliant UNIX: reliant-cds-64
+ "
+ ;;
+ CYGWIN*:*)
+ PLATFORM=cygwin-g++
+ ;;
+ LynxOS*:*)
+ PLATFORM=lynxos-g++
+ ;;
+ OpenUNIX:*)
+ #PLATFORM=unixware-g++
+ PLATFORM=unixware-cc
+ PLATFORM_NOTES="
+ - Also available for OpenUNIX: unixware-g++
+ "
+ ;;
+ UnixWare:*)
+ #PLATFORM=unixware-g++
+ PLATFORM=unixware-cc
+ PLATFORM_NOTES="
+ - Also available for UnixWare: unixware-g++
+ "
+ ;;
+ SCO_SV:*)
+ #PLATFORM=sco-g++
+ PLATFORM=sco-cc
+ PLATFORM_NOTES="
+ - Also available for SCO OpenServer: sco-g++
+ "
+ ;;
+ UNIX_SV:*)
+ PLATFORM=unixware-g++
+ ;;
+ *)
+ if [ "$OPT_HELP" != "yes" ]; then
+ echo
+ for p in $PLATFORMS; do
+ echo " $relconf $* -platform $p"
+ done
+ echo >&2
+ echo " The build script does not currently recognize all" >&2
+ echo " platforms supported by Qt." >&2
+ echo " Rerun this script with a -platform option listed to" >&2
+ echo " set the system/compiler combination you use." >&2
+ echo >&2
+ exit 2
+ fi
+ esac
+fi
+
+if [ "$PLATFORM_QWS" = "yes" ]; then
+ CFG_SM=no
+ PLATFORMS=`find "$relpath/mkspecs/qws" | sed "s,$relpath/mkspecs/qws/,,"`
+else
+ PLATFORMS=`find "$relpath/mkspecs/" -type f | grep -v qws | sed "s,$relpath/mkspecs/qws/,,"`
+fi
+
+[ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
+if [ -d "$PLATFORM" ]; then
+ QMAKESPEC="$PLATFORM"
+else
+ QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
+fi
+if [ -d "$XPLATFORM" ]; then
+ XQMAKESPEC="$XPLATFORM"
+else
+ XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
+fi
+if [ "$PLATFORM" != "$XPLATFORM" ]; then
+ QT_CROSS_COMPILE=yes
+ QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
+fi
+
+if [ "$PLATFORM_MAC" = "yes" ]; then
+ if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
+ echo >&2
+ echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
+ echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
+ echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
+ echo " built with 'macx-g++'" >&2
+ echo >&2
+ exit 2
+ fi
+fi
+
+# check specified platforms are supported
+if [ '!' -d "$QMAKESPEC" ]; then
+ echo
+ echo " The specified system/compiler is not supported:"
+ echo
+ echo " $QMAKESPEC"
+ echo
+ echo " Please see the README file for a complete list."
+ echo
+ exit 2
+fi
+if [ '!' -d "$XQMAKESPEC" ]; then
+ echo
+ echo " The specified system/compiler is not supported:"
+ echo
+ echo " $XQMAKESPEC"
+ echo
+ echo " Please see the README file for a complete list."
+ echo
+ exit 2
+fi
+if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
+ echo
+ echo " The specified system/compiler port is not complete:"
+ echo
+ echo " $XQMAKESPEC/qplatformdefs.h"
+ echo
+ echo " Please contact qt-bugs@trolltech.com."
+ echo
+ exit 2
+fi
+
+# now look at the configs and figure out what platform we are config'd for
+[ "$CFG_EMBEDDED" = "no" ] \
+ && [ '!' -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_LIBS_X11 | awk '{print $3;}'`" ] \
+ && PLATFORM_X11=yes
+### echo "$XQMAKESPEC" | grep mkspecs/qws >/dev/null 2>&1 && PLATFORM_QWS=yes
+
+if [ "$UNAME_SYSTEM" = "SunOS" ]; then
+ # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
+ if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
+ sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
+ mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
+ fi
+fi
+
+#-------------------------------------------------------------------------------
+# determine the system architecture
+#-------------------------------------------------------------------------------
+if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo "Determining system architecture... ($UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE)"
+fi
+
+if [ "$CFG_EMBEDDED" != "no" -a "$CFG_EMBEDDED" != "auto" ] && [ -n "$CFG_ARCH" ]; then
+ if [ "$CFG_ARCH" != "$CFG_EMBEDDED" ]; then
+ echo ""
+ echo "You have specified a target architecture with -embedded and -arch."
+ echo "The two architectures you have specified are different, so we can"
+ echo "not proceed. Either set both to be the same, or only use -embedded."
+ echo ""
+ exit 1
+ fi
+fi
+
+if [ -z "${CFG_HOST_ARCH}" ]; then
+ case "$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE" in
+ IRIX*:*:*)
+ CFG_HOST_ARCH=`uname -p`
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " SGI ($CFG_HOST_ARCH)"
+ fi
+ ;;
+ SunOS:5*:*)
+ case "$UNAME_MACHINE" in
+ sun4u*|sun4v*)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " Sun SPARC (sparc)"
+ fi
+ CFG_HOST_ARCH=sparc
+ ;;
+ i86pc)
+ case "$PLATFORM" in
+ *-64)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " 64-bit AMD 80x86 (x86_64)"
+ fi
+ CFG_HOST_ARCH=x86_64
+ ;;
+ *)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " 32-bit Intel 80x86 (i386)"
+ fi
+ CFG_HOST_ARCH=i386
+ ;;
+ esac
+ esac
+ ;;
+ Darwin:*:*)
+ case "$UNAME_MACHINE" in
+ Power?Macintosh)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " 32-bit Apple PowerPC (powerpc)"
+ fi
+ ;;
+ x86)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " 32-bit Intel 80x86 (i386)"
+ fi
+ ;;
+ esac
+ CFG_HOST_ARCH=macosx
+ ;;
+ AIX:*:00????????00)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " 64-bit IBM PowerPC (powerpc)"
+ fi
+ CFG_HOST_ARCH=powerpc
+ ;;
+ HP-UX:*:9000*)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " HP PA-RISC (parisc)"
+ fi
+ CFG_HOST_ARCH=parisc
+ ;;
+ *:*:i?86)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " 32-bit Intel 80x86 (i386)"
+ fi
+ CFG_HOST_ARCH=i386
+ ;;
+ *:*:x86_64|*:*:amd64)
+ if [ "$PLATFORM" = "linux-g++-32" -o "$PLATFORM" = "linux-icc-32" ]; then
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " 32 bit on 64-bit AMD 80x86 (i386)"
+ fi
+ CFG_HOST_ARCH=i386
+ else
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " 64-bit AMD 80x86 (x86_64)"
+ fi
+ CFG_HOST_ARCH=x86_64
+ fi
+ ;;
+ *:*:ppc)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " 32-bit PowerPC (powerpc)"
+ fi
+ CFG_HOST_ARCH=powerpc
+ ;;
+ *:*:ppc64)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " 64-bit PowerPC (powerpc)"
+ fi
+ CFG_HOST_ARCH=powerpc
+ ;;
+ *:*:s390*)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " IBM S/390 (s390)"
+ fi
+ CFG_HOST_ARCH=s390
+ ;;
+ *:*:arm*)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " ARM (arm)"
+ fi
+ CFG_HOST_ARCH=arm
+ ;;
+ Linux:*:sparc*)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " Linux on SPARC"
+ fi
+ CFG_HOST_ARCH=sparc
+ ;;
+ *:*:*)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " Trying '$UNAME_MACHINE'..."
+ fi
+ CFG_HOST_ARCH="$UNAME_MACHINE"
+ ;;
+ esac
+fi
+
+if [ "$PLATFORM" != "$XPLATFORM" -a "$CFG_EMBEDDED" != "no" ]; then
+ if [ -n "$CFG_ARCH" ]; then
+ CFG_EMBEDDED=$CFG_ARCH
+ fi
+
+ case "$CFG_EMBEDDED" in
+ x86)
+ CFG_ARCH=i386
+ ;;
+ x86_64)
+ CFG_ARCH=x86_64
+ ;;
+ ipaq|sharp)
+ CFG_ARCH=arm
+ ;;
+ dm7000)
+ CFG_ARCH=powerpc
+ ;;
+ dm800)
+ CFG_ARCH=mips
+ ;;
+ sh4al)
+ CFG_ARCH=sh4a
+ ;;
+ *)
+ CFG_ARCH="$CFG_EMBEDDED"
+ ;;
+ esac
+elif [ "$PLATFORM_MAC" = "yes" ] || [ -z "$CFG_ARCH" ]; then
+ CFG_ARCH=$CFG_HOST_ARCH
+fi
+
+if [ -d "$relpath/src/corelib/arch/$CFG_ARCH" ]; then
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " '$CFG_ARCH' is supported"
+ fi
+else
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " '$CFG_ARCH' is unsupported, using 'generic'"
+ fi
+ CFG_ARCH=generic
+fi
+if [ "$CFG_HOST_ARCH" != "$CFG_ARCH" ]; then
+ if [ -d "$relpath/src/corelib/arch/$CFG_HOST_ARCH" ]; then
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " '$CFG_HOST_ARCH' is supported"
+ fi
+ else
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " '$CFG_HOST_ARCH' is unsupported, using 'generic'"
+ fi
+ CFG_HOST_ARCH=generic
+ fi
+fi
+
+if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo "System architecture: '$CFG_ARCH'"
+ if [ "$PLATFORM_QWS" = "yes" ]; then
+ echo "Host architecture: '$CFG_HOST_ARCH'"
+ fi
+fi
+
+#-------------------------------------------------------------------------------
+# tests that don't need qmake (must be run before displaying help)
+#-------------------------------------------------------------------------------
+
+if [ -z "$PKG_CONFIG" ]; then
+ # See if PKG_CONFIG is set in the mkspec:
+ PKG_CONFIG=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%PKG_CONFIG[^_].*=%%p' | tr '\n' ' '`
+fi
+if [ -z "$PKG_CONFIG" ]; then
+ PKG_CONFIG=`$WHICH pkg-config 2>/dev/null`
+fi
+
+# Work out if we can use pkg-config
+if [ "$QT_CROSS_COMPILE" = "yes" ]; then
+ if [ "$QT_FORCE_PKGCONFIG" = "yes" ]; then
+ echo >&2 ""
+ echo >&2 "You have asked to use pkg-config and are cross-compiling."
+ echo >&2 "Please make sure you have a correctly set-up pkg-config"
+ echo >&2 "environment!"
+ echo >&2 ""
+ if [ -z "$PKG_CONFIG_PATH" ]; then
+ echo >&2 ""
+ echo >&2 "Warning: PKG_CONFIG_PATH has not been set. This could mean"
+ echo >&2 "the host compiler's .pc files will be used. This is probably"
+ echo >&2 "not what you want."
+ echo >&2 ""
+ elif [ -z "$PKG_CONFIG_SYSROOT" ] && [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
+ echo >&2 ""
+ echo >&2 "Warning: PKG_CONFIG_SYSROOT/PKG_CONFIG_SYSROOT_DIR has not"
+ echo >&2 "been set. This means your toolchain's .pc files must contain"
+ echo >&2 "the paths to the toolchain's libraries & headers. If configure"
+ echo >&2 "tests are failing, please check these files."
+ echo >&2 ""
+ fi
+ else
+ PKG_CONFIG=""
+ fi
+fi
+
+# find the default framework value
+if [ "$PLATFORM_MAC" = "yes" ] && [ "$PLATFORM" != "macx-xlc" ]; then
+ if [ "$CFG_FRAMEWORK" = "auto" ]; then
+ CFG_FRAMEWORK="$CFG_SHARED"
+ elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
+ echo
+ echo "WARNING: Using static linking will disable the use of Mac frameworks."
+ echo
+ CFG_FRAMEWORK="no"
+ fi
+else
+ CFG_FRAMEWORK=no
+fi
+
+QMAKE_CONF_COMPILER=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_CXX[^_A-Z0-9]" | sed "s,.* *= *\(.*\)$,\1," | tail -1`
+TEST_COMPILER="$CC"
+[ -z "$TEST_COMPILER" ] && TEST_COMPILER=$QMAKE_CONF_COMPILER
+
+# auto-detect precompiled header support
+if [ "$CFG_PRECOMPILE" = "auto" ]; then
+ if [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
+ CFG_PRECOMPILE=no
+ elif "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
+ CFG_PRECOMPILE=no
+ else
+ CFG_PRECOMPILE=yes
+ fi
+elif [ "$CFG_PRECOMPILE" = "yes" ] && [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
+ echo
+ echo "WARNING: Using universal binaries disables precompiled headers."
+ echo
+ CFG_PRECOMPILE=no
+fi
+
+#auto-detect DWARF2 on the mac
+if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" == "auto" ]; then
+ if "$mactests/dwarf2.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
+ CFG_MAC_DWARF2=no
+ else
+ CFG_MAC_DWARF2=yes
+ fi
+fi
+
+# auto-detect support for -Xarch on the mac
+if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" == "auto" ]; then
+ if "$mactests/xarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
+ CFG_MAC_XARCH=no
+ else
+ CFG_MAC_XARCH=yes
+ fi
+fi
+
+# don't autodetect support for separate debug info on objcopy when
+# cross-compiling as lots of toolchains seems to have problems with this
+if [ "$QT_CROSS_COMPILE" = "yes" ] && [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
+ CFG_SEPARATE_DEBUG_INFO="no"
+fi
+
+# auto-detect support for separate debug info in objcopy
+if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
+ TEST_COMPILER_CFLAGS=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%QMAKE_CFLAGS[^_].*=%%p' | tr '\n' ' '`
+ TEST_COMPILER_CXXFLAGS=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%QMAKE_CXXFLAGS[^_].*=%%p' | tr '\n' ' '`
+ TEST_OBJCOPY=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_OBJCOPY" | sed "s%.* *= *\(.*\)$%\1%" | tail -1`
+ COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
+ COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
+ if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
+ CFG_SEPARATE_DEBUG_INFO=no
+ else
+ case "$PLATFORM" in
+ hpux-*)
+ # binutils on HP-UX is buggy; default to no.
+ CFG_SEPARATE_DEBUG_INFO=no
+ ;;
+ *)
+ CFG_SEPARATE_DEBUG_INFO=yes
+ ;;
+ esac
+ fi
+fi
+
+# auto-detect -fvisibility support
+if [ "$CFG_REDUCE_EXPORTS" = "auto" ]; then
+ if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
+ CFG_REDUCE_EXPORTS=no
+ else
+ CFG_REDUCE_EXPORTS=yes
+ fi
+fi
+
+# detect the availability of the -Bsymbolic-functions linker optimization
+if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
+ if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
+ CFG_REDUCE_RELOCATIONS=no
+ else
+ CFG_REDUCE_RELOCATIONS=yes
+ fi
+fi
+
+# auto-detect GNU make support
+if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
+ CFG_USE_GNUMAKE=yes
+fi
+
+# If -opengl wasn't specified, don't try to auto-detect
+if [ "$PLATFORM_QWS" = "yes" ] && [ "$CFG_OPENGL" = "auto" ]; then
+ CFG_OPENGL=no
+fi
+
+# mac
+if [ "$PLATFORM_MAC" = "yes" ]; then
+ if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
+ CFG_OPENGL=desktop
+ fi
+fi
+
+# find the default framework value
+if [ "$PLATFORM_MAC" = "yes" ] && [ "$PLATFORM" != "macx-xlc" ]; then
+ if [ "$CFG_FRAMEWORK" = "auto" ]; then
+ CFG_FRAMEWORK="$CFG_SHARED"
+ elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
+ echo
+ echo "WARNING: Using static linking will disable the use of Mac frameworks."
+ echo
+ CFG_FRAMEWORK="no"
+ fi
+else
+ CFG_FRAMEWORK=no
+fi
+
+# x11 tests are done after qmake is built
+
+
+#setup the build parts
+if [ -z "$CFG_BUILD_PARTS" ]; then
+ CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
+
+ # don't build tools by default when cross-compiling
+ if [ "$PLATFORM" != "$XPLATFORM" ]; then
+ CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
+ fi
+fi
+for nobuild in $CFG_NOBUILD_PARTS; do
+ CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
+done
+if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
+# echo
+# echo "WARNING: libs is a required part of the build."
+# echo
+ CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
+fi
+
+#-------------------------------------------------------------------------------
+# post process QT_INSTALL_* variables
+#-------------------------------------------------------------------------------
+
+#prefix
+if [ -z "$QT_INSTALL_PREFIX" ]; then
+ if [ "$CFG_DEV" = "yes" ]; then
+ QT_INSTALL_PREFIX="$outpath" # At Trolltech, we use sandboxed builds by default
+ elif [ "$PLATFORM_QWS" = "yes" ]; then
+ QT_INSTALL_PREFIX="/usr/local/Trolltech/QtEmbedded-${QT_VERSION}"
+ if [ "$PLATFORM" != "$XPLATFORM" ]; then
+ QT_INSTALL_PREFIX="${QT_INSTALL_PREFIX}-${CFG_ARCH}"
+ fi
+ else
+ QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION
+ fi
+fi
+QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
+
+#docs
+if [ -z "$QT_INSTALL_DOCS" ]; then #default
+ if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ QT_INSTALL_DOCS="/Developer/Documentation/Qt"
+ fi
+ fi
+ [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
+
+fi
+QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
+
+#headers
+if [ -z "$QT_INSTALL_HEADERS" ]; then #default
+ if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ if [ "$CFG_FRAMEWORK" = "yes" ]; then
+ QT_INSTALL_HEADERS=
+ fi
+ fi
+ fi
+ [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
+
+fi
+QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
+
+#libs
+if [ -z "$QT_INSTALL_LIBS" ]; then #default
+ if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ if [ "$CFG_FRAMEWORK" = "yes" ]; then
+ QT_INSTALL_LIBS="/Libraries/Frameworks"
+ fi
+ fi
+ fi
+ [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
+fi
+QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
+
+#bins
+if [ -z "$QT_INSTALL_BINS" ]; then #default
+ if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ QT_INSTALL_BINS="/Developer/Applications/Qt"
+ fi
+ fi
+ [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
+
+fi
+QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
+
+#plugins
+if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
+ if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
+ fi
+ fi
+ [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
+fi
+QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
+
+#data
+if [ -z "$QT_INSTALL_DATA" ]; then #default
+ QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
+fi
+QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
+
+#translations
+if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
+ QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
+fi
+QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
+
+#settings
+if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ QT_INSTALL_SETTINGS=/Library/Preferences/Qt
+ else
+ QT_INSTALL_SETTINGS=/etc/xdg
+ fi
+fi
+QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
+
+#examples
+if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
+ if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
+ fi
+ fi
+ [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
+fi
+QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
+
+#demos
+if [ -z "$QT_INSTALL_DEMOS" ]; then #default
+ if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ QT_INSTALL_DEMOS="/Developer/Examples/Qt/Demos"
+ fi
+ fi
+ [ -z "$QT_INSTALL_DEMOS" ] && QT_INSTALL_DEMOS="$QT_INSTALL_PREFIX/demos"
+fi
+QT_INSTALL_DEMOS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DEMOS"`
+
+#-------------------------------------------------------------------------------
+# help - interactive parts of the script _after_ this section please
+#-------------------------------------------------------------------------------
+
+# next, emit a usage message if something failed.
+if [ "$OPT_HELP" = "yes" ]; then
+ [ "x$ERROR" = "xyes" ] && echo
+ if [ "$CFG_NIS" = "no" ]; then
+ NSY=" "
+ NSN="*"
+ else
+ NSY="*"
+ NSN=" "
+ fi
+ if [ "$CFG_CUPS" = "no" ]; then
+ CUY=" "
+ CUN="*"
+ else
+ CUY="*"
+ CUN=" "
+ fi
+ if [ "$CFG_ICONV" = "no" ]; then
+ CIY=" "
+ CIN="*"
+ else
+ CIY="*"
+ CIN=" "
+ fi
+ if [ "$CFG_LARGEFILE" = "no" ]; then
+ LFSY=" "
+ LFSN="*"
+ else
+ LFSY="*"
+ LFSN=" "
+ fi
+ if [ "$CFG_STL" = "auto" ] || [ "$CFG_STL" = "yes" ]; then
+ SHY="*"
+ SHN=" "
+ else
+ SHY=" "
+ SHN="*"
+ fi
+ if [ "$CFG_IPV6" = "auto" ]; then
+ I6Y="*"
+ I6N=" "
+ fi
+ if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
+ PHY=" "
+ PHN="*"
+ else
+ PHY="*"
+ PHN=" "
+ fi
+
+ cat <<EOF
+Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
+ [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-datadir <dir>]
+ [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>]
+ [-demosdir <dir>] [-buildkey <key>] [-release] [-debug]
+ [-debug-and-release] [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
+ [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
+ [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
+ [-plugin-sql-<driver>] [-system-sqlite] [-no-qt3support] [-qt3support]
+ [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
+ [-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
+ [-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng]
+ [-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
+ [-no-make <part>] [-R <string>] [-l <string>] [-no-rpath] [-rpath] [-continue]
+ [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
+ [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked]
+ [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
+ [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info] [-armfpa]
+ [-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns] [-xmlpatterns]
+ [-no-phonon] [-phonon] [-no-phonon-backend] [-phonon-backend]
+ [-no-openssl] [-openssl] [-openssl-linked]
+ [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit]
+ [-no-scripttools] [-scripttools]
+
+ [additional platform specific options (see below)]
+
+
+Installation options:
+
+ These are optional, but you may specify install directories.
+
+ -prefix <dir> ...... This will install everything relative to <dir>
+ (default $QT_INSTALL_PREFIX)
+EOF
+if [ "$PLATFORM_QWS" = "yes" ]; then
+cat <<EOF
+
+ -hostprefix [dir] .. Tools and libraries needed when developing
+ applications are installed in [dir]. If [dir] is
+ not given, the current build directory will be used.
+EOF
+fi
+cat <<EOF
+
+ * -prefix-install .... Force a sandboxed "local" installation of
+ Qt. This will install into
+ $QT_INSTALL_PREFIX, if this option is
+ disabled then some platforms will attempt a
+ "system" install by placing default values to
+ be placed in a system location other than
+ PREFIX.
+
+ You may use these to separate different parts of the install:
+
+ -bindir <dir> ......... Executables will be installed to <dir>
+ (default PREFIX/bin)
+ -libdir <dir> ......... Libraries will be installed to <dir>
+ (default PREFIX/lib)
+ -docdir <dir> ......... Documentation will be installed to <dir>
+ (default PREFIX/doc)
+ -headerdir <dir> ...... Headers will be installed to <dir>
+ (default PREFIX/include)
+ -plugindir <dir> ...... Plugins will be installed to <dir>
+ (default PREFIX/plugins)
+ -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
+ (default PREFIX)
+ -translationdir <dir> . Translations of Qt programs will be installed to <dir>
+ (default PREFIX/translations)
+ -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
+ (default PREFIX/etc/settings)
+ -examplesdir <dir> .... Examples will be installed to <dir>
+ (default PREFIX/examples)
+ -demosdir <dir> ....... Demos will be installed to <dir>
+ (default PREFIX/demos)
+
+ You may use these options to turn on strict plugin loading.
+
+ -buildkey <key> .... Build the Qt library and plugins using the specified
+ <key>. When the library loads plugins, it will only
+ load those that have a matching key.
+
+Configure options:
+
+ The defaults (*) are usually acceptable. A plus (+) denotes a default value
+ that needs to be evaluated. If the evaluation succeeds, the feature is
+ included. Here is a short explanation of each option:
+
+ * -release ........... Compile and link Qt with debugging turned off.
+ -debug ............. Compile and link Qt with debugging turned on.
+ -debug-and-release . Compile and link two versions of Qt, with and without
+ debugging turned on (Mac only).
+
+ -developer-build.... Compile and link Qt with Qt developer options (including auto-tests exporting)
+
+ -opensource......... Compile and link the Open-Source Edition of Qt.
+ -commercial......... Compile and link the Commercial Edition of Qt.
+
+
+ * -shared ............ Create and use shared Qt libraries.
+ -static ............ Create and use static Qt libraries.
+
+ * -no-fast ........... Configure Qt normally by generating Makefiles for all
+ project files.
+ -fast .............. Configure Qt quickly by generating Makefiles only for
+ library and subdirectory targets. All other Makefiles
+ are created as wrappers, which will in turn run qmake.
+
+ -no-largefile ...... Disables large file support.
+ + -largefile ......... Enables Qt to access files larger than 4 GB.
+
+EOF
+if [ "$PLATFORM_QWS" = "yes" ]; then
+ EXCN="*"
+ EXCY=" "
+else
+ EXCN=" "
+ EXCY="*"
+fi
+if [ "$CFG_DBUS" = "no" ]; then
+ DBY=" "
+ DBN="+"
+else
+ DBY="+"
+ DBN=" "
+fi
+
+ cat << EOF
+ $EXCN -no-exceptions ..... Disable exceptions on compilers that support it.
+ $EXCY -exceptions ........ Enable exceptions on compilers that support it.
+
+ -no-accessibility .. Do not compile Accessibility support.
+ * -accessibility ..... Compile Accessibility support.
+
+ $SHN -no-stl ............ Do not compile STL support.
+ $SHY -stl ............... Compile STL support.
+
+ -no-sql-<driver> ... Disable SQL <driver> entirely.
+ -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
+ none are turned on.
+ -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
+ at run time.
+
+ Possible values for <driver>:
+ [ $CFG_SQL_AVAILABLE ]
+
+ -system-sqlite ..... Use sqlite from the operating system.
+
+ -no-qt3support ..... Disables the Qt 3 support functionality.
+ * -qt3support ........ Enables the Qt 3 support functionality.
+
+ -no-xmlpatterns .... Do not build the QtXmlPatterns module.
+ + -xmlpatterns ....... Build the QtXmlPatterns module.
+ QtXmlPatterns is built if a decent C++ compiler
+ is used and exceptions are enabled.
+
+ -no-phonon ......... Do not build the Phonon module.
+ + -phonon ............ Build the Phonon module.
+ Phonon is built if a decent C++ compiler is used.
+ -no-phonon-backend.. Do not build the platform phonon plugin.
+ + -phonon-backend..... Build the platform phonon plugin.
+
+ -no-svg ............ Do not build the SVG module.
+ + -svg ............... Build the SVG module.
+
+ -no-webkit ......... Do not build the WebKit module.
+ + -webkit ............ Build the WebKit module.
+ WebKit is built if a decent C++ compiler is used.
+
+ -no-scripttools .... Do not build the QtScriptTools module.
+ + -scripttools ....... Build the QtScriptTools module.
+
+ -platform target ... The operating system and compiler you are building
+ on ($PLATFORM).
+
+ See the README file for a list of supported
+ operating systems and compilers.
+EOF
+if [ "${PLATFORM_QWS}" != "yes" ]; then
+cat << EOF
+ -graphicssystem <sys> Sets an alternate graphics system. Available options are:
+ raster - Software rasterizer
+ opengl - Rendering via OpenGL, Experimental!
+EOF
+fi
+cat << EOF
+
+ -no-mmx ............ Do not compile with use of MMX instructions.
+ -no-3dnow .......... Do not compile with use of 3DNOW instructions.
+ -no-sse ............ Do not compile with use of SSE instructions.
+ -no-sse2 ........... Do not compile with use of SSE2 instructions.
+
+ -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
+ -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
+
+ -D <string> ........ Add an explicit define to the preprocessor.
+ -I <string> ........ Add an explicit include path.
+ -L <string> ........ Add an explicit library path.
+
+ -help, -h .......... Display this information.
+
+Third Party Libraries:
+
+ -qt-zlib ........... Use the zlib bundled with Qt.
+ + -system-zlib ....... Use zlib from the operating system.
+ See http://www.gzip.org/zlib
+
+ -no-gif ............ Do not compile the plugin for GIF reading support.
+ * -qt-gif ............ Compile the plugin for GIF reading support.
+ See also src/plugins/imageformats/gif/qgifhandler.h
+
+ -no-libtiff ........ Do not compile the plugin for TIFF support.
+ -qt-libtiff ........ Use the libtiff bundled with Qt.
+ + -system-libtiff .... Use libtiff from the operating system.
+ See http://www.libtiff.org
+
+ -no-libpng ......... Do not compile in PNG support.
+ -qt-libpng ......... Use the libpng bundled with Qt.
+ + -system-libpng ..... Use libpng from the operating system.
+ See http://www.libpng.org/pub/png
+
+ -no-libmng ......... Do not compile the plugin for MNG support.
+ -qt-libmng ......... Use the libmng bundled with Qt.
+ + -system-libmng ..... Use libmng from the operating system.
+ See http://www.libmng.com
+
+ -no-libjpeg ........ Do not compile the plugin for JPEG support.
+ -qt-libjpeg ........ Use the libjpeg bundled with Qt.
+ + -system-libjpeg .... Use libjpeg from the operating system.
+ See http://www.ijg.org
+
+ -no-openssl ........ Do not compile support for OpenSSL.
+ + -openssl ........... Enable run-time OpenSSL support.
+ -openssl-linked .... Enabled linked OpenSSL support.
+
+ -ptmalloc .......... Override the system memory allocator with ptmalloc.
+ (Experimental.)
+
+Additional options:
+
+ -make <part> ....... Add part to the list of parts to be built at make time.
+ ($QT_DEFAULT_BUILD_PARTS)
+ -nomake <part> ..... Exclude part from the list of parts to be built.
+
+ -R <string> ........ Add an explicit runtime library path to the Qt
+ libraries.
+ -l <string> ........ Add an explicit library.
+
+ -no-rpath .......... Do not use the library install path as a runtime
+ library path.
+ + -rpath ............. Link Qt libraries and executables using the library
+ install path as a runtime library path. Equivalent
+ to -R install_libpath
+
+ -continue .......... Continue as far as possible if an error occurs.
+
+ -verbose, -v ....... Print verbose information about each step of the
+ configure process.
+
+ -silent ............ Reduce the build output so that warnings and errors
+ can be seen more easily.
+
+ * -no-optimized-qmake ... Do not build qmake optimized.
+ -optimized-qmake ...... Build qmake optimized.
+
+ $NSN -no-nis ............ Do not compile NIS support.
+ $NSY -nis ............... Compile NIS support.
+
+ $CUN -no-cups ........... Do not compile CUPS support.
+ $CUY -cups .............. Compile CUPS support.
+ Requires cups/cups.h and libcups.so.2.
+
+ $CIN -no-iconv .......... Do not compile support for iconv(3).
+ $CIY -iconv ............. Compile support for iconv(3).
+
+ $PHN -no-pch ............ Do not use precompiled header support.
+ $PHY -pch ............... Use precompiled header support.
+
+ $DBN -no-dbus ........... Do not compile the QtDBus module.
+ $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
+ -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
+
+ -reduce-relocations ..... Reduce relocations in the libraries through extra
+ linker optimizations (Qt/X11 and Qt for Embedded Linux only;
+ experimental; needs GNU ld >= 2.18).
+EOF
+
+if [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
+ if [ "$QT_CROSS_COMPILE" = "yes" ]; then
+ SBY=""
+ SBN="*"
+ else
+ SBY="*"
+ SBN=" "
+ fi
+elif [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
+ SBY="*"
+ SBN=" "
+else
+ SBY=" "
+ SBN="*"
+fi
+
+if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then
+
+ cat << EOF
+
+ $SBN -no-separate-debug-info . Do not store debug information in a separate file.
+ $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
+
+EOF
+
+fi # X11/QWS
+
+if [ "$PLATFORM_X11" = "yes" ]; then
+ if [ "$CFG_SM" = "no" ]; then
+ SMY=" "
+ SMN="*"
+ else
+ SMY="*"
+ SMN=" "
+ fi
+ if [ "$CFG_XSHAPE" = "no" ]; then
+ SHY=" "
+ SHN="*"
+ else
+ SHY="*"
+ SHN=" "
+ fi
+ if [ "$CFG_XINERAMA" = "no" ]; then
+ XAY=" "
+ XAN="*"
+ else
+ XAY="*"
+ XAN=" "
+ fi
+ if [ "$CFG_FONTCONFIG" = "no" ]; then
+ FCGY=" "
+ FCGN="*"
+ else
+ FCGY="*"
+ FCGN=" "
+ fi
+ if [ "$CFG_XCURSOR" = "no" ]; then
+ XCY=" "
+ XCN="*"
+ else
+ XCY="*"
+ XCN=" "
+ fi
+ if [ "$CFG_XFIXES" = "no" ]; then
+ XFY=" "
+ XFN="*"
+ else
+ XFY="*"
+ XFN=" "
+ fi
+ if [ "$CFG_XRANDR" = "no" ]; then
+ XZY=" "
+ XZN="*"
+ else
+ XZY="*"
+ XZN=" "
+ fi
+ if [ "$CFG_XRENDER" = "no" ]; then
+ XRY=" "
+ XRN="*"
+ else
+ XRY="*"
+ XRN=" "
+ fi
+ if [ "$CFG_MITSHM" = "no" ]; then
+ XMY=" "
+ XMN="*"
+ else
+ XMY="*"
+ XMN=" "
+ fi
+ if [ "$CFG_XINPUT" = "no" ]; then
+ XIY=" "
+ XIN="*"
+ else
+ XIY="*"
+ XIN=" "
+ fi
+ if [ "$CFG_XKB" = "no" ]; then
+ XKY=" "
+ XKN="*"
+ else
+ XKY="*"
+ XKN=" "
+ fi
+ if [ "$CFG_IM" = "no" ]; then
+ IMY=" "
+ IMN="*"
+ else
+ IMY="*"
+ IMN=" "
+ fi
+ cat << EOF
+
+Qt/X11 only:
+
+ -no-gtkstyle ....... Do not build the GTK theme integration.
+ + -gtkstyle .......... Build the GTK theme integration.
+
+ * -no-nas-sound ...... Do not compile in NAS sound support.
+ -system-nas-sound .. Use NAS libaudio from the operating system.
+ See http://radscan.com/nas.html
+
+ -no-opengl ......... Do not support OpenGL.
+ + -opengl <api> ...... Enable OpenGL support.
+ With no parameter, this will auto-detect the "best"
+ OpenGL API to use. If desktop OpenGL is avaliable, it
+ will be used. Use desktop, es1, es1cl or es2 for <api>
+ to force the use of the Desktop (OpenGL 1.x or 2.x),
+ OpenGL ES 1.x Common profile, 1.x Common Lite profile
+ or 2.x APIs instead. On X11, the EGL API will be used
+ to manage GL contexts in the case of OpenGL ES.
+
+ $SMN -no-sm ............. Do not support X Session Management.
+ $SMY -sm ................ Support X Session Management, links in -lSM -lICE.
+
+ $SHN -no-xshape ......... Do not compile XShape support.
+ $SHY -xshape ............ Compile XShape support.
+ Requires X11/extensions/shape.h.
+
+ $XAN -no-xinerama ....... Do not compile Xinerama (multihead) support.
+ $XAY -xinerama .......... Compile Xinerama support.
+ Requires X11/extensions/Xinerama.h and libXinerama.
+ By default, Xinerama support will be compiled if
+ available and the shared libraries are dynamically
+ loaded at runtime.
+
+ $XCN -no-xcursor ........ Do not compile Xcursor support.
+ $XCY -xcursor ........... Compile Xcursor support.
+ Requires X11/Xcursor/Xcursor.h and libXcursor.
+ By default, Xcursor support will be compiled if
+ available and the shared libraries are dynamically
+ loaded at runtime.
+
+ $XFN -no-xfixes ......... Do not compile Xfixes support.
+ $XFY -xfixes ............ Compile Xfixes support.
+ Requires X11/extensions/Xfixes.h and libXfixes.
+ By default, Xfixes support will be compiled if
+ available and the shared libraries are dynamically
+ loaded at runtime.
+
+ $XZN -no-xrandr ......... Do not compile Xrandr (resize and rotate) support.
+ $XZY -xrandr ............ Compile Xrandr support.
+ Requires X11/extensions/Xrandr.h and libXrandr.
+
+ $XRN -no-xrender ........ Do not compile Xrender support.
+ $XRY -xrender ........... Compile Xrender support.
+ Requires X11/extensions/Xrender.h and libXrender.
+
+ $XMN -no-mitshm ......... Do not compile MIT-SHM support.
+ $XMY -mitshm ............ Compile MIT-SHM support.
+ Requires sys/ipc.h, sys/shm.h and X11/extensions/XShm.h
+
+ $FCGN -no-fontconfig ..... Do not compile FontConfig (anti-aliased font) support.
+ $FCGY -fontconfig ........ Compile FontConfig support.
+ Requires fontconfig/fontconfig.h, libfontconfig,
+ freetype.h and libfreetype.
+
+ $XIN -no-xinput.......... Do not compile Xinput support.
+ $XIY -xinput ............ Compile Xinput support. This also enabled tablet support
+ which requires IRIX with wacom.h and libXi or
+ XFree86 with X11/extensions/XInput.h and libXi.
+
+ $XKN -no-xkb ............ Do not compile XKB (X KeyBoard extension) support.
+ $XKY -xkb ............... Compile XKB support.
+
+EOF
+fi
+
+if [ "$PLATFORM_MAC" = "yes" ]; then
+ cat << EOF
+
+Qt/Mac only:
+
+ -Fstring ........... Add an explicit framework path.
+ -fw string ......... Add an explicit framework.
+
+ -cocoa ............. Build the Cocoa version of Qt. Note that -no-framework
+ and -static is not supported with -cocoa. Specifying
+ this option creates Qt binaries that requires Mac OS X
+ 10.5 or higher.
+
+ * -framework ......... Build Qt as a series of frameworks and
+ link tools against those frameworks.
+ -no-framework ...... Do not build Qt as a series of frameworks.
+
+ * -dwarf2 ............ Enable dwarf2 debugging symbols.
+ -no-dwarf2 ......... Disable dwarf2 debugging symbols.
+
+ -universal ......... Equivalent to -arch "ppc x86"
+
+ -arch <arch> ....... Build Qt for <arch>
+ Example values for <arch>: x86 ppc x86_64 ppc64
+ Multiple -arch arguments can be specified, 64-bit archs
+ will be built with the Cocoa framework.
+
+ -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
+ To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
+
+EOF
+fi
+
+if [ "$PLATFORM_QWS" = "yes" ]; then
+ cat << EOF
+
+Qt for Embedded Linux only:
+
+ -xplatform target ... The target platform when cross-compiling.
+
+ -no-feature-<feature> Do not compile in <feature>.
+ -feature-<feature> .. Compile in <feature>. The available features
+ are described in src/corelib/global/qfeatures.txt
+
+ -embedded <arch> .... This will enable the embedded build, you must have a
+ proper license for this switch to work.
+ Example values for <arch>: arm mips x86 generic
+
+ -armfpa ............. Target platform is uses the ARM-FPA floating point format.
+ -no-armfpa .......... Target platform does not use the ARM-FPA floating point format.
+
+ The floating point format is usually autodetected by configure. Use this
+ to override the detected value.
+
+ -little-endian ...... Target platform is little endian (LSB first).
+ -big-endian ......... Target platform is big endian (MSB first).
+
+ -host-little-endian . Host platform is little endian (LSB first).
+ -host-big-endian .... Host platform is big endian (MSB first).
+
+ You only need to specify the endianness when
+ cross-compiling, otherwise the host
+ endianness will be used.
+
+ -no-freetype ........ Do not compile in Freetype2 support.
+ -qt-freetype ........ Use the libfreetype bundled with Qt.
+ * -system-freetype .... Use libfreetype from the operating system.
+ See http://www.freetype.org/
+
+ -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
+ default ($CFG_QCONFIG).
+
+ -depths <list> ...... Comma-separated list of supported bit-per-pixel
+ depths, from: 1, 4, 8, 12, 15, 16, 18, 24, 32 and 'all'.
+
+ -qt-decoration-<style> ....Enable a decoration <style> in the QtGui library,
+ by default all available decorations are on.
+ Possible values for <style>: [ $CFG_DECORATION_AVAILABLE ]
+ -plugin-decoration-<style> Enable decoration <style> as a plugin to be
+ linked to at run time.
+ Possible values for <style>: [ $CFG_DECORATION_PLUGIN_AVAILABLE ]
+ -no-decoration-<style> ....Disable decoration <style> entirely.
+ Possible values for <style>: [ $CFG_DECORATION_AVAILABLE ]
+
+ -no-opengl .......... Do not support OpenGL.
+ -opengl <api> ....... Enable OpenGL ES support
+ With no parameter, this will attempt to auto-detect OpenGL ES 1.x
+ or 2.x. Use es1, es1cl or es2 for <api> to override auto-detection.
+
+ NOTE: A QGLScreen driver for the hardware is required to support
+ OpenGL ES on Qt for Embedded Linux.
+
+ -qt-gfx-<driver> ... Enable a graphics <driver> in the QtGui library.
+ Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
+ -plugin-gfx-<driver> Enable graphics <driver> as a plugin to be
+ linked to at run time.
+ Possible values for <driver>: [ $CFG_GFX_PLUGIN_AVAILABLE ]
+ -no-gfx-<driver> ... Disable graphics <driver> entirely.
+ Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
+
+ -qt-kbd-<driver> ... Enable a keyboard <driver> in the QtGui library.
+ Possible values for <driver>: [ $CFG_KBD_AVAILABLE ]
+
+ -plugin-kbd-<driver> Enable keyboard <driver> as a plugin to be linked to
+ at runtime.
+ Possible values for <driver>: [ $CFG_KBD_PLUGIN_AVAILABLE ]
+
+ -no-kbd-<driver> ... Disable keyboard <driver> entirely.
+ Possible values for <driver>: [ $CFG_KBD_AVAILABLE ]
+
+ -qt-mouse-<driver> ... Enable a mouse <driver> in the QtGui library.
+ Possible values for <driver>: [ $CFG_MOUSE_AVAILABLE ]
+ -plugin-mouse-<driver> Enable mouse <driver> as a plugin to be linked to
+ at runtime.
+ Possible values for <driver>: [ $CFG_MOUSE_PLUGIN_AVAILABLE ]
+ -no-mouse-<driver> ... Disable mouse <driver> entirely.
+ Possible values for <driver>: [ $CFG_MOUSE_AVAILABLE ]
+
+ -iwmmxt ............ Compile using the iWMMXt instruction set
+ (available on some XScale CPUs).
+
+EOF
+fi
+
+
+if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_X11" = "yes" ]; then
+ if [ "$CFG_GLIB" = "no" ]; then
+ GBY=" "
+ GBN="+"
+ else
+ GBY="+"
+ GBN=" "
+ fi
+ cat << EOF
+ $GBN -no-glib ........... Do not compile Glib support.
+ $GBY -glib .............. Compile Glib support.
+
+EOF
+fi
+
+ [ "x$ERROR" = "xyes" ] && exit 1
+ exit 0
+fi # Help
+
+
+# -----------------------------------------------------------------------------
+# LICENSING, INTERACTIVE PART
+# -----------------------------------------------------------------------------
+
+if [ "$PLATFORM_QWS" = "yes" ]; then
+ Platform="Qt for Embedded Linux"
+elif [ "$PLATFORM_MAC" = "yes" ]; then
+ Platform="Qt/Mac"
+else
+ PLATFORM_X11=yes
+ Platform="Qt/X11"
+fi
+
+echo
+echo "This is the $Platform ${EditionString} Edition."
+echo
+
+if [ "$Edition" = "NokiaInternalBuild" ]; then
+ echo "Detected -nokia-developer option"
+ echo "Nokia employees and agents are allowed to use this software under"
+ echo "the authority of Nokia Corporation and/or its subsidiary(-ies)"
+elif [ "$Edition" = "OpenSource" ]; then
+ while true; do
+ echo "You are licensed to use this software under the terms of"
+ echo "the GNU General Public License (GPL) versions 3."
+ echo "You are also licensed to use this software under the terms of"
+ echo "the Lesser GNU General Public License (LGPL) versions 2.1."
+ echo
+ affix="either"
+ if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
+ echo "You have already accepted the terms of the $LicenseType license."
+ acceptance=yes
+ else
+ echo "Type '3' to view the GNU General Public License version 3."
+ echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
+ echo "Type 'yes' to accept this license offer."
+ echo "Type 'no' to decline this license offer."
+ echo
+ if echo '\c' | grep '\c' >/dev/null; then
+ echo -n "Do you accept the terms of $affix license? "
+ else
+ echo "Do you accept the terms of $affix license? \c"
+ fi
+ read acceptance
+ fi
+ echo
+ if [ "$acceptance" = "yes" ]; then
+ break
+ elif [ "$acceptance" = "no" ]; then
+ echo "You are not licensed to use this software."
+ echo
+ exit 1
+ elif [ "$acceptance" = "3" ]; then
+ more "$relpath/LICENSE.GPL3"
+ elif [ "$acceptance" = "L" ]; then
+ more "$relpath/LICENSE.LGPL"
+ fi
+ done
+elif [ "$Edition" = "Preview" ]; then
+ TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
+ while true; do
+
+ if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
+ echo "You have already accepted the terms of the $LicenseType license."
+ acceptance=yes
+ else
+ echo "You are licensed to use this software under the terms of"
+ echo "the $TheLicense"
+ echo
+ echo "Type '?' to read the Preview License."
+ echo "Type 'yes' to accept this license offer."
+ echo "Type 'no' to decline this license offer."
+ echo
+ if echo '\c' | grep '\c' >/dev/null; then
+ echo -n "Do you accept the terms of the license? "
+ else
+ echo "Do you accept the terms of the license? \c"
+ fi
+ read acceptance
+ fi
+ echo
+ if [ "$acceptance" = "yes" ]; then
+ break
+ elif [ "$acceptance" = "no" ] ;then
+ echo "You are not licensed to use this software."
+ echo
+ exit 0
+ elif [ "$acceptance" = "?" ]; then
+ more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
+ fi
+ done
+elif [ "$Edition" != "OpenSource" ]; then
+ if [ -n "$ExpiryDate" ]; then
+ ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
+ [ -z "$ExpiryDate" ] && ExpiryDate="0"
+ Today=`date +%Y%m%d`
+ if [ "$Today" -gt "$ExpiryDate" ]; then
+ case "$LicenseType" in
+ Commercial|Academic|Educational)
+ if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
+ echo
+ echo "NOTICE NOTICE NOTICE NOTICE"
+ echo
+ echo " Your support and upgrade period has expired."
+ echo
+ echo " You are no longer licensed to use this version of Qt."
+ echo " Please contact sales@trolltech.com to renew your support"
+ echo " and upgrades for this license."
+ echo
+ echo "NOTICE NOTICE NOTICE NOTICE"
+ echo
+ exit 1
+ else
+ echo
+ echo "WARNING WARNING WARNING WARNING"
+ echo
+ echo " Your support and upgrade period has expired."
+ echo
+ echo " You may continue to use your last licensed release"
+ echo " of Qt under the terms of your existing license"
+ echo " agreement. But you are not entitled to technical"
+ echo " support, nor are you entitled to use any more recent"
+ echo " Qt releases."
+ echo
+ echo " Please contact sales@trolltech.com to renew your"
+ echo " support and upgrades for this license."
+ echo
+ echo "WARNING WARNING WARNING WARNING"
+ echo
+ sleep 3
+ fi
+ ;;
+ Evaluation|*)
+ echo
+ echo "NOTICE NOTICE NOTICE NOTICE"
+ echo
+ echo " Your Evaluation license has expired."
+ echo
+ echo " You are no longer licensed to use this software. Please"
+ echo " contact sales@trolltech.com to purchase license, or install"
+ echo " the Qt Open Source Edition if you intend to develop free"
+ echo " software."
+ echo
+ echo "NOTICE NOTICE NOTICE NOTICE"
+ echo
+ exit 1
+ ;;
+ esac
+ fi
+ fi
+ TheLicense=`head -n 1 "$outpath/LICENSE"`
+ while true; do
+ if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
+ echo "You have already accepted the terms of the $TheLicense."
+ acceptance=yes
+ else
+ echo "You are licensed to use this software under the terms of"
+ echo "the $TheLicense."
+ echo
+ echo "Type '?' to view the $TheLicense."
+ echo "Type 'yes' to accept this license offer."
+ echo "Type 'no' to decline this license offer."
+ echo
+ if echo '\c' | grep '\c' >/dev/null; then
+ echo -n "Do you accept the terms of the $TheLicense? "
+ else
+ echo "Do you accept the terms of the $TheLicense? \c"
+ fi
+ read acceptance
+ fi
+ echo
+ if [ "$acceptance" = "yes" ]; then
+ break
+ elif [ "$acceptance" = "no" ]; then
+ echo "You are not licensed to use this software."
+ echo
+ exit 1
+ else [ "$acceptance" = "?" ]
+ more "$outpath/LICENSE"
+ fi
+ done
+fi
+
+# this should be moved somewhere else
+case "$PLATFORM" in
+aix-*)
+ AIX_VERSION=`uname -v`
+ if [ "$AIX_VERSION" -lt "5" ]; then
+ QMakeVar add QMAKE_LIBS_X11 -lbind
+ fi
+ ;;
+*)
+ ;;
+esac
+
+#-------------------------------------------------------------------------------
+# generate qconfig.cpp
+#-------------------------------------------------------------------------------
+[ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
+
+LICENSE_USER_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsuser=$Licensee"`
+LICENSE_PRODUCTS_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsprod=$Edition"`
+PREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_INSTALL_PREFIX"`
+DOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_INSTALL_DOCS"`
+HEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_INSTALL_HEADERS"`
+LIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_INSTALL_LIBS"`
+BINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_INSTALL_BINS"`
+PLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_INSTALL_PLUGINS"`
+DATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_INSTALL_DATA"`
+TRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_INSTALL_TRANSLATIONS"`
+SETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
+EXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
+DEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
+
+cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
+/* License Info */
+static const char qt_configure_licensee_str [256 + 12] = "$LICENSE_USER_STR";
+static const char qt_configure_licensed_products_str [256 + 12] = "$LICENSE_PRODUCTS_STR";
+EOF
+
+if [ ! -z "$QT_HOST_PREFIX" ]; then
+ HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX"`
+ HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/doc"`
+ HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/include"`
+ HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/lib"`
+ HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/bin"`
+ HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/plugins"`
+ HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX"`
+ HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/translations"`
+ HOSTSETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
+ HOSTEXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
+ HOSTDEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
+
+ cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
+
+#if defined(QT_BOOTSTRAPPED) || defined(QT_BUILD_QMAKE)
+/* Installation Info */
+static const char qt_configure_prefix_path_str [256 + 12] = "$HOSTPREFIX_PATH_STR";
+static const char qt_configure_documentation_path_str[256 + 12] = "$HOSTDOCUMENTATION_PATH_STR";
+static const char qt_configure_headers_path_str [256 + 12] = "$HOSTHEADERS_PATH_STR";
+static const char qt_configure_libraries_path_str [256 + 12] = "$HOSTLIBRARIES_PATH_STR";
+static const char qt_configure_binaries_path_str [256 + 12] = "$HOSTBINARIES_PATH_STR";
+static const char qt_configure_plugins_path_str [256 + 12] = "$HOSTPLUGINS_PATH_STR";
+static const char qt_configure_data_path_str [256 + 12] = "$HOSTDATA_PATH_STR";
+static const char qt_configure_translations_path_str [256 + 12] = "$HOSTTRANSLATIONS_PATH_STR";
+static const char qt_configure_settings_path_str [256 + 12] = "$HOSTSETTINGS_PATH_STR";
+static const char qt_configure_examples_path_str [256 + 12] = "$HOSTEXAMPLES_PATH_STR";
+static const char qt_configure_demos_path_str [256 + 12] = "$HOSTDEMOS_PATH_STR";
+#else // QT_BOOTSTRAPPED
+EOF
+fi
+
+cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
+/* Installation Info */
+static const char qt_configure_prefix_path_str [256 + 12] = "$PREFIX_PATH_STR";
+static const char qt_configure_documentation_path_str[256 + 12] = "$DOCUMENTATION_PATH_STR";
+static const char qt_configure_headers_path_str [256 + 12] = "$HEADERS_PATH_STR";
+static const char qt_configure_libraries_path_str [256 + 12] = "$LIBRARIES_PATH_STR";
+static const char qt_configure_binaries_path_str [256 + 12] = "$BINARIES_PATH_STR";
+static const char qt_configure_plugins_path_str [256 + 12] = "$PLUGINS_PATH_STR";
+static const char qt_configure_data_path_str [256 + 12] = "$DATA_PATH_STR";
+static const char qt_configure_translations_path_str [256 + 12] = "$TRANSLATIONS_PATH_STR";
+static const char qt_configure_settings_path_str [256 + 12] = "$SETTINGS_PATH_STR";
+static const char qt_configure_examples_path_str [256 + 12] = "$EXAMPLES_PATH_STR";
+static const char qt_configure_demos_path_str [256 + 12] = "$DEMOS_PATH_STR";
+EOF
+
+if [ ! -z "$QT_HOST_PREFIX" ]; then
+ cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
+#endif // QT_BOOTSTRAPPED
+
+EOF
+fi
+
+cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
+/* strlen( "qt_lcnsxxxx" ) == 12 */
+#define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
+#define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
+#define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12;
+#define QT_CONFIGURE_DOCUMENTATION_PATH qt_configure_documentation_path_str + 12;
+#define QT_CONFIGURE_HEADERS_PATH qt_configure_headers_path_str + 12;
+#define QT_CONFIGURE_LIBRARIES_PATH qt_configure_libraries_path_str + 12;
+#define QT_CONFIGURE_BINARIES_PATH qt_configure_binaries_path_str + 12;
+#define QT_CONFIGURE_PLUGINS_PATH qt_configure_plugins_path_str + 12;
+#define QT_CONFIGURE_DATA_PATH qt_configure_data_path_str + 12;
+#define QT_CONFIGURE_TRANSLATIONS_PATH qt_configure_translations_path_str + 12;
+#define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
+#define QT_CONFIGURE_EXAMPLES_PATH qt_configure_examples_path_str + 12;
+#define QT_CONFIGURE_DEMOS_PATH qt_configure_demos_path_str + 12;
+EOF
+
+# avoid unecessary rebuilds by copying only if qconfig.cpp has changed
+if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
+ rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
+else
+ [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
+ mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
+ chmod -w "$outpath/src/corelib/global/qconfig.cpp"
+fi
+
+# -----------------------------------------------------------------------------
+# build qmake
+# -----------------------------------------------------------------------------
+
+# symlink includes
+if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
+ SYNCQT_OPTS=
+ [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
+ if [ "$OPT_SHADOW" = "yes" ]; then
+ "$outpath/bin/syncqt" $SYNCQT_OPTS
+ elif [ "$CFG_DEV" = "yes" ]; then
+ QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS
+ fi
+fi
+
+# $1: variable name
+# $2: optional transformation
+# relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
+# is where the resulting variable is written to
+setBootstrapVariable()
+{
+ variableRegExp="^$1[^_A-Z0-9]"
+ getQMakeConf | grep "$variableRegExp" | ( [ -n "$2" ] && sed "$2" ; [ -z "$2" ] && cat ) | $AWK '
+{
+ varLength = index($0, "=") - 1
+ valStart = varLength + 2
+ if (substr($0, varLength, 1) == "+") {
+ varLength = varLength - 1
+ valStart = valStart + 1
+ }
+ var = substr($0, 0, varLength)
+ gsub("[ \t]+", "", var)
+ val = substr($0, valStart)
+ printf "%s_%s = %s\n", var, NR, val
+}
+END {
+ if (length(var) > 0) {
+ printf "%s =", var
+ for (i = 1; i <= NR; ++i)
+ printf " $(%s_%s)", var, i
+ printf "\n"
+ }
+}' >> "$mkfile"
+}
+
+# build qmake
+if true; then ###[ '!' -f "$outpath/bin/qmake" ];
+ echo "Creating qmake. Please wait..."
+
+ OLD_QCONFIG_H=
+ QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
+ QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
+ if [ -f "$QCONFIG_H" ]; then
+ OLD_QCONFIG_H=$QCONFIG_H
+ mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
+ fi
+
+ # create temporary qconfig.h for compiling qmake, if it doesn't exist
+ # when building qmake, we use #defines for the install paths,
+ # however they are real functions in the library
+ if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
+ mkdir -p "$outpath/src/corelib/global"
+ [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
+ echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
+ fi
+
+ mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
+ for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
+ if [ '!' -f "$conf" ]; then
+ ln -s "$QCONFIG_H" "$conf"
+ fi
+ done
+
+ #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
+ rm -f mkspecs/default
+ ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
+ # fix makefiles
+ for mkfile in GNUmakefile Makefile; do
+ EXTRA_LFLAGS=
+ EXTRA_CFLAGS=
+ in_mkfile="${mkfile}.in"
+ if [ "$mkfile" = "Makefile" ]; then
+# if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
+# (cd qmake && qmake) >/dev/null 2>&1 && continue
+# fi
+ in_mkfile="${mkfile}.unix"
+ fi
+ in_mkfile="$relpath/qmake/$in_mkfile"
+ mkfile="$outpath/qmake/$mkfile"
+ if [ -f "$mkfile" ]; then
+ [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
+ rm -f "$mkfile"
+ fi
+ [ -f "$in_mkfile" ] || continue
+
+ echo "########################################################################" >$mkfile
+ echo "## This file was autogenerated by configure, all changes will be lost ##" >>$mkfile
+ echo "########################################################################" >>$mkfile
+ EXTRA_OBJS=
+ EXTRA_SRCS=
+ EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
+ EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
+ EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
+
+ if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
+ EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
+ fi
+
+ [ -n "$CC" ] && echo "CC = $CC" >>$mkfile
+ [ -n "$CXX" ] && echo "CXX = $CXX" >>$mkfile
+ if [ "$CFG_SILENT" = "yes" ]; then
+ [ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC.*=,CC=\@,'
+ [ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX.*=,CXX=\@,'
+ else
+ [ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC,CC,'
+ [ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX,CXX,'
+ fi
+ setBootstrapVariable QMAKE_CFLAGS
+ setBootstrapVariable QMAKE_CXXFLAGS 's,\$\$QMAKE_CFLAGS,\$(QMAKE_CFLAGS),'
+ setBootstrapVariable QMAKE_LFLAGS
+
+ if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
+ EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
+ fi
+ if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
+ setBootstrapVariable QMAKE_CFLAGS_RELEASE
+ setBootstrapVariable QMAKE_CXXFLAGS_RELEASE 's,\$\$QMAKE_CFLAGS_RELEASE,\$(QMAKE_CFLAGS_RELEASE),'
+ EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
+ EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
+ elif [ "$CFG_DEBUG" = "yes" ]; then
+ setBootstrapVariable QMAKE_CFLAGS_DEBUG
+ setBootstrapVariable QMAKE_CXXFLAGS_DEBUG 's,\$\$QMAKE_CFLAGS_DEBUG,\$(QMAKE_CFLAGS_DEBUG),'
+ EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
+ EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
+ fi
+
+ if [ '!' -z "$RPATH_FLAGS" ] && [ '!' -z "`getQMakeConf \"$QMAKESPEC\" | grep QMAKE_RPATH | awk '{print $3;}'`" ]; then
+ setBootstrapVariable QMAKE_RPATH 's,\$\$LITERAL_WHITESPACE, ,'
+ for rpath in $RPATH_FLAGS; do
+ EXTRA_LFLAGS="\$(QMAKE_RPATH)\"$rpath\" $EXTRA_LFLAGS"
+ done
+ fi
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ if [ "$PLATFORM" = "macx-icc" ]; then
+ echo "export MACOSX_DEPLOYMENT_TARGET = 10.4" >>"$mkfile"
+ else
+ echo "export MACOSX_DEPLOYMENT_TARGET = 10.3" >>"$mkfile"
+ fi
+ echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
+ echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
+ EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
+ EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
+ EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
+ EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
+ if echo "$CFG_MAC_ARCHS" | grep x86 > /dev/null 2>&1; then
+ X86_CFLAGS="-arch i386"
+ X86_LFLAGS="-arch i386"
+ EXTRA_CFLAGS="$X86_CFLAGS $EXTRA_CFLAGS"
+ EXTRA_CXXFLAGS="$X86_CFLAGS $EXTRA_CXXFLAGS"
+ EXTRA_LFLAGS="$EXTRA_LFLAGS $X86_LFLAGS"
+ fi
+ if echo "$CFG_MAC_ARCHS" | grep ppc > /dev/null 2>&1; then
+ PPC_CFLAGS="-arch ppc"
+ PPC_LFLAGS="-arch ppc"
+ EXTRA_CFLAGS="$PPC_CFLAGS $EXTRA_CFLAGS"
+ EXTRA_CXXFLAGS="$PPC_CFLAGS $EXTRA_CXXFLAGS"
+ EXTRA_LFLAGS="$EXTRA_LFLAGS $PPC_LFLAGS"
+ fi
+ if [ '!' -z "$CFG_SDK" ]; then
+ echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
+ echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
+ EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
+ EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
+ fi
+ fi
+ [ "$CFG_EMBEDDED" != "no" ] && EXTRA_CFLAGS="$EXTRA_CFLAGS -DQWS"
+ if [ '!' -z "$D_FLAGS" ]; then
+ for DEF in $D_FLAGS; do
+ EXTRA_CFLAGS="$EXTRA_CFLAGS \"-D${DEF}\""
+ done
+ fi
+ QMAKE_BIN_DIR="$QT_INSTALL_BINS"
+ [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
+ QMAKE_DATA_DIR="$QT_INSTALL_DATA"
+ [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
+ echo >>"$mkfile"
+ adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
+ adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
+ sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
+ -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
+ -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
+ -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
+ -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
+ -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
+ -e "s,@QMAKESPEC@,$QMAKESPEC,g" "$in_mkfile" >>"$mkfile"
+
+ if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
+ (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
+ sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"${mkfile}.tmp"
+ mv "${mkfile}.tmp" "${mkfile}"
+ fi
+ done
+
+ QMAKE_BUILD_ERROR=no
+ (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
+ [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
+ [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
+ [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
+fi # Build qmake
+
+#-------------------------------------------------------------------------------
+# tests that need qmake
+#-------------------------------------------------------------------------------
+
+# detect availability of float math.h functions
+if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_USE_FLOATMATH=yes
+else
+ CFG_USE_FLOATMATH=no
+fi
+
+# detect mmx support
+if [ "${CFG_MMX}" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mmx "mmx" $L_FLAGS $I_FLAGS $l_FLAGS "-mmmx"; then
+ CFG_MMX=yes
+ else
+ CFG_MMX=no
+ fi
+fi
+
+# detect 3dnow support
+if [ "${CFG_3DNOW}" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/3dnow "3dnow" $L_FLAGS $I_FLAGS $l_FLAGS "-m3dnow"; then
+ CFG_3DNOW=yes
+ else
+ CFG_3DNOW=no
+ fi
+fi
+
+# detect sse support
+if [ "${CFG_SSE}" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse "sse" $L_FLAGS $I_FLAGS $l_FLAGS "-msse"; then
+ CFG_SSE=yes
+ else
+ CFG_SSE=no
+ fi
+fi
+
+# detect sse2 support
+if [ "${CFG_SSE2}" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
+ CFG_SSE2=yes
+ else
+ CFG_SSE2=no
+ fi
+fi
+
+# check iWMMXt support
+if [ "$CFG_IWMMXT" = "yes" ]; then
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $l_FLAGS "-mcpu=iwmmxt"; then
+ echo "The iWMMXt functionality test failed!"
+ echo " Please make sure your compiler supports iWMMXt intrinsics!"
+ exit 1
+ fi
+fi
+
+# detect zlib
+if [ "$CFG_ZLIB" = "no" ]; then
+ # Note: Qt no longer support builds without zlib
+ # So we force a "no" to be "auto" here.
+ # If you REALLY really need no zlib support, you can still disable
+ # it by doing the following:
+ # add "no-zlib" to mkspecs/qconfig.pri
+ # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
+ #
+ # There's no guarantee that Qt will build under those conditions
+
+ CFG_ZLIB=auto
+ ZLIB_FORCED=yes
+fi
+if [ "$CFG_ZLIB" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/zlib "zlib" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_ZLIB=system
+ else
+ CFG_ZLIB=yes
+ fi
+fi
+
+# detect how jpeg should be built
+if [ "$CFG_JPEG" = "auto" ]; then
+ if [ "$CFG_SHARED" = "yes" ]; then
+ CFG_JPEG=plugin
+ else
+ CFG_JPEG=yes
+ fi
+fi
+# detect jpeg
+if [ "$CFG_LIBJPEG" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libjpeg "libjpeg" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_LIBJPEG=system
+ else
+ CFG_LIBJPEG=qt
+ fi
+fi
+
+# detect how gif should be built
+if [ "$CFG_GIF" = "auto" ]; then
+ if [ "$CFG_SHARED" = "yes" ]; then
+ CFG_GIF=plugin
+ else
+ CFG_GIF=yes
+ fi
+fi
+
+# detect how tiff should be built
+if [ "$CFG_TIFF" = "auto" ]; then
+ if [ "$CFG_SHARED" = "yes" ]; then
+ CFG_TIFF=plugin
+ else
+ CFG_TIFF=yes
+ fi
+fi
+
+# detect tiff
+if [ "$CFG_LIBTIFF" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libtiff "libtiff" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_LIBTIFF=system
+ else
+ CFG_LIBTIFF=qt
+ fi
+fi
+
+# detect how mng should be built
+if [ "$CFG_MNG" = "auto" ]; then
+ if [ "$CFG_SHARED" = "yes" ]; then
+ CFG_MNG=plugin
+ else
+ CFG_MNG=yes
+ fi
+fi
+# detect mng
+if [ "$CFG_LIBMNG" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libmng "libmng" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_LIBMNG=system
+ else
+ CFG_LIBMNG=qt
+ fi
+fi
+
+# detect png
+if [ "$CFG_LIBPNG" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libpng "libpng" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_LIBPNG=system
+ else
+ CFG_LIBPNG=qt
+ fi
+fi
+
+# detect accessibility
+if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
+ CFG_ACCESSIBILITY=yes
+fi
+
+# auto-detect SQL-modules support
+for _SQLDR in $CFG_SQL_AVAILABLE; do
+ case $_SQLDR in
+ mysql)
+ if [ "$CFG_SQL_mysql" != "no" ]; then
+ [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`$WHICH mysql_config`
+ if [ -x "$CFG_MYSQL_CONFIG" ]; then
+ QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
+ QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
+ QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
+ QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
+ QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
+ fi
+ if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
+ if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
+ echo " You need MySql 4 or higher."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_SQL_mysql="no"
+ QT_LFLAGS_MYSQL=""
+ QT_LFLAGS_MYSQL_R=""
+ QT_CFLAGS_MYSQL=""
+ fi
+ else
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS; then
+ QMakeVar add CONFIG use_libmysqlclient_r
+ if [ "$CFG_SQL_mysql" = "auto" ]; then
+ CFG_SQL_mysql=plugin
+ fi
+ QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
+ elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS; then
+ if [ "$CFG_SQL_mysql" = "auto" ]; then
+ CFG_SQL_mysql=plugin
+ fi
+ else
+ if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "MySQL support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_SQL_mysql=no
+ QT_LFLAGS_MYSQL=""
+ QT_LFLAGS_MYSQL_R=""
+ QT_CFLAGS_MYSQL=""
+ fi
+ fi
+ fi
+ fi
+ ;;
+ psql)
+ if [ "$CFG_SQL_psql" != "no" ]; then
+ if "$WHICH" pg_config >/dev/null 2>&1; then
+ QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
+ QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
+ fi
+ [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
+ [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $L_FLAGS $QT_CFLAGS_PSQL $I_FLAGS $l_FLAGS; then
+ if [ "$CFG_SQL_psql" = "auto" ]; then
+ CFG_SQL_psql=plugin
+ fi
+ else
+ if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "PostgreSQL support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_SQL_psql=no
+ QT_CFLAGS_PSQL=""
+ QT_LFLAGS_PSQL=""
+ fi
+ fi
+ fi
+ ;;
+ odbc)
+ if [ "$CFG_SQL_odbc" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/odbc "ODBC" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ if [ "$CFG_SQL_odbc" = "auto" ]; then
+ CFG_SQL_odbc=plugin
+ fi
+ else
+ if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "ODBC support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_SQL_odbc=no
+ fi
+ fi
+ fi
+ ;;
+ oci)
+ if [ "$CFG_SQL_oci" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/oci "OCI" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ if [ "$CFG_SQL_oci" = "auto" ]; then
+ CFG_SQL_oci=plugin
+ fi
+ else
+ if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_SQL_oci=no
+ fi
+ fi
+ fi
+ ;;
+ tds)
+ if [ "$CFG_SQL_tds" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tds "TDS" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ if [ "$CFG_SQL_tds" = "auto" ]; then
+ CFG_SQL_tds=plugin
+ fi
+ else
+ if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "TDS support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_SQL_tds=no
+ fi
+ fi
+ fi
+ ;;
+ db2)
+ if [ "$CFG_SQL_db2" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/db2 "DB2" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ if [ "$CFG_SQL_db2" = "auto" ]; then
+ CFG_SQL_db2=plugin
+ fi
+ else
+ if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "ODBC support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_SQL_db2=no
+ fi
+ fi
+ fi
+ ;;
+ ibase)
+ if [ "$CFG_SQL_ibase" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ibase "InterBase" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ if [ "$CFG_SQL_ibase" = "auto" ]; then
+ CFG_SQL_ibase=plugin
+ fi
+ else
+ if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "InterBase support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_SQL_ibase=no
+ fi
+ fi
+ fi
+ ;;
+ sqlite2)
+ if [ "$CFG_SQL_sqlite2" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite2 "SQLite2" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ if [ "$CFG_SQL_sqlite2" = "auto" ]; then
+ CFG_SQL_sqlite2=plugin
+ fi
+ else
+ if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "SQLite2 support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_SQL_sqlite2=no
+ fi
+ fi
+ fi
+ ;;
+ sqlite)
+ if [ "$CFG_SQL_sqlite" != "no" ]; then
+ SQLITE_AUTODETECT_FAILED="no"
+ if [ "$CFG_SQLITE" = "system" ]; then
+ if [ -n "$PKG_CONFIG" ]; then
+ QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
+ QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
+ fi
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $L_FLAGS $QT_CFLAGS_SQLITE $I_FLAGS $l_FLAGS; then
+ if [ "$CFG_SQL_sqlite" = "auto" ]; then
+ CFG_SQL_sqlite=plugin
+ fi
+ QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
+ else
+ SQLITE_AUTODETECT_FAILED="yes"
+ CFG_SQL_sqlite=no
+ fi
+ elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
+ if [ "$CFG_SQL_sqlite" = "auto" ]; then
+ CFG_SQL_sqlite=plugin
+ fi
+ else
+ SQLITE_AUTODETECT_FAILED="yes"
+ CFG_SQL_sqlite=no
+ fi
+
+ if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "SQLite support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ fi
+ fi
+ ;;
+ *)
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo "unknown SQL driver: $_SQLDR"
+ fi
+ ;;
+ esac
+done
+
+# auto-detect NIS support
+if [ "$CFG_NIS" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/nis "NIS" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_NIS=yes
+ else
+ if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "NIS support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_NIS=no
+ fi
+ fi
+fi
+
+# auto-detect CUPS support
+if [ "$CFG_CUPS" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/cups "Cups" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_CUPS=yes
+ else
+ if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Cups support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_CUPS=no
+ fi
+ fi
+fi
+
+# auto-detect iconv(3) support
+if [ "$CFG_ICONV" != "no" ]; then
+ if [ "$PLATFORM_QWS" = "yes" ]; then
+ CFG_ICONV=no
+ elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/iconv" "POSIX iconv" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_ICONV=yes
+ elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/gnu-libiconv" "GNU libiconv" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_ICONV=gnu
+ else
+ if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Iconv support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_ICONV=no
+ fi
+ fi
+fi
+
+# auto-detect libdbus-1 support
+if [ "$CFG_DBUS" != "no" ]; then
+ if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
+ QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
+ QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
+ fi
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/dbus "D-Bus" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
+ [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
+ QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
+ QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
+ else
+ if [ "$CFG_DBUS" = "auto" ]; then
+ CFG_DBUS=no
+ elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ # CFG_DBUS is "yes" or "linked" here
+
+ echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ fi
+ fi
+fi
+
+# Generate a CRC of the namespace for using in constants for the Carbon port.
+# This should mean that you really *can* load two Qt's and have our custom
+# Carbon events work.
+if [ "$PLATFORM_MAC" = "yes" -a ! -z "$QT_NAMESPACE" ]; then
+ QT_NAMESPACE_MAC_CRC=`"$mactests/crc.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/crc $QT_NAMESPACE $L_FLAGS $I_FLAGS $l_FLAGS`
+fi
+
+if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then
+ # auto-detect Glib support
+ if [ "$CFG_GLIB" != "no" ]; then
+ if [ -n "$PKG_CONFIG" ]; then
+ QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
+ QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
+ fi
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/glib "Glib" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GLIB $QT_LIBS_GLIB $X11TESTS_FLAGS; then
+ CFG_GLIB=yes
+ QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
+ QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
+ else
+ if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Glib support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_GLIB=no
+ fi
+ fi
+ fi
+
+ if [ "$CFG_PHONON" != "no" ]; then
+ if [ "$CFG_PHONON_BACKEND" != "no" ]; then
+ if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
+ if [ -n "$PKG_CONFIG" ]; then
+ QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
+ QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
+ fi
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/gstreamer "GStreamer" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER $X11TESTS_FLAGS; then
+ CFG_GSTREAMER=yes
+ QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
+ QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
+ else
+ if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Gstreamer support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_GSTREAMER=no
+ fi
+ fi
+ elif [ "$CFG_GLIB" = "no" ]; then
+ CFG_GSTREAMER=no
+ fi
+
+ if [ "$CFG_GSTREAMER" = "yes" ]; then
+ CFG_PHONON=yes
+ else
+ if [ "$CFG_PHONON" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Phonon support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_PHONON=no
+ fi
+ fi
+ else
+ CFG_PHONON=yes
+ fi
+ fi
+fi # X11/QWS
+
+# x11
+if [ "$PLATFORM_X11" = "yes" ]; then
+ x11tests="$relpath/config.tests/x11"
+ X11TESTS_FLAGS=
+
+ # work around broken X11 headers when using GCC 2.95 or later
+ NOTYPE=no
+ "$x11tests/notype.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" && NOTYPE=yes
+ if [ $NOTYPE = "yes" ]; then
+ QMakeVar add QMAKE_CXXFLAGS -fpermissive
+ X11TESTS_FLAGS="$X11TESTS_FLAGS -fpermissive"
+ fi
+
+ # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
+ if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ CFG_OPENGL=desktop
+ elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_OPENGL=es2
+ elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_OPENGL=es1
+ elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1cl "OpenGL ES 1.x Lite" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_OPENGL=es1cl
+ else
+ if [ "$CFG_OPENGL" = "yes" ]; then
+ echo "All the OpenGL functionality tests failed!"
+ echo " You might need to modify the include and library search paths by editing"
+ echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
+ echo " ${XQMAKESPEC}."
+ exit 1
+ fi
+ CFG_OPENGL=no
+ fi
+ case "$PLATFORM" in
+ hpux*)
+ # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
+ if [ "$CFG_OPENGL" = "desktop" ]; then
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
+ fi
+ fi
+ ;;
+ *)
+ ;;
+ esac
+ elif [ "$CFG_OPENGL" = "es1cl" ]; then
+ # OpenGL ES 1.x common lite
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1cl "OpenGL ES 1.x Lite" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ echo "The OpenGL ES 1.x Common Lite Profile functionality test failed!"
+ echo " You might need to modify the include and library search paths by editing"
+ echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
+ echo " ${XQMAKESPEC}."
+ exit 1
+ fi
+ elif [ "$CFG_OPENGL" = "es1" ]; then
+ # OpenGL ES 1.x
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ echo "The OpenGL ES 1.x functionality test failed!"
+ echo " You might need to modify the include and library search paths by editing"
+ echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
+ echo " ${XQMAKESPEC}."
+ exit 1
+ fi
+ elif [ "$CFG_OPENGL" = "es2" ]; then
+ #OpenGL ES 2.x
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ echo "The OpenGL ES 2.0 functionality test failed!"
+ echo " You might need to modify the include and library search paths by editing"
+ echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
+ echo " ${XQMAKESPEC}."
+ exit 1
+ fi
+ elif [ "$CFG_OPENGL" = "desktop" ]; then
+ # Desktop OpenGL support
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ echo "The OpenGL functionality test failed!"
+ echo " You might need to modify the include and library search paths by editing"
+ echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
+ echo " ${XQMAKESPEC}."
+ exit 1
+ fi
+ case "$PLATFORM" in
+ hpux*)
+ # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
+ fi
+ ;;
+ *)
+ ;;
+ esac
+ fi
+
+ # if opengl is disabled and the user specified graphicssystem gl, disable it...
+ if [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && [ "$CFG_OPENGL" = "no" ]; then
+ echo "OpenGL Graphics System is disabled due to missing OpenGL support..."
+ CFG_GRAPHICS_SYSTEM=default
+ fi
+
+ # auto-detect Xcursor support
+ if [ "$CFG_XCURSOR" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xcursor "Xcursor" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ if [ "$CFG_XCURSOR" != "runtime" ]; then
+ CFG_XCURSOR=yes;
+ fi
+ else
+ if [ "$CFG_XCURSOR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Xcursor support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_XCURSOR=no
+ fi
+ fi
+ fi
+
+ # auto-detect Xfixes support
+ if [ "$CFG_XFIXES" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xfixes "Xfixes" $L_FLAGS $I_FLAGS $X11TESTS_FLAGS; then
+ if [ "$CFG_XFIXES" != "runtime" ]; then
+ CFG_XFIXES=yes;
+ fi
+ else
+ if [ "$CFG_XFIXES" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Xfixes support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_XFIXES=no
+ fi
+ fi
+ fi
+
+ # auto-detect Xrandr support (resize and rotate extension)
+ if [ "$CFG_XRANDR" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrandr "Xrandr" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ if [ "$CFG_XRANDR" != "runtime" ]; then
+ CFG_XRANDR=yes
+ fi
+ else
+ if [ "$CFG_XRANDR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Xrandr support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_XRANDR=no
+ fi
+ fi
+ fi
+
+ # auto-detect Xrender support
+ if [ "$CFG_XRENDER" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ CFG_XRENDER=yes
+ else
+ if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Xrender support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_XRENDER=no
+ fi
+ fi
+ fi
+
+ # auto-detect MIT-SHM support
+ if [ "$CFG_MITSHM" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/mitshm "mitshm" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ CFG_MITSHM=yes
+ else
+ if [ "$CFG_MITSHM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "MITSHM support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_MITSHM=no
+ fi
+ fi
+ fi
+
+ # auto-detect FontConfig support
+ if [ "$CFG_FONTCONFIG" != "no" ]; then
+ if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig 2>/dev/null; then
+ QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig 2>/dev/null`
+ QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig 2>/dev/null`
+ else
+ QT_CFLAGS_FONTCONFIG=
+ QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
+ fi
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
+ CFG_FONTCONFIG=yes
+ QMakeVar set QMAKE_CFLAGS_X11 "$QT_CFLAGS_FONTCONFIG \$\$QMAKE_CFLAGS_X11"
+ QMakeVar set QMAKE_LIBS_X11 "$QT_LIBS_FONTCONFIG \$\$QMAKE_LIBS_X11"
+ CFG_LIBFREETYPE=system
+ else
+ if [ "$CFG_FONTCONFIG" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "FontConfig support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_FONTCONFIG=no
+ fi
+ fi
+ fi
+
+ # auto-detect Session Management support
+ if [ "$CFG_SM" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/sm "Session Management" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ CFG_SM=yes
+ else
+ if [ "$CFG_SM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Session Management support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_SM=no
+ fi
+ fi
+ fi
+
+ # auto-detect SHAPE support
+ if [ "$CFG_XSHAPE" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xshape "XShape" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ CFG_XSHAPE=yes
+ else
+ if [ "$CFG_XSHAPE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "XShape support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_XSHAPE=no
+ fi
+ fi
+ fi
+
+ # auto-detect Xinerama support
+ if [ "$CFG_XINERAMA" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinerama "Xinerama" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ if [ "$CFG_XINERAMA" != "runtime" ]; then
+ CFG_XINERAMA=yes
+ fi
+ else
+ if [ "$CFG_XINERAMA" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Xinerama support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_XINERAMA=no
+ fi
+ fi
+ fi
+
+ # auto-detect Xinput support
+ if [ "$CFG_XINPUT" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput "XInput" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ if [ "$CFG_XINPUT" != "runtime" ]; then
+ CFG_XINPUT=yes
+ fi
+ else
+ if [ "$CFG_XINPUT" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Tablet and Xinput support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_XINPUT=no
+ fi
+ fi
+ fi
+
+ # auto-detect XKB support
+ if [ "$CFG_XKB" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xkb "XKB" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+ CFG_XKB=yes
+ else
+ if [ "$CFG_XKB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "XKB support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_XKB=no
+ fi
+ fi
+ fi
+
+ if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
+ if [ -n "$PKG_CONFIG" ]; then
+ QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
+ QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
+ fi
+ if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
+ CFG_QGTKSTYLE=yes
+ QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
+ QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
+ else
+ if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "Gtk theme support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_QGTKSTYLE=no
+ fi
+ fi
+ elif [ "$CFG_GLIB" = "no" ]; then
+ CFG_QGTKSTYLE=no
+ fi
+fi # X11
+
+
+if [ "$PLATFORM_MAC" = "yes" ]; then
+ if [ "$CFG_PHONON" != "no" ]; then
+ # Always enable Phonon (unless it was explicitly disabled)
+ CFG_PHONON=yes
+ fi
+fi
+
+# QWS
+if [ "$PLATFORM_QWS" = "yes" ]; then
+
+ # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
+ if [ "$CFG_OPENGL" = "yes" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_OPENGL=es2
+ elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_OPENGL=es1
+ elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1cl "OpenGL ES 1.x Lite" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_OPENGL=es1cl
+ else
+ echo "All the OpenGL ES functionality tests failed!"
+ echo " You might need to modify the include and library search paths by editing"
+ echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
+ echo " ${XQMAKESPEC}."
+ exit 1
+ fi
+ elif [ "$CFG_OPENGL" = "es1" ]; then
+ # OpenGL ES 1.x
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ echo "The OpenGL ES 1.x functionality test failed!"
+ echo " You might need to modify the include and library search paths by editing"
+ echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
+ echo " ${XQMAKESPEC}."
+ exit 1
+ fi
+ elif [ "$CFG_OPENGL" = "es2" ]; then
+ #OpenGL ES 2.x
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ echo "The OpenGL ES 2.0 functionality test failed!"
+ echo " You might need to modify the include and library search paths by editing"
+ echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
+ echo " ${XQMAKESPEC}."
+ exit 1
+ fi
+ elif [ "$CFG_OPENGL" = "desktop" ]; then
+ # Desktop OpenGL support
+ echo "Desktop OpenGL support is not avaliable on Qt for Embedded Linux"
+ exit 1
+ fi
+
+ # screen drivers
+ for screen in ${CFG_GFX_ON} ${CFG_GFX_PLUGIN}; do
+ if [ "${screen}" = "ahi" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/ahi "Ahi" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ echo "The Ahi screen driver functionality test failed!"
+ echo " You might need to modify the include and library search paths by editing"
+ echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
+ echo " ${XQMAKESPEC}."
+ exit 1
+ fi
+ fi
+
+ if [ "${screen}" = "svgalib" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/svgalib "SVGAlib" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ echo "The SVGAlib screen driver functionality test failed!"
+ echo " You might need to modify the include and library search paths by editing"
+ echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
+ echo " ${XQMAKESPEC}."
+ exit 1
+ fi
+ fi
+
+ if [ "${screen}" = "directfb" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
+ if [ -n "$PKG_CONFIG" ]; then
+ if $PKG_CONFIG --exists directfb 2>/dev/null; then
+ QT_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
+ QT_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
+ elif directfb-config --version >/dev/null 2>&1; then
+ QT_CFLAGS_DIRECTFB=`directfb-config --cflags 2>/dev/null`
+ QT_LIBS_DIRECTFB=`directfb-config --libs 2>/dev/null`
+ fi
+ fi
+
+ # QMake variables set here override those in the mkspec. Therefore we only set the variables here if they are not zero.
+ if [ -n "$QT_CFLAGS_DIRECTFB" ] || [ -n "$QT_LIBS_DIRECTFB" ]; then
+ QMakeVar set QT_CFLAGS_DIRECTFB "$QT_CFLAGS_DIRECTFB"
+ QMakeVar set QT_LIBS_DIRECTFB "$QT_LIBS_DIRECTFB"
+ fi
+
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/directfb "DirectFB" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_DIRECTFB $QT_LIBS_DIRECTFB; then
+ echo "The DirectFB screen driver functionality test failed!"
+ echo " You might need to modify the include and library search paths by editing"
+ echo " QT_CFLAGS_DIRECTFB and QT_LIBS_DIRECTFB in"
+ echo " ${XQMAKESPEC}."
+ exit 1
+ fi
+ fi
+
+ done
+
+ # mouse drivers
+ for mouse in ${CFG_MOUSE_ON} ${CFG_MOUSE_PLUGIN}; do
+ if [ "${mouse}" = "tslib" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tslib "tslib" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ echo "The tslib functionality test failed!"
+ echo " You might need to modify the include and library search paths by editing"
+ echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
+ echo " ${XQMAKESPEC}."
+ exit 1
+ fi
+ fi
+ done
+
+ CFG_QGTKSTYLE=no
+
+ # sound
+ if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/sound "sound" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SOUND"
+ fi
+
+fi # QWS
+
+# freetype support
+[ "x$CFG_EMBEDDED" != "xno" ] && CFG_LIBFREETYPE="$CFG_QWS_FREETYPE"
+[ "x$PLATFORM_MAC" = "xyes" ] && CFG_LIBFREETYPE=no
+if [ "$CFG_LIBFREETYPE" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/freetype "FreeType" $L_FLAGS $I_FLAGS $l_FLAGS ; then
+ CFG_LIBFREETYPE=system
+ else
+ CFG_LIBFREETYPE=yes
+ fi
+fi
+
+if [ "$CFG_ENDIAN" = "auto" ]; then
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ true #leave as auto
+ else
+ "$unixtests/endian.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
+ F="$?"
+ if [ "$F" -eq 0 ]; then
+ CFG_ENDIAN="Q_LITTLE_ENDIAN"
+ elif [ "$F" -eq 1 ]; then
+ CFG_ENDIAN="Q_BIG_ENDIAN"
+ else
+ echo
+ echo "The target system byte order could not be detected!"
+ echo "Turn on verbose messaging (-v) to see the final report."
+ echo "You can use the -little-endian or -big-endian switch to"
+ echo "$0 to continue."
+ exit 101
+ fi
+ fi
+fi
+
+if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
+ if [ "$PLATFORM_MAC" = "yes" ]; then
+ true #leave as auto
+ else
+ "$unixtests/endian.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
+ F="$?"
+ if [ "$F" -eq 0 ]; then
+ CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
+ elif [ "$F" -eq 1 ]; then
+ CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
+ else
+ echo
+ echo "The host system byte order could not be detected!"
+ echo "Turn on verbose messaging (-v) to see the final report."
+ echo "You can use the -host-little-endian or -host-big-endian switch to"
+ echo "$0 to continue."
+ exit 101
+ fi
+ fi
+fi
+
+if [ "$CFG_ARMFPA" != "auto" ]; then
+ if [ "$CFG_ARMFPA" = "yes" ]; then
+ if [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
+ CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
+ else
+ CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
+ fi
+ else
+ CFG_DOUBLEFORMAT="normal"
+ fi
+fi
+
+
+if [ "$CFG_DOUBLEFORMAT" = "auto" ]; then
+ if [ "$PLATFORM_QWS" != "yes" ]; then
+ CFG_DOUBLEFORMAT=normal
+ else
+ "$unixtests/doubleformat.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
+ F="$?"
+ if [ "$F" -eq 10 ] && [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
+ CFG_DOUBLEFORMAT=normal
+ elif [ "$F" -eq 11 ] && [ "$CFG_ENDIAN" = "Q_BIG_ENDIAN" ]; then
+ CFG_DOUBLEFORMAT=normal
+ elif [ "$F" -eq 10 ]; then
+ CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE"
+ elif [ "$F" -eq 11 ]; then
+ CFG_DOUBLEFORMAT="Q_DOUBLE_BIG"
+ elif [ "$F" -eq 12 ]; then
+ CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
+ CFG_ARMFPA="yes"
+ elif [ "$F" -eq 13 ]; then
+ CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
+ CFG_ARMFPA="yes"
+ else
+ echo
+ echo "The system floating point format could not be detected."
+ echo "This may cause data to be generated in a wrong format"
+ echo "Turn on verbose messaging (-v) to see the final report."
+ # we do not fail on this since this is a new test, and if it fails,
+ # the old behavior should be correct in most cases
+ CFG_DOUBLEFORMAT=normal
+ fi
+ fi
+fi
+
+HAVE_STL=no
+if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ HAVE_STL=yes
+fi
+
+if [ "$CFG_STL" != "no" ]; then
+ if [ "$HAVE_STL" = "yes" ]; then
+ CFG_STL=yes
+ else
+ if [ "$CFG_STL" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "STL support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_STL=no
+ fi
+ fi
+fi
+
+# find if the platform supports IPv6
+if [ "$CFG_IPV6" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6 "IPv6" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_IPV6=yes
+ else
+ if [ "$CFG_IPV6" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "IPv6 support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_IPV6=no
+ fi
+ fi
+fi
+
+# detect POSIX clock_gettime()
+if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-gettime "POSIX clock_gettime()" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_CLOCK_GETTIME=yes
+ else
+ CFG_CLOCK_GETTIME=no
+ fi
+fi
+
+# detect POSIX monotonic clocks
+if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-monotonic "POSIX Monotonic Clock" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_CLOCK_MONOTONIC=yes
+ else
+ CFG_CLOCK_MONOTONIC=no
+ fi
+elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
+ CFG_CLOCK_MONOTONIC=no
+fi
+
+# detect mremap
+if [ "$CFG_MREMAP" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mremap "mremap" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_MREMAP=yes
+ else
+ CFG_MREMAP=no
+ fi
+fi
+
+# find if the platform provides getaddrinfo (ipv6 dns lookups)
+if [ "$CFG_GETADDRINFO" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getaddrinfo "getaddrinfo" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_GETADDRINFO=yes
+ else
+ if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "getaddrinfo support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_GETADDRINFO=no
+ fi
+ fi
+fi
+
+# find if the platform provides inotify
+if [ "$CFG_INOTIFY" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/inotify "inotify" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_INOTIFY=yes
+ else
+ if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "inotify support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_INOTIFY=no
+ fi
+ fi
+fi
+
+# find if the platform provides if_nametoindex (ipv6 interface name support)
+if [ "$CFG_IPV6IFNAME" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6ifname "IPv6 interface name" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_IPV6IFNAME=yes
+ else
+ if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "IPv6 interface name support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_IPV6IFNAME=no
+ fi
+ fi
+fi
+
+# find if the platform provides getifaddrs (network interface enumeration)
+if [ "$CFG_GETIFADDRS" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getifaddrs "getifaddrs" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_GETIFADDRS=yes
+ else
+ if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "getifaddrs support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_GETIFADDRS=no
+ fi
+ fi
+fi
+
+# find if the platform supports X/Open Large File compilation environment
+if [ "$CFG_LARGEFILE" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/largefile "X/Open Large File" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_LARGEFILE=yes
+ else
+ if [ "$CFG_LARGEFILE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "X/Open Large File support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_LARGEFILE=no
+ fi
+ fi
+fi
+
+# detect OpenSSL
+if [ "$CFG_OPENSSL" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/openssl "OpenSSL" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ if [ "$CFG_OPENSSL" = "auto" ]; then
+ CFG_OPENSSL=yes
+ fi
+ else
+ if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+ echo "OpenSSL support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ echo " If you believe this message is in error you may use the continue"
+ echo " switch (-continue) to $0 to continue."
+ exit 101
+ else
+ CFG_OPENSSL=no
+ fi
+ fi
+fi
+
+if [ "$CFG_PTMALLOC" != "no" ]; then
+ # build ptmalloc, copy .a file to lib/
+ echo "Building ptmalloc. Please wait..."
+ (cd "$relpath/src/3rdparty/ptmalloc/"; "$MAKE" "clean" ; "$MAKE" "posix"
+ mkdir "$outpath/lib/" ; cp "libptmalloc3.a" "$outpath/lib/")
+
+ QMakeVar add QMAKE_LFLAGS "$outpath/lib/libptmalloc3.a"
+fi
+
+#-------------------------------------------------------------------------------
+# ask for all that hasn't been auto-detected or specified in the arguments
+#-------------------------------------------------------------------------------
+
+### fix this: user input should be validated in a loop
+if [ "$CFG_QWS_DEPTHS" = "prompted" -a "$PLATFORM_QWS" = "yes" ]; then
+ echo
+ echo "Choose pixel-depths to support:"
+ echo
+ echo " 1. 1bpp, black/white"
+ echo " 4. 4bpp, grayscale"
+ echo " 8. 8bpp, paletted"
+ echo " 12. 12bpp, rgb 4-4-4"
+ echo " 15. 15bpp, rgb 5-5-5"
+ echo " 16. 16bpp, rgb 5-6-5"
+ echo " 18. 18bpp, rgb 6-6-6"
+ echo " 24. 24bpp, rgb 8-8-8"
+ echo " 32. 32bpp, argb 8-8-8-8 and rgb 8-8-8"
+ echo " all. All supported depths"
+ echo
+ echo "Your choices (default 8,16,32):"
+ read CFG_QWS_DEPTHS
+ if [ -z "$CFG_QWS_DEPTHS" ] || [ "$CFG_QWS_DEPTHS" = "yes" ]; then
+ CFG_QWS_DEPTHS=8,16,32
+ fi
+fi
+if [ -n "$CFG_QWS_DEPTHS" -a "$PLATFORM_QWS" = "yes" ]; then
+ if [ "$CFG_QWS_DEPTHS" = "all" ]; then
+ CFG_QWS_DEPTHS="1 4 8 12 15 16 18 24 32 generic"
+ fi
+ for D in `echo "$CFG_QWS_DEPTHS" | sed -e 's/,/ /g'`; do
+ case $D in
+ 1|4|8|12|15|16|18|24|32) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_$D";;
+ generic) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_GENERIC";;
+ esac
+ done
+fi
+
+# enable dwarf2 support on Mac
+if [ "$CFG_MAC_DWARF2" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG dwarf2"
+fi
+
+# Set the default arch. Select 32-bit/carbon if nothing else has
+# been specified on the configure line.
+if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_ARCHS" == "" ]; then
+ source "$mactests/defaultarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests"
+
+ if [ "$QT_MAC_DEFUALT_ARCH" == "x86_64" ]; then
+ CFG_MAC_ARCHS=" x86"
+ elif [ "$QT_MAC_DEFUALT_ARCH" == "ppc64" ]; then
+ CFG_MAC_ARCHS=" ppc"
+ else
+ CFG_MAC_ARCHS=" $QT_MAC_DEFUALT_ARCH"
+ fi
+
+ [ "$OPT_VERBOSE" == "yes" ] && echo "Setting Mac architechture to$CFG_MAC_ARCHS."
+fi
+
+# enable cocoa and/or carbon on Mac
+if [ "$CFG_MAC_COCOA" = "yes" ]; then
+# -cocoa on the command line disables carbon completely (i.e. use cocoa for 32-bit as well)
+ CFG_MAC_CARBON="no"
+else
+# check which archs are in use, enable cocoa if we find a 64-bit one
+ if echo "$CFG_MAC_ARCHS" | grep 64 > /dev/null 2>&1; then
+ CFG_MAC_COCOA="yes";
+ CFG_MAC_CARBON="no";
+ if echo "$CFG_MAC_ARCHS" | grep -w ppc > /dev/null 2>&1; then
+ CFG_MAC_CARBON="yes";
+ fi
+ if echo "$CFG_MAC_ARCHS" | grep -w x86 > /dev/null 2>&1; then
+ CFG_MAC_CARBON="yes";
+ fi
+ else
+# no 64-bit archs found.
+ CFG_MAC_COCOA="no"
+ fi
+fi;
+
+# set the global Mac deployment target. This is overridden on an arch-by-arch basis
+# in some cases, see code further down
+case "$PLATFORM,$CFG_MAC_COCOA" in
+ macx*,yes)
+ # Cocoa
+ QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.5
+ CFG_QT3SUPPORT="no"
+ ;;
+ macx-icc,*)
+ # Intel CC, Carbon
+ QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.4
+ ;;
+ macx*,no)
+ # gcc, Carbon
+ QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.3
+ ;;
+esac
+
+# enable Qt 3 support functionality
+if [ "$CFG_QT3SUPPORT" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG qt3support"
+fi
+
+# enable Phonon
+if [ "$CFG_PHONON" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG phonon"
+ if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG phonon-backend"
+ fi
+else
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PHONON"
+fi
+
+# disable accessibility
+if [ "$CFG_ACCESSIBILITY" = "no" ]; then
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
+else
+ QT_CONFIG="$QT_CONFIG accessibility"
+fi
+
+# enable opengl
+if [ "$CFG_OPENGL" = "no" ]; then
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
+else
+ QT_CONFIG="$QT_CONFIG opengl"
+fi
+
+if [ "$CFG_OPENGL" = "es1" ] || [ "$CFG_OPENGL" = "es1cl" ] || [ "$CFG_OPENGL" = "es2" ]; then
+ if [ "$PLATFORM_QWS" = "yes" ]; then
+ QCONFIG_FLAGS="$QCONFIG_FLAGS Q_BACKINGSTORE_SUBSURFACES"
+ QCONFIG_FLAGS="$QCONFIG_FLAGS Q_USE_EGLWINDOWSURFACE"
+ fi
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
+fi
+
+if [ "$CFG_OPENGL" = "es1" ]; then
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_1"
+ QT_CONFIG="$QT_CONFIG opengles1"
+fi
+
+if [ "$CFG_OPENGL" = "es1cl" ]; then
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_1_CL"
+ QT_CONFIG="$QT_CONFIG opengles1cl"
+fi
+
+if [ "$CFG_OPENGL" = "es2" ]; then
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
+ QT_CONFIG="$QT_CONFIG opengles2"
+fi
+
+# safe execution environment
+if [ "$CFG_SXE" != "no" ]; then
+ QT_CONFIG="$QT_CONFIG sxe"
+fi
+
+# build up the variables for output
+if [ "$CFG_DEBUG" = "yes" ]; then
+ QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
+ QMAKE_CONFIG="$QMAKE_CONFIG debug"
+elif [ "$CFG_DEBUG" = "no" ]; then
+ QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
+ QMAKE_CONFIG="$QMAKE_CONFIG release"
+fi
+if [ "$CFG_SHARED" = "yes" ]; then
+ QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
+ QMAKE_CONFIG="$QMAKE_CONFIG shared dll"
+elif [ "$CFG_SHARED" = "no" ]; then
+ QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
+ QMAKE_CONFIG="$QMAKE_CONFIG static"
+fi
+if [ "$PLATFORM_QWS" = "yes" ]; then
+ QMAKE_OUTDIR="${QMAKE_OUTDIR}-emb-$CFG_EMBEDDED"
+ QMAKE_CONFIG="$QMAKE_CONFIG embedded"
+ QT_CONFIG="$QT_CONFIG embedded"
+ rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
+fi
+QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
+QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
+QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
+QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
+QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
+if [ "$CFG_LARGEFILE" = "yes" ]; then
+ QMAKE_CONFIG="$QMAKE_CONFIG largefile"
+fi
+if [ "$CFG_STL" = "no" ]; then
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STL"
+else
+ QMAKE_CONFIG="$QMAKE_CONFIG stl"
+fi
+if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
+ QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
+fi
+[ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
+[ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
+[ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
+if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
+ QMakeVar add QMAKE_CFLAGS -g
+ QMakeVar add QMAKE_CXXFLAGS -g
+ QMAKE_CONFIG="$QMAKE_CONFIG separate_debug_info"
+fi
+[ "$CFG_MMX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mmx"
+[ "$CFG_3DNOW" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG 3dnow"
+[ "$CFG_SSE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse"
+[ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
+[ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
+[ "$PLATFORM_MAC" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG $CFG_MAC_ARCHS"
+if [ "$CFG_IPV6" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG ipv6"
+fi
+if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG clock-gettime"
+fi
+if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG clock-monotonic"
+fi
+if [ "$CFG_MREMAP" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG mremap"
+fi
+if [ "$CFG_GETADDRINFO" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG getaddrinfo"
+fi
+if [ "$CFG_IPV6IFNAME" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG ipv6ifname"
+fi
+if [ "$CFG_GETIFADDRS" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG getifaddrs"
+fi
+if [ "$CFG_INOTIFY" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG inotify"
+fi
+if [ "$CFG_LIBJPEG" = "system" ]; then
+ QT_CONFIG="$QT_CONFIG system-jpeg"
+fi
+if [ "$CFG_JPEG" = "no" ]; then
+ QT_CONFIG="$QT_CONFIG no-jpeg"
+elif [ "$CFG_JPEG" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG jpeg"
+fi
+if [ "$CFG_LIBMNG" = "system" ]; then
+ QT_CONFIG="$QT_CONFIG system-mng"
+fi
+if [ "$CFG_MNG" = "no" ]; then
+ QT_CONFIG="$QT_CONFIG no-mng"
+elif [ "$CFG_MNG" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG mng"
+fi
+if [ "$CFG_LIBPNG" = "no" ]; then
+ CFG_PNG="no"
+fi
+if [ "$CFG_LIBPNG" = "system" ]; then
+ QT_CONFIG="$QT_CONFIG system-png"
+fi
+if [ "$CFG_PNG" = "no" ]; then
+ QT_CONFIG="$QT_CONFIG no-png"
+elif [ "$CFG_PNG" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG png"
+fi
+if [ "$CFG_GIF" = "no" ]; then
+ QT_CONFIG="$QT_CONFIG no-gif"
+elif [ "$CFG_GIF" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG gif"
+fi
+if [ "$CFG_LIBTIFF" = "system" ]; then
+ QT_CONFIG="$QT_CONFIG system-tiff"
+fi
+if [ "$CFG_TIFF" = "no" ]; then
+ QT_CONFIG="$QT_CONFIG no-tiff"
+elif [ "$CFG_TIFF" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG tiff"
+fi
+if [ "$CFG_LIBFREETYPE" = "no" ]; then
+ QT_CONFIG="$QT_CONFIG no-freetype"
+elif [ "$CFG_LIBFREETYPE" = "system" ]; then
+ QT_CONFIG="$QT_CONFIG system-freetype"
+else
+ QT_CONFIG="$QT_CONFIG freetype"
+fi
+
+if [ "x$PLATFORM_MAC" = "xyes" ]; then
+ #On Mac we implicitly link against libz, so we
+ #never use the 3rdparty stuff.
+ [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
+fi
+if [ "$CFG_ZLIB" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG zlib"
+elif [ "$CFG_ZLIB" = "system" ]; then
+ QT_CONFIG="$QT_CONFIG system-zlib"
+fi
+
+[ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
+[ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
+[ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
+[ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
+[ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
+[ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
+[ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
+[ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
+[ "$CFG_NAS" = "system" ] && QT_CONFIG="$QT_CONFIG nas"
+[ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
+[ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
+
+if [ "$PLATFORM_X11" = "yes" ]; then
+ [ "$CFG_SM" = "yes" ] && QT_CONFIG="$QT_CONFIG x11sm"
+
+ # for some reason, the following libraries are not always built shared,
+ # so *every* program/lib (including Qt) has to link against them
+ if [ "$CFG_XSHAPE" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG xshape"
+ fi
+ if [ "$CFG_XINERAMA" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG xinerama"
+ QMakeVar set QMAKE_LIBS_X11 '-lXinerama $$QMAKE_LIBS_X11'
+ fi
+ if [ "$CFG_XCURSOR" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG xcursor"
+ QMakeVar set QMAKE_LIBS_X11 '-lXcursor $$QMAKE_LIBS_X11'
+ fi
+ if [ "$CFG_XFIXES" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG xfixes"
+ QMakeVar set QMAKE_LIBS_X11 '-lXfixes $$QMAKE_LIBS_X11'
+ fi
+ if [ "$CFG_XRANDR" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG xrandr"
+ if [ "$CFG_XRENDER" != "yes" ]; then
+ # libXrandr uses 1 function from libXrender, so we always have to have it :/
+ QMakeVar set QMAKE_LIBS_X11 '-lXrandr -lXrender $$QMAKE_LIBS_X11'
+ else
+ QMakeVar set QMAKE_LIBS_X11 '-lXrandr $$QMAKE_LIBS_X11'
+ fi
+ fi
+ if [ "$CFG_XRENDER" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG xrender"
+ QMakeVar set QMAKE_LIBS_X11 '-lXrender $$QMAKE_LIBS_X11'
+ fi
+ if [ "$CFG_MITSHM" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG mitshm"
+ fi
+ if [ "$CFG_FONTCONFIG" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG fontconfig"
+ fi
+ if [ "$CFG_XINPUT" = "yes" ]; then
+ QMakeVar set QMAKE_LIBS_X11 '-lXi $$QMAKE_LIBS_X11'
+ fi
+ if [ "$CFG_XINPUT" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG xinput tablet"
+ fi
+ if [ "$CFG_XKB" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG xkb"
+ fi
+fi
+
+[ '!' -z "$D_FLAGS" ] && QMakeVar add DEFINES "$D_FLAGS"
+[ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
+[ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
+
+if [ "$PLATFORM_MAC" = "yes" ]; then
+ if [ "$CFG_RPATH" = "yes" ]; then
+ QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
+ fi
+elif [ -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_RPATH | awk '{print $3;}'`" ]; then
+ if [ -n "$RPATH_FLAGS" ]; then
+ echo
+ echo "ERROR: -R cannot be used on this platform as \$QMAKE_RPATH is"
+ echo " undefined."
+ echo
+ exit 1
+ elif [ "$CFG_RPATH" = "yes" ]; then
+ RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
+ CFG_RPATH=no
+ fi
+else
+ if [ "$CFG_RPATH" = "yes" ]; then
+ # set the default rpath to the library installation directory
+ RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
+ fi
+ if [ -n "$RPATH_FLAGS" ]; then
+ # add the user defined rpaths
+ QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
+ fi
+fi
+
+if [ '!' -z "$I_FLAGS" ]; then
+ # add the user define include paths
+ QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
+ QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
+fi
+
+# turn off exceptions for the compilers that support it
+if [ "$PLATFORM_QWS" = "yes" ]; then
+ COMPILER=`echo $XPLATFORM | cut -f 3- -d-`
+else
+ COMPILER=`echo $PLATFORM | cut -f 2- -d-`
+fi
+if [ "$CFG_EXCEPTIONS" = "unspecified" -a "$PLATFORM_QWS" = "yes" ]; then
+ CFG_EXCEPTIONS=no
+fi
+
+if [ "$CFG_EXCEPTIONS" != "no" ]; then
+ QTCONFIG_CONFIG="$QTCONFIG_CONFIG exceptions"
+fi
+
+#
+# Some Qt modules are too advanced in C++ for some old compilers
+# Detect here the platforms where they are known to work.
+#
+# See Qt documentation for more information on which features are
+# supported and on which compilers.
+#
+canBuildQtXmlPatterns="yes"
+canBuildWebKit="$HAVE_STL"
+
+# WebKit requires stdint.h
+"$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stdint "Stdint" $L_FLAGS $I_FLAGS $l_FLAGS
+if [ $? != "0" ]; then
+ canBuildWebKit="no"
+fi
+
+case "$XPLATFORM" in
+ hpux-g++*)
+ # PA-RISC's assembly is too limited
+ # gcc 3.4 on that platform can't build QtXmlPatterns
+ # the assembly it generates cannot be compiled
+
+ # Check gcc's version
+ case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
+ 4*)
+ ;;
+ 3.4*)
+ canBuildQtXmlPatterns="no"
+ ;;
+ *)
+ canBuildWebKit="no"
+ canBuildQtXmlPatterns="no"
+ ;;
+ esac
+ ;;
+ *-g++*)
+ # Check gcc's version
+ case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
+ 4*|3.4*)
+ ;;
+ 3.3*)
+ canBuildWebKit="no"
+ ;;
+ *)
+ canBuildWebKit="no"
+ canBuildQtXmlPatterns="no"
+ ;;
+ esac
+ ;;
+ solaris-cc*)
+ # Check the compiler version
+ case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
+ *)
+ canBuildWebKit="no"
+ canBuildQtXmlPatterns="no"
+ ;;
+ esac
+ ;;
+ hpux-acc*)
+ canBuildWebKit="no"
+ canBuildQtXmlPatterns="no"
+ ;;
+ hpuxi-acc*)
+ canBuildWebKit="no"
+ ;;
+ aix-xlc*)
+ canBuildWebKit="no"
+ canBuildQtXmlPatterns="no"
+ ;;
+ irix-cc*)
+ canBuildWebKit="no"
+ ;;
+esac
+
+if [ "$CFG_XMLPATTERNS" = "yes" -a "$CFG_EXCEPTIONS" = "no" ]; then
+ echo "QtXmlPatterns was requested, but it can't be built due to exceptions being disabled."
+ exit 1
+fi
+if [ "$CFG_XMLPATTERNS" = "auto" -a "$CFG_EXCEPTIONS" != "no" ]; then
+ CFG_XMLPATTERNS="$canBuildQtXmlPatterns"
+elif [ "$CFG_EXCEPTIONS" = "no" ]; then
+ CFG_XMLPATTERNS="no"
+fi
+if [ "$CFG_XMLPATTERNS" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG xmlpatterns"
+else
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XMLPATTERNS"
+fi
+
+if [ "$CFG_SVG" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG svg"
+else
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SVG"
+fi
+
+if [ "$CFG_WEBKIT" = "auto" ]; then
+ CFG_WEBKIT="$canBuildWebKit"
+fi
+
+if [ "$CFG_WEBKIT" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG webkit"
+ # The reason we set CFG_WEBKIT, is such that the printed overview of what will be enabled, shows correctly.
+ CFG_WEBKIT="yes"
+else
+ CFG_WEBKIT="no"
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WEBKIT"
+fi
+
+if [ "$CFG_SCRIPTTOOLS" = "auto" ]; then
+ CFG_SCRIPTTOOLS="yes"
+fi
+
+if [ "$CFG_SCRIPTTOOLS" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG scripttools"
+ CFG_SCRIPTTOOLS="yes"
+else
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SCRIPTTOOLS"
+fi
+
+if [ "$CFG_EXCEPTIONS" = "no" ]; then
+ case "$COMPILER" in
+ g++*)
+ QMakeVar add QMAKE_CFLAGS -fno-exceptions
+ QMakeVar add QMAKE_CXXFLAGS -fno-exceptions
+ QMakeVar add QMAKE_LFLAGS -fno-exceptions
+ ;;
+ cc*)
+ case "$PLATFORM" in
+ irix-cc*)
+ QMakeVar add QMAKE_CFLAGS -LANG:exceptions=off
+ QMakeVar add QMAKE_CXXFLAGS -LANG:exceptions=off
+ QMakeVar add QMAKE_LFLAGS -LANG:exceptions=off
+ ;;
+ *) ;;
+ esac
+ ;;
+ *) ;;
+ esac
+ QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
+fi
+
+# On Mac, set the minimum deployment target using Xarch when that is supported (10.5 and up).
+# On 10.4 the deployment version is set to 10.3 globally using the QMAKE_MACOSX_DEPLOYMENT_TARGET env. variable
+# "-cocoa" on the command line means Cocoa is used in 32-bit mode also, in this case fall back on
+# QMAKE_MACOSX_DEPLOYMENT_TARGET which will be set to 10.5.
+if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" != "no" ] && [ "$COMMANDLINE_MAC_COCOA" != "yes" ]; then
+ if echo "$CFG_MAC_ARCHS" | grep '\<x86\>' > /dev/null 2>&1; then
+ QMakeVar add QMAKE_CFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
+ QMakeVar add QMAKE_CXXFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
+ QMakeVar add QMAKE_LFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
+ QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86 "-arch i386 -Xarch_i386 -mmacosx-version-min=10.4"
+ fi
+ if echo "$CFG_MAC_ARCHS" | grep '\<ppc\>' > /dev/null 2>&1; then
+ QMakeVar add QMAKE_CFLAGS "-Xarch_ppc -mmacosx-version-min=10.3"
+ QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc -mmacosx-version-min=10.3"
+ QMakeVar add QMAKE_LFLAGS "-Xarch_ppc -mmacosx-version-min=10.3"
+ QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC "-arch ppc -Xarch_ppc -mmacosx-version-min=10.3"
+ fi
+ if echo "$CFG_MAC_ARCHS" | grep '\<x86_64\>' > /dev/null 2>&1; then
+ QMakeVar add QMAKE_CFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
+ QMakeVar add QMAKE_CXXFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
+ QMakeVar add QMAKE_LFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
+ QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5"
+ fi
+ if echo "$CFG_MAC_ARCHS" | grep '\<ppc64\>' > /dev/null 2>&1; then
+ QMakeVar add QMAKE_CFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
+ QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
+ QMakeVar add QMAKE_LFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
+ QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC_64 "-arch ppc64 -Xarch_ppc64 -mmacosx-version-min=10.5"
+ fi
+fi
+
+#-------------------------------------------------------------------------------
+# generate QT_BUILD_KEY
+#-------------------------------------------------------------------------------
+
+# some compilers generate binary incompatible code between different versions,
+# so we need to generate a build key that is different between these compilers
+case "$COMPILER" in
+g++*)
+ # GNU C++
+ COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
+
+ case "$COMPILER_VERSION" in
+ *.*.*)
+ QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
+ QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
+ QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
+ ;;
+ *.*)
+ QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
+ QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
+ QT_GCC_PATCH_VERSION=0
+ ;;
+ esac
+
+ case "$COMPILER_VERSION" in
+ 2.95.*)
+ COMPILER_VERSION="2.95.*"
+ ;;
+ 3.*)
+ COMPILER_VERSION="3.*"
+ ;;
+ 4.*)
+ COMPILER_VERSION="4"
+ ;;
+ *)
+ ;;
+ esac
+ [ '!' -z "$COMPILER_VERSION" ] && COMPILER="g++-${COMPILER_VERSION}"
+ ;;
+*)
+ #
+ ;;
+esac
+
+# QT_CONFIG can contain the following:
+#
+# Things that affect the Qt API/ABI:
+#
+# Options:
+# minimal-config small-config medium-config large-config full-config
+#
+# Different edition modules:
+# network canvas table xml opengl sql
+#
+# Options:
+# stl
+#
+# Things that do not affect the Qt API/ABI:
+# system-jpeg no-jpeg jpeg
+# system-mng no-mng mng
+# system-png no-png png
+# system-zlib no-zlib zlib
+# system-libtiff no-libtiff
+# no-gif gif
+# debug release
+# dll staticlib
+#
+# internal
+# nocrosscompiler
+# GNUmake
+# largefile
+# nis
+# nas
+# tablet
+# ipv6
+#
+# X11 : x11sm xinerama xcursor xfixes xrandr xrender mitshm fontconfig xkb
+# Embedded: embedded freetype
+#
+ALL_OPTIONS="stl"
+BUILD_CONFIG=
+BUILD_OPTIONS=
+
+# determine the build options
+for config_option in $QMAKE_CONFIG $QT_CONFIG; do
+ SKIP="yes"
+ case "$config_option" in
+ *-config)
+ # take the last *-config setting. this is the highest config being used,
+ # and is the one that we will use for tagging plugins
+ BUILD_CONFIG="$config_option"
+ ;;
+
+ stl)
+ # these config options affect the Qt API/ABI. they should influence
+ # the generation of the buildkey, so we don't skip them
+ SKIP="no"
+ ;;
+
+ *) # skip all other options since they don't affect the Qt API/ABI.
+ ;;
+ esac
+
+ if [ "$SKIP" = "no" ]; then
+ BUILD_OPTIONS="$BUILD_OPTIONS $config_option"
+ fi
+done
+
+# put the options that we are missing into .options
+rm -f .options
+for opt in `echo $ALL_OPTIONS`; do
+ SKIP="no"
+ if echo $BUILD_OPTIONS | grep $opt >/dev/null 2>&1; then
+ SKIP="yes"
+ fi
+ if [ "$SKIP" = "no" ]; then
+ echo "$opt" >> .options
+ fi
+done
+
+# reconstruct BUILD_OPTIONS with a sorted negative feature list
+# (ie. only things that are missing are will be put into the build key)
+BUILD_OPTIONS=
+if [ -f .options ]; then
+ for opt in `sort -f .options | uniq`; do
+ BUILD_OPTIONS="$BUILD_OPTIONS no-$opt"
+ done
+fi
+rm -f .options
+
+# QT_NO* defines affect the Qt API (and binary compatibility). they need
+# to be included in the build key
+for build_option in $D_FLAGS; do
+ build_option=`echo $build_option | cut -d \" -f 2 -`
+ case "$build_option" in
+ QT_NO*)
+ echo "$build_option" >> .options
+ ;;
+ *)
+ # skip all other compiler defines
+ ;;
+ esac
+done
+
+# sort the compile time defines (helps ensure that changes in this configure
+# script don't affect the QT_BUILD_KEY generation)
+if [ -f .options ]; then
+ for opt in `sort -f .options | uniq`; do
+ BUILD_OPTIONS="$BUILD_OPTIONS $opt"
+ done
+fi
+rm -f .options
+
+BUILD_OPTIONS="$BUILD_CONFIG $BUILD_OPTIONS"
+# extract the operating system from the XPLATFORM
+TARGET_OPERATING_SYSTEM=`echo $XPLATFORM | cut -f 2- -d/ | cut -f -1 -d-`
+
+# when cross-compiling, don't include build-host information (build key is target specific)
+QT_BUILD_KEY="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
+MAC_NEED_TWO_BUILD_KEYS="no"
+if [ "$PLATFORM_MAC" = "yes" -a "$CFG_MAC_COCOA" = "yes" ]; then
+ QT_BUILD_KEY_CARBON=$QT_BUILD_KEY
+ TARGET_OPERATING_SYSTEM="$TARGET_OPERATING_SYSTEM-cocoa"
+ QT_BUILD_KEY_COCOA="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
+ if [ "$CFG_MAC_CARBON" = "no" ]; then
+ QT_BUILD_KEY=$QT_BUILD_KEY_COCOA
+ else
+ MAC_NEED_TWO_BUILD_KEYS="yes"
+ fi
+fi
+# don't break loading plugins build with an older version of Qt
+QT_BUILD_KEY_COMPAT=
+if [ "$QT_CROSS_COMPILE" = "no" ]; then
+ # previous versions of Qt used a build key built from the uname
+ QT_BUILD_KEY_COMPAT="$CFG_USER_BUILD_KEY $UNAME_MACHINE $UNAME_SYSTEM $COMPILER $BUILD_OPTIONS"
+fi
+# strip out leading/trailing/extra whitespace
+QT_BUILD_KEY=`echo $QT_BUILD_KEY | sed -e "s, *, ,g" -e "s,^ *,," -e "s, *$,,"`
+QT_BUILD_KEY_COMPAT=`echo $QT_BUILD_KEY_COMPAT | sed -e "s, *, ,g" -e "s,^ *,," -e "s, *$,,"`
+
+#-------------------------------------------------------------------------------
+# part of configuration information goes into qconfig.h
+#-------------------------------------------------------------------------------
+
+case "$CFG_QCONFIG" in
+full)
+ echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
+ ;;
+*)
+ tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
+ echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
+ cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
+ echo "#endif" >>"$tmpconfig"
+ ;;
+esac
+
+cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
+
+/* Qt Edition */
+#ifndef QT_EDITION
+# define QT_EDITION $QT_EDITION
+#endif
+
+/* Machine byte-order */
+#define Q_BIG_ENDIAN 4321
+#define Q_LITTLE_ENDIAN 1234
+EOF
+
+if [ "$MAC_NEED_TWO_BUILD_KEYS" = "no" ]; then
+ echo "#define QT_BUILD_KEY \"$QT_BUILD_KEY\"" \
+ >> "$outpath/src/corelib/global/qconfig.h.new"
+else
+ cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
+
+#define QT_BUILD_KEY_CARBON "$QT_BUILD_KEY_CARBON"
+#define QT_BUILD_KEY_COCOA "$QT_BUILD_KEY_COCOA"
+EOF
+fi
+
+if [ -n "$QT_BUILD_KEY_COMPAT" ]; then
+ echo "#define QT_BUILD_KEY_COMPAT \"$QT_BUILD_KEY_COMPAT\"" \
+ >> "$outpath/src/corelib/global/qconfig.h.new"
+fi
+echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
+
+echo "#ifdef QT_BOOTSTRAPPED" >>"$outpath/src/corelib/global/qconfig.h.new"
+if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
+ cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
+#if defined(__BIG_ENDIAN__)
+# define Q_BYTE_ORDER Q_BIG_ENDIAN
+#elif defined(__LITTLE_ENDIAN__)
+# define Q_BYTE_ORDER Q_LITTLE_ENDIAN
+#else
+# error "Unable to determine byte order!"
+#endif
+EOF
+else
+ echo "#define Q_BYTE_ORDER $CFG_HOST_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
+fi
+echo "#else" >>"$outpath/src/corelib/global/qconfig.h.new"
+if [ "$CFG_ENDIAN" = "auto" ]; then
+ cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
+#if defined(__BIG_ENDIAN__)
+# define Q_BYTE_ORDER Q_BIG_ENDIAN
+#elif defined(__LITTLE_ENDIAN__)
+# define Q_BYTE_ORDER Q_LITTLE_ENDIAN
+#else
+# error "Unable to determine byte order!"
+#endif
+EOF
+else
+ echo "#define Q_BYTE_ORDER $CFG_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
+fi
+echo "#endif" >>"$outpath/src/corelib/global/qconfig.h.new"
+
+if [ "$CFG_DOUBLEFORMAT" != "normal" ]; then
+ cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
+/* Non-IEEE double format */
+#define Q_DOUBLE_LITTLE "01234567"
+#define Q_DOUBLE_BIG "76543210"
+#define Q_DOUBLE_LITTLE_SWAPPED "45670123"
+#define Q_DOUBLE_BIG_SWAPPED "32107654"
+#define Q_DOUBLE_FORMAT $CFG_DOUBLEFORMAT
+EOF
+fi
+if [ "$CFG_ARMFPA" = "yes" ]; then
+ if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
+ cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
+#ifndef QT_BOOTSTRAPPED
+# define QT_ARMFPA
+#endif
+EOF
+ else
+ echo "#define QT_ARMFPA" >>"$outpath/src/corelib/global/qconfig.h.new"
+ fi
+fi
+
+CFG_ARCH_STR=`echo $CFG_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+CFG_HOST_ARCH_STR=`echo $CFG_HOST_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
+/* Machine Architecture */
+#ifndef QT_BOOTSTRAPPED
+# define QT_ARCH_${CFG_ARCH_STR}
+#else
+# define QT_ARCH_${CFG_HOST_ARCH_STR}
+#endif
+EOF
+
+echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
+[ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
+
+if [ "$CFG_LARGEFILE" = "yes" ]; then
+ echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
+fi
+
+# if both carbon and cocoa are specified, enable the autodetection code.
+if [ "$CFG_MAC_COCOA" = "yes" -a "$CFG_MAC_CARBON" = "yes" ]; then
+ echo "#define AUTODETECT_COCOA 1" >>"$outpath/src/corelib/global/qconfig.h.new"
+elif [ "$CFG_MAC_COCOA" = "yes" ]; then
+ echo "#define QT_MAC_USE_COCOA 1" >>"$outpath/src/corelib/global/qconfig.h.new"
+fi
+
+if [ "$CFG_FRAMEWORK" = "yes" ]; then
+ echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
+fi
+
+if [ "$PLATFORM_MAC" = "yes" ]; then
+ cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
+#if defined(__LP64__)
+# define QT_POINTER_SIZE 8
+#else
+# define QT_POINTER_SIZE 4
+#endif
+EOF
+else
+ "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
+ echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
+fi
+
+
+echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
+
+if [ "$CFG_DEV" = "yes" ]; then
+ echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
+fi
+
+# Embedded compile time options
+if [ "$PLATFORM_QWS" = "yes" ]; then
+ # Add QWS to config.h
+ QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QWS"
+
+ # Add excluded decorations to $QCONFIG_FLAGS
+ decors=`grep '^decorations -= ' "$QMAKE_VARS_FILE" | ${AWK} '{print $3}'`
+ for decor in $decors; do
+ NODECORATION=`echo $decor | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_NO_QWS_DECORATION_${NODECORATION}"
+ done
+
+ # Figure which embedded drivers which are turned off
+ CFG_GFX_OFF="$CFG_GFX_AVAILABLE"
+ for ADRIVER in $CFG_GFX_ON; do
+ CFG_GFX_OFF=`echo "${CFG_GFX_OFF} " | sed "s,${ADRIVER} ,,g"`
+ done
+
+ CFG_KBD_OFF="$CFG_KBD_AVAILABLE"
+ # the um driver is currently not in the available list for external builds
+ if [ "$CFG_DEV" = "no" ]; then
+ CFG_KBD_OFF="$CFG_KBD_OFF um"
+ fi
+ for ADRIVER in $CFG_KBD_ON; do
+ CFG_KBD_OFF=`echo "${CFG_KBD_OFF} " | sed "s,${ADRIVER} ,,g"`
+ done
+
+ CFG_MOUSE_OFF="$CFG_MOUSE_AVAILABLE"
+ for ADRIVER in $CFG_MOUSE_ON; do
+ CFG_MOUSE_OFF=`echo "${CFG_MOUSE_OFF} " | sed "s,${ADRIVER} ,,g"`
+ done
+
+ for DRIVER in $CFG_GFX_OFF; do
+ NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_$NODRIVER"
+ done
+
+ for DRIVER in $CFG_KBD_OFF; do
+ NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_KBD_$NODRIVER"
+ done
+
+ for DRIVER in $CFG_MOUSE_OFF; do
+ NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_MOUSE_$NODRIVER"
+ done
+fi # QWS
+
+if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
+ QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
+fi
+
+# Add turned on SQL drivers
+for DRIVER in $CFG_SQL_AVAILABLE; do
+ eval "VAL=\$CFG_SQL_$DRIVER"
+ case "$VAL" in
+ qt)
+ ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
+ SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
+ ;;
+ plugin)
+ SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
+ ;;
+ esac
+done
+
+
+QMakeVar set sql-drivers "$SQL_DRIVERS"
+QMakeVar set sql-plugins "$SQL_PLUGINS"
+
+# Add other configuration options to the qconfig.h file
+[ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
+[ "$CFG_TIFF" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_TIFF"
+[ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
+[ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
+[ "$CFG_MNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_MNG"
+[ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
+[ "$CFG_EXCEPTIONS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EXCEPTIONS"
+[ "$CFG_IPV6" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6"
+[ "$CFG_SXE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
+[ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
+
+if [ "$PLATFORM_QWS" != "yes" ]; then
+ [ "$CFG_GRAPHICS_SYSTEM" = "raster" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_RASTER"
+ [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_OPENGL"
+fi
+
+# X11/Unix/Mac only configs
+[ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
+[ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
+[ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
+[ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
+[ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
+[ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
+[ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
+[ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
+[ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
+[ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
+[ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
+[ "$CFG_NAS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NAS"
+[ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
+[ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL"
+[ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
+
+[ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
+[ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
+[ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
+[ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
+[ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
+[ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
+[ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
+[ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
+[ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
+[ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
+[ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
+
+[ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
+[ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
+[ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
+[ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
+[ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
+
+# sort QCONFIG_FLAGS for neatness if we can
+[ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
+QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
+
+if [ -n "$QCONFIG_FLAGS" ]; then
+ for cfg in $QCONFIG_FLAGS; do
+ cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
+ cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
+ # figure out define logic, so we can output the correct
+ # ifdefs to override the global defines in a project
+ cfgdNeg=
+ if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
+ # QT_NO_option can be forcefully turned on by QT_option
+ cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
+ elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
+ # QT_option can be forcefully turned off by QT_NO_option
+ cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
+ fi
+
+ if [ -z $cfgdNeg ]; then
+cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
+#ifndef $cfgd
+# define $cfg
+#endif
+
+EOF
+ else
+cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
+#if defined($cfgd) && defined($cfgdNeg)
+# undef $cfgd
+#elif !defined($cfgd) && !defined($cfgdNeg)
+# define $cfg
+#endif
+
+EOF
+ fi
+ done
+fi
+
+if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
+cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
+#define QT_VISIBILITY_AVAILABLE
+
+EOF
+fi
+
+# avoid unecessary rebuilds by copying only if qconfig.h has changed
+if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
+ rm -f "$outpath/src/corelib/global/qconfig.h.new"
+else
+ [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
+ mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
+ chmod -w "$outpath/src/corelib/global/qconfig.h"
+ for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
+ if [ '!' -f "$conf" ]; then
+ ln -s "$outpath/src/corelib/global/qconfig.h" "$conf"
+ fi
+ done
+fi
+
+#-------------------------------------------------------------------------------
+# save configuration into qconfig.pri
+#-------------------------------------------------------------------------------
+
+QTCONFIG="$outpath/mkspecs/qconfig.pri"
+QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
+[ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
+if [ "$CFG_DEBUG" = "yes" ]; then
+ QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
+ if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG release"
+ fi
+ QT_CONFIG="$QT_CONFIG debug"
+elif [ "$CFG_DEBUG" = "no" ]; then
+ QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
+ if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG debug"
+ fi
+ QT_CONFIG="$QT_CONFIG release"
+fi
+if [ "$CFG_STL" = "yes" ]; then
+ QTCONFIG_CONFIG="$QTCONFIG_CONFIG stl"
+fi
+if [ "$CFG_FRAMEWORK" = "no" ]; then
+ QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
+else
+ QT_CONFIG="$QT_CONFIG qt_framework"
+ QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
+fi
+if [ "$PLATFORM_MAC" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG $CFG_MAC_ARCHS"
+fi
+
+# Make the application arch follow the Qt arch for single arch builds.
+# (for multiple-arch builds, set CONFIG manually in the application .pro file)
+if [ `echo "$CFG_MAC_ARCHS" | wc -w` -eq 1 ]; then
+ QTCONFIG_CONFIG="$QTCONFIG_CONFIG $CFG_MAC_ARCHS"
+fi
+
+cat >>"$QTCONFIG.tmp" <<EOF
+#configuration
+CONFIG += $QTCONFIG_CONFIG
+QT_ARCH = $CFG_ARCH
+QT_EDITION = $Edition
+QT_CONFIG += $QT_CONFIG
+
+#versioning
+QT_VERSION = $QT_VERSION
+QT_MAJOR_VERSION = $QT_MAJOR_VERSION
+QT_MINOR_VERSION = $QT_MINOR_VERSION
+QT_PATCH_VERSION = $QT_PATCH_VERSION
+
+#namespaces
+QT_LIBINFIX = $QT_LIBINFIX
+QT_NAMESPACE = $QT_NAMESPACE
+QT_NAMESPACE_MAC_CRC = $QT_NAMESPACE_MAC_CRC
+
+EOF
+if [ "$CFG_RPATH" = "yes" ]; then
+ echo "QMAKE_RPATHDIR += \"$QT_INSTALL_LIBS\"" >> "$QTCONFIG.tmp"
+fi
+if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
+ echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
+ echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
+ echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
+fi
+# replace qconfig.pri if it differs from the newly created temp file
+if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
+ rm -f "$QTCONFIG.tmp"
+else
+ mv -f "$QTCONFIG.tmp" "$QTCONFIG"
+fi
+
+#-------------------------------------------------------------------------------
+# save configuration into .qmake.cache
+#-------------------------------------------------------------------------------
+
+CACHEFILE="$outpath/.qmake.cache"
+[ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
+cat >>"$CACHEFILE.tmp" <<EOF
+CONFIG += $QMAKE_CONFIG dylib create_prl link_prl depend_includepath fix_output_dirs QTDIR_build
+QT_SOURCE_TREE = \$\$quote($relpath)
+QT_BUILD_TREE = \$\$quote($outpath)
+QT_BUILD_PARTS = $CFG_BUILD_PARTS
+QMAKE_ABSOLUTE_SOURCE_ROOT = \$\$QT_SOURCE_TREE
+QMAKE_MOC_SRC = \$\$QT_BUILD_TREE/src/moc
+
+#local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
+QMAKE_MOC = \$\$QT_BUILD_TREE/bin/moc
+QMAKE_UIC = \$\$QT_BUILD_TREE/bin/uic
+QMAKE_UIC3 = \$\$QT_BUILD_TREE/bin/uic3
+QMAKE_RCC = \$\$QT_BUILD_TREE/bin/rcc
+QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp
+QMAKE_INCDIR_QT = \$\$QT_BUILD_TREE/include
+QMAKE_LIBDIR_QT = \$\$QT_BUILD_TREE/lib
+
+EOF
+
+if [ -n "$QT_CFLAGS_PSQL" ]; then
+ echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$CACHEFILE.tmp"
+fi
+if [ -n "$QT_LFLAGS_PSQL" ]; then
+ echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$CACHEFILE.tmp"
+fi
+if [ -n "$QT_CFLAGS_MYSQL" ]; then
+ echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$CACHEFILE.tmp"
+fi
+if [ -n "$QT_LFLAGS_MYSQL" ]; then
+ echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$CACHEFILE.tmp"
+fi
+if [ -n "$QT_CFLAGS_SQLITE" ]; then
+ echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$CACHEFILE.tmp"
+fi
+if [ -n "$QT_LFLAGS_SQLITE" ]; then
+ echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$CACHEFILE.tmp"
+fi
+
+if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
+ echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$CACHEFILE.tmp"
+fi
+
+#dump in the OPENSSL_LIBS info
+if [ '!' -z "$OPENSSL_LIBS" ]; then
+ echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$CACHEFILE.tmp"
+elif [ "$CFG_OPENSSL" = "linked" ]; then
+ echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$CACHEFILE.tmp"
+fi
+
+#dump in the SDK info
+if [ '!' -z "$CFG_SDK" ]; then
+ echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$CACHEFILE.tmp"
+fi
+
+# mac gcc -Xarch support
+if [ "$CFG_MAC_XARCH" = "no" ]; then
+ echo "QMAKE_MAC_XARCH = no" >> "$CACHEFILE.tmp"
+fi
+
+#dump the qmake spec
+if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
+ echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
+else
+ echo "QMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
+fi
+
+# cmdline args
+cat "$QMAKE_VARS_FILE" >> "$CACHEFILE.tmp"
+rm -f "$QMAKE_VARS_FILE" 2>/dev/null
+
+# incrementals
+INCREMENTAL=""
+[ "$CFG_INCREMENTAL" = "auto" ] && "$WHICH" p4 >/dev/null 2>&1 && [ "$CFG_DEV" = "yes" ] && CFG_INCREMENTAL="yes"
+if [ "$CFG_INCREMENTAL" = "yes" ]; then
+ find "$relpath" -perm u+w -mtime -3 | grep 'cpp$' | while read f; do
+ # don't need to worry about generated files
+ [ -r `echo $f | sed "s,cpp$,ui,"` ] && continue
+ basename "$f" | grep '^moc_' >/dev/null 2>&1 && continue
+ # done
+ INCREMENTAL="$INCREMENTAL `basename \"$f\" | sed 's,.cpp,.o,'`"
+ done
+ [ '!' -z "$INCREMENTAL" ] && echo "QMAKE_INCREMENTAL += $INCREMENTAL" >> "$CACHEFILE.tmp"
+ [ -r "$outpath/.qmake.incremental" ] && echo "include($outpath/.qmake.incremental)" >> "$CACHEFILE.tmp"
+fi
+
+# replace .qmake.cache if it differs from the newly created temp file
+if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
+ rm -f "$CACHEFILE.tmp"
+else
+ mv -f "$CACHEFILE.tmp" "$CACHEFILE"
+fi
+
+#-------------------------------------------------------------------------------
+# give feedback on configuration
+#-------------------------------------------------------------------------------
+
+case "$COMPILER" in
+g++*)
+ if [ "$CFG_EXCEPTIONS" != "no" ]; then
+ cat <<EOF
+
+ This target is using the GNU C++ compiler ($PLATFORM).
+
+ Recent versions of this compiler automatically include code for
+ exceptions, which increase both the size of the Qt libraries and
+ the amount of memory taken by your applications.
+
+ You may choose to re-run `basename $0` with the -no-exceptions
+ option to compile Qt without exceptions. This is completely binary
+ compatible, and existing applications will continue to work.
+
+EOF
+ fi
+ ;;
+cc*)
+ case "$PLATFORM" in
+ irix-cc*)
+ if [ "$CFG_EXCEPTIONS" != "no" ]; then
+ cat <<EOF
+
+ This target is using the MIPSpro C++ compiler ($PLATFORM).
+
+ You may choose to re-run `basename $0` with the -no-exceptions
+ option to compile Qt without exceptions. This will make the
+ size of the Qt library smaller and reduce the amount of memory
+ taken by your applications.
+
+EOF
+ fi
+ ;;
+ *) ;;
+ esac
+ ;;
+*) ;;
+esac
+
+if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" == "no" ] && [ "$CFG_WEBKIT" = "yes" ] && [ "$CFG_DEBUG_RELEASE" == "yes" ]; then
+ cat <<EOF
+ WARNING: DWARF2 debug symbols are not enabled. Linking webkit
+ in debug mode will run out of memory on systems with 2GB or less.
+ Install Xcode 2.4.1 or higher to enable DWARF2, or configure with
+ -no-webkit or -release to skip webkit debug.
+EOF
+fi
+
+echo
+if [ "$XPLATFORM" = "$PLATFORM" ]; then
+ echo "Build type: $PLATFORM"
+else
+ echo "Building on: $PLATFORM"
+ echo "Building for: $XPLATFORM"
+fi
+
+if [ "$PLATFORM_MAC" = "yes" ]; then
+ echo "Architecture: $CFG_ARCH ($CFG_MAC_ARCHS )"
+else
+ echo "Architecture: $CFG_ARCH"
+fi
+
+if [ "$PLATFORM_QWS" = "yes" ]; then
+ echo "Host architecture: $CFG_HOST_ARCH"
+fi
+
+if [ "$PLATFORM_MAC" = "yes" ]; then
+ if [ "$CFG_MAC_COCOA" = "yes" ]; then
+ if [ "$CFG_MAC_CARBON" = "yes" ]; then
+ echo "Using framework: Carbon for 32-bit, Cocoa for 64-bit"
+ else
+ echo "Using framework: Cocoa"
+ fi
+ else
+ echo "Using framework: Carbon"
+ fi
+fi
+
+if [ -n "$PLATFORM_NOTES" ]; then
+ echo "Platform notes:"
+ echo "$PLATFORM_NOTES"
+else
+ echo
+fi
+
+if [ "$OPT_VERBOSE" = "yes" ]; then
+ if echo '\c' | grep '\c' >/dev/null; then
+ echo -n "qmake vars .......... "
+ else
+ echo "qmake vars .......... \c"
+ fi
+ cat "$QMAKE_VARS_FILE" | tr '\n' ' '
+ echo "qmake switches ...... $QMAKE_SWITCHES"
+fi
+
+[ "$CFG_INCREMENTAL" = "yes" ] && [ '!' -z "$INCREMENTAL" ] && echo "Incremental ......... $INCREMENTAL"
+echo "Build ............... $CFG_BUILD_PARTS"
+echo "Configuration ....... $QMAKE_CONFIG $QT_CONFIG"
+if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
+ echo "Debug ............... yes (combined)"
+ if [ "$CFG_DEBUG" = "yes" ]; then
+ echo "Default Link ........ debug"
+ else
+ echo "Default Link ........ release"
+ fi
+else
+ echo "Debug ............... $CFG_DEBUG"
+fi
+echo "Qt 3 compatibility .. $CFG_QT3SUPPORT"
+[ "$CFG_DBUS" = "no" ] && echo "QtDBus module ....... no"
+[ "$CFG_DBUS" = "yes" ] && echo "QtDBus module ....... yes (run-time)"
+[ "$CFG_DBUS" = "linked" ] && echo "QtDBus module ....... yes (linked)"
+echo "QtScriptTools module $CFG_SCRIPTTOOLS"
+echo "QtXmlPatterns module $CFG_XMLPATTERNS"
+echo "Phonon module ....... $CFG_PHONON"
+echo "SVG module .......... $CFG_SVG"
+echo "WebKit module ....... $CFG_WEBKIT"
+echo "STL support ......... $CFG_STL"
+echo "PCH support ......... $CFG_PRECOMPILE"
+echo "MMX/3DNOW/SSE/SSE2.. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}"
+if [ "${CFG_ARCH}" = "arm" ]; then
+ echo "iWMMXt support ...... ${CFG_IWMMXT}"
+fi
+[ "${PLATFORM_QWS}" != "yes" ] && echo "Graphics System ..... $CFG_GRAPHICS_SYSTEM"
+echo "IPv6 support ........ $CFG_IPV6"
+echo "IPv6 ifname support . $CFG_IPV6IFNAME"
+echo "getaddrinfo support . $CFG_GETADDRINFO"
+echo "getifaddrs support .. $CFG_GETIFADDRS"
+echo "Accessibility ....... $CFG_ACCESSIBILITY"
+echo "NIS support ......... $CFG_NIS"
+echo "CUPS support ........ $CFG_CUPS"
+echo "Iconv support ....... $CFG_ICONV"
+echo "Glib support ........ $CFG_GLIB"
+echo "GStreamer support ... $CFG_GSTREAMER"
+echo "Large File support .. $CFG_LARGEFILE"
+echo "GIF support ......... $CFG_GIF"
+if [ "$CFG_TIFF" = "no" ]; then
+ echo "TIFF support ........ $CFG_TIFF"
+else
+ echo "TIFF support ........ $CFG_TIFF ($CFG_LIBTIFF)"
+fi
+if [ "$CFG_JPEG" = "no" ]; then
+ echo "JPEG support ........ $CFG_JPEG"
+else
+ echo "JPEG support ........ $CFG_JPEG ($CFG_LIBJPEG)"
+fi
+if [ "$CFG_PNG" = "no" ]; then
+ echo "PNG support ......... $CFG_PNG"
+else
+ echo "PNG support ......... $CFG_PNG ($CFG_LIBPNG)"
+fi
+if [ "$CFG_MNG" = "no" ]; then
+ echo "MNG support ......... $CFG_MNG"
+else
+ echo "MNG support ......... $CFG_MNG ($CFG_LIBMNG)"
+fi
+echo "zlib support ........ $CFG_ZLIB"
+echo "Session management .. $CFG_SM"
+if [ "$PLATFORM_QWS" = "yes" ]; then
+ echo "Embedded support .... $CFG_EMBEDDED"
+ if [ "$CFG_QWS_FREETYPE" = "auto" ]; then
+ echo "Freetype2 support ... $CFG_QWS_FREETYPE ($CFG_LIBFREETYPE)"
+ else
+ echo "Freetype2 support ... $CFG_QWS_FREETYPE"
+ fi
+ # Normalize the decoration output first
+ CFG_GFX_ON=`echo ${CFG_GFX_ON}`
+ CFG_GFX_PLUGIN=`echo ${CFG_GFX_PLUGIN}`
+ echo "Graphics (qt) ....... ${CFG_GFX_ON}"
+ echo "Graphics (plugin) ... ${CFG_GFX_PLUGIN}"
+ CFG_DECORATION_ON=`echo ${CFG_DECORATION_ON}`
+ CFG_DECORATION_PLUGIN=`echo ${CFG_DECORATION_PLUGIN}`
+ echo "Decorations (qt) .... $CFG_DECORATION_ON"
+ echo "Decorations (plugin) $CFG_DECORATION_PLUGIN"
+ CFG_KBD_ON=`echo ${CFG_KBD_ON}`
+ CFG_KBD_PLUGIN=`echo ${CFG_KBD_PLUGIN}`
+ echo "Keyboard driver (qt). ${CFG_KBD_ON}"
+ echo "Keyboard driver (plugin) ${CFG_KBD_PLUGIN}"
+ CFG_MOUSE_ON=`echo ${CFG_MOUSE_ON}`
+ CFG_MOUSE_PLUGIN=`echo ${CFG_MOUSE_PLUGIN}`
+ echo "Mouse driver (qt) ... $CFG_MOUSE_ON"
+ echo "Mouse driver (plugin) $CFG_MOUSE_PLUGIN"
+fi
+if [ "$CFG_OPENGL" = "desktop" ]; then
+ echo "OpenGL support ...... yes (Desktop OpenGL)"
+elif [ "$CFG_OPENGL" = "es1" ]; then
+ echo "OpenGL support ...... yes (OpenGL ES 1.x Common profile)"
+elif [ "$CFG_OPENGL" = "es1cl" ]; then
+ echo "OpenGL support ...... yes (OpenGL ES 1.x Common Lite profile)"
+elif [ "$CFG_OPENGL" = "es2" ]; then
+ echo "OpenGL support ...... yes (OpenGL ES 2.x)"
+else
+ echo "OpenGL support ...... no"
+fi
+if [ "$PLATFORM_X11" = "yes" ]; then
+ echo "NAS sound support ... $CFG_NAS"
+ echo "XShape support ...... $CFG_XSHAPE"
+ echo "Xinerama support .... $CFG_XINERAMA"
+ echo "Xcursor support ..... $CFG_XCURSOR"
+ echo "Xfixes support ...... $CFG_XFIXES"
+ echo "Xrandr support ...... $CFG_XRANDR"
+ echo "Xrender support ..... $CFG_XRENDER"
+ echo "Xi support .......... $CFG_XINPUT"
+ echo "MIT-SHM support ..... $CFG_MITSHM"
+ echo "FontConfig support .. $CFG_FONTCONFIG"
+ echo "XKB Support ......... $CFG_XKB"
+ echo "immodule support .... $CFG_IM"
+ echo "GTK theme support ... $CFG_QGTKSTYLE"
+fi
+[ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support ....... $CFG_SQL_mysql"
+[ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support .. $CFG_SQL_psql"
+[ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........ $CFG_SQL_odbc"
+[ "$CFG_SQL_oci" != "no" ] && echo "OCI support ......... $CFG_SQL_oci"
+[ "$CFG_SQL_tds" != "no" ] && echo "TDS support ......... $CFG_SQL_tds"
+[ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ......... $CFG_SQL_db2"
+[ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ... $CFG_SQL_ibase"
+[ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support .... $CFG_SQL_sqlite2"
+[ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ...... $CFG_SQL_sqlite ($CFG_SQLITE)"
+
+OPENSSL_LINKAGE=""
+if [ "$CFG_OPENSSL" = "yes" ]; then
+ OPENSSL_LINKAGE="(run-time)"
+elif [ "$CFG_OPENSSL" = "linked" ]; then
+ OPENSSL_LINKAGE="(linked)"
+fi
+echo "OpenSSL support ..... $CFG_OPENSSL $OPENSSL_LINKAGE"
+
+[ "$CFG_PTMALLOC" != "no" ] && echo "Use ptmalloc ........ $CFG_PTMALLOC"
+
+# complain about not being able to use dynamic plugins if we are using a static build
+if [ "$CFG_SHARED" = "no" ]; then
+ echo
+ echo "WARNING: Using static linking will disable the use of dynamically"
+ echo "loaded plugins. Make sure to import all needed static plugins,"
+ echo "or compile needed modules into the library."
+ echo
+fi
+if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
+ echo
+ echo "NOTE: When linking against OpenSSL, you can override the default"
+ echo "library names through OPENSSL_LIBS."
+ echo "For example:"
+ echo " ./configure -openssl-linked OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto'"
+ echo
+fi
+if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
+ echo
+ echo "NOTE: Mac OS X frameworks implicitly build debug and release Qt libraries."
+ echo
+fi
+echo
+
+sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
+PROCS=1
+EXEC=""
+
+
+#-------------------------------------------------------------------------------
+# build makefiles based on the configuration
+#-------------------------------------------------------------------------------
+
+echo "Finding project files. Please wait..."
+"$outpath/bin/qmake" -prl -r "${relpath}/projects.pro"
+if [ -f "${relpath}/projects.pro" ]; then
+ mkfile="${outpath}/Makefile"
+ [ -f "$mkfile" ] && chmod +w "$mkfile"
+ QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/projects.pro" -o "$mkfile"
+fi
+
+# .projects -> projects to process
+# .projects.1 -> qt and moc
+# .projects.2 -> subdirs and libs
+# .projects.3 -> the rest
+rm -f .projects .projects.1 .projects.2 .projects.3
+
+QMAKE_PROJECTS=`find "$relpath/." -name '*.pro' -print | sed 's-/\./-/-'`
+if [ -z "$AWK" ]; then
+ for p in `echo $QMAKE_PROJECTS`; do
+ echo "$p" >> .projects
+ done
+else
+ cat >projects.awk <<EOF
+BEGIN {
+ files = 0
+ target_file = ""
+ input_file = ""
+
+ first = "./.projects.1.tmp"
+ second = "./.projects.2.tmp"
+ third = "./.projects.3.tmp"
+}
+
+FNR == 1 {
+ if ( input_file ) {
+ if ( ! target_file )
+ target_file = third
+ print input_file >target_file
+ }
+
+ matched_target = 0
+ template_lib = 0
+ input_file = FILENAME
+ target_file = ""
+}
+
+/^(TARGET.*=)/ {
+ if ( \$3 == "moc" || \$3 ~ /^Qt/ ) {
+ target_file = first
+ matched_target = 1
+ }
+}
+
+matched_target == 0 && /^(TEMPLATE.*=)/ {
+ if ( \$3 == "subdirs" )
+ target_file = second
+ else if ( \$3 == "lib" )
+ template_lib = 1
+ else
+ target_file = third
+}
+
+matched_target == 0 && template_lib == 1 && /^(CONFIG.*=)/ {
+ if ( \$0 ~ /plugin/ )
+ target_file = third
+ else
+ target_file = second
+}
+
+END {
+ if ( input_file ) {
+ if ( ! target_file )
+ target_file = third
+ print input_file >>target_file
+ }
+}
+
+EOF
+
+ rm -f .projects.all
+ for p in `echo $QMAKE_PROJECTS`; do
+ echo "$p" >> .projects.all
+ done
+
+ # if you get errors about the length of the command line to awk, change the -l arg
+ # to split below
+ split -l 100 .projects.all .projects.all.
+ for p in .projects.all.*; do
+ "$AWK" -f projects.awk `cat $p`
+ [ -f .projects.1.tmp ] && cat .projects.1.tmp >> .projects.1
+ [ -f .projects.2.tmp ] && cat .projects.2.tmp >> .projects.2
+ [ -f .projects.3.tmp ] && cat .projects.3.tmp >> .projects.3
+ rm -f .projects.1.tmp .projects.2.tmp .projects.3.tmp $p
+ done
+ rm -f .projects.all* projects.awk
+
+ [ -f .projects.1 ] && cat .projects.1 >>.projects
+ [ -f .projects.2 ] && cat .projects.2 >>.projects
+ rm -f .projects.1 .projects.2
+ if [ -f .projects.3 ] && [ "$OPT_FAST" = "no" ]; then
+ cat .projects.3 >>.projects
+ rm -f .projects.3
+ fi
+fi
+# don't sort Qt and MOC in with the other project files
+# also work around a segfaulting uniq(1)
+if [ -f .sorted.projects.2 ]; then
+ sort .sorted.projects.2 > .sorted.projects.2.new
+ mv -f .sorted.projects.2.new .sorted.projects.2
+ cat .sorted.projects.2 >> .sorted.projects.1
+fi
+[ -f .sorted.projects.1 ] && sort .sorted.projects.1 >> .sorted.projects
+rm -f .sorted.projects.2 .sorted.projects.1
+
+NORM_PROJECTS=0
+FAST_PROJECTS=0
+if [ -f .projects ]; then
+ uniq .projects >.tmp
+ mv -f .tmp .projects
+ NORM_PROJECTS=`cat .projects | wc -l | sed -e "s, ,,g"`
+fi
+if [ -f .projects.3 ]; then
+ uniq .projects.3 >.tmp
+ mv -f .tmp .projects.3
+ FAST_PROJECTS=`cat .projects.3 | wc -l | sed -e "s, ,,g"`
+fi
+echo " `expr $NORM_PROJECTS + $FAST_PROJECTS` projects found."
+echo
+
+PART_ROOTS=
+for part in $CFG_BUILD_PARTS; do
+ case "$part" in
+ tools) PART_ROOTS="$PART_ROOTS tools" ;;
+ libs) PART_ROOTS="$PART_ROOTS src" ;;
+ examples) PART_ROOTS="$PART_ROOTS examples demos" ;;
+ *) ;;
+ esac
+done
+
+if [ "$CFG_DEV" = "yes" ]; then
+ PART_ROOTS="$PART_ROOTS tests"
+fi
+
+echo "Creating makefiles. Please wait..."
+for file in .projects .projects.3; do
+ [ '!' -f "$file" ] && continue
+ for a in `cat $file`; do
+ IN_ROOT=no
+ for r in $PART_ROOTS; do
+ if echo "$a" | grep "^$r" >/dev/null 2>&1 || echo "$a" | grep "^$relpath/$r" >/dev/null 2>&1; then
+ IN_ROOT=yes
+ break
+ fi
+ done
+ [ "$IN_ROOT" = "no" ] && continue
+
+ case $a in
+ *winmain/winmain.pro) continue ;;
+ */qmake/qmake.pro) continue ;;
+ *tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*) SPEC=$QMAKESPEC ;;
+ *) SPEC=$XQMAKESPEC ;;
+ esac
+ dir=`dirname $a | sed -e "s;$sepath;.;g"`
+ test -d "$dir" || mkdir -p "$dir"
+ OUTDIR="$outpath/$dir"
+ if [ -f "${OUTDIR}/Makefile" ] && [ "$OPT_FAST" = "yes" ]; then
+ # fast configure - the makefile exists, skip it
+ # since the makefile exists, it was generated by qmake, which means we
+ # can skip it, since qmake has a rule to regenerate the makefile if the .pro
+ # file changes...
+ [ "$OPT_VERBOSE" = "yes" ] && echo " skipping $a"
+ continue;
+ fi
+ QMAKE_SPEC_ARGS="-spec $SPEC"
+ if echo '\c' | grep '\c' >/dev/null; then
+ echo -n " for $a"
+ else
+ echo " for $a\c"
+ fi
+
+ QMAKE="$outpath/bin/qmake"
+ QMAKE_ARGS="$QMAKE_SWITCHES $QMAKE_SPEC_ARGS"
+ if [ "$file" = ".projects.3" ]; then
+ if echo '\c' | grep '\c' >/dev/null; then
+ echo -n " (fast)"
+ else
+ echo " (fast)\c"
+ fi
+ echo
+
+ cat >"${OUTDIR}/Makefile" <<EOF
+# ${OUTDIR}/Makefile: generated by configure
+#
+# WARNING: This makefile will be replaced with a real makefile.
+# All changes made to this file will be lost.
+EOF
+ [ "$CFG_DEBUG_RELEASE" = "no" ] && echo "first_target: first" >>${OUTDIR}/Makefile
+
+ cat >>"${OUTDIR}/Makefile" <<EOF
+QMAKE = "$QMAKE"
+all clean install qmake first Makefile: FORCE
+ \$(QMAKE) $QMAKE_ARGS -o "$OUTDIR" "$a"
+ cd "$OUTDIR"
+ \$(MAKE) \$@
+
+FORCE:
+
+EOF
+ else
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " (`basename $SPEC`)"
+ echo "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
+ else
+ echo
+ fi
+
+ [ -f "${OUTDIR}/Makefile" ] && chmod +w "${OUTDIR}/Makefile"
+ QTDIR="$outpath" "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
+ fi
+ done
+done
+rm -f .projects .projects.3
+
+#-------------------------------------------------------------------------------
+# XShape is important, DnD in the Designer doens't work without it
+#-------------------------------------------------------------------------------
+if [ "$PLATFORM_X11" = "yes" ] && [ "$CFG_XSHAPE" = "no" ]; then
+ cat <<EOF
+
+ NOTICE: Qt will not be built with XShape support.
+
+ As a result, drag-and-drop in the Qt Designer will NOT
+ work. We recommend that you enable XShape support by passing
+ the -xshape switch to $0.
+EOF
+fi
+
+#-------------------------------------------------------------------------------
+# check for platforms that we don't yet know about
+#-------------------------------------------------------------------------------
+if [ "$CFG_ARCH" = "generic" ]; then
+cat <<EOF
+
+ NOTICE: Atomic operations are not yet supported for this
+ architecture.
+
+ Qt will use the 'generic' architecture instead, which uses a
+ single pthread_mutex_t to protect all atomic operations. This
+ implementation is the slow (but safe) fallback implementation
+ for architectures Qt does not yet support.
+EOF
+fi
+
+#-------------------------------------------------------------------------------
+# check if the user passed the -no-zlib option, which is no longer supported
+#-------------------------------------------------------------------------------
+if [ -n "$ZLIB_FORCED" ]; then
+ which_zlib="supplied"
+ if [ "$CFG_ZLIB" = "system" ]; then
+ which_zlib="system"
+ fi
+
+cat <<EOF
+
+ NOTICE: The -no-zlib option was supplied but is no longer
+ supported.
+
+ Qt now requires zlib support in all builds, so the -no-zlib
+ option was ignored. Qt will be built using the $which_zlib
+ zlib.
+EOF
+fi
+
+#-------------------------------------------------------------------------------
+# finally save the executed command to another script
+#-------------------------------------------------------------------------------
+if [ `basename $0` != "config.status" ]; then
+ CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
+
+ # add the system variables
+ for varname in $SYSTEM_VARIABLES; do
+ cmd=`echo \
+'if [ -n "\$'${varname}'" ]; then
+ CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
+fi'`
+ eval "$cmd"
+ done
+
+ echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
+
+ [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
+ echo "#!/bin/sh" > "$outpath/config.status"
+ echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
+ echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
+ echo "else" >> "$outpath/config.status"
+ echo " $CONFIG_STATUS" >> "$outpath/config.status"
+ echo "fi" >> "$outpath/config.status"
+ chmod +x "$outpath/config.status"
+fi
+
+if [ -n "$RPATH_MESSAGE" ]; then
+ echo
+ echo "$RPATH_MESSAGE"
+fi
+
+MAKE=`basename $MAKE`
+echo
+echo Qt is now configured for building. Just run \'$MAKE\'.
+if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
+ echo Once everything is built, Qt is installed.
+ echo You should not run \'$MAKE install\'.
+else
+ echo Once everything is built, you must run \'$MAKE install\'.
+ echo Qt will be installed into $QT_INSTALL_PREFIX
+fi
+echo
+echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
+echo
diff --git a/configure.exe b/configure.exe
new file mode 100644
index 0000000..54e8a60
--- /dev/null
+++ b/configure.exe
Binary files differ
diff --git a/demos/README b/demos/README
new file mode 100644
index 0000000..b161990
--- /dev/null
+++ b/demos/README
@@ -0,0 +1,39 @@
+These demonstrations are intended to highlight Qt's capabilities in different
+application areas, and provide examples that are more advanced than those in
+the examples directory.
+
+Beginners to Qt may wish to try out the Qt tutorial and some of the examples
+before examining the demonstrations in detail.
+
+
+The example launcher can be used to explore the different categories
+available. It provides an overview of each example, lets you view the
+documentation in Qt Assistant, and is able to launch examples.
+
+
+Finding the Qt Examples and Demos launcher
+==========================================
+
+On Windows:
+
+The launcher can be accessed via the Windows Start menu. Select the menu
+entry entitled "Qt Examples and Demos" entry in the submenu containing
+the Qt tools.
+
+On Mac OS X:
+
+For the binary distribution, the qtdemo executable is installed in the
+/Developer/Applications/Qt directory. For the source distribution, it is
+installed alongside the other Qt tools on the path specified when Qt is
+configured.
+
+On Unix/Linux:
+
+The qtdemo executable is installed alongside the other Qt tools on the path
+specified when Qt is configured.
+
+On all platforms:
+
+The source code for the launcher can be found in the demos/qtdemo directory
+in the Qt package. This example is built at the same time as the Qt libraries,
+tools, examples, and demonstrations.
diff --git a/demos/affine/affine.pro b/demos/affine/affine.pro
new file mode 100644
index 0000000..b928753
--- /dev/null
+++ b/demos/affine/affine.pro
@@ -0,0 +1,23 @@
+SOURCES += main.cpp xform.cpp
+HEADERS += xform.h
+
+contains(QT_CONFIG, opengl)|contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles2) {
+ DEFINES += QT_OPENGL_SUPPORT
+ QT += opengl
+}
+
+SHARED_FOLDER = ../shared
+
+include($$SHARED_FOLDER/shared.pri)
+
+RESOURCES += affine.qrc
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/affine
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html *.jpg
+sources.path = $$[QT_INSTALL_DEMOS]/affine
+INSTALLS += target sources
+
+wince*: {
+ DEPLOYMENT_PLUGIN += qjpeg
+}
diff --git a/demos/affine/affine.qrc b/demos/affine/affine.qrc
new file mode 100644
index 0000000..d8a7ae4
--- /dev/null
+++ b/demos/affine/affine.qrc
@@ -0,0 +1,7 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/res/affine">
+ <file>xform.cpp</file>
+ <file>xform.html</file>
+ <file>bg1.jpg</file>
+</qresource>
+</RCC>
diff --git a/demos/affine/bg1.jpg b/demos/affine/bg1.jpg
new file mode 100644
index 0000000..dfc7cee
--- /dev/null
+++ b/demos/affine/bg1.jpg
Binary files differ
diff --git a/demos/affine/main.cpp b/demos/affine/main.cpp
new file mode 100644
index 0000000..88cd864
--- /dev/null
+++ b/demos/affine/main.cpp
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "xform.h"
+
+#include <QApplication>
+
+int main(int argc, char **argv)
+{
+ Q_INIT_RESOURCE(affine);
+
+ QApplication app(argc, argv);
+
+ XFormWidget xformWidget(0);
+ QStyle *arthurStyle = new ArthurStyle();
+ xformWidget.setStyle(arthurStyle);
+
+ QList<QWidget *> widgets = qFindChildren<QWidget *>(&xformWidget);
+ foreach (QWidget *w, widgets)
+ w->setStyle(arthurStyle);
+
+ xformWidget.show();
+
+ return app.exec();
+}
diff --git a/demos/affine/xform.cpp b/demos/affine/xform.cpp
new file mode 100644
index 0000000..059e38e
--- /dev/null
+++ b/demos/affine/xform.cpp
@@ -0,0 +1,902 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "xform.h"
+#include "hoverpoints.h"
+
+#include <QLayout>
+#include <QPainter>
+#include <QPainterPath>
+
+const int alpha = 155;
+
+XFormView::XFormView(QWidget *parent)
+ : ArthurFrame(parent)
+{
+ setAttribute(Qt::WA_MouseTracking);
+ m_type = VectorType;
+ m_rotation = 0.0;
+ m_scale = 1.0;
+ m_shear = 0.0;
+
+ m_pixmap = QPixmap(":res/affine/bg1.jpg");
+ pts = new HoverPoints(this, HoverPoints::CircleShape);
+ pts->setConnectionType(HoverPoints::LineConnection);
+ pts->setEditable(false);
+ pts->setPointSize(QSize(15, 15));
+ pts->setShapeBrush(QBrush(QColor(151, 0, 0, alpha)));
+ pts->setShapePen(QPen(QColor(255, 100, 50, alpha)));
+ pts->setConnectionPen(QPen(QColor(151, 0, 0, 50)));
+ pts->setBoundingRect(QRectF(0, 0, 500, 500));
+ ctrlPoints << QPointF(250, 250) << QPointF(350, 250);
+ pts->setPoints(ctrlPoints);
+ connect(pts, SIGNAL(pointsChanged(const QPolygonF&)),
+ this, SLOT(updateCtrlPoints(const QPolygonF &)));
+ setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+}
+
+XFormView::XFormType XFormView::type() const
+{
+ return m_type;
+}
+
+QPixmap XFormView::pixmap() const
+{
+ return m_pixmap;
+}
+
+QString XFormView::text() const
+{
+ return m_text;
+}
+
+void XFormView::setText(const QString &t)
+{
+ m_text = t;
+ update();
+}
+
+void XFormView::setPixmap(const QPixmap &p)
+{
+ m_pixmap = p;
+ update();
+}
+
+void XFormView::setType(XFormType t)
+{
+ m_type = t;
+ update();
+}
+
+void XFormView::mousePressEvent(QMouseEvent *)
+{
+ setDescriptionEnabled(false);
+}
+
+void XFormView::resizeEvent(QResizeEvent *e)
+{
+ pts->setBoundingRect(rect());
+ ArthurFrame::resizeEvent(e);
+}
+
+void XFormView::paint(QPainter *p)
+{
+ p->save();
+ p->setRenderHint(QPainter::Antialiasing);
+ p->setRenderHint(QPainter::SmoothPixmapTransform);
+ switch (m_type) {
+ case VectorType:
+ drawVectorType(p);
+ break;
+ case PixmapType:
+ drawPixmapType(p);
+ break;
+ case TextType:
+ drawTextType(p);
+ break;
+ }
+ p->restore();
+}
+
+void XFormView::updateCtrlPoints(const QPolygonF &points)
+{
+ QPointF trans = points.at(0) - ctrlPoints.at(0);
+
+ if (qAbs(points.at(0).x() - points.at(1).x()) < 10
+ && qAbs(points.at(0).y() - points.at(1).y()) < 10)
+ pts->setPoints(ctrlPoints);
+ if (!trans.isNull()) {
+ ctrlPoints[0] = points.at(0);
+ ctrlPoints[1] += trans;
+ pts->setPoints(ctrlPoints);
+ }
+ ctrlPoints = points;
+
+ QLineF line(ctrlPoints.at(0), ctrlPoints.at(1));
+ m_rotation = line.angle(QLineF(0, 0, 1, 0));
+ if (line.dy() < 0)
+ m_rotation = 360 - m_rotation;
+
+ if (trans.isNull())
+ emit rotationChanged(int(m_rotation*10));
+}
+
+void XFormView::setVectorType()
+{
+ m_type = VectorType;
+ update();
+}
+
+void XFormView::setPixmapType()
+{
+ m_type = PixmapType;
+ update();
+}
+
+void XFormView::setTextType()
+{
+ m_type = TextType;
+ update();
+}
+
+void XFormView::setAnimation(bool animate)
+{
+ timer.stop();
+ if (animate)
+ timer.start(25, this);
+}
+
+void XFormView::changeRotation(int r)
+{
+ setRotation(qreal(r) / 10);
+}
+
+void XFormView::changeScale(int s)
+{
+ setScale(qreal(s) / 1000);
+}
+
+void XFormView::changeShear(int s)
+{
+ setShear(qreal(s) / 1000);
+}
+
+void XFormView::setShear(qreal s)
+{
+ m_shear = s;
+ update();
+}
+
+void XFormView::setScale(qreal s)
+{
+ m_scale = s;
+ update();
+}
+
+void XFormView::setRotation(qreal r)
+{
+ qreal old_rot = m_rotation;
+ m_rotation = r;
+
+ QPointF center(pts->points().at(0));
+ QMatrix m;
+ m.translate(center.x(), center.y());
+ m.rotate(m_rotation - old_rot);
+ m.translate(-center.x(), -center.y());
+ pts->setPoints(pts->points() * m);
+
+ update();
+}
+
+void XFormView::timerEvent(QTimerEvent *e)
+{
+ if (e->timerId() == timer.timerId()) {
+ QPointF center(pts->points().at(0));
+ QMatrix m;
+ m.translate(center.x(), center.y());
+ m.rotate(0.2);
+ m.translate(-center.x(), -center.y());
+ pts->setPoints(pts->points() * m);
+
+ setUpdatesEnabled(false);
+ static qreal scale_inc = 0.003;
+ static qreal shear_inc = -0.001;
+ emit scaleChanged(int((m_scale + scale_inc) * 1000));
+ emit shearChanged(int((m_shear + shear_inc) * 1000));
+ if (m_scale >= 4.0 || m_scale <= 0.1)
+ scale_inc = -scale_inc;
+ if (m_shear >= 1.0 || m_shear <= -1.0)
+ shear_inc = -shear_inc;
+ setUpdatesEnabled(true);
+
+ pts->firePointChange();
+ }
+}
+
+void XFormView::wheelEvent(QWheelEvent *e)
+{
+ m_scale += e->delta() / qreal(600);
+ m_scale = qMax(qreal(0.1), qMin(qreal(4), m_scale));
+ emit scaleChanged(int(m_scale*1000));
+}
+
+void XFormView::reset()
+{
+ emit rotationChanged(0);
+ emit scaleChanged(1000);
+ emit shearChanged(0);
+ ctrlPoints = QPolygonF();
+ ctrlPoints << QPointF(250, 250) << QPointF(350, 250);
+ pts->setPoints(ctrlPoints);
+ pts->firePointChange();
+}
+
+void XFormView::drawPixmapType(QPainter *painter)
+{
+ QPointF center(m_pixmap.width() / qreal(2), m_pixmap.height() / qreal(2));
+ painter->translate(ctrlPoints.at(0) - center);
+
+ painter->translate(center);
+ painter->rotate(m_rotation);
+ painter->scale(m_scale, m_scale);
+ painter->shear(0, m_shear);
+ painter->translate(-center);
+
+ painter->drawPixmap(QPointF(0, 0), m_pixmap);
+ painter->setPen(QPen(QColor(255, 0, 0, alpha), 0.25, Qt::SolidLine, Qt::FlatCap, Qt::BevelJoin));
+ painter->setBrush(Qt::NoBrush);
+ painter->drawRect(QRectF(0, 0, m_pixmap.width(), m_pixmap.height()).adjusted(-2, -2, 2, 2));
+}
+
+void XFormView::drawTextType(QPainter *painter)
+{
+ QPainterPath path;
+ QFont f("times new roman,utopia");
+ f.setStyleStrategy(QFont::ForceOutline);
+ f.setPointSize(72);
+ f.setStyleHint(QFont::Times);
+ path.addText(0, 0, f, m_text);
+
+ QFontMetrics fm(f);
+ QRectF br(fm.boundingRect(m_text));
+ QPointF center(br.center());
+ painter->translate(ctrlPoints.at(0) - center);
+
+ painter->translate(center);
+ painter->rotate(m_rotation);
+ painter->scale(m_scale, m_scale);
+ painter->shear(0, m_shear);
+ painter->translate(-center);
+
+ painter->fillPath(path, Qt::black);
+
+ painter->setPen(QPen(QColor(255, 0, 0, alpha), 0.25, Qt::SolidLine, Qt::FlatCap, Qt::BevelJoin));
+ painter->setBrush(Qt::NoBrush);
+ painter->drawRect(br.adjusted(-1, -1, 1, 1));
+}
+
+void XFormView::drawVectorType(QPainter *painter)
+{
+ QPainterPath path;
+ painter->translate(ctrlPoints.at(0) - QPointF(250,250));
+
+ painter->scale(0.77, 0.77);
+ painter->translate(98.9154 + 30 , -217.691 - 20);
+
+ QRect br(-55, 275, 500, 590);
+ QPoint center = br.center();
+ painter->translate(center.x(), center.y());
+ painter->rotate(m_rotation);
+ painter->scale(m_scale, m_scale);
+ painter->shear(0, m_shear);
+ painter->translate(-center.x(), -center.y());
+
+ painter->setPen(Qt::NoPen);
+ path.moveTo(120, 470);
+ path.lineTo(60+245, 470);
+ path.lineTo(60+245, 470+350);
+ path.lineTo(60, 470+350);
+ path.lineTo(60, 470+80);
+
+ painter->setBrush(Qt::white);
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor( 193, 193, 191, 255));
+ path.moveTo(329.336, 727.552);
+ path.cubicTo(QPointF(315.224, 726.328), QPointF(304.136, 715.816), QPointF(303.128, 694.936));
+ path.cubicTo(QPointF(306.368, 639.496), QPointF(309.608, 582.112), QPointF(271.232, 545.104));
+ path.cubicTo(QPointF(265.256, 499.024), QPointF(244.016, 482.104), QPointF(234.008, 452.512));
+ path.lineTo(218.24, 441.208);
+ path.lineTo(237.104, 411.688);
+ path.lineTo(245.168, 411.904);
+ path.lineTo(323.936, 571.168);
+ path.lineTo(340.424, 651.448);
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(136.232, 439.696);
+ path.cubicTo(QPointF(133.856, 455.248), QPointF(132.56, 470.512), QPointF(134.792, 485.272));
+ path.cubicTo(QPointF(118.376, 507.592), QPointF(105.92, 530.128), QPointF(104.48, 553.312));
+ path.cubicTo(QPointF(92.024, 586.504), QPointF(62.432, 614.584), QPointF(67.544, 680.104));
+ path.cubicTo(QPointF(84.176, 697.456), QPointF(107.432, 713.584), QPointF(127.376, 730.36));
+ path.cubicTo(QPointF(152.432, 751.312), QPointF(137.528, 778.96), QPointF(102.248, 772.408));
+ path.cubicTo(QPointF(94.4, 763.768), QPointF(76.616, 709.624), QPointF(42.92, 676.288));
+ path.lineTo(49.544, 632.584);
+ path.lineTo(81.368, 547.408);
+ path.lineTo(120.968, 484.048);
+ path.lineTo(125.36, 456.688);
+ path.lineTo(119.816, 386.776);
+ path.lineTo(124.424, 361.216);
+ path.lineTo(136.232, 439.696);
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(115.64, 341.416);
+ path.cubicTo(QPointF(116.576, 336.376), QPointF(117.8, 331.624), QPointF(119.312, 327.16));
+ path.lineTo(121.688, 342.784);
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(120.968, 500.464);
+ path.cubicTo(QPointF(108.368, 523.792), QPointF(103.976, 546.256), QPointF(132.92, 550.216));
+ path.cubicTo(QPointF(117.008, 553.888), QPointF(97.208, 568.648), QPointF(77.192, 593.488));
+ path.lineTo(77.624, 543.016);
+ path.lineTo(101.456, 503.272);
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(-33.256, 818.488);
+ path.cubicTo(QPointF(10.52, 838.144), QPointF(41.408, 837.064), QPointF(69.272, 850.96));
+ path.cubicTo(QPointF(91.304, 862.552), QPointF(113.552, 861.184), QPointF(126.944, 847.144));
+ path.cubicTo(QPointF(138.32, 832.456), QPointF(146.744, 831.736), QPointF(163.52, 830.224));
+ path.cubicTo(QPointF(190.952, 828.568), QPointF(217.736, 828.28), QPointF(241.928, 830.8));
+ path.lineTo(269.576, 833.032);
+ path.cubicTo(QPointF(269.072, 864.064), QPointF(328.04, 867.88), QPointF(345.392, 844.336));
+ path.cubicTo(QPointF(366.344, 819.424), QPointF(395.144, 808.264), QPointF(419.84, 790.192));
+ path.lineTo(289.304, 725.536);
+ path.cubicTo(QPointF(255.824, 806.464), QPointF(131.048, 827.632), QPointF(113.768, 763.264));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(286.424, 711.568);
+ path.cubicTo(QPointF(273.824, 711.496), QPointF(260.936, 715.6), QPointF(261.944, 732.16));
+ path.lineTo(266.192, 776.44);
+ path.lineTo(304.424, 756.64);
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(0, 0, 0, 255));
+ path.moveTo(-37.36, 821.224);
+ path.cubicTo(QPointF(7.136, 840.88), QPointF(38.6, 839.728), QPointF(66.968, 853.696));
+ path.cubicTo(QPointF(89.36, 865.216), QPointF(111.968, 863.92), QPointF(125.648, 849.808));
+ path.cubicTo(QPointF(137.24, 835.192), QPointF(145.808, 834.472), QPointF(162.872, 832.96));
+ path.cubicTo(QPointF(190.736, 831.232), QPointF(218.024, 831.016), QPointF(242.648, 833.464));
+ path.lineTo(270.728, 835.768);
+ path.cubicTo(QPointF(270.224, 866.8), QPointF(330.272, 870.544), QPointF(347.912, 847));
+ path.cubicTo(QPointF(369.224, 822.088), QPointF(398.528, 811), QPointF(423.656, 792.856));
+ path.lineTo(290.816, 728.272);
+ path.cubicTo(QPointF(256.76, 809.128), QPointF(129.824, 830.296), QPointF(112.256, 766));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(183, 114, 0, 255));
+ path.moveTo(382.328, 691.984);
+ path.cubicTo(QPointF(403.64, 698.968), QPointF(389.888, 720.28), QPointF(400.76, 732.52));
+ path.cubicTo(QPointF(405.44, 742.888), QPointF(415.304, 752.032), QPointF(431.792, 760.528));
+ path.cubicTo(QPointF(459.368, 774.424), QPointF(426.248, 799.336), QPointF(392.768, 812.08));
+ path.cubicTo(QPointF(351.944, 825.616), QPointF(344.024, 862.912), QPointF(299.312, 851.896));
+ path.cubicTo(QPointF(283.112, 846.496), QPointF(278.36, 831.808), QPointF(278.864, 809.128));
+ path.cubicTo(QPointF(284.264, 762.76), QPointF(277.784, 730.432), QPointF(278.792, 698.824));
+ path.cubicTo(QPointF(278.72, 686.152), QPointF(283.544, 684.64), QPointF(307.232, 687.952));
+ path.cubicTo(QPointF(310.04, 726.328), QPointF(352.376, 727.336), QPointF(382.328, 691.984));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(242, 183, 0, 255));
+ path.moveTo(339.632, 826.624);
+ path.cubicTo(QPointF(371.6, 814.312), QPointF(403.856, 798.112), QPointF(429.848, 782.128));
+ path.cubicTo(QPointF(437.84, 777.448), QPointF(438.92, 765.928), QPointF(427.688, 762.328));
+ path.cubicTo(QPointF(403.352, 748.504), QPointF(390.104, 731.224), QPointF(392.912, 708.76));
+ path.cubicTo(QPointF(393.344, 700.912), QPointF(383.696, 692.56), QPointF(381.104, 700.048));
+ path.cubicTo(QPointF(359.864, 771.472), QPointF(291.32, 767.656), QPointF(300.752, 696.952));
+ path.cubicTo(QPointF(301.256, 694.864), QPointF(301.76, 692.776), QPointF(302.264, 690.76));
+ path.cubicTo(QPointF(289.952, 688.24), QPointF(285.2, 690.976), QPointF(285.776, 700.408));
+ path.lineTo(295.28, 806.608);
+ path.cubicTo(QPointF(297.656, 830.8), QPointF(317.312, 836.128), QPointF(339.632, 826.624));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(0, 0, 0, 255));
+ path.moveTo(354.464, 537.544);
+ path.cubicTo(QPointF(379.16, 569.8), QPointF(404.432, 651.088), QPointF(384.416, 691.552));
+ path.cubicTo(QPointF(360.944, 737.776), QPointF(307.808, 743.248), QPointF(305.504, 695.8));
+ path.cubicTo(QPointF(308.816, 639.64), QPointF(311.984, 581.536), QPointF(273.68, 544.096));
+ path.cubicTo(QPointF(267.704, 497.368), QPointF(246.392, 480.232), QPointF(236.384, 450.28));
+ path.lineTo(203.12, 426.088);
+ path.lineTo(133.568, 435.088);
+ path.cubicTo(QPointF(130.76, 452.152), QPointF(129.104, 468.784), QPointF(131.552, 484.912));
+ path.cubicTo(QPointF(115.064, 507.376), QPointF(102.608, 530.056), QPointF(101.168, 553.312));
+ path.cubicTo(QPointF(88.712, 586.648), QPointF(59.12, 614.944), QPointF(64.232, 680.752));
+ path.cubicTo(QPointF(80.864, 698.248), QPointF(104.12, 714.448), QPointF(124.064, 731.296));
+ path.cubicTo(QPointF(149.12, 752.392), QPointF(135.512, 776.296), QPointF(100.232, 769.672));
+ path.cubicTo(QPointF(78.848, 746.056), QPointF(56.744, 722.872), QPointF(35.288, 699.328));
+ path.cubicTo(QPointF(12.392, 683.056), QPointF(3.896, 662.176), QPointF(27.368, 630.496));
+ path.cubicTo(QPointF(43.424, 609.04), QPointF(47.96, 562.456), QPointF(62, 543.664));
+ path.cubicTo(QPointF(74.312, 525.16), QPointF(92.24, 508.6), QPointF(105.272, 490.096));
+ path.cubicTo(QPointF(112.184, 477.928), QPointF(114.344, 468.568), QPointF(113.264, 454.456));
+ path.lineTo(110.312, 369.136);
+ path.cubicTo(QPointF(108.368, 307.216), QPointF(142.424, 274.24), QPointF(189.8, 275.248));
+ path.cubicTo(QPointF(243.512, 275.752), QPointF(287.576, 312.472), QPointF(288.152, 378.28));
+ path.cubicTo(QPointF(292.688, 410.32), QPointF(283.256, 428.68), QPointF(308.672, 474.472));
+ path.cubicTo(QPointF(334.52, 522.712), QPointF(338.552, 520.12), QPointF(354.464, 537.544));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(261.296, 503.632);
+ path.lineTo(263.528, 512.2);
+ path.cubicTo(QPointF(257.696, 501.688), QPointF(250.712, 483.616), QPointF(241.928, 475.696));
+ path.cubicTo(QPointF(239.264, 473.536), QPointF(235.808, 473.608), QPointF(233.72, 475.624));
+ path.cubicTo(QPointF(222.056, 486.928), QPointF(193.112, 510.112), QPointF(169.928, 507.088));
+ path.cubicTo(QPointF(152.072, 505.288), QPointF(134.648, 493.264), QPointF(130.832, 480.232));
+ path.cubicTo(QPointF(128.816, 470.872), QPointF(129.752, 463.168), QPointF(130.976, 455.32));
+ path.lineTo(240.704, 453.52);
+ path.cubicTo(QPointF(238.472, 463.168), QPointF(253.088, 487), QPointF(261.296, 503.632));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(143.144, 363.232);
+ path.cubicTo(QPointF(154.088, 363.232), QPointF(163.88, 376.84), QPointF(163.808, 395.632));
+ path.cubicTo(QPointF(163.736, 408.232), QPointF(155.528, 411.472), QPointF(149.336, 417.016));
+ path.cubicTo(QPointF(146.6, 419.536), QPointF(145.952, 433.144), QPointF(142.568, 433.144));
+ path.cubicTo(QPointF(131.696, 433.144), QPointF(123.488, 413.776), QPointF(123.488, 395.632));
+ path.cubicTo(QPointF(123.488, 377.56), QPointF(132.272, 363.232), QPointF(143.144, 363.232));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(255, 255, 255, 255));
+ path.moveTo(144.368, 375.04);
+ path.cubicTo(QPointF(154.088, 375.04), QPointF(160.856, 379.936), QPointF(161.648, 391.312));
+ path.cubicTo(QPointF(162.224, 399.16), QPointF(160.136, 411.76), QPointF(154.664, 414.424));
+ path.cubicTo(QPointF(152.144, 415.648), QPointF(143.432, 426.664), QPointF(140.408, 426.52));
+ path.cubicTo(QPointF(128.096, 425.944), QPointF(125, 402.112), QPointF(125.936, 390.736));
+ path.cubicTo(QPointF(126.8, 379.36), QPointF(134.72, 375.04), QPointF(144.368, 375.04));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(0, 0, 0, 255));
+ path.moveTo(141.848, 382.672);
+ path.cubicTo(QPointF(148.544, 382.096), QPointF(154.736, 389.728), QPointF(155.6, 399.664));
+ path.cubicTo(QPointF(156.464, 409.6), QPointF(151.64, 418.24), QPointF(144.944, 418.816));
+ path.cubicTo(QPointF(138.248, 419.392), QPointF(132.056, 411.76), QPointF(131.192, 401.752));
+ path.cubicTo(QPointF(130.328, 391.816), QPointF(135.152, 383.248), QPointF(141.848, 382.672));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(151.064, 397.288);
+ path.cubicTo(QPointF(151.424, 399.088), QPointF(149.408, 400.024), QPointF(148.832, 398.224));
+ path.cubicTo(QPointF(148.256, 395.992), QPointF(146.888, 393.328), QPointF(145.088, 391.168));
+ path.cubicTo(QPointF(143.936, 389.872), QPointF(145.088, 388.432), QPointF(146.528, 389.44));
+ path.cubicTo(QPointF(149.048, 391.528), QPointF(150.488, 394.12), QPointF(151.064, 397.288));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(216.944, 360.712);
+ path.cubicTo(QPointF(232.712, 360.712), QPointF(245.6, 377.416), QPointF(245.6, 397.792));
+ path.cubicTo(QPointF(245.6, 418.24), QPointF(232.712, 434.872), QPointF(216.944, 434.872));
+ path.cubicTo(QPointF(201.176, 434.872), QPointF(188.432, 418.24), QPointF(188.432, 397.792));
+ path.cubicTo(QPointF(188.432, 377.416), QPointF(201.176, 360.712), QPointF(216.944, 360.712));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(255, 255, 255, 255));
+ path.moveTo(224.792, 374.968);
+ path.cubicTo(QPointF(235.664, 378.856), QPointF(241.928, 387.424), QPointF(242.72, 396.568));
+ path.cubicTo(QPointF(243.656, 407.08), QPointF(239.408, 418.96), QPointF(230.264, 425.944));
+ path.cubicTo(QPointF(227.672, 427.888), QPointF(197.72, 416.08), QPointF(195.992, 411.616));
+ path.cubicTo(QPointF(193.4, 405.208), QPointF(191.816, 392.896), QPointF(193.76, 385.624));
+ path.cubicTo(QPointF(194.552, 382.744), QPointF(197.216, 378.568), QPointF(201.176, 376.336));
+ path.cubicTo(QPointF(207.44, 372.808), QPointF(216.656, 372.088), QPointF(224.792, 374.968));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(0, 0, 0, 255));
+ path.moveTo(216.872, 380.944);
+ path.cubicTo(QPointF(225.584, 380.944), QPointF(232.712, 389.296), QPointF(232.712, 399.448));
+ path.cubicTo(QPointF(232.712, 409.672), QPointF(225.584, 418.024), QPointF(216.872, 418.024));
+ path.cubicTo(QPointF(208.16, 418.024), QPointF(201.032, 409.672), QPointF(201.032, 399.448));
+ path.cubicTo(QPointF(201.032, 389.296), QPointF(208.16, 380.944), QPointF(216.872, 380.944));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(227.096, 392.392);
+ path.cubicTo(QPointF(228.104, 394.048), QPointF(226.448, 395.776), QPointF(225.224, 394.12));
+ path.cubicTo(QPointF(223.784, 392.104), QPointF(221.408, 389.944), QPointF(218.888, 388.432));
+ path.cubicTo(QPointF(217.232, 387.568), QPointF(217.808, 385.624), QPointF(219.68, 386.2));
+ path.cubicTo(QPointF(222.92, 387.28), QPointF(225.368, 389.368), QPointF(227.096, 392.392));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(183, 114, 0, 255));
+ path.moveTo(164.96, 404.488);
+ path.cubicTo(QPointF(172.376, 402.328), QPointF(184.112, 403.048), QPointF(192.248, 404.632));
+ path.cubicTo(QPointF(200.384, 406.792), QPointF(222.056, 418.24), QPointF(245.024, 430.696));
+ path.cubicTo(QPointF(247.976, 432.208), QPointF(248.84, 437.104), QPointF(245.024, 438.688));
+ path.cubicTo(QPointF(239.12, 439.12), QPointF(249.272, 453.664), QPointF(238.904, 458.848));
+ path.cubicTo(QPointF(223.352, 462.88), QPointF(198.44, 485.992), QPointF(186.128, 487.864));
+ path.cubicTo(QPointF(179.288, 489.376), QPointF(172.232, 489.592), QPointF(164.6, 487.864));
+ path.cubicTo(QPointF(140.552, 482.968), QPointF(134.216, 455.608), QPointF(122.912, 450.064));
+ path.cubicTo(QPointF(119.816, 446.824), QPointF(121.4, 441.208), QPointF(122.408, 440.056));
+ path.cubicTo(QPointF(123.632, 434.224), QPointF(149.696, 406.216), QPointF(164.96, 404.488));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(242, 183, 0, 255));
+ path.moveTo(185.408, 405.856);
+ path.cubicTo(QPointF(198.44, 407.296), QPointF(226.088, 423.928), QPointF(239.408, 430.624));
+ path.cubicTo(QPointF(242.72, 432.424), QPointF(242.504, 437.824), QPointF(239.552, 438.688));
+ path.cubicTo(QPointF(236.384, 440.488), QPointF(235.448, 438.256), QPointF(232.928, 437.896));
+ path.cubicTo(QPointF(228.896, 435.736), QPointF(222.272, 440.92), QPointF(217.016, 444.88));
+ path.cubicTo(QPointF(186.704, 467.776), QPointF(180.656, 465.256), QPointF(156.176, 462.664));
+ path.cubicTo(QPointF(147.68, 460.576), QPointF(142.136, 457.984), QPointF(139.688, 455.968));
+ path.cubicTo(QPointF(141.488, 445.888), QPointF(160.496, 407.656), QPointF(166.76, 406.792));
+ path.cubicTo(QPointF(168.344, 404.704), QPointF(179.936, 404.632), QPointF(185.408, 405.856));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(183, 114, 0, 255));
+ path.moveTo(190.664, 412.048);
+ path.lineTo(193.76, 413.416);
+ path.cubicTo(QPointF(196.064, 414.712), QPointF(193.256, 418.168), QPointF(190.736, 417.088));
+ path.lineTo(186.2, 415.504);
+ path.cubicTo(QPointF(183.536, 413.272), QPointF(186.704, 410.104), QPointF(190.664, 412.048));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(268.568, 452.368);
+ path.cubicTo(QPointF(273.032, 454.384), QPointF(279.224, 457.192), QPointF(282.536, 460.144));
+ path.cubicTo(QPointF(285.488, 464.104), QPointF(286.784, 468.064), QPointF(286.424, 472.024));
+ path.cubicTo(QPointF(285.776, 474.544), QPointF(284.12, 476.344), QPointF(281.24, 477.424));
+ path.cubicTo(QPointF(277.856, 478.216), QPointF(273.68, 477.424), QPointF(271.376, 474.112));
+ path.cubicTo(QPointF(269.864, 471.448), QPointF(265.256, 462.16), QPointF(263.96, 460.576));
+ path.cubicTo(QPointF(262.232, 457.12), QPointF(261.944, 454.456), QPointF(262.88, 452.368));
+ path.cubicTo(QPointF(264.032, 451.288), QPointF(266.048, 451), QPointF(268.568, 452.368));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(255, 255, 255, 255));
+ path.moveTo(273.752, 461.584);
+ path.cubicTo(QPointF(275.48, 462.376), QPointF(277.928, 463.456), QPointF(279.224, 464.68));
+ path.cubicTo(QPointF(280.376, 466.264), QPointF(280.88, 467.776), QPointF(280.736, 469.36));
+ path.cubicTo(QPointF(280.52, 470.296), QPointF(279.8, 471.016), QPointF(278.72, 471.448));
+ path.cubicTo(QPointF(277.352, 471.808), QPointF(275.768, 471.448), QPointF(274.832, 470.152));
+ path.cubicTo(QPointF(274.256, 469.144), QPointF(272.456, 465.472), QPointF(271.952, 464.824));
+ path.cubicTo(QPointF(271.232, 463.456), QPointF(271.088, 462.448), QPointF(271.448, 461.584));
+ path.cubicTo(QPointF(271.952, 461.152), QPointF(272.744, 461.08), QPointF(273.752, 461.584));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(238.616, 358.552);
+ path.cubicTo(QPointF(239.048, 359.2), QPointF(238.976, 359.776), QPointF(238.4, 360.28));
+ path.cubicTo(QPointF(237.896, 360.784), QPointF(237.176, 360.712), QPointF(236.24, 360.208));
+ path.lineTo(231.632, 356.248);
+ path.cubicTo(QPointF(231.056, 355.744), QPointF(230.912, 354.952), QPointF(231.272, 354.088));
+ path.cubicTo(QPointF(232.28, 353.44), QPointF(233.144, 353.44), QPointF(233.936, 354.088));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(235.592, 305.992);
+ path.cubicTo(QPointF(239.624, 308.224), QPointF(240.848, 313.912), QPointF(238.184, 318.592));
+ path.cubicTo(QPointF(235.592, 323.2), QPointF(230.12, 325.144), QPointF(226.016, 322.84));
+ path.cubicTo(QPointF(221.984, 320.536), QPointF(220.76, 314.92), QPointF(223.424, 310.24));
+ path.cubicTo(QPointF(226.016, 305.56), QPointF(231.488, 303.688), QPointF(235.592, 305.992));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(374.912, 680.536);
+ path.cubicTo(QPointF(378.296, 683.128), QPointF(373.256, 687.376), QPointF(371.024, 686.296));
+ path.cubicTo(QPointF(369.152, 685.648), QPointF(367.784, 683.488), QPointF(366.92, 682.408));
+ path.cubicTo(QPointF(366.128, 681.184), QPointF(366.2, 679.168), QPointF(366.92, 678.448));
+ path.cubicTo(QPointF(367.712, 677.44), QPointF(369.728, 677.656), QPointF(371.024, 678.52));
+ path.cubicTo(QPointF(372.32, 679.168), QPointF(373.616, 679.888), QPointF(374.912, 680.536));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(297.44, 551.512);
+ path.cubicTo(QPointF(338.984, 572.896), QPointF(350, 611.56), QPointF(332.072, 664.192));
+ path.cubicTo(QPointF(330.992, 666.64), QPointF(334.16, 668.368), QPointF(335.24, 666.064));
+ path.cubicTo(QPointF(354.824, 610.336), QPointF(341.432, 571.312), QPointF(299.024, 548.56));
+ path.cubicTo(QPointF(296.864, 547.552), QPointF(295.28, 550.432), QPointF(297.44, 551.512));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(72.008, 569.512);
+ path.cubicTo(QPointF(38.312, 627.256), QPointF(38.096, 662.68), QPointF(62.504, 681.328));
+ path.cubicTo(QPointF(63.728, 682.264), QPointF(64.448, 680.032), QPointF(63.296, 679.168));
+ path.cubicTo(QPointF(36.296, 655.48), QPointF(48.896, 615.52), QPointF(74.168, 570.88));
+ path.cubicTo(QPointF(74.888, 569.584), QPointF(72.512, 568.432), QPointF(72.008, 569.512));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(289.376, 586.864);
+ path.cubicTo(QPointF(289.232, 589.168), QPointF(288.368, 589.528), QPointF(286.424, 587.368));
+ path.cubicTo(QPointF(279.8, 575.848), QPointF(235.088, 551.44), QPointF(213.344, 548.704));
+ path.cubicTo(QPointF(209.24, 547.264), QPointF(209.456, 545.392), QPointF(213.488, 544.816));
+ path.cubicTo(QPointF(229.184, 544.816), QPointF(241.28, 537.904), QPointF(254.96, 537.904));
+ path.cubicTo(QPointF(258.704, 538.048), QPointF(262.304, 539.488), QPointF(264.392, 541.648));
+ path.cubicTo(QPointF(269.504, 544.96), QPointF(288.08, 570.592), QPointF(289.376, 586.864));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(180.152, 546.832);
+ path.cubicTo(QPointF(180.872, 550.792), QPointF(163.808, 545.68), QPointF(164.744, 556.696));
+ path.cubicTo(QPointF(165.032, 559.72), QPointF(160.496, 561.376), QPointF(160.64, 556.696));
+ path.cubicTo(QPointF(160.64, 548.272), QPointF(161.072, 548.416), QPointF(152.72, 546.832));
+ path.cubicTo(QPointF(151.208, 546.76), QPointF(151.352, 544.528), QPointF(152.72, 544.816));
+ path.lineTo(152.72, 544.816);
+ path.cubicTo(QPointF(158.696, 546.472), QPointF(166.76, 542.872), QPointF(166.4, 538.84));
+ path.cubicTo(QPointF(166.256, 537.472), QPointF(168.56, 537.688), QPointF(168.488, 538.84));
+ path.cubicTo(QPointF(167.984, 545.248), QPointF(181.664, 542.152), QPointF(180.152, 546.832));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(193, 193, 191, 255));
+ path.moveTo(151.568, 705.376);
+ path.cubicTo(QPointF(151.64, 708.328), QPointF(148.76, 707.68), QPointF(148.544, 705.592));
+ path.cubicTo(QPointF(140.192, 680.536), QPointF(143.72, 618.832), QPointF(151.856, 598.96));
+ path.cubicTo(QPointF(152.432, 596.08), QPointF(156.248, 596.944), QPointF(155.744, 598.96));
+ path.cubicTo(QPointF(147.104, 635.464), QPointF(147.248, 673.048), QPointF(151.568, 705.376));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(183, 114, 0, 255));
+ path.moveTo(51.704, 684.424);
+ path.cubicTo(QPointF(75.68, 707.824), QPointF(91.376, 743.248), QPointF(114.632, 775.288));
+ path.cubicTo(QPointF(148.472, 816.04), QPointF(121.472, 858.304), QPointF(66.464, 845.56));
+ path.cubicTo(QPointF(38.888, 835.192), QPointF(-0.784, 836.344), QPointF(-32.68, 825.832));
+ path.cubicTo(QPointF(-55.072, 820.36), QPointF(-55.864, 809.272), QPointF(-44.416, 787.6));
+ path.cubicTo(QPointF(-40.384, 773.776), QPointF(-40.024, 751.312), QPointF(-43.768, 732.592));
+ path.cubicTo(QPointF(-45.784, 718.408), QPointF(-39.232, 710.488), QPointF(-24.112, 708.832));
+ path.lineTo(-24.112, 708.832);
+ path.cubicTo(QPointF(-11.296, 708.688), QPointF(6.56, 713.872), QPointF(16.28, 686.44));
+ path.cubicTo(QPointF(23.552, 673.336), QPointF(40.976, 672.976), QPointF(51.704, 684.424));
+ path.closeSubpath();
+ painter->drawPath(path);
+ path = QPainterPath();
+
+ painter->setBrush(QColor(242, 183, 0, 255));
+ path.moveTo(24.632, 699.04);
+ path.cubicTo(QPointF(23.84, 680.968), QPointF(39.32, 677.296), QPointF(49.688, 688.312));
+ path.cubicTo(QPointF(68.192, 710.992), QPointF(85.112, 736.048), QPointF(100.376, 764.992));
+ path.cubicTo(QPointF(124.712, 804.16), QPointF(104.624, 842.68), QPointF(67.904, 828.064));
+ path.cubicTo(QPointF(49.688, 817.84), QPointF(6.128, 813.304), QPointF(-17.344, 809.128));
+ path.cubicTo(QPointF(-33.04, 807.832), QPointF(-35.128, 797.608), QPointF(-29.152, 791.848));
+ path.cubicTo(QPointF(-20.944, 782.416), QPointF(-20.08, 759.808), QPointF(-27.856, 740.512));
+ path.cubicTo(QPointF(-35.56, 728.56), QPointF(-21.088, 715.384), QPointF(-9.712, 720.856));
+ path.cubicTo(QPointF(0.8, 727.048), QPointF(25.64, 713.08), QPointF(24.632, 699.04));
+ path.closeSubpath();
+ painter->drawPath(path);
+
+ painter->setPen(QPen(QColor(255, 0, 0, alpha), 0.25, Qt::SolidLine, Qt::FlatCap, Qt::BevelJoin));
+ painter->setBrush(Qt::NoBrush);
+ painter->drawRect(br.adjusted(-1, -1, 1, 1));
+}
+
+
+XFormWidget::XFormWidget(QWidget *parent)
+ : QWidget(parent), textEditor(new QLineEdit)
+{
+ setWindowTitle(tr("Affine Transformations"));
+
+ view = new XFormView(this);
+ view->setMinimumSize(200, 200);
+
+ QGroupBox *mainGroup = new QGroupBox(this);
+ mainGroup->setFixedWidth(180);
+ mainGroup->setTitle(tr("Affine Transformations"));
+
+ QGroupBox *rotateGroup = new QGroupBox(mainGroup);
+ rotateGroup->setTitle(tr("Rotate"));
+ QSlider *rotateSlider = new QSlider(Qt::Horizontal, rotateGroup);
+ rotateSlider->setRange(0, 3600);
+ rotateSlider->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+
+ QGroupBox *scaleGroup = new QGroupBox(mainGroup);
+ scaleGroup->setTitle(tr("Scale"));
+ QSlider *scaleSlider = new QSlider(Qt::Horizontal, scaleGroup);
+ scaleSlider->setRange(1, 4000);
+ scaleSlider->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+
+ QGroupBox *shearGroup = new QGroupBox(mainGroup);
+ shearGroup->setTitle(tr("Shear"));
+ QSlider *shearSlider = new QSlider(Qt::Horizontal, shearGroup);
+ shearSlider->setRange(-990, 990);
+ shearSlider->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+
+ QGroupBox *typeGroup = new QGroupBox(mainGroup);
+ typeGroup->setTitle(tr("Type"));
+ QRadioButton *vectorType = new QRadioButton(typeGroup);
+ QRadioButton *pixmapType = new QRadioButton(typeGroup);
+ QRadioButton *textType= new QRadioButton(typeGroup);
+ vectorType->setText(tr("Vector Image"));
+ pixmapType->setText(tr("Pixmap"));
+ textType->setText(tr("Text"));
+
+ QPushButton *resetButton = new QPushButton(mainGroup);
+ resetButton->setText(tr("Reset Transform"));
+
+ QPushButton *animateButton = new QPushButton(mainGroup);
+ animateButton->setText(tr("Animate"));
+ animateButton->setCheckable(true);
+
+ QPushButton *showSourceButton = new QPushButton(mainGroup);
+ showSourceButton->setText(tr("Show Source"));
+#ifdef QT_OPENGL_SUPPORT
+ QPushButton *enableOpenGLButton = new QPushButton(mainGroup);
+ enableOpenGLButton->setText(tr("Use OpenGL"));
+ enableOpenGLButton->setCheckable(true);
+ enableOpenGLButton->setChecked(view->usesOpenGL());
+ if (!QGLFormat::hasOpenGL())
+ enableOpenGLButton->hide();
+#endif
+ QPushButton *whatsThisButton = new QPushButton(mainGroup);
+ whatsThisButton->setText(tr("What's This?"));
+ whatsThisButton->setCheckable(true);
+
+ QHBoxLayout *viewLayout = new QHBoxLayout(this);
+ viewLayout->addWidget(view);
+ viewLayout->addWidget(mainGroup);
+
+ QVBoxLayout *rotateGroupLayout = new QVBoxLayout(rotateGroup);
+ rotateGroupLayout->addWidget(rotateSlider);
+
+ QVBoxLayout *scaleGroupLayout = new QVBoxLayout(scaleGroup);
+ scaleGroupLayout->addWidget(scaleSlider);
+
+ QVBoxLayout *shearGroupLayout = new QVBoxLayout(shearGroup);
+ shearGroupLayout->addWidget(shearSlider);
+
+ QVBoxLayout *typeGroupLayout = new QVBoxLayout(typeGroup);
+ typeGroupLayout->addWidget(vectorType);
+ typeGroupLayout->addWidget(pixmapType);
+ typeGroupLayout->addWidget(textType);
+ typeGroupLayout->addSpacing(4);
+ typeGroupLayout->addWidget(textEditor);
+
+ QVBoxLayout *mainGroupLayout = new QVBoxLayout(mainGroup);
+ mainGroupLayout->addWidget(rotateGroup);
+ mainGroupLayout->addWidget(scaleGroup);
+ mainGroupLayout->addWidget(shearGroup);
+ mainGroupLayout->addWidget(typeGroup);
+ mainGroupLayout->addStretch(1);
+ mainGroupLayout->addWidget(resetButton);
+ mainGroupLayout->addWidget(animateButton);
+ mainGroupLayout->addWidget(showSourceButton);
+#ifdef QT_OPENGL_SUPPORT
+ mainGroupLayout->addWidget(enableOpenGLButton);
+#endif
+ mainGroupLayout->addWidget(whatsThisButton);
+
+ connect(rotateSlider, SIGNAL(valueChanged(int)), view, SLOT(changeRotation(int)));
+ connect(shearSlider, SIGNAL(valueChanged(int)), view, SLOT(changeShear(int)));
+ connect(scaleSlider, SIGNAL(valueChanged(int)), view, SLOT(changeScale(int)));
+
+ connect(vectorType, SIGNAL(clicked()), view, SLOT(setVectorType()));
+ connect(pixmapType, SIGNAL(clicked()), view, SLOT(setPixmapType()));
+ connect(textType, SIGNAL(clicked()), view, SLOT(setTextType()));
+ connect(textType, SIGNAL(toggled(bool)), textEditor, SLOT(setEnabled(bool)));
+ connect(textEditor, SIGNAL(textChanged(QString)), view, SLOT(setText(QString)));
+
+ connect(view, SIGNAL(rotationChanged(int)), rotateSlider, SLOT(setValue(int)));
+ connect(view, SIGNAL(scaleChanged(int)), scaleSlider, SLOT(setValue(int)));
+ connect(view, SIGNAL(shearChanged(int)), shearSlider, SLOT(setValue(int)));
+
+ connect(resetButton, SIGNAL(clicked()), view, SLOT(reset()));
+ connect(animateButton, SIGNAL(clicked(bool)), view, SLOT(setAnimation(bool)));
+ connect(whatsThisButton, SIGNAL(clicked(bool)), view, SLOT(setDescriptionEnabled(bool)));
+ connect(whatsThisButton, SIGNAL(clicked(bool)), view->hoverPoints(), SLOT(setDisabled(bool)));
+ connect(view, SIGNAL(descriptionEnabledChanged(bool)), view->hoverPoints(), SLOT(setDisabled(bool)));
+ connect(view, SIGNAL(descriptionEnabledChanged(bool)), whatsThisButton, SLOT(setChecked(bool)));
+ connect(showSourceButton, SIGNAL(clicked()), view, SLOT(showSource()));
+#ifdef QT_OPENGL_SUPPORT
+ connect(enableOpenGLButton, SIGNAL(clicked(bool)), view, SLOT(enableOpenGL(bool)));
+#endif
+ view->loadSourceFile(":res/affine/xform.cpp");
+ view->loadDescription(":res/affine/xform.html");
+
+ // defaults
+ view->reset();
+ vectorType->setChecked(true);
+ textEditor->setText("Qt Software");
+ textEditor->setEnabled(false);
+
+ animateButton->animateClick();
+}
diff --git a/demos/affine/xform.h b/demos/affine/xform.h
new file mode 100644
index 0000000..f33e63d
--- /dev/null
+++ b/demos/affine/xform.h
@@ -0,0 +1,141 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef XFORM_H
+#define XFORM_H
+
+#include "arthurwidgets.h"
+
+#include <QBasicTimer>
+#include <QPolygonF>
+
+class HoverPoints;
+QT_FORWARD_DECLARE_CLASS(QLineEdit)
+
+class XFormView : public ArthurFrame
+{
+public:
+ Q_OBJECT
+
+ Q_PROPERTY(XFormType type READ type WRITE setType)
+ Q_PROPERTY(bool animation READ animation WRITE setAnimation)
+ Q_PROPERTY(qreal shear READ shear WRITE setShear)
+ Q_PROPERTY(qreal rotation READ rotation WRITE setRotation)
+ Q_PROPERTY(qreal scale READ scale WRITE setScale)
+ Q_PROPERTY(QString text READ text WRITE setText)
+ Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap)
+ Q_ENUMS(XFormType)
+
+public:
+ enum XFormType { VectorType, PixmapType, TextType };
+
+ XFormView(QWidget *parent);
+ void paint(QPainter *);
+ void drawVectorType(QPainter *painter);
+ void drawPixmapType(QPainter *painter);
+ void drawTextType(QPainter *painter);
+ QSize sizeHint() const { return QSize(500, 500); }
+
+ void mousePressEvent(QMouseEvent *e);
+ void resizeEvent(QResizeEvent *e);
+ HoverPoints *hoverPoints() { return pts; }
+
+ bool animation() const { return timer.isActive(); }
+ qreal shear() const { return m_shear; }
+ qreal scale() const { return m_scale; }
+ qreal rotation() const { return m_rotation; }
+ void setShear(qreal s);
+ void setScale(qreal s);
+ void setRotation(qreal r);
+
+ XFormType type() const;
+ QPixmap pixmap() const;
+ QString text() const;
+
+public slots:
+ void setAnimation(bool animate);
+ void updateCtrlPoints(const QPolygonF &);
+ void changeRotation(int rotation);
+ void changeScale(int scale);
+ void changeShear(int shear);
+
+ void setText(const QString &);
+ void setPixmap(const QPixmap &);
+ void setType(XFormType t);
+
+ void setVectorType();
+ void setPixmapType();
+ void setTextType();
+ void reset();
+
+signals:
+ void rotationChanged(int rotation);
+ void scaleChanged(int scale);
+ void shearChanged(int shear);
+
+protected:
+ void timerEvent(QTimerEvent *e);
+ void wheelEvent(QWheelEvent *);
+
+private:
+ QPolygonF ctrlPoints;
+ HoverPoints *pts;
+ qreal m_rotation;
+ qreal m_scale;
+ qreal m_shear;
+ XFormType m_type;
+ QPixmap m_pixmap;
+ QString m_text;
+ QBasicTimer timer;
+};
+
+class XFormWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ XFormWidget(QWidget *parent);
+
+private:
+ XFormView *view;
+ QLineEdit *textEditor;
+};
+
+#endif // XFORM_H
diff --git a/demos/affine/xform.html b/demos/affine/xform.html
new file mode 100644
index 0000000..17325ac
--- /dev/null
+++ b/demos/affine/xform.html
@@ -0,0 +1,23 @@
+<html>
+<center>
+<h2>Affine Transformations</h2>
+</center>
+
+<p>In this demo we demonstrate Qt's ability to perform affine transformations
+on painting operations.</p>
+
+<p>Transformations can be performed on any kind of graphics drawn using
+QPainter. The transformations used to display the vector graphics, images,
+and text can be adjusted in the following ways:</p>
+
+<ul>
+ <li>Dragging the red circle in the centre of each drawing moves it to a new
+ position.</li>
+ <li>Dragging the displaced red circle causes the current drawing to be
+ rotated about the central circle. Rotation can also be controlled with
+ the <b>Rotate</b> slider.</li>
+ <li>Scaling is controlled with the <b>Scale</b> slider.</li>
+ <li>Each drawing can be sheared with the <b>Shear</b> slider.</li>
+</ul>
+
+</html>
diff --git a/demos/arthurplugin/arthur_plugin.qrc b/demos/arthurplugin/arthur_plugin.qrc
new file mode 100644
index 0000000..e5170e6
--- /dev/null
+++ b/demos/arthurplugin/arthur_plugin.qrc
@@ -0,0 +1,7 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/trolltech/arthurplugin">
+ <file>bg1.jpg</file>
+ <file>flower.jpg</file>
+ <file>flower_alpha.jpg</file>
+</qresource>
+</RCC>
diff --git a/demos/arthurplugin/arthurplugin.pro b/demos/arthurplugin/arthurplugin.pro
new file mode 100644
index 0000000..e9eb1f3
--- /dev/null
+++ b/demos/arthurplugin/arthurplugin.pro
@@ -0,0 +1,51 @@
+
+QTDIR = $$QT_SOURCE_TREE
+
+CONFIG += designer plugin
+TEMPLATE = lib
+QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/designer
+
+contains(QT_CONFIG, opengl) {
+ DEFINES += QT_OPENGL_SUPPORT
+ QT += opengl
+}
+
+SHARED_FOLDER = ../shared
+include(../shared/shared.pri)
+
+DEMO_DEFORM_DIR = ../deform
+DEMO_AFFINE_DIR = ../affine
+DEMO_GRADIENT_DIR = ../gradients
+DEMO_STROKE_DIR = ../pathstroke
+DEMO_COMPOSITION_DIR = ../composition
+
+INCLUDEPATH += $$DEMO_DEFORM_DIR $$DEMO_AFFINE_DIR $$DEMO_GRADIENT_DIR $$DEMO_STROKE_DIR $$DEMO_COMPOSITION_DIR
+
+SOURCES = plugin.cpp \
+ $$DEMO_COMPOSITION_DIR/composition.cpp \
+ $$DEMO_AFFINE_DIR/xform.cpp \
+ $$DEMO_DEFORM_DIR/pathdeform.cpp \
+ $$DEMO_GRADIENT_DIR/gradients.cpp \
+ $$DEMO_STROKE_DIR/pathstroke.cpp \
+
+
+HEADERS = \
+ $$DEMO_COMPOSITION_DIR/composition.h \
+ $$DEMO_AFFINE_DIR/xform.h \
+ $$DEMO_DEFORM_DIR/pathdeform.h \
+ $$DEMO_GRADIENT_DIR/gradients.h \
+ $$DEMO_STROKE_DIR/pathstroke.h \
+
+RESOURCES += arthur_plugin.qrc
+
+# install
+target.path = $$[QT_INSTALL_PLUGINS]/designer
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.jpg *.png
+sources.path = $$[QT_INSTALL_DEMOS]/arthurplugin
+INSTALLS += target sources
+
+win32-msvc* {
+ QMAKE_CFLAGS += /Zm500
+ QMAKE_CXXFLAGS += /Zm500
+}
+
diff --git a/demos/arthurplugin/bg1.jpg b/demos/arthurplugin/bg1.jpg
new file mode 100644
index 0000000..dfc7cee
--- /dev/null
+++ b/demos/arthurplugin/bg1.jpg
Binary files differ
diff --git a/demos/arthurplugin/flower.jpg b/demos/arthurplugin/flower.jpg
new file mode 100644
index 0000000..f8e022c
--- /dev/null
+++ b/demos/arthurplugin/flower.jpg
Binary files differ
diff --git a/demos/arthurplugin/flower_alpha.jpg b/demos/arthurplugin/flower_alpha.jpg
new file mode 100644
index 0000000..6a3c2a0
--- /dev/null
+++ b/demos/arthurplugin/flower_alpha.jpg
Binary files differ
diff --git a/demos/arthurplugin/plugin.cpp b/demos/arthurplugin/plugin.cpp
new file mode 100644
index 0000000..e2bf54e
--- /dev/null
+++ b/demos/arthurplugin/plugin.cpp
@@ -0,0 +1,262 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtDesigner/QDesignerContainerExtension>
+#include <QtDesigner/QDesignerCustomWidgetInterface>
+
+#include <QtCore/qplugin.h>
+#include <QtGui/QIcon>
+#include <QtGui/QPixmap>
+
+#include "xform.h"
+#include "pathdeform.h"
+#include "gradients.h"
+#include "pathstroke.h"
+#include "hoverpoints.h"
+#include "composition.h"
+
+QT_FORWARD_DECLARE_CLASS(QDesignerFormEditorInterface)
+
+static inline QString customWidgetDomXml(const QString &className)
+{
+ QString rc = QLatin1String("<ui language=\"c++\"><widget class=\"");
+ rc += className;
+ rc += QLatin1String("\" name=\"");
+ QString objectName = className;
+ objectName[0] = objectName.at(0).toLower();
+ rc += objectName;
+ rc += QLatin1String("\"/></ui>");
+ return rc;
+}
+
+class PathDeformRendererEx : public PathDeformRenderer
+{
+ Q_OBJECT
+public:
+ PathDeformRendererEx(QWidget *parent) : PathDeformRenderer(parent) { }
+ QSize sizeHint() const { return QSize(300, 200); }
+};
+
+class DemoPlugin : public QDesignerCustomWidgetInterface
+{
+ Q_INTERFACES(QDesignerCustomWidgetInterface)
+
+protected:
+ DemoPlugin(const QString &className);
+
+public:
+ QString name() const { return m_className; }
+ bool isContainer() const { return false; }
+ bool isInitialized() const { return m_initialized; }
+ QIcon icon() const { return QIcon(); }
+ QString codeTemplate() const { return QString(); }
+ QString whatsThis() const { return QString(); }
+ QString toolTip() const { return QString(); }
+ QString group() const { return "Arthur Widgets [Demo]"; }
+ void initialize(QDesignerFormEditorInterface *)
+ {
+ if (m_initialized)
+ return;
+ m_initialized = true;
+ }
+ QString domXml() const { return m_domXml; }
+
+private:
+ const QString m_className;
+ const QString m_domXml;
+ bool m_initialized;
+};
+
+DemoPlugin::DemoPlugin(const QString &className) :
+ m_className(className),
+ m_domXml(customWidgetDomXml(className)),
+ m_initialized(false)
+{
+}
+
+class DeformPlugin : public QObject, public DemoPlugin
+{
+ Q_OBJECT
+
+public:
+ DeformPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("PathDeformRendererEx")) { }
+ QString includeFile() const { return "deform.h"; }
+
+ QWidget *createWidget(QWidget *parent)
+ {
+ PathDeformRenderer *deform = new PathDeformRendererEx(parent);
+ deform->setRadius(70);
+ deform->setAnimated(false);
+ deform->setFontSize(20);
+ deform->setText("Arthur Widgets Demo");
+
+ return deform;
+ }
+};
+
+class XFormRendererEx : public XFormView
+{
+ Q_OBJECT
+public:
+ XFormRendererEx(QWidget *parent) : XFormView(parent) {}
+ QSize sizeHint() const { return QSize(300, 200); }
+};
+
+class XFormPlugin : public QObject, public DemoPlugin
+{
+ Q_OBJECT
+public:
+ XFormPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("XFormRendererEx")) { }
+ QString includeFile() const { return "xform.h"; }
+
+ QWidget *createWidget(QWidget *parent)
+ {
+ XFormRendererEx *xform = new XFormRendererEx(parent);
+ xform->setText("Qt - Hello World!!");
+ xform->setPixmap(QPixmap(":/trolltech/arthurplugin/bg1.jpg"));
+ return xform;
+ }
+};
+
+
+class GradientEditorPlugin : public QObject, public DemoPlugin
+{
+ Q_OBJECT
+public:
+ GradientEditorPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("GradientEditor")) { }
+ QString includeFile() const { return "gradients.h"; }
+
+ QWidget *createWidget(QWidget *parent)
+ {
+ GradientEditor *editor = new GradientEditor(parent);
+ return editor;
+ }
+};
+
+class GradientRendererEx : public GradientRenderer
+{
+ Q_OBJECT
+public:
+ GradientRendererEx(QWidget *p) : GradientRenderer(p) { }
+ QSize sizeHint() const { return QSize(300, 200); }
+};
+
+class GradientRendererPlugin : public QObject, public DemoPlugin
+{
+ Q_OBJECT
+public:
+ GradientRendererPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("GradientRendererEx")) { }
+ QString includeFile() const { return "gradients.h"; }
+
+ QWidget *createWidget(QWidget *parent)
+ {
+ GradientRenderer *renderer = new GradientRendererEx(parent);
+ renderer->setConicalGradient();
+ return renderer;
+ }
+};
+
+class PathStrokeRendererEx : public PathStrokeRenderer
+{
+ Q_OBJECT
+public:
+ PathStrokeRendererEx(QWidget *p) : PathStrokeRenderer(p) { }
+ QSize sizeHint() const { return QSize(300, 200); }
+};
+
+class StrokeRenderPlugin : public QObject, public DemoPlugin
+{
+ Q_OBJECT
+public:
+ StrokeRenderPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("PathStrokeRendererEx")) { }
+ QString includeFile() const { return "pathstroke.h"; }
+
+ QWidget *createWidget(QWidget *parent)
+ {
+ PathStrokeRenderer *stroke = new PathStrokeRendererEx(parent);
+ return stroke;
+ }
+};
+
+
+class CompositionModePlugin : public QObject, public DemoPlugin
+{
+ Q_OBJECT
+public:
+ CompositionModePlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("CompositionRenderer")) { }
+ QString includeFile() const { return "composition.h"; }
+
+ QWidget *createWidget(QWidget *parent)
+ {
+ CompositionRenderer *renderer = new CompositionRenderer(parent);
+ renderer->setAnimationEnabled(false);
+ return renderer;
+ }
+};
+
+
+class ArthurPlugins : public QObject, public QDesignerCustomWidgetCollectionInterface
+{
+ Q_OBJECT
+ Q_INTERFACES(QDesignerCustomWidgetCollectionInterface)
+
+public:
+ ArthurPlugins(QObject *parent = 0);
+ QList<QDesignerCustomWidgetInterface*> customWidgets() const { return m_plugins; }
+
+private:
+ QList<QDesignerCustomWidgetInterface *> m_plugins;
+};
+
+ArthurPlugins::ArthurPlugins(QObject *parent) :
+ QObject(parent)
+{
+ m_plugins << new DeformPlugin(this)
+ << new XFormPlugin(this)
+ << new GradientEditorPlugin(this)
+ << new GradientRendererPlugin(this)
+ << new StrokeRenderPlugin(this)
+ << new CompositionModePlugin(this);
+}
+
+#include "plugin.moc"
+
+Q_EXPORT_PLUGIN2(ArthurPlugins, ArthurPlugins)
diff --git a/demos/books/bookdelegate.cpp b/demos/books/bookdelegate.cpp
new file mode 100644
index 0000000..1322fd6
--- /dev/null
+++ b/demos/books/bookdelegate.cpp
@@ -0,0 +1,126 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "bookdelegate.h"
+
+#include <QtGui>
+
+BookDelegate::BookDelegate(QObject *parent)
+ : QSqlRelationalDelegate(parent), star(QPixmap(":images/star.png"))
+{
+}
+
+void BookDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
+ const QModelIndex &index) const
+{
+ if (index.column() != 5) {
+ QStyleOptionViewItemV3 opt = option;
+ opt.rect.adjust(0, 0, -1, -1); // since we draw the grid ourselves
+ QSqlRelationalDelegate::paint(painter, opt, index);
+ } else {
+ const QAbstractItemModel *model = index.model();
+ QPalette::ColorGroup cg = (option.state & QStyle::State_Enabled) ?
+ (option.state & QStyle::State_Active) ? QPalette::Normal : QPalette::Inactive : QPalette::Disabled;
+
+ if (option.state & QStyle::State_Selected)
+ painter->fillRect(option.rect, option.palette.color(cg, QPalette::Highlight));
+
+ int rating = model->data(index, Qt::DisplayRole).toInt();
+ int width = star.width();
+ int height = star.height();
+ int x = option.rect.x();
+ int y = option.rect.y() + (option.rect.height() / 2) - (height / 2);
+ for (int i = 0; i < rating; ++i) {
+ painter->drawPixmap(x, y, star);
+ x += width;
+ }
+ drawFocus(painter, option, option.rect.adjusted(0, 0, -1, -1)); // since we draw the grid ourselves
+ }
+
+ QPen pen = painter->pen();
+ painter->setPen(option.palette.color(QPalette::Mid));
+ painter->drawLine(option.rect.bottomLeft(), option.rect.bottomRight());
+ painter->drawLine(option.rect.topRight(), option.rect.bottomRight());
+ painter->setPen(pen);
+}
+
+QSize BookDelegate::sizeHint(const QStyleOptionViewItem &option,
+ const QModelIndex &index) const
+{
+ if (index.column() == 5)
+ return QSize(5 * star.width(), star.height()) + QSize(1, 1);
+
+ return QSqlRelationalDelegate::sizeHint(option, index) + QSize(1, 1); // since we draw the grid ourselves
+}
+
+bool BookDelegate::editorEvent(QEvent *event, QAbstractItemModel *model,
+ const QStyleOptionViewItem &option,
+ const QModelIndex &index)
+{
+ if (index.column() != 5)
+ return QSqlRelationalDelegate::editorEvent(event, model, option, index);
+
+ if (event->type() == QEvent::MouseButtonPress) {
+ QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
+ int stars = qBound(0, int(0.7 + qreal(mouseEvent->pos().x()
+ - option.rect.x()) / star.width()), 5);
+ model->setData(index, QVariant(stars));
+ return false; //so that the selection can change
+ }
+
+ return true;
+}
+
+QWidget *BookDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option,
+ const QModelIndex &index) const
+{
+ if (index.column() != 4)
+ return QSqlRelationalDelegate::createEditor(parent, option, index);
+
+ // for editing the year, return a spinbox with a range from -1000 to 2100.
+ QSpinBox *sb = new QSpinBox(parent);
+ sb->setFrame(false);
+ sb->setMaximum(2100);
+ sb->setMinimum(-1000);
+
+ return sb;
+}
+
diff --git a/demos/books/bookdelegate.h b/demos/books/bookdelegate.h
new file mode 100644
index 0000000..fb32335
--- /dev/null
+++ b/demos/books/bookdelegate.h
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef BOOKDELEGATE_H
+#define BOOKDELEGATE_H
+
+#include <QModelIndex>
+#include <QPixmap>
+#include <QSize>
+#include <QSqlRelationalDelegate>
+
+QT_FORWARD_DECLARE_CLASS(QPainter)
+
+class BookDelegate : public QSqlRelationalDelegate
+{
+public:
+ BookDelegate(QObject *parent);
+
+ void paint(QPainter *painter, const QStyleOptionViewItem &option,
+ const QModelIndex &index) const;
+
+ QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
+
+ bool editorEvent(QEvent *event, QAbstractItemModel *model,
+ const QStyleOptionViewItem &option,
+ const QModelIndex &index);
+
+ QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
+ const QModelIndex &index) const;
+
+private:
+ QPixmap star;
+};
+
+#endif
diff --git a/demos/books/books.pro b/demos/books/books.pro
new file mode 100644
index 0000000..a2cd33f
--- /dev/null
+++ b/demos/books/books.pro
@@ -0,0 +1,21 @@
+TEMPLATE = app
+INCLUDEPATH += .
+
+HEADERS = bookdelegate.h bookwindow.h initdb.h
+RESOURCES = books.qrc
+SOURCES = bookdelegate.cpp main.cpp bookwindow.cpp
+FORMS = bookwindow.ui
+
+QT += sql
+
+target.path = $$[QT_INSTALL_DEMOS]/books
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro images
+sources.path = $$[QT_INSTALL_DEMOS]/books
+INSTALLS += target sources
+
+wince*: {
+ CONFIG(debug, debug|release):sqlPlugins.sources = $$QT_BUILD_TREE/plugins/sqldrivers/*d4.dll
+ CONFIG(release, debug|release):sqlPlugins.sources = $$QT_BUILD_TREE/plugins/sqldrivers/*[^d]4.dll
+ sqlPlugins.path = sqldrivers
+ DEPLOYMENT += sqlPlugins
+} \ No newline at end of file
diff --git a/demos/books/books.qrc b/demos/books/books.qrc
new file mode 100644
index 0000000..342638e
--- /dev/null
+++ b/demos/books/books.qrc
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/">
+ <file>images/star.png</file>
+</qresource>
+</RCC>
diff --git a/demos/books/bookwindow.cpp b/demos/books/bookwindow.cpp
new file mode 100644
index 0000000..e73f727
--- /dev/null
+++ b/demos/books/bookwindow.cpp
@@ -0,0 +1,121 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "bookwindow.h"
+#include "bookdelegate.h"
+#include "initdb.h"
+
+#include <QtSql>
+
+BookWindow::BookWindow()
+{
+ ui.setupUi(this);
+
+ if (!QSqlDatabase::drivers().contains("QSQLITE"))
+ QMessageBox::critical(this, "Unable to load database", "This demo needs the SQLITE driver");
+
+ // initialize the database
+ QSqlError err = initDb();
+ if (err.type() != QSqlError::NoError) {
+ showError(err);
+ return;
+ }
+
+ // Create the data model
+ model = new QSqlRelationalTableModel(ui.bookTable);
+ model->setEditStrategy(QSqlTableModel::OnManualSubmit);
+ model->setTable("books");
+
+ // Remeber the indexes of the columns
+ authorIdx = model->fieldIndex("author");
+ genreIdx = model->fieldIndex("genre");
+
+ // Set the relations to the other database tables
+ model->setRelation(authorIdx, QSqlRelation("authors", "id", "name"));
+ model->setRelation(genreIdx, QSqlRelation("genres", "id", "name"));
+
+ // Set the localized header captions
+ model->setHeaderData(authorIdx, Qt::Horizontal, tr("Author Name"));
+ model->setHeaderData(genreIdx, Qt::Horizontal, tr("Genre"));
+ model->setHeaderData(model->fieldIndex("title"), Qt::Horizontal, tr("Title"));
+ model->setHeaderData(model->fieldIndex("year"), Qt::Horizontal, tr("Year"));
+ model->setHeaderData(model->fieldIndex("rating"), Qt::Horizontal, tr("Rating"));
+
+ // Populate the model
+ if (!model->select()) {
+ showError(model->lastError());
+ return;
+ }
+
+ // Set the model and hide the ID column
+ ui.bookTable->setModel(model);
+ ui.bookTable->setItemDelegate(new BookDelegate(ui.bookTable));
+ ui.bookTable->setColumnHidden(model->fieldIndex("id"), true);
+ ui.bookTable->setSelectionMode(QAbstractItemView::SingleSelection);
+
+ // Initialize the Author combo box
+ ui.authorEdit->setModel(model->relationModel(authorIdx));
+ ui.authorEdit->setModelColumn(model->relationModel(authorIdx)->fieldIndex("name"));
+
+ ui.genreEdit->setModel(model->relationModel(genreIdx));
+ ui.genreEdit->setModelColumn(model->relationModel(genreIdx)->fieldIndex("name"));
+
+ QDataWidgetMapper *mapper = new QDataWidgetMapper(this);
+ mapper->setModel(model);
+ mapper->setItemDelegate(new BookDelegate(this));
+ mapper->addMapping(ui.titleEdit, model->fieldIndex("title"));
+ mapper->addMapping(ui.yearEdit, model->fieldIndex("year"));
+ mapper->addMapping(ui.authorEdit, authorIdx);
+ mapper->addMapping(ui.genreEdit, genreIdx);
+ mapper->addMapping(ui.ratingEdit, model->fieldIndex("rating"));
+
+ connect(ui.bookTable->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),
+ mapper, SLOT(setCurrentModelIndex(QModelIndex)));
+
+ ui.bookTable->setCurrentIndex(model->index(0, 0));
+}
+
+void BookWindow::showError(const QSqlError &err)
+{
+ QMessageBox::critical(this, "Unable to initialize Database",
+ "Error initializing database: " + err.text());
+}
+
diff --git a/demos/books/bookwindow.h b/demos/books/bookwindow.h
new file mode 100644
index 0000000..3cc69d0
--- /dev/null
+++ b/demos/books/bookwindow.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef BOOKWINDOW_H
+#define BOOKWINDOW_H
+
+#include <QtGui>
+#include <QtSql>
+
+#include "ui_bookwindow.h"
+
+
+class BookWindow: public QMainWindow
+{
+ Q_OBJECT
+public:
+ BookWindow();
+
+private:
+ void showError(const QSqlError &err);
+ Ui::BookWindow ui;
+ QSqlRelationalTableModel *model;
+ int authorIdx, genreIdx;
+};
+
+#endif
diff --git a/demos/books/bookwindow.ui b/demos/books/bookwindow.ui
new file mode 100644
index 0000000..659d324
--- /dev/null
+++ b/demos/books/bookwindow.ui
@@ -0,0 +1,149 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>BookWindow</class>
+ <widget class="QMainWindow" name="BookWindow" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>601</width>
+ <height>420</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Books</string>
+ </property>
+ <widget class="QWidget" name="centralWidget" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox" >
+ <property name="title" >
+ <string>Books</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QTableView" name="bookTable" >
+ <property name="selectionBehavior" >
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_2" >
+ <property name="title" >
+ <string>Details</string>
+ </property>
+ <layout class="QFormLayout" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_5" >
+ <property name="text" >
+ <string>&lt;b>Title:&lt;/b></string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLineEdit" name="titleEdit" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_2_2_2_2" >
+ <property name="text" >
+ <string>&lt;b>Author: &lt;/b></string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QComboBox" name="authorEdit" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
+ <string>&lt;b>Genre:&lt;/b></string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QComboBox" name="genreEdit" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="label_4" >
+ <property name="text" >
+ <string>&lt;b>Year:&lt;/b></string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QSpinBox" name="yearEdit" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="prefix" >
+ <string/>
+ </property>
+ <property name="maximum" >
+ <number>2100</number>
+ </property>
+ <property name="minimum" >
+ <number>-1000</number>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>&lt;b>Rating:&lt;/b></string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" >
+ <widget class="QSpinBox" name="ratingEdit" >
+ <property name="maximum" >
+ <number>5</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <pixmapfunction></pixmapfunction>
+ <tabstops>
+ <tabstop>bookTable</tabstop>
+ <tabstop>titleEdit</tabstop>
+ <tabstop>authorEdit</tabstop>
+ <tabstop>genreEdit</tabstop>
+ <tabstop>yearEdit</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/demos/books/images/star.png b/demos/books/images/star.png
new file mode 100644
index 0000000..87f4464
--- /dev/null
+++ b/demos/books/images/star.png
Binary files differ
diff --git a/demos/books/initdb.h b/demos/books/initdb.h
new file mode 100644
index 0000000..f9a94b7
--- /dev/null
+++ b/demos/books/initdb.h
@@ -0,0 +1,125 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef INITDB_H
+#define INITDB_H
+
+#include <QtSql>
+
+void addBook(QSqlQuery &q, const QString &title, int year, const QVariant &authorId,
+ const QVariant &genreId, int rating)
+{
+ q.addBindValue(title);
+ q.addBindValue(year);
+ q.addBindValue(authorId);
+ q.addBindValue(genreId);
+ q.addBindValue(rating);
+ q.exec();
+}
+
+QVariant addGenre(QSqlQuery &q, const QString &name)
+{
+ q.addBindValue(name);
+ q.exec();
+ return q.lastInsertId();
+}
+
+QVariant addAuthor(QSqlQuery &q, const QString &name, const QDate &birthdate)
+{
+ q.addBindValue(name);
+ q.addBindValue(birthdate);
+ q.exec();
+ return q.lastInsertId();
+}
+
+QSqlError initDb()
+{
+ QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
+ db.setDatabaseName(":memory:");
+
+ if (!db.open())
+ return db.lastError();
+
+ QStringList tables = db.tables();
+ if (tables.contains("books", Qt::CaseInsensitive)
+ && tables.contains("authors", Qt::CaseInsensitive))
+ return QSqlError();
+
+ QSqlQuery q;
+ if (!q.exec(QLatin1String("create table books(id integer primary key, title varchar, author integer, genre integer, year integer, rating integer)")))
+ return q.lastError();
+ if (!q.exec(QLatin1String("create table authors(id integer primary key, name varchar, birthdate date)")))
+ return q.lastError();
+ if (!q.exec(QLatin1String("create table genres(id integer primary key, name varchar)")))
+ return q.lastError();
+
+ if (!q.prepare(QLatin1String("insert into authors(name, birthdate) values(?, ?)")))
+ return q.lastError();
+ QVariant asimovId = addAuthor(q, QLatin1String("Isaac Asimov"), QDate(1920, 2, 1));
+ QVariant greeneId = addAuthor(q, QLatin1String("Graham Greene"), QDate(1904, 10, 2));
+ QVariant pratchettId = addAuthor(q, QLatin1String("Terry Pratchett"), QDate(1948, 4, 28));
+
+ if (!q.prepare(QLatin1String("insert into genres(name) values(?)")))
+ return q.lastError();
+ QVariant sfiction = addGenre(q, QLatin1String("Science Fiction"));
+ QVariant fiction = addGenre(q, QLatin1String("Fiction"));
+ QVariant fantasy = addGenre(q, QLatin1String("Fantasy"));
+
+ if (!q.prepare(QLatin1String("insert into books(title, year, author, genre, rating) values(?, ?, ?, ?, ?)")))
+ return q.lastError();
+ addBook(q, QLatin1String("Foundation"), 1951, asimovId, sfiction, 3);
+ addBook(q, QLatin1String("Foundation and Empire"), 1952, asimovId, sfiction, 4);
+ addBook(q, QLatin1String("Second Foundation"), 1953, asimovId, sfiction, 3);
+ addBook(q, QLatin1String("Foundation's Edge"), 1982, asimovId, sfiction, 3);
+ addBook(q, QLatin1String("Foundation and Earth"), 1986, asimovId, sfiction, 4);
+ addBook(q, QLatin1String("Prelude to Foundation"), 1988, asimovId, sfiction, 3);
+ addBook(q, QLatin1String("Forward the Foundation"), 1993, asimovId, sfiction, 3);
+ addBook(q, QLatin1String("The Power and the Glory"), 1940, greeneId, fiction, 4);
+ addBook(q, QLatin1String("The Third Man"), 1950, greeneId, fiction, 5);
+ addBook(q, QLatin1String("Our Man in Havana"), 1958, greeneId, fiction, 4);
+ addBook(q, QLatin1String("Guards! Guards!"), 1989, pratchettId, fantasy, 3);
+ addBook(q, QLatin1String("Night Watch"), 2002, pratchettId, fantasy, 3);
+ addBook(q, QLatin1String("Going Postal"), 2004, pratchettId, fantasy, 3);
+
+ return QSqlError();
+}
+
+#endif
diff --git a/demos/books/main.cpp b/demos/books/main.cpp
new file mode 100644
index 0000000..f3ae325
--- /dev/null
+++ b/demos/books/main.cpp
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "bookwindow.h"
+
+#include <QtGui>
+
+int main(int argc, char * argv[])
+{
+ Q_INIT_RESOURCE(books);
+
+ QApplication app(argc, argv);
+
+ BookWindow win;
+ win.show();
+
+ return app.exec();
+}
diff --git a/demos/boxes/3rdparty/fbm.c b/demos/boxes/3rdparty/fbm.c
new file mode 100644
index 0000000..98eb87a
--- /dev/null
+++ b/demos/boxes/3rdparty/fbm.c
@@ -0,0 +1,207 @@
+/*****************************************************************
+
+ Implementation of the fractional Brownian motion algorithm. These
+ functions were originally the work of F. Kenton Musgrave.
+ For documentation of the different functions please refer to the
+ book:
+ "Texturing and modeling: a procedural approach"
+ by David S. Ebert et. al.
+
+******************************************************************/
+
+#if defined (_MSC_VER)
+#include <qglobal.h>
+#endif
+
+#include <time.h>
+#include <stdlib.h>
+#include "fbm.h"
+
+#if defined(Q_CC_MSVC)
+#pragma warning(disable:4244)
+#endif
+
+/* Definitions used by the noise2() functions */
+
+//#define B 0x100
+//#define BM 0xff
+#define B 0x20
+#define BM 0x1f
+
+#define N 0x1000
+#define NP 12 /* 2^N */
+#define NM 0xfff
+
+static int p[B + B + 2];
+static float g3[B + B + 2][3];
+static float g2[B + B + 2][2];
+static float g1[B + B + 2];
+static int start = 1;
+
+static void init(void);
+
+#define s_curve(t) ( t * t * (3. - 2. * t) )
+
+#define lerp(t, a, b) ( a + t * (b - a) )
+
+#define setup(i,b0,b1,r0,r1)\
+ t = vec[i] + N;\
+ b0 = ((int)t) & BM;\
+ b1 = (b0+1) & BM;\
+ r0 = t - (int)t;\
+ r1 = r0 - 1.;
+#define at3(rx,ry,rz) ( rx * q[0] + ry * q[1] + rz * q[2] )
+
+/* Fractional Brownian Motion function */
+
+double fBm( Vector point, double H, double lacunarity, double octaves,
+ int init )
+{
+
+ double value, frequency, remainder;
+ int i;
+ static double exponent_array[10];
+ float vec[3];
+
+ /* precompute and store spectral weights */
+ if ( init ) {
+ start = 1;
+ srand( time(0) );
+ /* seize required memory for exponent_array */
+ frequency = 1.0;
+ for (i=0; i<=octaves; i++) {
+ /* compute weight for each frequency */
+ exponent_array[i] = pow( frequency, -H );
+ frequency *= lacunarity;
+ }
+ }
+
+ value = 0.0; /* initialize vars to proper values */
+ frequency = 1.0;
+ vec[0]=point.x;
+ vec[1]=point.y;
+ vec[2]=point.z;
+
+
+ /* inner loop of spectral construction */
+ for (i=0; i<octaves; i++) {
+ /* value += noise3( vec ) * exponent_array[i];*/
+ value += noise3( vec ) * exponent_array[i];
+ vec[0] *= lacunarity;
+ vec[1] *= lacunarity;
+ vec[2] *= lacunarity;
+ } /* for */
+
+ remainder = octaves - (int)octaves;
+ if ( remainder ) /* add in ``octaves'' remainder */
+ /* ``i'' and spatial freq. are preset in loop above */
+ value += remainder * noise3( vec ) * exponent_array[i];
+
+ return( value );
+
+} /* fBm() */
+
+
+float noise3(float vec[3])
+{
+ int bx0, bx1, by0, by1, bz0, bz1, b00, b10, b01, b11;
+ float rx0, rx1, ry0, ry1, rz0, rz1, *q, sy, sz, a, b, c, d, t, u, v;
+ register int i, j;
+
+ if (start) {
+ start = 0;
+ init();
+ }
+
+ setup(0, bx0,bx1, rx0,rx1);
+ setup(1, by0,by1, ry0,ry1);
+ setup(2, bz0,bz1, rz0,rz1);
+
+ i = p[ bx0 ];
+ j = p[ bx1 ];
+
+ b00 = p[ i + by0 ];
+ b10 = p[ j + by0 ];
+ b01 = p[ i + by1 ];
+ b11 = p[ j + by1 ];
+
+ t = s_curve(rx0);
+ sy = s_curve(ry0);
+ sz = s_curve(rz0);
+
+
+ q = g3[ b00 + bz0 ] ; u = at3(rx0,ry0,rz0);
+ q = g3[ b10 + bz0 ] ; v = at3(rx1,ry0,rz0);
+ a = lerp(t, u, v);
+
+ q = g3[ b01 + bz0 ] ; u = at3(rx0,ry1,rz0);
+ q = g3[ b11 + bz0 ] ; v = at3(rx1,ry1,rz0);
+ b = lerp(t, u, v);
+
+ c = lerp(sy, a, b);
+
+ q = g3[ b00 + bz1 ] ; u = at3(rx0,ry0,rz1);
+ q = g3[ b10 + bz1 ] ; v = at3(rx1,ry0,rz1);
+ a = lerp(t, u, v);
+
+ q = g3[ b01 + bz1 ] ; u = at3(rx0,ry1,rz1);
+ q = g3[ b11 + bz1 ] ; v = at3(rx1,ry1,rz1);
+ b = lerp(t, u, v);
+
+ d = lerp(sy, a, b);
+
+ return lerp(sz, c, d);
+}
+
+static void normalize2(float v[2])
+{
+ float s;
+
+ s = sqrt(v[0] * v[0] + v[1] * v[1]);
+ v[0] = v[0] / s;
+ v[1] = v[1] / s;
+}
+
+static void normalize3(float v[3])
+{
+ float s;
+
+ s = sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
+ v[0] = v[0] / s;
+ v[1] = v[1] / s;
+ v[2] = v[2] / s;
+}
+
+static void init(void)
+{
+ int i, j, k;
+
+ for (i = 0 ; i < B ; i++) {
+ p[i] = i;
+
+ g1[i] = (float)((rand() % (B + B)) - B) / B;
+
+ for (j = 0 ; j < 2 ; j++)
+ g2[i][j] = (float)((rand() % (B + B)) - B) / B;
+ normalize2(g2[i]);
+
+ for (j = 0 ; j < 3 ; j++)
+ g3[i][j] = (float)((rand() % (B + B)) - B) / B;
+ normalize3(g3[i]);
+ }
+
+ while (--i) {
+ k = p[i];
+ p[i] = p[j = rand() % B];
+ p[j] = k;
+ }
+
+ for (i = 0 ; i < B + 2 ; i++) {
+ p[B + i] = p[i];
+ g1[B + i] = g1[i];
+ for (j = 0 ; j < 2 ; j++)
+ g2[B + i][j] = g2[i][j];
+ for (j = 0 ; j < 3 ; j++)
+ g3[B + i][j] = g3[i][j];
+ }
+}
diff --git a/demos/boxes/3rdparty/fbm.h b/demos/boxes/3rdparty/fbm.h
new file mode 100644
index 0000000..b8a4a99
--- /dev/null
+++ b/demos/boxes/3rdparty/fbm.h
@@ -0,0 +1,40 @@
+/*****************************************************************
+
+ Prototypes for the fractional Brownian motion algorithm. These
+ functions were originally the work of F. Kenton Musgrave. For
+ documentation of the different functions please refer to the book:
+ "Texturing and modeling: a procedural approach"
+ by David S. Ebert et. al.
+
+******************************************************************/
+
+#ifndef _fbm_h
+#define _fbm_h
+
+#include <math.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//#define TRUE 1
+//#define FALSE 0
+
+typedef struct {
+ double x;
+ double y;
+ double z;
+} Vector;
+
+float noise3(float vec[]);
+double fBm( Vector point, double H, double lacunarity, double octaves,
+ int init );
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
+
diff --git a/demos/boxes/basic.fsh b/demos/boxes/basic.fsh
new file mode 100644
index 0000000..06ef24a
--- /dev/null
+++ b/demos/boxes/basic.fsh
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+varying vec3 position, normal;
+varying vec4 specular, ambient, diffuse, lightDirection;
+
+uniform sampler2D tex;
+uniform vec4 basicColor;
+
+void main()
+{
+ vec3 N = normalize(normal);
+ // assume directional light
+
+ gl_MaterialParameters M = gl_FrontMaterial;
+
+ float NdotL = dot(N, lightDirection.xyz);
+ float RdotL = dot(reflect(normalize(position), N), lightDirection.xyz);
+
+ vec3 absN = abs(gl_TexCoord[1].xyz);
+ vec3 texCoord;
+ if (absN.x > absN.y && absN.x > absN.z)
+ texCoord = gl_TexCoord[1].yzx;
+ else if (absN.y > absN.z)
+ texCoord = gl_TexCoord[1].zxy;
+ else
+ texCoord = gl_TexCoord[1].xyz;
+ texCoord.y *= -sign(texCoord.z);
+ texCoord += 0.5;
+
+ vec4 texColor = texture2D(tex, texCoord.xy);
+ vec4 unlitColor = gl_Color * mix(basicColor, vec4(texColor.xyz, 1.0), texColor.w);
+ gl_FragColor = (ambient + diffuse * max(NdotL, 0.0)) * unlitColor +
+ M.specular * specular * pow(max(RdotL, 0.0), M.shininess);
+}
diff --git a/demos/boxes/basic.vsh b/demos/boxes/basic.vsh
new file mode 100644
index 0000000..5a02df2
--- /dev/null
+++ b/demos/boxes/basic.vsh
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+varying vec3 position, normal;
+varying vec4 specular, ambient, diffuse, lightDirection;
+
+uniform mat4 view;
+
+void main()
+{
+ gl_TexCoord[0] = gl_MultiTexCoord0;
+ gl_TexCoord[1] = gl_Vertex;
+ specular = gl_LightSource[0].specular;
+ ambient = gl_LightSource[0].ambient;
+ diffuse = gl_LightSource[0].diffuse;
+ lightDirection = view * gl_LightSource[0].position;
+
+ normal = gl_NormalMatrix * gl_Normal;
+ position = (gl_ModelViewMatrix * gl_Vertex).xyz;
+
+ gl_FrontColor = gl_Color;
+ gl_Position = ftransform();
+}
diff --git a/demos/boxes/boxes.pro b/demos/boxes/boxes.pro
new file mode 100644
index 0000000..6c1a331
--- /dev/null
+++ b/demos/boxes/boxes.pro
@@ -0,0 +1,50 @@
+######################################################################
+# Automatically generated by qmake (2.01a) ma 3. nov 17:33:30 2008
+######################################################################
+
+TEMPLATE = app
+TARGET =
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+HEADERS += 3rdparty/fbm.h \
+ glbuffers.h \
+ glextensions.h \
+ glshaders.h \
+ gltrianglemesh.h \
+ qtbox.h \
+ roundedbox.h \
+ scene.h \
+ trackball.h \
+ vector.h
+SOURCES += 3rdparty/fbm.c \
+ glbuffers.cpp \
+ glextensions.cpp \
+ glshaders.cpp \
+ main.cpp \
+ qtbox.cpp \
+ roundedbox.cpp \
+ scene.cpp \
+ trackball.cpp
+
+RESOURCES += boxes.qrc
+
+QT += opengl
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/boxes
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html *.jpg *.png *.fsh *.vsh *.par
+sources.files -= 3rdparty/fbm.h 3rdparty/fbm.c
+sources.files += 3rdparty
+sources.path = $$[QT_INSTALL_DEMOS]/boxes
+INSTALLS += target sources
+
+wince*: {
+ DEPLOYMENT_PLUGIN += qjpeg
+}
+
+win32-msvc* {
+ QMAKE_CXXFLAGS += /Zm1200
+ QMAKE_CFLAGS += /Zm1200
+}
diff --git a/demos/boxes/boxes.qrc b/demos/boxes/boxes.qrc
new file mode 100644
index 0000000..d27506d
--- /dev/null
+++ b/demos/boxes/boxes.qrc
@@ -0,0 +1,25 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/res/boxes">
+ <file>cubemap_negx.jpg</file>
+ <file>cubemap_negy.jpg</file>
+ <file>cubemap_negz.jpg</file>
+ <file>cubemap_posx.jpg</file>
+ <file>cubemap_posy.jpg</file>
+ <file>cubemap_posz.jpg</file>
+ <file>square.jpg</file>
+ <file>basic.vsh</file>
+ <file>basic.fsh</file>
+ <file>dotted.fsh</file>
+ <file>fresnel.fsh</file>
+ <file>glass.fsh</file>
+ <file>granite.fsh</file>
+ <file>marble.fsh</file>
+ <file>reflection.fsh</file>
+ <file>refraction.fsh</file>
+ <file>wood.fsh</file>
+ <file>parameters.par</file>
+ <file>qt-logo.png</file>
+ <file>smiley.png</file>
+ <file>qt-logo.jpg</file>
+</qresource>
+</RCC>
diff --git a/demos/boxes/cubemap_negx.jpg b/demos/boxes/cubemap_negx.jpg
new file mode 100644
index 0000000..07c282e
--- /dev/null
+++ b/demos/boxes/cubemap_negx.jpg
Binary files differ
diff --git a/demos/boxes/cubemap_negy.jpg b/demos/boxes/cubemap_negy.jpg
new file mode 100644
index 0000000..46cd2f9
--- /dev/null
+++ b/demos/boxes/cubemap_negy.jpg
Binary files differ
diff --git a/demos/boxes/cubemap_negz.jpg b/demos/boxes/cubemap_negz.jpg
new file mode 100644
index 0000000..40c01dd
--- /dev/null
+++ b/demos/boxes/cubemap_negz.jpg
Binary files differ
diff --git a/demos/boxes/cubemap_posx.jpg b/demos/boxes/cubemap_posx.jpg
new file mode 100644
index 0000000..0b42e8a
--- /dev/null
+++ b/demos/boxes/cubemap_posx.jpg
Binary files differ
diff --git a/demos/boxes/cubemap_posy.jpg b/demos/boxes/cubemap_posy.jpg
new file mode 100644
index 0000000..2aca9b1
--- /dev/null
+++ b/demos/boxes/cubemap_posy.jpg
Binary files differ
diff --git a/demos/boxes/cubemap_posz.jpg b/demos/boxes/cubemap_posz.jpg
new file mode 100644
index 0000000..2e49173
--- /dev/null
+++ b/demos/boxes/cubemap_posz.jpg
Binary files differ
diff --git a/demos/boxes/dotted.fsh b/demos/boxes/dotted.fsh
new file mode 100644
index 0000000..26425f6
--- /dev/null
+++ b/demos/boxes/dotted.fsh
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+varying vec3 position, normal;
+varying vec4 specular, ambient, diffuse, lightDirection;
+
+uniform sampler2D tex;
+
+void main()
+{
+ vec3 N = normalize(normal);
+
+ gl_MaterialParameters M = gl_FrontMaterial;
+
+ // assume directional light
+ float NdotL = dot(N, lightDirection.xyz);
+ float RdotL = dot(reflect(normalize(position), N), lightDirection.xyz);
+
+ float r1 = length(fract(7.0 * gl_TexCoord[1].xyz) - 0.5);
+ float r2 = length(fract(5.0 * gl_TexCoord[1].xyz + 0.2) - 0.5);
+ float r3 = length(fract(11.0 * gl_TexCoord[1].xyz + 0.7) - 0.5);
+ vec4 rs = vec4(r1, r2, r3, 0.0);
+
+ vec4 unlitColor = gl_Color * (0.8 - clamp(10.0 * (0.4 - rs), 0.0, 0.2));
+ unlitColor.w = 1.0;
+ gl_FragColor = (ambient + diffuse * max(NdotL, 0.0)) * unlitColor +
+ M.specular * specular * pow(max(RdotL, 0.0), M.shininess);
+}
diff --git a/demos/boxes/fresnel.fsh b/demos/boxes/fresnel.fsh
new file mode 100644
index 0000000..dd98061
--- /dev/null
+++ b/demos/boxes/fresnel.fsh
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+varying vec3 position, normal;
+varying vec4 specular, ambient, diffuse, lightDirection;
+
+uniform sampler2D tex;
+uniform samplerCube env;
+uniform mat4 view;
+uniform vec4 basicColor;
+
+void main()
+{
+ vec3 N = normalize(normal);
+ // assume directional light
+
+ gl_MaterialParameters M = gl_FrontMaterial;
+
+ float NdotL = dot(N, lightDirection.xyz);
+ float RdotL = dot(reflect(normalize(position), N), lightDirection.xyz);
+
+ vec3 absN = abs(gl_TexCoord[1].xyz);
+ vec3 texCoord;
+ if (absN.x > absN.y && absN.x > absN.z)
+ texCoord = gl_TexCoord[1].yzx;
+ else if (absN.y > absN.z)
+ texCoord = gl_TexCoord[1].zxy;
+ else
+ texCoord = gl_TexCoord[1].xyz;
+ texCoord.y *= -sign(texCoord.z);
+ texCoord += 0.5;
+
+ vec4 texColor = texture2D(tex, texCoord.xy);
+ vec4 unlitColor = gl_Color * mix(basicColor, vec4(texColor.xyz, 1.0), texColor.w);
+ vec4 litColor = (ambient + diffuse * max(NdotL, 0.0)) * unlitColor +
+ M.specular * specular * pow(max(RdotL, 0.0), M.shininess);
+
+ vec3 R = 2.0 * dot(-position, N) * N + position;
+ vec4 reflectedColor = textureCube(env, R * mat3(view[0].xyz, view[1].xyz, view[2].xyz));
+ gl_FragColor = mix(litColor, reflectedColor, 0.2 + 0.8 * pow(1.0 + dot(N, normalize(position)), 2.0));
+}
diff --git a/demos/boxes/glass.fsh b/demos/boxes/glass.fsh
new file mode 100644
index 0000000..2b59a0a
--- /dev/null
+++ b/demos/boxes/glass.fsh
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+varying vec3 position, normal;
+varying vec4 specular, ambient, diffuse, lightDirection;
+
+uniform sampler2D tex;
+uniform samplerCube env;
+uniform mat4 view;
+
+// Some arbitrary values
+// Arrays don't work here on glsl < 120, apparently.
+//const float coeffs[6] = float[6](1.0/4.0, 1.0/4.1, 1.0/4.2, 1.0/4.3, 1.0/4.4, 1.0/4.5);
+float coeffs(int i)
+{
+ return 1.0 / (3.0 + 0.1 * float(i));
+}
+
+void main()
+{
+ vec3 N = normalize(normal);
+ vec3 I = -normalize(position);
+ mat3 V = mat3(view[0].xyz, view[1].xyz, view[2].xyz);
+ float IdotN = dot(I, N);
+ float scales[6];
+ vec3 C[6];
+ for (int i = 0; i < 6; ++i) {
+ scales[i] = (IdotN - sqrt(1.0 - coeffs(i) + coeffs(i) * (IdotN * IdotN)));
+ C[i] = textureCube(env, (-I + coeffs(i) * N) * V).xyz;
+ }
+ vec4 refractedColor = 0.25 * vec4(C[5].x + 2.0*C[0].x + C[1].x, C[1].y + 2.0*C[2].y + C[3].y,
+ C[3].z + 2.0*C[4].z + C[5].z, 4.0);
+
+ vec3 R = 2.0 * dot(-position, N) * N + position;
+ vec4 reflectedColor = textureCube(env, R * V);
+
+ gl_FragColor = mix(refractedColor, reflectedColor, 0.4 + 0.6 * pow(1.0 - IdotN, 2.0));
+}
diff --git a/demos/boxes/glbuffers.cpp b/demos/boxes/glbuffers.cpp
new file mode 100644
index 0000000..b2a594e
--- /dev/null
+++ b/demos/boxes/glbuffers.cpp
@@ -0,0 +1,390 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "glbuffers.h"
+
+//============================================================================//
+// GLTexture //
+//============================================================================//
+
+GLTexture::GLTexture() : m_texture(0), m_failed(false)
+{
+ glGenTextures(1, &m_texture);
+}
+
+GLTexture::~GLTexture()
+{
+ glDeleteTextures(1, &m_texture);
+}
+
+//============================================================================//
+// GLTexture2D //
+//============================================================================//
+
+GLTexture2D::GLTexture2D(int width, int height)
+{
+ glBindTexture(GL_TEXTURE_2D, m_texture);
+ glTexImage2D(GL_TEXTURE_2D, 0, 4, width, height, 0,
+ GL_BGRA, GL_UNSIGNED_BYTE, 0);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ //glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);
+ glBindTexture(GL_TEXTURE_2D, 0);
+}
+
+
+GLTexture2D::GLTexture2D(const QString& fileName, int width, int height)
+{
+ // TODO: Add error handling.
+ QImage image(fileName);
+
+ if (image.isNull()) {
+ m_failed = true;
+ return;
+ }
+
+ image = image.convertToFormat(QImage::Format_ARGB32);
+
+ //qDebug() << "Image size:" << image.width() << "x" << image.height();
+ if (width <= 0)
+ width = image.width();
+ if (height <= 0)
+ height = image.height();
+ if (width != image.width() || height != image.height())
+ image = image.scaled(width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+
+ glBindTexture(GL_TEXTURE_2D, m_texture);
+
+ // Works on x86, so probably works on all little-endian systems.
+ // Does it work on big-endian systems?
+ glTexImage2D(GL_TEXTURE_2D, 0, 4, image.width(), image.height(), 0,
+ GL_BGRA, GL_UNSIGNED_BYTE, image.bits());
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ //glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);
+ glBindTexture(GL_TEXTURE_2D, 0);
+}
+
+void GLTexture2D::load(int width, int height, QRgb *data)
+{
+ glBindTexture(GL_TEXTURE_2D, m_texture);
+ glTexImage2D(GL_TEXTURE_2D, 0, 4, width, height, 0,
+ GL_BGRA, GL_UNSIGNED_BYTE, data);
+ glBindTexture(GL_TEXTURE_2D, 0);
+}
+
+void GLTexture2D::bind()
+{
+ glBindTexture(GL_TEXTURE_2D, m_texture);
+ glEnable(GL_TEXTURE_2D);
+}
+
+void GLTexture2D::unbind()
+{
+ glBindTexture(GL_TEXTURE_2D, 0);
+ glDisable(GL_TEXTURE_2D);
+}
+
+
+//============================================================================//
+// GLTexture3D //
+//============================================================================//
+
+GLTexture3D::GLTexture3D(int width, int height, int depth)
+{
+ GLBUFFERS_ASSERT_OPENGL("GLTexture3D::GLTexture3D", glTexImage3D, return)
+
+ glBindTexture(GL_TEXTURE_3D, m_texture);
+ glTexImage3D(GL_TEXTURE_3D, 0, 4, width, height, depth, 0,
+ GL_BGRA, GL_UNSIGNED_BYTE, 0);
+
+ glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ //glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ //glTexParameteri(GL_TEXTURE_3D, GL_GENERATE_MIPMAP, GL_TRUE);
+ glBindTexture(GL_TEXTURE_3D, 0);
+}
+
+void GLTexture3D::load(int width, int height, int depth, QRgb *data)
+{
+ GLBUFFERS_ASSERT_OPENGL("GLTexture3D::load", glTexImage3D, return)
+
+ glBindTexture(GL_TEXTURE_3D, m_texture);
+ glTexImage3D(GL_TEXTURE_3D, 0, 4, width, height, depth, 0,
+ GL_BGRA, GL_UNSIGNED_BYTE, data);
+ glBindTexture(GL_TEXTURE_3D, 0);
+}
+
+void GLTexture3D::bind()
+{
+ glBindTexture(GL_TEXTURE_3D, m_texture);
+ glEnable(GL_TEXTURE_3D);
+}
+
+void GLTexture3D::unbind()
+{
+ glBindTexture(GL_TEXTURE_3D, 0);
+ glDisable(GL_TEXTURE_3D);
+}
+
+//============================================================================//
+// GLTextureCube //
+//============================================================================//
+
+GLTextureCube::GLTextureCube(int size)
+{
+ glBindTexture(GL_TEXTURE_CUBE_MAP, m_texture);
+
+ for (int i = 0; i < 6; ++i)
+ glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 4, size, size, 0,
+ GL_BGRA, GL_UNSIGNED_BYTE, 0);
+
+ glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ //glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ //glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_GENERATE_MIPMAP, GL_TRUE);
+ glBindTexture(GL_TEXTURE_CUBE_MAP, 0);
+}
+
+GLTextureCube::GLTextureCube(const QStringList& fileNames, int size)
+{
+ // TODO: Add error handling.
+
+ glBindTexture(GL_TEXTURE_CUBE_MAP, m_texture);
+
+ int index = 0;
+ foreach (QString file, fileNames) {
+ QImage image(file);
+ if (image.isNull()) {
+ m_failed = true;
+ break;
+ }
+
+ image = image.convertToFormat(QImage::Format_ARGB32);
+
+ //qDebug() << "Image size:" << image.width() << "x" << image.height();
+ if (size <= 0)
+ size = image.width();
+ if (size != image.width() || size != image.height())
+ image = image.scaled(size, size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+
+ // Works on x86, so probably works on all little-endian systems.
+ // Does it work on big-endian systems?
+ glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + index, 0, 4, image.width(), image.height(), 0,
+ GL_BGRA, GL_UNSIGNED_BYTE, image.bits());
+
+ if (++index == 6)
+ break;
+ }
+
+ // Clear remaining faces.
+ while (index < 6) {
+ glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + index, 0, 4, size, size, 0,
+ GL_BGRA, GL_UNSIGNED_BYTE, 0);
+ ++index;
+ }
+
+ glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ //glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ //glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_GENERATE_MIPMAP, GL_TRUE);
+ glBindTexture(GL_TEXTURE_CUBE_MAP, 0);
+}
+
+void GLTextureCube::load(int size, int face, QRgb *data)
+{
+ glBindTexture(GL_TEXTURE_CUBE_MAP, m_texture);
+ glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, 4, size, size, 0,
+ GL_BGRA, GL_UNSIGNED_BYTE, data);
+ glBindTexture(GL_TEXTURE_CUBE_MAP, 0);
+}
+
+void GLTextureCube::bind()
+{
+ glBindTexture(GL_TEXTURE_CUBE_MAP, m_texture);
+ glEnable(GL_TEXTURE_CUBE_MAP);
+}
+
+void GLTextureCube::unbind()
+{
+ glBindTexture(GL_TEXTURE_CUBE_MAP, 0);
+ glDisable(GL_TEXTURE_CUBE_MAP);
+}
+
+//============================================================================//
+// GLFrameBufferObject //
+//============================================================================//
+
+GLFrameBufferObject::GLFrameBufferObject(int width, int height)
+ : m_fbo(0)
+ , m_depthBuffer(0)
+ , m_width(width)
+ , m_height(height)
+ , m_failed(false)
+{
+ GLBUFFERS_ASSERT_OPENGL("GLFrameBufferObject::GLFrameBufferObject",
+ glGenFramebuffersEXT && glGenRenderbuffersEXT && glBindRenderbufferEXT && glRenderbufferStorageEXT, return)
+
+ // TODO: share depth buffers of same size
+ glGenFramebuffersEXT(1, &m_fbo);
+ //glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_fbo);
+ glGenRenderbuffersEXT(1, &m_depthBuffer);
+ glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, m_depthBuffer);
+ glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, m_width, m_height);
+ //glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, m_depthBuffer);
+ //glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
+}
+
+GLFrameBufferObject::~GLFrameBufferObject()
+{
+ GLBUFFERS_ASSERT_OPENGL("GLFrameBufferObject::~GLFrameBufferObject",
+ glDeleteFramebuffersEXT && glDeleteRenderbuffersEXT, return)
+
+ glDeleteFramebuffersEXT(1, &m_fbo);
+ glDeleteRenderbuffersEXT(1, &m_depthBuffer);
+}
+
+void GLFrameBufferObject::setAsRenderTarget(bool state)
+{
+ GLBUFFERS_ASSERT_OPENGL("GLFrameBufferObject::setAsRenderTarget", glBindFramebufferEXT, return)
+
+ if (state) {
+ glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_fbo);
+ glPushAttrib(GL_VIEWPORT_BIT);
+ glViewport(0, 0, m_width, m_height);
+ } else {
+ glPopAttrib();
+ glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
+ }
+}
+
+bool GLFrameBufferObject::isComplete()
+{
+ GLBUFFERS_ASSERT_OPENGL("GLFrameBufferObject::isComplete", glCheckFramebufferStatusEXT, return false)
+
+ return GL_FRAMEBUFFER_COMPLETE_EXT == glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
+}
+
+//============================================================================//
+// GLRenderTargetCube //
+//============================================================================//
+
+GLRenderTargetCube::GLRenderTargetCube(int size)
+ : GLTextureCube(size)
+ , m_fbo(size, size)
+{
+}
+
+void GLRenderTargetCube::begin(int face)
+{
+ GLBUFFERS_ASSERT_OPENGL("GLRenderTargetCube::begin",
+ glFramebufferTexture2DEXT && glFramebufferRenderbufferEXT, return)
+
+ m_fbo.setAsRenderTarget(true);
+ glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
+ GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, m_texture, 0);
+ glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, m_fbo.m_depthBuffer);
+}
+
+void GLRenderTargetCube::end()
+{
+ m_fbo.setAsRenderTarget(false);
+}
+
+void GLRenderTargetCube::getViewMatrix(gfx::Matrix4x4f& mat, int face)
+{
+ if (face < 0 || face >= 6) {
+ qWarning("GLRenderTargetCube::getViewMatrix: 'face' must be in the range [0, 6). (face == %d)", face);
+ return;
+ }
+
+ static int perm[6][3] = {
+ {2, 1, 0},
+ {2, 1, 0},
+ {0, 2, 1},
+ {0, 2, 1},
+ {0, 1, 2},
+ {0, 1, 2},
+ };
+
+ static float signs[6][3] = {
+ {-1.0f, -1.0f, -1.0f},
+ {+1.0f, -1.0f, +1.0f},
+ {+1.0f, +1.0f, -1.0f},
+ {+1.0f, -1.0f, +1.0f},
+ {+1.0f, -1.0f, -1.0f},
+ {-1.0f, -1.0f, +1.0f},
+ };
+
+ memset(mat.bits(), 0, sizeof(float) * 16);
+ for (int i = 0; i < 3; ++i)
+ mat(perm[face][i], i) = signs[face][i];
+ mat(3, 3) = 1.0f;
+}
+
+void GLRenderTargetCube::getProjectionMatrix(gfx::Matrix4x4f& mat, float nearZ, float farZ)
+{
+ float proj[] = {
+ 1.0f, 0.0f, 0.0f, 0.0f,
+ 0.0f, 1.0f, 0.0f, 0.0f,
+ 0.0f, 0.0f, (nearZ+farZ)/(nearZ-farZ), -1.0f,
+ 0.0f, 0.0f, 2.0f*nearZ*farZ/(nearZ-farZ), 0.0f,
+ };
+
+ memcpy(mat.bits(), proj, sizeof(float) * 16);
+}
diff --git a/demos/boxes/glbuffers.h b/demos/boxes/glbuffers.h
new file mode 100644
index 0000000..88de4e8
--- /dev/null
+++ b/demos/boxes/glbuffers.h
@@ -0,0 +1,362 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef GLBUFFERS_H
+#define GLBUFFERS_H
+
+//#include <GL/glew.h>
+#include "glextensions.h"
+
+#include <QtGui>
+#include <QtOpenGL>
+
+#include "vector.h"
+
+#define BUFFER_OFFSET(i) ((char*)0 + (i))
+#define SIZE_OF_MEMBER(cls, member) sizeof(static_cast<cls *>(0)->member)
+
+#define GLBUFFERS_ASSERT_OPENGL(prefix, assertion, returnStatement) \
+if (m_failed || !(assertion)) { \
+ if (!m_failed) qCritical(prefix ": The necessary OpenGL functions are not available."); \
+ m_failed = true; \
+ returnStatement; \
+}
+
+class GLTexture
+{
+public:
+ GLTexture();
+ virtual ~GLTexture();
+ virtual void bind() = 0;
+ virtual void unbind() = 0;
+ virtual bool failed() const {return m_failed;}
+protected:
+ GLuint m_texture;
+ bool m_failed;
+};
+
+class GLFrameBufferObject
+{
+public:
+ friend class GLRenderTargetCube;
+ // friend class GLRenderTarget2D;
+
+ GLFrameBufferObject(int width, int height);
+ virtual ~GLFrameBufferObject();
+ bool isComplete();
+ virtual bool failed() const {return m_failed;}
+protected:
+ void setAsRenderTarget(bool state = true);
+ GLuint m_fbo;
+ GLuint m_depthBuffer;
+ int m_width, m_height;
+ bool m_failed;
+};
+
+class GLTexture2D : public GLTexture
+{
+public:
+ GLTexture2D(int width, int height);
+ GLTexture2D(const QString& fileName, int width = 0, int height = 0);
+ void load(int width, int height, QRgb *data);
+ virtual void bind();
+ virtual void unbind();
+};
+
+class GLTexture3D : public GLTexture
+{
+public:
+ GLTexture3D(int width, int height, int depth);
+ // TODO: Implement function below
+ //GLTexture3D(const QString& fileName, int width = 0, int height = 0);
+ void load(int width, int height, int depth, QRgb *data);
+ virtual void bind();
+ virtual void unbind();
+};
+
+class GLTextureCube : public GLTexture
+{
+public:
+ GLTextureCube(int size);
+ GLTextureCube(const QStringList& fileNames, int size = 0);
+ void load(int size, int face, QRgb *data);
+ virtual void bind();
+ virtual void unbind();
+};
+
+// TODO: Define and implement class below
+//class GLRenderTarget2D : public GLTexture2D
+
+class GLRenderTargetCube : public GLTextureCube
+{
+public:
+ GLRenderTargetCube(int size);
+ // begin rendering to one of the cube's faces. 0 <= face < 6
+ void begin(int face);
+ // end rendering
+ void end();
+ virtual bool failed() {return m_failed || m_fbo.failed();}
+
+ static void getViewMatrix(gfx::Matrix4x4f& mat, int face);
+ static void getProjectionMatrix(gfx::Matrix4x4f& mat, float nearZ, float farZ);
+private:
+ GLFrameBufferObject m_fbo;
+};
+
+struct VertexDescription
+{
+ enum
+ {
+ Null = 0, // Terminates a VertexDescription array
+ Position,
+ TexCoord,
+ Normal,
+ Color,
+ };
+ int field; // Position, TexCoord, Normal, Color
+ int type; // GL_FLOAT, GL_UNSIGNED_BYTE
+ int count; // number of elements
+ int offset; // field's offset into vertex struct
+ int index; // 0 (unused at the moment)
+};
+
+// Implementation of interleaved buffers.
+// 'T' is a struct which must include a null-terminated static array
+// 'VertexDescription* description'.
+// Example:
+/*
+struct Vertex
+{
+ GLfloat position[3];
+ GLfloat texCoord[2];
+ GLfloat normal[3];
+ GLbyte color[4];
+ static VertexDescription description[];
+};
+
+VertexDescription Vertex::description[] = {
+ {VertexDescription::Position, GL_FLOAT, SIZE_OF_MEMBER(Vertex, position) / sizeof(GLfloat), offsetof(Vertex, position), 0},
+ {VertexDescription::TexCoord, GL_FLOAT, SIZE_OF_MEMBER(Vertex, texCoord) / sizeof(GLfloat), offsetof(Vertex, texCoord), 0},
+ {VertexDescription::Normal, GL_FLOAT, SIZE_OF_MEMBER(Vertex, normal) / sizeof(GLfloat), offsetof(Vertex, normal), 0},
+ {VertexDescription::Color, GL_BYTE, SIZE_OF_MEMBER(Vertex, color) / sizeof(GLbyte), offsetof(Vertex, color), 0},
+ {VertexDescription::Null, 0, 0, 0, 0},
+};
+*/
+template<class T>
+class GLVertexBuffer
+{
+public:
+ GLVertexBuffer(int length, const T *data = 0, int mode = GL_STATIC_DRAW)
+ : m_length(0)
+ , m_mode(mode)
+ , m_buffer(0)
+ , m_failed(false)
+ {
+ GLBUFFERS_ASSERT_OPENGL("GLVertexBuffer::GLVertexBuffer", glGenBuffers && glBindBuffer && glBufferData, return)
+
+ glGenBuffers(1, &m_buffer);
+ glBindBuffer(GL_ARRAY_BUFFER, m_buffer);
+ glBufferData(GL_ARRAY_BUFFER, (m_length = length) * sizeof(T), data, mode);
+ }
+
+ ~GLVertexBuffer()
+ {
+ GLBUFFERS_ASSERT_OPENGL("GLVertexBuffer::~GLVertexBuffer", glDeleteBuffers, return)
+
+ glDeleteBuffers(1, &m_buffer);
+ }
+
+ void bind()
+ {
+ GLBUFFERS_ASSERT_OPENGL("GLVertexBuffer::bind", glBindBuffer, return)
+
+ glBindBuffer(GL_ARRAY_BUFFER, m_buffer);
+ for (VertexDescription *desc = T::description; desc->field != VertexDescription::Null; ++desc) {
+ switch (desc->field) {
+ case VertexDescription::Position:
+ glVertexPointer(desc->count, desc->type, sizeof(T), BUFFER_OFFSET(desc->offset));
+ glEnableClientState(GL_VERTEX_ARRAY);
+ break;
+ case VertexDescription::TexCoord:
+ glTexCoordPointer(desc->count, desc->type, sizeof(T), BUFFER_OFFSET(desc->offset));
+ glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+ break;
+ case VertexDescription::Normal:
+ glNormalPointer(desc->type, sizeof(T), BUFFER_OFFSET(desc->offset));
+ glEnableClientState(GL_NORMAL_ARRAY);
+ break;
+ case VertexDescription::Color:
+ glColorPointer(desc->count, desc->type, sizeof(T), BUFFER_OFFSET(desc->offset));
+ glEnableClientState(GL_COLOR_ARRAY);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ void unbind()
+ {
+ GLBUFFERS_ASSERT_OPENGL("GLVertexBuffer::unbind", glBindBuffer, return)
+
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
+ for (VertexDescription *desc = T::description; desc->field != VertexDescription::Null; ++desc) {
+ switch (desc->field) {
+ case VertexDescription::Position:
+ glDisableClientState(GL_VERTEX_ARRAY);
+ break;
+ case VertexDescription::TexCoord:
+ glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+ break;
+ case VertexDescription::Normal:
+ glDisableClientState(GL_NORMAL_ARRAY);
+ break;
+ case VertexDescription::Color:
+ glDisableClientState(GL_COLOR_ARRAY);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ int length() const {return m_length;}
+
+ T *lock()
+ {
+ GLBUFFERS_ASSERT_OPENGL("GLVertexBuffer::lock", glBindBuffer && glMapBuffer, return 0)
+
+ glBindBuffer(GL_ARRAY_BUFFER, m_buffer);
+ //glBufferData(GL_ARRAY_BUFFER, m_length, NULL, m_mode);
+ GLvoid* buffer = glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE);
+ m_failed = (buffer == 0);
+ return reinterpret_cast<T *>(buffer);
+ }
+
+ void unlock()
+ {
+ GLBUFFERS_ASSERT_OPENGL("GLVertexBuffer::unlock", glBindBuffer && glUnmapBuffer, return)
+
+ glBindBuffer(GL_ARRAY_BUFFER, m_buffer);
+ glUnmapBuffer(GL_ARRAY_BUFFER);
+ }
+
+ bool failed()
+ {
+ return m_failed;
+ }
+
+private:
+ int m_length, m_mode;
+ GLuint m_buffer;
+ bool m_failed;
+};
+
+template<class T>
+class GLIndexBuffer
+{
+public:
+ GLIndexBuffer(int length, const T *data = 0, int mode = GL_STATIC_DRAW)
+ : m_length(0)
+ , m_mode(mode)
+ , m_buffer(0)
+ , m_failed(false)
+ {
+ GLBUFFERS_ASSERT_OPENGL("GLIndexBuffer::GLIndexBuffer", glGenBuffers && glBindBuffer && glBufferData, return)
+
+ glGenBuffers(1, &m_buffer);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_buffer);
+ glBufferData(GL_ELEMENT_ARRAY_BUFFER, (m_length = length) * sizeof(T), data, mode);
+ }
+
+ ~GLIndexBuffer()
+ {
+ GLBUFFERS_ASSERT_OPENGL("GLIndexBuffer::~GLIndexBuffer", glDeleteBuffers, return)
+
+ glDeleteBuffers(1, &m_buffer);
+ }
+
+ void bind()
+ {
+ GLBUFFERS_ASSERT_OPENGL("GLIndexBuffer::bind", glBindBuffer, return)
+
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_buffer);
+ }
+
+ void unbind()
+ {
+ GLBUFFERS_ASSERT_OPENGL("GLIndexBuffer::unbind", glBindBuffer, return)
+
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
+ }
+
+ int length() const {return m_length;}
+
+ T *lock()
+ {
+ GLBUFFERS_ASSERT_OPENGL("GLIndexBuffer::lock", glBindBuffer && glMapBuffer, return 0)
+
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_buffer);
+ GLvoid* buffer = glMapBuffer(GL_ELEMENT_ARRAY_BUFFER, GL_READ_WRITE);
+ m_failed = (buffer == 0);
+ return reinterpret_cast<T *>(buffer);
+ }
+
+ void unlock()
+ {
+ GLBUFFERS_ASSERT_OPENGL("GLIndexBuffer::unlock", glBindBuffer && glUnmapBuffer, return)
+
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_buffer);
+ glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER);
+ }
+
+ bool failed()
+ {
+ return m_failed;
+ }
+
+private:
+ int m_length, m_mode;
+ GLuint m_buffer;
+ bool m_failed;
+};
+
+#endif
diff --git a/demos/boxes/glextensions.cpp b/demos/boxes/glextensions.cpp
new file mode 100644
index 0000000..59256a8
--- /dev/null
+++ b/demos/boxes/glextensions.cpp
@@ -0,0 +1,135 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "glextensions.h"
+
+#define RESOLVE_GL_FUNC(f) ok &= bool((f = (_gl##f) context->getProcAddress(QLatin1String("gl" #f))));
+
+bool GLExtensionFunctions::resolve(const QGLContext *context)
+{
+ bool ok = true;
+
+ RESOLVE_GL_FUNC(CreateShaderObjectARB)
+ RESOLVE_GL_FUNC(ShaderSourceARB)
+ RESOLVE_GL_FUNC(CompileShaderARB)
+ RESOLVE_GL_FUNC(GetObjectParameterivARB)
+ RESOLVE_GL_FUNC(DeleteObjectARB)
+ RESOLVE_GL_FUNC(GetInfoLogARB)
+ RESOLVE_GL_FUNC(CreateProgramObjectARB)
+ RESOLVE_GL_FUNC(AttachObjectARB)
+ RESOLVE_GL_FUNC(DetachObjectARB)
+ RESOLVE_GL_FUNC(LinkProgramARB)
+ RESOLVE_GL_FUNC(UseProgramObjectARB)
+ RESOLVE_GL_FUNC(GetUniformLocationARB)
+ RESOLVE_GL_FUNC(Uniform1iARB)
+ RESOLVE_GL_FUNC(Uniform1fARB)
+ RESOLVE_GL_FUNC(Uniform4fARB)
+ RESOLVE_GL_FUNC(UniformMatrix4fvARB)
+
+ RESOLVE_GL_FUNC(GenFramebuffersEXT)
+ RESOLVE_GL_FUNC(GenRenderbuffersEXT)
+ RESOLVE_GL_FUNC(BindRenderbufferEXT)
+ RESOLVE_GL_FUNC(RenderbufferStorageEXT)
+ RESOLVE_GL_FUNC(DeleteFramebuffersEXT)
+ RESOLVE_GL_FUNC(DeleteRenderbuffersEXT)
+ RESOLVE_GL_FUNC(BindFramebufferEXT)
+ RESOLVE_GL_FUNC(FramebufferTexture2DEXT)
+ RESOLVE_GL_FUNC(FramebufferRenderbufferEXT)
+ RESOLVE_GL_FUNC(CheckFramebufferStatusEXT)
+
+ RESOLVE_GL_FUNC(ActiveTexture)
+ RESOLVE_GL_FUNC(TexImage3D)
+
+ RESOLVE_GL_FUNC(GenBuffers)
+ RESOLVE_GL_FUNC(BindBuffer)
+ RESOLVE_GL_FUNC(BufferData)
+ RESOLVE_GL_FUNC(DeleteBuffers)
+ RESOLVE_GL_FUNC(MapBuffer)
+ RESOLVE_GL_FUNC(UnmapBuffer)
+
+ return ok;
+}
+
+bool GLExtensionFunctions::glslSupported() {
+ return CreateShaderObjectARB
+ && CreateShaderObjectARB
+ && ShaderSourceARB
+ && CompileShaderARB
+ && GetObjectParameterivARB
+ && DeleteObjectARB
+ && GetInfoLogARB
+ && CreateProgramObjectARB
+ && AttachObjectARB
+ && DetachObjectARB
+ && LinkProgramARB
+ && UseProgramObjectARB
+ && GetUniformLocationARB
+ && Uniform1iARB
+ && Uniform1fARB
+ && Uniform4fARB
+ && UniformMatrix4fvARB;
+}
+
+bool GLExtensionFunctions::fboSupported() {
+ return GenFramebuffersEXT
+ && GenRenderbuffersEXT
+ && BindRenderbufferEXT
+ && RenderbufferStorageEXT
+ && DeleteFramebuffersEXT
+ && DeleteRenderbuffersEXT
+ && BindFramebufferEXT
+ && FramebufferTexture2DEXT
+ && FramebufferRenderbufferEXT
+ && CheckFramebufferStatusEXT;
+}
+
+bool GLExtensionFunctions::openGL15Supported() {
+ return ActiveTexture
+ && TexImage3D
+ && GenBuffers
+ && BindBuffer
+ && BufferData
+ && DeleteBuffers
+ && MapBuffer
+ && UnmapBuffer;
+}
+
+#undef RESOLVE_GL_FUNC
diff --git a/demos/boxes/glextensions.h b/demos/boxes/glextensions.h
new file mode 100644
index 0000000..74617d6
--- /dev/null
+++ b/demos/boxes/glextensions.h
@@ -0,0 +1,284 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef GLEXTENSIONS_H
+#define GLEXTENSIONS_H
+
+#include <QtOpenGL>
+
+/*
+Functions resolved:
+
+glCreateShaderObjectARB
+glShaderSourceARB
+glCompileShaderARB
+glGetObjectParameterivARB
+glDeleteObjectARB
+glGetInfoLogARB
+glCreateProgramObjectARB
+glAttachObjectARB
+glDetachObjectARB
+glLinkProgramARB
+glUseProgramObjectARB
+glGetUniformLocationARB
+glUniform1iARB
+glUniform1fARB
+glUniform4fARB
+glUniformMatrix4fvARB
+
+glGenFramebuffersEXT
+glGenRenderbuffersEXT
+glBindRenderbufferEXT
+glRenderbufferStorageEXT
+glDeleteFramebuffersEXT
+glDeleteRenderbuffersEXT
+glBindFramebufferEXT
+glFramebufferTexture2DEXT
+glFramebufferRenderbufferEXT
+glCheckFramebufferStatusEXT
+
+glActiveTexture
+glTexImage3D
+
+glGenBuffers
+glBindBuffer
+glBufferData
+glDeleteBuffers
+glMapBuffer
+glUnmapBuffer
+*/
+
+#ifndef Q_WS_MAC
+# ifndef APIENTRYP
+# ifdef APIENTRY
+# define APIENTRYP APIENTRY *
+# else
+# define APIENTRY
+# define APIENTRYP *
+# endif
+# endif
+#else
+# define APIENTRY
+# define APIENTRYP *
+#endif
+
+#ifndef GL_VERSION_1_2
+#define GL_TEXTURE_3D 0x806F
+#define GL_TEXTURE_WRAP_R 0x8072
+#define GL_CLAMP_TO_EDGE 0x812F
+#define GL_BGRA 0x80E1
+#endif
+
+#ifndef GL_VERSION_1_3
+#define GL_TEXTURE0 0x84C0
+#define GL_TEXTURE1 0x84C1
+#define GL_TEXTURE2 0x84C2
+#define GL_TEXTURE_CUBE_MAP 0x8513
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
+//#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
+//#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
+//#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
+//#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
+//#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
+#endif
+
+#ifndef GL_VERSION_1_5
+typedef ptrdiff_t GLsizeiptr;
+#define GL_ARRAY_BUFFER 0x8892
+#define GL_ELEMENT_ARRAY_BUFFER 0x8893
+#define GL_READ_WRITE 0x88BA
+#define GL_STATIC_DRAW 0x88E4
+#endif
+
+#ifndef GL_EXT_framebuffer_object
+#define GL_RENDERBUFFER_EXT 0x8D41
+#define GL_FRAMEBUFFER_EXT 0x8D40
+#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
+#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
+#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
+#endif
+
+#ifndef GL_ARB_vertex_shader
+#define GL_VERTEX_SHADER_ARB 0x8B31
+#endif
+
+#ifndef GL_ARB_fragment_shader
+#define GL_FRAGMENT_SHADER_ARB 0x8B30
+#endif
+
+#ifndef GL_ARB_shader_objects
+typedef char GLcharARB;
+typedef unsigned int GLhandleARB;
+#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
+#define GL_OBJECT_LINK_STATUS_ARB 0x8B82
+#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
+#endif
+
+typedef GLhandleARB (APIENTRY *_glCreateShaderObjectARB) (GLenum);
+typedef void (APIENTRY *_glShaderSourceARB) (GLhandleARB, GLuint, const GLcharARB**, GLint *);
+typedef void (APIENTRY *_glCompileShaderARB) (GLhandleARB);
+typedef void (APIENTRY *_glGetObjectParameterivARB) (GLhandleARB, GLenum, int *);
+typedef void (APIENTRY *_glDeleteObjectARB) (GLhandleARB);
+typedef void (APIENTRY *_glGetInfoLogARB) (GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
+typedef GLhandleARB (APIENTRY *_glCreateProgramObjectARB) ();
+typedef void (APIENTRY *_glAttachObjectARB) (GLhandleARB, GLhandleARB);
+typedef void (APIENTRY *_glDetachObjectARB) (GLhandleARB, GLhandleARB);
+typedef void (APIENTRY *_glLinkProgramARB) (GLhandleARB);
+typedef void (APIENTRY *_glUseProgramObjectARB) (GLhandleARB);
+typedef GLint (APIENTRY *_glGetUniformLocationARB) (GLhandleARB, const GLcharARB *);
+typedef void (APIENTRY *_glUniform1iARB) (GLint, GLint);
+typedef void (APIENTRY *_glUniform1fARB) (GLint, GLfloat);
+typedef void (APIENTRY *_glUniform4fARB) (GLint, GLfloat, GLfloat, GLfloat, GLfloat);
+typedef void (APIENTRY *_glUniformMatrix4fvARB) (GLint, GLuint, GLboolean, const GLfloat *);
+
+typedef void (APIENTRY *_glGenFramebuffersEXT) (GLsizei, GLuint *);
+typedef void (APIENTRY *_glGenRenderbuffersEXT) (GLsizei, GLuint *);
+typedef void (APIENTRY *_glBindRenderbufferEXT) (GLenum, GLuint);
+typedef void (APIENTRY *_glRenderbufferStorageEXT) (GLenum, GLenum, GLsizei, GLsizei);
+typedef void (APIENTRY *_glDeleteFramebuffersEXT) (GLsizei, const GLuint*);
+typedef void (APIENTRY *_glDeleteRenderbuffersEXT) (GLsizei, const GLuint*);
+typedef void (APIENTRY *_glBindFramebufferEXT) (GLenum, GLuint);
+typedef void (APIENTRY *_glFramebufferTexture2DEXT) (GLenum, GLenum, GLenum, GLuint, GLint);
+typedef void (APIENTRY *_glFramebufferRenderbufferEXT) (GLenum, GLenum, GLenum, GLuint);
+typedef GLenum (APIENTRY *_glCheckFramebufferStatusEXT) (GLenum);
+
+typedef void (APIENTRY *_glActiveTexture) (GLenum);
+typedef void (APIENTRY *_glTexImage3D) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+
+typedef void (APIENTRY *_glGenBuffers) (GLsizei, GLuint *);
+typedef void (APIENTRY *_glBindBuffer) (GLenum, GLuint);
+typedef void (APIENTRY *_glBufferData) (GLenum, GLsizeiptr, const GLvoid *, GLenum);
+typedef void (APIENTRY *_glDeleteBuffers) (GLsizei, const GLuint *);
+typedef void *(APIENTRY *_glMapBuffer) (GLenum, GLenum);
+typedef GLboolean (APIENTRY *_glUnmapBuffer) (GLenum);
+
+struct GLExtensionFunctions
+{
+ bool resolve(const QGLContext *context);
+
+ bool glslSupported();
+ bool fboSupported();
+ bool openGL15Supported(); // the rest: multi-texture, 3D-texture, vertex buffer objects
+
+ _glCreateShaderObjectARB CreateShaderObjectARB;
+ _glShaderSourceARB ShaderSourceARB;
+ _glCompileShaderARB CompileShaderARB;
+ _glGetObjectParameterivARB GetObjectParameterivARB;
+ _glDeleteObjectARB DeleteObjectARB;
+ _glGetInfoLogARB GetInfoLogARB;
+ _glCreateProgramObjectARB CreateProgramObjectARB;
+ _glAttachObjectARB AttachObjectARB;
+ _glDetachObjectARB DetachObjectARB;
+ _glLinkProgramARB LinkProgramARB;
+ _glUseProgramObjectARB UseProgramObjectARB;
+ _glGetUniformLocationARB GetUniformLocationARB;
+ _glUniform1iARB Uniform1iARB;
+ _glUniform1fARB Uniform1fARB;
+ _glUniform4fARB Uniform4fARB;
+ _glUniformMatrix4fvARB UniformMatrix4fvARB;
+
+ _glGenFramebuffersEXT GenFramebuffersEXT;
+ _glGenRenderbuffersEXT GenRenderbuffersEXT;
+ _glBindRenderbufferEXT BindRenderbufferEXT;
+ _glRenderbufferStorageEXT RenderbufferStorageEXT;
+ _glDeleteFramebuffersEXT DeleteFramebuffersEXT;
+ _glDeleteRenderbuffersEXT DeleteRenderbuffersEXT;
+ _glBindFramebufferEXT BindFramebufferEXT;
+ _glFramebufferTexture2DEXT FramebufferTexture2DEXT;
+ _glFramebufferRenderbufferEXT FramebufferRenderbufferEXT;
+ _glCheckFramebufferStatusEXT CheckFramebufferStatusEXT;
+
+ _glActiveTexture ActiveTexture;
+ _glTexImage3D TexImage3D;
+
+ _glGenBuffers GenBuffers;
+ _glBindBuffer BindBuffer;
+ _glBufferData BufferData;
+ _glDeleteBuffers DeleteBuffers;
+ _glMapBuffer MapBuffer;
+ _glUnmapBuffer UnmapBuffer;
+};
+
+inline GLExtensionFunctions &getGLExtensionFunctions()
+{
+ static GLExtensionFunctions funcs;
+ return funcs;
+}
+
+#define glCreateShaderObjectARB getGLExtensionFunctions().CreateShaderObjectARB
+#define glShaderSourceARB getGLExtensionFunctions().ShaderSourceARB
+#define glCompileShaderARB getGLExtensionFunctions().CompileShaderARB
+#define glGetObjectParameterivARB getGLExtensionFunctions().GetObjectParameterivARB
+#define glDeleteObjectARB getGLExtensionFunctions().DeleteObjectARB
+#define glGetInfoLogARB getGLExtensionFunctions().GetInfoLogARB
+#define glCreateProgramObjectARB getGLExtensionFunctions().CreateProgramObjectARB
+#define glAttachObjectARB getGLExtensionFunctions().AttachObjectARB
+#define glDetachObjectARB getGLExtensionFunctions().DetachObjectARB
+#define glLinkProgramARB getGLExtensionFunctions().LinkProgramARB
+#define glUseProgramObjectARB getGLExtensionFunctions().UseProgramObjectARB
+#define glGetUniformLocationARB getGLExtensionFunctions().GetUniformLocationARB
+#define glUniform1iARB getGLExtensionFunctions().Uniform1iARB
+#define glUniform1fARB getGLExtensionFunctions().Uniform1fARB
+#define glUniform4fARB getGLExtensionFunctions().Uniform4fARB
+#define glUniformMatrix4fvARB getGLExtensionFunctions().UniformMatrix4fvARB
+
+#define glGenFramebuffersEXT getGLExtensionFunctions().GenFramebuffersEXT
+#define glGenRenderbuffersEXT getGLExtensionFunctions().GenRenderbuffersEXT
+#define glBindRenderbufferEXT getGLExtensionFunctions().BindRenderbufferEXT
+#define glRenderbufferStorageEXT getGLExtensionFunctions().RenderbufferStorageEXT
+#define glDeleteFramebuffersEXT getGLExtensionFunctions().DeleteFramebuffersEXT
+#define glDeleteRenderbuffersEXT getGLExtensionFunctions().DeleteRenderbuffersEXT
+#define glBindFramebufferEXT getGLExtensionFunctions().BindFramebufferEXT
+#define glFramebufferTexture2DEXT getGLExtensionFunctions().FramebufferTexture2DEXT
+#define glFramebufferRenderbufferEXT getGLExtensionFunctions().FramebufferRenderbufferEXT
+#define glCheckFramebufferStatusEXT getGLExtensionFunctions().CheckFramebufferStatusEXT
+
+#define glActiveTexture getGLExtensionFunctions().ActiveTexture
+#define glTexImage3D getGLExtensionFunctions().TexImage3D
+
+#define glGenBuffers getGLExtensionFunctions().GenBuffers
+#define glBindBuffer getGLExtensionFunctions().BindBuffer
+#define glBufferData getGLExtensionFunctions().BufferData
+#define glDeleteBuffers getGLExtensionFunctions().DeleteBuffers
+#define glMapBuffer getGLExtensionFunctions().MapBuffer
+#define glUnmapBuffer getGLExtensionFunctions().UnmapBuffer
+
+#endif
diff --git a/demos/boxes/glshaders.cpp b/demos/boxes/glshaders.cpp
new file mode 100644
index 0000000..b6999a8
--- /dev/null
+++ b/demos/boxes/glshaders.cpp
@@ -0,0 +1,266 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "glshaders.h"
+
+#define GLSHADERS_ASSERT_OPENGL(prefix, assertion, returnStatement) \
+if (m_failed || !(assertion)) { \
+ if (!m_failed) qCritical(prefix ": The necessary OpenGL functions are not available."); \
+ m_failed = true; \
+ returnStatement; \
+}
+
+
+GLShader::GLShader(const char *data, int size, GLenum shaderType)
+: m_compileError(false), m_failed(false)
+{
+ GLSHADERS_ASSERT_OPENGL("GLShader::GLShader",
+ glCreateShaderObjectARB && glShaderSourceARB && glCompileShaderARB && glGetObjectParameterivARB, return)
+
+ m_shader = glCreateShaderObjectARB(shaderType);
+
+ GLint glSize = size;
+ glShaderSourceARB(m_shader, 1, &data, &glSize);
+ glCompileShaderARB(m_shader);
+ int status;
+ glGetObjectParameterivARB(m_shader, GL_OBJECT_COMPILE_STATUS_ARB, &status);
+ m_compileError = (status != 1);
+}
+
+GLShader::GLShader(const QString& fileName, GLenum shaderType)
+ : m_compileError(false), m_failed(false)
+{
+ GLSHADERS_ASSERT_OPENGL("GLShader::GLShader",
+ glCreateShaderObjectARB && glShaderSourceARB && glCompileShaderARB && glGetObjectParameterivARB, return)
+
+ m_shader = glCreateShaderObjectARB(shaderType);
+
+ QFile file(fileName);
+ if (file.open(QIODevice::ReadOnly)) {
+ QByteArray bytes = file.readAll();
+ GLint size = file.size();
+ const char *p = bytes.data();
+ file.close();
+ glShaderSourceARB(m_shader, 1, &p, &size);
+ glCompileShaderARB(m_shader);
+ int status;
+ glGetObjectParameterivARB(m_shader, GL_OBJECT_COMPILE_STATUS_ARB, &status);
+ m_compileError = (status != 1);
+ } else {
+ m_compileError = true;
+ }
+}
+
+GLShader::~GLShader()
+{
+ GLSHADERS_ASSERT_OPENGL("GLShader::~GLShader", glDeleteObjectARB, return)
+
+ glDeleteObjectARB(m_shader);
+}
+
+QString GLShader::log()
+{
+ GLSHADERS_ASSERT_OPENGL("GLShader::log", glGetObjectParameterivARB
+ && glGetInfoLogARB, return QLatin1String("GLSL not supported."))
+
+ int length;
+ glGetObjectParameterivARB(m_shader, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length);
+ char *log = new char[length + 1];
+ GLsizei glLength = length;
+ glGetInfoLogARB(m_shader, glLength, &glLength, log);
+ log[glLength] = '\0';
+ QString result(log);
+ delete log;
+ return result;
+}
+
+GLVertexShader::GLVertexShader(const char *data, int size) : GLShader(data, size, GL_VERTEX_SHADER_ARB)
+{
+}
+
+GLVertexShader::GLVertexShader(const QString& fileName) : GLShader(fileName, GL_VERTEX_SHADER_ARB)
+{
+}
+
+GLFragmentShader::GLFragmentShader(const char *data, int size) : GLShader(data, size, GL_FRAGMENT_SHADER_ARB)
+{
+}
+
+GLFragmentShader::GLFragmentShader(const QString& fileName) : GLShader(fileName, GL_FRAGMENT_SHADER_ARB)
+{
+}
+
+GLProgram::GLProgram() : m_linked(false), m_linkError(false), m_failed(false)
+{
+ GLSHADERS_ASSERT_OPENGL("GLProgram::GLProgram", glCreateProgramObjectARB, return)
+
+ m_program = glCreateProgramObjectARB();
+}
+
+GLProgram::~GLProgram()
+{
+ GLSHADERS_ASSERT_OPENGL("GLProgram::~GLProgram", glDeleteObjectARB, return)
+
+ glDeleteObjectARB(m_program);
+}
+
+void GLProgram::attach(const GLShader &shader)
+{
+ GLSHADERS_ASSERT_OPENGL("GLProgram::attach", glAttachObjectARB, return)
+
+ glAttachObjectARB(m_program, shader.m_shader);
+ m_linked = m_linkError = false;
+}
+
+void GLProgram::detach(const GLShader &shader)
+{
+ GLSHADERS_ASSERT_OPENGL("GLProgram::detach", glDetachObjectARB, return)
+
+ glDetachObjectARB(m_program, shader.m_shader);
+ m_linked = m_linkError = false;
+}
+
+bool GLProgram::failed()
+{
+ if (m_failed || m_linkError)
+ return true;
+
+ if (m_linked)
+ return false;
+
+ GLSHADERS_ASSERT_OPENGL("GLProgram::failed", glLinkProgramARB && glGetObjectParameterivARB, return true)
+
+ glLinkProgramARB(m_program);
+ int status;
+ glGetObjectParameterivARB(m_program, GL_OBJECT_LINK_STATUS_ARB, &status);
+ m_linkError = !(m_linked = (status == 1));
+ return m_linkError;
+}
+
+QString GLProgram::log()
+{
+ GLSHADERS_ASSERT_OPENGL("GLProgram::log", glGetObjectParameterivARB && glGetInfoLogARB,
+ return QLatin1String("Failed."))
+
+ int length;
+ glGetObjectParameterivARB(m_program, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length);
+ char *log = new char[length + 1];
+ GLsizei glLength = length;
+ glGetInfoLogARB(m_program, glLength, &glLength, log);
+ log[glLength] = '\0';
+ QString result(log);
+ delete log;
+ return result;
+}
+
+void GLProgram::bind()
+{
+ GLSHADERS_ASSERT_OPENGL("GLProgram::bind", glUseProgramObjectARB, return)
+
+ if (!failed())
+ glUseProgramObjectARB(m_program);
+}
+
+void GLProgram::unbind()
+{
+ GLSHADERS_ASSERT_OPENGL("GLProgram::bind", glUseProgramObjectARB, return)
+
+ glUseProgramObjectARB(0);
+}
+
+bool GLProgram::hasParameter(const QString& name)
+{
+ GLSHADERS_ASSERT_OPENGL("GLProgram::hasParameter", glGetUniformLocationARB, return false)
+
+ if (!failed()) {
+ QByteArray asciiName = name.toAscii();
+ return -1 != glGetUniformLocationARB(m_program, asciiName.data());
+ }
+ return false;
+}
+
+void GLProgram::setInt(const QString& name, int value)
+{
+ GLSHADERS_ASSERT_OPENGL("GLProgram::setInt", glGetUniformLocationARB && glUniform1iARB, return)
+
+ if (!failed()) {
+ QByteArray asciiName = name.toAscii();
+ int loc = glGetUniformLocationARB(m_program, asciiName.data());
+ glUniform1iARB(loc, value);
+ }
+}
+
+void GLProgram::setFloat(const QString& name, float value)
+{
+ GLSHADERS_ASSERT_OPENGL("GLProgram::setFloat", glGetUniformLocationARB && glUniform1fARB, return)
+
+ if (!failed()) {
+ QByteArray asciiName = name.toAscii();
+ int loc = glGetUniformLocationARB(m_program, asciiName.data());
+ glUniform1fARB(loc, value);
+ }
+}
+
+void GLProgram::setColor(const QString& name, QRgb value)
+{
+ GLSHADERS_ASSERT_OPENGL("GLProgram::setColor", glGetUniformLocationARB && glUniform4fARB, return)
+
+ //qDebug() << "Setting color" << name;
+ if (!failed()) {
+ QByteArray asciiName = name.toAscii();
+ int loc = glGetUniformLocationARB(m_program, asciiName.data());
+ //qDebug() << "Location of" << name << "is" << loc;
+ QColor color(value);
+ glUniform4fARB(loc, color.redF(), color.greenF(), color.blueF(), color.alphaF());
+ }
+}
+
+void GLProgram::setMatrix(const QString& name, const gfx::Matrix4x4f &mat)
+{
+ GLSHADERS_ASSERT_OPENGL("GLProgram::setMatrix", glGetUniformLocationARB && glUniformMatrix4fvARB, return)
+
+ if (!failed()) {
+ QByteArray asciiName = name.toAscii();
+ int loc = glGetUniformLocationARB(m_program, asciiName.data());
+ //qDebug() << "Location of" << name << "is" << loc;
+ glUniformMatrix4fvARB(loc, 1, GL_FALSE, mat.bits());
+ }
+} \ No newline at end of file
diff --git a/demos/boxes/glshaders.h b/demos/boxes/glshaders.h
new file mode 100644
index 0000000..2b6209a
--- /dev/null
+++ b/demos/boxes/glshaders.h
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef GLSHADERS_H
+#define GLSHADERS_H
+
+//#include <GL/glew.h>
+#include "glextensions.h"
+
+#include <QtGui>
+#include <QtOpenGL>
+
+#include "vector.h"
+
+class GLShader
+{
+public:
+ friend class GLProgram;
+ virtual ~GLShader();
+ bool failed() const {return m_failed;}
+ QString log();
+protected:
+ GLShader(const char *data, int size, GLenum shaderType);
+ GLShader(const QString& fileName, GLenum shaderType);
+
+ GLhandleARB m_shader;
+ bool m_compileError;
+ bool m_failed;
+};
+
+class GLVertexShader : public GLShader
+{
+public:
+ GLVertexShader(const char *data, int size);
+ GLVertexShader(const QString& fileName);
+};
+
+class GLFragmentShader : public GLShader
+{
+public:
+ GLFragmentShader(const char *data, int size);
+ GLFragmentShader(const QString& fileName);
+};
+
+class GLProgram
+{
+public:
+ GLProgram();
+ ~GLProgram();
+ void attach(const GLShader &shader);
+ void detach(const GLShader &shader);
+ void bind();
+ void unbind();
+ bool failed();
+ QString log();
+ bool hasParameter(const QString& name);
+ // use program before setting values
+ void setInt(const QString& name, int value);
+ void setFloat(const QString& name, float value);
+ void setColor(const QString& name, QRgb value);
+ void setMatrix(const QString& name, const gfx::Matrix4x4f &mat);
+ // TODO: add a bunch of set-functions for different types.
+private:
+ GLhandleARB m_program;
+ bool m_linked;
+ bool m_linkError;
+ bool m_failed;
+};
+
+#endif
diff --git a/demos/boxes/gltrianglemesh.h b/demos/boxes/gltrianglemesh.h
new file mode 100644
index 0000000..c06ce90
--- /dev/null
+++ b/demos/boxes/gltrianglemesh.h
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef GLTRIANGLEMESH_H
+#define GLTRIANGLEMESH_H
+
+//#include <GL/glew.h>
+#include "glextensions.h"
+
+#include <QtGui>
+#include <QtOpenGL>
+
+#include "glbuffers.h"
+
+template<class TVertex, class TIndex>
+class GLTriangleMesh
+{
+public:
+ GLTriangleMesh(int vertexCount, int indexCount) : m_vb(vertexCount), m_ib(indexCount)
+ {
+ }
+
+ virtual ~GLTriangleMesh()
+ {
+ }
+
+ virtual void draw()
+ {
+ if (failed())
+ return;
+
+ int type = GL_UNSIGNED_INT;
+ if (sizeof(TIndex) == sizeof(char)) type = GL_UNSIGNED_BYTE;
+ if (sizeof(TIndex) == sizeof(short)) type = GL_UNSIGNED_SHORT;
+
+ m_vb.bind();
+ m_ib.bind();
+ glDrawElements(GL_TRIANGLES, m_ib.length(), type, BUFFER_OFFSET(0));
+ m_vb.unbind();
+ m_ib.unbind();
+ }
+
+ bool failed()
+ {
+ return m_vb.failed() || m_ib.failed();
+ }
+protected:
+ GLVertexBuffer<TVertex> m_vb;
+ GLIndexBuffer<TIndex> m_ib;
+};
+
+
+#endif
diff --git a/demos/boxes/granite.fsh b/demos/boxes/granite.fsh
new file mode 100644
index 0000000..9b75d1d
--- /dev/null
+++ b/demos/boxes/granite.fsh
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+varying vec3 position, normal;
+varying vec4 specular, ambient, diffuse, lightDirection;
+
+uniform sampler2D tex;
+uniform sampler3D noise;
+
+//const vec4 graniteColors[3] = {vec4(0.0, 0.0, 0.0, 1), vec4(0.30, 0.15, 0.10, 1), vec4(0.80, 0.70, 0.75, 1)};
+uniform vec4 graniteColors[3];
+
+float steep(float x)
+{
+ return clamp(5.0 * x - 2.0, 0.0, 1.0);
+}
+
+void main()
+{
+ vec2 turbulence = vec2(0, 0);
+ float scale = 1.0;
+ for (int i = 0; i < 4; ++i) {
+ turbulence += scale * (texture3D(noise, gl_TexCoord[1].xyz / scale).xy - 0.5);
+ scale *= 0.5;
+ }
+
+ vec3 N = normalize(normal);
+ // assume directional light
+
+ gl_MaterialParameters M = gl_FrontMaterial;
+
+ float NdotL = dot(N, lightDirection.xyz);
+ float RdotL = dot(reflect(normalize(position), N), lightDirection.xyz);
+
+ vec4 unlitColor = mix(graniteColors[1], mix(graniteColors[0], graniteColors[2], steep(0.5 + turbulence.y)), 4.0 * abs(turbulence.x));
+ gl_FragColor = (ambient + diffuse * max(NdotL, 0.0)) * unlitColor +
+ M.specular * specular * pow(max(RdotL, 0.0), M.shininess);
+}
diff --git a/demos/boxes/main.cpp b/demos/boxes/main.cpp
new file mode 100644
index 0000000..10bbde1
--- /dev/null
+++ b/demos/boxes/main.cpp
@@ -0,0 +1,149 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//#include <GL/glew.h>
+#include "glextensions.h"
+
+#include "scene.h"
+
+#include <QtGui>
+#include <QGLWidget>
+
+class GraphicsView : public QGraphicsView
+{
+public:
+ GraphicsView()
+ {
+ setWindowTitle(tr("Boxes"));
+ setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
+ //setRenderHints(QPainter::SmoothPixmapTransform);
+ }
+
+protected:
+ void resizeEvent(QResizeEvent *event) {
+ if (scene())
+ scene()->setSceneRect(QRect(QPoint(0, 0), event->size()));
+ QGraphicsView::resizeEvent(event);
+ }
+};
+
+inline bool matchString(const char *extensionString, const char *subString)
+{
+ int subStringLength = strlen(subString);
+ return (strncmp(extensionString, subString, subStringLength) == 0)
+ && ((extensionString[subStringLength] == ' ') || (extensionString[subStringLength] == '\0'));
+}
+
+bool necessaryExtensionsSupported()
+{
+ const char *extensionString = reinterpret_cast<const char *>(glGetString(GL_EXTENSIONS));
+ const char *p = extensionString;
+
+ const int GL_EXT_FBO = 1;
+ const int GL_ARB_VS = 2;
+ const int GL_ARB_FS = 4;
+ const int GL_ARB_SO = 8;
+ int extensions = 0;
+
+ while (*p) {
+ if (matchString(p, "GL_EXT_framebuffer_object"))
+ extensions |= GL_EXT_FBO;
+ else if (matchString(p, "GL_ARB_vertex_shader"))
+ extensions |= GL_ARB_VS;
+ else if (matchString(p, "GL_ARB_fragment_shader"))
+ extensions |= GL_ARB_FS;
+ else if (matchString(p, "GL_ARB_shader_objects"))
+ extensions |= GL_ARB_SO;
+ while ((*p != ' ') && (*p != '\0'))
+ ++p;
+ if (*p == ' ')
+ ++p;
+ }
+ return (extensions == 15);
+}
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+
+ if ((QGLFormat::openGLVersionFlags() & QGLFormat::OpenGL_Version_1_5) == 0) {
+ QMessageBox::critical(0, "OpenGL features missing",
+ "OpenGL version 1.5 or higher is required to run this demo.\n"
+ "The program will now exit.");
+ return -1;
+ }
+
+ int maxTextureSize = 1024;
+ QGLWidget *widget = new QGLWidget(QGLFormat(QGL::SampleBuffers));
+ widget->makeCurrent();
+
+ if (!necessaryExtensionsSupported()) {
+ QMessageBox::critical(0, "OpenGL features missing",
+ "The OpenGL extensions required to run this demo are missing.\n"
+ "The program will now exit.");
+ delete widget;
+ return -2;
+ }
+
+ // Check if all the necessary functions are resolved.
+ if (!getGLExtensionFunctions().resolve(widget->context())) {
+ QMessageBox::critical(0, "OpenGL features missing",
+ "Failed to resolve OpenGL functions required to run this demo.\n"
+ "The program will now exit.");
+ delete widget;
+ return -3;
+ }
+
+ // TODO: Make conditional for final release
+ QMessageBox::information(0, "For your information",
+ "This demo can be GPU and CPU intensive and may\n"
+ "work poorly or not at all on your system.");
+
+ GraphicsView view;
+ view.setViewport(widget);
+ view.setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
+ widget->makeCurrent(); // The current context must be set before calling Scene's constructor
+ view.setScene(new Scene(1024, 768, maxTextureSize));
+ view.show();
+
+ return app.exec();
+}
+
diff --git a/demos/boxes/marble.fsh b/demos/boxes/marble.fsh
new file mode 100644
index 0000000..62d3c9f
--- /dev/null
+++ b/demos/boxes/marble.fsh
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+varying vec3 position, normal;
+varying vec4 specular, ambient, diffuse, lightDirection;
+
+uniform sampler2D tex;
+uniform sampler3D noise;
+
+//const vec4 marbleColors[2] = {vec4(0.9, 0.9, 0.9, 1), vec4(0.6, 0.5, 0.5, 1)};
+uniform vec4 marbleColors[2];
+
+void main()
+{
+ float turbulence = 0.0;
+ float scale = 1.0;
+ for (int i = 0; i < 4; ++i) {
+ turbulence += scale * (texture3D(noise, 0.125 * gl_TexCoord[1].xyz / scale).x - 0.5);
+ scale *= 0.5;
+ }
+
+ vec3 N = normalize(normal);
+ // assume directional light
+
+ gl_MaterialParameters M = gl_FrontMaterial;
+
+ float NdotL = dot(N, lightDirection.xyz);
+ float RdotL = dot(reflect(normalize(position), N), lightDirection.xyz);
+
+ vec4 unlitColor = mix(marbleColors[0], marbleColors[1], exp(-4.0 * abs(turbulence)));
+ gl_FragColor = (ambient + diffuse * max(NdotL, 0.0)) * unlitColor +
+ M.specular * specular * pow(max(RdotL, 0.0), M.shininess);
+}
diff --git a/demos/boxes/parameters.par b/demos/boxes/parameters.par
new file mode 100644
index 0000000..50e2073
--- /dev/null
+++ b/demos/boxes/parameters.par
@@ -0,0 +1,5 @@
+color basicColor ff0e3d0e
+color woodColors ff5e3d33 ffcc9966
+float woodTubulence 0.1
+color graniteColors ff000000 ff4d261a ffccb3bf
+color marbleColors ffe6e6e6 ff998080
diff --git a/demos/boxes/qt-logo.jpg b/demos/boxes/qt-logo.jpg
new file mode 100644
index 0000000..4014b46
--- /dev/null
+++ b/demos/boxes/qt-logo.jpg
Binary files differ
diff --git a/demos/boxes/qt-logo.png b/demos/boxes/qt-logo.png
new file mode 100644
index 0000000..7d3e97e
--- /dev/null
+++ b/demos/boxes/qt-logo.png
Binary files differ
diff --git a/demos/boxes/qtbox.cpp b/demos/boxes/qtbox.cpp
new file mode 100644
index 0000000..0607698
--- /dev/null
+++ b/demos/boxes/qtbox.cpp
@@ -0,0 +1,469 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qtbox.h"
+
+const qreal ROTATE_SPEED_X = 30.0 / 1000.0;
+const qreal ROTATE_SPEED_Y = 20.0 / 1000.0;
+const qreal ROTATE_SPEED_Z = 40.0 / 1000.0;
+const int MAX_ITEM_SIZE = 512;
+const int MIN_ITEM_SIZE = 16;
+
+//============================================================================//
+// ItemBase //
+//============================================================================//
+
+ItemBase::ItemBase(int size, int x, int y) : m_size(size), m_isResizing(false)
+{
+ setFlag(QGraphicsItem::ItemIsMovable, true);
+ setFlag(QGraphicsItem::ItemIsSelectable, true);
+ setFlag(QGraphicsItem::ItemIsFocusable, true);
+ setAcceptHoverEvents(true);
+ setPos(x, y);
+ m_startTime = QTime::currentTime();
+}
+
+ItemBase::~ItemBase()
+{
+}
+
+QRectF ItemBase::boundingRect() const
+{
+ return QRectF(-m_size / 2, -m_size / 2, m_size, m_size);
+}
+
+void ItemBase::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *)
+{
+ if (option->state & QStyle::State_Selected) {
+ painter->setRenderHint(QPainter::Antialiasing, true);
+ if (option->state & QStyle::State_HasFocus)
+ painter->setPen(Qt::yellow);
+ else
+ painter->setPen(Qt::white);
+ painter->drawRect(boundingRect());
+
+ painter->drawLine(m_size / 2 - 9, m_size / 2, m_size / 2, m_size / 2 - 9);
+ painter->drawLine(m_size / 2 - 6, m_size / 2, m_size / 2, m_size / 2 - 6);
+ painter->drawLine(m_size / 2 - 3, m_size / 2, m_size / 2, m_size / 2 - 3);
+
+ painter->setRenderHint(QPainter::Antialiasing, false);
+ }
+}
+
+void ItemBase::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
+{
+ if (!isSelected() && scene()) {
+ scene()->clearSelection();
+ setSelected(true);
+ }
+
+ QMenu menu;
+ QAction *delAction = menu.addAction("Delete");
+ QAction *newAction = menu.addAction("New");
+ QAction *growAction = menu.addAction("Grow");
+ QAction *shrinkAction = menu.addAction("Shrink");
+
+ QAction *selectedAction = menu.exec(event->screenPos());
+
+ if (selectedAction == delAction)
+ deleteSelectedItems(scene());
+ else if (selectedAction == newAction)
+ duplicateSelectedItems(scene());
+ else if (selectedAction == growAction)
+ growSelectedItems(scene());
+ else if (selectedAction == shrinkAction)
+ shrinkSelectedItems(scene());
+}
+
+void ItemBase::duplicateSelectedItems(QGraphicsScene *scene)
+{
+ if (!scene)
+ return;
+
+ QList<QGraphicsItem *> selected;
+ selected = scene->selectedItems();
+
+ foreach (QGraphicsItem *item, selected) {
+ ItemBase *itemBase = dynamic_cast<ItemBase *>(item);
+ if (itemBase)
+ scene->addItem(itemBase->createNew(itemBase->m_size, itemBase->pos().x() + itemBase->m_size, itemBase->pos().y()));
+ }
+}
+
+void ItemBase::deleteSelectedItems(QGraphicsScene *scene)
+{
+ if (!scene)
+ return;
+
+ QList<QGraphicsItem *> selected;
+ selected = scene->selectedItems();
+
+ foreach (QGraphicsItem *item, selected) {
+ ItemBase *itemBase = dynamic_cast<ItemBase *>(item);
+ if (itemBase)
+ delete itemBase;
+ }
+}
+
+void ItemBase::growSelectedItems(QGraphicsScene *scene)
+{
+ if (!scene)
+ return;
+
+ QList<QGraphicsItem *> selected;
+ selected = scene->selectedItems();
+
+ foreach (QGraphicsItem *item, selected) {
+ ItemBase *itemBase = dynamic_cast<ItemBase *>(item);
+ if (itemBase) {
+ itemBase->prepareGeometryChange();
+ itemBase->m_size *= 2;
+ if (itemBase->m_size > MAX_ITEM_SIZE)
+ itemBase->m_size = MAX_ITEM_SIZE;
+ }
+ }
+}
+
+void ItemBase::shrinkSelectedItems(QGraphicsScene *scene)
+{
+ if (!scene)
+ return;
+
+ QList<QGraphicsItem *> selected;
+ selected = scene->selectedItems();
+
+ foreach (QGraphicsItem *item, selected) {
+ ItemBase *itemBase = dynamic_cast<ItemBase *>(item);
+ if (itemBase) {
+ itemBase->prepareGeometryChange();
+ itemBase->m_size /= 2;
+ if (itemBase->m_size < MIN_ITEM_SIZE)
+ itemBase->m_size = MIN_ITEM_SIZE;
+ }
+ }
+}
+
+void ItemBase::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
+{
+ if (m_isResizing) {
+ int dx = int(2.0 * event->pos().x());
+ int dy = int(2.0 * event->pos().y());
+ prepareGeometryChange();
+ m_size = (dx > dy ? dx : dy);
+ if (m_size < MIN_ITEM_SIZE)
+ m_size = MIN_ITEM_SIZE;
+ else if (m_size > MAX_ITEM_SIZE)
+ m_size = MAX_ITEM_SIZE;
+ } else {
+ QGraphicsItem::mouseMoveEvent(event);
+ }
+}
+
+void ItemBase::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
+{
+ if (m_isResizing || (isInResizeArea(event->pos()) && isSelected()))
+ setCursor(Qt::SizeFDiagCursor);
+ else
+ setCursor(Qt::ArrowCursor);
+ QGraphicsItem::hoverMoveEvent(event);
+}
+
+void ItemBase::mousePressEvent(QGraphicsSceneMouseEvent *event)
+{
+ static qreal z = 0.0;
+ setZValue(z += 1.0);
+ if (event->button() == Qt::LeftButton && isInResizeArea(event->pos())) {
+ m_isResizing = true;
+ } else {
+ QGraphicsItem::mousePressEvent(event);
+ }
+}
+
+void ItemBase::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
+{
+ if (event->button() == Qt::LeftButton && m_isResizing) {
+ m_isResizing = false;
+ } else {
+ QGraphicsItem::mouseReleaseEvent(event);
+ }
+}
+
+void ItemBase::keyPressEvent(QKeyEvent *event)
+{
+ switch (event->key()) {
+ case Qt::Key_Delete:
+ deleteSelectedItems(scene());
+ break;
+ case Qt::Key_Insert:
+ duplicateSelectedItems(scene());
+ break;
+ case Qt::Key_Plus:
+ growSelectedItems(scene());
+ break;
+ case Qt::Key_Minus:
+ shrinkSelectedItems(scene());
+ break;
+ default:
+ QGraphicsItem::keyPressEvent(event);
+ break;
+ }
+}
+
+void ItemBase::wheelEvent(QGraphicsSceneWheelEvent *event)
+{
+ prepareGeometryChange();
+ m_size = int(m_size * exp(-event->delta() / 600.0));
+ if (m_size > MAX_ITEM_SIZE)
+ m_size = MAX_ITEM_SIZE;
+ else if (m_size < MIN_ITEM_SIZE)
+ m_size = MIN_ITEM_SIZE;
+}
+
+bool ItemBase::isInResizeArea(const QPointF &pos)
+{
+ return (-pos.y() < pos.x() - m_size + 9);
+}
+
+//============================================================================//
+// QtBox //
+//============================================================================//
+
+QtBox::QtBox(int size, int x, int y) : ItemBase(size, x, y), m_texture(0)
+{
+ for (int i = 0; i < 8; ++i) {
+ m_vertices[i][0] = (i & 1 ? 0.5f : -0.5f);
+ m_vertices[i][1] = (i & 2 ? 0.5f : -0.5f);
+ m_vertices[i][2] = (i & 4 ? 0.5f : -0.5f);
+ }
+ for (int i = 0; i < 4; ++i) {
+ m_texCoords[i][0] = (i & 1 ? 1.0f : 0.0f);
+ m_texCoords[i][1] = (i & 2 ? 1.0f : 0.0f);
+ }
+ memset(m_normals, 0, sizeof(m_normals));
+ for (int i = 0; i < 3; ++i) {
+ m_normals[2 * i + 0][i] = -1.0f;
+ m_normals[2 * i + 1][i] = 1.0f;
+ }
+}
+
+QtBox::~QtBox()
+{
+ if (m_texture)
+ delete m_texture;
+}
+
+ItemBase *QtBox::createNew(int size, int x, int y)
+{
+ return new QtBox(size, x, y);
+}
+
+void QtBox::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+ QRectF rect = boundingRect().translated(pos());
+ float width = float(painter->device()->width());
+ float height = float(painter->device()->height());
+
+ float left = 2.0f * float(rect.left()) / width - 1.0f;
+ float right = 2.0f * float(rect.right()) / width - 1.0f;
+ float top = 1.0f - 2.0f * float(rect.top()) / height;
+ float bottom = 1.0f - 2.0f * float(rect.bottom()) / height;
+ float moveToRectMatrix[] = {
+ 0.5f * (right - left), 0.0f, 0.0f, 0.0f,
+ 0.0f, 0.5f * (bottom - top), 0.0f, 0.0f,
+ 0.0f, 0.0f, 1.0f, 0.0f,
+ 0.5f * (right + left), 0.5f * (bottom + top), 0.0f, 1.0f
+ };
+
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ glLoadMatrixf(moveToRectMatrix);
+ gluPerspective(60.0, 1.0, 0.01, 10.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glLoadIdentity();
+
+ //glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_COLOR_MATERIAL);
+ glEnable(GL_NORMALIZE);
+
+ if(m_texture == 0)
+ m_texture = new GLTexture2D(":/res/boxes/qt-logo.jpg", 64, 64);
+ m_texture->bind();
+ glEnable(GL_TEXTURE_2D);
+
+ glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
+ float lightColour[] = {1.0f, 1.0f, 1.0f, 1.0f};
+ float lightDir[] = {0.0f, 0.0f, 1.0f, 0.0f};
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColour);
+ glLightfv(GL_LIGHT0, GL_POSITION, lightDir);
+ glEnable(GL_LIGHT0);
+
+ glTranslatef(0.0f, 0.0f, -1.5f);
+ glRotatef(ROTATE_SPEED_X * m_startTime.msecsTo(QTime::currentTime()), 1.0f, 0.0f, 0.0f);
+ glRotatef(ROTATE_SPEED_Y * m_startTime.msecsTo(QTime::currentTime()), 0.0f, 1.0f, 0.0f);
+ glRotatef(ROTATE_SPEED_Z * m_startTime.msecsTo(QTime::currentTime()), 0.0f, 0.0f, 1.0f);
+ int dt = m_startTime.msecsTo(QTime::currentTime());
+ if (dt < 500)
+ glScalef(dt / 500.0f, dt / 500.0f, dt / 500.0f);
+
+ for (int dir = 0; dir < 3; ++dir) {
+ glColor4f(1.0f, 1.0f, 1.0f, 1.0);
+
+ glBegin(GL_TRIANGLE_STRIP);
+ glNormal3fv(m_normals[2 * dir + 0].bits());
+ for (int i = 0; i < 2; ++i) {
+ for (int j = 0; j < 2; ++j) {
+ glTexCoord2fv(m_texCoords[(j << 1) | i].bits());
+ glVertex3fv(m_vertices[(i << ((dir + 2) % 3)) | (j << ((dir + 1) % 3))].bits());
+ }
+ }
+ glEnd();
+
+ glBegin(GL_TRIANGLE_STRIP);
+ glNormal3fv(m_normals[2 * dir + 1].bits());
+ for (int i = 0; i < 2; ++i) {
+ for (int j = 0; j < 2; ++j) {
+ glTexCoord2fv(m_texCoords[(j << 1) | i].bits());
+ glVertex3fv(m_vertices[(1 << dir) | (i << ((dir + 1) % 3)) | (j << ((dir + 2) % 3))].bits());
+ }
+ }
+ glEnd();
+ }
+ m_texture->unbind();
+
+ //glDisable(GL_DEPTH_TEST);
+ glDisable(GL_CULL_FACE);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_COLOR_MATERIAL);
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_LIGHT0);
+ glDisable(GL_NORMALIZE);
+
+ glPopMatrix();
+
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+
+ ItemBase::paint(painter, option, widget);
+}
+
+//============================================================================//
+// CircleItem //
+//============================================================================//
+
+CircleItem::CircleItem(int size, int x, int y) : ItemBase(size, x, y)
+{
+ m_color = QColor::fromHsv(rand() % 360, 255, 255);
+}
+
+void CircleItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+ int dt = m_startTime.msecsTo(QTime::currentTime());
+
+ qreal r0 = 0.5 * m_size * (1.0 - exp(-0.001 * ((dt + 3800) % 4000)));
+ qreal r1 = 0.5 * m_size * (1.0 - exp(-0.001 * ((dt + 0) % 4000)));
+ qreal r2 = 0.5 * m_size * (1.0 - exp(-0.001 * ((dt + 1800) % 4000)));
+ qreal r3 = 0.5 * m_size * (1.0 - exp(-0.001 * ((dt + 2000) % 4000)));
+
+ if (r0 > r1)
+ r0 = 0.0;
+ if (r2 > r3)
+ r2 = 0.0;
+
+ QPainterPath path;
+ path.moveTo(r1, 0.0);
+ path.arcTo(-r1, -r1, 2 * r1, 2 * r1, 0.0, 360.0);
+ path.lineTo(r0, 0.0);
+ path.arcTo(-r0, -r0, 2 * r0, 2 * r0, 0.0, -360.0);
+ path.closeSubpath();
+ path.moveTo(r3, 0.0);
+ path.arcTo(-r3, -r3, 2 * r3, 2 * r3, 0.0, 360.0);
+ path.lineTo(r0, 0.0);
+ path.arcTo(-r2, -r2, 2 * r2, 2 * r2, 0.0, -360.0);
+ path.closeSubpath();
+ painter->setRenderHint(QPainter::Antialiasing, true);
+ painter->setBrush(QBrush(m_color));
+ painter->setPen(Qt::NoPen);
+ painter->drawPath(path);
+ painter->setBrush(Qt::NoBrush);
+ painter->setPen(Qt::SolidLine);
+ painter->setRenderHint(QPainter::Antialiasing, false);
+
+ ItemBase::paint(painter, option, widget);
+}
+
+ItemBase *CircleItem::createNew(int size, int x, int y)
+{
+ return new CircleItem(size, x, y);
+}
+
+//============================================================================//
+// SquareItem //
+//============================================================================//
+
+SquareItem::SquareItem(int size, int x, int y) : ItemBase(size, x, y)
+{
+ m_image = QPixmap(":/res/boxes/square.jpg");
+}
+
+void SquareItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+ int dt = m_startTime.msecsTo(QTime::currentTime());
+ QTransform oldTransform = painter->worldTransform();
+ int dtMod = dt % 2000;
+ qreal amp = 0.002 * (dtMod < 1000 ? dtMod : 2000 - dtMod) - 1.0;
+
+ qreal scale = 0.6 + 0.2 * amp * amp;
+ painter->setWorldTransform(QTransform().rotate(15.0 * amp).scale(scale, scale), true);
+
+ painter->drawPixmap(-m_size / 2, -m_size / 2, m_size, m_size, m_image);
+
+ painter->setWorldTransform(oldTransform, false);
+ ItemBase::paint(painter, option, widget);
+}
+
+ItemBase *SquareItem::createNew(int size, int x, int y)
+{
+ return new SquareItem(size, x, y);
+}
diff --git a/demos/boxes/qtbox.h b/demos/boxes/qtbox.h
new file mode 100644
index 0000000..aae8256
--- /dev/null
+++ b/demos/boxes/qtbox.h
@@ -0,0 +1,116 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QTBOX_H
+#define QTBOX_H
+
+#include <QtGui>
+
+#include "vector.h"
+#include "glbuffers.h"
+
+class ItemBase : public QObject, public QGraphicsItem
+{
+ Q_OBJECT
+public:
+ ItemBase(int size, int x, int y);
+ virtual ~ItemBase();
+ virtual QRectF boundingRect() const;
+ virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+protected:
+ virtual ItemBase *createNew(int size, int x, int y) = 0;
+ virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
+ virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
+ virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
+ virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
+ virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
+ virtual void keyPressEvent(QKeyEvent *event);
+ virtual void wheelEvent(QGraphicsSceneWheelEvent *event);
+ bool isInResizeArea(const QPointF &pos);
+
+ static void duplicateSelectedItems(QGraphicsScene *scene);
+ static void deleteSelectedItems(QGraphicsScene *scene);
+ static void growSelectedItems(QGraphicsScene *scene);
+ static void shrinkSelectedItems(QGraphicsScene *scene);
+
+ int m_size;
+ QTime m_startTime;
+ bool m_isResizing;
+};
+
+class QtBox : public ItemBase
+{
+public:
+ QtBox(int size, int x, int y);
+ virtual ~QtBox();
+ virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+protected:
+ virtual ItemBase *createNew(int size, int x, int y);
+private:
+ gfx::Vector3f m_vertices[8];
+ gfx::Vector2f m_texCoords[4];
+ gfx::Vector3f m_normals[6];
+ GLTexture *m_texture;
+};
+
+class CircleItem : public ItemBase
+{
+public:
+ CircleItem(int size, int x, int y);
+ virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+protected:
+ virtual ItemBase *createNew(int size, int x, int y);
+
+ QColor m_color;
+};
+
+class SquareItem : public ItemBase
+{
+public:
+ SquareItem(int size, int x, int y);
+ virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+protected:
+ virtual ItemBase *createNew(int size, int x, int y);
+
+ QPixmap m_image;
+};
+
+#endif
diff --git a/demos/boxes/reflection.fsh b/demos/boxes/reflection.fsh
new file mode 100644
index 0000000..d5807ee
--- /dev/null
+++ b/demos/boxes/reflection.fsh
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+varying vec3 position, normal;
+varying vec4 specular, ambient, diffuse, lightDirection;
+
+uniform sampler2D tex;
+uniform samplerCube env;
+uniform mat4 view;
+
+void main()
+{
+ vec3 N = normalize(normal);
+ vec3 R = 2.0 * dot(-position, N) * N + position;
+ gl_FragColor = textureCube(env, R * mat3(view[0].xyz, view[1].xyz, view[2].xyz));
+}
diff --git a/demos/boxes/refraction.fsh b/demos/boxes/refraction.fsh
new file mode 100644
index 0000000..f91c24d
--- /dev/null
+++ b/demos/boxes/refraction.fsh
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+varying vec3 position, normal;
+varying vec4 specular, ambient, diffuse, lightDirection;
+
+uniform sampler2D tex;
+uniform samplerCube env;
+uniform mat4 view;
+
+// Arrays don't work here on glsl < 120, apparently.
+//const float coeffs[6] = float[6](1.0/2.0, 1.0/2.1, 1.0/2.2, 1.0/2.3, 1.0/2.4, 1.0/2.5);
+float coeffs(int i)
+{
+ return 1.0 / (2.0 + 0.1 * float(i));
+}
+
+void main()
+{
+ vec3 N = normalize(normal);
+ vec3 I = -normalize(position);
+ float IdotN = dot(I, N);
+ float scales[6];
+ vec3 C[6];
+ for (int i = 0; i < 6; ++i) {
+ scales[i] = (IdotN - sqrt(1.0 - coeffs(i) + coeffs(i) * (IdotN * IdotN)));
+ C[i] = textureCube(env, (-I + coeffs(i) * N) * mat3(view[0].xyz, view[1].xyz, view[2].xyz)).xyz;
+ }
+
+ gl_FragColor = 0.25 * vec4(C[5].x + 2.0*C[0].x + C[1].x, C[1].y + 2.0*C[2].y + C[3].y,
+ C[3].z + 2.0*C[4].z + C[5].z, 4.0);
+}
diff --git a/demos/boxes/roundedbox.cpp b/demos/boxes/roundedbox.cpp
new file mode 100644
index 0000000..f238da2
--- /dev/null
+++ b/demos/boxes/roundedbox.cpp
@@ -0,0 +1,160 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "roundedbox.h"
+
+//============================================================================//
+// P3T2N3Vertex //
+//============================================================================//
+
+VertexDescription P3T2N3Vertex::description[] = {
+ {VertexDescription::Position, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, position) / sizeof(float), offsetof(P3T2N3Vertex, position), 0},
+ {VertexDescription::TexCoord, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, texCoord) / sizeof(float), offsetof(P3T2N3Vertex, texCoord), 0},
+ {VertexDescription::Normal, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, normal) / sizeof(float), offsetof(P3T2N3Vertex, normal), 0},
+ {VertexDescription::Null, 0, 0, 0, 0},
+};
+
+//============================================================================//
+// GLRoundedBox //
+//============================================================================//
+
+float lerp(float a, float b, float t)
+{
+ return a * (1.0f - t) + b * t;
+}
+
+GLRoundedBox::GLRoundedBox(float r, float scale, int n)
+ : GLTriangleMesh<P3T2N3Vertex, unsigned short>((n+2)*(n+3)*4, (n+1)*(n+1)*24+36+72*(n+1))
+{
+ int vidx = 0, iidx = 0;
+ int vertexCountPerCorner = (n + 2) * (n + 3) / 2;
+
+ P3T2N3Vertex *vp = m_vb.lock();
+ unsigned short *ip = m_ib.lock();
+
+ if (!vp || !ip) {
+ qWarning("GLRoundedBox::GLRoundedBox: Failed to lock vertex buffer and/or index buffer.");
+ m_ib.unlock();
+ m_vb.unlock();
+ return;
+ }
+
+ for (int corner = 0; corner < 8; ++corner) {
+ gfx::Vector3f centre;
+ centre[0] = (corner & 1 ? 1.0f : -1.0f);
+ centre[1] = (corner & 2 ? 1.0f : -1.0f);
+ centre[2] = (corner & 4 ? 1.0f : -1.0f);
+ int winding = (corner & 1) ^ ((corner >> 1) & 1) ^ (corner >> 2);
+ int offsX = ((corner ^ 1) - corner) * vertexCountPerCorner;
+ int offsY = ((corner ^ 2) - corner) * vertexCountPerCorner;
+ int offsZ = ((corner ^ 4) - corner) * vertexCountPerCorner;
+
+ // Face polygons
+ if (winding) {
+ ip[iidx++] = vidx;
+ ip[iidx++] = vidx + offsX;
+ ip[iidx++] = vidx + offsY;
+
+ ip[iidx++] = vidx + vertexCountPerCorner - n - 2;
+ ip[iidx++] = vidx + vertexCountPerCorner - n - 2 + offsY;
+ ip[iidx++] = vidx + vertexCountPerCorner - n - 2 + offsZ;
+
+ ip[iidx++] = vidx + vertexCountPerCorner - 1;
+ ip[iidx++] = vidx + vertexCountPerCorner - 1 + offsZ;
+ ip[iidx++] = vidx + vertexCountPerCorner - 1 + offsX;
+ }
+
+ for (int i = 0; i < n + 2; ++i) {
+
+ // Edge polygons
+ if (winding && i < n + 1) {
+ ip[iidx++] = vidx + i + 1;
+ ip[iidx++] = vidx;
+ ip[iidx++] = vidx + offsY + i + 1;
+ ip[iidx++] = vidx + offsY;
+ ip[iidx++] = vidx + offsY + i + 1;
+ ip[iidx++] = vidx;
+
+ ip[iidx++] = vidx + i;
+ ip[iidx++] = vidx + 2 * i + 2;
+ ip[iidx++] = vidx + i + offsX;
+ ip[iidx++] = vidx + 2 * i + offsX + 2;
+ ip[iidx++] = vidx + i + offsX;
+ ip[iidx++] = vidx + 2 * i + 2;
+
+ ip[iidx++] = (corner + 1) * vertexCountPerCorner - 1 - i;
+ ip[iidx++] = (corner + 1) * vertexCountPerCorner - 2 - i;
+ ip[iidx++] = (corner + 1) * vertexCountPerCorner - 1 - i + offsZ;
+ ip[iidx++] = (corner + 1) * vertexCountPerCorner - 2 - i + offsZ;
+ ip[iidx++] = (corner + 1) * vertexCountPerCorner - 1 - i + offsZ;
+ ip[iidx++] = (corner + 1) * vertexCountPerCorner - 2 - i;
+ }
+
+ for (int j = 0; j <= i; ++j) {
+ gfx::Vector3f normal = gfx::Vector3f::vector(i - j, j, n + 1 - i).normalized();
+ gfx::Vector3f pos = centre * (0.5f - r + r * normal);
+
+ vp[vidx].position = scale * pos;
+ vp[vidx].normal = centre * normal;
+ vp[vidx].texCoord = gfx::Vector2f::vector(pos[0], pos[1]) + 0.5f;
+
+ // Corner polygons
+ if (i < n + 1) {
+ ip[iidx++] = vidx;
+ ip[iidx++] = vidx + i + 2 - winding;
+ ip[iidx++] = vidx + i + 1 + winding;
+ }
+ if (i < n) {
+ ip[iidx++] = vidx + i + 1 + winding;
+ ip[iidx++] = vidx + i + 2 - winding;
+ ip[iidx++] = vidx + 2 * i + 4;
+ }
+
+ ++vidx;
+ }
+ }
+
+ }
+
+ m_ib.unlock();
+ m_vb.unlock();
+}
+
diff --git a/demos/boxes/roundedbox.h b/demos/boxes/roundedbox.h
new file mode 100644
index 0000000..b934ade
--- /dev/null
+++ b/demos/boxes/roundedbox.h
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef ROUNDEDBOX_H
+#define ROUNDEDBOX_H
+
+//#include <GL/glew.h>
+#include "glextensions.h"
+
+#include <QtGui>
+#include <QtOpenGL>
+
+#include "gltrianglemesh.h"
+#include "vector.h"
+#include "glbuffers.h"
+
+struct P3T2N3Vertex
+{
+ gfx::Vector3f position;
+ gfx::Vector2f texCoord;
+ gfx::Vector3f normal;
+ static VertexDescription description[];
+};
+
+class GLRoundedBox : public GLTriangleMesh<P3T2N3Vertex, unsigned short>
+{
+public:
+ // 0 < r < 0.5, 0 <= n <= 125
+ GLRoundedBox(float r = 0.25f, float scale = 1.0f, int n = 10);
+};
+
+
+#endif
diff --git a/demos/boxes/scene.cpp b/demos/boxes/scene.cpp
new file mode 100644
index 0000000..1040e17
--- /dev/null
+++ b/demos/boxes/scene.cpp
@@ -0,0 +1,1057 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "scene.h"
+
+#include "3rdparty/fbm.h"
+
+void checkGLErrors(const QString& prefix)
+{
+ switch (glGetError()) {
+ case GL_NO_ERROR:
+ //qDebug() << prefix << tr("No error.");
+ break;
+ case GL_INVALID_ENUM:
+ qDebug() << prefix << QObject::tr("Invalid enum.");
+ break;
+ case GL_INVALID_VALUE:
+ qDebug() << prefix << QObject::tr("Invalid value.");
+ break;
+ case GL_INVALID_OPERATION:
+ qDebug() << prefix << QObject::tr("Invalid operation.");
+ break;
+ case GL_STACK_OVERFLOW:
+ qDebug() << prefix << QObject::tr("Stack overflow.");
+ break;
+ case GL_STACK_UNDERFLOW:
+ qDebug() << prefix << QObject::tr("Stack underflow.");
+ break;
+ case GL_OUT_OF_MEMORY:
+ qDebug() << prefix << QObject::tr("Out of memory.");
+ break;
+ default:
+ qDebug() << prefix << QObject::tr("Unknown error.");
+ break;
+ }
+}
+
+//============================================================================//
+// ColorEdit //
+//============================================================================//
+
+ColorEdit::ColorEdit(QRgb initialColor, int id)
+ : m_color(initialColor), m_id(id)
+{
+ QHBoxLayout *layout = new QHBoxLayout;
+ setLayout(layout);
+ layout->setContentsMargins(0, 0, 0, 0);
+
+ m_lineEdit = new QLineEdit(QString::number(m_color, 16));
+ layout->addWidget(m_lineEdit);
+
+ m_button = new QFrame;
+ QPalette palette = m_button->palette();
+ palette.setColor(QPalette::Window, QColor(m_color));
+ m_button->setPalette(palette);
+ m_button->setAutoFillBackground(true);
+ m_button->setMinimumSize(32, 0);
+ m_button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
+ m_button->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
+ layout->addWidget(m_button);
+
+ connect(m_lineEdit, SIGNAL(editingFinished()), this, SLOT(editDone()));
+}
+
+void ColorEdit::editDone()
+{
+ bool ok;
+ QRgb newColor = m_lineEdit->text().toUInt(&ok, 16);
+ if (ok)
+ setColor(newColor);
+}
+
+void ColorEdit::mousePressEvent(QMouseEvent *event)
+{
+ if (event->button() == Qt::LeftButton) {
+ QColor color(m_color);
+ QColorDialog dialog(color, 0);
+ dialog.setOption(QColorDialog::ShowAlphaChannel, true);
+// The ifdef block is a workaround for the beta, TODO: remove when bug 238525 is fixed
+#ifdef Q_WS_MAC
+ dialog.setOption(QColorDialog::DontUseNativeDialog, true);
+#endif
+ dialog.move(280, 120);
+ if (dialog.exec() == QDialog::Rejected)
+ return;
+ QRgb newColor = dialog.selectedColor().rgba();
+ if (newColor == m_color)
+ return;
+ setColor(newColor);
+ }
+}
+
+void ColorEdit::setColor(QRgb color)
+{
+ m_color = color;
+ m_lineEdit->setText(QString::number(m_color, 16)); // "Clean up" text
+ QPalette palette = m_button->palette();
+ palette.setColor(QPalette::Window, QColor(m_color));
+ m_button->setPalette(palette);
+ emit colorChanged(m_color, m_id);
+}
+
+//============================================================================//
+// FloatEdit //
+//============================================================================//
+
+FloatEdit::FloatEdit(float initialValue, int id)
+ : m_value(initialValue), m_id(id)
+{
+ QHBoxLayout *layout = new QHBoxLayout;
+ setLayout(layout);
+ layout->setContentsMargins(0, 0, 0, 0);
+
+ m_lineEdit = new QLineEdit(QString::number(m_value));
+ layout->addWidget(m_lineEdit);
+
+ connect(m_lineEdit, SIGNAL(editingFinished()), this, SLOT(editDone()));
+}
+
+void FloatEdit::editDone()
+{
+ bool ok;
+ float newValue = m_lineEdit->text().toFloat(&ok);
+ if (ok) {
+ m_value = newValue;
+ m_lineEdit->setText(QString::number(m_value)); // "Clean up" text
+ emit valueChanged(m_value, m_id);
+ }
+}
+
+//============================================================================//
+// TwoSidedGraphicsWidget //
+//============================================================================//
+
+TwoSidedGraphicsWidget::TwoSidedGraphicsWidget(QGraphicsScene *scene)
+ : QObject(scene)
+ , m_current(0)
+ , m_angle(0)
+ , m_delta(0)
+{
+ for (int i = 0; i < 2; ++i)
+ m_proxyWidgets[i] = 0;
+}
+
+void TwoSidedGraphicsWidget::setWidget(int index, QWidget *widget)
+{
+ if (index < 0 || index >= 2)
+ {
+ qWarning("TwoSidedGraphicsWidget::setWidget: Index out of bounds, index == %d", index);
+ return;
+ }
+
+ GraphicsWidget *proxy = new GraphicsWidget;
+ proxy->setWidget(widget);
+
+ if (m_proxyWidgets[index])
+ delete m_proxyWidgets[index];
+ m_proxyWidgets[index] = proxy;
+
+ proxy->setCacheMode(QGraphicsItem::ItemCoordinateCache);
+ proxy->setZValue(1e30); // Make sure the dialog is drawn on top of all other (OpenGL) items
+
+ if (index != m_current)
+ proxy->setVisible(false);
+
+ qobject_cast<QGraphicsScene *>(parent())->addItem(proxy);
+}
+
+QWidget *TwoSidedGraphicsWidget::widget(int index)
+{
+ if (index < 0 || index >= 2)
+ {
+ qWarning("TwoSidedGraphicsWidget::widget: Index out of bounds, index == %d", index);
+ return 0;
+ }
+ return m_proxyWidgets[index]->widget();
+}
+
+void TwoSidedGraphicsWidget::flip()
+{
+ m_delta = (m_current == 0 ? 9 : -9);
+ animateFlip();
+}
+
+void TwoSidedGraphicsWidget::animateFlip()
+{
+ m_angle += m_delta;
+ if (m_angle == 90) {
+ int old = m_current;
+ m_current ^= 1;
+ m_proxyWidgets[old]->setVisible(false);
+ m_proxyWidgets[m_current]->setVisible(true);
+ m_proxyWidgets[m_current]->setGeometry(m_proxyWidgets[old]->geometry());
+ }
+
+ QRectF r = m_proxyWidgets[m_current]->boundingRect();
+ m_proxyWidgets[m_current]->setTransform(QTransform()
+ .translate(r.width() / 2, r.height() / 2)
+ .rotate(m_angle - 180 * m_current, Qt::YAxis)
+ .translate(-r.width() / 2, -r.height() / 2));
+
+ if ((m_current == 0 && m_angle > 0) || (m_current == 1 && m_angle < 180))
+ QTimer::singleShot(25, this, SLOT(animateFlip()));
+}
+
+QVariant GraphicsWidget::itemChange(GraphicsItemChange change, const QVariant &value)
+{
+ if (change == ItemPositionChange && scene()) {
+ QRectF rect = boundingRect();
+ QPointF pos = value.toPointF();
+ QRectF sceneRect = scene()->sceneRect();
+ if (pos.x() + rect.left() < sceneRect.left())
+ pos.setX(sceneRect.left() - rect.left());
+ else if (pos.x() + rect.right() >= sceneRect.right())
+ pos.setX(sceneRect.right() - rect.right());
+ if (pos.y() + rect.top() < sceneRect.top())
+ pos.setY(sceneRect.top() - rect.top());
+ else if (pos.y() + rect.bottom() >= sceneRect.bottom())
+ pos.setY(sceneRect.bottom() - rect.bottom());
+ return pos;
+ }
+ return QGraphicsProxyWidget::itemChange(change, value);
+}
+
+void GraphicsWidget::resizeEvent(QGraphicsSceneResizeEvent *event)
+{
+ setCacheMode(QGraphicsItem::NoCache);
+ setCacheMode(QGraphicsItem::ItemCoordinateCache);
+ QGraphicsProxyWidget::resizeEvent(event);
+}
+
+void GraphicsWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+ painter->setRenderHint(QPainter::Antialiasing, false);
+ QGraphicsProxyWidget::paint(painter, option, widget);
+ //painter->setRenderHint(QPainter::Antialiasing, true);
+}
+
+//============================================================================//
+// RenderOptionsDialog //
+//============================================================================//
+
+RenderOptionsDialog::RenderOptionsDialog()
+ : QDialog(0, Qt::CustomizeWindowHint | Qt::WindowTitleHint)
+{
+ setWindowOpacity(0.75);
+ setWindowTitle(tr("Options (double click to flip)"));
+ QGridLayout *layout = new QGridLayout;
+ setLayout(layout);
+ layout->setColumnStretch(1, 1);
+
+ int row = 0;
+
+ QCheckBox *check = new QCheckBox(tr("Dynamic cube map"));
+ check->setCheckState(Qt::Unchecked);
+ // Dynamic cube maps are only enabled when multi-texturing and render to texture are available.
+ check->setEnabled(glActiveTexture && glGenFramebuffersEXT);
+ connect(check, SIGNAL(stateChanged(int)), this, SIGNAL(dynamicCubemapToggled(int)));
+ layout->addWidget(check, 0, 0, 1, 2);
+ ++row;
+
+ QPalette palette;
+
+ // Load all .par files
+ // .par files have a simple syntax for specifying user adjustable uniform variables.
+ QSet<QByteArray> uniforms;
+ QList<QString> filter = QStringList("*.par");
+ QList<QFileInfo> files = QDir(":/res/boxes/").entryInfoList(filter, QDir::Files | QDir::Readable);
+
+ foreach (QFileInfo fileInfo, files) {
+ QFile file(fileInfo.absoluteFilePath());
+ if (file.open(QIODevice::ReadOnly)) {
+ while (!file.atEnd()) {
+ QList<QByteArray> tokens = file.readLine().simplified().split(' ');
+ QList<QByteArray>::const_iterator it = tokens.begin();
+ if (it == tokens.end())
+ continue;
+ QByteArray type = *it;
+ if (++it == tokens.end())
+ continue;
+ QByteArray name = *it;
+ bool singleElement = (tokens.size() == 3); // type, name and one value
+ char counter[10] = "000000000";
+ int counterPos = 8; // position of last digit
+ while (++it != tokens.end()) {
+ m_parameterNames << name;
+ if (!singleElement) {
+ m_parameterNames.back() += "[";
+ m_parameterNames.back() += counter + counterPos;
+ m_parameterNames.back() += "]";
+ int j = 8; // position of last digit
+ ++counter[j];
+ while (j > 0 && counter[j] > '9') {
+ counter[j] = '0';
+ ++counter[--j];
+ }
+ if (j < counterPos)
+ counterPos = j;
+ }
+
+ if (type == "color") {
+ layout->addWidget(new QLabel(m_parameterNames.back()));
+ bool ok;
+ ColorEdit *colorEdit = new ColorEdit(it->toUInt(&ok, 16), m_parameterNames.size() - 1);
+ m_parameterEdits << colorEdit;
+ layout->addWidget(colorEdit);
+ connect(colorEdit, SIGNAL(colorChanged(QRgb, int)), this, SLOT(setColorParameter(QRgb, int)));
+ ++row;
+ } else if (type == "float") {
+ layout->addWidget(new QLabel(m_parameterNames.back()));
+ bool ok;
+ FloatEdit *floatEdit = new FloatEdit(it->toFloat(&ok), m_parameterNames.size() - 1);
+ m_parameterEdits << floatEdit;
+ layout->addWidget(floatEdit);
+ connect(floatEdit, SIGNAL(valueChanged(float, int)), this, SLOT(setFloatParameter(float, int)));
+ ++row;
+ }
+ }
+ }
+ file.close();
+ }
+ }
+
+ layout->addWidget(new QLabel(tr("Texture:")));
+ m_textureCombo = new QComboBox;
+ connect(m_textureCombo, SIGNAL(currentIndexChanged(int)), this, SIGNAL(textureChanged(int)));
+ layout->addWidget(m_textureCombo);
+ ++row;
+
+ layout->addWidget(new QLabel(tr("Shader:")));
+ m_shaderCombo = new QComboBox;
+ connect(m_shaderCombo, SIGNAL(currentIndexChanged(int)), this, SIGNAL(shaderChanged(int)));
+ layout->addWidget(m_shaderCombo);
+ ++row;
+
+ layout->setRowStretch(row, 1);
+}
+
+int RenderOptionsDialog::addTexture(const QString &name)
+{
+ m_textureCombo->addItem(name);
+ return m_textureCombo->count() - 1;
+}
+
+int RenderOptionsDialog::addShader(const QString &name)
+{
+ m_shaderCombo->addItem(name);
+ return m_shaderCombo->count() - 1;
+}
+
+void RenderOptionsDialog::emitParameterChanged()
+{
+ foreach (ParameterEdit *edit, m_parameterEdits)
+ edit->emitChange();
+}
+
+void RenderOptionsDialog::setColorParameter(QRgb color, int id)
+{
+ emit colorParameterChanged(m_parameterNames[id], color);
+}
+
+void RenderOptionsDialog::setFloatParameter(float value, int id)
+{
+ emit floatParameterChanged(m_parameterNames[id], value);
+}
+
+void RenderOptionsDialog::mouseDoubleClickEvent(QMouseEvent *event)
+{
+ if (event->button() == Qt::LeftButton)
+ emit doubleClicked();
+}
+
+//============================================================================//
+// ItemDialog //
+//============================================================================//
+
+ItemDialog::ItemDialog()
+ : QDialog(0, Qt::CustomizeWindowHint | Qt::WindowTitleHint)
+{
+ setWindowTitle(tr("Items (double click to flip)"));
+ setWindowOpacity(0.75);
+ resize(160, 100);
+
+ QVBoxLayout *layout = new QVBoxLayout;
+ setLayout(layout);
+ QPushButton *button;
+
+ button = new QPushButton(tr("Add Qt box"));
+ layout->addWidget(button);
+ connect(button, SIGNAL(clicked()), this, SLOT(triggerNewQtBox()));
+
+ button = new QPushButton(tr("Add circle"));
+ layout->addWidget(button);
+ connect(button, SIGNAL(clicked()), this, SLOT(triggerNewCircleItem()));
+
+ button = new QPushButton(tr("Add square"));
+ layout->addWidget(button);
+ connect(button, SIGNAL(clicked()), this, SLOT(triggerNewSquareItem()));
+
+ layout->addStretch(1);
+}
+
+void ItemDialog::triggerNewQtBox()
+{
+ emit newItemTriggered(QtBoxItem);
+}
+
+void ItemDialog::triggerNewCircleItem()
+{
+ emit newItemTriggered(CircleItem);
+}
+
+void ItemDialog::triggerNewSquareItem()
+{
+ emit newItemTriggered(SquareItem);
+}
+
+void ItemDialog::mouseDoubleClickEvent(QMouseEvent *event)
+{
+ if (event->button() == Qt::LeftButton)
+ emit doubleClicked();
+}
+
+//============================================================================//
+// Scene //
+//============================================================================//
+
+const static char environmentShaderText[] =
+ "uniform samplerCube env;"
+ "void main() {"
+ "gl_FragColor = textureCube(env, gl_TexCoord[1].xyz);"
+ "}";
+
+Scene::Scene(int width, int height, int maxTextureSize)
+ : m_distExp(600)
+ , m_frame(0)
+ , m_maxTextureSize(maxTextureSize)
+ , m_currentShader(0)
+ , m_currentTexture(0)
+ , m_dynamicCubemap(false)
+ , m_updateAllCubemaps(true)
+ , m_box(0)
+ , m_vertexShader(0)
+ , m_environmentShader(0)
+ , m_environmentProgram(0)
+{
+ setSceneRect(0, 0, width, height);
+
+ m_trackBalls[0] = TrackBall(0.0005f, gfx::Vector3f::vector(0, 1, 0), TrackBall::Sphere);
+ m_trackBalls[1] = TrackBall(0.0001f, gfx::Vector3f::vector(0, 0, 1), TrackBall::Sphere);
+ m_trackBalls[2] = TrackBall(0.0f, gfx::Vector3f::vector(0, 1, 0), TrackBall::Plane);
+
+ m_renderOptions = new RenderOptionsDialog;
+ m_renderOptions->move(20, 120);
+ m_renderOptions->resize(m_renderOptions->sizeHint());
+
+ connect(m_renderOptions, SIGNAL(dynamicCubemapToggled(int)), this, SLOT(toggleDynamicCubemap(int)));
+ connect(m_renderOptions, SIGNAL(colorParameterChanged(const QString &, QRgb)), this, SLOT(setColorParameter(const QString &, QRgb)));
+ connect(m_renderOptions, SIGNAL(floatParameterChanged(const QString &, float)), this, SLOT(setFloatParameter(const QString &, float)));
+ connect(m_renderOptions, SIGNAL(textureChanged(int)), this, SLOT(setTexture(int)));
+ connect(m_renderOptions, SIGNAL(shaderChanged(int)), this, SLOT(setShader(int)));
+
+ m_itemDialog = new ItemDialog;
+ connect(m_itemDialog, SIGNAL(newItemTriggered(ItemDialog::ItemType)), this, SLOT(newItem(ItemDialog::ItemType)));
+
+ TwoSidedGraphicsWidget *twoSided = new TwoSidedGraphicsWidget(this);
+ twoSided->setWidget(0, m_renderOptions);
+ twoSided->setWidget(1, m_itemDialog);
+
+ connect(m_renderOptions, SIGNAL(doubleClicked()), twoSided, SLOT(flip()));
+ connect(m_itemDialog, SIGNAL(doubleClicked()), twoSided, SLOT(flip()));
+
+ addItem(new QtBox(64, width - 64, height - 64));
+ addItem(new QtBox(64, width - 64, 64));
+ addItem(new QtBox(64, 64, height - 64));
+ addItem(new QtBox(64, 64, 64));
+
+ initGL();
+
+ m_timer = new QTimer(this);
+ m_timer->setInterval(20);
+ connect(m_timer, SIGNAL(timeout()), this, SLOT(update()));
+ m_timer->start();
+
+ m_time.start();
+}
+
+Scene::~Scene()
+{
+ if (m_box)
+ delete m_box;
+ foreach (GLTexture *texture, m_textures)
+ if (texture) delete texture;
+ if (m_mainCubemap)
+ delete m_mainCubemap;
+ foreach (GLProgram *program, m_programs)
+ if (program) delete program;
+ if (m_vertexShader)
+ delete m_vertexShader;
+ foreach (GLFragmentShader *shader, m_fragmentShaders)
+ if (shader) delete shader;
+ foreach (GLRenderTargetCube *rt, m_cubemaps)
+ if (rt) delete rt;
+ if (m_environmentShader)
+ delete m_environmentShader;
+ if (m_environmentProgram)
+ delete m_environmentProgram;
+}
+
+void Scene::initGL()
+{
+ m_box = new GLRoundedBox(0.25f, 1.0f, 10);
+
+ m_vertexShader = new GLVertexShader(":/res/boxes/basic.vsh");
+
+ QStringList list;
+ list << ":/res/boxes/cubemap_posx.jpg" << ":/res/boxes/cubemap_negx.jpg" << ":/res/boxes/cubemap_posy.jpg"
+ << ":/res/boxes/cubemap_negy.jpg" << ":/res/boxes/cubemap_posz.jpg" << ":/res/boxes/cubemap_negz.jpg";
+ m_environment = new GLTextureCube(list, qMin(1024, m_maxTextureSize));
+ m_environmentShader = new GLFragmentShader(environmentShaderText, strlen(environmentShaderText));
+ m_environmentProgram = new GLProgram;
+ m_environmentProgram->attach(*m_vertexShader);
+ m_environmentProgram->attach(*m_environmentShader);
+
+ const int NOISE_SIZE = 128; // for a different size, B and BM in fbm.c must also be changed
+ m_noise = new GLTexture3D(NOISE_SIZE, NOISE_SIZE, NOISE_SIZE);
+ QRgb *data = new QRgb[NOISE_SIZE * NOISE_SIZE * NOISE_SIZE];
+ memset(data, 0, NOISE_SIZE * NOISE_SIZE * NOISE_SIZE * sizeof(QRgb));
+ QRgb *p = data;
+ float pos[3];
+ for (int k = 0; k < NOISE_SIZE; ++k) {
+ pos[2] = k * (0x20 / (float)NOISE_SIZE);
+ for (int j = 0; j < NOISE_SIZE; ++j) {
+ for (int i = 0; i < NOISE_SIZE; ++i) {
+ for (int byte = 0; byte < 4; ++byte) {
+ pos[0] = (i + (byte & 1) * 16) * (0x20 / (float)NOISE_SIZE);
+ pos[1] = (j + (byte & 2) * 8) * (0x20 / (float)NOISE_SIZE);
+ *p |= (int)(128.0f * (noise3(pos) + 1.0f)) << (byte * 8);
+ }
+ ++p;
+ }
+ }
+ }
+ m_noise->load(NOISE_SIZE, NOISE_SIZE, NOISE_SIZE, data);
+ delete[] data;
+
+ m_mainCubemap = new GLRenderTargetCube(512);
+
+ QStringList filter;
+ QList<QFileInfo> files;
+
+ // Load all .png files as textures
+ m_currentTexture = 0;
+ filter = QStringList("*.png");
+ files = QDir(":/res/boxes/").entryInfoList(filter, QDir::Files | QDir::Readable);
+
+ foreach (QFileInfo file, files) {
+ GLTexture *texture = new GLTexture2D(file.absoluteFilePath(), qMin(256, m_maxTextureSize), qMin(256, m_maxTextureSize));
+ if (texture->failed()) {
+ delete texture;
+ continue;
+ }
+ m_textures << texture;
+ m_renderOptions->addTexture(file.baseName());
+ }
+
+ if (m_textures.size() == 0)
+ m_textures << new GLTexture2D(qMin(64, m_maxTextureSize), qMin(64, m_maxTextureSize));
+
+ // Load all .fsh files as fragment shaders
+ m_currentShader = 0;
+ filter = QStringList("*.fsh");
+ files = QDir(":/res/boxes/").entryInfoList(filter, QDir::Files | QDir::Readable);
+ foreach (QFileInfo file, files) {
+ GLProgram *program = new GLProgram;
+ GLFragmentShader* shader = new GLFragmentShader(file.absoluteFilePath());
+ // The program does not take ownership over the shaders, so store them in a vector so they can be deleted afterwards.
+ program->attach(*m_vertexShader);
+ program->attach(*shader);
+ if (program->failed()) {
+ qWarning("Failed to compile and link shader program");
+ qWarning("Vertex shader log:");
+ qWarning() << m_vertexShader->log();
+ qWarning() << "Fragment shader log ( file =" << file.absoluteFilePath() << "):";
+ qWarning() << shader->log();
+ qWarning("Shader program log:");
+ qWarning() << program->log();
+
+ delete shader;
+ delete program;
+ continue;
+ }
+
+ m_fragmentShaders << shader;
+ m_programs << program;
+ m_renderOptions->addShader(file.baseName());
+
+ program->bind();
+ m_cubemaps << (program->hasParameter("env") ? new GLRenderTargetCube(qMin(256, m_maxTextureSize)) : 0);
+ program->unbind();
+ }
+
+ if (m_programs.size() == 0)
+ m_programs << new GLProgram;
+
+ m_renderOptions->emitParameterChanged();
+}
+
+// If one of the boxes should not be rendered, set excludeBox to its index.
+// If the main box should not be rendered, set excludeBox to -1.
+void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox)
+{
+ gfx::Matrix4x4f invView = view.inverse();
+
+ // If multi-texturing is supported, use three saplers.
+ if (glActiveTexture) {
+ glActiveTexture(GL_TEXTURE0);
+ m_textures[m_currentTexture]->bind();
+ glActiveTexture(GL_TEXTURE2);
+ m_noise->bind();
+ glActiveTexture(GL_TEXTURE1);
+ } else {
+ m_textures[m_currentTexture]->bind();
+ }
+
+ glDisable(GL_LIGHTING);
+ glDisable(GL_CULL_FACE);
+
+ gfx::Matrix4x4f viewRotation(view);
+ viewRotation(3, 0) = viewRotation(3, 1) = viewRotation(3, 2) = 0.0f;
+ viewRotation(0, 3) = viewRotation(1, 3) = viewRotation(2, 3) = 0.0f;
+ viewRotation(3, 3) = 1.0f;
+ glLoadMatrixf(viewRotation.bits());
+ glScalef(20.0f, 20.0f, 20.0f);
+
+ // Don't render the environment if the environment texture can't be set for the correct sampler.
+ if (glActiveTexture) {
+ m_environment->bind();
+ m_environmentProgram->bind();
+ m_environmentProgram->setInt("tex", 0);
+ m_environmentProgram->setInt("env", 1);
+ m_environmentProgram->setInt("noise", 2);
+ m_box->draw();
+ m_environmentProgram->unbind();
+ m_environment->unbind();
+ }
+
+ glLoadMatrixf(view.bits());
+
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_LIGHTING);
+
+ for (int i = 0; i < m_programs.size(); ++i) {
+ if (i == excludeBox)
+ continue;
+
+ glPushMatrix();
+ gfx::Matrix4x4f m;
+ m_trackBalls[1].rotation().matrix(m);
+ glMultMatrixf(m.bits());
+
+ glRotatef(360.0f * i / m_programs.size(), 0.0f, 0.0f, 1.0f);
+ glTranslatef(2.0f, 0.0f, 0.0f);
+ glScalef(0.3f, 0.6f, 0.6f);
+
+ if (glActiveTexture) {
+ if (m_dynamicCubemap && m_cubemaps[i])
+ m_cubemaps[i]->bind();
+ else
+ m_environment->bind();
+ }
+ m_programs[i]->bind();
+ m_programs[i]->setInt("tex", 0);
+ m_programs[i]->setInt("env", 1);
+ m_programs[i]->setInt("noise", 2);
+ m_programs[i]->setMatrix("view", view);
+ m_programs[i]->setMatrix("invView", invView);
+ m_box->draw();
+ m_programs[i]->unbind();
+
+ if (glActiveTexture) {
+ if (m_dynamicCubemap && m_cubemaps[i])
+ m_cubemaps[i]->unbind();
+ else
+ m_environment->unbind();
+ }
+ glPopMatrix();
+ }
+
+ if (-1 != excludeBox) {
+ gfx::Matrix4x4f m;
+ m_trackBalls[0].rotation().matrix(m);
+ glMultMatrixf(m.bits());
+
+ if (glActiveTexture) {
+ if (m_dynamicCubemap)
+ m_mainCubemap->bind();
+ else
+ m_environment->bind();
+ }
+
+ m_programs[m_currentShader]->bind();
+ m_programs[m_currentShader]->setInt("tex", 0);
+ m_programs[m_currentShader]->setInt("env", 1);
+ m_programs[m_currentShader]->setInt("noise", 2);
+ m_programs[m_currentShader]->setMatrix("view", view);
+ m_programs[m_currentShader]->setMatrix("invView", invView);
+ m_box->draw();
+ m_programs[m_currentShader]->unbind();
+
+ if (glActiveTexture) {
+ if (m_dynamicCubemap)
+ m_mainCubemap->unbind();
+ else
+ m_environment->unbind();
+ }
+ }
+
+ if (glActiveTexture) {
+ glActiveTexture(GL_TEXTURE2);
+ m_noise->unbind();
+ glActiveTexture(GL_TEXTURE0);
+ }
+ m_textures[m_currentTexture]->unbind();
+}
+
+void Scene::setStates()
+{
+ //glClearColor(0.25f, 0.25f, 0.5f, 1.0f);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_LIGHTING);
+ //glEnable(GL_COLOR_MATERIAL);
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_NORMALIZE);
+
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ glLoadIdentity();
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glLoadIdentity();
+
+ setLights();
+
+ float materialSpecular[] = {0.5f, 0.5f, 0.5f, 1.0f};
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, materialSpecular);
+ glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 32.0f);
+}
+
+void Scene::setLights()
+{
+ glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
+ //float lightColour[] = {1.0f, 1.0f, 1.0f, 1.0f};
+ float lightDir[] = {0.0f, 0.0f, 1.0f, 0.0f};
+ //glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColour);
+ //glLightfv(GL_LIGHT0, GL_SPECULAR, lightColour);
+ glLightfv(GL_LIGHT0, GL_POSITION, lightDir);
+ glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, 1.0f);
+ glEnable(GL_LIGHT0);
+}
+
+void Scene::defaultStates()
+{
+ //glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_CULL_FACE);
+ glDisable(GL_LIGHTING);
+ //glDisable(GL_COLOR_MATERIAL);
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_LIGHT0);
+ glDisable(GL_NORMALIZE);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPopMatrix();
+
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+
+ glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, 0.0f);
+ float defaultMaterialSpecular[] = {0.0f, 0.0f, 0.0f, 1.0f};
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, defaultMaterialSpecular);
+ glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 0.0f);
+}
+
+void Scene::renderCubemaps()
+{
+ // To speed things up, only update the cubemaps for the small cubes every N frames.
+ const int N = (m_updateAllCubemaps ? 1 : 3);
+
+ gfx::Matrix4x4f mat;
+ GLRenderTargetCube::getProjectionMatrix(mat, 0.1f, 100.0f);
+
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ glLoadMatrixf(mat.bits());
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+
+ gfx::Vector3f center;
+
+ for (int i = m_frame % N; i < m_cubemaps.size(); i += N) {
+ if (0 == m_cubemaps[i])
+ continue;
+
+ float angle = 2.0f * PI * i / m_cubemaps.size();
+ center = m_trackBalls[1].rotation().transform(gfx::Vector3f::vector(cos(angle), sin(angle), 0));
+
+ for (int face = 0; face < 6; ++face) {
+ m_cubemaps[i]->begin(face);
+
+ GLRenderTargetCube::getViewMatrix(mat, face);
+ gfx::Vector4f v = gfx::Vector4f::vector(-center[0], -center[1], -center[2], 1.0);
+ mat[3] = v * mat;
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ renderBoxes(mat, i);
+
+ m_cubemaps[i]->end();
+ }
+ }
+
+ for (int face = 0; face < 6; ++face) {
+ m_mainCubemap->begin(face);
+ GLRenderTargetCube::getViewMatrix(mat, face);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ renderBoxes(mat, -1);
+
+ m_mainCubemap->end();
+ }
+
+ glPopMatrix();
+
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+
+ m_updateAllCubemaps = false;
+}
+
+void Scene::drawBackground(QPainter *painter, const QRectF &)
+{
+ float width = float(painter->device()->width());
+ float height = float(painter->device()->height());
+
+ setStates();
+
+ if (m_dynamicCubemap)
+ renderCubemaps();
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glMatrixMode(GL_PROJECTION);
+ gluPerspective(60.0, width / height, 0.01, 15.0);
+
+ glMatrixMode(GL_MODELVIEW);
+
+ //gfx::Matrix4x4f view = gfx::Matrix4x4f::identity();
+ //view(3, 2) -= 2.0f * exp(m_distExp / 1200.0f);
+
+ gfx::Matrix4x4f view;
+ m_trackBalls[2].rotation().matrix(view);
+ view(3, 2) -= 2.0f * exp(m_distExp / 1200.0f);
+ renderBoxes(view);
+
+ defaultStates();
+ ++m_frame;
+}
+
+QPointF Scene::pixelPosToViewPos(const QPointF& p)
+{
+ return QPointF(2.0 * float(p.x()) / width() - 1.0,
+ 1.0 - 2.0 * float(p.y()) / height());
+}
+
+void Scene::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
+{
+ QGraphicsScene::mouseMoveEvent(event);
+ if (event->isAccepted())
+ return;
+
+ if (event->buttons() & Qt::LeftButton) {
+ m_trackBalls[0].move(pixelPosToViewPos(event->scenePos()), m_trackBalls[2].rotation().conjugate());
+ event->accept();
+ } else {
+ m_trackBalls[0].release(pixelPosToViewPos(event->scenePos()), m_trackBalls[2].rotation().conjugate());
+ }
+
+ if (event->buttons() & Qt::RightButton) {
+ m_trackBalls[1].move(pixelPosToViewPos(event->scenePos()), m_trackBalls[2].rotation().conjugate());
+ event->accept();
+ } else {
+ m_trackBalls[1].release(pixelPosToViewPos(event->scenePos()), m_trackBalls[2].rotation().conjugate());
+ }
+
+ if (event->buttons() & Qt::MidButton) {
+ m_trackBalls[2].move(pixelPosToViewPos(event->scenePos()), gfx::Quaternionf::identity());
+ event->accept();
+ } else {
+ m_trackBalls[2].release(pixelPosToViewPos(event->scenePos()), gfx::Quaternionf::identity());
+ }
+}
+
+void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event)
+{
+ QGraphicsScene::mousePressEvent(event);
+ if (event->isAccepted())
+ return;
+
+ if (event->buttons() & Qt::LeftButton) {
+ m_trackBalls[0].push(pixelPosToViewPos(event->scenePos()), m_trackBalls[2].rotation().conjugate());
+ event->accept();
+ }
+
+ if (event->buttons() & Qt::RightButton) {
+ m_trackBalls[1].push(pixelPosToViewPos(event->scenePos()), m_trackBalls[2].rotation().conjugate());
+ event->accept();
+ }
+
+ if (event->buttons() & Qt::MidButton) {
+ m_trackBalls[2].push(pixelPosToViewPos(event->scenePos()), gfx::Quaternionf::identity());
+ event->accept();
+ }
+}
+
+void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
+{
+ QGraphicsScene::mouseReleaseEvent(event);
+ if (event->isAccepted())
+ return;
+
+ if (event->button() == Qt::LeftButton) {
+ m_trackBalls[0].release(pixelPosToViewPos(event->scenePos()), m_trackBalls[2].rotation().conjugate());
+ event->accept();
+ }
+
+ if (event->button() == Qt::RightButton) {
+ m_trackBalls[1].release(pixelPosToViewPos(event->scenePos()), m_trackBalls[2].rotation().conjugate());
+ event->accept();
+ }
+
+ if (event->button() == Qt::MidButton) {
+ m_trackBalls[2].release(pixelPosToViewPos(event->scenePos()), gfx::Quaternionf::identity());
+ event->accept();
+ }
+}
+
+void Scene::wheelEvent(QGraphicsSceneWheelEvent * event)
+{
+ QGraphicsScene::wheelEvent(event);
+ if (!event->isAccepted()) {
+ m_distExp += event->delta();
+ if (m_distExp < -8 * 120)
+ m_distExp = -8 * 120;
+ if (m_distExp > 10 * 120)
+ m_distExp = 10 * 120;
+ event->accept();
+ }
+}
+
+void Scene::setShader(int index)
+{
+ if (index >= 0 && index < m_fragmentShaders.size())
+ m_currentShader = index;
+}
+
+void Scene::setTexture(int index)
+{
+ if (index >= 0 && index < m_textures.size())
+ m_currentTexture = index;
+}
+
+void Scene::toggleDynamicCubemap(int state)
+{
+ if ((m_dynamicCubemap = (state == Qt::Checked)))
+ m_updateAllCubemaps = true;
+}
+
+void Scene::setColorParameter(const QString &name, QRgb color)
+{
+ // set the color in all programs
+ foreach (GLProgram *program, m_programs) {
+ program->bind();
+ program->setColor(name, color);
+ program->unbind();
+ }
+}
+
+void Scene::setFloatParameter(const QString &name, float value)
+{
+ // set the color in all programs
+ foreach (GLProgram *program, m_programs) {
+ program->bind();
+ program->setFloat(name, value);
+ program->unbind();
+ }
+}
+
+void Scene::newItem(ItemDialog::ItemType type)
+{
+ QSize size = sceneRect().size().toSize();
+ switch (type) {
+ case ItemDialog::QtBoxItem:
+ addItem(new QtBox(64, rand() % (size.width() - 64) + 32, rand() % (size.height() - 64) + 32));
+ break;
+ case ItemDialog::CircleItem:
+ addItem(new CircleItem(64, rand() % (size.width() - 64) + 32, rand() % (size.height() - 64) + 32));
+ break;
+ case ItemDialog::SquareItem:
+ addItem(new SquareItem(64, rand() % (size.width() - 64) + 32, rand() % (size.height() - 64) + 32));
+ break;
+ default:
+ break;
+ }
+}
diff --git a/demos/boxes/scene.h b/demos/boxes/scene.h
new file mode 100644
index 0000000..2db9317
--- /dev/null
+++ b/demos/boxes/scene.h
@@ -0,0 +1,243 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SCENE_H
+#define SCENE_H
+
+//#include <GL/glew.h>
+#include "glextensions.h"
+
+#include <QtGui>
+#include <QtOpenGL>
+
+#include "roundedbox.h"
+#include "gltrianglemesh.h"
+#include "vector.h"
+#include "trackball.h"
+#include "glbuffers.h"
+#include "glshaders.h"
+#include "qtbox.h"
+
+#define PI 3.14159265358979
+
+class ParameterEdit : public QWidget
+{
+public:
+ virtual void emitChange() = 0;
+};
+
+class ColorEdit : public ParameterEdit
+{
+ Q_OBJECT
+public:
+ ColorEdit(QRgb initialColor, int id);
+ QRgb color() const {return m_color;}
+ virtual void emitChange() {emit colorChanged(m_color, m_id);}
+public slots:
+ void editDone();
+signals:
+ void colorChanged(QRgb color, int id);
+protected:
+ virtual void mousePressEvent(QMouseEvent *event);
+ void setColor(QRgb color); // also emits colorChanged()
+private:
+ QGraphicsScene *m_dialogParentScene;
+ QLineEdit *m_lineEdit;
+ QFrame *m_button;
+ QRgb m_color;
+ int m_id;
+};
+
+class FloatEdit : public ParameterEdit
+{
+ Q_OBJECT
+public:
+ FloatEdit(float initialValue, int id);
+ float value() const {return m_value;}
+ virtual void emitChange() {emit valueChanged(m_value, m_id);}
+public slots:
+ void editDone();
+signals:
+ void valueChanged(float value, int id);
+private:
+ QGraphicsScene *m_dialogParentScene;
+ QLineEdit *m_lineEdit;
+ float m_value;
+ int m_id;
+};
+
+class GraphicsWidget : public QGraphicsProxyWidget
+{
+protected:
+ virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);
+ virtual void resizeEvent(QGraphicsSceneResizeEvent *event);
+ virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+};
+
+class TwoSidedGraphicsWidget : public QObject
+{
+ Q_OBJECT
+public:
+ TwoSidedGraphicsWidget(QGraphicsScene *scene);
+ void setWidget(int index, QWidget *widget);
+ QWidget *widget(int index);
+public slots:
+ void flip();
+protected slots:
+ void animateFlip();
+private:
+ GraphicsWidget *m_proxyWidgets[2];
+ int m_current;
+ int m_angle; // angle in degrees
+ int m_delta;
+};
+
+class RenderOptionsDialog : public QDialog
+{
+ Q_OBJECT
+public:
+ RenderOptionsDialog();
+ int addTexture(const QString &name);
+ int addShader(const QString &name);
+ void emitParameterChanged();
+protected slots:
+ void setColorParameter(QRgb color, int id);
+ void setFloatParameter(float value, int id);
+signals:
+ void dynamicCubemapToggled(int);
+ void colorParameterChanged(const QString &, QRgb);
+ void floatParameterChanged(const QString &, float);
+ void textureChanged(int);
+ void shaderChanged(int);
+ void doubleClicked();
+protected:
+ virtual void mouseDoubleClickEvent(QMouseEvent *event);
+
+ QVector<QByteArray> m_parameterNames;
+ QComboBox *m_textureCombo;
+ QComboBox *m_shaderCombo;
+ QVector<ParameterEdit *> m_parameterEdits;
+};
+
+class ItemDialog : public QDialog
+{
+ Q_OBJECT
+public:
+ enum ItemType {
+ QtBoxItem,
+ CircleItem,
+ SquareItem,
+ };
+
+ ItemDialog();
+public slots:
+ void triggerNewQtBox();
+ void triggerNewCircleItem();
+ void triggerNewSquareItem();
+signals:
+ void doubleClicked();
+ void newItemTriggered(ItemDialog::ItemType type);
+protected:
+ virtual void mouseDoubleClickEvent(QMouseEvent *event);
+};
+
+class Scene : public QGraphicsScene
+{
+ Q_OBJECT
+public:
+ Scene(int width, int height, int maxTextureSize);
+ ~Scene();
+ virtual void drawBackground(QPainter *painter, const QRectF &rect);
+
+public slots:
+ void setShader(int index);
+ void setTexture(int index);
+ void toggleDynamicCubemap(int state);
+ void setColorParameter(const QString &name, QRgb color);
+ void setFloatParameter(const QString &name, float value);
+ void newItem(ItemDialog::ItemType type);
+protected:
+ void renderBoxes(const gfx::Matrix4x4f &view, int excludeBox = -2);
+ void setStates();
+ void setLights();
+ void defaultStates();
+ void renderCubemaps();
+
+ virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
+ virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
+ virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
+ virtual void wheelEvent(QGraphicsSceneWheelEvent * event);
+private:
+ void initGL();
+ QPointF pixelPosToViewPos(const QPointF& p);
+
+ QTime m_time;
+ int m_lastTime;
+ int m_mouseEventTime;
+ int m_distExp;
+ int m_frame;
+ int m_maxTextureSize;
+
+ int m_currentShader;
+ int m_currentTexture;
+ bool m_dynamicCubemap;
+ bool m_updateAllCubemaps;
+
+ RenderOptionsDialog *m_renderOptions;
+ ItemDialog *m_itemDialog;
+ QTimer *m_timer;
+ GLRoundedBox *m_box;
+ TrackBall m_trackBalls[3];
+ QVector<GLTexture *> m_textures;
+ GLTextureCube *m_environment;
+ GLTexture3D *m_noise;
+ GLRenderTargetCube *m_mainCubemap;
+ QVector<GLRenderTargetCube *> m_cubemaps;
+ QVector<GLProgram *> m_programs;
+ GLVertexShader *m_vertexShader;
+ QVector<GLFragmentShader *> m_fragmentShaders;
+ GLFragmentShader *m_environmentShader;
+ GLProgram *m_environmentProgram;
+};
+
+
+
+#endif
diff --git a/demos/boxes/smiley.png b/demos/boxes/smiley.png
new file mode 100644
index 0000000..41cfda6
--- /dev/null
+++ b/demos/boxes/smiley.png
Binary files differ
diff --git a/demos/boxes/square.jpg b/demos/boxes/square.jpg
new file mode 100644
index 0000000..03f53bd
--- /dev/null
+++ b/demos/boxes/square.jpg
Binary files differ
diff --git a/demos/boxes/trackball.cpp b/demos/boxes/trackball.cpp
new file mode 100644
index 0000000..980f6ed
--- /dev/null
+++ b/demos/boxes/trackball.cpp
@@ -0,0 +1,158 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "trackball.h"
+
+//============================================================================//
+// TrackBall //
+//============================================================================//
+
+TrackBall::TrackBall(TrackMode mode)
+ : m_angularVelocity(0)
+ , m_paused(false)
+ , m_pressed(false)
+ , m_mode(mode)
+{
+ m_axis = gfx::Vector3f::vector(0, 1, 0);
+ m_rotation = gfx::Quaternionf::quaternion(1.0f, 0.0f, 0.0f, 0.0f);
+ m_lastTime = QTime::currentTime();
+}
+
+TrackBall::TrackBall(float angularVelocity, const gfx::Vector3f& axis, TrackMode mode)
+ : m_axis(axis)
+ , m_angularVelocity(angularVelocity)
+ , m_paused(false)
+ , m_pressed(false)
+ , m_mode(mode)
+{
+ m_rotation = gfx::Quaternionf::quaternion(1.0f, 0.0f, 0.0f, 0.0f);
+ m_lastTime = QTime::currentTime();
+}
+
+void TrackBall::push(const QPointF& p, const gfx::Quaternionf &)
+{
+ m_rotation = rotation();
+ m_pressed = true;
+ m_lastTime = QTime::currentTime();
+ m_lastPos = p;
+ m_angularVelocity = 0.0f;
+}
+
+void TrackBall::move(const QPointF& p, const gfx::Quaternionf &transformation)
+{
+ if (!m_pressed)
+ return;
+
+ QTime currentTime = QTime::currentTime();
+ int msecs = m_lastTime.msecsTo(currentTime);
+ if (msecs <= 20)
+ return;
+
+ switch (m_mode) {
+ case Plane:
+ {
+ QLineF delta(m_lastPos, p);
+ m_angularVelocity = delta.length() / msecs;
+ m_axis = gfx::Vector3f::vector(delta.dy(), -delta.dx(), 0.0f).normalized();
+ m_axis = transformation.transform(m_axis);
+ m_rotation *= gfx::Quaternionf::rotation(delta.length(), m_axis);
+ }
+ break;
+ case Sphere:
+ {
+ gfx::Vector3f lastPos3D = gfx::Vector3f::vector(m_lastPos.x(), m_lastPos.y(), 0);
+ float sqrZ = 1 - lastPos3D.sqrNorm();
+ if (sqrZ > 0)
+ lastPos3D[2] = sqrt(sqrZ);
+ else
+ lastPos3D.normalize();
+
+ gfx::Vector3f currentPos3D = gfx::Vector3f::vector(p.x(), p.y(), 0);
+ sqrZ = 1 - currentPos3D.sqrNorm();
+ if (sqrZ > 0)
+ currentPos3D[2] = sqrt(sqrZ);
+ else
+ currentPos3D.normalize();
+
+ m_axis = gfx::Vector3f::cross(currentPos3D, lastPos3D);
+ float angle = asin(sqrt(m_axis.sqrNorm()));
+
+ m_angularVelocity = angle / msecs;
+ m_axis.normalize();
+ m_axis = transformation.transform(m_axis);
+ m_rotation *= gfx::Quaternionf::rotation(angle, m_axis);
+ }
+ break;
+ }
+
+ m_lastPos = p;
+ m_lastTime = currentTime;
+}
+
+void TrackBall::release(const QPointF& p, const gfx::Quaternionf &transformation)
+{
+ // Calling move() caused the rotation to stop if the framerate was too low.
+ move(p, transformation);
+ m_pressed = false;
+}
+
+void TrackBall::start()
+{
+ m_lastTime = QTime::currentTime();
+ m_paused = false;
+}
+
+void TrackBall::stop()
+{
+ m_rotation = rotation();
+ m_paused = true;
+}
+
+gfx::Quaternionf TrackBall::rotation() const
+{
+ if (m_paused || m_pressed)
+ return m_rotation;
+
+ QTime currentTime = QTime::currentTime();
+ float angle = m_angularVelocity * m_lastTime.msecsTo(currentTime);
+ return m_rotation * gfx::Quaternionf::rotation(angle, m_axis);
+}
+
diff --git a/demos/boxes/trackball.h b/demos/boxes/trackball.h
new file mode 100644
index 0000000..5e3f40c
--- /dev/null
+++ b/demos/boxes/trackball.h
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef TRACKBALL_H
+#define TRACKBALL_H
+
+#include <QtGui>
+
+#include "vector.h"
+
+class TrackBall
+{
+public:
+ enum TrackMode
+ {
+ Plane,
+ Sphere,
+ };
+ TrackBall(TrackMode mode = Sphere);
+ TrackBall(float angularVelocity, const gfx::Vector3f& axis, TrackMode mode = Sphere);
+ // coordinates in [-1,1]x[-1,1]
+ void push(const QPointF& p, const gfx::Quaternionf &transformation);
+ void move(const QPointF& p, const gfx::Quaternionf &transformation);
+ void release(const QPointF& p, const gfx::Quaternionf &transformation);
+ void start(); // starts clock
+ void stop(); // stops clock
+ gfx::Quaternionf rotation() const;
+private:
+ gfx::Quaternionf m_rotation;
+ gfx::Vector3f m_axis;
+ float m_angularVelocity;
+
+ QPointF m_lastPos;
+ QTime m_lastTime;
+ bool m_paused;
+ bool m_pressed;
+ TrackMode m_mode;
+};
+
+#endif
diff --git a/demos/boxes/vector.h b/demos/boxes/vector.h
new file mode 100644
index 0000000..bb24531
--- /dev/null
+++ b/demos/boxes/vector.h
@@ -0,0 +1,602 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef VECTOR_H
+#define VECTOR_H
+
+#include <cassert>
+#include <cmath>
+#include <iostream>
+
+namespace gfx
+{
+
+template<class T, int n>
+struct Vector
+{
+ // Keep the Vector struct a plain old data (POD) struct by avoiding constructors
+
+ static Vector vector(T x)
+ {
+ Vector result;
+ for (int i = 0; i < n; ++i)
+ result.v[i] = x;
+ return result;
+ }
+
+ // Use only for 2D vectors
+ static Vector vector(T x, T y)
+ {
+ assert(n == 2);
+ Vector result;
+ result.v[0] = x;
+ result.v[1] = y;
+ return result;
+ }
+
+ // Use only for 3D vectors
+ static Vector vector(T x, T y, T z)
+ {
+ assert(n == 3);
+ Vector result;
+ result.v[0] = x;
+ result.v[1] = y;
+ result.v[2] = z;
+ return result;
+ }
+
+ // Use only for 4D vectors
+ static Vector vector(T x, T y, T z, T w)
+ {
+ assert(n == 4);
+ Vector result;
+ result.v[0] = x;
+ result.v[1] = y;
+ result.v[2] = z;
+ result.v[3] = w;
+ return result;
+ }
+
+ // Pass 'n' arguments to this function.
+ static Vector vector(T *v)
+ {
+ Vector result;
+ for (int i = 0; i < n; ++i)
+ result.v[i] = v[i];
+ return result;
+ }
+
+ T &operator [] (int i) {return v[i];}
+ T operator [] (int i) const {return v[i];}
+
+#define VECTOR_BINARY_OP(op, arg, rhs) \
+ Vector operator op (arg) const \
+ { \
+ Vector result; \
+ for (int i = 0; i < n; ++i) \
+ result.v[i] = v[i] op rhs; \
+ return result; \
+ }
+
+ VECTOR_BINARY_OP(+, const Vector &u, u.v[i])
+ VECTOR_BINARY_OP(-, const Vector &u, u.v[i])
+ VECTOR_BINARY_OP(*, const Vector &u, u.v[i])
+ VECTOR_BINARY_OP(/, const Vector &u, u.v[i])
+ VECTOR_BINARY_OP(+, T s, s)
+ VECTOR_BINARY_OP(-, T s, s)
+ VECTOR_BINARY_OP(*, T s, s)
+ VECTOR_BINARY_OP(/, T s, s)
+#undef VECTOR_BINARY_OP
+
+ Vector operator - () const
+ {
+ Vector result;
+ for (int i = 0; i < n; ++i)
+ result.v[i] = -v[i];
+ return result;
+ }
+
+#define VECTOR_ASSIGN_OP(op, arg, rhs) \
+ Vector &operator op (arg) \
+ { \
+ for (int i = 0; i < n; ++i) \
+ v[i] op rhs; \
+ return *this; \
+ }
+
+ VECTOR_ASSIGN_OP(+=, const Vector &u, u.v[i])
+ VECTOR_ASSIGN_OP(-=, const Vector &u, u.v[i])
+ VECTOR_ASSIGN_OP(=, T s, s)
+ VECTOR_ASSIGN_OP(*=, T s, s)
+ VECTOR_ASSIGN_OP(/=, T s, s)
+#undef VECTOR_ASSIGN_OP
+
+ static T dot(const Vector &u, const Vector &v)
+ {
+ T sum(0);
+ for (int i = 0; i < n; ++i)
+ sum += u.v[i] * v.v[i];
+ return sum;
+ }
+
+ static Vector cross(const Vector &u, const Vector &v)
+ {
+ assert(n == 3);
+ return vector(u.v[1] * v.v[2] - u.v[2] * v.v[1],
+ u.v[2] * v.v[0] - u.v[0] * v.v[2],
+ u.v[0] * v.v[1] - u.v[1] * v.v[0]);
+ }
+
+ T sqrNorm() const
+ {
+ return dot(*this, *this);
+ }
+
+ // requires floating point type T
+ void normalize()
+ {
+ T s = sqrNorm();
+ if (s != 0)
+ *this /= sqrt(s);
+ }
+
+ // requires floating point type T
+ Vector normalized() const
+ {
+ T s = sqrNorm();
+ if (s == 0)
+ return *this;
+ return *this / sqrt(s);
+ }
+
+ T *bits() {return v;}
+ const T *bits() const {return v;}
+
+ T v[n];
+};
+
+#define SCALAR_VECTOR_BINARY_OP(op) \
+template<class T, int n> \
+Vector<T, n> operator op (T s, const Vector<T, n>& u) \
+{ \
+ Vector<T, n> result; \
+ for (int i = 0; i < n; ++i) \
+ result[i] = s op u[i]; \
+ return result; \
+}
+
+SCALAR_VECTOR_BINARY_OP(+)
+SCALAR_VECTOR_BINARY_OP(-)
+SCALAR_VECTOR_BINARY_OP(*)
+SCALAR_VECTOR_BINARY_OP(/)
+#undef SCALAR_VECTOR_BINARY_OP
+
+template<class T, int n>
+std::ostream &operator << (std::ostream &os, const Vector<T, n> &v)
+{
+ assert(n > 0);
+ os << "[" << v[0];
+ for (int i = 1; i < n; ++i)
+ os << ", " << v[i];
+ os << "]";
+ return os;
+}
+
+typedef Vector<float, 2> Vector2f;
+typedef Vector<float, 3> Vector3f;
+typedef Vector<float, 4> Vector4f;
+
+template<class T, int rows, int cols>
+struct Matrix
+{
+ // Keep the Matrix struct a plain old data (POD) struct by avoiding constructors
+
+ static Matrix matrix(T x)
+ {
+ Matrix result;
+ for (int i = 0; i < rows; ++i) {
+ for (int j = 0; j < cols; ++j)
+ result.v[i][j] = x;
+ }
+ return result;
+ }
+
+ static Matrix matrix(T *m)
+ {
+ Matrix result;
+ for (int i = 0; i < rows; ++i) {
+ for (int j = 0; j < cols; ++j) {
+ result.v[i][j] = *m;
+ ++m;
+ }
+ }
+ return result;
+ }
+
+ T &operator () (int i, int j) {return v[i][j];}
+ T operator () (int i, int j) const {return v[i][j];}
+ Vector<T, cols> &operator [] (int i) {return v[i];}
+ const Vector<T, cols> &operator [] (int i) const {return v[i];}
+
+ // TODO: operators, methods
+
+ Vector<T, rows> operator * (const Vector<T, cols> &u) const
+ {
+ Vector<T, rows> result;
+ for (int i = 0; i < rows; ++i)
+ result[i] = Vector<T, cols>::dot(v[i], u);
+ return result;
+ }
+
+ template<int k>
+ Matrix<T, rows, k> operator * (const Matrix<T, cols, k> &m)
+ {
+ Matrix<T, rows, k> result;
+ for (int i = 0; i < rows; ++i)
+ result[i] = v[i] * m;
+ return result;
+ }
+
+ T* bits() {return reinterpret_cast<T *>(this);}
+ const T* bits() const {return reinterpret_cast<const T *>(this);}
+
+ // Simple Gauss elimination.
+ // TODO: Optimize and improve stability.
+ Matrix inverse(bool *ok = 0) const
+ {
+ assert(rows == cols);
+ Matrix rhs = identity();
+ Matrix lhs(*this);
+ T temp;
+ // Down
+ for (int i = 0; i < rows; ++i) {
+ // Pivoting
+ int pivot = i;
+ for (int j = i; j < rows; ++j) {
+ if (qAbs(lhs(j, i)) > lhs(pivot, i))
+ pivot = j;
+ }
+ // TODO: fuzzy compare.
+ if (lhs(pivot, i) == T(0)) {
+ if (ok)
+ *ok = false;
+ return rhs;
+ }
+ if (pivot != i) {
+ for (int j = i; j < cols; ++j) {
+ temp = lhs(pivot, j);
+ lhs(pivot, j) = lhs(i, j);
+ lhs(i, j) = temp;
+ }
+ for (int j = 0; j < cols; ++j) {
+ temp = rhs(pivot, j);
+ rhs(pivot, j) = rhs(i, j);
+ rhs(i, j) = temp;
+ }
+ }
+
+ // Normalize i-th row
+ rhs[i] /= lhs(i, i);
+ for (int j = cols - 1; j > i; --j)
+ lhs(i, j) /= lhs(i, i);
+
+ // Eliminate non-zeros in i-th column below the i-th row.
+ for (int j = i + 1; j < rows; ++j) {
+ rhs[j] -= lhs(j, i) * rhs[i];
+ for (int k = i + 1; k < cols; ++k)
+ lhs(j, k) -= lhs(j, i) * lhs(i, k);
+ }
+ }
+ // Up
+ for (int i = rows - 1; i > 0; --i) {
+ for (int j = i - 1; j >= 0; --j)
+ rhs[j] -= lhs(j, i) * rhs[i];
+ }
+ if (ok)
+ *ok = true;
+ return rhs;
+ }
+
+ Matrix<T, cols, rows> transpose() const
+ {
+ Matrix<T, cols, rows> result;
+ for (int i = 0; i < rows; ++i) {
+ for (int j = 0; j < cols; ++j)
+ result.v[j][i] = v[i][j];
+ }
+ return result;
+ }
+
+ static Matrix identity()
+ {
+ Matrix result = matrix(T(0));
+ for (int i = 0; i < rows && i < cols; ++i)
+ result.v[i][i] = T(1);
+ return result;
+ }
+
+ Vector<T, cols> v[rows];
+};
+
+template<class T, int rows, int cols>
+Vector<T, cols> operator * (const Vector<T, rows> &u, const Matrix<T, rows, cols> &m)
+{
+ Vector<T, cols> result = Vector<T, cols>::vector(T(0));
+ for (int i = 0; i < rows; ++i)
+ result += m[i] * u[i];
+ return result;
+}
+
+template<class T, int rows, int cols>
+std::ostream &operator << (std::ostream &os, const Matrix<T, rows, cols> &m)
+{
+ assert(rows > 0);
+ os << "[" << m[0];
+ for (int i = 1; i < rows; ++i)
+ os << ", " << m[i];
+ os << "]";
+ return os;
+}
+
+
+typedef Matrix<float, 2, 2> Matrix2x2f;
+typedef Matrix<float, 3, 3> Matrix3x3f;
+typedef Matrix<float, 4, 4> Matrix4x4f;
+
+template<class T>
+struct Quaternion
+{
+ // Keep the Quaternion struct a plain old data (POD) struct by avoiding constructors
+
+ static Quaternion quaternion(T s, T x, T y, T z)
+ {
+ Quaternion result;
+ result.scalar = s;
+ result.vector[0] = x;
+ result.vector[1] = y;
+ result.vector[2] = z;
+ return result;
+ }
+
+ static Quaternion quaternion(T s, const Vector<T, 3> &v)
+ {
+ Quaternion result;
+ result.scalar = s;
+ result.vector = v;
+ return result;
+ }
+
+ static Quaternion identity()
+ {
+ return quaternion(T(1), T(0), T(0), T(0));
+ }
+
+ // assumes that all the elements are packed tightly
+ T& operator [] (int i) {return reinterpret_cast<T *>(this)[i];}
+ T operator [] (int i) const {return reinterpret_cast<const T *>(this)[i];}
+
+#define QUATERNION_BINARY_OP(op, arg, rhs) \
+ Quaternion operator op (arg) const \
+ { \
+ Quaternion result; \
+ for (int i = 0; i < 4; ++i) \
+ result[i] = (*this)[i] op rhs; \
+ return result; \
+ }
+
+ QUATERNION_BINARY_OP(+, const Quaternion &q, q[i])
+ QUATERNION_BINARY_OP(-, const Quaternion &q, q[i])
+ QUATERNION_BINARY_OP(*, T s, s)
+ QUATERNION_BINARY_OP(/, T s, s)
+#undef QUATERNION_BINARY_OP
+
+ Quaternion operator - () const
+ {
+ return Quaternion(-scalar, -vector);
+ }
+
+ Quaternion operator * (const Quaternion &q) const
+ {
+ Quaternion result;
+ result.scalar = scalar * q.scalar - Vector<T, 3>::dot(vector, q.vector);
+ result.vector = scalar * q.vector + vector * q.scalar + Vector<T, 3>::cross(vector, q.vector);
+ return result;
+ }
+
+ Quaternion operator * (const Vector<T, 3> &v) const
+ {
+ Quaternion result;
+ result.scalar = -Vector<T, 3>::dot(vector, v);
+ result.vector = scalar * v + Vector<T, 3>::cross(vector, v);
+ return result;
+ }
+
+ friend Quaternion operator * (const Vector<T, 3> &v, const Quaternion &q)
+ {
+ Quaternion result;
+ result.scalar = -Vector<T, 3>::dot(v, q.vector);
+ result.vector = v * q.scalar + Vector<T, 3>::cross(v, q.vector);
+ return result;
+ }
+
+#define QUATERNION_ASSIGN_OP(op, arg, rhs) \
+ Quaternion &operator op (arg) \
+ { \
+ for (int i = 0; i < 4; ++i) \
+ (*this)[i] op rhs; \
+ return *this; \
+ }
+
+ QUATERNION_ASSIGN_OP(+=, const Quaternion &q, q[i])
+ QUATERNION_ASSIGN_OP(-=, const Quaternion &q, q[i])
+ QUATERNION_ASSIGN_OP(=, T s, s)
+ QUATERNION_ASSIGN_OP(*=, T s, s)
+ QUATERNION_ASSIGN_OP(/=, T s, s)
+#undef QUATERNION_ASSIGN_OP
+
+ Quaternion& operator *= (const Quaternion &q)
+ {
+ Quaternion result;
+ result.scalar = scalar * q.scalar - Vector<T, 3>::dot(vector, q.vector);
+ result.vector = scalar * q.vector + vector * q.scalar + Vector<T, 3>::cross(vector, q.vector);
+ return (*this = result);
+ }
+
+ Quaternion& operator *= (const Vector<T, 3> &v)
+ {
+ Quaternion result;
+ result.scalar = -Vector<T, 3>::dot(vector, v);
+ result.vector = scalar * v + Vector<T, 3>::cross(vector, v);
+ return (*this = result);
+ }
+
+ Quaternion conjugate() const
+ {
+ return quaternion(scalar, -vector);
+ }
+
+ T sqrNorm() const
+ {
+ return scalar * scalar + vector.sqrNorm();
+ }
+
+ Quaternion inverse() const
+ {
+ return conjugate() / sqrNorm();
+ }
+
+ // requires floating point type T
+ Quaternion normalized() const
+ {
+ T s = sqrNorm();
+ if (s == 0)
+ return *this;
+ return *this / sqrt(s);
+ }
+
+ void matrix(Matrix<T, 3, 3>& m) const
+ {
+ T bb = vector[0] * vector[0];
+ T cc = vector[1] * vector[1];
+ T dd = vector[2] * vector[2];
+ T diag = scalar * scalar - bb - cc - dd;
+ T ab = scalar * vector[0];
+ T ac = scalar * vector[1];
+ T ad = scalar * vector[2];
+ T bc = vector[0] * vector[1];
+ T cd = vector[1] * vector[2];
+ T bd = vector[2] * vector[0];
+ m(0, 0) = diag + 2 * bb;
+ m(0, 1) = 2 * (bc - ad);
+ m(0, 2) = 2 * (ac + bd);
+ m(1, 0) = 2 * (ad + bc);
+ m(1, 1) = diag + 2 * cc;
+ m(1, 2) = 2 * (cd - ab);
+ m(2, 0) = 2 * (bd - ac);
+ m(2, 1) = 2 * (ab + cd);
+ m(2, 2) = diag + 2 * dd;
+ }
+
+ void matrix(Matrix<T, 4, 4>& m) const
+ {
+ T bb = vector[0] * vector[0];
+ T cc = vector[1] * vector[1];
+ T dd = vector[2] * vector[2];
+ T diag = scalar * scalar - bb - cc - dd;
+ T ab = scalar * vector[0];
+ T ac = scalar * vector[1];
+ T ad = scalar * vector[2];
+ T bc = vector[0] * vector[1];
+ T cd = vector[1] * vector[2];
+ T bd = vector[2] * vector[0];
+ m(0, 0) = diag + 2 * bb;
+ m(0, 1) = 2 * (bc - ad);
+ m(0, 2) = 2 * (ac + bd);
+ m(0, 3) = 0;
+ m(1, 0) = 2 * (ad + bc);
+ m(1, 1) = diag + 2 * cc;
+ m(1, 2) = 2 * (cd - ab);
+ m(1, 3) = 0;
+ m(2, 0) = 2 * (bd - ac);
+ m(2, 1) = 2 * (ab + cd);
+ m(2, 2) = diag + 2 * dd;
+ m(2, 3) = 0;
+ m(3, 0) = 0;
+ m(3, 1) = 0;
+ m(3, 2) = 0;
+ m(3, 3) = 1;
+ }
+
+ // assumes that 'this' is normalized
+ Vector<T, 3> transform(const Vector<T, 3> &v) const
+ {
+ Matrix<T, 3, 3> m;
+ matrix(m);
+ return v * m;
+ }
+
+ // assumes that all the elements are packed tightly
+ T* bits() {return reinterpret_cast<T *>(this);}
+ const T* bits() const {return reinterpret_cast<const T *>(this);}
+
+ // requires floating point type T
+ static Quaternion rotation(T angle, const Vector<T, 3> &unitAxis)
+ {
+ T s = sin(angle / 2);
+ T c = cos(angle / 2);
+ return quaternion(c, unitAxis * s);
+ }
+
+ T scalar;
+ Vector<T, 3> vector;
+};
+
+template<class T>
+Quaternion<T> operator * (T s, const Quaternion<T>& q)
+{
+ return Quaternion<T>::quaternion(s * q.scalar, s * q.vector);
+}
+
+typedef Quaternion<float> Quaternionf;
+
+} // end namespace gfx
+
+#endif
diff --git a/demos/boxes/wood.fsh b/demos/boxes/wood.fsh
new file mode 100644
index 0000000..35bf7d6
--- /dev/null
+++ b/demos/boxes/wood.fsh
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+varying vec3 position, normal;
+varying vec4 specular, ambient, diffuse, lightDirection;
+
+uniform sampler2D tex;
+uniform sampler3D noise;
+
+//const vec4 woodColors[2] = {vec4(0.37,0.24,0.20,1), vec4(0.8,0.6,0.4,1)};
+uniform vec4 woodColors[2];
+//const float woodTubulence = 0.1;
+uniform float woodTubulence;
+
+void main()
+{
+ float r = length(gl_TexCoord[1].yz);
+ r += woodTubulence * texture3D(noise, 0.25 * gl_TexCoord[1].xyz).x;
+
+ vec3 N = normalize(normal);
+ // assume directional light
+
+ gl_MaterialParameters M = gl_FrontMaterial;
+
+ float NdotL = dot(N, lightDirection.xyz);
+ float RdotL = dot(reflect(normalize(position), N), lightDirection.xyz);
+
+ float f = fract(16.0 * r);
+ vec4 unlitColor = mix(woodColors[0], woodColors[1], min(1.25 * f, 5.0 - 5.0 * f));
+ gl_FragColor = (ambient + diffuse * max(NdotL, 0.0)) * unlitColor +
+ M.specular * specular * pow(max(RdotL, 0.0), M.shininess);
+}
diff --git a/demos/browser/Info_mac.plist b/demos/browser/Info_mac.plist
new file mode 100644
index 0000000..5648631
--- /dev/null
+++ b/demos/browser/Info_mac.plist
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
+<plist version="0.9">
+<dict>
+ <key>CFBundleIconFile</key>
+ <string>@ICON@</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleGetInfoString</key>
+ <string>Created by Qt/QMake</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.trolltech.DemoBrowser</string>
+ <key>CFBundleSignature</key>
+ <string>ttxt</string>
+ <key>CFBundleExecutable</key>
+ <string>@EXECUTABLE@</string>
+ <key>CFBundleDocumentTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>html</string>
+ <string>htm</string>
+ <string>shtml</string>
+ <string>xht</string>
+ <string>xhtml</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>@ICON@</string>
+ <key>CFBundleTypeName</key>
+ <string>HTML Document</string>
+ <key>CFBundleTypeOSTypes</key>
+ <array>
+ <string>HTML</string>
+ </array>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ </dict>
+ </array>
+ <key>NOTE</key>
+ <string>DemoBrowser by Nokia Corporation and/or its subsidiary(-ies)</string>
+</dict>
+</plist>
diff --git a/demos/browser/addbookmarkdialog.ui b/demos/browser/addbookmarkdialog.ui
new file mode 100644
index 0000000..3460d7b
--- /dev/null
+++ b/demos/browser/addbookmarkdialog.ui
@@ -0,0 +1,98 @@
+<ui version="4.0" >
+ <class>AddBookmarkDialog</class>
+ <widget class="QDialog" name="AddBookmarkDialog" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>240</width>
+ <height>168</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Add Bookmark</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout" >
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Type a name for the bookmark, and choose where to keep it.</string>
+ </property>
+ <property name="textFormat" >
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="wordWrap" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="name" />
+ </item>
+ <item>
+ <widget class="QComboBox" name="location" />
+ </item>
+ <item>
+ <spacer name="verticalSpacer" >
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>20</width>
+ <height>2</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ <property name="centerButtons" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>AddBookmarkDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>AddBookmarkDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/demos/browser/autosaver.cpp b/demos/browser/autosaver.cpp
new file mode 100644
index 0000000..4e945f0
--- /dev/null
+++ b/demos/browser/autosaver.cpp
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "autosaver.h"
+
+#include <QtCore/QDir>
+#include <QtCore/QCoreApplication>
+#include <QtCore/QMetaObject>
+#include <QtDebug>
+
+#define AUTOSAVE_IN 1000 * 3 // seconds
+#define MAXWAIT 1000 * 15 // seconds
+
+AutoSaver::AutoSaver(QObject *parent) : QObject(parent)
+{
+ Q_ASSERT(parent);
+}
+
+AutoSaver::~AutoSaver()
+{
+ if (m_timer.isActive())
+ qWarning() << "AutoSaver: still active when destroyed, changes not saved.";
+}
+
+void AutoSaver::changeOccurred()
+{
+ if (m_firstChange.isNull())
+ m_firstChange.start();
+
+ if (m_firstChange.elapsed() > MAXWAIT) {
+ saveIfNeccessary();
+ } else {
+ m_timer.start(AUTOSAVE_IN, this);
+ }
+}
+
+void AutoSaver::timerEvent(QTimerEvent *event)
+{
+ if (event->timerId() == m_timer.timerId()) {
+ saveIfNeccessary();
+ } else {
+ QObject::timerEvent(event);
+ }
+}
+
+void AutoSaver::saveIfNeccessary()
+{
+ if (!m_timer.isActive())
+ return;
+ m_timer.stop();
+ m_firstChange = QTime();
+ if (!QMetaObject::invokeMethod(parent(), "save", Qt::DirectConnection)) {
+ qWarning() << "AutoSaver: error invoking slot save() on parent";
+ }
+}
+
diff --git a/demos/browser/autosaver.h b/demos/browser/autosaver.h
new file mode 100644
index 0000000..bb340cd
--- /dev/null
+++ b/demos/browser/autosaver.h
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef AUTOSAVER_H
+#define AUTOSAVER_H
+
+#include <QtCore/QObject>
+#include <QtCore/QBasicTimer>
+#include <QtCore/QTime>
+
+/*
+ This class will call the save() slot on the parent object when the parent changes.
+ It will wait several seconds after changed() to combining multiple changes and
+ prevent continuous writing to disk.
+ */
+class AutoSaver : public QObject {
+
+Q_OBJECT
+
+public:
+ AutoSaver(QObject *parent);
+ ~AutoSaver();
+ void saveIfNeccessary();
+
+public slots:
+ void changeOccurred();
+
+protected:
+ void timerEvent(QTimerEvent *event);
+
+private:
+ QBasicTimer m_timer;
+ QTime m_firstChange;
+
+};
+
+#endif // AUTOSAVER_H
+
diff --git a/demos/browser/bookmarks.cpp b/demos/browser/bookmarks.cpp
new file mode 100644
index 0000000..8e7823d
--- /dev/null
+++ b/demos/browser/bookmarks.cpp
@@ -0,0 +1,987 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "bookmarks.h"
+
+#include "autosaver.h"
+#include "browserapplication.h"
+#include "history.h"
+#include "xbel.h"
+
+#include <QtCore/QBuffer>
+#include <QtCore/QFile>
+#include <QtCore/QMimeData>
+
+#include <QtGui/QDesktopServices>
+#include <QtGui/QDragEnterEvent>
+#include <QtGui/QFileDialog>
+#include <QtGui/QHeaderView>
+#include <QtGui/QIcon>
+#include <QtGui/QMessageBox>
+#include <QtGui/QToolButton>
+
+#include <QtWebKit/QWebSettings>
+
+#include <QtCore/QDebug>
+
+#define BOOKMARKBAR "Bookmarks Bar"
+#define BOOKMARKMENU "Bookmarks Menu"
+
+BookmarksManager::BookmarksManager(QObject *parent)
+ : QObject(parent)
+ , m_loaded(false)
+ , m_saveTimer(new AutoSaver(this))
+ , m_bookmarkRootNode(0)
+ , m_bookmarkModel(0)
+{
+ connect(this, SIGNAL(entryAdded(BookmarkNode *)),
+ m_saveTimer, SLOT(changeOccurred()));
+ connect(this, SIGNAL(entryRemoved(BookmarkNode *, int, BookmarkNode *)),
+ m_saveTimer, SLOT(changeOccurred()));
+ connect(this, SIGNAL(entryChanged(BookmarkNode *)),
+ m_saveTimer, SLOT(changeOccurred()));
+}
+
+BookmarksManager::~BookmarksManager()
+{
+ m_saveTimer->saveIfNeccessary();
+}
+
+void BookmarksManager::changeExpanded()
+{
+ m_saveTimer->changeOccurred();
+}
+
+void BookmarksManager::load()
+{
+ if (m_loaded)
+ return;
+ m_loaded = true;
+
+ QString dir = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
+ QString bookmarkFile = dir + QLatin1String("/bookmarks.xbel");
+ if (!QFile::exists(bookmarkFile))
+ bookmarkFile = QLatin1String(":defaultbookmarks.xbel");
+
+ XbelReader reader;
+ m_bookmarkRootNode = reader.read(bookmarkFile);
+ if (reader.error() != QXmlStreamReader::NoError) {
+ QMessageBox::warning(0, QLatin1String("Loading Bookmark"),
+ tr("Error when loading bookmarks on line %1, column %2:\n"
+ "%3").arg(reader.lineNumber()).arg(reader.columnNumber()).arg(reader.errorString()));
+ }
+
+ BookmarkNode *toolbar = 0;
+ BookmarkNode *menu = 0;
+ QList<BookmarkNode*> others;
+ for (int i = m_bookmarkRootNode->children().count() - 1; i >= 0; --i) {
+ BookmarkNode *node = m_bookmarkRootNode->children().at(i);
+ if (node->type() == BookmarkNode::Folder) {
+ // Automatically convert
+ if (node->title == tr("Toolbar Bookmarks") && !toolbar) {
+ node->title = tr(BOOKMARKBAR);
+ }
+ if (node->title == tr(BOOKMARKBAR) && !toolbar) {
+ toolbar = node;
+ }
+
+ // Automatically convert
+ if (node->title == tr("Menu") && !menu) {
+ node->title = tr(BOOKMARKMENU);
+ }
+ if (node->title == tr(BOOKMARKMENU) && !menu) {
+ menu = node;
+ }
+ } else {
+ others.append(node);
+ }
+ m_bookmarkRootNode->remove(node);
+ }
+ Q_ASSERT(m_bookmarkRootNode->children().count() == 0);
+ if (!toolbar) {
+ toolbar = new BookmarkNode(BookmarkNode::Folder, m_bookmarkRootNode);
+ toolbar->title = tr(BOOKMARKBAR);
+ } else {
+ m_bookmarkRootNode->add(toolbar);
+ }
+
+ if (!menu) {
+ menu = new BookmarkNode(BookmarkNode::Folder, m_bookmarkRootNode);
+ menu->title = tr(BOOKMARKMENU);
+ } else {
+ m_bookmarkRootNode->add(menu);
+ }
+
+ for (int i = 0; i < others.count(); ++i)
+ menu->add(others.at(i));
+}
+
+void BookmarksManager::save() const
+{
+ if (!m_loaded)
+ return;
+
+ XbelWriter writer;
+ QString dir = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
+ QString bookmarkFile = dir + QLatin1String("/bookmarks.xbel");
+ if (!writer.write(bookmarkFile, m_bookmarkRootNode))
+ qWarning() << "BookmarkManager: error saving to" << bookmarkFile;
+}
+
+void BookmarksManager::addBookmark(BookmarkNode *parent, BookmarkNode *node, int row)
+{
+ if (!m_loaded)
+ return;
+ Q_ASSERT(parent);
+ InsertBookmarksCommand *command = new InsertBookmarksCommand(this, parent, node, row);
+ m_commands.push(command);
+}
+
+void BookmarksManager::removeBookmark(BookmarkNode *node)
+{
+ if (!m_loaded)
+ return;
+
+ Q_ASSERT(node);
+ BookmarkNode *parent = node->parent();
+ int row = parent->children().indexOf(node);
+ RemoveBookmarksCommand *command = new RemoveBookmarksCommand(this, parent, row);
+ m_commands.push(command);
+}
+
+void BookmarksManager::setTitle(BookmarkNode *node, const QString &newTitle)
+{
+ if (!m_loaded)
+ return;
+
+ Q_ASSERT(node);
+ ChangeBookmarkCommand *command = new ChangeBookmarkCommand(this, node, newTitle, true);
+ m_commands.push(command);
+}
+
+void BookmarksManager::setUrl(BookmarkNode *node, const QString &newUrl)
+{
+ if (!m_loaded)
+ return;
+
+ Q_ASSERT(node);
+ ChangeBookmarkCommand *command = new ChangeBookmarkCommand(this, node, newUrl, false);
+ m_commands.push(command);
+}
+
+BookmarkNode *BookmarksManager::bookmarks()
+{
+ if (!m_loaded)
+ load();
+ return m_bookmarkRootNode;
+}
+
+BookmarkNode *BookmarksManager::menu()
+{
+ if (!m_loaded)
+ load();
+
+ for (int i = m_bookmarkRootNode->children().count() - 1; i >= 0; --i) {
+ BookmarkNode *node = m_bookmarkRootNode->children().at(i);
+ if (node->title == tr(BOOKMARKMENU))
+ return node;
+ }
+ Q_ASSERT(false);
+ return 0;
+}
+
+BookmarkNode *BookmarksManager::toolbar()
+{
+ if (!m_loaded)
+ load();
+
+ for (int i = m_bookmarkRootNode->children().count() - 1; i >= 0; --i) {
+ BookmarkNode *node = m_bookmarkRootNode->children().at(i);
+ if (node->title == tr(BOOKMARKBAR))
+ return node;
+ }
+ Q_ASSERT(false);
+ return 0;
+}
+
+BookmarksModel *BookmarksManager::bookmarksModel()
+{
+ if (!m_bookmarkModel)
+ m_bookmarkModel = new BookmarksModel(this, this);
+ return m_bookmarkModel;
+}
+
+void BookmarksManager::importBookmarks()
+{
+ QString fileName = QFileDialog::getOpenFileName(0, tr("Open File"),
+ QString(),
+ tr("XBEL (*.xbel *.xml)"));
+ if (fileName.isEmpty())
+ return;
+
+ XbelReader reader;
+ BookmarkNode *importRootNode = reader.read(fileName);
+ if (reader.error() != QXmlStreamReader::NoError) {
+ QMessageBox::warning(0, QLatin1String("Loading Bookmark"),
+ tr("Error when loading bookmarks on line %1, column %2:\n"
+ "%3").arg(reader.lineNumber()).arg(reader.columnNumber()).arg(reader.errorString()));
+ }
+
+ importRootNode->setType(BookmarkNode::Folder);
+ importRootNode->title = (tr("Imported %1").arg(QDate::currentDate().toString(Qt::SystemLocaleShortDate)));
+ addBookmark(menu(), importRootNode);
+}
+
+void BookmarksManager::exportBookmarks()
+{
+ QString fileName = QFileDialog::getSaveFileName(0, tr("Save File"),
+ tr("%1 Bookmarks.xbel").arg(QCoreApplication::applicationName()),
+ tr("XBEL (*.xbel *.xml)"));
+ if (fileName.isEmpty())
+ return;
+
+ XbelWriter writer;
+ if (!writer.write(fileName, m_bookmarkRootNode))
+ QMessageBox::critical(0, tr("Export error"), tr("error saving bookmarks"));
+}
+
+RemoveBookmarksCommand::RemoveBookmarksCommand(BookmarksManager *m_bookmarkManagaer, BookmarkNode *parent, int row)
+ : QUndoCommand(BookmarksManager::tr("Remove Bookmark"))
+ , m_row(row)
+ , m_bookmarkManagaer(m_bookmarkManagaer)
+ , m_node(parent->children().value(row))
+ , m_parent(parent)
+ , m_done(false)
+{
+}
+
+RemoveBookmarksCommand::~RemoveBookmarksCommand()
+{
+ if (m_done && !m_node->parent()) {
+ delete m_node;
+ }
+}
+
+void RemoveBookmarksCommand::undo()
+{
+ m_parent->add(m_node, m_row);
+ emit m_bookmarkManagaer->entryAdded(m_node);
+ m_done = false;
+}
+
+void RemoveBookmarksCommand::redo()
+{
+ m_parent->remove(m_node);
+ emit m_bookmarkManagaer->entryRemoved(m_parent, m_row, m_node);
+ m_done = true;
+}
+
+InsertBookmarksCommand::InsertBookmarksCommand(BookmarksManager *m_bookmarkManagaer,
+ BookmarkNode *parent, BookmarkNode *node, int row)
+ : RemoveBookmarksCommand(m_bookmarkManagaer, parent, row)
+{
+ setText(BookmarksManager::tr("Insert Bookmark"));
+ m_node = node;
+}
+
+ChangeBookmarkCommand::ChangeBookmarkCommand(BookmarksManager *m_bookmarkManagaer, BookmarkNode *node,
+ const QString &newValue, bool title)
+ : QUndoCommand()
+ , m_bookmarkManagaer(m_bookmarkManagaer)
+ , m_title(title)
+ , m_newValue(newValue)
+ , m_node(node)
+{
+ if (m_title) {
+ m_oldValue = m_node->title;
+ setText(BookmarksManager::tr("Name Change"));
+ } else {
+ m_oldValue = m_node->url;
+ setText(BookmarksManager::tr("Address Change"));
+ }
+}
+
+void ChangeBookmarkCommand::undo()
+{
+ if (m_title)
+ m_node->title = m_oldValue;
+ else
+ m_node->url = m_oldValue;
+ emit m_bookmarkManagaer->entryChanged(m_node);
+}
+
+void ChangeBookmarkCommand::redo()
+{
+ if (m_title)
+ m_node->title = m_newValue;
+ else
+ m_node->url = m_newValue;
+ emit m_bookmarkManagaer->entryChanged(m_node);
+}
+
+BookmarksModel::BookmarksModel(BookmarksManager *bookmarkManager, QObject *parent)
+ : QAbstractItemModel(parent)
+ , m_endMacro(false)
+ , m_bookmarksManager(bookmarkManager)
+{
+ connect(bookmarkManager, SIGNAL(entryAdded(BookmarkNode *)),
+ this, SLOT(entryAdded(BookmarkNode *)));
+ connect(bookmarkManager, SIGNAL(entryRemoved(BookmarkNode *, int, BookmarkNode *)),
+ this, SLOT(entryRemoved(BookmarkNode *, int, BookmarkNode *)));
+ connect(bookmarkManager, SIGNAL(entryChanged(BookmarkNode *)),
+ this, SLOT(entryChanged(BookmarkNode *)));
+}
+
+QModelIndex BookmarksModel::index(BookmarkNode *node) const
+{
+ BookmarkNode *parent = node->parent();
+ if (!parent)
+ return QModelIndex();
+ return createIndex(parent->children().indexOf(node), 0, node);
+}
+
+void BookmarksModel::entryAdded(BookmarkNode *item)
+{
+ Q_ASSERT(item && item->parent());
+ int row = item->parent()->children().indexOf(item);
+ BookmarkNode *parent = item->parent();
+ // item was already added so remove beore beginInsertRows is called
+ parent->remove(item);
+ beginInsertRows(index(parent), row, row);
+ parent->add(item, row);
+ endInsertRows();
+}
+
+void BookmarksModel::entryRemoved(BookmarkNode *parent, int row, BookmarkNode *item)
+{
+ // item was already removed, re-add so beginRemoveRows works
+ parent->add(item, row);
+ beginRemoveRows(index(parent), row, row);
+ parent->remove(item);
+ endRemoveRows();
+}
+
+void BookmarksModel::entryChanged(BookmarkNode *item)
+{
+ QModelIndex idx = index(item);
+ emit dataChanged(idx, idx);
+}
+
+bool BookmarksModel::removeRows(int row, int count, const QModelIndex &parent)
+{
+ if (row < 0 || count <= 0 || row + count > rowCount(parent))
+ return false;
+
+ BookmarkNode *bookmarkNode = node(parent);
+ for (int i = row + count - 1; i >= row; --i) {
+ BookmarkNode *node = bookmarkNode->children().at(i);
+ if (node == m_bookmarksManager->menu()
+ || node == m_bookmarksManager->toolbar())
+ continue;
+
+ m_bookmarksManager->removeBookmark(node);
+ }
+ if (m_endMacro) {
+ m_bookmarksManager->undoRedoStack()->endMacro();
+ m_endMacro = false;
+ }
+ return true;
+}
+
+QVariant BookmarksModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
+ switch (section) {
+ case 0: return tr("Title");
+ case 1: return tr("Address");
+ }
+ }
+ return QAbstractItemModel::headerData(section, orientation, role);
+}
+
+QVariant BookmarksModel::data(const QModelIndex &index, int role) const
+{
+ if (!index.isValid() || index.model() != this)
+ return QVariant();
+
+ const BookmarkNode *bookmarkNode = node(index);
+ switch (role) {
+ case Qt::EditRole:
+ case Qt::DisplayRole:
+ if (bookmarkNode->type() == BookmarkNode::Separator) {
+ switch (index.column()) {
+ case 0: return QString(50, 0xB7);
+ case 1: return QString();
+ }
+ }
+
+ switch (index.column()) {
+ case 0: return bookmarkNode->title;
+ case 1: return bookmarkNode->url;
+ }
+ break;
+ case BookmarksModel::UrlRole:
+ return QUrl(bookmarkNode->url);
+ break;
+ case BookmarksModel::UrlStringRole:
+ return bookmarkNode->url;
+ break;
+ case BookmarksModel::TypeRole:
+ return bookmarkNode->type();
+ break;
+ case BookmarksModel::SeparatorRole:
+ return (bookmarkNode->type() == BookmarkNode::Separator);
+ break;
+ case Qt::DecorationRole:
+ if (index.column() == 0) {
+ if (bookmarkNode->type() == BookmarkNode::Folder)
+ return QApplication::style()->standardIcon(QStyle::SP_DirIcon);
+ return BrowserApplication::instance()->icon(bookmarkNode->url);
+ }
+ }
+
+ return QVariant();
+}
+
+int BookmarksModel::columnCount(const QModelIndex &parent) const
+{
+ return (parent.column() > 0) ? 0 : 2;
+}
+
+int BookmarksModel::rowCount(const QModelIndex &parent) const
+{
+ if (parent.column() > 0)
+ return 0;
+
+ if (!parent.isValid())
+ return m_bookmarksManager->bookmarks()->children().count();
+
+ const BookmarkNode *item = static_cast<BookmarkNode*>(parent.internalPointer());
+ return item->children().count();
+}
+
+QModelIndex BookmarksModel::index(int row, int column, const QModelIndex &parent) const
+{
+ if (row < 0 || column < 0 || row >= rowCount(parent) || column >= columnCount(parent))
+ return QModelIndex();
+
+ // get the parent node
+ BookmarkNode *parentNode = node(parent);
+ return createIndex(row, column, parentNode->children().at(row));
+}
+
+QModelIndex BookmarksModel::parent(const QModelIndex &index) const
+{
+ if (!index.isValid())
+ return QModelIndex();
+
+ BookmarkNode *itemNode = node(index);
+ BookmarkNode *parentNode = (itemNode ? itemNode->parent() : 0);
+ if (!parentNode || parentNode == m_bookmarksManager->bookmarks())
+ return QModelIndex();
+
+ // get the parent's row
+ BookmarkNode *grandParentNode = parentNode->parent();
+ int parentRow = grandParentNode->children().indexOf(parentNode);
+ Q_ASSERT(parentRow >= 0);
+ return createIndex(parentRow, 0, parentNode);
+}
+
+bool BookmarksModel::hasChildren(const QModelIndex &parent) const
+{
+ if (!parent.isValid())
+ return true;
+ const BookmarkNode *parentNode = node(parent);
+ return (parentNode->type() == BookmarkNode::Folder);
+}
+
+Qt::ItemFlags BookmarksModel::flags(const QModelIndex &index) const
+{
+ if (!index.isValid())
+ return Qt::NoItemFlags;
+
+ Qt::ItemFlags flags = Qt::ItemIsSelectable | Qt::ItemIsEnabled;
+
+ BookmarkNode *bookmarkNode = node(index);
+
+ if (bookmarkNode != m_bookmarksManager->menu()
+ && bookmarkNode != m_bookmarksManager->toolbar()) {
+ flags |= Qt::ItemIsDragEnabled;
+ if (bookmarkNode->type() != BookmarkNode::Separator)
+ flags |= Qt::ItemIsEditable;
+ }
+ if (hasChildren(index))
+ flags |= Qt::ItemIsDropEnabled;
+ return flags;
+}
+
+Qt::DropActions BookmarksModel::supportedDropActions () const
+{
+ return Qt::CopyAction | Qt::MoveAction;
+}
+
+#define MIMETYPE QLatin1String("application/bookmarks.xbel")
+
+QStringList BookmarksModel::mimeTypes() const
+{
+ QStringList types;
+ types << MIMETYPE;
+ return types;
+}
+
+QMimeData *BookmarksModel::mimeData(const QModelIndexList &indexes) const
+{
+ QMimeData *mimeData = new QMimeData();
+ QByteArray data;
+ QDataStream stream(&data, QIODevice::WriteOnly);
+ foreach (QModelIndex index, indexes) {
+ if (index.column() != 0 || !index.isValid())
+ continue;
+ QByteArray encodedData;
+ QBuffer buffer(&encodedData);
+ buffer.open(QBuffer::ReadWrite);
+ XbelWriter writer;
+ const BookmarkNode *parentNode = node(index);
+ writer.write(&buffer, parentNode);
+ stream << encodedData;
+ }
+ mimeData->setData(MIMETYPE, data);
+ return mimeData;
+}
+
+bool BookmarksModel::dropMimeData(const QMimeData *data,
+ Qt::DropAction action, int row, int column, const QModelIndex &parent)
+{
+ if (action == Qt::IgnoreAction)
+ return true;
+
+ if (!data->hasFormat(MIMETYPE)
+ || column > 0)
+ return false;
+
+ QByteArray ba = data->data(MIMETYPE);
+ QDataStream stream(&ba, QIODevice::ReadOnly);
+ if (stream.atEnd())
+ return false;
+
+ QUndoStack *undoStack = m_bookmarksManager->undoRedoStack();
+ undoStack->beginMacro(QLatin1String("Move Bookmarks"));
+
+ while (!stream.atEnd()) {
+ QByteArray encodedData;
+ stream >> encodedData;
+ QBuffer buffer(&encodedData);
+ buffer.open(QBuffer::ReadOnly);
+
+ XbelReader reader;
+ BookmarkNode *rootNode = reader.read(&buffer);
+ QList<BookmarkNode*> children = rootNode->children();
+ for (int i = 0; i < children.count(); ++i) {
+ BookmarkNode *bookmarkNode = children.at(i);
+ rootNode->remove(bookmarkNode);
+ row = qMax(0, row);
+ BookmarkNode *parentNode = node(parent);
+ m_bookmarksManager->addBookmark(parentNode, bookmarkNode, row);
+ m_endMacro = true;
+ }
+ delete rootNode;
+ }
+ return true;
+}
+
+bool BookmarksModel::setData(const QModelIndex &index, const QVariant &value, int role)
+{
+ if (!index.isValid() || (flags(index) & Qt::ItemIsEditable) == 0)
+ return false;
+
+ BookmarkNode *item = node(index);
+
+ switch (role) {
+ case Qt::EditRole:
+ case Qt::DisplayRole:
+ if (index.column() == 0) {
+ m_bookmarksManager->setTitle(item, value.toString());
+ break;
+ }
+ if (index.column() == 1) {
+ m_bookmarksManager->setUrl(item, value.toString());
+ break;
+ }
+ return false;
+ case BookmarksModel::UrlRole:
+ m_bookmarksManager->setUrl(item, value.toUrl().toString());
+ break;
+ case BookmarksModel::UrlStringRole:
+ m_bookmarksManager->setUrl(item, value.toString());
+ break;
+ default:
+ break;
+ return false;
+ }
+
+ return true;
+}
+
+BookmarkNode *BookmarksModel::node(const QModelIndex &index) const
+{
+ BookmarkNode *itemNode = static_cast<BookmarkNode*>(index.internalPointer());
+ if (!itemNode)
+ return m_bookmarksManager->bookmarks();
+ return itemNode;
+}
+
+
+AddBookmarkProxyModel::AddBookmarkProxyModel(QObject *parent)
+ : QSortFilterProxyModel(parent)
+{
+}
+
+int AddBookmarkProxyModel::columnCount(const QModelIndex &parent) const
+{
+ return qMin(1, QSortFilterProxyModel::columnCount(parent));
+}
+
+bool AddBookmarkProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
+{
+ QModelIndex idx = sourceModel()->index(source_row, 0, source_parent);
+ return sourceModel()->hasChildren(idx);
+}
+
+AddBookmarkDialog::AddBookmarkDialog(const QString &url, const QString &title, QWidget *parent, BookmarksManager *bookmarkManager)
+ : QDialog(parent)
+ , m_url(url)
+ , m_bookmarksManager(bookmarkManager)
+{
+ setWindowFlags(Qt::Sheet);
+ if (!m_bookmarksManager)
+ m_bookmarksManager = BrowserApplication::bookmarksManager();
+ setupUi(this);
+ QTreeView *view = new QTreeView(this);
+ m_proxyModel = new AddBookmarkProxyModel(this);
+ BookmarksModel *model = m_bookmarksManager->bookmarksModel();
+ m_proxyModel->setSourceModel(model);
+ view->setModel(m_proxyModel);
+ view->expandAll();
+ view->header()->setStretchLastSection(true);
+ view->header()->hide();
+ view->setItemsExpandable(false);
+ view->setRootIsDecorated(false);
+ view->setIndentation(10);
+ location->setModel(m_proxyModel);
+ view->show();
+ location->setView(view);
+ BookmarkNode *menu = m_bookmarksManager->menu();
+ QModelIndex idx = m_proxyModel->mapFromSource(model->index(menu));
+ view->setCurrentIndex(idx);
+ location->setCurrentIndex(idx.row());
+ name->setText(title);
+}
+
+void AddBookmarkDialog::accept()
+{
+ QModelIndex index = location->view()->currentIndex();
+ index = m_proxyModel->mapToSource(index);
+ if (!index.isValid())
+ index = m_bookmarksManager->bookmarksModel()->index(0, 0);
+ BookmarkNode *parent = m_bookmarksManager->bookmarksModel()->node(index);
+ BookmarkNode *bookmark = new BookmarkNode(BookmarkNode::Bookmark);
+ bookmark->url = m_url;
+ bookmark->title = name->text();
+ m_bookmarksManager->addBookmark(parent, bookmark);
+ QDialog::accept();
+}
+
+BookmarksMenu::BookmarksMenu(QWidget *parent)
+ : ModelMenu(parent)
+ , m_bookmarksManager(0)
+{
+ connect(this, SIGNAL(activated(const QModelIndex &)),
+ this, SLOT(activated(const QModelIndex &)));
+ setMaxRows(-1);
+ setHoverRole(BookmarksModel::UrlStringRole);
+ setSeparatorRole(BookmarksModel::SeparatorRole);
+}
+
+void BookmarksMenu::activated(const QModelIndex &index)
+{
+ emit openUrl(index.data(BookmarksModel::UrlRole).toUrl());
+}
+
+bool BookmarksMenu::prePopulated()
+{
+ m_bookmarksManager = BrowserApplication::bookmarksManager();
+ setModel(m_bookmarksManager->bookmarksModel());
+ setRootIndex(m_bookmarksManager->bookmarksModel()->index(1, 0));
+ // initial actions
+ for (int i = 0; i < m_initialActions.count(); ++i)
+ addAction(m_initialActions.at(i));
+ if (!m_initialActions.isEmpty())
+ addSeparator();
+ createMenu(model()->index(0, 0), 1, this);
+ return true;
+}
+
+void BookmarksMenu::setInitialActions(QList<QAction*> actions)
+{
+ m_initialActions = actions;
+ for (int i = 0; i < m_initialActions.count(); ++i)
+ addAction(m_initialActions.at(i));
+}
+
+BookmarksDialog::BookmarksDialog(QWidget *parent, BookmarksManager *manager)
+ : QDialog(parent)
+{
+ m_bookmarksManager = manager;
+ if (!m_bookmarksManager)
+ m_bookmarksManager = BrowserApplication::bookmarksManager();
+ setupUi(this);
+
+ tree->setUniformRowHeights(true);
+ tree->setSelectionBehavior(QAbstractItemView::SelectRows);
+ tree->setSelectionMode(QAbstractItemView::ContiguousSelection);
+ tree->setTextElideMode(Qt::ElideMiddle);
+ m_bookmarksModel = m_bookmarksManager->bookmarksModel();
+ m_proxyModel = new TreeProxyModel(this);
+ connect(search, SIGNAL(textChanged(QString)),
+ m_proxyModel, SLOT(setFilterFixedString(QString)));
+ connect(removeButton, SIGNAL(clicked()), tree, SLOT(removeOne()));
+ m_proxyModel->setSourceModel(m_bookmarksModel);
+ tree->setModel(m_proxyModel);
+ tree->setDragDropMode(QAbstractItemView::InternalMove);
+ tree->setExpanded(m_proxyModel->index(0, 0), true);
+ tree->setAlternatingRowColors(true);
+ QFontMetrics fm(font());
+ int header = fm.width(QLatin1Char('m')) * 40;
+ tree->header()->resizeSection(0, header);
+ tree->header()->setStretchLastSection(true);
+ connect(tree, SIGNAL(activated(const QModelIndex&)),
+ this, SLOT(open()));
+ tree->setContextMenuPolicy(Qt::CustomContextMenu);
+ connect(tree, SIGNAL(customContextMenuRequested(const QPoint &)),
+ this, SLOT(customContextMenuRequested(const QPoint &)));
+ connect(addFolderButton, SIGNAL(clicked()),
+ this, SLOT(newFolder()));
+ expandNodes(m_bookmarksManager->bookmarks());
+ setAttribute(Qt::WA_DeleteOnClose);
+}
+
+BookmarksDialog::~BookmarksDialog()
+{
+ if (saveExpandedNodes(tree->rootIndex()))
+ m_bookmarksManager->changeExpanded();
+}
+
+bool BookmarksDialog::saveExpandedNodes(const QModelIndex &parent)
+{
+ bool changed = false;
+ for (int i = 0; i < m_proxyModel->rowCount(parent); ++i) {
+ QModelIndex child = m_proxyModel->index(i, 0, parent);
+ QModelIndex sourceIndex = m_proxyModel->mapToSource(child);
+ BookmarkNode *childNode = m_bookmarksModel->node(sourceIndex);
+ bool wasExpanded = childNode->expanded;
+ if (tree->isExpanded(child)) {
+ childNode->expanded = true;
+ changed |= saveExpandedNodes(child);
+ } else {
+ childNode->expanded = false;
+ }
+ changed |= (wasExpanded != childNode->expanded);
+ }
+ return changed;
+}
+
+void BookmarksDialog::expandNodes(BookmarkNode *node)
+{
+ for (int i = 0; i < node->children().count(); ++i) {
+ BookmarkNode *childNode = node->children()[i];
+ if (childNode->expanded) {
+ QModelIndex idx = m_bookmarksModel->index(childNode);
+ idx = m_proxyModel->mapFromSource(idx);
+ tree->setExpanded(idx, true);
+ expandNodes(childNode);
+ }
+ }
+}
+
+void BookmarksDialog::customContextMenuRequested(const QPoint &pos)
+{
+ QMenu menu;
+ QModelIndex index = tree->indexAt(pos);
+ index = index.sibling(index.row(), 0);
+ if (index.isValid() && !tree->model()->hasChildren(index)) {
+ menu.addAction(tr("Open"), this, SLOT(open()));
+ menu.addSeparator();
+ }
+ menu.addAction(tr("Delete"), tree, SLOT(removeOne()));
+ menu.exec(QCursor::pos());
+}
+
+void BookmarksDialog::open()
+{
+ QModelIndex index = tree->currentIndex();
+ if (!index.parent().isValid())
+ return;
+ emit openUrl(index.sibling(index.row(), 1).data(BookmarksModel::UrlRole).toUrl());
+}
+
+void BookmarksDialog::newFolder()
+{
+ QModelIndex currentIndex = tree->currentIndex();
+ QModelIndex idx = currentIndex;
+ if (idx.isValid() && !idx.model()->hasChildren(idx))
+ idx = idx.parent();
+ if (!idx.isValid())
+ idx = tree->rootIndex();
+ idx = m_proxyModel->mapToSource(idx);
+ BookmarkNode *parent = m_bookmarksManager->bookmarksModel()->node(idx);
+ BookmarkNode *node = new BookmarkNode(BookmarkNode::Folder);
+ node->title = tr("New Folder");
+ m_bookmarksManager->addBookmark(parent, node, currentIndex.row() + 1);
+}
+
+BookmarksToolBar::BookmarksToolBar(BookmarksModel *model, QWidget *parent)
+ : QToolBar(tr("Bookmark"), parent)
+ , m_bookmarksModel(model)
+{
+ connect(this, SIGNAL(actionTriggered(QAction*)), this, SLOT(triggered(QAction*)));
+ setRootIndex(model->index(0, 0));
+ connect(m_bookmarksModel, SIGNAL(modelReset()), this, SLOT(build()));
+ connect(m_bookmarksModel, SIGNAL(rowsInserted(const QModelIndex &, int, int)), this, SLOT(build()));
+ connect(m_bookmarksModel, SIGNAL(rowsRemoved(const QModelIndex &, int, int)), this, SLOT(build()));
+ connect(m_bookmarksModel, SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(build()));
+ setAcceptDrops(true);
+}
+
+void BookmarksToolBar::dragEnterEvent(QDragEnterEvent *event)
+{
+ const QMimeData *mimeData = event->mimeData();
+ if (mimeData->hasUrls())
+ event->acceptProposedAction();
+ QToolBar::dragEnterEvent(event);
+}
+
+void BookmarksToolBar::dropEvent(QDropEvent *event)
+{
+ const QMimeData *mimeData = event->mimeData();
+ if (mimeData->hasUrls() && mimeData->hasText()) {
+ QList<QUrl> urls = mimeData->urls();
+ QAction *action = actionAt(event->pos());
+ QString dropText;
+ if (action)
+ dropText = action->text();
+ int row = -1;
+ QModelIndex parentIndex = m_root;
+ for (int i = 0; i < m_bookmarksModel->rowCount(m_root); ++i) {
+ QModelIndex idx = m_bookmarksModel->index(i, 0, m_root);
+ QString title = idx.data().toString();
+ if (title == dropText) {
+ row = i;
+ if (m_bookmarksModel->hasChildren(idx)) {
+ parentIndex = idx;
+ row = -1;
+ }
+ break;
+ }
+ }
+ BookmarkNode *bookmark = new BookmarkNode(BookmarkNode::Bookmark);
+ bookmark->url = urls.at(0).toString();
+ bookmark->title = mimeData->text();
+
+ BookmarkNode *parent = m_bookmarksModel->node(parentIndex);
+ BookmarksManager *bookmarksManager = m_bookmarksModel->bookmarksManager();
+ bookmarksManager->addBookmark(parent, bookmark, row);
+ event->acceptProposedAction();
+ }
+ QToolBar::dropEvent(event);
+}
+
+
+void BookmarksToolBar::setRootIndex(const QModelIndex &index)
+{
+ m_root = index;
+ build();
+}
+
+QModelIndex BookmarksToolBar::rootIndex() const
+{
+ return m_root;
+}
+
+void BookmarksToolBar::build()
+{
+ clear();
+ for (int i = 0; i < m_bookmarksModel->rowCount(m_root); ++i) {
+ QModelIndex idx = m_bookmarksModel->index(i, 0, m_root);
+ if (m_bookmarksModel->hasChildren(idx)) {
+ QToolButton *button = new QToolButton(this);
+ button->setPopupMode(QToolButton::InstantPopup);
+ button->setArrowType(Qt::DownArrow);
+ button->setText(idx.data().toString());
+ ModelMenu *menu = new ModelMenu(this);
+ connect(menu, SIGNAL(activated(const QModelIndex &)),
+ this, SLOT(activated(const QModelIndex &)));
+ menu->setModel(m_bookmarksModel);
+ menu->setRootIndex(idx);
+ menu->addAction(new QAction(menu));
+ button->setMenu(menu);
+ button->setToolButtonStyle(Qt::ToolButtonTextOnly);
+ QAction *a = addWidget(button);
+ a->setText(idx.data().toString());
+ } else {
+ QAction *action = addAction(idx.data().toString());
+ action->setData(idx.data(BookmarksModel::UrlRole));
+ }
+ }
+}
+
+void BookmarksToolBar::triggered(QAction *action)
+{
+ QVariant v = action->data();
+ if (v.canConvert<QUrl>()) {
+ emit openUrl(v.toUrl());
+ }
+}
+
+void BookmarksToolBar::activated(const QModelIndex &index)
+{
+ emit openUrl(index.data(BookmarksModel::UrlRole).toUrl());
+}
+
diff --git a/demos/browser/bookmarks.h b/demos/browser/bookmarks.h
new file mode 100644
index 0000000..fb47b4f
--- /dev/null
+++ b/demos/browser/bookmarks.h
@@ -0,0 +1,310 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef BOOKMARKS_H
+#define BOOKMARKS_H
+
+#include <QtCore/QObject>
+#include <QtCore/QAbstractItemModel>
+
+#include <QtGui/QUndoCommand>
+
+/*!
+ Bookmark manager, owner of the bookmarks, loads, saves and basic tasks
+ */
+class AutoSaver;
+class BookmarkNode;
+class BookmarksModel;
+class BookmarksManager : public QObject
+{
+ Q_OBJECT
+
+signals:
+ void entryAdded(BookmarkNode *item);
+ void entryRemoved(BookmarkNode *parent, int row, BookmarkNode *item);
+ void entryChanged(BookmarkNode *item);
+
+public:
+ BookmarksManager(QObject *parent = 0);
+ ~BookmarksManager();
+
+ void addBookmark(BookmarkNode *parent, BookmarkNode *node, int row = -1);
+ void removeBookmark(BookmarkNode *node);
+ void setTitle(BookmarkNode *node, const QString &newTitle);
+ void setUrl(BookmarkNode *node, const QString &newUrl);
+ void changeExpanded();
+
+ BookmarkNode *bookmarks();
+ BookmarkNode *menu();
+ BookmarkNode *toolbar();
+
+ BookmarksModel *bookmarksModel();
+ QUndoStack *undoRedoStack() { return &m_commands; };
+
+public slots:
+ void importBookmarks();
+ void exportBookmarks();
+
+private slots:
+ void save() const;
+
+private:
+ void load();
+
+ bool m_loaded;
+ AutoSaver *m_saveTimer;
+ BookmarkNode *m_bookmarkRootNode;
+ BookmarksModel *m_bookmarkModel;
+ QUndoStack m_commands;
+
+ friend class RemoveBookmarksCommand;
+ friend class ChangeBookmarkCommand;
+};
+
+class RemoveBookmarksCommand : public QUndoCommand
+{
+
+public:
+ RemoveBookmarksCommand(BookmarksManager *m_bookmarkManagaer, BookmarkNode *parent, int row);
+ ~RemoveBookmarksCommand();
+ void undo();
+ void redo();
+
+protected:
+ int m_row;
+ BookmarksManager *m_bookmarkManagaer;
+ BookmarkNode *m_node;
+ BookmarkNode *m_parent;
+ bool m_done;
+};
+
+class InsertBookmarksCommand : public RemoveBookmarksCommand
+{
+
+public:
+ InsertBookmarksCommand(BookmarksManager *m_bookmarkManagaer,
+ BookmarkNode *parent, BookmarkNode *node, int row);
+ void undo() { RemoveBookmarksCommand::redo(); }
+ void redo() { RemoveBookmarksCommand::undo(); }
+
+};
+
+class ChangeBookmarkCommand : public QUndoCommand
+{
+
+public:
+ ChangeBookmarkCommand(BookmarksManager *m_bookmarkManagaer,
+ BookmarkNode *node, const QString &newValue, bool title);
+ void undo();
+ void redo();
+
+private:
+ BookmarksManager *m_bookmarkManagaer;
+ bool m_title;
+ QString m_oldValue;
+ QString m_newValue;
+ BookmarkNode *m_node;
+};
+
+/*!
+ BookmarksModel is a QAbstractItemModel wrapper around the BookmarkManager
+ */
+#include <QtGui/QIcon>
+class BookmarksModel : public QAbstractItemModel
+{
+ Q_OBJECT
+
+public slots:
+ void entryAdded(BookmarkNode *item);
+ void entryRemoved(BookmarkNode *parent, int row, BookmarkNode *item);
+ void entryChanged(BookmarkNode *item);
+
+public:
+ enum Roles {
+ TypeRole = Qt::UserRole + 1,
+ UrlRole = Qt::UserRole + 2,
+ UrlStringRole = Qt::UserRole + 3,
+ SeparatorRole = Qt::UserRole + 4
+ };
+
+ BookmarksModel(BookmarksManager *bookmarkManager, QObject *parent = 0);
+ inline BookmarksManager *bookmarksManager() const { return m_bookmarksManager; }
+
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ QModelIndex index(int, int, const QModelIndex& = QModelIndex()) const;
+ QModelIndex parent(const QModelIndex& index= QModelIndex()) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+ Qt::DropActions supportedDropActions () const;
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+ QMimeData *mimeData(const QModelIndexList &indexes) const;
+ QStringList mimeTypes() const;
+ bool dropMimeData(const QMimeData *data,
+ Qt::DropAction action, int row, int column, const QModelIndex &parent);
+ bool hasChildren(const QModelIndex &parent = QModelIndex()) const;
+
+ BookmarkNode *node(const QModelIndex &index) const;
+ QModelIndex index(BookmarkNode *node) const;
+
+private:
+
+ bool m_endMacro;
+ BookmarksManager *m_bookmarksManager;
+};
+
+// Menu that is dynamically populated from the bookmarks
+#include "modelmenu.h"
+class BookmarksMenu : public ModelMenu
+{
+ Q_OBJECT
+
+signals:
+ void openUrl(const QUrl &url);
+
+public:
+ BookmarksMenu(QWidget *parent = 0);
+ void setInitialActions(QList<QAction*> actions);
+
+protected:
+ bool prePopulated();
+
+private slots:
+ void activated(const QModelIndex &index);
+
+private:
+ BookmarksManager *m_bookmarksManager;
+ QList<QAction*> m_initialActions;
+};
+
+/*
+ Proxy model that filters out the bookmarks so only the folders
+ are left behind. Used in the add bookmark dialog combobox.
+ */
+#include <QtGui/QSortFilterProxyModel>
+class AddBookmarkProxyModel : public QSortFilterProxyModel
+{
+ Q_OBJECT
+public:
+ AddBookmarkProxyModel(QObject * parent = 0);
+ int columnCount(const QModelIndex & parent = QModelIndex()) const;
+
+protected:
+ bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;
+};
+
+/*!
+ Add bookmark dialog
+ */
+#include "ui_addbookmarkdialog.h"
+class AddBookmarkDialog : public QDialog, public Ui_AddBookmarkDialog
+{
+ Q_OBJECT
+
+public:
+ AddBookmarkDialog(const QString &url, const QString &title, QWidget *parent = 0, BookmarksManager *bookmarkManager = 0);
+
+private slots:
+ void accept();
+
+private:
+ QString m_url;
+ BookmarksManager *m_bookmarksManager;
+ AddBookmarkProxyModel *m_proxyModel;
+};
+
+#include "ui_bookmarks.h"
+class TreeProxyModel;
+class BookmarksDialog : public QDialog, public Ui_BookmarksDialog
+{
+ Q_OBJECT
+
+signals:
+ void openUrl(const QUrl &url);
+
+public:
+ BookmarksDialog(QWidget *parent = 0, BookmarksManager *manager = 0);
+ ~BookmarksDialog();
+
+private slots:
+ void customContextMenuRequested(const QPoint &pos);
+ void open();
+ void newFolder();
+
+private:
+ void expandNodes(BookmarkNode *node);
+ bool saveExpandedNodes(const QModelIndex &parent);
+
+ BookmarksManager *m_bookmarksManager;
+ BookmarksModel *m_bookmarksModel;
+ TreeProxyModel *m_proxyModel;
+};
+
+#include <QtGui/QToolBar>
+class BookmarksToolBar : public QToolBar
+{
+ Q_OBJECT
+
+signals:
+ void openUrl(const QUrl &url);
+
+public:
+ BookmarksToolBar(BookmarksModel *model, QWidget *parent = 0);
+ void setRootIndex(const QModelIndex &index);
+ QModelIndex rootIndex() const;
+
+protected:
+ void dragEnterEvent(QDragEnterEvent *event);
+ void dropEvent(QDropEvent *event);
+
+private slots:
+ void triggered(QAction *action);
+ void activated(const QModelIndex &index);
+ void build();
+
+private:
+ BookmarksModel *m_bookmarksModel;
+ QPersistentModelIndex m_root;
+};
+
+#endif // BOOKMARKS_H
diff --git a/demos/browser/bookmarks.ui b/demos/browser/bookmarks.ui
new file mode 100644
index 0000000..c893e94
--- /dev/null
+++ b/demos/browser/bookmarks.ui
@@ -0,0 +1,106 @@
+<ui version="4.0" >
+ <class>BookmarksDialog</class>
+ <widget class="QDialog" name="BookmarksDialog" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>758</width>
+ <height>450</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Bookmarks</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout" >
+ <item row="0" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>252</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="1" >
+ <widget class="SearchLineEdit" name="search" />
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="EditTreeView" name="tree" />
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QPushButton" name="removeButton" >
+ <property name="text" >
+ <string>&amp;Remove</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="addFolderButton" >
+ <property name="text" >
+ <string>Add Folder</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>SearchLineEdit</class>
+ <extends>QLineEdit</extends>
+ <header>searchlineedit.h</header>
+ </customwidget>
+ <customwidget>
+ <class>EditTreeView</class>
+ <extends>QTreeView</extends>
+ <header>edittreeview.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>BookmarksDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>472</x>
+ <y>329</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>461</x>
+ <y>356</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/demos/browser/browser.icns b/demos/browser/browser.icns
new file mode 100644
index 0000000..f591ae4
--- /dev/null
+++ b/demos/browser/browser.icns
Binary files differ
diff --git a/demos/browser/browser.ico b/demos/browser/browser.ico
new file mode 100644
index 0000000..7f9be93
--- /dev/null
+++ b/demos/browser/browser.ico
Binary files differ
diff --git a/demos/browser/browser.pro b/demos/browser/browser.pro
new file mode 100644
index 0000000..d970f99
--- /dev/null
+++ b/demos/browser/browser.pro
@@ -0,0 +1,91 @@
+TEMPLATE = app
+TARGET = browser
+QT += webkit network
+
+CONFIG += qt warn_on
+contains(QT_BUILD_PARTS, tools): CONFIG += uitools
+else: DEFINES += QT_NO_UITOOLS
+
+FORMS += \
+ addbookmarkdialog.ui \
+ bookmarks.ui \
+ cookies.ui \
+ cookiesexceptions.ui \
+ downloaditem.ui \
+ downloads.ui \
+ history.ui \
+ passworddialog.ui \
+ proxy.ui \
+ settings.ui
+
+HEADERS += \
+ autosaver.h \
+ bookmarks.h \
+ browserapplication.h \
+ browsermainwindow.h \
+ chasewidget.h \
+ cookiejar.h \
+ downloadmanager.h \
+ edittableview.h \
+ edittreeview.h \
+ history.h \
+ modelmenu.h \
+ networkaccessmanager.h \
+ searchlineedit.h \
+ settings.h \
+ squeezelabel.h \
+ tabwidget.h \
+ toolbarsearch.h \
+ urllineedit.h \
+ webview.h \
+ xbel.h
+
+SOURCES += \
+ autosaver.cpp \
+ bookmarks.cpp \
+ browserapplication.cpp \
+ browsermainwindow.cpp \
+ chasewidget.cpp \
+ cookiejar.cpp \
+ downloadmanager.cpp \
+ edittableview.cpp \
+ edittreeview.cpp \
+ history.cpp \
+ modelmenu.cpp \
+ networkaccessmanager.cpp \
+ searchlineedit.cpp \
+ settings.cpp \
+ squeezelabel.cpp \
+ tabwidget.cpp \
+ toolbarsearch.cpp \
+ urllineedit.cpp \
+ webview.cpp \
+ xbel.cpp \
+ main.cpp
+
+RESOURCES += data/data.qrc htmls/htmls.qrc
+
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+
+win32 {
+ RC_FILE = browser.rc
+}
+
+mac {
+ ICON = browser.icns
+ QMAKE_INFO_PLIST = Info_mac.plist
+ TARGET = Browser
+}
+
+wince*: {
+ DEPLOYMENT_PLUGIN += qjpeg qgif
+}
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/browser
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.plist *.icns *.ico *.rc *.pro *.html *.doc images htmls
+sources.path = $$[QT_INSTALL_DEMOS]/browser
+INSTALLS += target sources
diff --git a/demos/browser/browser.rc b/demos/browser/browser.rc
new file mode 100644
index 0000000..89a237c
--- /dev/null
+++ b/demos/browser/browser.rc
@@ -0,0 +1,2 @@
+IDI_ICON1 ICON DISCARDABLE "browser.ico"
+
diff --git a/demos/browser/browserapplication.cpp b/demos/browser/browserapplication.cpp
new file mode 100644
index 0000000..5433022
--- /dev/null
+++ b/demos/browser/browserapplication.cpp
@@ -0,0 +1,456 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "browserapplication.h"
+
+#include "bookmarks.h"
+#include "browsermainwindow.h"
+#include "cookiejar.h"
+#include "downloadmanager.h"
+#include "history.h"
+#include "networkaccessmanager.h"
+#include "tabwidget.h"
+#include "webview.h"
+
+#include <QtCore/QBuffer>
+#include <QtCore/QDir>
+#include <QtCore/QLibraryInfo>
+#include <QtCore/QSettings>
+#include <QtCore/QTextStream>
+#include <QtCore/QTranslator>
+
+#include <QtGui/QDesktopServices>
+#include <QtGui/QFileOpenEvent>
+#include <QtGui/QMessageBox>
+
+#include <QtNetwork/QLocalServer>
+#include <QtNetwork/QLocalSocket>
+#include <QtNetwork/QNetworkProxy>
+#include <QtNetwork/QSslSocket>
+
+#include <QtWebKit/QWebSettings>
+
+#include <QtCore/QDebug>
+
+DownloadManager *BrowserApplication::s_downloadManager = 0;
+HistoryManager *BrowserApplication::s_historyManager = 0;
+NetworkAccessManager *BrowserApplication::s_networkAccessManager = 0;
+BookmarksManager *BrowserApplication::s_bookmarksManager = 0;
+
+BrowserApplication::BrowserApplication(int &argc, char **argv)
+ : QApplication(argc, argv)
+ , m_localServer(0)
+{
+ QCoreApplication::setOrganizationName(QLatin1String("Trolltech"));
+ QCoreApplication::setApplicationName(QLatin1String("demobrowser"));
+ QCoreApplication::setApplicationVersion(QLatin1String("0.1"));
+#ifdef Q_WS_QWS
+ // Use a different server name for QWS so we can run an X11
+ // browser and a QWS browser in parallel on the same machine for
+ // debugging
+ QString serverName = QCoreApplication::applicationName() + QLatin1String("_qws");
+#else
+ QString serverName = QCoreApplication::applicationName();
+#endif
+ QLocalSocket socket;
+ socket.connectToServer(serverName);
+ if (socket.waitForConnected(500)) {
+ QTextStream stream(&socket);
+ QStringList args = QCoreApplication::arguments();
+ if (args.count() > 1)
+ stream << args.last();
+ else
+ stream << QString();
+ stream.flush();
+ socket.waitForBytesWritten();
+ return;
+ }
+
+#if defined(Q_WS_MAC)
+ QApplication::setQuitOnLastWindowClosed(false);
+#else
+ QApplication::setQuitOnLastWindowClosed(true);
+#endif
+
+ m_localServer = new QLocalServer(this);
+ connect(m_localServer, SIGNAL(newConnection()),
+ this, SLOT(newLocalSocketConnection()));
+ if (!m_localServer->listen(serverName)) {
+ if (m_localServer->serverError() == QAbstractSocket::AddressInUseError
+ && QFile::exists(m_localServer->serverName())) {
+ QFile::remove(m_localServer->serverName());
+ m_localServer->listen(serverName);
+ }
+ }
+
+#ifndef QT_NO_OPENSSL
+ if (!QSslSocket::supportsSsl()) {
+ QMessageBox::information(0, "Demo Browser",
+ "This system does not support OpenSSL. SSL websites will not be available.");
+ }
+#endif
+
+ QDesktopServices::setUrlHandler(QLatin1String("http"), this, "openUrl");
+ QString localSysName = QLocale::system().name();
+
+ installTranslator(QLatin1String("qt_") + localSysName);
+
+ QSettings settings;
+ settings.beginGroup(QLatin1String("sessions"));
+ m_lastSession = settings.value(QLatin1String("lastSession")).toByteArray();
+ settings.endGroup();
+
+#if defined(Q_WS_MAC)
+ connect(this, SIGNAL(lastWindowClosed()),
+ this, SLOT(lastWindowClosed()));
+#endif
+
+ QTimer::singleShot(0, this, SLOT(postLaunch()));
+}
+
+BrowserApplication::~BrowserApplication()
+{
+ delete s_downloadManager;
+ for (int i = 0; i < m_mainWindows.size(); ++i) {
+ BrowserMainWindow *window = m_mainWindows.at(i);
+ delete window;
+ }
+ delete s_networkAccessManager;
+ delete s_bookmarksManager;
+}
+
+#if defined(Q_WS_MAC)
+void BrowserApplication::lastWindowClosed()
+{
+ clean();
+ BrowserMainWindow *mw = new BrowserMainWindow;
+ mw->slotHome();
+ m_mainWindows.prepend(mw);
+}
+#endif
+
+BrowserApplication *BrowserApplication::instance()
+{
+ return (static_cast<BrowserApplication *>(QCoreApplication::instance()));
+}
+
+#if defined(Q_WS_MAC)
+#include <QtGui/QMessageBox>
+void BrowserApplication::quitBrowser()
+{
+ clean();
+ int tabCount = 0;
+ for (int i = 0; i < m_mainWindows.count(); ++i) {
+ tabCount =+ m_mainWindows.at(i)->tabWidget()->count();
+ }
+
+ if (tabCount > 1) {
+ int ret = QMessageBox::warning(mainWindow(), QString(),
+ tr("There are %1 windows and %2 tabs open\n"
+ "Do you want to quit anyway?").arg(m_mainWindows.count()).arg(tabCount),
+ QMessageBox::Yes | QMessageBox::No,
+ QMessageBox::No);
+ if (ret == QMessageBox::No)
+ return;
+ }
+
+ exit(0);
+}
+#endif
+
+/*!
+ Any actions that can be delayed until the window is visible
+ */
+void BrowserApplication::postLaunch()
+{
+ QString directory = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
+ if (directory.isEmpty())
+ directory = QDir::homePath() + QLatin1String("/.") + QCoreApplication::applicationName();
+ QWebSettings::setIconDatabasePath(directory);
+
+ setWindowIcon(QIcon(QLatin1String(":browser.svg")));
+
+ loadSettings();
+
+ // newMainWindow() needs to be called in main() for this to happen
+ if (m_mainWindows.count() > 0) {
+ QStringList args = QCoreApplication::arguments();
+ if (args.count() > 1)
+ mainWindow()->loadPage(args.last());
+ else
+ mainWindow()->slotHome();
+ }
+ BrowserApplication::historyManager();
+}
+
+void BrowserApplication::loadSettings()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("websettings"));
+
+ QWebSettings *defaultSettings = QWebSettings::globalSettings();
+ QString standardFontFamily = defaultSettings->fontFamily(QWebSettings::StandardFont);
+ int standardFontSize = defaultSettings->fontSize(QWebSettings::DefaultFontSize);
+ QFont standardFont = QFont(standardFontFamily, standardFontSize);
+ standardFont = qVariantValue<QFont>(settings.value(QLatin1String("standardFont"), standardFont));
+ defaultSettings->setFontFamily(QWebSettings::StandardFont, standardFont.family());
+ defaultSettings->setFontSize(QWebSettings::DefaultFontSize, standardFont.pointSize());
+
+ QString fixedFontFamily = defaultSettings->fontFamily(QWebSettings::FixedFont);
+ int fixedFontSize = defaultSettings->fontSize(QWebSettings::DefaultFixedFontSize);
+ QFont fixedFont = QFont(fixedFontFamily, fixedFontSize);
+ fixedFont = qVariantValue<QFont>(settings.value(QLatin1String("fixedFont"), fixedFont));
+ defaultSettings->setFontFamily(QWebSettings::FixedFont, fixedFont.family());
+ defaultSettings->setFontSize(QWebSettings::DefaultFixedFontSize, fixedFont.pointSize());
+
+ defaultSettings->setAttribute(QWebSettings::JavascriptEnabled, settings.value(QLatin1String("enableJavascript"), true).toBool());
+ defaultSettings->setAttribute(QWebSettings::PluginsEnabled, settings.value(QLatin1String("enablePlugins"), true).toBool());
+
+ QUrl url = settings.value(QLatin1String("userStyleSheet")).toUrl();
+ defaultSettings->setUserStyleSheetUrl(url);
+
+ settings.endGroup();
+}
+
+QList<BrowserMainWindow*> BrowserApplication::mainWindows()
+{
+ clean();
+ QList<BrowserMainWindow*> list;
+ for (int i = 0; i < m_mainWindows.count(); ++i)
+ list.append(m_mainWindows.at(i));
+ return list;
+}
+
+void BrowserApplication::clean()
+{
+ // cleanup any deleted main windows first
+ for (int i = m_mainWindows.count() - 1; i >= 0; --i)
+ if (m_mainWindows.at(i).isNull())
+ m_mainWindows.removeAt(i);
+}
+
+void BrowserApplication::saveSession()
+{
+ QWebSettings *globalSettings = QWebSettings::globalSettings();
+ if (globalSettings->testAttribute(QWebSettings::PrivateBrowsingEnabled))
+ return;
+
+ clean();
+
+ QSettings settings;
+ settings.beginGroup(QLatin1String("sessions"));
+
+ QByteArray data;
+ QBuffer buffer(&data);
+ QDataStream stream(&buffer);
+ buffer.open(QIODevice::ReadWrite);
+
+ stream << m_mainWindows.count();
+ for (int i = 0; i < m_mainWindows.count(); ++i)
+ stream << m_mainWindows.at(i)->saveState();
+ settings.setValue(QLatin1String("lastSession"), data);
+ settings.endGroup();
+}
+
+bool BrowserApplication::canRestoreSession() const
+{
+ return !m_lastSession.isEmpty();
+}
+
+void BrowserApplication::restoreLastSession()
+{
+ QList<QByteArray> windows;
+ QBuffer buffer(&m_lastSession);
+ QDataStream stream(&buffer);
+ buffer.open(QIODevice::ReadOnly);
+ int windowCount;
+ stream >> windowCount;
+ for (int i = 0; i < windowCount; ++i) {
+ QByteArray windowState;
+ stream >> windowState;
+ windows.append(windowState);
+ }
+ for (int i = 0; i < windows.count(); ++i) {
+ BrowserMainWindow *newWindow = 0;
+ if (m_mainWindows.count() == 1
+ && mainWindow()->tabWidget()->count() == 1
+ && mainWindow()->currentTab()->url() == QUrl()) {
+ newWindow = mainWindow();
+ } else {
+ newWindow = newMainWindow();
+ }
+ newWindow->restoreState(windows.at(i));
+ }
+}
+
+bool BrowserApplication::isTheOnlyBrowser() const
+{
+ return (m_localServer != 0);
+}
+
+void BrowserApplication::installTranslator(const QString &name)
+{
+ QTranslator *translator = new QTranslator(this);
+ translator->load(name, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
+ QApplication::installTranslator(translator);
+}
+
+#if defined(Q_WS_MAC)
+bool BrowserApplication::event(QEvent* event)
+{
+ switch (event->type()) {
+ case QEvent::ApplicationActivate: {
+ clean();
+ if (!m_mainWindows.isEmpty()) {
+ BrowserMainWindow *mw = mainWindow();
+ if (mw && !mw->isMinimized()) {
+ mainWindow()->show();
+ }
+ return true;
+ }
+ }
+ case QEvent::FileOpen:
+ if (!m_mainWindows.isEmpty()) {
+ mainWindow()->loadPage(static_cast<QFileOpenEvent *>(event)->file());
+ return true;
+ }
+ default:
+ break;
+ }
+ return QApplication::event(event);
+}
+#endif
+
+void BrowserApplication::openUrl(const QUrl &url)
+{
+ mainWindow()->loadPage(url.toString());
+}
+
+BrowserMainWindow *BrowserApplication::newMainWindow()
+{
+ BrowserMainWindow *browser = new BrowserMainWindow();
+ m_mainWindows.prepend(browser);
+ browser->show();
+ return browser;
+}
+
+BrowserMainWindow *BrowserApplication::mainWindow()
+{
+ clean();
+ if (m_mainWindows.isEmpty())
+ newMainWindow();
+ return m_mainWindows[0];
+}
+
+void BrowserApplication::newLocalSocketConnection()
+{
+ QLocalSocket *socket = m_localServer->nextPendingConnection();
+ if (!socket)
+ return;
+ socket->waitForReadyRead(1000);
+ QTextStream stream(socket);
+ QString url;
+ stream >> url;
+ if (!url.isEmpty()) {
+ QSettings settings;
+ settings.beginGroup(QLatin1String("general"));
+ int openLinksIn = settings.value(QLatin1String("openLinksIn"), 0).toInt();
+ settings.endGroup();
+ if (openLinksIn == 1)
+ newMainWindow();
+ else
+ mainWindow()->tabWidget()->newTab();
+ openUrl(url);
+ }
+ delete socket;
+ mainWindow()->raise();
+ mainWindow()->activateWindow();
+}
+
+CookieJar *BrowserApplication::cookieJar()
+{
+ return (CookieJar*)networkAccessManager()->cookieJar();
+}
+
+DownloadManager *BrowserApplication::downloadManager()
+{
+ if (!s_downloadManager) {
+ s_downloadManager = new DownloadManager();
+ }
+ return s_downloadManager;
+}
+
+NetworkAccessManager *BrowserApplication::networkAccessManager()
+{
+ if (!s_networkAccessManager) {
+ s_networkAccessManager = new NetworkAccessManager();
+ s_networkAccessManager->setCookieJar(new CookieJar);
+ }
+ return s_networkAccessManager;
+}
+
+HistoryManager *BrowserApplication::historyManager()
+{
+ if (!s_historyManager) {
+ s_historyManager = new HistoryManager();
+ QWebHistoryInterface::setDefaultInterface(s_historyManager);
+ }
+ return s_historyManager;
+}
+
+BookmarksManager *BrowserApplication::bookmarksManager()
+{
+ if (!s_bookmarksManager) {
+ s_bookmarksManager = new BookmarksManager;
+ }
+ return s_bookmarksManager;
+}
+
+QIcon BrowserApplication::icon(const QUrl &url) const
+{
+ QIcon icon = QWebSettings::iconForUrl(url);
+ if (!icon.isNull())
+ return icon.pixmap(16, 16);
+ if (m_defaultIcon.isNull())
+ m_defaultIcon = QIcon(QLatin1String(":defaulticon.png"));
+ return m_defaultIcon.pixmap(16, 16);
+}
+
diff --git a/demos/browser/browserapplication.h b/demos/browser/browserapplication.h
new file mode 100644
index 0000000..6887dfd
--- /dev/null
+++ b/demos/browser/browserapplication.h
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef BROWSERAPPLICATION_H
+#define BROWSERAPPLICATION_H
+
+#include <QtGui/QApplication>
+
+#include <QtCore/QUrl>
+#include <QtCore/QPointer>
+
+#include <QtGui/QIcon>
+
+QT_BEGIN_NAMESPACE
+class QLocalServer;
+QT_END_NAMESPACE
+
+class BookmarksManager;
+class BrowserMainWindow;
+class CookieJar;
+class DownloadManager;
+class HistoryManager;
+class NetworkAccessManager;
+class BrowserApplication : public QApplication
+{
+ Q_OBJECT
+
+public:
+ BrowserApplication(int &argc, char **argv);
+ ~BrowserApplication();
+ static BrowserApplication *instance();
+ void loadSettings();
+
+ bool isTheOnlyBrowser() const;
+ BrowserMainWindow *mainWindow();
+ QList<BrowserMainWindow*> mainWindows();
+ QIcon icon(const QUrl &url) const;
+
+ void saveSession();
+ bool canRestoreSession() const;
+
+ static HistoryManager *historyManager();
+ static CookieJar *cookieJar();
+ static DownloadManager *downloadManager();
+ static NetworkAccessManager *networkAccessManager();
+ static BookmarksManager *bookmarksManager();
+
+#if defined(Q_WS_MAC)
+ bool event(QEvent *event);
+#endif
+
+public slots:
+ BrowserMainWindow *newMainWindow();
+ void restoreLastSession();
+#if defined(Q_WS_MAC)
+ void lastWindowClosed();
+ void quitBrowser();
+#endif
+
+private slots:
+ void postLaunch();
+ void openUrl(const QUrl &url);
+ void newLocalSocketConnection();
+
+private:
+ void clean();
+ void installTranslator(const QString &name);
+
+ static HistoryManager *s_historyManager;
+ static DownloadManager *s_downloadManager;
+ static NetworkAccessManager *s_networkAccessManager;
+ static BookmarksManager *s_bookmarksManager;
+
+ QList<QPointer<BrowserMainWindow> > m_mainWindows;
+ QLocalServer *m_localServer;
+ QByteArray m_lastSession;
+ mutable QIcon m_defaultIcon;
+};
+
+#endif // BROWSERAPPLICATION_H
+
diff --git a/demos/browser/browsermainwindow.cpp b/demos/browser/browsermainwindow.cpp
new file mode 100644
index 0000000..f1dcaef
--- /dev/null
+++ b/demos/browser/browsermainwindow.cpp
@@ -0,0 +1,991 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "browsermainwindow.h"
+
+#include "autosaver.h"
+#include "bookmarks.h"
+#include "browserapplication.h"
+#include "chasewidget.h"
+#include "downloadmanager.h"
+#include "history.h"
+#include "settings.h"
+#include "tabwidget.h"
+#include "toolbarsearch.h"
+#include "ui_passworddialog.h"
+#include "webview.h"
+
+#include <QtCore/QSettings>
+
+#include <QtGui/QDesktopWidget>
+#include <QtGui/QFileDialog>
+#include <QtGui/QPlainTextEdit>
+#include <QtGui/QPrintDialog>
+#include <QtGui/QPrintPreviewDialog>
+#include <QtGui/QPrinter>
+#include <QtGui/QMenuBar>
+#include <QtGui/QMessageBox>
+#include <QtGui/QStatusBar>
+#include <QtGui/QToolBar>
+#include <QtGui/QInputDialog>
+
+#include <QtWebKit/QWebFrame>
+#include <QtWebKit/QWebHistory>
+
+#include <QtCore/QDebug>
+
+BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags)
+ : QMainWindow(parent, flags)
+ , m_tabWidget(new TabWidget(this))
+ , m_autoSaver(new AutoSaver(this))
+ , m_historyBack(0)
+ , m_historyForward(0)
+ , m_stop(0)
+ , m_reload(0)
+{
+ setAttribute(Qt::WA_DeleteOnClose, true);
+ statusBar()->setSizeGripEnabled(true);
+ setupMenu();
+ setupToolBar();
+
+ QWidget *centralWidget = new QWidget(this);
+ BookmarksModel *boomarksModel = BrowserApplication::bookmarksManager()->bookmarksModel();
+ m_bookmarksToolbar = new BookmarksToolBar(boomarksModel, this);
+ connect(m_bookmarksToolbar, SIGNAL(openUrl(const QUrl&)),
+ m_tabWidget, SLOT(loadUrlInCurrentTab(const QUrl&)));
+ connect(m_bookmarksToolbar->toggleViewAction(), SIGNAL(toggled(bool)),
+ this, SLOT(updateBookmarksToolbarActionText(bool)));
+
+ QVBoxLayout *layout = new QVBoxLayout;
+ layout->setSpacing(0);
+ layout->setMargin(0);
+#if defined(Q_WS_MAC)
+ layout->addWidget(m_bookmarksToolbar);
+ layout->addWidget(new QWidget); // <- OS X tab widget style bug
+#else
+ addToolBarBreak();
+ addToolBar(m_bookmarksToolbar);
+#endif
+ layout->addWidget(m_tabWidget);
+ centralWidget->setLayout(layout);
+ setCentralWidget(centralWidget);
+
+ connect(m_tabWidget, SIGNAL(loadPage(const QString &)),
+ this, SLOT(loadPage(const QString &)));
+ connect(m_tabWidget, SIGNAL(setCurrentTitle(const QString &)),
+ this, SLOT(slotUpdateWindowTitle(const QString &)));
+ connect(m_tabWidget, SIGNAL(showStatusBarMessage(const QString&)),
+ statusBar(), SLOT(showMessage(const QString&)));
+ connect(m_tabWidget, SIGNAL(linkHovered(const QString&)),
+ statusBar(), SLOT(showMessage(const QString&)));
+ connect(m_tabWidget, SIGNAL(loadProgress(int)),
+ this, SLOT(slotLoadProgress(int)));
+ connect(m_tabWidget, SIGNAL(tabsChanged()),
+ m_autoSaver, SLOT(changeOccurred()));
+ connect(m_tabWidget, SIGNAL(geometryChangeRequested(const QRect &)),
+ this, SLOT(geometryChangeRequested(const QRect &)));
+ connect(m_tabWidget, SIGNAL(printRequested(QWebFrame *)),
+ this, SLOT(printRequested(QWebFrame *)));
+ connect(m_tabWidget, SIGNAL(menuBarVisibilityChangeRequested(bool)),
+ menuBar(), SLOT(setVisible(bool)));
+ connect(m_tabWidget, SIGNAL(statusBarVisibilityChangeRequested(bool)),
+ statusBar(), SLOT(setVisible(bool)));
+ connect(m_tabWidget, SIGNAL(toolBarVisibilityChangeRequested(bool)),
+ m_navigationBar, SLOT(setVisible(bool)));
+ connect(m_tabWidget, SIGNAL(toolBarVisibilityChangeRequested(bool)),
+ m_bookmarksToolbar, SLOT(setVisible(bool)));
+#if defined(Q_WS_MAC)
+ connect(m_tabWidget, SIGNAL(lastTabClosed()),
+ this, SLOT(close()));
+#else
+ connect(m_tabWidget, SIGNAL(lastTabClosed()),
+ m_tabWidget, SLOT(newTab()));
+#endif
+
+ slotUpdateWindowTitle();
+ loadDefaultState();
+ m_tabWidget->newTab();
+
+ int size = m_tabWidget->lineEditStack()->sizeHint().height();
+ m_navigationBar->setIconSize(QSize(size, size));
+
+}
+
+BrowserMainWindow::~BrowserMainWindow()
+{
+ m_autoSaver->changeOccurred();
+ m_autoSaver->saveIfNeccessary();
+}
+
+void BrowserMainWindow::loadDefaultState()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("BrowserMainWindow"));
+ QByteArray data = settings.value(QLatin1String("defaultState")).toByteArray();
+ restoreState(data);
+ settings.endGroup();
+}
+
+QSize BrowserMainWindow::sizeHint() const
+{
+ QRect desktopRect = QApplication::desktop()->screenGeometry();
+ QSize size = desktopRect.size() * qreal(0.9);
+ return size;
+}
+
+void BrowserMainWindow::save()
+{
+ BrowserApplication::instance()->saveSession();
+
+ QSettings settings;
+ settings.beginGroup(QLatin1String("BrowserMainWindow"));
+ QByteArray data = saveState(false);
+ settings.setValue(QLatin1String("defaultState"), data);
+ settings.endGroup();
+}
+
+static const qint32 BrowserMainWindowMagic = 0xba;
+
+QByteArray BrowserMainWindow::saveState(bool withTabs) const
+{
+ int version = 2;
+ QByteArray data;
+ QDataStream stream(&data, QIODevice::WriteOnly);
+
+ stream << qint32(BrowserMainWindowMagic);
+ stream << qint32(version);
+
+ stream << size();
+ stream << !m_navigationBar->isHidden();
+ stream << !m_bookmarksToolbar->isHidden();
+ stream << !statusBar()->isHidden();
+ if (withTabs)
+ stream << tabWidget()->saveState();
+ else
+ stream << QByteArray();
+ return data;
+}
+
+bool BrowserMainWindow::restoreState(const QByteArray &state)
+{
+ int version = 2;
+ QByteArray sd = state;
+ QDataStream stream(&sd, QIODevice::ReadOnly);
+ if (stream.atEnd())
+ return false;
+
+ qint32 marker;
+ qint32 v;
+ stream >> marker;
+ stream >> v;
+ if (marker != BrowserMainWindowMagic || v != version)
+ return false;
+
+ QSize size;
+ bool showToolbar;
+ bool showBookmarksBar;
+ bool showStatusbar;
+ QByteArray tabState;
+
+ stream >> size;
+ stream >> showToolbar;
+ stream >> showBookmarksBar;
+ stream >> showStatusbar;
+ stream >> tabState;
+
+ resize(size);
+
+ m_navigationBar->setVisible(showToolbar);
+ updateToolbarActionText(showToolbar);
+
+ m_bookmarksToolbar->setVisible(showBookmarksBar);
+ updateBookmarksToolbarActionText(showBookmarksBar);
+
+ statusBar()->setVisible(showStatusbar);
+ updateStatusbarActionText(showStatusbar);
+
+ if (!tabWidget()->restoreState(tabState))
+ return false;
+
+ return true;
+}
+
+void BrowserMainWindow::setupMenu()
+{
+ new QShortcut(QKeySequence(Qt::Key_F6), this, SLOT(slotSwapFocus()));
+
+ // File
+ QMenu *fileMenu = menuBar()->addMenu(tr("&File"));
+
+ fileMenu->addAction(tr("&New Window"), this, SLOT(slotFileNew()), QKeySequence::New);
+ fileMenu->addAction(m_tabWidget->newTabAction());
+ fileMenu->addAction(tr("&Open File..."), this, SLOT(slotFileOpen()), QKeySequence::Open);
+ fileMenu->addAction(tr("Open &Location..."), this,
+ SLOT(slotSelectLineEdit()), QKeySequence(Qt::ControlModifier + Qt::Key_L));
+ fileMenu->addSeparator();
+ fileMenu->addAction(m_tabWidget->closeTabAction());
+ fileMenu->addSeparator();
+ fileMenu->addAction(tr("&Save As..."), this,
+ SLOT(slotFileSaveAs()), QKeySequence(QKeySequence::Save));
+ fileMenu->addSeparator();
+ BookmarksManager *bookmarksManager = BrowserApplication::bookmarksManager();
+ fileMenu->addAction(tr("&Import Bookmarks..."), bookmarksManager, SLOT(importBookmarks()));
+ fileMenu->addAction(tr("&Export Bookmarks..."), bookmarksManager, SLOT(exportBookmarks()));
+ fileMenu->addSeparator();
+ fileMenu->addAction(tr("P&rint Preview..."), this, SLOT(slotFilePrintPreview()));
+ fileMenu->addAction(tr("&Print..."), this, SLOT(slotFilePrint()), QKeySequence::Print);
+ fileMenu->addSeparator();
+ QAction *action = fileMenu->addAction(tr("Private &Browsing..."), this, SLOT(slotPrivateBrowsing()));
+ action->setCheckable(true);
+ fileMenu->addSeparator();
+
+#if defined(Q_WS_MAC)
+ fileMenu->addAction(tr("&Quit"), BrowserApplication::instance(), SLOT(quitBrowser()), QKeySequence(Qt::CTRL | Qt::Key_Q));
+#else
+ fileMenu->addAction(tr("&Quit"), this, SLOT(close()), QKeySequence(Qt::CTRL | Qt::Key_Q));
+#endif
+
+ // Edit
+ QMenu *editMenu = menuBar()->addMenu(tr("&Edit"));
+ QAction *m_undo = editMenu->addAction(tr("&Undo"));
+ m_undo->setShortcuts(QKeySequence::Undo);
+ m_tabWidget->addWebAction(m_undo, QWebPage::Undo);
+ QAction *m_redo = editMenu->addAction(tr("&Redo"));
+ m_redo->setShortcuts(QKeySequence::Redo);
+ m_tabWidget->addWebAction(m_redo, QWebPage::Redo);
+ editMenu->addSeparator();
+ QAction *m_cut = editMenu->addAction(tr("Cu&t"));
+ m_cut->setShortcuts(QKeySequence::Cut);
+ m_tabWidget->addWebAction(m_cut, QWebPage::Cut);
+ QAction *m_copy = editMenu->addAction(tr("&Copy"));
+ m_copy->setShortcuts(QKeySequence::Copy);
+ m_tabWidget->addWebAction(m_copy, QWebPage::Copy);
+ QAction *m_paste = editMenu->addAction(tr("&Paste"));
+ m_paste->setShortcuts(QKeySequence::Paste);
+ m_tabWidget->addWebAction(m_paste, QWebPage::Paste);
+ editMenu->addSeparator();
+
+ QAction *m_find = editMenu->addAction(tr("&Find"));
+ m_find->setShortcuts(QKeySequence::Find);
+ connect(m_find, SIGNAL(triggered()), this, SLOT(slotEditFind()));
+ new QShortcut(QKeySequence(Qt::Key_Slash), this, SLOT(slotEditFind()));
+
+ QAction *m_findNext = editMenu->addAction(tr("&Find Next"));
+ m_findNext->setShortcuts(QKeySequence::FindNext);
+ connect(m_findNext, SIGNAL(triggered()), this, SLOT(slotEditFindNext()));
+
+ QAction *m_findPrevious = editMenu->addAction(tr("&Find Previous"));
+ m_findPrevious->setShortcuts(QKeySequence::FindPrevious);
+ connect(m_findPrevious, SIGNAL(triggered()), this, SLOT(slotEditFindPrevious()));
+
+ editMenu->addSeparator();
+ editMenu->addAction(tr("&Preferences"), this, SLOT(slotPreferences()), tr("Ctrl+,"));
+
+ // View
+ QMenu *viewMenu = menuBar()->addMenu(tr("&View"));
+
+ m_viewBookmarkBar = new QAction(this);
+ updateBookmarksToolbarActionText(true);
+ m_viewBookmarkBar->setShortcut(tr("Shift+Ctrl+B"));
+ connect(m_viewBookmarkBar, SIGNAL(triggered()), this, SLOT(slotViewBookmarksBar()));
+ viewMenu->addAction(m_viewBookmarkBar);
+
+ m_viewToolbar = new QAction(this);
+ updateToolbarActionText(true);
+ m_viewToolbar->setShortcut(tr("Ctrl+|"));
+ connect(m_viewToolbar, SIGNAL(triggered()), this, SLOT(slotViewToolbar()));
+ viewMenu->addAction(m_viewToolbar);
+
+ m_viewStatusbar = new QAction(this);
+ updateStatusbarActionText(true);
+ m_viewStatusbar->setShortcut(tr("Ctrl+/"));
+ connect(m_viewStatusbar, SIGNAL(triggered()), this, SLOT(slotViewStatusbar()));
+ viewMenu->addAction(m_viewStatusbar);
+
+ viewMenu->addSeparator();
+
+ m_stop = viewMenu->addAction(tr("&Stop"));
+ QList<QKeySequence> shortcuts;
+ shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_Period));
+ shortcuts.append(Qt::Key_Escape);
+ m_stop->setShortcuts(shortcuts);
+ m_tabWidget->addWebAction(m_stop, QWebPage::Stop);
+
+ m_reload = viewMenu->addAction(tr("Reload Page"));
+ m_reload->setShortcuts(QKeySequence::Refresh);
+ m_tabWidget->addWebAction(m_reload, QWebPage::Reload);
+
+ viewMenu->addAction(tr("Zoom &In"), this, SLOT(slotViewZoomIn()), QKeySequence(Qt::CTRL | Qt::Key_Plus));
+ viewMenu->addAction(tr("Zoom &Out"), this, SLOT(slotViewZoomOut()), QKeySequence(Qt::CTRL | Qt::Key_Minus));
+ viewMenu->addAction(tr("Reset &Zoom"), this, SLOT(slotViewResetZoom()), QKeySequence(Qt::CTRL | Qt::Key_0));
+ QAction *zoomTextOnlyAction = viewMenu->addAction(tr("Zoom &Text Only"));
+ connect(zoomTextOnlyAction, SIGNAL(toggled(bool)), this, SLOT(slotViewZoomTextOnly(bool)));
+ zoomTextOnlyAction->setCheckable(true);
+ zoomTextOnlyAction->setChecked(false);
+
+ viewMenu->addSeparator();
+ viewMenu->addAction(tr("Page S&ource"), this, SLOT(slotViewPageSource()), tr("Ctrl+Alt+U"));
+ QAction *a = viewMenu->addAction(tr("&Full Screen"), this, SLOT(slotViewFullScreen(bool)), Qt::Key_F11);
+ a->setCheckable(true);
+
+ // History
+ HistoryMenu *historyMenu = new HistoryMenu(this);
+ connect(historyMenu, SIGNAL(openUrl(const QUrl&)),
+ m_tabWidget, SLOT(loadUrlInCurrentTab(const QUrl&)));
+ connect(historyMenu, SIGNAL(hovered(const QString&)), this,
+ SLOT(slotUpdateStatusbar(const QString&)));
+ historyMenu->setTitle(tr("Hi&story"));
+ menuBar()->addMenu(historyMenu);
+ QList<QAction*> historyActions;
+
+ m_historyBack = new QAction(tr("Back"), this);
+ m_tabWidget->addWebAction(m_historyBack, QWebPage::Back);
+ m_historyBack->setShortcuts(QKeySequence::Back);
+ m_historyBack->setIconVisibleInMenu(false);
+
+ m_historyForward = new QAction(tr("Forward"), this);
+ m_tabWidget->addWebAction(m_historyForward, QWebPage::Forward);
+ m_historyForward->setShortcuts(QKeySequence::Forward);
+ m_historyForward->setIconVisibleInMenu(false);
+
+ QAction *m_historyHome = new QAction(tr("Home"), this);
+ connect(m_historyHome, SIGNAL(triggered()), this, SLOT(slotHome()));
+ m_historyHome->setShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_H));
+
+ m_restoreLastSession = new QAction(tr("Restore Last Session"), this);
+ connect(m_restoreLastSession, SIGNAL(triggered()), BrowserApplication::instance(), SLOT(restoreLastSession()));
+ m_restoreLastSession->setEnabled(BrowserApplication::instance()->canRestoreSession());
+
+ historyActions.append(m_historyBack);
+ historyActions.append(m_historyForward);
+ historyActions.append(m_historyHome);
+ historyActions.append(m_tabWidget->recentlyClosedTabsAction());
+ historyActions.append(m_restoreLastSession);
+ historyMenu->setInitialActions(historyActions);
+
+ // Bookmarks
+ BookmarksMenu *bookmarksMenu = new BookmarksMenu(this);
+ connect(bookmarksMenu, SIGNAL(openUrl(const QUrl&)),
+ m_tabWidget, SLOT(loadUrlInCurrentTab(const QUrl&)));
+ connect(bookmarksMenu, SIGNAL(hovered(const QString&)),
+ this, SLOT(slotUpdateStatusbar(const QString&)));
+ bookmarksMenu->setTitle(tr("&Bookmarks"));
+ menuBar()->addMenu(bookmarksMenu);
+
+ QList<QAction*> bookmarksActions;
+
+ QAction *showAllBookmarksAction = new QAction(tr("Show All Bookmarks"), this);
+ connect(showAllBookmarksAction, SIGNAL(triggered()), this, SLOT(slotShowBookmarksDialog()));
+ m_addBookmark = new QAction(QIcon(QLatin1String(":addbookmark.png")), tr("Add Bookmark..."), this);
+ m_addBookmark->setIconVisibleInMenu(false);
+
+ connect(m_addBookmark, SIGNAL(triggered()), this, SLOT(slotAddBookmark()));
+ m_addBookmark->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_D));
+
+ bookmarksActions.append(showAllBookmarksAction);
+ bookmarksActions.append(m_addBookmark);
+ bookmarksMenu->setInitialActions(bookmarksActions);
+
+ // Window
+ m_windowMenu = menuBar()->addMenu(tr("&Window"));
+ connect(m_windowMenu, SIGNAL(aboutToShow()),
+ this, SLOT(slotAboutToShowWindowMenu()));
+ slotAboutToShowWindowMenu();
+
+ QMenu *toolsMenu = menuBar()->addMenu(tr("&Tools"));
+ toolsMenu->addAction(tr("Web &Search"), this, SLOT(slotWebSearch()), QKeySequence(tr("Ctrl+K", "Web Search")));
+#ifndef Q_CC_MINGW
+ a = toolsMenu->addAction(tr("Enable Web &Inspector"), this, SLOT(slotToggleInspector(bool)));
+ a->setCheckable(true);
+#endif
+
+ QMenu *helpMenu = menuBar()->addMenu(tr("&Help"));
+ helpMenu->addAction(tr("About &Qt"), qApp, SLOT(aboutQt()));
+ helpMenu->addAction(tr("About &Demo Browser"), this, SLOT(slotAboutApplication()));
+}
+
+void BrowserMainWindow::setupToolBar()
+{
+ setUnifiedTitleAndToolBarOnMac(true);
+ m_navigationBar = addToolBar(tr("Navigation"));
+ connect(m_navigationBar->toggleViewAction(), SIGNAL(toggled(bool)),
+ this, SLOT(updateToolbarActionText(bool)));
+
+ m_historyBack->setIcon(style()->standardIcon(QStyle::SP_ArrowBack, 0, this));
+ m_historyBackMenu = new QMenu(this);
+ m_historyBack->setMenu(m_historyBackMenu);
+ connect(m_historyBackMenu, SIGNAL(aboutToShow()),
+ this, SLOT(slotAboutToShowBackMenu()));
+ connect(m_historyBackMenu, SIGNAL(triggered(QAction *)),
+ this, SLOT(slotOpenActionUrl(QAction *)));
+ m_navigationBar->addAction(m_historyBack);
+
+ m_historyForward->setIcon(style()->standardIcon(QStyle::SP_ArrowForward, 0, this));
+ m_historyForwardMenu = new QMenu(this);
+ connect(m_historyForwardMenu, SIGNAL(aboutToShow()),
+ this, SLOT(slotAboutToShowForwardMenu()));
+ connect(m_historyForwardMenu, SIGNAL(triggered(QAction *)),
+ this, SLOT(slotOpenActionUrl(QAction *)));
+ m_historyForward->setMenu(m_historyForwardMenu);
+ m_navigationBar->addAction(m_historyForward);
+
+ m_stopReload = new QAction(this);
+ m_reloadIcon = style()->standardIcon(QStyle::SP_BrowserReload);
+ m_stopReload->setIcon(m_reloadIcon);
+
+ m_navigationBar->addAction(m_stopReload);
+
+ m_navigationBar->addWidget(m_tabWidget->lineEditStack());
+
+ m_toolbarSearch = new ToolbarSearch(m_navigationBar);
+ m_navigationBar->addWidget(m_toolbarSearch);
+ connect(m_toolbarSearch, SIGNAL(search(const QUrl&)), SLOT(loadUrl(const QUrl&)));
+
+ m_chaseWidget = new ChaseWidget(this);
+ m_navigationBar->addWidget(m_chaseWidget);
+}
+
+void BrowserMainWindow::slotShowBookmarksDialog()
+{
+ BookmarksDialog *dialog = new BookmarksDialog(this);
+ connect(dialog, SIGNAL(openUrl(const QUrl&)),
+ m_tabWidget, SLOT(loadUrlInCurrentTab(const QUrl&)));
+ dialog->show();
+}
+
+void BrowserMainWindow::slotAddBookmark()
+{
+ WebView *webView = currentTab();
+ QString url = webView->url().toString();
+ QString title = webView->title();
+ AddBookmarkDialog dialog(url, title);
+ dialog.exec();
+}
+
+void BrowserMainWindow::slotViewToolbar()
+{
+ if (m_navigationBar->isVisible()) {
+ updateToolbarActionText(false);
+ m_navigationBar->close();
+ } else {
+ updateToolbarActionText(true);
+ m_navigationBar->show();
+ }
+ m_autoSaver->changeOccurred();
+}
+
+void BrowserMainWindow::slotViewBookmarksBar()
+{
+ if (m_bookmarksToolbar->isVisible()) {
+ updateBookmarksToolbarActionText(false);
+ m_bookmarksToolbar->close();
+ } else {
+ updateBookmarksToolbarActionText(true);
+ m_bookmarksToolbar->show();
+ }
+ m_autoSaver->changeOccurred();
+}
+
+void BrowserMainWindow::updateStatusbarActionText(bool visible)
+{
+ m_viewStatusbar->setText(!visible ? tr("Show Status Bar") : tr("Hide Status Bar"));
+}
+
+void BrowserMainWindow::updateToolbarActionText(bool visible)
+{
+ m_viewToolbar->setText(!visible ? tr("Show Toolbar") : tr("Hide Toolbar"));
+}
+
+void BrowserMainWindow::updateBookmarksToolbarActionText(bool visible)
+{
+ m_viewBookmarkBar->setText(!visible ? tr("Show Bookmarks bar") : tr("Hide Bookmarks bar"));
+}
+
+void BrowserMainWindow::slotViewStatusbar()
+{
+ if (statusBar()->isVisible()) {
+ updateStatusbarActionText(false);
+ statusBar()->close();
+ } else {
+ updateStatusbarActionText(true);
+ statusBar()->show();
+ }
+ m_autoSaver->changeOccurred();
+}
+
+QUrl BrowserMainWindow::guessUrlFromString(const QString &string)
+{
+ QString urlStr = string.trimmed();
+ QRegExp test(QLatin1String("^[a-zA-Z]+\\:.*"));
+
+ // Check if it looks like a qualified URL. Try parsing it and see.
+ bool hasSchema = test.exactMatch(urlStr);
+ if (hasSchema) {
+ QUrl url = QUrl::fromEncoded(urlStr.toUtf8(), QUrl::TolerantMode);
+ if (url.isValid())
+ return url;
+ }
+
+ // Might be a file.
+ if (QFile::exists(urlStr)) {
+ QFileInfo info(urlStr);
+ return QUrl::fromLocalFile(info.absoluteFilePath());
+ }
+
+ // Might be a shorturl - try to detect the schema.
+ if (!hasSchema) {
+ int dotIndex = urlStr.indexOf(QLatin1Char('.'));
+ if (dotIndex != -1) {
+ QString prefix = urlStr.left(dotIndex).toLower();
+ QByteArray schema = (prefix == QLatin1String("ftp")) ? prefix.toLatin1() : "http";
+ QUrl url =
+ QUrl::fromEncoded(schema + "://" + urlStr.toUtf8(), QUrl::TolerantMode);
+ if (url.isValid())
+ return url;
+ }
+ }
+
+ // Fall back to QUrl's own tolerant parser.
+ QUrl url = QUrl::fromEncoded(string.toUtf8(), QUrl::TolerantMode);
+
+ // finally for cases where the user just types in a hostname add http
+ if (url.scheme().isEmpty())
+ url = QUrl::fromEncoded("http://" + string.toUtf8(), QUrl::TolerantMode);
+ return url;
+}
+
+void BrowserMainWindow::loadUrl(const QUrl &url)
+{
+ if (!currentTab() || !url.isValid())
+ return;
+
+ m_tabWidget->currentLineEdit()->setText(QString::fromUtf8(url.toEncoded()));
+ m_tabWidget->loadUrlInCurrentTab(url);
+}
+
+void BrowserMainWindow::slotDownloadManager()
+{
+ BrowserApplication::downloadManager()->show();
+}
+
+void BrowserMainWindow::slotSelectLineEdit()
+{
+ m_tabWidget->currentLineEdit()->selectAll();
+ m_tabWidget->currentLineEdit()->setFocus();
+}
+
+void BrowserMainWindow::slotFileSaveAs()
+{
+ BrowserApplication::downloadManager()->download(currentTab()->url(), true);
+}
+
+void BrowserMainWindow::slotPreferences()
+{
+ SettingsDialog *s = new SettingsDialog(this);
+ s->show();
+}
+
+void BrowserMainWindow::slotUpdateStatusbar(const QString &string)
+{
+ statusBar()->showMessage(string, 2000);
+}
+
+void BrowserMainWindow::slotUpdateWindowTitle(const QString &title)
+{
+ if (title.isEmpty()) {
+ setWindowTitle(tr("Qt Demo Browser"));
+ } else {
+#if defined(Q_WS_MAC)
+ setWindowTitle(title);
+#else
+ setWindowTitle(tr("%1 - Qt Demo Browser", "Page title and Browser name").arg(title));
+#endif
+ }
+}
+
+void BrowserMainWindow::slotAboutApplication()
+{
+ QMessageBox::about(this, tr("About"), tr(
+ "Version %1"
+ "<p>This demo demonstrates Qt's "
+ "webkit facilities in action, providing an example "
+ "browser for you to experiment with.<p>"
+ "<p>QtWebKit is based on the Open Source WebKit Project developed at <a href=\"http://webkit.org/\">http://webkit.org/</a>."
+ ).arg(QCoreApplication::applicationVersion()));
+}
+
+void BrowserMainWindow::slotFileNew()
+{
+ BrowserApplication::instance()->newMainWindow();
+ BrowserMainWindow *mw = BrowserApplication::instance()->mainWindow();
+ mw->slotHome();
+}
+
+void BrowserMainWindow::slotFileOpen()
+{
+ QString file = QFileDialog::getOpenFileName(this, tr("Open Web Resource"), QString(),
+ tr("Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*)"));
+
+ if (file.isEmpty())
+ return;
+
+ loadPage(file);
+}
+
+void BrowserMainWindow::slotFilePrintPreview()
+{
+#ifndef QT_NO_PRINTER
+ if (!currentTab())
+ return;
+ QPrintPreviewDialog *dialog = new QPrintPreviewDialog(this);
+ connect(dialog, SIGNAL(paintRequested(QPrinter *)),
+ currentTab(), SLOT(print(QPrinter *)));
+ dialog->exec();
+#endif
+}
+
+void BrowserMainWindow::slotFilePrint()
+{
+ if (!currentTab())
+ return;
+ printRequested(currentTab()->page()->mainFrame());
+}
+
+void BrowserMainWindow::printRequested(QWebFrame *frame)
+{
+#ifndef QT_NO_PRINTER
+ QPrinter printer;
+ QPrintDialog *dialog = new QPrintDialog(&printer, this);
+ dialog->setWindowTitle(tr("Print Document"));
+ if (dialog->exec() != QDialog::Accepted)
+ return;
+ frame->print(&printer);
+#endif
+}
+
+void BrowserMainWindow::slotPrivateBrowsing()
+{
+ QWebSettings *settings = QWebSettings::globalSettings();
+ bool pb = settings->testAttribute(QWebSettings::PrivateBrowsingEnabled);
+ if (!pb) {
+ QString title = tr("Are you sure you want to turn on private browsing?");
+ QString text = tr("<b>%1</b><br><br>When private browsing in turned on,"
+ " webpages are not added to the history,"
+ " items are automatically removed from the Downloads window," \
+ " new cookies are not stored, current cookies can't be accessed," \
+ " site icons wont be stored, session wont be saved, " \
+ " and searches are not addded to the pop-up menu in the Google search box." \
+ " Until you close the window, you can still click the Back and Forward buttons" \
+ " to return to the webpages you have opened.").arg(title);
+
+ QMessageBox::StandardButton button = QMessageBox::question(this, QString(), text,
+ QMessageBox::Ok | QMessageBox::Cancel,
+ QMessageBox::Ok);
+ if (button == QMessageBox::Ok) {
+ settings->setAttribute(QWebSettings::PrivateBrowsingEnabled, true);
+ }
+ } else {
+ settings->setAttribute(QWebSettings::PrivateBrowsingEnabled, false);
+
+ QList<BrowserMainWindow*> windows = BrowserApplication::instance()->mainWindows();
+ for (int i = 0; i < windows.count(); ++i) {
+ BrowserMainWindow *window = windows.at(i);
+ window->m_lastSearch = QString::null;
+ window->tabWidget()->clear();
+ }
+ }
+}
+
+void BrowserMainWindow::closeEvent(QCloseEvent *event)
+{
+ if (m_tabWidget->count() > 1) {
+ int ret = QMessageBox::warning(this, QString(),
+ tr("Are you sure you want to close the window?"
+ " There are %1 tab open").arg(m_tabWidget->count()),
+ QMessageBox::Yes | QMessageBox::No,
+ QMessageBox::No);
+ if (ret == QMessageBox::No) {
+ event->ignore();
+ return;
+ }
+ }
+ event->accept();
+ deleteLater();
+}
+
+void BrowserMainWindow::slotEditFind()
+{
+ if (!currentTab())
+ return;
+ bool ok;
+ QString search = QInputDialog::getText(this, tr("Find"),
+ tr("Text:"), QLineEdit::Normal,
+ m_lastSearch, &ok);
+ if (ok && !search.isEmpty()) {
+ m_lastSearch = search;
+ if (!currentTab()->findText(m_lastSearch))
+ slotUpdateStatusbar(tr("\"%1\" not found.").arg(m_lastSearch));
+ }
+}
+
+void BrowserMainWindow::slotEditFindNext()
+{
+ if (!currentTab() && !m_lastSearch.isEmpty())
+ return;
+ currentTab()->findText(m_lastSearch);
+}
+
+void BrowserMainWindow::slotEditFindPrevious()
+{
+ if (!currentTab() && !m_lastSearch.isEmpty())
+ return;
+ currentTab()->findText(m_lastSearch, QWebPage::FindBackward);
+}
+
+void BrowserMainWindow::slotViewZoomIn()
+{
+ if (!currentTab())
+ return;
+ currentTab()->setZoomFactor(currentTab()->zoomFactor() + 0.1);
+}
+
+void BrowserMainWindow::slotViewZoomOut()
+{
+ if (!currentTab())
+ return;
+ currentTab()->setZoomFactor(currentTab()->zoomFactor() - 0.1);
+}
+
+void BrowserMainWindow::slotViewResetZoom()
+{
+ if (!currentTab())
+ return;
+ currentTab()->setZoomFactor(1.0);
+}
+
+void BrowserMainWindow::slotViewZoomTextOnly(bool enable)
+{
+ if (!currentTab())
+ return;
+ currentTab()->page()->settings()->setAttribute(QWebSettings::ZoomTextOnly, enable);
+}
+
+void BrowserMainWindow::slotViewFullScreen(bool makeFullScreen)
+{
+ if (makeFullScreen) {
+ showFullScreen();
+ } else {
+ if (isMinimized())
+ showMinimized();
+ else if (isMaximized())
+ showMaximized();
+ else showNormal();
+ }
+}
+
+void BrowserMainWindow::slotViewPageSource()
+{
+ if (!currentTab())
+ return;
+
+ QString markup = currentTab()->page()->mainFrame()->toHtml();
+ QPlainTextEdit *view = new QPlainTextEdit(markup);
+ view->setWindowTitle(tr("Page Source of %1").arg(currentTab()->title()));
+ view->setMinimumWidth(640);
+ view->setAttribute(Qt::WA_DeleteOnClose);
+ view->show();
+}
+
+void BrowserMainWindow::slotHome()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("MainWindow"));
+ QString home = settings.value(QLatin1String("home"), QLatin1String("http://qtsoftware.com/")).toString();
+ loadPage(home);
+}
+
+void BrowserMainWindow::slotWebSearch()
+{
+ m_toolbarSearch->lineEdit()->selectAll();
+ m_toolbarSearch->lineEdit()->setFocus();
+}
+
+void BrowserMainWindow::slotToggleInspector(bool enable)
+{
+ QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, enable);
+ if (enable) {
+ int result = QMessageBox::question(this, tr("Web Inspector"),
+ tr("The web inspector will only work correctly for pages that were loaded after enabling.\n"
+ "Do you want to reload all pages?"),
+ QMessageBox::Yes | QMessageBox::No);
+ if (result == QMessageBox::Yes) {
+ m_tabWidget->reloadAllTabs();
+ }
+ }
+}
+
+void BrowserMainWindow::slotSwapFocus()
+{
+ if (currentTab()->hasFocus())
+ m_tabWidget->currentLineEdit()->setFocus();
+ else
+ currentTab()->setFocus();
+}
+
+void BrowserMainWindow::loadPage(const QString &page)
+{
+ QUrl url = guessUrlFromString(page);
+ loadUrl(url);
+}
+
+TabWidget *BrowserMainWindow::tabWidget() const
+{
+ return m_tabWidget;
+}
+
+WebView *BrowserMainWindow::currentTab() const
+{
+ return m_tabWidget->currentWebView();
+}
+
+void BrowserMainWindow::slotLoadProgress(int progress)
+{
+ if (progress < 100 && progress > 0) {
+ m_chaseWidget->setAnimated(true);
+ disconnect(m_stopReload, SIGNAL(triggered()), m_reload, SLOT(trigger()));
+ if (m_stopIcon.isNull())
+ m_stopIcon = style()->standardIcon(QStyle::SP_BrowserStop);
+ m_stopReload->setIcon(m_stopIcon);
+ connect(m_stopReload, SIGNAL(triggered()), m_stop, SLOT(trigger()));
+ m_stopReload->setToolTip(tr("Stop loading the current page"));
+ } else {
+ m_chaseWidget->setAnimated(false);
+ disconnect(m_stopReload, SIGNAL(triggered()), m_stop, SLOT(trigger()));
+ m_stopReload->setIcon(m_reloadIcon);
+ connect(m_stopReload, SIGNAL(triggered()), m_reload, SLOT(trigger()));
+ m_stopReload->setToolTip(tr("Reload the current page"));
+ }
+}
+
+void BrowserMainWindow::slotAboutToShowBackMenu()
+{
+ m_historyBackMenu->clear();
+ if (!currentTab())
+ return;
+ QWebHistory *history = currentTab()->history();
+ int historyCount = history->count();
+ for (int i = history->backItems(historyCount).count() - 1; i >= 0; --i) {
+ QWebHistoryItem item = history->backItems(history->count()).at(i);
+ QAction *action = new QAction(this);
+ action->setData(-1*(historyCount-i-1));
+ QIcon icon = BrowserApplication::instance()->icon(item.url());
+ action->setIcon(icon);
+ action->setText(item.title());
+ m_historyBackMenu->addAction(action);
+ }
+}
+
+void BrowserMainWindow::slotAboutToShowForwardMenu()
+{
+ m_historyForwardMenu->clear();
+ if (!currentTab())
+ return;
+ QWebHistory *history = currentTab()->history();
+ int historyCount = history->count();
+ for (int i = 0; i < history->forwardItems(history->count()).count(); ++i) {
+ QWebHistoryItem item = history->forwardItems(historyCount).at(i);
+ QAction *action = new QAction(this);
+ action->setData(historyCount-i);
+ QIcon icon = BrowserApplication::instance()->icon(item.url());
+ action->setIcon(icon);
+ action->setText(item.title());
+ m_historyForwardMenu->addAction(action);
+ }
+}
+
+void BrowserMainWindow::slotAboutToShowWindowMenu()
+{
+ m_windowMenu->clear();
+ m_windowMenu->addAction(m_tabWidget->nextTabAction());
+ m_windowMenu->addAction(m_tabWidget->previousTabAction());
+ m_windowMenu->addSeparator();
+ m_windowMenu->addAction(tr("Downloads"), this, SLOT(slotDownloadManager()), QKeySequence(tr("Alt+Ctrl+L", "Download Manager")));
+
+ m_windowMenu->addSeparator();
+ QList<BrowserMainWindow*> windows = BrowserApplication::instance()->mainWindows();
+ for (int i = 0; i < windows.count(); ++i) {
+ BrowserMainWindow *window = windows.at(i);
+ QAction *action = m_windowMenu->addAction(window->windowTitle(), this, SLOT(slotShowWindow()));
+ action->setData(i);
+ action->setCheckable(true);
+ if (window == this)
+ action->setChecked(true);
+ }
+}
+
+void BrowserMainWindow::slotShowWindow()
+{
+ if (QAction *action = qobject_cast<QAction*>(sender())) {
+ QVariant v = action->data();
+ if (v.canConvert<int>()) {
+ int offset = qvariant_cast<int>(v);
+ QList<BrowserMainWindow*> windows = BrowserApplication::instance()->mainWindows();
+ windows.at(offset)->activateWindow();
+ windows.at(offset)->currentTab()->setFocus();
+ }
+ }
+}
+
+void BrowserMainWindow::slotOpenActionUrl(QAction *action)
+{
+ int offset = action->data().toInt();
+ QWebHistory *history = currentTab()->history();
+ if (offset < 0)
+ history->goToItem(history->backItems(-1*offset).first()); // back
+ else if (offset > 0)
+ history->goToItem(history->forwardItems(history->count() - offset + 1).back()); // forward
+ }
+
+void BrowserMainWindow::geometryChangeRequested(const QRect &geometry)
+{
+ setGeometry(geometry);
+}
+
diff --git a/demos/browser/browsermainwindow.h b/demos/browser/browsermainwindow.h
new file mode 100644
index 0000000..eaf976c
--- /dev/null
+++ b/demos/browser/browsermainwindow.h
@@ -0,0 +1,169 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef BROWSERMAINWINDOW_H
+#define BROWSERMAINWINDOW_H
+
+#include <QtGui/QMainWindow>
+#include <QtGui/QIcon>
+#include <QtCore/QUrl>
+
+class AutoSaver;
+class BookmarksToolBar;
+class ChaseWidget;
+class QWebFrame;
+class TabWidget;
+class ToolbarSearch;
+class WebView;
+
+/*!
+ The MainWindow of the Browser Application.
+
+ Handles the tab widget and all the actions
+ */
+class BrowserMainWindow : public QMainWindow {
+ Q_OBJECT
+
+public:
+ BrowserMainWindow(QWidget *parent = 0, Qt::WindowFlags flags = 0);
+ ~BrowserMainWindow();
+ QSize sizeHint() const;
+
+public:
+ static QUrl guessUrlFromString(const QString &url);
+ TabWidget *tabWidget() const;
+ WebView *currentTab() const;
+ QByteArray saveState(bool withTabs = true) const;
+ bool restoreState(const QByteArray &state);
+
+public slots:
+ void loadPage(const QString &url);
+ void slotHome();
+
+protected:
+ void closeEvent(QCloseEvent *event);
+
+private slots:
+ void save();
+
+ void slotLoadProgress(int);
+ void slotUpdateStatusbar(const QString &string);
+ void slotUpdateWindowTitle(const QString &title = QString());
+
+ void loadUrl(const QUrl &url);
+ void slotPreferences();
+
+ void slotFileNew();
+ void slotFileOpen();
+ void slotFilePrintPreview();
+ void slotFilePrint();
+ void slotPrivateBrowsing();
+ void slotFileSaveAs();
+ void slotEditFind();
+ void slotEditFindNext();
+ void slotEditFindPrevious();
+ void slotShowBookmarksDialog();
+ void slotAddBookmark();
+ void slotViewZoomIn();
+ void slotViewZoomOut();
+ void slotViewResetZoom();
+ void slotViewZoomTextOnly(bool enable);
+ void slotViewToolbar();
+ void slotViewBookmarksBar();
+ void slotViewStatusbar();
+ void slotViewPageSource();
+ void slotViewFullScreen(bool enable);
+
+ void slotWebSearch();
+ void slotToggleInspector(bool enable);
+ void slotAboutApplication();
+ void slotDownloadManager();
+ void slotSelectLineEdit();
+
+ void slotAboutToShowBackMenu();
+ void slotAboutToShowForwardMenu();
+ void slotAboutToShowWindowMenu();
+ void slotOpenActionUrl(QAction *action);
+ void slotShowWindow();
+ void slotSwapFocus();
+
+ void printRequested(QWebFrame *frame);
+ void geometryChangeRequested(const QRect &geometry);
+ void updateToolbarActionText(bool visible);
+ void updateBookmarksToolbarActionText(bool visible);
+
+private:
+ void loadDefaultState();
+ void setupMenu();
+ void setupToolBar();
+ void updateStatusbarActionText(bool visible);
+
+private:
+ QToolBar *m_navigationBar;
+ ToolbarSearch *m_toolbarSearch;
+ BookmarksToolBar *m_bookmarksToolbar;
+ ChaseWidget *m_chaseWidget;
+ TabWidget *m_tabWidget;
+ AutoSaver *m_autoSaver;
+
+ QAction *m_historyBack;
+ QMenu *m_historyBackMenu;
+ QAction *m_historyForward;
+ QMenu *m_historyForwardMenu;
+ QMenu *m_windowMenu;
+
+ QAction *m_stop;
+ QAction *m_reload;
+ QAction *m_stopReload;
+ QAction *m_viewToolbar;
+ QAction *m_viewBookmarkBar;
+ QAction *m_viewStatusbar;
+ QAction *m_restoreLastSession;
+ QAction *m_addBookmark;
+
+ QIcon m_reloadIcon;
+ QIcon m_stopIcon;
+
+ QString m_lastSearch;
+};
+
+#endif // BROWSERMAINWINDOW_H
+
diff --git a/demos/browser/chasewidget.cpp b/demos/browser/chasewidget.cpp
new file mode 100644
index 0000000..7ebe282
--- /dev/null
+++ b/demos/browser/chasewidget.cpp
@@ -0,0 +1,142 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "chasewidget.h"
+
+#include <QtCore/QPoint>
+
+#include <QtGui/QApplication>
+#include <QtGui/QHideEvent>
+#include <QtGui/QPainter>
+#include <QtGui/QPaintEvent>
+#include <QtGui/QShowEvent>
+
+ChaseWidget::ChaseWidget(QWidget *parent, QPixmap pixmap, bool pixmapEnabled)
+ : QWidget(parent)
+ , m_segment(0)
+ , m_delay(100)
+ , m_step(40)
+ , m_timerId(-1)
+ , m_animated(false)
+ , m_pixmap(pixmap)
+ , m_pixmapEnabled(pixmapEnabled)
+{
+}
+
+void ChaseWidget::setAnimated(bool value)
+{
+ if (m_animated == value)
+ return;
+ m_animated = value;
+ if (m_timerId != -1) {
+ killTimer(m_timerId);
+ m_timerId = -1;
+ }
+ if (m_animated) {
+ m_segment = 0;
+ m_timerId = startTimer(m_delay);
+ }
+ update();
+}
+
+void ChaseWidget::paintEvent(QPaintEvent *event)
+{
+ Q_UNUSED(event);
+ QPainter p(this);
+ if (m_pixmapEnabled && !m_pixmap.isNull()) {
+ p.drawPixmap(0, 0, m_pixmap);
+ return;
+ }
+
+ const int extent = qMin(width() - 8, height() - 8);
+ const int displ = extent / 4;
+ const int ext = extent / 4 - 1;
+
+ p.setRenderHint(QPainter::Antialiasing, true);
+
+ if(m_animated)
+ p.setPen(Qt::gray);
+ else
+ p.setPen(QPen(palette().dark().color()));
+
+ p.translate(width() / 2, height() / 2); // center
+
+ for (int segment = 0; segment < segmentCount(); ++segment) {
+ p.rotate(QApplication::isRightToLeft() ? m_step : -m_step);
+ if(m_animated)
+ p.setBrush(colorForSegment(segment));
+ else
+ p.setBrush(palette().background());
+ p.drawEllipse(QRect(displ, -ext / 2, ext, ext));
+ }
+}
+
+QSize ChaseWidget::sizeHint() const
+{
+ return QSize(32, 32);
+}
+
+void ChaseWidget::timerEvent(QTimerEvent *event)
+{
+ if (event->timerId() == m_timerId) {
+ ++m_segment;
+ update();
+ }
+ QWidget::timerEvent(event);
+}
+
+QColor ChaseWidget::colorForSegment(int seg) const
+{
+ int index = ((seg + m_segment) % segmentCount());
+ int comp = qMax(0, 255 - (index * (255 / segmentCount())));
+ return QColor(comp, comp, comp, 255);
+}
+
+int ChaseWidget::segmentCount() const
+{
+ return 360 / m_step;
+}
+
+void ChaseWidget::setPixmapEnabled(bool enable)
+{
+ m_pixmapEnabled = enable;
+}
+
diff --git a/demos/browser/chasewidget.h b/demos/browser/chasewidget.h
new file mode 100644
index 0000000..78968ba
--- /dev/null
+++ b/demos/browser/chasewidget.h
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef CHASEWIDGET_H
+#define CHASEWIDGET_H
+
+#include <QtGui/QWidget>
+
+#include <QtCore/QSize>
+#include <QtGui/QColor>
+#include <QtGui/QPixmap>
+
+QT_BEGIN_NAMESPACE
+class QHideEvent;
+class QShowEvent;
+class QPaintEvent;
+class QTimerEvent;
+QT_END_NAMESPACE
+
+class ChaseWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ ChaseWidget(QWidget *parent = 0, QPixmap pixmap = QPixmap(), bool pixmapEnabled = false);
+
+ void setAnimated(bool value);
+ void setPixmapEnabled(bool enable);
+ QSize sizeHint() const;
+
+protected:
+ void paintEvent(QPaintEvent *event);
+ void timerEvent(QTimerEvent *event);
+
+private:
+ int segmentCount() const;
+ QColor colorForSegment(int segment) const;
+
+ int m_segment;
+ int m_delay;
+ int m_step;
+ int m_timerId;
+ bool m_animated;
+ QPixmap m_pixmap;
+ bool m_pixmapEnabled;
+};
+
+#endif
diff --git a/demos/browser/cookiejar.cpp b/demos/browser/cookiejar.cpp
new file mode 100644
index 0000000..9e11c8e
--- /dev/null
+++ b/demos/browser/cookiejar.cpp
@@ -0,0 +1,733 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "cookiejar.h"
+
+#include "autosaver.h"
+
+#include <QtCore/QDateTime>
+#include <QtCore/QDir>
+#include <QtCore/QFile>
+#include <QtCore/QMetaEnum>
+#include <QtCore/QSettings>
+#include <QtCore/QUrl>
+
+#include <QtGui/QCompleter>
+#include <QtGui/QDesktopServices>
+#include <QtGui/QFont>
+#include <QtGui/QFontMetrics>
+#include <QtGui/QHeaderView>
+#include <QtGui/QKeyEvent>
+#include <QtGui/QSortFilterProxyModel>
+
+#include <QtWebKit/QWebSettings>
+
+#include <QtCore/QDebug>
+
+static const unsigned int JAR_VERSION = 23;
+
+QT_BEGIN_NAMESPACE
+QDataStream &operator<<(QDataStream &stream, const QList<QNetworkCookie> &list)
+{
+ stream << JAR_VERSION;
+ stream << quint32(list.size());
+ for (int i = 0; i < list.size(); ++i)
+ stream << list.at(i).toRawForm();
+ return stream;
+}
+
+QDataStream &operator>>(QDataStream &stream, QList<QNetworkCookie> &list)
+{
+ list.clear();
+
+ quint32 version;
+ stream >> version;
+
+ if (version != JAR_VERSION)
+ return stream;
+
+ quint32 count;
+ stream >> count;
+ for(quint32 i = 0; i < count; ++i)
+ {
+ QByteArray value;
+ stream >> value;
+ QList<QNetworkCookie> newCookies = QNetworkCookie::parseCookies(value);
+ if (newCookies.count() == 0 && value.length() != 0) {
+ qWarning() << "CookieJar: Unable to parse saved cookie:" << value;
+ }
+ for (int j = 0; j < newCookies.count(); ++j)
+ list.append(newCookies.at(j));
+ if (stream.atEnd())
+ break;
+ }
+ return stream;
+}
+QT_END_NAMESPACE
+
+CookieJar::CookieJar(QObject *parent)
+ : QNetworkCookieJar(parent)
+ , m_loaded(false)
+ , m_saveTimer(new AutoSaver(this))
+ , m_acceptCookies(AcceptOnlyFromSitesNavigatedTo)
+{
+}
+
+CookieJar::~CookieJar()
+{
+ if (m_keepCookies == KeepUntilExit)
+ clear();
+ m_saveTimer->saveIfNeccessary();
+}
+
+void CookieJar::clear()
+{
+ setAllCookies(QList<QNetworkCookie>());
+ m_saveTimer->changeOccurred();
+ emit cookiesChanged();
+}
+
+void CookieJar::load()
+{
+ if (m_loaded)
+ return;
+ // load cookies and exceptions
+ qRegisterMetaTypeStreamOperators<QList<QNetworkCookie> >("QList<QNetworkCookie>");
+ QSettings cookieSettings(QDesktopServices::storageLocation(QDesktopServices::DataLocation) + QLatin1String("/cookies.ini"), QSettings::IniFormat);
+ setAllCookies(qvariant_cast<QList<QNetworkCookie> >(cookieSettings.value(QLatin1String("cookies"))));
+ cookieSettings.beginGroup(QLatin1String("Exceptions"));
+ m_exceptions_block = cookieSettings.value(QLatin1String("block")).toStringList();
+ m_exceptions_allow = cookieSettings.value(QLatin1String("allow")).toStringList();
+ m_exceptions_allowForSession = cookieSettings.value(QLatin1String("allowForSession")).toStringList();
+ qSort(m_exceptions_block.begin(), m_exceptions_block.end());
+ qSort(m_exceptions_allow.begin(), m_exceptions_allow.end());
+ qSort(m_exceptions_allowForSession.begin(), m_exceptions_allowForSession.end());
+
+ loadSettings();
+}
+
+void CookieJar::loadSettings()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("cookies"));
+ QByteArray value = settings.value(QLatin1String("acceptCookies"),
+ QLatin1String("AcceptOnlyFromSitesNavigatedTo")).toByteArray();
+ QMetaEnum acceptPolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("AcceptPolicy"));
+ m_acceptCookies = acceptPolicyEnum.keyToValue(value) == -1 ?
+ AcceptOnlyFromSitesNavigatedTo :
+ static_cast<AcceptPolicy>(acceptPolicyEnum.keyToValue(value));
+
+ value = settings.value(QLatin1String("keepCookiesUntil"), QLatin1String("KeepUntilExpire")).toByteArray();
+ QMetaEnum keepPolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("KeepPolicy"));
+ m_keepCookies = keepPolicyEnum.keyToValue(value) == -1 ?
+ KeepUntilExpire :
+ static_cast<KeepPolicy>(keepPolicyEnum.keyToValue(value));
+
+ if (m_keepCookies == KeepUntilExit)
+ setAllCookies(QList<QNetworkCookie>());
+
+ m_loaded = true;
+ emit cookiesChanged();
+}
+
+void CookieJar::save()
+{
+ if (!m_loaded)
+ return;
+ purgeOldCookies();
+ QString directory = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
+ if (directory.isEmpty())
+ directory = QDir::homePath() + QLatin1String("/.") + QCoreApplication::applicationName();
+ if (!QFile::exists(directory)) {
+ QDir dir;
+ dir.mkpath(directory);
+ }
+ QSettings cookieSettings(directory + QLatin1String("/cookies.ini"), QSettings::IniFormat);
+ QList<QNetworkCookie> cookies = allCookies();
+ for (int i = cookies.count() - 1; i >= 0; --i) {
+ if (cookies.at(i).isSessionCookie())
+ cookies.removeAt(i);
+ }
+ cookieSettings.setValue(QLatin1String("cookies"), qVariantFromValue<QList<QNetworkCookie> >(cookies));
+ cookieSettings.beginGroup(QLatin1String("Exceptions"));
+ cookieSettings.setValue(QLatin1String("block"), m_exceptions_block);
+ cookieSettings.setValue(QLatin1String("allow"), m_exceptions_allow);
+ cookieSettings.setValue(QLatin1String("allowForSession"), m_exceptions_allowForSession);
+
+ // save cookie settings
+ QSettings settings;
+ settings.beginGroup(QLatin1String("cookies"));
+ QMetaEnum acceptPolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("AcceptPolicy"));
+ settings.setValue(QLatin1String("acceptCookies"), QLatin1String(acceptPolicyEnum.valueToKey(m_acceptCookies)));
+
+ QMetaEnum keepPolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("KeepPolicy"));
+ settings.setValue(QLatin1String("keepCookiesUntil"), QLatin1String(keepPolicyEnum.valueToKey(m_keepCookies)));
+}
+
+void CookieJar::purgeOldCookies()
+{
+ QList<QNetworkCookie> cookies = allCookies();
+ if (cookies.isEmpty())
+ return;
+ int oldCount = cookies.count();
+ QDateTime now = QDateTime::currentDateTime();
+ for (int i = cookies.count() - 1; i >= 0; --i) {
+ if (!cookies.at(i).isSessionCookie() && cookies.at(i).expirationDate() < now)
+ cookies.removeAt(i);
+ }
+ if (oldCount == cookies.count())
+ return;
+ setAllCookies(cookies);
+ emit cookiesChanged();
+}
+
+QList<QNetworkCookie> CookieJar::cookiesForUrl(const QUrl &url) const
+{
+ CookieJar *that = const_cast<CookieJar*>(this);
+ if (!m_loaded)
+ that->load();
+
+ QWebSettings *globalSettings = QWebSettings::globalSettings();
+ if (globalSettings->testAttribute(QWebSettings::PrivateBrowsingEnabled)) {
+ QList<QNetworkCookie> noCookies;
+ return noCookies;
+ }
+
+ return QNetworkCookieJar::cookiesForUrl(url);
+}
+
+bool CookieJar::setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url)
+{
+ if (!m_loaded)
+ load();
+
+ QWebSettings *globalSettings = QWebSettings::globalSettings();
+ if (globalSettings->testAttribute(QWebSettings::PrivateBrowsingEnabled))
+ return false;
+
+ QString host = url.host();
+ bool eBlock = qBinaryFind(m_exceptions_block.begin(), m_exceptions_block.end(), host) != m_exceptions_block.end();
+ bool eAllow = qBinaryFind(m_exceptions_allow.begin(), m_exceptions_allow.end(), host) != m_exceptions_allow.end();
+ bool eAllowSession = qBinaryFind(m_exceptions_allowForSession.begin(), m_exceptions_allowForSession.end(), host) != m_exceptions_allowForSession.end();
+
+ bool addedCookies = false;
+ // pass exceptions
+ bool acceptInitially = (m_acceptCookies != AcceptNever);
+ if ((acceptInitially && !eBlock)
+ || (!acceptInitially && (eAllow || eAllowSession))) {
+ // pass url domain == cookie domain
+ QDateTime soon = QDateTime::currentDateTime();
+ soon = soon.addDays(90);
+ foreach(QNetworkCookie cookie, cookieList) {
+ QList<QNetworkCookie> lst;
+ if (m_keepCookies == KeepUntilTimeLimit
+ && !cookie.isSessionCookie()
+ && cookie.expirationDate() > soon) {
+ cookie.setExpirationDate(soon);
+ }
+ lst += cookie;
+ if (QNetworkCookieJar::setCookiesFromUrl(lst, url)) {
+ addedCookies = true;
+ } else {
+ // finally force it in if wanted
+ if (m_acceptCookies == AcceptAlways) {
+ QList<QNetworkCookie> cookies = allCookies();
+ cookies += cookie;
+ setAllCookies(cookies);
+ addedCookies = true;
+ }
+#if 0
+ else
+ qWarning() << "setCookiesFromUrl failed" << url << cookieList.value(0).toRawForm();
+#endif
+ }
+ }
+ }
+
+ if (addedCookies) {
+ m_saveTimer->changeOccurred();
+ emit cookiesChanged();
+ }
+ return addedCookies;
+}
+
+CookieJar::AcceptPolicy CookieJar::acceptPolicy() const
+{
+ if (!m_loaded)
+ (const_cast<CookieJar*>(this))->load();
+ return m_acceptCookies;
+}
+
+void CookieJar::setAcceptPolicy(AcceptPolicy policy)
+{
+ if (!m_loaded)
+ load();
+ if (policy == m_acceptCookies)
+ return;
+ m_acceptCookies = policy;
+ m_saveTimer->changeOccurred();
+}
+
+CookieJar::KeepPolicy CookieJar::keepPolicy() const
+{
+ if (!m_loaded)
+ (const_cast<CookieJar*>(this))->load();
+ return m_keepCookies;
+}
+
+void CookieJar::setKeepPolicy(KeepPolicy policy)
+{
+ if (!m_loaded)
+ load();
+ if (policy == m_keepCookies)
+ return;
+ m_keepCookies = policy;
+ m_saveTimer->changeOccurred();
+}
+
+QStringList CookieJar::blockedCookies() const
+{
+ if (!m_loaded)
+ (const_cast<CookieJar*>(this))->load();
+ return m_exceptions_block;
+}
+
+QStringList CookieJar::allowedCookies() const
+{
+ if (!m_loaded)
+ (const_cast<CookieJar*>(this))->load();
+ return m_exceptions_allow;
+}
+
+QStringList CookieJar::allowForSessionCookies() const
+{
+ if (!m_loaded)
+ (const_cast<CookieJar*>(this))->load();
+ return m_exceptions_allowForSession;
+}
+
+void CookieJar::setBlockedCookies(const QStringList &list)
+{
+ if (!m_loaded)
+ load();
+ m_exceptions_block = list;
+ qSort(m_exceptions_block.begin(), m_exceptions_block.end());
+ m_saveTimer->changeOccurred();
+}
+
+void CookieJar::setAllowedCookies(const QStringList &list)
+{
+ if (!m_loaded)
+ load();
+ m_exceptions_allow = list;
+ qSort(m_exceptions_allow.begin(), m_exceptions_allow.end());
+ m_saveTimer->changeOccurred();
+}
+
+void CookieJar::setAllowForSessionCookies(const QStringList &list)
+{
+ if (!m_loaded)
+ load();
+ m_exceptions_allowForSession = list;
+ qSort(m_exceptions_allowForSession.begin(), m_exceptions_allowForSession.end());
+ m_saveTimer->changeOccurred();
+}
+
+CookieModel::CookieModel(CookieJar *cookieJar, QObject *parent)
+ : QAbstractTableModel(parent)
+ , m_cookieJar(cookieJar)
+{
+ connect(m_cookieJar, SIGNAL(cookiesChanged()), this, SLOT(cookiesChanged()));
+ m_cookieJar->load();
+}
+
+QVariant CookieModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ if (role == Qt::SizeHintRole) {
+ QFont font;
+ font.setPointSize(10);
+ QFontMetrics fm(font);
+ int height = fm.height() + fm.height()/3;
+ int width = fm.width(headerData(section, orientation, Qt::DisplayRole).toString());
+ return QSize(width, height);
+ }
+
+ if (orientation == Qt::Horizontal) {
+ if (role != Qt::DisplayRole)
+ return QVariant();
+
+ switch (section) {
+ case 0:
+ return tr("Website");
+ case 1:
+ return tr("Name");
+ case 2:
+ return tr("Path");
+ case 3:
+ return tr("Secure");
+ case 4:
+ return tr("Expires");
+ case 5:
+ return tr("Contents");
+ default:
+ return QVariant();
+ }
+ }
+ return QAbstractTableModel::headerData(section, orientation, role);
+}
+
+QVariant CookieModel::data(const QModelIndex &index, int role) const
+{
+ QList<QNetworkCookie> lst;
+ if (m_cookieJar)
+ lst = m_cookieJar->allCookies();
+ if (index.row() < 0 || index.row() >= lst.size())
+ return QVariant();
+
+ switch (role) {
+ case Qt::DisplayRole:
+ case Qt::EditRole: {
+ QNetworkCookie cookie = lst.at(index.row());
+ switch (index.column()) {
+ case 0:
+ return cookie.domain();
+ case 1:
+ return cookie.name();
+ case 2:
+ return cookie.path();
+ case 3:
+ return cookie.isSecure();
+ case 4:
+ return cookie.expirationDate();
+ case 5:
+ return cookie.value();
+ }
+ }
+ case Qt::FontRole:{
+ QFont font;
+ font.setPointSize(10);
+ return font;
+ }
+ }
+
+ return QVariant();
+}
+
+int CookieModel::columnCount(const QModelIndex &parent) const
+{
+ return (parent.isValid()) ? 0 : 6;
+}
+
+int CookieModel::rowCount(const QModelIndex &parent) const
+{
+ return (parent.isValid() || !m_cookieJar) ? 0 : m_cookieJar->allCookies().count();
+}
+
+bool CookieModel::removeRows(int row, int count, const QModelIndex &parent)
+{
+ if (parent.isValid() || !m_cookieJar)
+ return false;
+ int lastRow = row + count - 1;
+ beginRemoveRows(parent, row, lastRow);
+ QList<QNetworkCookie> lst = m_cookieJar->allCookies();
+ for (int i = lastRow; i >= row; --i) {
+ lst.removeAt(i);
+ }
+ m_cookieJar->setAllCookies(lst);
+ endRemoveRows();
+ return true;
+}
+
+void CookieModel::cookiesChanged()
+{
+ reset();
+}
+
+CookiesDialog::CookiesDialog(CookieJar *cookieJar, QWidget *parent) : QDialog(parent)
+{
+ setupUi(this);
+ setWindowFlags(Qt::Sheet);
+ CookieModel *model = new CookieModel(cookieJar, this);
+ m_proxyModel = new QSortFilterProxyModel(this);
+ connect(search, SIGNAL(textChanged(QString)),
+ m_proxyModel, SLOT(setFilterFixedString(QString)));
+ connect(removeButton, SIGNAL(clicked()), cookiesTable, SLOT(removeOne()));
+ connect(removeAllButton, SIGNAL(clicked()), cookiesTable, SLOT(removeAll()));
+ m_proxyModel->setSourceModel(model);
+ cookiesTable->verticalHeader()->hide();
+ cookiesTable->setSelectionBehavior(QAbstractItemView::SelectRows);
+ cookiesTable->setModel(m_proxyModel);
+ cookiesTable->setAlternatingRowColors(true);
+ cookiesTable->setTextElideMode(Qt::ElideMiddle);
+ cookiesTable->setShowGrid(false);
+ cookiesTable->setSortingEnabled(true);
+ QFont f = font();
+ f.setPointSize(10);
+ QFontMetrics fm(f);
+ int height = fm.height() + fm.height()/3;
+ cookiesTable->verticalHeader()->setDefaultSectionSize(height);
+ cookiesTable->verticalHeader()->setMinimumSectionSize(-1);
+ for (int i = 0; i < model->columnCount(); ++i){
+ int header = cookiesTable->horizontalHeader()->sectionSizeHint(i);
+ switch (i) {
+ case 0:
+ header = fm.width(QLatin1String("averagehost.domain.com"));
+ break;
+ case 1:
+ header = fm.width(QLatin1String("_session_id"));
+ break;
+ case 4:
+ header = fm.width(QDateTime::currentDateTime().toString(Qt::LocalDate));
+ break;
+ }
+ int buffer = fm.width(QLatin1String("xx"));
+ header += buffer;
+ cookiesTable->horizontalHeader()->resizeSection(i, header);
+ }
+ cookiesTable->horizontalHeader()->setStretchLastSection(true);
+}
+
+
+
+CookieExceptionsModel::CookieExceptionsModel(CookieJar *cookiejar, QObject *parent)
+ : QAbstractTableModel(parent)
+ , m_cookieJar(cookiejar)
+{
+ m_allowedCookies = m_cookieJar->allowedCookies();
+ m_blockedCookies = m_cookieJar->blockedCookies();
+ m_sessionCookies = m_cookieJar->allowForSessionCookies();
+}
+
+QVariant CookieExceptionsModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ if (role == Qt::SizeHintRole) {
+ QFont font;
+ font.setPointSize(10);
+ QFontMetrics fm(font);
+ int height = fm.height() + fm.height()/3;
+ int width = fm.width(headerData(section, orientation, Qt::DisplayRole).toString());
+ return QSize(width, height);
+ }
+
+ if (orientation == Qt::Horizontal
+ && role == Qt::DisplayRole) {
+ switch (section) {
+ case 0:
+ return tr("Website");
+ case 1:
+ return tr("Status");
+ }
+ }
+ return QAbstractTableModel::headerData(section, orientation, role);
+}
+
+QVariant CookieExceptionsModel::data(const QModelIndex &index, int role) const
+{
+ if (index.row() < 0 || index.row() >= rowCount())
+ return QVariant();
+
+ switch (role) {
+ case Qt::DisplayRole:
+ case Qt::EditRole: {
+ int row = index.row();
+ if (row < m_allowedCookies.count()) {
+ switch (index.column()) {
+ case 0:
+ return m_allowedCookies.at(row);
+ case 1:
+ return tr("Allow");
+ }
+ }
+ row = row - m_allowedCookies.count();
+ if (row < m_blockedCookies.count()) {
+ switch (index.column()) {
+ case 0:
+ return m_blockedCookies.at(row);
+ case 1:
+ return tr("Block");
+ }
+ }
+ row = row - m_blockedCookies.count();
+ if (row < m_sessionCookies.count()) {
+ switch (index.column()) {
+ case 0:
+ return m_sessionCookies.at(row);
+ case 1:
+ return tr("Allow For Session");
+ }
+ }
+ }
+ case Qt::FontRole:{
+ QFont font;
+ font.setPointSize(10);
+ return font;
+ }
+ }
+ return QVariant();
+}
+
+int CookieExceptionsModel::columnCount(const QModelIndex &parent) const
+{
+ return (parent.isValid()) ? 0 : 2;
+}
+
+int CookieExceptionsModel::rowCount(const QModelIndex &parent) const
+{
+ return (parent.isValid() || !m_cookieJar) ? 0 : m_allowedCookies.count() + m_blockedCookies.count() + m_sessionCookies.count();
+}
+
+bool CookieExceptionsModel::removeRows(int row, int count, const QModelIndex &parent)
+{
+ if (parent.isValid() || !m_cookieJar)
+ return false;
+
+ int lastRow = row + count - 1;
+ beginRemoveRows(parent, row, lastRow);
+ for (int i = lastRow; i >= row; --i) {
+ if (i < m_allowedCookies.count()) {
+ m_allowedCookies.removeAt(row);
+ continue;
+ }
+ i = i - m_allowedCookies.count();
+ if (i < m_blockedCookies.count()) {
+ m_blockedCookies.removeAt(row);
+ continue;
+ }
+ i = i - m_blockedCookies.count();
+ if (i < m_sessionCookies.count()) {
+ m_sessionCookies.removeAt(row);
+ continue;
+ }
+ }
+ m_cookieJar->setAllowedCookies(m_allowedCookies);
+ m_cookieJar->setBlockedCookies(m_blockedCookies);
+ m_cookieJar->setAllowForSessionCookies(m_sessionCookies);
+ endRemoveRows();
+ return true;
+}
+
+CookiesExceptionsDialog::CookiesExceptionsDialog(CookieJar *cookieJar, QWidget *parent)
+ : QDialog(parent)
+ , m_cookieJar(cookieJar)
+{
+ setupUi(this);
+ setWindowFlags(Qt::Sheet);
+ connect(removeButton, SIGNAL(clicked()), exceptionTable, SLOT(removeOne()));
+ connect(removeAllButton, SIGNAL(clicked()), exceptionTable, SLOT(removeAll()));
+ exceptionTable->verticalHeader()->hide();
+ exceptionTable->setSelectionBehavior(QAbstractItemView::SelectRows);
+ exceptionTable->setAlternatingRowColors(true);
+ exceptionTable->setTextElideMode(Qt::ElideMiddle);
+ exceptionTable->setShowGrid(false);
+ exceptionTable->setSortingEnabled(true);
+ m_exceptionsModel = new CookieExceptionsModel(cookieJar, this);
+ m_proxyModel = new QSortFilterProxyModel(this);
+ m_proxyModel->setSourceModel(m_exceptionsModel);
+ connect(search, SIGNAL(textChanged(QString)),
+ m_proxyModel, SLOT(setFilterFixedString(QString)));
+ exceptionTable->setModel(m_proxyModel);
+
+ CookieModel *cookieModel = new CookieModel(cookieJar, this);
+ domainLineEdit->setCompleter(new QCompleter(cookieModel, domainLineEdit));
+
+ connect(domainLineEdit, SIGNAL(textChanged(const QString &)),
+ this, SLOT(textChanged(const QString &)));
+ connect(blockButton, SIGNAL(clicked()), this, SLOT(block()));
+ connect(allowButton, SIGNAL(clicked()), this, SLOT(allow()));
+ connect(allowForSessionButton, SIGNAL(clicked()), this, SLOT(allowForSession()));
+
+ QFont f = font();
+ f.setPointSize(10);
+ QFontMetrics fm(f);
+ int height = fm.height() + fm.height()/3;
+ exceptionTable->verticalHeader()->setDefaultSectionSize(height);
+ exceptionTable->verticalHeader()->setMinimumSectionSize(-1);
+ for (int i = 0; i < m_exceptionsModel->columnCount(); ++i){
+ int header = exceptionTable->horizontalHeader()->sectionSizeHint(i);
+ switch (i) {
+ case 0:
+ header = fm.width(QLatin1String("averagebiglonghost.domain.com"));
+ break;
+ case 1:
+ header = fm.width(QLatin1String("Allow For Session"));
+ break;
+ }
+ int buffer = fm.width(QLatin1String("xx"));
+ header += buffer;
+ exceptionTable->horizontalHeader()->resizeSection(i, header);
+ }
+}
+
+void CookiesExceptionsDialog::textChanged(const QString &text)
+{
+ bool enabled = !text.isEmpty();
+ blockButton->setEnabled(enabled);
+ allowButton->setEnabled(enabled);
+ allowForSessionButton->setEnabled(enabled);
+}
+
+void CookiesExceptionsDialog::block()
+{
+ if (domainLineEdit->text().isEmpty())
+ return;
+ m_exceptionsModel->m_blockedCookies.append(domainLineEdit->text());
+ m_cookieJar->setBlockedCookies(m_exceptionsModel->m_blockedCookies);
+ m_exceptionsModel->reset();
+}
+
+void CookiesExceptionsDialog::allow()
+{
+ if (domainLineEdit->text().isEmpty())
+ return;
+ m_exceptionsModel->m_allowedCookies.append(domainLineEdit->text());
+ m_cookieJar->setAllowedCookies(m_exceptionsModel->m_allowedCookies);
+ m_exceptionsModel->reset();
+}
+
+void CookiesExceptionsDialog::allowForSession()
+{
+ if (domainLineEdit->text().isEmpty())
+ return;
+ m_exceptionsModel->m_sessionCookies.append(domainLineEdit->text());
+ m_cookieJar->setAllowForSessionCookies(m_exceptionsModel->m_sessionCookies);
+ m_exceptionsModel->reset();
+}
+
diff --git a/demos/browser/cookiejar.h b/demos/browser/cookiejar.h
new file mode 100644
index 0000000..ffcd4c1
--- /dev/null
+++ b/demos/browser/cookiejar.h
@@ -0,0 +1,204 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef COOKIEJAR_H
+#define COOKIEJAR_H
+
+#include <QtNetwork/QNetworkCookieJar>
+
+#include <QtCore/QAbstractItemModel>
+#include <QtCore/QStringList>
+
+#include <QtGui/QDialog>
+#include <QtGui/QTableView>
+
+QT_BEGIN_NAMESPACE
+class QSortFilterProxyModel;
+class QKeyEvent;
+QT_END_NAMESPACE
+
+class AutoSaver;
+
+class CookieJar : public QNetworkCookieJar
+{
+ friend class CookieModel;
+ Q_OBJECT
+ Q_PROPERTY(AcceptPolicy acceptPolicy READ acceptPolicy WRITE setAcceptPolicy)
+ Q_PROPERTY(KeepPolicy keepPolicy READ keepPolicy WRITE setKeepPolicy)
+ Q_PROPERTY(QStringList blockedCookies READ blockedCookies WRITE setBlockedCookies)
+ Q_PROPERTY(QStringList allowedCookies READ allowedCookies WRITE setAllowedCookies)
+ Q_PROPERTY(QStringList allowForSessionCookies READ allowForSessionCookies WRITE setAllowForSessionCookies)
+ Q_ENUMS(KeepPolicy)
+ Q_ENUMS(AcceptPolicy)
+
+signals:
+ void cookiesChanged();
+
+public:
+ enum AcceptPolicy {
+ AcceptAlways,
+ AcceptNever,
+ AcceptOnlyFromSitesNavigatedTo
+ };
+
+ enum KeepPolicy {
+ KeepUntilExpire,
+ KeepUntilExit,
+ KeepUntilTimeLimit
+ };
+
+ CookieJar(QObject *parent = 0);
+ ~CookieJar();
+
+ QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const;
+ bool setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url);
+
+ AcceptPolicy acceptPolicy() const;
+ void setAcceptPolicy(AcceptPolicy policy);
+
+ KeepPolicy keepPolicy() const;
+ void setKeepPolicy(KeepPolicy policy);
+
+ QStringList blockedCookies() const;
+ QStringList allowedCookies() const;
+ QStringList allowForSessionCookies() const;
+
+ void setBlockedCookies(const QStringList &list);
+ void setAllowedCookies(const QStringList &list);
+ void setAllowForSessionCookies(const QStringList &list);
+
+public slots:
+ void clear();
+ void loadSettings();
+
+private slots:
+ void save();
+
+private:
+ void purgeOldCookies();
+ void load();
+ bool m_loaded;
+ AutoSaver *m_saveTimer;
+
+ AcceptPolicy m_acceptCookies;
+ KeepPolicy m_keepCookies;
+
+ QStringList m_exceptions_block;
+ QStringList m_exceptions_allow;
+ QStringList m_exceptions_allowForSession;
+};
+
+class CookieModel : public QAbstractTableModel
+{
+ Q_OBJECT
+
+public:
+ CookieModel(CookieJar *jar, QObject *parent = 0);
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+
+private slots:
+ void cookiesChanged();
+
+private:
+ CookieJar *m_cookieJar;
+};
+
+#include "ui_cookies.h"
+#include "ui_cookiesexceptions.h"
+
+class CookiesDialog : public QDialog, public Ui_CookiesDialog
+{
+ Q_OBJECT
+
+public:
+ CookiesDialog(CookieJar *cookieJar, QWidget *parent = 0);
+
+private:
+ QSortFilterProxyModel *m_proxyModel;
+};
+
+class CookieExceptionsModel : public QAbstractTableModel
+{
+ Q_OBJECT
+ friend class CookiesExceptionsDialog;
+
+public:
+ CookieExceptionsModel(CookieJar *cookieJar, QObject *parent = 0);
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+
+private:
+ CookieJar *m_cookieJar;
+
+ // Domains we allow, Domains we block, Domains we allow for this session
+ QStringList m_allowedCookies;
+ QStringList m_blockedCookies;
+ QStringList m_sessionCookies;
+};
+
+class CookiesExceptionsDialog : public QDialog, public Ui_CookiesExceptionsDialog
+{
+ Q_OBJECT
+
+public:
+ CookiesExceptionsDialog(CookieJar *cookieJar, QWidget *parent = 0);
+
+private slots:
+ void block();
+ void allow();
+ void allowForSession();
+ void textChanged(const QString &text);
+
+private:
+ CookieExceptionsModel *m_exceptionsModel;
+ QSortFilterProxyModel *m_proxyModel;
+ CookieJar *m_cookieJar;
+};
+
+#endif // COOKIEJAR_H
+
diff --git a/demos/browser/cookies.ui b/demos/browser/cookies.ui
new file mode 100644
index 0000000..c4bccc5
--- /dev/null
+++ b/demos/browser/cookies.ui
@@ -0,0 +1,106 @@
+<ui version="4.0" >
+ <class>CookiesDialog</class>
+ <widget class="QDialog" name="CookiesDialog" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>550</width>
+ <height>370</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Cookies</string>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>252</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="1" >
+ <widget class="SearchLineEdit" name="search" />
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="EditTableView" name="cookiesTable" />
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QPushButton" name="removeButton" >
+ <property name="text" >
+ <string>&amp;Remove</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="removeAllButton" >
+ <property name="text" >
+ <string>Remove &amp;All Cookies</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>SearchLineEdit</class>
+ <extends>QLineEdit</extends>
+ <header>searchlineedit.h</header>
+ </customwidget>
+ <customwidget>
+ <class>EditTableView</class>
+ <extends>QTableView</extends>
+ <header>edittableview.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>CookiesDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>472</x>
+ <y>329</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>461</x>
+ <y>356</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/demos/browser/cookiesexceptions.ui b/demos/browser/cookiesexceptions.ui
new file mode 100644
index 0000000..3d9ef62
--- /dev/null
+++ b/demos/browser/cookiesexceptions.ui
@@ -0,0 +1,184 @@
+<ui version="4.0" >
+ <class>CookiesExceptionsDialog</class>
+ <widget class="QDialog" name="CookiesExceptionsDialog" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>466</width>
+ <height>446</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Cookie Exceptions</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <item>
+ <widget class="QGroupBox" name="newExceptionGroupBox" >
+ <property name="title" >
+ <string>New Exception</string>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Domain:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="domainLineEdit" />
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="0" >
+ <layout class="QHBoxLayout" >
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>81</width>
+ <height>25</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="blockButton" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>Block</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="allowForSessionButton" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>Allow For Session</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="allowButton" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>Allow</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="ExceptionsGroupBox" >
+ <property name="title" >
+ <string>Exceptions</string>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" colspan="3" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>252</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="3" >
+ <widget class="SearchLineEdit" name="search" />
+ </item>
+ <item row="1" column="0" colspan="4" >
+ <widget class="EditTableView" name="exceptionTable" />
+ </item>
+ <item row="2" column="0" >
+ <widget class="QPushButton" name="removeButton" >
+ <property name="text" >
+ <string>&amp;Remove</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QPushButton" name="removeAllButton" >
+ <property name="text" >
+ <string>Remove &amp;All</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" colspan="2" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>SearchLineEdit</class>
+ <extends>QLineEdit</extends>
+ <header>searchlineedit.h</header>
+ </customwidget>
+ <customwidget>
+ <class>EditTableView</class>
+ <extends>QTableView</extends>
+ <header>edittableview.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>CookiesExceptionsDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>381</x>
+ <y>428</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>336</x>
+ <y>443</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/demos/browser/data/addtab.png b/demos/browser/data/addtab.png
new file mode 100644
index 0000000..20928fb
--- /dev/null
+++ b/demos/browser/data/addtab.png
Binary files differ
diff --git a/demos/browser/data/browser.svg b/demos/browser/data/browser.svg
new file mode 100644
index 0000000..4b0fa72
--- /dev/null
+++ b/demos/browser/data/browser.svg
@@ -0,0 +1,411 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48px"
+ height="48px"
+ id="svg2160"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ inkscape:export-filename="c:\icons\qtbrowser48.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docbase="C:\icons"
+ sodipodi:docname="browser.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2162"><linearGradient
+ id="linearGradient3808">
+ <stop
+ id="stop3810"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:0.54263568;" />
+ <stop
+ id="stop3812"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+</linearGradient>
+<inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective63" />
+<linearGradient
+ id="linearGradient3326">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.3137255;"
+ offset="0"
+ id="stop3328" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3330" />
+</linearGradient>
+<linearGradient
+ id="linearGradient3318">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.3137255;"
+ offset="0"
+ id="stop3320" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3322" />
+</linearGradient>
+<linearGradient
+ id="linearGradient3302">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.3137255;"
+ offset="0"
+ id="stop3304" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3306" />
+</linearGradient>
+<linearGradient
+ id="linearGradient3267">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3269" />
+ <stop
+ id="stop3275"
+ offset="0.79661018"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3271" />
+</linearGradient>
+<linearGradient
+ id="linearGradient3745">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.19587629;"
+ offset="0"
+ id="stop3747" />
+ <stop
+ style="stop-color:#7cb2ff;stop-opacity:0.07216495;"
+ offset="1"
+ id="stop3749" />
+</linearGradient>
+<linearGradient
+ inkscape:collect="always"
+ id="linearGradient3561">
+ <stop
+ style="stop-color:#b1d0ff;stop-opacity:1;"
+ offset="0"
+ id="stop3563" />
+ <stop
+ style="stop-color:#b1d0ff;stop-opacity:0;"
+ offset="1"
+ id="stop3565" />
+</linearGradient>
+<linearGradient
+ id="linearGradient3181">
+ <stop
+ style="stop-color:#4f7a33;stop-opacity:1;"
+ offset="0"
+ id="stop3183" />
+ <stop
+ style="stop-color:#204712;stop-opacity:1;"
+ offset="1"
+ id="stop3185" />
+</linearGradient>
+<linearGradient
+ id="linearGradient3143">
+ <stop
+ style="stop-color:#c1dbff;stop-opacity:1;"
+ offset="0"
+ id="stop3145" />
+ <stop
+ style="stop-color:#004e92;stop-opacity:1;"
+ offset="1"
+ id="stop3147" />
+</linearGradient>
+<radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3143"
+ id="radialGradient3149"
+ cx="9.1428566"
+ cy="15.142858"
+ fx="9.1428566"
+ fy="15.142858"
+ r="20.121096"
+ gradientUnits="userSpaceOnUse" />
+<radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3181"
+ id="radialGradient3187"
+ cx="10.739879"
+ cy="18.250999"
+ fx="10.739879"
+ fy="18.250999"
+ r="7.4191086"
+ gradientTransform="matrix(1.0504709,0,0,1.5077925,-0.3797113,-9.2677171)"
+ gradientUnits="userSpaceOnUse" />
+<radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3181"
+ id="radialGradient3195"
+ cx="14.947268"
+ cy="35.920116"
+ fx="14.947268"
+ fy="35.920116"
+ r="6.0472684"
+ gradientTransform="matrix(1,0,0,0.7248478,0,9.8834985)"
+ gradientUnits="userSpaceOnUse" />
+<radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3181"
+ id="radialGradient3203"
+ cx="34.227203"
+ cy="24.681196"
+ fx="34.227203"
+ fy="24.681196"
+ r="6.7517419"
+ gradientTransform="matrix(0.9941509,-0.1079997,0.2962199,2.7267411,-7.1108629,-38.921508)"
+ gradientUnits="userSpaceOnUse" />
+<radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3561"
+ id="radialGradient3567"
+ cx="22.714285"
+ cy="23.571428"
+ fx="22.714285"
+ fy="23.571428"
+ r="19.828572"
+ gradientUnits="userSpaceOnUse" />
+<linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3745"
+ id="linearGradient3751"
+ x1="0.84126461"
+ y1="13.678415"
+ x2="31.397495"
+ y2="13.678415"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8791332,0.7829527,-0.6285195,1.0951445,14.147627,-10.49311)" />
+<filter
+ inkscape:collect="always"
+ id="filter4176">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.27747502"
+ id="feGaussianBlur4178" />
+</filter>
+<radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3267"
+ id="radialGradient3273"
+ cx="22.714285"
+ cy="23.571428"
+ fx="22.714285"
+ fy="23.571428"
+ r="19.428572"
+ gradientUnits="userSpaceOnUse" />
+<inkscape:perspective
+ id="perspective136"
+ inkscape:persp3d-origin="138.6795 : 92.479329 : 1"
+ inkscape:vp_z="277.35901 : 138.71899 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 138.71899 : 1"
+ sodipodi:type="inkscape:persp3d" />
+
+
+
+
+
+
+
+
+
+
+<linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3808"
+ id="linearGradient3806"
+ x1="32.829472"
+ y1="32.055603"
+ x2="34.522324"
+ y2="-1.0290829"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8832227,0,0,1,-8.0103007,9.1923882)" />
+</defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.6568542"
+ inkscape:cx="30.924085"
+ inkscape:cy="24.59691"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1299"
+ inkscape:window-height="883"
+ inkscape:window-x="373"
+ inkscape:window-y="89"
+ showguides="false" />
+ <metadata
+ id="metadata2165">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>Qt Browser</dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jens Bache-Wiig</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.78108437;fill:url(#radialGradient3273);fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3407"
+ sodipodi:cx="22.714285"
+ sodipodi:cy="23.571428"
+ sodipodi:rx="19.428572"
+ sodipodi:ry="19.428572"
+ d="M 42.142857,23.571428 A 19.428572,19.428572 0 1 1 3.2857132,23.571428 A 19.428572,19.428572 0 1 1 42.142857,23.571428 z"
+ transform="matrix(1.0818892,0,0,1.0409446,-2.4313375,0.4303723)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient3149);fill-opacity:1;stroke:none;stroke-width:0.80000000000000004;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2170"
+ sodipodi:cx="22.714285"
+ sodipodi:cy="23.571428"
+ sodipodi:rx="19.428572"
+ sodipodi:ry="19.428572"
+ d="M 42.142857 23.571428 A 19.428572 19.428572 0 1 1 3.2857132,23.571428 A 19.428572 19.428572 0 1 1 42.142857 23.571428 z" />
+ <path
+ d="M 26.602136,8.2160843 C 26.322653,8.1637524 26.048884,8.1512446 25.78375,8.1745351 L 25.783243,8.1743913 C 25.783243,8.1743913 23.973525,8.3138471 23.891496,8.3211793 C 22.239361,8.4705552 20.985434,10.008307 20.985434,12.131916 L 20.985434,37.174579 L 22.83515,39.126673 L 41.425135,33.998394 C 42.704203,33.746799 43.714709,33.629384 43.714709,31.78483 L 43.714709,11.392226 L 26.602136,8.2160843 z"
+ id="path2998"
+ style="fill:url(#linearGradient3806);fill-opacity:1"
+ sodipodi:nodetypes="cccsccccccc" />
+ <path
+ style="fill:url(#radialGradient3203);fill-opacity:1;fill-rule:evenodd;stroke:#1d3215;stroke-width:0.51392877000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 37.535517,11.721122 C 32.782916,8.7478602 30.602351,6.3542385 32.09957,13.4346 C 32.320572,14.27055 33.291276,13.739232 33.291276,14.862228 C 33.291276,16.155819 32.607502,17.380765 31.797574,18.146663 C 30.959323,18.939344 31.011357,20.258984 31.797574,21.002459 C 33.06234,22.198469 33.942515,22.715936 35.572536,22.715936 C 36.6448,22.715936 37.003629,23.274262 37.23352,24.143834 C 37.362263,24.630808 38.410486,25.085663 38.894503,25.428942 C 38.938905,25.460433 38.139512,26.551348 38.139512,27.999158 C 38.139512,29.113512 38.405167,29.358325 38.743505,29.998215 C 38.949111,30.387072 36.418877,30.283794 36.025532,30.283794 C 35.005751,30.283794 34.181701,30.712163 33.15656,30.712163 C 32.264543,30.712163 31.099578,30.3566 31.344578,31.283323 C 31.763542,32.868074 32.552566,33.932342 32.552566,35.709806 C 32.552566,36.862272 31.047367,37.598377 30.287588,38.137232 C 29.30273,38.835721 29.133207,39.307154 28.475606,40.136289 C 28.132145,40.569341 26.990548,41.409612 28.475606,40.707448 C 29.476144,40.234375 31.192063,39.423774 32.09957,38.565601 C 33.257846,37.470293 34.527421,37.269266 35.723534,36.138176 C 36.659137,35.253436 37.512933,34.691155 38.29051,33.710749 C 39.024031,32.785889 39.498498,31.90347 39.498498,30.712163 C 39.498498,29.682482 39.308098,28.750366 39.951493,28.141948 C 40.902684,24.235856 42.225874,19.789742 39.751646,16.005086 C 38.569376,15.014407 37.717516,13.109859 37.535517,11.721122 z "
+ id="path3151"
+ sodipodi:nodetypes="ccsssssssssssssssssssccc" />
+ <path
+ style="fill:url(#radialGradient3187);fill-opacity:1;fill-rule:evenodd;stroke:#063a0a;stroke-width:0.51231807;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 14.777083,7.8630009 C 14.047432,8.4403746 12.751987,10.898939 13.27641,12.146301 C 13.709874,13.177316 14.920827,13.613143 15.827553,13.859622 C 16.568703,14.061091 17.049015,14.457271 17.478293,15.001835 C 17.832696,15.451415 17.971105,16.346745 18.078563,16.857932 C 18.298637,17.904845 18.947911,17.058563 17.62836,18.000145 C 17.234352,18.281296 14.875696,18.000145 14.476948,18.000145 C 11.976825,18.384083 14.297504,19.464893 14.92715,20.712903 C 15.204987,21.770261 15.377352,22.405336 15.377352,23.711213 C 15.377352,24.875672 15.377352,24.78389 15.377352,25.99564 C 15.377352,27.194757 15.044241,27.28063 13.876679,27.28063 C 13.023055,27.28063 12.647321,26.423969 11.625669,26.423969 C 10.400599,26.423969 11.303539,27.667106 11.475602,27.994513 C 12.006402,29.004538 11.662121,29.599737 10.875334,28.851174 C 9.855722,27.881096 8.8280305,26.760556 8.0240557,25.99564 C 2.8789379,25.807372 4.5677903,23.466499 3.9722395,18.999582 C 5.041259,16.526382 4.7558935,17.248897 7.2737194,12.574632 C 10.149914,9.5491592 13.589212,5.9532919 14.777083,7.8630009 z"
+ id="path3159"
+ sodipodi:nodetypes="csssssccsssssscccc" />
+ <path
+ style="fill:url(#radialGradient3195);fill-opacity:1;fill-rule:evenodd;stroke:#163c0c;stroke-width:0.59999999999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 10.265966,34.571429 C 9.245427,35.081699 8.6225774,36.042538 9.980252,36.857143 C 10.637564,37.25153 11.478587,37.606311 12.265966,38 C 13.258976,38.496505 14.481138,39.018522 15.408823,39.714286 C 16.227572,40.328348 15.587589,39.928184 16.123109,38.857143 C 16.827927,37.447507 18.14516,38.79674 18.837395,39.142857 C 20.044787,39.746554 20.46001,38.652394 20.694537,37.714286 C 20.459863,35.791335 18.579948,34.625723 17.123109,33.285715 C 16.704922,32.588736 15.507117,31.689713 14.837395,31.857143 C 13.49505,33.304042 12.350312,33.960279 10.265966,34.571429 z "
+ id="path3161"
+ sodipodi:nodetypes="cssssscccc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;fill-opacity:1;stroke:url(#radialGradient3567);stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.6502732"
+ id="path3557"
+ sodipodi:cx="22.714285"
+ sodipodi:cy="23.571428"
+ sodipodi:rx="19.428572"
+ sodipodi:ry="19.428572"
+ d="M 42.142857 23.571428 A 19.428572 19.428572 0 1 1 3.2857132,23.571428 A 19.428572 19.428572 0 1 1 42.142857 23.571428 z"
+ transform="matrix(0.95317,0,0,0.95317,0.9922816,1.1752786)" />
+ <path
+ style="fill:url(#linearGradient3751);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 39.916926,27.786316 C 44.588637,26.790847 38.225604,13.201712 32.946381,8.5000566 C 18.135275,-0.40265528 10.844456,5.6490056 3.6645529,16.333771 C 5.7478288,18.189127 14.704728,33.158645 39.916926,27.786316 z"
+ id="path3578"
+ sodipodi:nodetypes="cccs" />
+ <path
+ d="M 45.902562,20.610592 C 46.007701,20.610592 46.120332,20.603354 46.240455,20.590275 L 45.609873,20.590275 C 45.697743,20.603608 45.798946,20.610592 45.902562,20.610592 z"
+ id="path3012"
+ style="fill:#0a6333" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;fill-opacity:1;stroke:#273e5e;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3818"
+ sodipodi:cx="22.714285"
+ sodipodi:cy="23.571428"
+ sodipodi:rx="19.428572"
+ sodipodi:ry="19.428572"
+ d="M 42.142857,23.571428 A 19.428572,19.428572 0 1 1 3.2857132,23.571428 A 19.428572,19.428572 0 1 1 42.142857,23.571428 z"
+ transform="matrix(0.9754581,0,0,0.9754581,0.3821951,0.7002631)" />
+ <g
+ transform="matrix(0.1269799,0,0,0.1269799,23.283534,9.5774104)"
+ id="g236">
+ <path
+ style="fill:#024c1c"
+ id="path238"
+ d="M 44.233,0.368 C 42.032,0.004 39.876,-0.083 37.788,0.079 L 37.784,0.078 C 37.784,0.078 23.532,1.048 22.886,1.099 C 9.875,2.138 0,12.834 0,27.605 L 0,201.792 L 14.567,215.37 L 160.968,190.766 C 171.041,189.016 178.999,177.133 178.999,164.303 L 178.999,22.46 L 44.233,0.368 z" />
+
+ <path
+ style="fill:#66b036"
+ id="path240"
+ d="M 179,164.304 C 179,177.134 171.042,189.017 160.969,190.767 L 14.567,215.37 L 14.567,26.683 C 14.567,9.52 28.263,-2.264 44.231,0.368 L 179,22.462 L 179,164.304 z" />
+
+ <g
+ id="g242">
+ <path
+ style="fill:#ffffff"
+ id="path244"
+ d="M 133.897,47.137 L 145.72,48.411 L 145.72,69.158 L 159.025,70.099 L 159.025,83.113 L 145.72,82.502 L 145.72,130.066 C 145.72,134.207 146.176,136.869 147.093,138.064 C 147.919,139.158 149.195,139.697 150.907,139.697 C 151.069,139.697 151.24,139.695 151.414,139.683 C 154.031,139.533 156.878,138.728 159.98,137.314 L 159.98,149.275 C 154.707,151.591 149.532,152.966 144.452,153.398 C 143.716,153.457 143.005,153.486 142.317,153.486 C 137.716,153.486 134.199,152.152 131.797,149.451 C 128.998,146.318 127.598,141.285 127.598,134.387 L 127.598,81.661 L 121.209,81.368 L 121.209,67.424 L 129,67.985 L 133.897,47.137 z" />
+
+ </g>
+
+ <polygon
+ style="fill:#0a6333"
+ id="polygon246"
+ points="159.027,83.112 145.722,82.501 145.722,82.785 152.854,83.112 159.027,83.112 " />
+
+ <path
+ style="fill:#024c1c"
+ id="path248"
+ d="M 148.488,139.21 C 149.168,139.548 149.96,139.696 150.908,139.696 C 151.07,139.696 151.241,139.694 151.415,139.682 C 154.032,139.532 156.879,138.727 159.981,137.313 L 153.806,137.313 C 151.938,138.169 150.178,138.808 148.488,139.21 z" />
+
+ <path
+ style="fill:#024c1c"
+ id="path250"
+ d="M 133.897,47.137 L 127.723,47.137 L 122.93,67.549 L 129,67.985 L 133.897,47.137 z M 131.799,149.45 C 129,146.317 127.6,141.284 127.6,134.386 L 127.6,81.661 L 121.211,81.368 L 121.211,67.424 L 115.03,67.424 L 115.03,70.539 C 115.926,73.897 116.63,77.539 117.149,81.465 L 121.426,81.661 L 121.426,134.386 C 121.426,141.284 122.827,146.318 125.625,149.45 C 128.029,152.151 131.541,153.485 136.141,153.485 L 142.318,153.485 C 137.718,153.485 134.2,152.151 131.799,149.45 z" />
+
+ <path
+ style="fill:#0a6333"
+ id="path252"
+ d="M 102.954,170.419 C 103.782,170.419 104.669,170.362 105.615,170.259 L 100.649,170.259 C 101.341,170.364 102.138,170.419 102.954,170.419 z" />
+
+ <path
+ style="fill:#ffffff"
+ id="path254"
+ d="M 112.036,139.78 C 107.81,149.749 101.365,156.27 92.542,159.288 C 93.43,163.856 94.778,166.929 96.567,168.55 C 97.955,169.796 100.094,170.419 102.958,170.419 C 103.782,170.419 104.671,170.362 105.615,170.259 L 105.615,183.736 L 99.497,184.539 C 97.692,184.771 95.98,184.889 94.361,184.889 C 89.001,184.889 84.665,183.59 81.402,180.961 C 77.085,177.496 73.899,170.805 71.857,160.908 C 62.48,158.91 55.166,152.945 50.103,142.937 C 44.965,132.769 42.349,117.895 42.349,98.441 C 42.349,77.466 45.927,61.985 52.971,52.169 C 58.912,43.885 67.202,39.812 77.634,39.812 C 79.306,39.812 81.033,39.916 82.809,40.124 C 95.081,41.539 103.977,47.329 109.77,57.362 C 115.453,67.177 118.243,81.244 118.243,99.721 C 118.242,116.643 116.186,129.954 112.036,139.78 z M 93.582,135.933 C 95.996,129.724 97.189,117.54 97.189,99.37 C 97.189,83.054 96.007,71.837 93.608,65.682 C 91.21,59.496 87.622,56.153 82.808,55.731 C 82.441,55.7 82.075,55.681 81.724,55.681 C 77.264,55.681 73.84,58.283 71.447,63.508 C 68.863,69.201 67.555,81.003 67.555,98.866 C 67.555,116.129 68.826,128.379 71.388,135.569 C 73.804,142.419 77.423,145.813 82.174,145.813 C 82.384,145.813 82.593,145.805 82.809,145.79 C 87.566,145.489 91.148,142.202 93.582,135.933" />
+
+ <path
+ style="fill:#024c1c"
+ id="path256"
+ d="M 84.708,183.003 C 84.59,182.95 84.477,182.896 84.361,182.839 C 84.349,182.835 84.336,182.829 84.323,182.821 C 84.218,182.77 84.115,182.716 84.011,182.663 C 83.991,182.653 83.971,182.642 83.948,182.63 C 83.854,182.579 83.761,182.528 83.667,182.476 C 83.636,182.46 83.609,182.443 83.579,182.427 C 83.494,182.38 83.412,182.331 83.328,182.284 C 83.286,182.263 83.25,182.239 83.209,182.214 C 83.137,182.171 83.062,182.128 82.994,182.083 C 82.943,182.054 82.897,182.024 82.848,181.993 C 82.785,181.954 82.726,181.915 82.663,181.876 C 82.606,181.837 82.552,181.798 82.492,181.759 C 82.442,181.726 82.392,181.693 82.342,181.659 C 82.272,181.612 82.206,181.563 82.141,181.518 C 82.101,181.489 82.061,181.463 82.021,181.432 C 81.943,181.377 81.866,181.319 81.79,181.26 C 81.764,181.239 81.735,181.221 81.708,181.199 C 81.607,181.121 81.505,181.039 81.402,180.959 C 77.085,177.494 73.899,170.803 71.857,160.906 C 62.48,158.908 55.166,152.943 50.103,142.935 C 44.965,132.767 42.349,117.893 42.349,98.439 C 42.349,77.464 45.927,61.983 52.971,52.167 C 58.912,43.883 67.202,39.81 77.634,39.81 C 77.67,39.81 71.114,39.806 71.114,39.806 L 71.114,39.81 C 60.694,39.818 52.411,43.89 46.476,52.167 C 39.434,61.984 35.855,77.465 35.855,98.439 C 35.855,117.892 38.469,132.767 43.609,142.935 C 48.671,152.943 55.983,158.908 65.361,160.906 C 67.403,170.802 70.588,177.494 74.904,180.959 C 78.168,183.588 82.507,184.887 87.867,184.887 C 87.967,184.887 88.07,184.887 88.17,184.885 L 93.861,184.885 C 90.361,184.828 87.306,184.203 84.716,183.006 C 84.712,183.007 84.708,183.007 84.708,183.003 z M 87.113,65.681 C 89.511,71.837 90.69,83.054 90.69,99.369 C 90.69,117.539 89.502,129.723 87.083,135.932 C 85.142,140.942 82.439,144.047 79.013,145.248 C 79.999,145.621 81.058,145.81 82.173,145.81 C 82.383,145.81 82.592,145.802 82.808,145.787 C 87.567,145.488 91.149,142.201 93.582,135.932 C 95.996,129.723 97.189,117.539 97.189,99.369 C 97.189,83.053 96.007,71.836 93.608,65.681 C 91.21,59.495 87.622,56.152 82.808,55.73 C 82.441,55.699 82.075,55.68 81.724,55.68 C 80.601,55.68 79.549,55.845 78.556,56.173 L 78.556,56.175 L 78.556,56.175 C 82.254,57.322 85.104,60.5 87.113,65.681 z" />
+
+</g>
+ </g>
+</svg>
diff --git a/demos/browser/data/closetab.png b/demos/browser/data/closetab.png
new file mode 100644
index 0000000..ab9d669
--- /dev/null
+++ b/demos/browser/data/closetab.png
Binary files differ
diff --git a/demos/browser/data/data.qrc b/demos/browser/data/data.qrc
new file mode 100644
index 0000000..c7d0294
--- /dev/null
+++ b/demos/browser/data/data.qrc
@@ -0,0 +1,11 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>addtab.png</file>
+ <file>closetab.png</file>
+ <file>history.png</file>
+ <file>browser.svg</file>
+ <file>defaultbookmarks.xbel</file>
+ <file>loading.gif</file>
+ <file>defaulticon.png</file>
+</qresource>
+</RCC>
diff --git a/demos/browser/data/defaultbookmarks.xbel b/demos/browser/data/defaultbookmarks.xbel
new file mode 100644
index 0000000..a168244
--- /dev/null
+++ b/demos/browser/data/defaultbookmarks.xbel
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xbel>
+<xbel version="1.0">
+ <folder folded="yes">
+ <title>Bookmarks Bar</title>
+ <bookmark href="http://qtsoftware.com/">
+ <title>Qt Software</title>
+ </bookmark>
+ <bookmark href="http://webkit.org/">
+ <title>WebKit.org</title>
+ </bookmark>
+ <bookmark href="http://doc.trolltech.com/">
+ <title>Qt Documentation</title>
+ </bookmark>
+ <bookmark href="http://doc.trolltech.com/qq/">
+ <title>Qt Quarterly</title>
+ </bookmark>
+ <bookmark href="http://labs.trolltech.com/">
+ <title>Qt Labs</title>
+ </bookmark>
+ <bookmark href="http://www.qtcentre.org/">
+ <title>Qt Centre</title>
+ </bookmark>
+ <bookmark href="http://qt-apps.org/">
+ <title>Qt-Apps.org</title>
+ </bookmark>
+ <bookmark href="http://qtnode.net/">
+ <title>qtnode</title>
+ </bookmark>
+ <bookmark href="http://xkcd.com/">
+ <title>xkcd</title>
+ </bookmark>
+ </folder>
+ <folder folded="yes">
+ <title>Bookmarks Menu</title>
+ <bookmark href="http://reddit.com/">
+ <title>reddit.com: what's new online!</title>
+ </bookmark>
+ </folder>
+</xbel>
diff --git a/demos/browser/data/defaulticon.png b/demos/browser/data/defaulticon.png
new file mode 100644
index 0000000..01a0920
--- /dev/null
+++ b/demos/browser/data/defaulticon.png
Binary files differ
diff --git a/demos/browser/data/history.png b/demos/browser/data/history.png
new file mode 100644
index 0000000..552a1cb
--- /dev/null
+++ b/demos/browser/data/history.png
Binary files differ
diff --git a/demos/browser/data/loading.gif b/demos/browser/data/loading.gif
new file mode 100644
index 0000000..c1545eb
--- /dev/null
+++ b/demos/browser/data/loading.gif
Binary files differ
diff --git a/demos/browser/downloaditem.ui b/demos/browser/downloaditem.ui
new file mode 100644
index 0000000..4a0a0fd
--- /dev/null
+++ b/demos/browser/downloaditem.ui
@@ -0,0 +1,134 @@
+<ui version="4.0" >
+ <class>DownloadItem</class>
+ <widget class="QWidget" name="DownloadItem" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>423</width>
+ <height>110</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Form</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="fileIcon" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Ico</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_2" >
+ <item>
+ <widget class="SqueezeLabel" native="1" name="fileNameLabel" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" stdset="0" >
+ <string>Filename</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QProgressBar" name="progressBar" >
+ <property name="value" >
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="SqueezeLabel" native="1" name="downloadInfoLabel" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" stdset="0" >
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout" >
+ <item>
+ <spacer name="verticalSpacer" >
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>17</width>
+ <height>1</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="tryAgainButton" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>Try Again</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="stopButton" >
+ <property name="text" >
+ <string>Stop</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="openButton" >
+ <property name="text" >
+ <string>Open</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_2" >
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>17</width>
+ <height>5</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>SqueezeLabel</class>
+ <extends>QWidget</extends>
+ <header>squeezelabel.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/demos/browser/downloadmanager.cpp b/demos/browser/downloadmanager.cpp
new file mode 100644
index 0000000..af31391
--- /dev/null
+++ b/demos/browser/downloadmanager.cpp
@@ -0,0 +1,579 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "downloadmanager.h"
+
+#include "autosaver.h"
+#include "browserapplication.h"
+#include "networkaccessmanager.h"
+
+#include <math.h>
+
+#include <QtCore/QMetaEnum>
+#include <QtCore/QSettings>
+
+#include <QtGui/QDesktopServices>
+#include <QtGui/QFileDialog>
+#include <QtGui/QHeaderView>
+#include <QtGui/QFileIconProvider>
+
+#include <QtCore/QDebug>
+
+#include <QtWebKit/QWebSettings>
+
+/*!
+ DownloadItem is a widget that is displayed in the download manager list.
+ It moves the data from the QNetworkReply into the QFile as well
+ as update the information/progressbar and report errors.
+ */
+DownloadItem::DownloadItem(QNetworkReply *reply, bool requestFileName, QWidget *parent)
+ : QWidget(parent)
+ , m_reply(reply)
+ , m_requestFileName(requestFileName)
+ , m_bytesReceived(0)
+{
+ setupUi(this);
+ QPalette p = downloadInfoLabel->palette();
+ p.setColor(QPalette::Text, Qt::darkGray);
+ downloadInfoLabel->setPalette(p);
+ progressBar->setMaximum(0);
+ tryAgainButton->hide();
+ connect(stopButton, SIGNAL(clicked()), this, SLOT(stop()));
+ connect(openButton, SIGNAL(clicked()), this, SLOT(open()));
+ connect(tryAgainButton, SIGNAL(clicked()), this, SLOT(tryAgain()));
+
+ init();
+}
+
+void DownloadItem::init()
+{
+ if (!m_reply)
+ return;
+
+ // attach to the m_reply
+ m_url = m_reply->url();
+ m_reply->setParent(this);
+ connect(m_reply, SIGNAL(readyRead()), this, SLOT(downloadReadyRead()));
+ connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)),
+ this, SLOT(error(QNetworkReply::NetworkError)));
+ connect(m_reply, SIGNAL(downloadProgress(qint64, qint64)),
+ this, SLOT(downloadProgress(qint64, qint64)));
+ connect(m_reply, SIGNAL(metaDataChanged()),
+ this, SLOT(metaDataChanged()));
+ connect(m_reply, SIGNAL(finished()),
+ this, SLOT(finished()));
+
+ // reset info
+ downloadInfoLabel->clear();
+ progressBar->setValue(0);
+ getFileName();
+
+ // start timer for the download estimation
+ m_downloadTime.start();
+
+ if (m_reply->error() != QNetworkReply::NoError) {
+ error(m_reply->error());
+ finished();
+ }
+}
+
+void DownloadItem::getFileName()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("downloadmanager"));
+ QString defaultLocation = QDesktopServices::storageLocation(QDesktopServices::DesktopLocation);
+ QString downloadDirectory = settings.value(QLatin1String("downloadDirectory"), defaultLocation).toString();
+ if (!downloadDirectory.isEmpty())
+ downloadDirectory += QLatin1Char('/');
+
+ QString defaultFileName = saveFileName(downloadDirectory);
+ QString fileName = defaultFileName;
+ if (m_requestFileName) {
+ fileName = QFileDialog::getSaveFileName(this, tr("Save File"), defaultFileName);
+ if (fileName.isEmpty()) {
+ m_reply->close();
+ fileNameLabel->setText(tr("Download canceled: %1").arg(QFileInfo(defaultFileName).fileName()));
+ return;
+ }
+ }
+ m_output.setFileName(fileName);
+ fileNameLabel->setText(QFileInfo(m_output.fileName()).fileName());
+ if (m_requestFileName)
+ downloadReadyRead();
+}
+
+QString DownloadItem::saveFileName(const QString &directory) const
+{
+ // Move this function into QNetworkReply to also get file name sent from the server
+ QString path = m_url.path();
+ QFileInfo info(path);
+ QString baseName = info.completeBaseName();
+ QString endName = info.suffix();
+
+ if (baseName.isEmpty()) {
+ baseName = QLatin1String("unnamed_download");
+ qDebug() << "DownloadManager:: downloading unknown file:" << m_url;
+ }
+ QString name = directory + baseName + QLatin1Char('.') + endName;
+ if (QFile::exists(name)) {
+ // already exists, don't overwrite
+ int i = 1;
+ do {
+ name = directory + baseName + QLatin1Char('-') + QString::number(i++) + QLatin1Char('.') + endName;
+ } while (QFile::exists(name));
+ }
+ return name;
+}
+
+
+void DownloadItem::stop()
+{
+ setUpdatesEnabled(false);
+ stopButton->setEnabled(false);
+ stopButton->hide();
+ tryAgainButton->setEnabled(true);
+ tryAgainButton->show();
+ setUpdatesEnabled(true);
+ m_reply->abort();
+}
+
+void DownloadItem::open()
+{
+ QFileInfo info(m_output);
+ QUrl url = QUrl::fromLocalFile(info.absolutePath());
+ QDesktopServices::openUrl(url);
+}
+
+void DownloadItem::tryAgain()
+{
+ if (!tryAgainButton->isEnabled())
+ return;
+
+ tryAgainButton->setEnabled(false);
+ tryAgainButton->setVisible(false);
+ stopButton->setEnabled(true);
+ stopButton->setVisible(true);
+ progressBar->setVisible(true);
+
+ QNetworkReply *r = BrowserApplication::networkAccessManager()->get(QNetworkRequest(m_url));
+ if (m_reply)
+ m_reply->deleteLater();
+ if (m_output.exists())
+ m_output.remove();
+ m_reply = r;
+ init();
+ emit statusChanged();
+}
+
+void DownloadItem::downloadReadyRead()
+{
+ if (m_requestFileName && m_output.fileName().isEmpty())
+ return;
+ if (!m_output.isOpen()) {
+ // in case someone else has already put a file there
+ if (!m_requestFileName)
+ getFileName();
+ if (!m_output.open(QIODevice::WriteOnly)) {
+ downloadInfoLabel->setText(tr("Error opening save file: %1")
+ .arg(m_output.errorString()));
+ stopButton->click();
+ emit statusChanged();
+ return;
+ }
+ emit statusChanged();
+ }
+ if (-1 == m_output.write(m_reply->readAll())) {
+ downloadInfoLabel->setText(tr("Error saving: %1")
+ .arg(m_output.errorString()));
+ stopButton->click();
+ }
+}
+
+void DownloadItem::error(QNetworkReply::NetworkError)
+{
+ qDebug() << "DownloadItem::error" << m_reply->errorString() << m_url;
+ downloadInfoLabel->setText(tr("Network Error: %1").arg(m_reply->errorString()));
+ tryAgainButton->setEnabled(true);
+ tryAgainButton->setVisible(true);
+}
+
+void DownloadItem::metaDataChanged()
+{
+ qDebug() << "DownloadItem::metaDataChanged: not handled.";
+}
+
+void DownloadItem::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
+{
+ m_bytesReceived = bytesReceived;
+ if (bytesTotal == -1) {
+ progressBar->setValue(0);
+ progressBar->setMaximum(0);
+ } else {
+ progressBar->setValue(bytesReceived);
+ progressBar->setMaximum(bytesTotal);
+ }
+ updateInfoLabel();
+}
+
+void DownloadItem::updateInfoLabel()
+{
+ if (m_reply->error() == QNetworkReply::NoError)
+ return;
+
+ qint64 bytesTotal = progressBar->maximum();
+ bool running = !downloadedSuccessfully();
+
+ // update info label
+ double speed = m_bytesReceived * 1000.0 / m_downloadTime.elapsed();
+ double timeRemaining = ((double)(bytesTotal - m_bytesReceived)) / speed;
+ QString timeRemainingString = tr("seconds");
+ if (timeRemaining > 60) {
+ timeRemaining = timeRemaining / 60;
+ timeRemainingString = tr("minutes");
+ }
+ timeRemaining = floor(timeRemaining);
+
+ // When downloading the eta should never be 0
+ if (timeRemaining == 0)
+ timeRemaining = 1;
+
+ QString info;
+ if (running) {
+ QString remaining;
+ if (bytesTotal != 0)
+ remaining = tr("- %4 %5 remaining")
+ .arg(timeRemaining)
+ .arg(timeRemainingString);
+ info = QString(tr("%1 of %2 (%3/sec) %4"))
+ .arg(dataString(m_bytesReceived))
+ .arg(bytesTotal == 0 ? tr("?") : dataString(bytesTotal))
+ .arg(dataString((int)speed))
+ .arg(remaining);
+ } else {
+ if (m_bytesReceived == bytesTotal)
+ info = dataString(m_output.size());
+ else
+ info = tr("%1 of %2 - Stopped")
+ .arg(dataString(m_bytesReceived))
+ .arg(dataString(bytesTotal));
+ }
+ downloadInfoLabel->setText(info);
+}
+
+QString DownloadItem::dataString(int size) const
+{
+ QString unit;
+ if (size < 1024) {
+ unit = tr("bytes");
+ } else if (size < 1024*1024) {
+ size /= 1024;
+ unit = tr("kB");
+ } else {
+ size /= 1024*1024;
+ unit = tr("MB");
+ }
+ return QString(QLatin1String("%1 %2")).arg(size).arg(unit);
+}
+
+bool DownloadItem::downloading() const
+{
+ return (progressBar->isVisible());
+}
+
+bool DownloadItem::downloadedSuccessfully() const
+{
+ return (stopButton->isHidden() && tryAgainButton->isHidden());
+}
+
+void DownloadItem::finished()
+{
+ progressBar->hide();
+ stopButton->setEnabled(false);
+ stopButton->hide();
+ m_output.close();
+ updateInfoLabel();
+ emit statusChanged();
+}
+
+/*!
+ DownloadManager is a Dialog that contains a list of DownloadItems
+
+ It is a basic download manager. It only downloads the file, doesn't do BitTorrent,
+ extract zipped files or anything fancy.
+ */
+DownloadManager::DownloadManager(QWidget *parent)
+ : QDialog(parent)
+ , m_autoSaver(new AutoSaver(this))
+ , m_manager(BrowserApplication::networkAccessManager())
+ , m_iconProvider(0)
+ , m_removePolicy(Never)
+{
+ setupUi(this);
+ downloadsView->setShowGrid(false);
+ downloadsView->verticalHeader()->hide();
+ downloadsView->horizontalHeader()->hide();
+ downloadsView->setAlternatingRowColors(true);
+ downloadsView->horizontalHeader()->setStretchLastSection(true);
+ m_model = new DownloadModel(this);
+ downloadsView->setModel(m_model);
+ connect(cleanupButton, SIGNAL(clicked()), this, SLOT(cleanup()));
+ load();
+}
+
+DownloadManager::~DownloadManager()
+{
+ m_autoSaver->changeOccurred();
+ m_autoSaver->saveIfNeccessary();
+ if (m_iconProvider)
+ delete m_iconProvider;
+}
+
+int DownloadManager::activeDownloads() const
+{
+ int count = 0;
+ for (int i = 0; i < m_downloads.count(); ++i) {
+ if (m_downloads.at(i)->stopButton->isEnabled())
+ ++count;
+ }
+ return count;
+}
+
+void DownloadManager::download(const QNetworkRequest &request, bool requestFileName)
+{
+ if (request.url().isEmpty())
+ return;
+ handleUnsupportedContent(m_manager->get(request), requestFileName);
+}
+
+void DownloadManager::handleUnsupportedContent(QNetworkReply *reply, bool requestFileName)
+{
+ if (!reply || reply->url().isEmpty())
+ return;
+ QVariant header = reply->header(QNetworkRequest::ContentLengthHeader);
+ bool ok;
+ int size = header.toInt(&ok);
+ if (ok && size == 0)
+ return;
+
+ qDebug() << "DownloadManager::handleUnsupportedContent" << reply->url() << "requestFileName" << requestFileName;
+ DownloadItem *item = new DownloadItem(reply, requestFileName, this);
+ addItem(item);
+}
+
+void DownloadManager::addItem(DownloadItem *item)
+{
+ connect(item, SIGNAL(statusChanged()), this, SLOT(updateRow()));
+ int row = m_downloads.count();
+ m_model->beginInsertRows(QModelIndex(), row, row);
+ m_downloads.append(item);
+ m_model->endInsertRows();
+ updateItemCount();
+ if (row == 0)
+ show();
+ downloadsView->setIndexWidget(m_model->index(row, 0), item);
+ QIcon icon = style()->standardIcon(QStyle::SP_FileIcon);
+ item->fileIcon->setPixmap(icon.pixmap(48, 48));
+ downloadsView->setRowHeight(row, item->sizeHint().height());
+}
+
+void DownloadManager::updateRow()
+{
+ DownloadItem *item = qobject_cast<DownloadItem*>(sender());
+ int row = m_downloads.indexOf(item);
+ if (-1 == row)
+ return;
+ if (!m_iconProvider)
+ m_iconProvider = new QFileIconProvider();
+ QIcon icon = m_iconProvider->icon(item->m_output.fileName());
+ if (icon.isNull())
+ icon = style()->standardIcon(QStyle::SP_FileIcon);
+ item->fileIcon->setPixmap(icon.pixmap(48, 48));
+ downloadsView->setRowHeight(row, item->minimumSizeHint().height());
+
+ bool remove = false;
+ QWebSettings *globalSettings = QWebSettings::globalSettings();
+ if (!item->downloading()
+ && globalSettings->testAttribute(QWebSettings::PrivateBrowsingEnabled))
+ remove = true;
+
+ if (item->downloadedSuccessfully()
+ && removePolicy() == DownloadManager::SuccessFullDownload) {
+ remove = true;
+ }
+ if (remove)
+ m_model->removeRow(row);
+
+ cleanupButton->setEnabled(m_downloads.count() - activeDownloads() > 0);
+}
+
+DownloadManager::RemovePolicy DownloadManager::removePolicy() const
+{
+ return m_removePolicy;
+}
+
+void DownloadManager::setRemovePolicy(RemovePolicy policy)
+{
+ if (policy == m_removePolicy)
+ return;
+ m_removePolicy = policy;
+ m_autoSaver->changeOccurred();
+}
+
+void DownloadManager::save() const
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("downloadmanager"));
+ QMetaEnum removePolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("RemovePolicy"));
+ settings.setValue(QLatin1String("removeDownloadsPolicy"), QLatin1String(removePolicyEnum.valueToKey(m_removePolicy)));
+ settings.setValue(QLatin1String("size"), size());
+ if (m_removePolicy == Exit)
+ return;
+
+ for (int i = 0; i < m_downloads.count(); ++i) {
+ QString key = QString(QLatin1String("download_%1_")).arg(i);
+ settings.setValue(key + QLatin1String("url"), m_downloads[i]->m_url);
+ settings.setValue(key + QLatin1String("location"), QFileInfo(m_downloads[i]->m_output).filePath());
+ settings.setValue(key + QLatin1String("done"), m_downloads[i]->downloadedSuccessfully());
+ }
+ int i = m_downloads.count();
+ QString key = QString(QLatin1String("download_%1_")).arg(i);
+ while (settings.contains(key + QLatin1String("url"))) {
+ settings.remove(key + QLatin1String("url"));
+ settings.remove(key + QLatin1String("location"));
+ settings.remove(key + QLatin1String("done"));
+ key = QString(QLatin1String("download_%1_")).arg(++i);
+ }
+}
+
+void DownloadManager::load()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("downloadmanager"));
+ QSize size = settings.value(QLatin1String("size")).toSize();
+ if (size.isValid())
+ resize(size);
+ QByteArray value = settings.value(QLatin1String("removeDownloadsPolicy"), QLatin1String("Never")).toByteArray();
+ QMetaEnum removePolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("RemovePolicy"));
+ m_removePolicy = removePolicyEnum.keyToValue(value) == -1 ?
+ Never :
+ static_cast<RemovePolicy>(removePolicyEnum.keyToValue(value));
+
+ int i = 0;
+ QString key = QString(QLatin1String("download_%1_")).arg(i);
+ while (settings.contains(key + QLatin1String("url"))) {
+ QUrl url = settings.value(key + QLatin1String("url")).toUrl();
+ QString fileName = settings.value(key + QLatin1String("location")).toString();
+ bool done = settings.value(key + QLatin1String("done"), true).toBool();
+ if (!url.isEmpty() && !fileName.isEmpty()) {
+ DownloadItem *item = new DownloadItem(0, this);
+ item->m_output.setFileName(fileName);
+ item->fileNameLabel->setText(QFileInfo(item->m_output.fileName()).fileName());
+ item->m_url = url;
+ item->stopButton->setVisible(false);
+ item->stopButton->setEnabled(false);
+ item->tryAgainButton->setVisible(!done);
+ item->tryAgainButton->setEnabled(!done);
+ item->progressBar->setVisible(!done);
+ addItem(item);
+ }
+ key = QString(QLatin1String("download_%1_")).arg(++i);
+ }
+ cleanupButton->setEnabled(m_downloads.count() - activeDownloads() > 0);
+}
+
+void DownloadManager::cleanup()
+{
+ if (m_downloads.isEmpty())
+ return;
+ m_model->removeRows(0, m_downloads.count());
+ updateItemCount();
+ if (m_downloads.isEmpty() && m_iconProvider) {
+ delete m_iconProvider;
+ m_iconProvider = 0;
+ }
+ m_autoSaver->changeOccurred();
+}
+
+void DownloadManager::updateItemCount()
+{
+ int count = m_downloads.count();
+ itemCount->setText(count == 1 ? tr("1 Download") : tr("%1 Downloads").arg(count));
+}
+
+DownloadModel::DownloadModel(DownloadManager *downloadManager, QObject *parent)
+ : QAbstractListModel(parent)
+ , m_downloadManager(downloadManager)
+{
+}
+
+QVariant DownloadModel::data(const QModelIndex &index, int role) const
+{
+ if (index.row() < 0 || index.row() >= rowCount(index.parent()))
+ return QVariant();
+ if (role == Qt::ToolTipRole)
+ if (!m_downloadManager->m_downloads.at(index.row())->downloadedSuccessfully())
+ return m_downloadManager->m_downloads.at(index.row())->downloadInfoLabel->text();
+ return QVariant();
+}
+
+int DownloadModel::rowCount(const QModelIndex &parent) const
+{
+ return (parent.isValid()) ? 0 : m_downloadManager->m_downloads.count();
+}
+
+bool DownloadModel::removeRows(int row, int count, const QModelIndex &parent)
+{
+ if (parent.isValid())
+ return false;
+
+ int lastRow = row + count - 1;
+ for (int i = lastRow; i >= row; --i) {
+ if (m_downloadManager->m_downloads.at(i)->downloadedSuccessfully()
+ || m_downloadManager->m_downloads.at(i)->tryAgainButton->isEnabled()) {
+ beginRemoveRows(parent, i, i);
+ m_downloadManager->m_downloads.takeAt(i)->deleteLater();
+ endRemoveRows();
+ }
+ }
+ m_downloadManager->m_autoSaver->changeOccurred();
+ return true;
+}
+
diff --git a/demos/browser/downloadmanager.h b/demos/browser/downloadmanager.h
new file mode 100644
index 0000000..85318da
--- /dev/null
+++ b/demos/browser/downloadmanager.h
@@ -0,0 +1,162 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DOWNLOADMANAGER_H
+#define DOWNLOADMANAGER_H
+
+#include "ui_downloads.h"
+#include "ui_downloaditem.h"
+
+#include <QtNetwork/QNetworkReply>
+
+#include <QtCore/QFile>
+#include <QtCore/QTime>
+
+class DownloadItem : public QWidget, public Ui_DownloadItem
+{
+ Q_OBJECT
+
+signals:
+ void statusChanged();
+
+public:
+ DownloadItem(QNetworkReply *reply = 0, bool requestFileName = false, QWidget *parent = 0);
+ bool downloading() const;
+ bool downloadedSuccessfully() const;
+
+ QUrl m_url;
+
+ QFile m_output;
+ QNetworkReply *m_reply;
+
+private slots:
+ void stop();
+ void tryAgain();
+ void open();
+
+ void downloadReadyRead();
+ void error(QNetworkReply::NetworkError code);
+ void downloadProgress(qint64 bytesReceived, qint64 bytesTotal);
+ void metaDataChanged();
+ void finished();
+
+private:
+ void getFileName();
+ void init();
+ void updateInfoLabel();
+ QString dataString(int size) const;
+
+ QString saveFileName(const QString &directory) const;
+
+ bool m_requestFileName;
+ qint64 m_bytesReceived;
+ QTime m_downloadTime;
+};
+
+class AutoSaver;
+class DownloadModel;
+QT_BEGIN_NAMESPACE
+class QFileIconProvider;
+QT_END_NAMESPACE
+
+class DownloadManager : public QDialog, public Ui_DownloadDialog
+{
+ Q_OBJECT
+ Q_PROPERTY(RemovePolicy removePolicy READ removePolicy WRITE setRemovePolicy)
+ Q_ENUMS(RemovePolicy)
+
+public:
+ enum RemovePolicy {
+ Never,
+ Exit,
+ SuccessFullDownload
+ };
+
+ DownloadManager(QWidget *parent = 0);
+ ~DownloadManager();
+ int activeDownloads() const;
+
+ RemovePolicy removePolicy() const;
+ void setRemovePolicy(RemovePolicy policy);
+
+public slots:
+ void download(const QNetworkRequest &request, bool requestFileName = false);
+ inline void download(const QUrl &url, bool requestFileName = false)
+ { download(QNetworkRequest(url), requestFileName); }
+ void handleUnsupportedContent(QNetworkReply *reply, bool requestFileName = false);
+ void cleanup();
+
+private slots:
+ void save() const;
+ void updateRow();
+
+private:
+ void addItem(DownloadItem *item);
+ void updateItemCount();
+ void load();
+
+ AutoSaver *m_autoSaver;
+ DownloadModel *m_model;
+ QNetworkAccessManager *m_manager;
+ QFileIconProvider *m_iconProvider;
+ QList<DownloadItem*> m_downloads;
+ RemovePolicy m_removePolicy;
+ friend class DownloadModel;
+};
+
+class DownloadModel : public QAbstractListModel
+{
+ friend class DownloadManager;
+ Q_OBJECT
+
+public:
+ DownloadModel(DownloadManager *downloadManager, QObject *parent = 0);
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+
+private:
+ DownloadManager *m_downloadManager;
+
+};
+
+#endif // DOWNLOADMANAGER_H
+
diff --git a/demos/browser/downloads.ui b/demos/browser/downloads.ui
new file mode 100644
index 0000000..a2e2569
--- /dev/null
+++ b/demos/browser/downloads.ui
@@ -0,0 +1,83 @@
+<ui version="4.0" >
+ <class>DownloadDialog</class>
+ <widget class="QDialog" name="DownloadDialog" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>332</width>
+ <height>252</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Downloads</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>0</number>
+ </property>
+ <item row="0" column="0" colspan="3" >
+ <widget class="EditTableView" name="downloadsView" />
+ </item>
+ <item row="1" column="0" >
+ <layout class="QHBoxLayout" name="horizontalLayout" >
+ <item>
+ <widget class="QPushButton" name="cleanupButton" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>Clean up</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>58</width>
+ <height>24</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="itemCount" >
+ <property name="text" >
+ <string>0 Items</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <spacer name="horizontalSpacer" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>148</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>EditTableView</class>
+ <extends>QTableView</extends>
+ <header>edittableview.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/demos/browser/edittableview.cpp b/demos/browser/edittableview.cpp
new file mode 100644
index 0000000..0d776a7
--- /dev/null
+++ b/demos/browser/edittableview.cpp
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "edittableview.h"
+#include <QtGui/QKeyEvent>
+
+EditTableView::EditTableView(QWidget *parent)
+ : QTableView(parent)
+{
+}
+
+void EditTableView::keyPressEvent(QKeyEvent *event)
+{
+ if ((event->key() == Qt::Key_Delete
+ || event->key() == Qt::Key_Backspace)
+ && model()) {
+ removeOne();
+ } else {
+ QAbstractItemView::keyPressEvent(event);
+ }
+}
+
+void EditTableView::removeOne()
+{
+ if (!model() || !selectionModel())
+ return;
+ int row = currentIndex().row();
+ model()->removeRow(row, rootIndex());
+ QModelIndex idx = model()->index(row, 0, rootIndex());
+ if (!idx.isValid())
+ idx = model()->index(row - 1, 0, rootIndex());
+ selectionModel()->select(idx, QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
+}
+
+void EditTableView::removeAll()
+{
+ if (model())
+ model()->removeRows(0, model()->rowCount(rootIndex()), rootIndex());
+}
+
diff --git a/demos/browser/edittableview.h b/demos/browser/edittableview.h
new file mode 100644
index 0000000..3ae63e0
--- /dev/null
+++ b/demos/browser/edittableview.h
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef EDITTABLEVIEW_H
+#define EDITTABLEVIEW_H
+
+#include <QtGui/QTableView>
+
+class EditTableView : public QTableView
+{
+ Q_OBJECT
+
+public:
+ EditTableView(QWidget *parent = 0);
+ void keyPressEvent(QKeyEvent *event);
+
+public slots:
+ void removeOne();
+ void removeAll();
+};
+
+#endif // EDITTABLEVIEW_H
+
diff --git a/demos/browser/edittreeview.cpp b/demos/browser/edittreeview.cpp
new file mode 100644
index 0000000..0331ba7
--- /dev/null
+++ b/demos/browser/edittreeview.cpp
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "edittreeview.h"
+
+#include <QtGui/QKeyEvent>
+
+EditTreeView::EditTreeView(QWidget *parent)
+ : QTreeView(parent)
+{
+}
+
+void EditTreeView::keyPressEvent(QKeyEvent *event)
+{
+ if ((event->key() == Qt::Key_Delete
+ || event->key() == Qt::Key_Backspace)
+ && model()) {
+ removeOne();
+ } else {
+ QAbstractItemView::keyPressEvent(event);
+ }
+}
+
+void EditTreeView::removeOne()
+{
+ if (!model())
+ return;
+ QModelIndex ci = currentIndex();
+ int row = ci.row();
+ model()->removeRow(row, ci.parent());
+}
+
+void EditTreeView::removeAll()
+{
+ if (!model())
+ return;
+ model()->removeRows(0, model()->rowCount(rootIndex()), rootIndex());
+}
+
diff --git a/demos/browser/edittreeview.h b/demos/browser/edittreeview.h
new file mode 100644
index 0000000..97b9804
--- /dev/null
+++ b/demos/browser/edittreeview.h
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef EDITTREEVIEW_H
+#define EDITTREEVIEW_H
+
+#include <QtGui/QTreeView>
+
+class EditTreeView : public QTreeView
+{
+ Q_OBJECT
+
+public:
+ EditTreeView(QWidget *parent = 0);
+ void keyPressEvent(QKeyEvent *event);
+
+public slots:
+ void removeOne();
+ void removeAll();
+};
+
+#endif // EDITTREEVIEW_H
+
diff --git a/demos/browser/history.cpp b/demos/browser/history.cpp
new file mode 100644
index 0000000..80e7372
--- /dev/null
+++ b/demos/browser/history.cpp
@@ -0,0 +1,1282 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "history.h"
+
+#include "autosaver.h"
+#include "browserapplication.h"
+
+#include <QtCore/QBuffer>
+#include <QtCore/QDir>
+#include <QtCore/QFile>
+#include <QtCore/QFileInfo>
+#include <QtCore/QSettings>
+#include <QtCore/QTemporaryFile>
+#include <QtCore/QTextStream>
+
+#include <QtCore/QtAlgorithms>
+
+#include <QtGui/QClipboard>
+#include <QtGui/QDesktopServices>
+#include <QtGui/QHeaderView>
+#include <QtGui/QStyle>
+
+#include <QtWebKit/QWebHistoryInterface>
+#include <QtWebKit/QWebSettings>
+
+#include <QtCore/QDebug>
+
+static const unsigned int HISTORY_VERSION = 23;
+
+HistoryManager::HistoryManager(QObject *parent)
+ : QWebHistoryInterface(parent)
+ , m_saveTimer(new AutoSaver(this))
+ , m_historyLimit(30)
+ , m_historyModel(0)
+ , m_historyFilterModel(0)
+ , m_historyTreeModel(0)
+{
+ m_expiredTimer.setSingleShot(true);
+ connect(&m_expiredTimer, SIGNAL(timeout()),
+ this, SLOT(checkForExpired()));
+ connect(this, SIGNAL(entryAdded(const HistoryItem &)),
+ m_saveTimer, SLOT(changeOccurred()));
+ connect(this, SIGNAL(entryRemoved(const HistoryItem &)),
+ m_saveTimer, SLOT(changeOccurred()));
+ load();
+
+ m_historyModel = new HistoryModel(this, this);
+ m_historyFilterModel = new HistoryFilterModel(m_historyModel, this);
+ m_historyTreeModel = new HistoryTreeModel(m_historyFilterModel, this);
+
+ // QWebHistoryInterface will delete the history manager
+ QWebHistoryInterface::setDefaultInterface(this);
+}
+
+HistoryManager::~HistoryManager()
+{
+ m_saveTimer->saveIfNeccessary();
+}
+
+QList<HistoryItem> HistoryManager::history() const
+{
+ return m_history;
+}
+
+bool HistoryManager::historyContains(const QString &url) const
+{
+ return m_historyFilterModel->historyContains(url);
+}
+
+void HistoryManager::addHistoryEntry(const QString &url)
+{
+ QUrl cleanUrl(url);
+ cleanUrl.setPassword(QString());
+ cleanUrl.setHost(cleanUrl.host().toLower());
+ HistoryItem item(cleanUrl.toString(), QDateTime::currentDateTime());
+ addHistoryItem(item);
+}
+
+void HistoryManager::setHistory(const QList<HistoryItem> &history, bool loadedAndSorted)
+{
+ m_history = history;
+
+ // verify that it is sorted by date
+ if (!loadedAndSorted)
+ qSort(m_history.begin(), m_history.end());
+
+ checkForExpired();
+
+ if (loadedAndSorted) {
+ m_lastSavedUrl = m_history.value(0).url;
+ } else {
+ m_lastSavedUrl = QString();
+ m_saveTimer->changeOccurred();
+ }
+ emit historyReset();
+}
+
+HistoryModel *HistoryManager::historyModel() const
+{
+ return m_historyModel;
+}
+
+HistoryFilterModel *HistoryManager::historyFilterModel() const
+{
+ return m_historyFilterModel;
+}
+
+HistoryTreeModel *HistoryManager::historyTreeModel() const
+{
+ return m_historyTreeModel;
+}
+
+void HistoryManager::checkForExpired()
+{
+ if (m_historyLimit < 0 || m_history.isEmpty())
+ return;
+
+ QDateTime now = QDateTime::currentDateTime();
+ int nextTimeout = 0;
+
+ while (!m_history.isEmpty()) {
+ QDateTime checkForExpired = m_history.last().dateTime;
+ checkForExpired.setDate(checkForExpired.date().addDays(m_historyLimit));
+ if (now.daysTo(checkForExpired) > 7) {
+ // check at most in a week to prevent int overflows on the timer
+ nextTimeout = 7 * 86400;
+ } else {
+ nextTimeout = now.secsTo(checkForExpired);
+ }
+ if (nextTimeout > 0)
+ break;
+ HistoryItem item = m_history.takeLast();
+ // remove from saved file also
+ m_lastSavedUrl = QString();
+ emit entryRemoved(item);
+ }
+
+ if (nextTimeout > 0)
+ m_expiredTimer.start(nextTimeout * 1000);
+}
+
+void HistoryManager::addHistoryItem(const HistoryItem &item)
+{
+ QWebSettings *globalSettings = QWebSettings::globalSettings();
+ if (globalSettings->testAttribute(QWebSettings::PrivateBrowsingEnabled))
+ return;
+
+ m_history.prepend(item);
+ emit entryAdded(item);
+ if (m_history.count() == 1)
+ checkForExpired();
+}
+
+void HistoryManager::updateHistoryItem(const QUrl &url, const QString &title)
+{
+ for (int i = 0; i < m_history.count(); ++i) {
+ if (url == m_history.at(i).url) {
+ m_history[i].title = title;
+ m_saveTimer->changeOccurred();
+ if (m_lastSavedUrl.isEmpty())
+ m_lastSavedUrl = m_history.at(i).url;
+ emit entryUpdated(i);
+ break;
+ }
+ }
+}
+
+int HistoryManager::historyLimit() const
+{
+ return m_historyLimit;
+}
+
+void HistoryManager::setHistoryLimit(int limit)
+{
+ if (m_historyLimit == limit)
+ return;
+ m_historyLimit = limit;
+ checkForExpired();
+ m_saveTimer->changeOccurred();
+}
+
+void HistoryManager::clear()
+{
+ m_history.clear();
+ m_lastSavedUrl = QString();
+ m_saveTimer->changeOccurred();
+ m_saveTimer->saveIfNeccessary();
+ historyReset();
+}
+
+void HistoryManager::loadSettings()
+{
+ // load settings
+ QSettings settings;
+ settings.beginGroup(QLatin1String("history"));
+ m_historyLimit = settings.value(QLatin1String("historyLimit"), 30).toInt();
+}
+
+void HistoryManager::load()
+{
+ loadSettings();
+
+ QFile historyFile(QDesktopServices::storageLocation(QDesktopServices::DataLocation)
+ + QLatin1String("/history"));
+ if (!historyFile.exists())
+ return;
+ if (!historyFile.open(QFile::ReadOnly)) {
+ qWarning() << "Unable to open history file" << historyFile.fileName();
+ return;
+ }
+
+ QList<HistoryItem> list;
+ QDataStream in(&historyFile);
+ // Double check that the history file is sorted as it is read in
+ bool needToSort = false;
+ HistoryItem lastInsertedItem;
+ QByteArray data;
+ QDataStream stream;
+ QBuffer buffer;
+ stream.setDevice(&buffer);
+ while (!historyFile.atEnd()) {
+ in >> data;
+ buffer.close();
+ buffer.setBuffer(&data);
+ buffer.open(QIODevice::ReadOnly);
+ quint32 ver;
+ stream >> ver;
+ if (ver != HISTORY_VERSION)
+ continue;
+ HistoryItem item;
+ stream >> item.url;
+ stream >> item.dateTime;
+ stream >> item.title;
+
+ if (!item.dateTime.isValid())
+ continue;
+
+ if (item == lastInsertedItem) {
+ if (lastInsertedItem.title.isEmpty() && !list.isEmpty())
+ list[0].title = item.title;
+ continue;
+ }
+
+ if (!needToSort && !list.isEmpty() && lastInsertedItem < item)
+ needToSort = true;
+
+ list.prepend(item);
+ lastInsertedItem = item;
+ }
+ if (needToSort)
+ qSort(list.begin(), list.end());
+
+ setHistory(list, true);
+
+ // If we had to sort re-write the whole history sorted
+ if (needToSort) {
+ m_lastSavedUrl = QString();
+ m_saveTimer->changeOccurred();
+ }
+}
+
+void HistoryManager::save()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("history"));
+ settings.setValue(QLatin1String("historyLimit"), m_historyLimit);
+
+ bool saveAll = m_lastSavedUrl.isEmpty();
+ int first = m_history.count() - 1;
+ if (!saveAll) {
+ // find the first one to save
+ for (int i = 0; i < m_history.count(); ++i) {
+ if (m_history.at(i).url == m_lastSavedUrl) {
+ first = i - 1;
+ break;
+ }
+ }
+ }
+ if (first == m_history.count() - 1)
+ saveAll = true;
+
+ QString directory = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
+ if (directory.isEmpty())
+ directory = QDir::homePath() + QLatin1String("/.") + QCoreApplication::applicationName();
+ if (!QFile::exists(directory)) {
+ QDir dir;
+ dir.mkpath(directory);
+ }
+
+ QFile historyFile(directory + QLatin1String("/history"));
+ // When saving everything use a temporary file to prevent possible data loss.
+ QTemporaryFile tempFile;
+ tempFile.setAutoRemove(false);
+ bool open = false;
+ if (saveAll) {
+ open = tempFile.open();
+ } else {
+ open = historyFile.open(QFile::Append);
+ }
+
+ if (!open) {
+ qWarning() << "Unable to open history file for saving"
+ << (saveAll ? tempFile.fileName() : historyFile.fileName());
+ return;
+ }
+
+ QDataStream out(saveAll ? &tempFile : &historyFile);
+ for (int i = first; i >= 0; --i) {
+ QByteArray data;
+ QDataStream stream(&data, QIODevice::WriteOnly);
+ HistoryItem item = m_history.at(i);
+ stream << HISTORY_VERSION << item.url << item.dateTime << item.title;
+ out << data;
+ }
+ tempFile.close();
+
+ if (saveAll) {
+ if (historyFile.exists() && !historyFile.remove())
+ qWarning() << "History: error removing old history." << historyFile.errorString();
+ if (!tempFile.rename(historyFile.fileName()))
+ qWarning() << "History: error moving new history over old." << tempFile.errorString() << historyFile.fileName();
+ }
+ m_lastSavedUrl = m_history.value(0).url;
+}
+
+HistoryModel::HistoryModel(HistoryManager *history, QObject *parent)
+ : QAbstractTableModel(parent)
+ , m_history(history)
+{
+ Q_ASSERT(m_history);
+ connect(m_history, SIGNAL(historyReset()),
+ this, SLOT(historyReset()));
+ connect(m_history, SIGNAL(entryRemoved(const HistoryItem &)),
+ this, SLOT(historyReset()));
+
+ connect(m_history, SIGNAL(entryAdded(const HistoryItem &)),
+ this, SLOT(entryAdded()));
+ connect(m_history, SIGNAL(entryUpdated(int)),
+ this, SLOT(entryUpdated(int)));
+}
+
+void HistoryModel::historyReset()
+{
+ reset();
+}
+
+void HistoryModel::entryAdded()
+{
+ beginInsertRows(QModelIndex(), 0, 0);
+ endInsertRows();
+}
+
+void HistoryModel::entryUpdated(int offset)
+{
+ QModelIndex idx = index(offset, 0);
+ emit dataChanged(idx, idx);
+}
+
+QVariant HistoryModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ if (orientation == Qt::Horizontal
+ && role == Qt::DisplayRole) {
+ switch (section) {
+ case 0: return tr("Title");
+ case 1: return tr("Address");
+ }
+ }
+ return QAbstractTableModel::headerData(section, orientation, role);
+}
+
+QVariant HistoryModel::data(const QModelIndex &index, int role) const
+{
+ QList<HistoryItem> lst = m_history->history();
+ if (index.row() < 0 || index.row() >= lst.size())
+ return QVariant();
+
+ const HistoryItem &item = lst.at(index.row());
+ switch (role) {
+ case DateTimeRole:
+ return item.dateTime;
+ case DateRole:
+ return item.dateTime.date();
+ case UrlRole:
+ return QUrl(item.url);
+ case UrlStringRole:
+ return item.url;
+ case Qt::DisplayRole:
+ case Qt::EditRole: {
+ switch (index.column()) {
+ case 0:
+ // when there is no title try to generate one from the url
+ if (item.title.isEmpty()) {
+ QString page = QFileInfo(QUrl(item.url).path()).fileName();
+ if (!page.isEmpty())
+ return page;
+ return item.url;
+ }
+ return item.title;
+ case 1:
+ return item.url;
+ }
+ }
+ case Qt::DecorationRole:
+ if (index.column() == 0) {
+ return BrowserApplication::instance()->icon(item.url);
+ }
+ }
+ return QVariant();
+}
+
+int HistoryModel::columnCount(const QModelIndex &parent) const
+{
+ return (parent.isValid()) ? 0 : 2;
+}
+
+int HistoryModel::rowCount(const QModelIndex &parent) const
+{
+ return (parent.isValid()) ? 0 : m_history->history().count();
+}
+
+bool HistoryModel::removeRows(int row, int count, const QModelIndex &parent)
+{
+ if (parent.isValid())
+ return false;
+ int lastRow = row + count - 1;
+ beginRemoveRows(parent, row, lastRow);
+ QList<HistoryItem> lst = m_history->history();
+ for (int i = lastRow; i >= row; --i)
+ lst.removeAt(i);
+ disconnect(m_history, SIGNAL(historyReset()), this, SLOT(historyReset()));
+ m_history->setHistory(lst);
+ connect(m_history, SIGNAL(historyReset()), this, SLOT(historyReset()));
+ endRemoveRows();
+ return true;
+}
+
+#define MOVEDROWS 15
+
+/*
+ Maps the first bunch of items of the source model to the root
+*/
+HistoryMenuModel::HistoryMenuModel(HistoryTreeModel *sourceModel, QObject *parent)
+ : QAbstractProxyModel(parent)
+ , m_treeModel(sourceModel)
+{
+ setSourceModel(sourceModel);
+}
+
+int HistoryMenuModel::bumpedRows() const
+{
+ QModelIndex first = m_treeModel->index(0, 0);
+ if (!first.isValid())
+ return 0;
+ return qMin(m_treeModel->rowCount(first), MOVEDROWS);
+}
+
+int HistoryMenuModel::columnCount(const QModelIndex &parent) const
+{
+ return m_treeModel->columnCount(mapToSource(parent));
+}
+
+int HistoryMenuModel::rowCount(const QModelIndex &parent) const
+{
+ if (parent.column() > 0)
+ return 0;
+
+ if (!parent.isValid()) {
+ int folders = sourceModel()->rowCount();
+ int bumpedItems = bumpedRows();
+ if (bumpedItems <= MOVEDROWS
+ && bumpedItems == sourceModel()->rowCount(sourceModel()->index(0, 0)))
+ --folders;
+ return bumpedItems + folders;
+ }
+
+ if (parent.internalId() == -1) {
+ if (parent.row() < bumpedRows())
+ return 0;
+ }
+
+ QModelIndex idx = mapToSource(parent);
+ int defaultCount = sourceModel()->rowCount(idx);
+ if (idx == sourceModel()->index(0, 0))
+ return defaultCount - bumpedRows();
+ return defaultCount;
+}
+
+QModelIndex HistoryMenuModel::mapFromSource(const QModelIndex &sourceIndex) const
+{
+ // currently not used or autotested
+ Q_ASSERT(false);
+ int sr = m_treeModel->mapToSource(sourceIndex).row();
+ return createIndex(sourceIndex.row(), sourceIndex.column(), sr);
+}
+
+QModelIndex HistoryMenuModel::mapToSource(const QModelIndex &proxyIndex) const
+{
+ if (!proxyIndex.isValid())
+ return QModelIndex();
+
+ if (proxyIndex.internalId() == -1) {
+ int bumpedItems = bumpedRows();
+ if (proxyIndex.row() < bumpedItems)
+ return m_treeModel->index(proxyIndex.row(), proxyIndex.column(), m_treeModel->index(0, 0));
+ if (bumpedItems <= MOVEDROWS && bumpedItems == sourceModel()->rowCount(m_treeModel->index(0, 0)))
+ --bumpedItems;
+ return m_treeModel->index(proxyIndex.row() - bumpedItems, proxyIndex.column());
+ }
+
+ QModelIndex historyIndex = m_treeModel->sourceModel()->index(proxyIndex.internalId(), proxyIndex.column());
+ QModelIndex treeIndex = m_treeModel->mapFromSource(historyIndex);
+ return treeIndex;
+}
+
+QModelIndex HistoryMenuModel::index(int row, int column, const QModelIndex &parent) const
+{
+ if (row < 0
+ || column < 0 || column >= columnCount(parent)
+ || parent.column() > 0)
+ return QModelIndex();
+ if (!parent.isValid())
+ return createIndex(row, column, -1);
+
+ QModelIndex treeIndexParent = mapToSource(parent);
+
+ int bumpedItems = 0;
+ if (treeIndexParent == m_treeModel->index(0, 0))
+ bumpedItems = bumpedRows();
+ QModelIndex treeIndex = m_treeModel->index(row + bumpedItems, column, treeIndexParent);
+ QModelIndex historyIndex = m_treeModel->mapToSource(treeIndex);
+ int historyRow = historyIndex.row();
+ if (historyRow == -1)
+ historyRow = treeIndex.row();
+ return createIndex(row, column, historyRow);
+}
+
+QModelIndex HistoryMenuModel::parent(const QModelIndex &index) const
+{
+ int offset = index.internalId();
+ if (offset == -1 || !index.isValid())
+ return QModelIndex();
+
+ QModelIndex historyIndex = m_treeModel->sourceModel()->index(index.internalId(), 0);
+ QModelIndex treeIndex = m_treeModel->mapFromSource(historyIndex);
+ QModelIndex treeIndexParent = treeIndex.parent();
+
+ int sr = m_treeModel->mapToSource(treeIndexParent).row();
+ int bumpedItems = bumpedRows();
+ if (bumpedItems <= MOVEDROWS && bumpedItems == sourceModel()->rowCount(sourceModel()->index(0, 0)))
+ --bumpedItems;
+ return createIndex(bumpedItems + treeIndexParent.row(), treeIndexParent.column(), sr);
+}
+
+
+HistoryMenu::HistoryMenu(QWidget *parent)
+ : ModelMenu(parent)
+ , m_history(0)
+{
+ connect(this, SIGNAL(activated(const QModelIndex &)),
+ this, SLOT(activated(const QModelIndex &)));
+ setHoverRole(HistoryModel::UrlStringRole);
+}
+
+void HistoryMenu::activated(const QModelIndex &index)
+{
+ emit openUrl(index.data(HistoryModel::UrlRole).toUrl());
+}
+
+bool HistoryMenu::prePopulated()
+{
+ if (!m_history) {
+ m_history = BrowserApplication::historyManager();
+ m_historyMenuModel = new HistoryMenuModel(m_history->historyTreeModel(), this);
+ setModel(m_historyMenuModel);
+ }
+ // initial actions
+ for (int i = 0; i < m_initialActions.count(); ++i)
+ addAction(m_initialActions.at(i));
+ if (!m_initialActions.isEmpty())
+ addSeparator();
+ setFirstSeparator(m_historyMenuModel->bumpedRows());
+
+ return false;
+}
+
+void HistoryMenu::postPopulated()
+{
+ if (m_history->history().count() > 0)
+ addSeparator();
+
+ QAction *showAllAction = new QAction(tr("Show All History"), this);
+ connect(showAllAction, SIGNAL(triggered()), this, SLOT(showHistoryDialog()));
+ addAction(showAllAction);
+
+ QAction *clearAction = new QAction(tr("Clear History"), this);
+ connect(clearAction, SIGNAL(triggered()), m_history, SLOT(clear()));
+ addAction(clearAction);
+}
+
+void HistoryMenu::showHistoryDialog()
+{
+ HistoryDialog *dialog = new HistoryDialog(this);
+ connect(dialog, SIGNAL(openUrl(const QUrl&)),
+ this, SIGNAL(openUrl(const QUrl&)));
+ dialog->show();
+}
+
+void HistoryMenu::setInitialActions(QList<QAction*> actions)
+{
+ m_initialActions = actions;
+ for (int i = 0; i < m_initialActions.count(); ++i)
+ addAction(m_initialActions.at(i));
+}
+
+TreeProxyModel::TreeProxyModel(QObject *parent) : QSortFilterProxyModel(parent)
+{
+ setSortRole(HistoryModel::DateTimeRole);
+ setFilterCaseSensitivity(Qt::CaseInsensitive);
+}
+
+bool TreeProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
+{
+ if (!source_parent.isValid())
+ return true;
+ return QSortFilterProxyModel::filterAcceptsRow(source_row, source_parent);
+}
+
+HistoryDialog::HistoryDialog(QWidget *parent, HistoryManager *setHistory) : QDialog(parent)
+{
+ HistoryManager *history = setHistory;
+ if (!history)
+ history = BrowserApplication::historyManager();
+ setupUi(this);
+ tree->setUniformRowHeights(true);
+ tree->setSelectionBehavior(QAbstractItemView::SelectRows);
+ tree->setTextElideMode(Qt::ElideMiddle);
+ QAbstractItemModel *model = history->historyTreeModel();
+ TreeProxyModel *proxyModel = new TreeProxyModel(this);
+ connect(search, SIGNAL(textChanged(QString)),
+ proxyModel, SLOT(setFilterFixedString(QString)));
+ connect(removeButton, SIGNAL(clicked()), tree, SLOT(removeOne()));
+ connect(removeAllButton, SIGNAL(clicked()), history, SLOT(clear()));
+ proxyModel->setSourceModel(model);
+ tree->setModel(proxyModel);
+ tree->setExpanded(proxyModel->index(0, 0), true);
+ tree->setAlternatingRowColors(true);
+ QFontMetrics fm(font());
+ int header = fm.width(QLatin1Char('m')) * 40;
+ tree->header()->resizeSection(0, header);
+ tree->header()->setStretchLastSection(true);
+ connect(tree, SIGNAL(activated(const QModelIndex&)),
+ this, SLOT(open()));
+ tree->setContextMenuPolicy(Qt::CustomContextMenu);
+ connect(tree, SIGNAL(customContextMenuRequested(const QPoint &)),
+ this, SLOT(customContextMenuRequested(const QPoint &)));
+}
+
+void HistoryDialog::customContextMenuRequested(const QPoint &pos)
+{
+ QMenu menu;
+ QModelIndex index = tree->indexAt(pos);
+ index = index.sibling(index.row(), 0);
+ if (index.isValid() && !tree->model()->hasChildren(index)) {
+ menu.addAction(tr("Open"), this, SLOT(open()));
+ menu.addSeparator();
+ menu.addAction(tr("Copy"), this, SLOT(copy()));
+ }
+ menu.addAction(tr("Delete"), tree, SLOT(removeOne()));
+ menu.exec(QCursor::pos());
+}
+
+void HistoryDialog::open()
+{
+ QModelIndex index = tree->currentIndex();
+ if (!index.parent().isValid())
+ return;
+ emit openUrl(index.data(HistoryModel::UrlRole).toUrl());
+}
+
+void HistoryDialog::copy()
+{
+ QModelIndex index = tree->currentIndex();
+ if (!index.parent().isValid())
+ return;
+ QString url = index.data(HistoryModel::UrlStringRole).toString();
+
+ QClipboard *clipboard = QApplication::clipboard();
+ clipboard->setText(url);
+}
+
+HistoryFilterModel::HistoryFilterModel(QAbstractItemModel *sourceModel, QObject *parent)
+ : QAbstractProxyModel(parent),
+ m_loaded(false)
+{
+ setSourceModel(sourceModel);
+}
+
+int HistoryFilterModel::historyLocation(const QString &url) const
+{
+ load();
+ if (!m_historyHash.contains(url))
+ return 0;
+ return sourceModel()->rowCount() - m_historyHash.value(url);
+}
+
+QVariant HistoryFilterModel::data(const QModelIndex &index, int role) const
+{
+ return QAbstractProxyModel::data(index, role);
+}
+
+void HistoryFilterModel::setSourceModel(QAbstractItemModel *newSourceModel)
+{
+ if (sourceModel()) {
+ disconnect(sourceModel(), SIGNAL(modelReset()), this, SLOT(sourceReset()));
+ disconnect(sourceModel(), SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)),
+ this, SLOT(dataChanged(const QModelIndex &, const QModelIndex &)));
+ disconnect(sourceModel(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),
+ this, SLOT(sourceRowsInserted(const QModelIndex &, int, int)));
+ disconnect(sourceModel(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
+ this, SLOT(sourceRowsRemoved(const QModelIndex &, int, int)));
+ }
+
+ QAbstractProxyModel::setSourceModel(newSourceModel);
+
+ if (sourceModel()) {
+ m_loaded = false;
+ connect(sourceModel(), SIGNAL(modelReset()), this, SLOT(sourceReset()));
+ connect(sourceModel(), SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)),
+ this, SLOT(sourceDataChanged(const QModelIndex &, const QModelIndex &)));
+ connect(sourceModel(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),
+ this, SLOT(sourceRowsInserted(const QModelIndex &, int, int)));
+ connect(sourceModel(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
+ this, SLOT(sourceRowsRemoved(const QModelIndex &, int, int)));
+ }
+}
+
+void HistoryFilterModel::sourceDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
+{
+ emit dataChanged(mapFromSource(topLeft), mapFromSource(bottomRight));
+}
+
+QVariant HistoryFilterModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ return sourceModel()->headerData(section, orientation, role);
+}
+
+void HistoryFilterModel::sourceReset()
+{
+ m_loaded = false;
+ reset();
+}
+
+int HistoryFilterModel::rowCount(const QModelIndex &parent) const
+{
+ load();
+ if (parent.isValid())
+ return 0;
+ return m_historyHash.count();
+}
+
+int HistoryFilterModel::columnCount(const QModelIndex &parent) const
+{
+ return (parent.isValid()) ? 0 : 2;
+}
+
+QModelIndex HistoryFilterModel::mapToSource(const QModelIndex &proxyIndex) const
+{
+ load();
+ int sourceRow = sourceModel()->rowCount() - proxyIndex.internalId();
+ return sourceModel()->index(sourceRow, proxyIndex.column());
+}
+
+QModelIndex HistoryFilterModel::mapFromSource(const QModelIndex &sourceIndex) const
+{
+ load();
+ QString url = sourceIndex.data(HistoryModel::UrlStringRole).toString();
+ if (!m_historyHash.contains(url))
+ return QModelIndex();
+
+ // This can be done in a binary search, but we can't use qBinary find
+ // because it can't take: qBinaryFind(m_sourceRow.end(), m_sourceRow.begin(), v);
+ // so if this is a performance bottlneck then convert to binary search, until then
+ // the cleaner/easier to read code wins the day.
+ int realRow = -1;
+ int sourceModelRow = sourceModel()->rowCount() - sourceIndex.row();
+
+ for (int i = 0; i < m_sourceRow.count(); ++i) {
+ if (m_sourceRow.at(i) == sourceModelRow) {
+ realRow = i;
+ break;
+ }
+ }
+ if (realRow == -1)
+ return QModelIndex();
+
+ return createIndex(realRow, sourceIndex.column(), sourceModel()->rowCount() - sourceIndex.row());
+}
+
+QModelIndex HistoryFilterModel::index(int row, int column, const QModelIndex &parent) const
+{
+ load();
+ if (row < 0 || row >= rowCount(parent)
+ || column < 0 || column >= columnCount(parent))
+ return QModelIndex();
+
+ return createIndex(row, column, m_sourceRow[row]);
+}
+
+QModelIndex HistoryFilterModel::parent(const QModelIndex &) const
+{
+ return QModelIndex();
+}
+
+void HistoryFilterModel::load() const
+{
+ if (m_loaded)
+ return;
+ m_sourceRow.clear();
+ m_historyHash.clear();
+ m_historyHash.reserve(sourceModel()->rowCount());
+ for (int i = 0; i < sourceModel()->rowCount(); ++i) {
+ QModelIndex idx = sourceModel()->index(i, 0);
+ QString url = idx.data(HistoryModel::UrlStringRole).toString();
+ if (!m_historyHash.contains(url)) {
+ m_sourceRow.append(sourceModel()->rowCount() - i);
+ m_historyHash[url] = sourceModel()->rowCount() - i;
+ }
+ }
+ m_loaded = true;
+}
+
+void HistoryFilterModel::sourceRowsInserted(const QModelIndex &parent, int start, int end)
+{
+ Q_ASSERT(start == end && start == 0);
+ Q_UNUSED(end);
+ if (!m_loaded)
+ return;
+ QModelIndex idx = sourceModel()->index(start, 0, parent);
+ QString url = idx.data(HistoryModel::UrlStringRole).toString();
+ if (m_historyHash.contains(url)) {
+ int sourceRow = sourceModel()->rowCount() - m_historyHash[url];
+ int realRow = mapFromSource(sourceModel()->index(sourceRow, 0)).row();
+ beginRemoveRows(QModelIndex(), realRow, realRow);
+ m_sourceRow.removeAt(realRow);
+ m_historyHash.remove(url);
+ endRemoveRows();
+ }
+ beginInsertRows(QModelIndex(), 0, 0);
+ m_historyHash.insert(url, sourceModel()->rowCount() - start);
+ m_sourceRow.insert(0, sourceModel()->rowCount());
+ endInsertRows();
+}
+
+void HistoryFilterModel::sourceRowsRemoved(const QModelIndex &, int start, int end)
+{
+ Q_UNUSED(start);
+ Q_UNUSED(end);
+ sourceReset();
+}
+
+/*
+ Removing a continuous block of rows will remove filtered rows too as this is
+ the users intention.
+*/
+bool HistoryFilterModel::removeRows(int row, int count, const QModelIndex &parent)
+{
+ if (row < 0 || count <= 0 || row + count > rowCount(parent) || parent.isValid())
+ return false;
+ int lastRow = row + count - 1;
+ disconnect(sourceModel(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
+ this, SLOT(sourceRowsRemoved(const QModelIndex &, int, int)));
+ beginRemoveRows(parent, row, lastRow);
+ int oldCount = rowCount();
+ int start = sourceModel()->rowCount() - m_sourceRow.value(row);
+ int end = sourceModel()->rowCount() - m_sourceRow.value(lastRow);
+ sourceModel()->removeRows(start, end - start + 1);
+ endRemoveRows();
+ connect(sourceModel(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
+ this, SLOT(sourceRowsRemoved(const QModelIndex &, int, int)));
+ m_loaded = false;
+ if (oldCount - count != rowCount())
+ reset();
+ return true;
+}
+
+HistoryCompletionModel::HistoryCompletionModel(QObject *parent)
+ : QAbstractProxyModel(parent)
+{
+}
+
+QVariant HistoryCompletionModel::data(const QModelIndex &index, int role) const
+{
+ if (sourceModel()
+ && (role == Qt::EditRole || role == Qt::DisplayRole)
+ && index.isValid()) {
+ QModelIndex idx = mapToSource(index);
+ idx = idx.sibling(idx.row(), 1);
+ QString urlString = idx.data(HistoryModel::UrlStringRole).toString();
+ if (index.row() % 2) {
+ QUrl url = urlString;
+ QString s = url.toString(QUrl::RemoveScheme
+ | QUrl::RemoveUserInfo
+ | QUrl::StripTrailingSlash);
+ return s.mid(2); // strip // from the front
+ }
+ return urlString;
+ }
+ return QAbstractProxyModel::data(index, role);
+}
+
+int HistoryCompletionModel::rowCount(const QModelIndex &parent) const
+{
+ return (parent.isValid() || !sourceModel()) ? 0 : sourceModel()->rowCount(parent) * 2;
+}
+
+int HistoryCompletionModel::columnCount(const QModelIndex &parent) const
+{
+ return (parent.isValid()) ? 0 : 1;
+}
+
+QModelIndex HistoryCompletionModel::mapFromSource(const QModelIndex &sourceIndex) const
+{
+ int row = sourceIndex.row() * 2;
+ return index(row, sourceIndex.column());
+}
+
+QModelIndex HistoryCompletionModel::mapToSource(const QModelIndex &proxyIndex) const
+{
+ if (!sourceModel())
+ return QModelIndex();
+ int row = proxyIndex.row() / 2;
+ return sourceModel()->index(row, proxyIndex.column());
+}
+
+QModelIndex HistoryCompletionModel::index(int row, int column, const QModelIndex &parent) const
+{
+ if (row < 0 || row >= rowCount(parent)
+ || column < 0 || column >= columnCount(parent))
+ return QModelIndex();
+ return createIndex(row, column, 0);
+}
+
+QModelIndex HistoryCompletionModel::parent(const QModelIndex &) const
+{
+ return QModelIndex();
+}
+
+void HistoryCompletionModel::setSourceModel(QAbstractItemModel *newSourceModel)
+{
+ if (sourceModel()) {
+ disconnect(sourceModel(), SIGNAL(modelReset()), this, SLOT(sourceReset()));
+ disconnect(sourceModel(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),
+ this, SLOT(sourceReset()));
+ disconnect(sourceModel(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
+ this, SLOT(sourceReset()));
+ }
+
+ QAbstractProxyModel::setSourceModel(newSourceModel);
+
+ if (newSourceModel) {
+ connect(newSourceModel, SIGNAL(modelReset()), this, SLOT(sourceReset()));
+ connect(sourceModel(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),
+ this, SLOT(sourceReset()));
+ connect(sourceModel(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
+ this, SLOT(sourceReset()));
+ }
+
+ reset();
+}
+
+void HistoryCompletionModel::sourceReset()
+{
+ reset();
+}
+
+HistoryTreeModel::HistoryTreeModel(QAbstractItemModel *sourceModel, QObject *parent)
+ : QAbstractProxyModel(parent)
+{
+ setSourceModel(sourceModel);
+}
+
+QVariant HistoryTreeModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ return sourceModel()->headerData(section, orientation, role);
+}
+
+QVariant HistoryTreeModel::data(const QModelIndex &index, int role) const
+{
+ if ((role == Qt::EditRole || role == Qt::DisplayRole)) {
+ int start = index.internalId();
+ if (start == 0) {
+ int offset = sourceDateRow(index.row());
+ if (index.column() == 0) {
+ QModelIndex idx = sourceModel()->index(offset, 0);
+ QDate date = idx.data(HistoryModel::DateRole).toDate();
+ if (date == QDate::currentDate())
+ return tr("Earlier Today");
+ return date.toString(QLatin1String("dddd, MMMM d, yyyy"));
+ }
+ if (index.column() == 1) {
+ return tr("%1 items").arg(rowCount(index.sibling(index.row(), 0)));
+ }
+ }
+ }
+ if (role == Qt::DecorationRole && index.column() == 0 && !index.parent().isValid())
+ return QIcon(QLatin1String(":history.png"));
+ if (role == HistoryModel::DateRole && index.column() == 0 && index.internalId() == 0) {
+ int offset = sourceDateRow(index.row());
+ QModelIndex idx = sourceModel()->index(offset, 0);
+ return idx.data(HistoryModel::DateRole);
+ }
+
+ return QAbstractProxyModel::data(index, role);
+}
+
+int HistoryTreeModel::columnCount(const QModelIndex &parent) const
+{
+ return sourceModel()->columnCount(mapToSource(parent));
+}
+
+int HistoryTreeModel::rowCount(const QModelIndex &parent) const
+{
+ if ( parent.internalId() != 0
+ || parent.column() > 0
+ || !sourceModel())
+ return 0;
+
+ // row count OF dates
+ if (!parent.isValid()) {
+ if (!m_sourceRowCache.isEmpty())
+ return m_sourceRowCache.count();
+ QDate currentDate;
+ int rows = 0;
+ int totalRows = sourceModel()->rowCount();
+
+ for (int i = 0; i < totalRows; ++i) {
+ QDate rowDate = sourceModel()->index(i, 0).data(HistoryModel::DateRole).toDate();
+ if (rowDate != currentDate) {
+ m_sourceRowCache.append(i);
+ currentDate = rowDate;
+ ++rows;
+ }
+ }
+ Q_ASSERT(m_sourceRowCache.count() == rows);
+ return rows;
+ }
+
+ // row count FOR a date
+ int start = sourceDateRow(parent.row());
+ int end = sourceDateRow(parent.row() + 1);
+ return (end - start);
+}
+
+// Translate the top level date row into the offset where that date starts
+int HistoryTreeModel::sourceDateRow(int row) const
+{
+ if (row <= 0)
+ return 0;
+
+ if (m_sourceRowCache.isEmpty())
+ rowCount(QModelIndex());
+
+ if (row >= m_sourceRowCache.count()) {
+ if (!sourceModel())
+ return 0;
+ return sourceModel()->rowCount();
+ }
+ return m_sourceRowCache.at(row);
+}
+
+QModelIndex HistoryTreeModel::mapToSource(const QModelIndex &proxyIndex) const
+{
+ int offset = proxyIndex.internalId();
+ if (offset == 0)
+ return QModelIndex();
+ int startDateRow = sourceDateRow(offset - 1);
+ return sourceModel()->index(startDateRow + proxyIndex.row(), proxyIndex.column());
+}
+
+QModelIndex HistoryTreeModel::index(int row, int column, const QModelIndex &parent) const
+{
+ if (row < 0
+ || column < 0 || column >= columnCount(parent)
+ || parent.column() > 0)
+ return QModelIndex();
+
+ if (!parent.isValid())
+ return createIndex(row, column, 0);
+ return createIndex(row, column, parent.row() + 1);
+}
+
+QModelIndex HistoryTreeModel::parent(const QModelIndex &index) const
+{
+ int offset = index.internalId();
+ if (offset == 0 || !index.isValid())
+ return QModelIndex();
+ return createIndex(offset - 1, 0, 0);
+}
+
+bool HistoryTreeModel::hasChildren(const QModelIndex &parent) const
+{
+ QModelIndex grandparent = parent.parent();
+ if (!grandparent.isValid())
+ return true;
+ return false;
+}
+
+Qt::ItemFlags HistoryTreeModel::flags(const QModelIndex &index) const
+{
+ if (!index.isValid())
+ return Qt::NoItemFlags;
+ return Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled;
+}
+
+bool HistoryTreeModel::removeRows(int row, int count, const QModelIndex &parent)
+{
+ if (row < 0 || count <= 0 || row + count > rowCount(parent))
+ return false;
+
+ if (parent.isValid()) {
+ // removing pages
+ int offset = sourceDateRow(parent.row());
+ return sourceModel()->removeRows(offset + row, count);
+ } else {
+ // removing whole dates
+ for (int i = row + count - 1; i >= row; --i) {
+ QModelIndex dateParent = index(i, 0);
+ int offset = sourceDateRow(dateParent.row());
+ if (!sourceModel()->removeRows(offset, rowCount(dateParent)))
+ return false;
+ }
+ }
+ return true;
+}
+
+void HistoryTreeModel::setSourceModel(QAbstractItemModel *newSourceModel)
+{
+ if (sourceModel()) {
+ disconnect(sourceModel(), SIGNAL(modelReset()), this, SLOT(sourceReset()));
+ disconnect(sourceModel(), SIGNAL(layoutChanged()), this, SLOT(sourceReset()));
+ disconnect(sourceModel(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),
+ this, SLOT(sourceRowsInserted(const QModelIndex &, int, int)));
+ disconnect(sourceModel(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
+ this, SLOT(sourceRowsRemoved(const QModelIndex &, int, int)));
+ }
+
+ QAbstractProxyModel::setSourceModel(newSourceModel);
+
+ if (newSourceModel) {
+ connect(sourceModel(), SIGNAL(modelReset()), this, SLOT(sourceReset()));
+ connect(sourceModel(), SIGNAL(layoutChanged()), this, SLOT(sourceReset()));
+ connect(sourceModel(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),
+ this, SLOT(sourceRowsInserted(const QModelIndex &, int, int)));
+ connect(sourceModel(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
+ this, SLOT(sourceRowsRemoved(const QModelIndex &, int, int)));
+ }
+
+ reset();
+}
+
+void HistoryTreeModel::sourceReset()
+{
+ m_sourceRowCache.clear();
+ reset();
+}
+
+void HistoryTreeModel::sourceRowsInserted(const QModelIndex &parent, int start, int end)
+{
+ Q_UNUSED(parent); // Avoid warnings when compiling release
+ Q_ASSERT(!parent.isValid());
+ if (start != 0 || start != end) {
+ m_sourceRowCache.clear();
+ reset();
+ return;
+ }
+
+ m_sourceRowCache.clear();
+ QModelIndex treeIndex = mapFromSource(sourceModel()->index(start, 0));
+ QModelIndex treeParent = treeIndex.parent();
+ if (rowCount(treeParent) == 1) {
+ beginInsertRows(QModelIndex(), 0, 0);
+ endInsertRows();
+ } else {
+ beginInsertRows(treeParent, treeIndex.row(), treeIndex.row());
+ endInsertRows();
+ }
+}
+
+QModelIndex HistoryTreeModel::mapFromSource(const QModelIndex &sourceIndex) const
+{
+ if (!sourceIndex.isValid())
+ return QModelIndex();
+
+ if (m_sourceRowCache.isEmpty())
+ rowCount(QModelIndex());
+
+ QList<int>::iterator it;
+ it = qLowerBound(m_sourceRowCache.begin(), m_sourceRowCache.end(), sourceIndex.row());
+ if (*it != sourceIndex.row())
+ --it;
+ int dateRow = qMax(0, it - m_sourceRowCache.begin());
+ int row = sourceIndex.row() - m_sourceRowCache.at(dateRow);
+ return createIndex(row, sourceIndex.column(), dateRow + 1);
+}
+
+void HistoryTreeModel::sourceRowsRemoved(const QModelIndex &parent, int start, int end)
+{
+ Q_UNUSED(parent); // Avoid warnings when compiling release
+ Q_ASSERT(!parent.isValid());
+ if (m_sourceRowCache.isEmpty())
+ return;
+ for (int i = end; i >= start;) {
+ QList<int>::iterator it;
+ it = qLowerBound(m_sourceRowCache.begin(), m_sourceRowCache.end(), i);
+ // playing it safe
+ if (it == m_sourceRowCache.end()) {
+ m_sourceRowCache.clear();
+ reset();
+ return;
+ }
+
+ if (*it != i)
+ --it;
+ int row = qMax(0, it - m_sourceRowCache.begin());
+ int offset = m_sourceRowCache[row];
+ QModelIndex dateParent = index(row, 0);
+ // If we can remove all the rows in the date do that and skip over them
+ int rc = rowCount(dateParent);
+ if (i - rc + 1 == offset && start <= i - rc + 1) {
+ beginRemoveRows(QModelIndex(), row, row);
+ m_sourceRowCache.removeAt(row);
+ i -= rc + 1;
+ } else {
+ beginRemoveRows(dateParent, i - offset, i - offset);
+ ++row;
+ --i;
+ }
+ for (int j = row; j < m_sourceRowCache.count(); ++j)
+ --m_sourceRowCache[j];
+ endRemoveRows();
+ }
+}
+
diff --git a/demos/browser/history.h b/demos/browser/history.h
new file mode 100644
index 0000000..4f4edcd
--- /dev/null
+++ b/demos/browser/history.h
@@ -0,0 +1,350 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef HISTORY_H
+#define HISTORY_H
+
+#include "modelmenu.h"
+
+#include <QtCore/QDateTime>
+#include <QtCore/QHash>
+#include <QtCore/QObject>
+#include <QtCore/QTimer>
+#include <QtCore/QUrl>
+
+#include <QtGui/QSortFilterProxyModel>
+
+#include <QWebHistoryInterface>
+
+class HistoryItem
+{
+public:
+ HistoryItem() {}
+ HistoryItem(const QString &u,
+ const QDateTime &d = QDateTime(), const QString &t = QString())
+ : title(t), url(u), dateTime(d) {}
+
+ inline bool operator==(const HistoryItem &other) const
+ { return other.title == title
+ && other.url == url && other.dateTime == dateTime; }
+
+ // history is sorted in reverse
+ inline bool operator <(const HistoryItem &other) const
+ { return dateTime > other.dateTime; }
+
+ QString title;
+ QString url;
+ QDateTime dateTime;
+};
+
+class AutoSaver;
+class HistoryModel;
+class HistoryFilterModel;
+class HistoryTreeModel;
+class HistoryManager : public QWebHistoryInterface
+{
+ Q_OBJECT
+ Q_PROPERTY(int historyLimit READ historyLimit WRITE setHistoryLimit)
+
+signals:
+ void historyReset();
+ void entryAdded(const HistoryItem &item);
+ void entryRemoved(const HistoryItem &item);
+ void entryUpdated(int offset);
+
+public:
+ HistoryManager(QObject *parent = 0);
+ ~HistoryManager();
+
+ bool historyContains(const QString &url) const;
+ void addHistoryEntry(const QString &url);
+
+ void updateHistoryItem(const QUrl &url, const QString &title);
+
+ int historyLimit() const;
+ void setHistoryLimit(int limit);
+
+ QList<HistoryItem> history() const;
+ void setHistory(const QList<HistoryItem> &history, bool loadedAndSorted = false);
+
+ // History manager keeps around these models for use by the completer and other classes
+ HistoryModel *historyModel() const;
+ HistoryFilterModel *historyFilterModel() const;
+ HistoryTreeModel *historyTreeModel() const;
+
+public slots:
+ void clear();
+ void loadSettings();
+
+private slots:
+ void save();
+ void checkForExpired();
+
+protected:
+ void addHistoryItem(const HistoryItem &item);
+
+private:
+ void load();
+
+ AutoSaver *m_saveTimer;
+ int m_historyLimit;
+ QTimer m_expiredTimer;
+ QList<HistoryItem> m_history;
+ QString m_lastSavedUrl;
+
+ HistoryModel *m_historyModel;
+ HistoryFilterModel *m_historyFilterModel;
+ HistoryTreeModel *m_historyTreeModel;
+};
+
+class HistoryModel : public QAbstractTableModel
+{
+ Q_OBJECT
+
+public slots:
+ void historyReset();
+ void entryAdded();
+ void entryUpdated(int offset);
+
+public:
+ enum Roles {
+ DateRole = Qt::UserRole + 1,
+ DateTimeRole = Qt::UserRole + 2,
+ UrlRole = Qt::UserRole + 3,
+ UrlStringRole = Qt::UserRole + 4
+ };
+
+ HistoryModel(HistoryManager *history, QObject *parent = 0);
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+
+private:
+ HistoryManager *m_history;
+};
+
+/*!
+ Proxy model that will remove any duplicate entries.
+ Both m_sourceRow and m_historyHash store their offsets not from
+ the front of the list, but as offsets from the back.
+ */
+class HistoryFilterModel : public QAbstractProxyModel
+{
+ Q_OBJECT
+
+public:
+ HistoryFilterModel(QAbstractItemModel *sourceModel, QObject *parent = 0);
+
+ inline bool historyContains(const QString &url) const
+ { load(); return m_historyHash.contains(url); }
+ int historyLocation(const QString &url) const;
+
+ QModelIndex mapFromSource(const QModelIndex &sourceIndex) const;
+ QModelIndex mapToSource(const QModelIndex &proxyIndex) const;
+ void setSourceModel(QAbstractItemModel *sourceModel);
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const;
+ QModelIndex index(int, int, const QModelIndex& = QModelIndex()) const;
+ QModelIndex parent(const QModelIndex& index= QModelIndex()) const;
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+
+private slots:
+ void sourceReset();
+ void sourceDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);
+ void sourceRowsInserted(const QModelIndex &parent, int start, int end);
+ void sourceRowsRemoved(const QModelIndex &, int, int);
+
+private:
+ void load() const;
+
+ mutable QList<int> m_sourceRow;
+ mutable QHash<QString, int> m_historyHash;
+ mutable bool m_loaded;
+};
+
+/*
+ The history menu
+ - Removes the first twenty entries and puts them as children of the top level.
+ - If there are less then twenty entries then the first folder is also removed.
+
+ The mapping is done by knowing that HistoryTreeModel is over a table
+ We store that row offset in our index's private data.
+*/
+class HistoryMenuModel : public QAbstractProxyModel
+{
+ Q_OBJECT
+
+public:
+ HistoryMenuModel(HistoryTreeModel *sourceModel, QObject *parent = 0);
+ int columnCount(const QModelIndex &parent) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ QModelIndex mapFromSource(const QModelIndex & sourceIndex) const;
+ QModelIndex mapToSource(const QModelIndex & proxyIndex) const;
+ QModelIndex index(int, int, const QModelIndex &parent = QModelIndex()) const;
+ QModelIndex parent(const QModelIndex &index = QModelIndex()) const;
+
+ int bumpedRows() const;
+
+private:
+ HistoryTreeModel *m_treeModel;
+};
+
+// Menu that is dynamically populated from the history
+class HistoryMenu : public ModelMenu
+{
+ Q_OBJECT
+
+signals:
+ void openUrl(const QUrl &url);
+
+public:
+ HistoryMenu(QWidget *parent = 0);
+ void setInitialActions(QList<QAction*> actions);
+
+protected:
+ bool prePopulated();
+ void postPopulated();
+
+private slots:
+ void activated(const QModelIndex &index);
+ void showHistoryDialog();
+
+private:
+ HistoryManager *m_history;
+ HistoryMenuModel *m_historyMenuModel;
+ QList<QAction*> m_initialActions;
+};
+
+// proxy model for the history model that
+// exposes each url http://www.foo.com and it url starting at the host www.foo.com
+class HistoryCompletionModel : public QAbstractProxyModel
+{
+ Q_OBJECT
+
+public:
+ HistoryCompletionModel(QObject *parent = 0);
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const;
+ QModelIndex mapFromSource(const QModelIndex &sourceIndex) const;
+ QModelIndex mapToSource(const QModelIndex &proxyIndex) const;
+ QModelIndex index(int, int, const QModelIndex& = QModelIndex()) const;
+ QModelIndex parent(const QModelIndex& index= QModelIndex()) const;
+ void setSourceModel(QAbstractItemModel *sourceModel);
+
+private slots:
+ void sourceReset();
+
+};
+
+// proxy model for the history model that converts the list
+// into a tree, one top level node per day.
+// Used in the HistoryDialog.
+class HistoryTreeModel : public QAbstractProxyModel
+{
+ Q_OBJECT
+
+public:
+ HistoryTreeModel(QAbstractItemModel *sourceModel, QObject *parent = 0);
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ int columnCount(const QModelIndex &parent) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ QModelIndex mapFromSource(const QModelIndex &sourceIndex) const;
+ QModelIndex mapToSource(const QModelIndex &proxyIndex) const;
+ QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+ QModelIndex parent(const QModelIndex &index= QModelIndex()) const;
+ bool hasChildren(const QModelIndex &parent = QModelIndex()) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+
+ void setSourceModel(QAbstractItemModel *sourceModel);
+
+private slots:
+ void sourceReset();
+ void sourceRowsInserted(const QModelIndex &parent, int start, int end);
+ void sourceRowsRemoved(const QModelIndex &parent, int start, int end);
+
+private:
+ int sourceDateRow(int row) const;
+ mutable QList<int> m_sourceRowCache;
+
+};
+
+// A modified QSortFilterProxyModel that always accepts the root nodes in the tree
+// so filtering is only done on the children.
+// Used in the HistoryDialog
+class TreeProxyModel : public QSortFilterProxyModel
+{
+ Q_OBJECT
+
+public:
+ TreeProxyModel(QObject *parent = 0);
+
+protected:
+ bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;
+};
+
+#include "ui_history.h"
+
+class HistoryDialog : public QDialog, public Ui_HistoryDialog
+{
+ Q_OBJECT
+
+signals:
+ void openUrl(const QUrl &url);
+
+public:
+ HistoryDialog(QWidget *parent = 0, HistoryManager *history = 0);
+
+private slots:
+ void customContextMenuRequested(const QPoint &pos);
+ void open();
+ void copy();
+
+};
+
+#endif // HISTORY_H
+
diff --git a/demos/browser/history.ui b/demos/browser/history.ui
new file mode 100644
index 0000000..0944940
--- /dev/null
+++ b/demos/browser/history.ui
@@ -0,0 +1,106 @@
+<ui version="4.0" >
+ <class>HistoryDialog</class>
+ <widget class="QDialog" name="HistoryDialog" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>758</width>
+ <height>450</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>History</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout" >
+ <item row="0" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>252</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="1" >
+ <widget class="SearchLineEdit" name="search" />
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="EditTreeView" name="tree" />
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QPushButton" name="removeButton" >
+ <property name="text" >
+ <string>&amp;Remove</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="removeAllButton" >
+ <property name="text" >
+ <string>Remove &amp;All</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>SearchLineEdit</class>
+ <extends>QLineEdit</extends>
+ <header>searchlineedit.h</header>
+ </customwidget>
+ <customwidget>
+ <class>EditTreeView</class>
+ <extends>QTreeView</extends>
+ <header>edittreeview.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>HistoryDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>472</x>
+ <y>329</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>461</x>
+ <y>356</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/demos/browser/htmls/htmls.qrc b/demos/browser/htmls/htmls.qrc
new file mode 100644
index 0000000..03b256c
--- /dev/null
+++ b/demos/browser/htmls/htmls.qrc
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>notfound.html</file>
+</qresource>
+</RCC>
diff --git a/demos/browser/htmls/notfound.html b/demos/browser/htmls/notfound.html
new file mode 100644
index 0000000..b04a9f8
--- /dev/null
+++ b/demos/browser/htmls/notfound.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<title>%1</title>
+<style>
+body {
+ padding: 3em 0em;
+ background: #eeeeee;
+}
+hr {
+ color: lightgray;
+ width: 100%;
+}
+img {
+ float: left;
+ opacity: .8;
+}
+#box {
+ background: white;
+ border: 1px solid lightgray;
+ width: 600px;
+ padding: 60px;
+ margin: auto;
+}
+h1 {
+ font-size: 130%;
+ font-weight: bold;
+ border-bottom: 1px solid lightgray;
+ margin-left: 48px;
+}
+h2 {
+ font-size: 100%;
+ font-weight: normal;
+ border-bottom: 1px solid lightgray;
+ margin-left: 48px;
+}
+ul {
+ font-size: 80%;
+ padding-left: 48px;
+ margin: 0;
+}
+#reloadButton {
+ padding-left: 48px;
+}
+</style>
+</head>
+<body>
+ <div id="box">
+ <img src="data:image/png;base64,IMAGE_BINARY_DATA_HERE" width="32" height="32"/>
+ <h1>%2</h1>
+ <h2>When connecting to: %3.</h2>
+ <ul>
+ <li>Check the address for errors such as <b>ww</b>.trolltech.com
+ instead of <b>www</b>.trolltech.com</li>
+ <li>If the address is correct, try checking the network
+ connection.</li>
+ <li>If your computer or network is protected by a firewall or
+ proxy, make sure that the browser demo is permitted to access
+ the network.</li>
+ </ul>
+ <br/><br/>
+ </div>
+</body>
+</html>
diff --git a/demos/browser/main.cpp b/demos/browser/main.cpp
new file mode 100644
index 0000000..a59b2fb
--- /dev/null
+++ b/demos/browser/main.cpp
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "browserapplication.h"
+
+int main(int argc, char **argv)
+{
+ Q_INIT_RESOURCE(data);
+ BrowserApplication application(argc, argv);
+ if (!application.isTheOnlyBrowser())
+ return 0;
+ application.newMainWindow();
+ return application.exec();
+}
+
diff --git a/demos/browser/modelmenu.cpp b/demos/browser/modelmenu.cpp
new file mode 100644
index 0000000..9403ef1
--- /dev/null
+++ b/demos/browser/modelmenu.cpp
@@ -0,0 +1,227 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "modelmenu.h"
+
+#include <QtCore/QAbstractItemModel>
+#include <qdebug.h>
+
+ModelMenu::ModelMenu(QWidget * parent)
+ : QMenu(parent)
+ , m_maxRows(7)
+ , m_firstSeparator(-1)
+ , m_maxWidth(-1)
+ , m_hoverRole(0)
+ , m_separatorRole(0)
+ , m_model(0)
+{
+ connect(this, SIGNAL(aboutToShow()), this, SLOT(aboutToShow()));
+}
+
+bool ModelMenu::prePopulated()
+{
+ return false;
+}
+
+void ModelMenu::postPopulated()
+{
+}
+
+void ModelMenu::setModel(QAbstractItemModel *model)
+{
+ m_model = model;
+}
+
+QAbstractItemModel *ModelMenu::model() const
+{
+ return m_model;
+}
+
+void ModelMenu::setMaxRows(int max)
+{
+ m_maxRows = max;
+}
+
+int ModelMenu::maxRows() const
+{
+ return m_maxRows;
+}
+
+void ModelMenu::setFirstSeparator(int offset)
+{
+ m_firstSeparator = offset;
+}
+
+int ModelMenu::firstSeparator() const
+{
+ return m_firstSeparator;
+}
+
+void ModelMenu::setRootIndex(const QModelIndex &index)
+{
+ m_root = index;
+}
+
+QModelIndex ModelMenu::rootIndex() const
+{
+ return m_root;
+}
+
+void ModelMenu::setHoverRole(int role)
+{
+ m_hoverRole = role;
+}
+
+int ModelMenu::hoverRole() const
+{
+ return m_hoverRole;
+}
+
+void ModelMenu::setSeparatorRole(int role)
+{
+ m_separatorRole = role;
+}
+
+int ModelMenu::separatorRole() const
+{
+ return m_separatorRole;
+}
+
+Q_DECLARE_METATYPE(QModelIndex)
+void ModelMenu::aboutToShow()
+{
+ if (QMenu *menu = qobject_cast<QMenu*>(sender())) {
+ QVariant v = menu->menuAction()->data();
+ if (v.canConvert<QModelIndex>()) {
+ QModelIndex idx = qvariant_cast<QModelIndex>(v);
+ createMenu(idx, -1, menu, menu);
+ disconnect(menu, SIGNAL(aboutToShow()), this, SLOT(aboutToShow()));
+ return;
+ }
+ }
+
+ clear();
+ if (prePopulated())
+ addSeparator();
+ int max = m_maxRows;
+ if (max != -1)
+ max += m_firstSeparator;
+ createMenu(m_root, max, this, this);
+ postPopulated();
+}
+
+void ModelMenu::createMenu(const QModelIndex &parent, int max, QMenu *parentMenu, QMenu *menu)
+{
+ if (!menu) {
+ QString title = parent.data().toString();
+ menu = new QMenu(title, this);
+ QIcon icon = qvariant_cast<QIcon>(parent.data(Qt::DecorationRole));
+ menu->setIcon(icon);
+ parentMenu->addMenu(menu);
+ QVariant v;
+ v.setValue(parent);
+ menu->menuAction()->setData(v);
+ connect(menu, SIGNAL(aboutToShow()), this, SLOT(aboutToShow()));
+ return;
+ }
+
+ int end = m_model->rowCount(parent);
+ if (max != -1)
+ end = qMin(max, end);
+
+ connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(triggered(QAction*)));
+ connect(menu, SIGNAL(hovered(QAction*)), this, SLOT(hovered(QAction*)));
+
+ for (int i = 0; i < end; ++i) {
+ QModelIndex idx = m_model->index(i, 0, parent);
+ if (m_model->hasChildren(idx)) {
+ createMenu(idx, -1, menu);
+ } else {
+ if (m_separatorRole != 0
+ && idx.data(m_separatorRole).toBool())
+ addSeparator();
+ else
+ menu->addAction(makeAction(idx));
+ }
+ if (menu == this && i == m_firstSeparator - 1)
+ addSeparator();
+ }
+}
+
+QAction *ModelMenu::makeAction(const QModelIndex &index)
+{
+ QIcon icon = qvariant_cast<QIcon>(index.data(Qt::DecorationRole));
+ QAction *action = makeAction(icon, index.data().toString(), this);
+ QVariant v;
+ v.setValue(index);
+ action->setData(v);
+ return action;
+}
+
+QAction *ModelMenu::makeAction(const QIcon &icon, const QString &text, QObject *parent)
+{
+ QFontMetrics fm(font());
+ if (-1 == m_maxWidth)
+ m_maxWidth = fm.width(QLatin1Char('m')) * 30;
+ QString smallText = fm.elidedText(text, Qt::ElideMiddle, m_maxWidth);
+ return new QAction(icon, smallText, parent);
+}
+
+void ModelMenu::triggered(QAction *action)
+{
+ QVariant v = action->data();
+ if (v.canConvert<QModelIndex>()) {
+ QModelIndex idx = qvariant_cast<QModelIndex>(v);
+ emit activated(idx);
+ }
+}
+
+void ModelMenu::hovered(QAction *action)
+{
+ QVariant v = action->data();
+ if (v.canConvert<QModelIndex>()) {
+ QModelIndex idx = qvariant_cast<QModelIndex>(v);
+ QString hoveredString = idx.data(m_hoverRole).toString();
+ if (!hoveredString.isEmpty())
+ emit hovered(hoveredString);
+ }
+}
+
diff --git a/demos/browser/modelmenu.h b/demos/browser/modelmenu.h
new file mode 100644
index 0000000..edd2e04
--- /dev/null
+++ b/demos/browser/modelmenu.h
@@ -0,0 +1,105 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MODELMENU_H
+#define MODELMENU_H
+
+#include <QtGui/QMenu>
+#include <QtCore/QAbstractItemModel>
+
+// A QMenu that is dynamically populated from a QAbstractItemModel
+class ModelMenu : public QMenu
+{
+ Q_OBJECT
+
+signals:
+ void activated(const QModelIndex &index);
+ void hovered(const QString &text);
+
+public:
+ ModelMenu(QWidget *parent = 0);
+
+ void setModel(QAbstractItemModel *model);
+ QAbstractItemModel *model() const;
+
+ void setMaxRows(int max);
+ int maxRows() const;
+
+ void setFirstSeparator(int offset);
+ int firstSeparator() const;
+
+ void setRootIndex(const QModelIndex &index);
+ QModelIndex rootIndex() const;
+
+ void setHoverRole(int role);
+ int hoverRole() const;
+
+ void setSeparatorRole(int role);
+ int separatorRole() const;
+
+ QAction *makeAction(const QIcon &icon, const QString &text, QObject *parent);
+
+protected:
+ // add any actions before the tree, return true if any actions are added.
+ virtual bool prePopulated();
+ // add any actions after the tree
+ virtual void postPopulated();
+ // put all of the children of parent into menu up to max
+ void createMenu(const QModelIndex &parent, int max, QMenu *parentMenu = 0, QMenu *menu = 0);
+
+private slots:
+ void aboutToShow();
+ void triggered(QAction *action);
+ void hovered(QAction *action);
+
+private:
+ QAction *makeAction(const QModelIndex &index);
+ int m_maxRows;
+ int m_firstSeparator;
+ int m_maxWidth;
+ int m_hoverRole;
+ int m_separatorRole;
+ QAbstractItemModel *m_model;
+ QPersistentModelIndex m_root;
+};
+
+#endif // MODELMENU_H
+
diff --git a/demos/browser/networkaccessmanager.cpp b/demos/browser/networkaccessmanager.cpp
new file mode 100644
index 0000000..2e7b2fd
--- /dev/null
+++ b/demos/browser/networkaccessmanager.cpp
@@ -0,0 +1,171 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "networkaccessmanager.h"
+
+#include "browserapplication.h"
+#include "browsermainwindow.h"
+#include "ui_passworddialog.h"
+#include "ui_proxy.h"
+
+#include <QtCore/QSettings>
+
+#include <QtGui/QDesktopServices>
+#include <QtGui/QDialog>
+#include <QtGui/QMessageBox>
+#include <QtGui/QStyle>
+#include <QtGui/QTextDocument>
+
+#include <QtNetwork/QAuthenticator>
+#include <QtNetwork/QNetworkDiskCache>
+#include <QtNetwork/QNetworkProxy>
+#include <QtNetwork/QNetworkReply>
+#include <QtNetwork/QSslError>
+
+NetworkAccessManager::NetworkAccessManager(QObject *parent)
+ : QNetworkAccessManager(parent)
+{
+ connect(this, SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)),
+ SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*)));
+ connect(this, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*)),
+ SLOT(proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*)));
+#ifndef QT_NO_OPENSSL
+ connect(this, SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)),
+ SLOT(sslErrors(QNetworkReply*, const QList<QSslError>&)));
+#endif
+ loadSettings();
+
+ QNetworkDiskCache *diskCache = new QNetworkDiskCache(this);
+ QString location = QDesktopServices::storageLocation(QDesktopServices::CacheLocation);
+ diskCache->setCacheDirectory(location);
+ setCache(diskCache);
+}
+
+void NetworkAccessManager::loadSettings()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("proxy"));
+ QNetworkProxy proxy;
+ if (settings.value(QLatin1String("enabled"), false).toBool()) {
+ if (settings.value(QLatin1String("type"), 0).toInt() == 0)
+ proxy = QNetworkProxy::Socks5Proxy;
+ else
+ proxy = QNetworkProxy::HttpProxy;
+ proxy.setHostName(settings.value(QLatin1String("hostName")).toString());
+ proxy.setPort(settings.value(QLatin1String("port"), 1080).toInt());
+ proxy.setUser(settings.value(QLatin1String("userName")).toString());
+ proxy.setPassword(settings.value(QLatin1String("password")).toString());
+ }
+ setProxy(proxy);
+}
+
+void NetworkAccessManager::authenticationRequired(QNetworkReply *reply, QAuthenticator *auth)
+{
+ BrowserMainWindow *mainWindow = BrowserApplication::instance()->mainWindow();
+
+ QDialog dialog(mainWindow);
+ dialog.setWindowFlags(Qt::Sheet);
+
+ Ui::PasswordDialog passwordDialog;
+ passwordDialog.setupUi(&dialog);
+
+ passwordDialog.iconLabel->setText(QString());
+ passwordDialog.iconLabel->setPixmap(mainWindow->style()->standardIcon(QStyle::SP_MessageBoxQuestion, 0, mainWindow).pixmap(32, 32));
+
+ QString introMessage = tr("<qt>Enter username and password for \"%1\" at %2</qt>");
+ introMessage = introMessage.arg(Qt::escape(reply->url().toString())).arg(Qt::escape(reply->url().toString()));
+ passwordDialog.introLabel->setText(introMessage);
+ passwordDialog.introLabel->setWordWrap(true);
+
+ if (dialog.exec() == QDialog::Accepted) {
+ auth->setUser(passwordDialog.userNameLineEdit->text());
+ auth->setPassword(passwordDialog.passwordLineEdit->text());
+ }
+}
+
+void NetworkAccessManager::proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *auth)
+{
+ BrowserMainWindow *mainWindow = BrowserApplication::instance()->mainWindow();
+
+ QDialog dialog(mainWindow);
+ dialog.setWindowFlags(Qt::Sheet);
+
+ Ui::ProxyDialog proxyDialog;
+ proxyDialog.setupUi(&dialog);
+
+ proxyDialog.iconLabel->setText(QString());
+ proxyDialog.iconLabel->setPixmap(mainWindow->style()->standardIcon(QStyle::SP_MessageBoxQuestion, 0, mainWindow).pixmap(32, 32));
+
+ QString introMessage = tr("<qt>Connect to proxy \"%1\" using:</qt>");
+ introMessage = introMessage.arg(Qt::escape(proxy.hostName()));
+ proxyDialog.introLabel->setText(introMessage);
+ proxyDialog.introLabel->setWordWrap(true);
+
+ if (dialog.exec() == QDialog::Accepted) {
+ auth->setUser(proxyDialog.userNameLineEdit->text());
+ auth->setPassword(proxyDialog.passwordLineEdit->text());
+ }
+}
+
+#ifndef QT_NO_OPENSSL
+void NetworkAccessManager::sslErrors(QNetworkReply *reply, const QList<QSslError> &error)
+{
+ // check if SSL certificate has been trusted already
+ QString replyHost = reply->url().host() + ":" + reply->url().port();
+ if(! sslTrustedHostList.contains(replyHost)) {
+ BrowserMainWindow *mainWindow = BrowserApplication::instance()->mainWindow();
+
+ QStringList errorStrings;
+ for (int i = 0; i < error.count(); ++i)
+ errorStrings += error.at(i).errorString();
+ QString errors = errorStrings.join(QLatin1String("\n"));
+ int ret = QMessageBox::warning(mainWindow, QCoreApplication::applicationName(),
+ tr("SSL Errors:\n\n%1\n\n%2\n\n"
+ "Do you want to ignore these errors for this host?").arg(reply->url().toString()).arg(errors),
+ QMessageBox::Yes | QMessageBox::No,
+ QMessageBox::No);
+ if (ret == QMessageBox::Yes) {
+ reply->ignoreSslErrors();
+ sslTrustedHostList.append(replyHost);
+ }
+ }
+}
+#endif
diff --git a/demos/browser/networkaccessmanager.h b/demos/browser/networkaccessmanager.h
new file mode 100644
index 0000000..d016e76
--- /dev/null
+++ b/demos/browser/networkaccessmanager.h
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef NETWORKACCESSMANAGER_H
+#define NETWORKACCESSMANAGER_H
+
+#include <QtNetwork/QNetworkAccessManager>
+
+class NetworkAccessManager : public QNetworkAccessManager
+{
+ Q_OBJECT
+
+public:
+ NetworkAccessManager(QObject *parent = 0);
+
+private:
+ QList<QString> sslTrustedHostList;
+
+public slots:
+ void loadSettings();
+
+private slots:
+ void authenticationRequired(QNetworkReply *reply, QAuthenticator *auth);
+ void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *auth);
+#ifndef QT_NO_OPENSSL
+ void sslErrors(QNetworkReply *reply, const QList<QSslError> &error);
+#endif
+};
+
+#endif // NETWORKACCESSMANAGER_H
diff --git a/demos/browser/passworddialog.ui b/demos/browser/passworddialog.ui
new file mode 100644
index 0000000..7c16658
--- /dev/null
+++ b/demos/browser/passworddialog.ui
@@ -0,0 +1,111 @@
+<ui version="4.0" >
+ <class>PasswordDialog</class>
+ <widget class="QDialog" name="PasswordDialog" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>399</width>
+ <height>148</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Authentication Required</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout" >
+ <item row="0" column="0" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QLabel" name="iconLabel" >
+ <property name="text" >
+ <string>DUMMY ICON</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="introLabel" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="MinimumExpanding" hsizetype="MinimumExpanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>INTRO TEXT DUMMY</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Username:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLineEdit" name="userNameLineEdit" />
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="lblPassword" >
+ <property name="text" >
+ <string>Password:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QLineEdit" name="passwordLineEdit" >
+ <property name="echoMode" >
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2" >
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>PasswordDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>PasswordDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/demos/browser/proxy.ui b/demos/browser/proxy.ui
new file mode 100644
index 0000000..62a8be6
--- /dev/null
+++ b/demos/browser/proxy.ui
@@ -0,0 +1,104 @@
+<ui version="4.0" >
+ <class>ProxyDialog</class>
+ <widget class="QDialog" name="ProxyDialog" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>369</width>
+ <height>144</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Proxy Authentication</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="iconLabel" >
+ <property name="text" >
+ <string>ICON</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2" >
+ <widget class="QLabel" name="introLabel" >
+ <property name="text" >
+ <string>Connect to proxy</string>
+ </property>
+ <property name="wordWrap" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="QLabel" name="usernameLabel" >
+ <property name="text" >
+ <string>Username:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLineEdit" name="userNameLineEdit" />
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <widget class="QLabel" name="passwordLabel" >
+ <property name="text" >
+ <string>Password:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QLineEdit" name="passwordLineEdit" >
+ <property name="echoMode" >
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="3" >
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>ProxyDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>ProxyDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/demos/browser/searchlineedit.cpp b/demos/browser/searchlineedit.cpp
new file mode 100644
index 0000000..8f668e0
--- /dev/null
+++ b/demos/browser/searchlineedit.cpp
@@ -0,0 +1,238 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "searchlineedit.h"
+
+#include <QtGui/QPainter>
+#include <QtGui/QMouseEvent>
+#include <QtGui/QMenu>
+#include <QtGui/QStyle>
+#include <QtGui/QStyleOptionFrameV2>
+
+ClearButton::ClearButton(QWidget *parent)
+ : QAbstractButton(parent)
+{
+ setCursor(Qt::ArrowCursor);
+ setToolTip(tr("Clear"));
+ setVisible(false);
+ setFocusPolicy(Qt::NoFocus);
+}
+
+void ClearButton::paintEvent(QPaintEvent *event)
+{
+ Q_UNUSED(event);
+ QPainter painter(this);
+ int height = this->height();
+
+ painter.setRenderHint(QPainter::Antialiasing, true);
+ QColor color = palette().color(QPalette::Mid);
+ painter.setBrush(isDown()
+ ? palette().color(QPalette::Dark)
+ : palette().color(QPalette::Mid));
+ painter.setPen(painter.brush().color());
+ int size = width();
+ int offset = size / 5;
+ int radius = size - offset * 2;
+ painter.drawEllipse(offset, offset, radius, radius);
+
+ painter.setPen(palette().color(QPalette::Base));
+ int border = offset * 2;
+ painter.drawLine(border, border, width() - border, height - border);
+ painter.drawLine(border, height - border, width() - border, border);
+}
+
+void ClearButton::textChanged(const QString &text)
+{
+ setVisible(!text.isEmpty());
+}
+
+/*
+ Search icon on the left hand side of the search widget
+ When a menu is set a down arrow appears
+ */
+class SearchButton : public QAbstractButton {
+public:
+ SearchButton(QWidget *parent = 0);
+ void paintEvent(QPaintEvent *event);
+ QMenu *m_menu;
+
+protected:
+ void mousePressEvent(QMouseEvent *event);
+};
+
+SearchButton::SearchButton(QWidget *parent)
+ : QAbstractButton(parent),
+ m_menu(0)
+{
+ setObjectName(QLatin1String("SearchButton"));
+ setCursor(Qt::ArrowCursor);
+ setFocusPolicy(Qt::NoFocus);
+}
+
+void SearchButton::mousePressEvent(QMouseEvent *event)
+{
+ if (m_menu && event->button() == Qt::LeftButton) {
+ QWidget *p = parentWidget();
+ if (p) {
+ QPoint r = p->mapToGlobal(QPoint(0, p->height()));
+ m_menu->exec(QPoint(r.x() + height() / 2, r.y()));
+ }
+ event->accept();
+ }
+ QAbstractButton::mousePressEvent(event);
+}
+
+void SearchButton::paintEvent(QPaintEvent *event)
+{
+ Q_UNUSED(event);
+ QPainterPath myPath;
+
+ int radius = (height() / 5) * 2;
+ QRect circle(height() / 3 - 1, height() / 4, radius, radius);
+ myPath.addEllipse(circle);
+
+ myPath.arcMoveTo(circle, 300);
+ QPointF c = myPath.currentPosition();
+ int diff = height() / 7;
+ myPath.lineTo(qMin(width() - 2, (int)c.x() + diff), c.y() + diff);
+
+ QPainter painter(this);
+ painter.setRenderHint(QPainter::Antialiasing, true);
+ painter.setPen(QPen(Qt::darkGray, 2));
+ painter.drawPath(myPath);
+
+ if (m_menu) {
+ QPainterPath dropPath;
+ dropPath.arcMoveTo(circle, 320);
+ QPointF c = dropPath.currentPosition();
+ c = QPointF(c.x() + 3.5, c.y() + 0.5);
+ dropPath.moveTo(c);
+ dropPath.lineTo(c.x() + 4, c.y());
+ dropPath.lineTo(c.x() + 2, c.y() + 2);
+ dropPath.closeSubpath();
+ painter.setPen(Qt::darkGray);
+ painter.setBrush(Qt::darkGray);
+ painter.setRenderHint(QPainter::Antialiasing, false);
+ painter.drawPath(dropPath);
+ }
+ painter.end();
+}
+
+/*
+ SearchLineEdit is an enhanced QLineEdit
+ - A Search icon on the left with optional menu
+ - When there is no text and doesn't have focus an "inactive text" is displayed
+ - When there is text a clear button is displayed on the right hand side
+ */
+SearchLineEdit::SearchLineEdit(QWidget *parent) : ExLineEdit(parent),
+ m_searchButton(new SearchButton(this))
+{
+ connect(lineEdit(), SIGNAL(textChanged(const QString &)),
+ this, SIGNAL(textChanged(const QString &)));
+ setLeftWidget(m_searchButton);
+ m_inactiveText = tr("Search");
+
+ QSizePolicy policy = sizePolicy();
+ setSizePolicy(QSizePolicy::Preferred, policy.verticalPolicy());
+}
+
+void SearchLineEdit::paintEvent(QPaintEvent *event)
+{
+ if (lineEdit()->text().isEmpty() && !hasFocus() && !m_inactiveText.isEmpty()) {
+ ExLineEdit::paintEvent(event);
+ QStyleOptionFrameV2 panel;
+ initStyleOption(&panel);
+ QRect r = style()->subElementRect(QStyle::SE_LineEditContents, &panel, this);
+ QFontMetrics fm = fontMetrics();
+ int horizontalMargin = lineEdit()->x();
+ QRect lineRect(horizontalMargin + r.x(), r.y() + (r.height() - fm.height() + 1) / 2,
+ r.width() - 2 * horizontalMargin, fm.height());
+ QPainter painter(this);
+ painter.setPen(palette().brush(QPalette::Disabled, QPalette::Text).color());
+ painter.drawText(lineRect, Qt::AlignLeft|Qt::AlignVCenter, m_inactiveText);
+ } else {
+ ExLineEdit::paintEvent(event);
+ }
+}
+
+void SearchLineEdit::resizeEvent(QResizeEvent *event)
+{
+ updateGeometries();
+ ExLineEdit::resizeEvent(event);
+}
+
+void SearchLineEdit::updateGeometries()
+{
+ int menuHeight = height();
+ int menuWidth = menuHeight + 1;
+ if (!m_searchButton->m_menu)
+ menuWidth = (menuHeight / 5) * 4;
+ m_searchButton->resize(QSize(menuWidth, menuHeight));
+}
+
+QString SearchLineEdit::inactiveText() const
+{
+ return m_inactiveText;
+}
+
+void SearchLineEdit::setInactiveText(const QString &text)
+{
+ m_inactiveText = text;
+}
+
+void SearchLineEdit::setMenu(QMenu *menu)
+{
+ if (m_searchButton->m_menu)
+ m_searchButton->m_menu->deleteLater();
+ m_searchButton->m_menu = menu;
+ updateGeometries();
+}
+
+QMenu *SearchLineEdit::menu() const
+{
+ if (!m_searchButton->m_menu) {
+ m_searchButton->m_menu = new QMenu(m_searchButton);
+ if (isVisible())
+ (const_cast<SearchLineEdit*>(this))->updateGeometries();
+ }
+ return m_searchButton->m_menu;
+}
+
diff --git a/demos/browser/searchlineedit.h b/demos/browser/searchlineedit.h
new file mode 100644
index 0000000..be17e05
--- /dev/null
+++ b/demos/browser/searchlineedit.h
@@ -0,0 +1,103 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SEARCHLINEEDIT_H
+#define SEARCHLINEEDIT_H
+
+#include "urllineedit.h"
+
+#include <QtGui/QLineEdit>
+#include <QtGui/QAbstractButton>
+
+QT_BEGIN_NAMESPACE
+class QMenu;
+QT_END_NAMESPACE
+
+class SearchButton;
+
+/*
+ Clear button on the right hand side of the search widget.
+ Hidden by default
+ "A circle with an X in it"
+ */
+class ClearButton : public QAbstractButton
+{
+ Q_OBJECT
+
+public:
+ ClearButton(QWidget *parent = 0);
+ void paintEvent(QPaintEvent *event);
+
+public slots:
+ void textChanged(const QString &text);
+};
+
+
+class SearchLineEdit : public ExLineEdit
+{
+ Q_OBJECT
+ Q_PROPERTY(QString inactiveText READ inactiveText WRITE setInactiveText)
+
+signals:
+ void textChanged(const QString &text);
+
+public:
+ SearchLineEdit(QWidget *parent = 0);
+
+ QString inactiveText() const;
+ void setInactiveText(const QString &text);
+
+ QMenu *menu() const;
+ void setMenu(QMenu *menu);
+
+protected:
+ void resizeEvent(QResizeEvent *event);
+ void paintEvent(QPaintEvent *event);
+
+private:
+ void updateGeometries();
+
+ SearchButton *m_searchButton;
+ QString m_inactiveText;
+};
+
+#endif // SEARCHLINEEDIT_H
+
diff --git a/demos/browser/settings.cpp b/demos/browser/settings.cpp
new file mode 100644
index 0000000..09f4846
--- /dev/null
+++ b/demos/browser/settings.cpp
@@ -0,0 +1,324 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "settings.h"
+
+#include "browserapplication.h"
+#include "browsermainwindow.h"
+#include "cookiejar.h"
+#include "history.h"
+#include "networkaccessmanager.h"
+#include "webview.h"
+
+#include <QtCore/QSettings>
+#include <QtGui/QtGui>
+#include <QtWebKit/QtWebKit>
+
+SettingsDialog::SettingsDialog(QWidget *parent)
+ : QDialog(parent)
+{
+ setupUi(this);
+ connect(exceptionsButton, SIGNAL(clicked()), this, SLOT(showExceptions()));
+ connect(setHomeToCurrentPageButton, SIGNAL(clicked()), this, SLOT(setHomeToCurrentPage()));
+ connect(cookiesButton, SIGNAL(clicked()), this, SLOT(showCookies()));
+ connect(standardFontButton, SIGNAL(clicked()), this, SLOT(chooseFont()));
+ connect(fixedFontButton, SIGNAL(clicked()), this, SLOT(chooseFixedFont()));
+
+ loadDefaults();
+ loadFromSettings();
+}
+
+void SettingsDialog::loadDefaults()
+{
+ QWebSettings *defaultSettings = QWebSettings::globalSettings();
+ QString standardFontFamily = defaultSettings->fontFamily(QWebSettings::StandardFont);
+ int standardFontSize = defaultSettings->fontSize(QWebSettings::DefaultFontSize);
+ standardFont = QFont(standardFontFamily, standardFontSize);
+ standardLabel->setText(QString(QLatin1String("%1 %2")).arg(standardFont.family()).arg(standardFont.pointSize()));
+
+ QString fixedFontFamily = defaultSettings->fontFamily(QWebSettings::FixedFont);
+ int fixedFontSize = defaultSettings->fontSize(QWebSettings::DefaultFixedFontSize);
+ fixedFont = QFont(fixedFontFamily, fixedFontSize);
+ fixedLabel->setText(QString(QLatin1String("%1 %2")).arg(fixedFont.family()).arg(fixedFont.pointSize()));
+
+ downloadsLocation->setText(QDesktopServices::storageLocation(QDesktopServices::DesktopLocation));
+
+ enableJavascript->setChecked(defaultSettings->testAttribute(QWebSettings::JavascriptEnabled));
+ enablePlugins->setChecked(defaultSettings->testAttribute(QWebSettings::PluginsEnabled));
+}
+
+void SettingsDialog::loadFromSettings()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("MainWindow"));
+ QString defaultHome = QLatin1String("http://qtsoftware.com");
+ homeLineEdit->setText(settings.value(QLatin1String("home"), defaultHome).toString());
+ settings.endGroup();
+
+ settings.beginGroup(QLatin1String("history"));
+ int historyExpire = settings.value(QLatin1String("historyExpire")).toInt();
+ int idx = 0;
+ switch (historyExpire) {
+ case 1: idx = 0; break;
+ case 7: idx = 1; break;
+ case 14: idx = 2; break;
+ case 30: idx = 3; break;
+ case 365: idx = 4; break;
+ case -1: idx = 5; break;
+ default:
+ idx = 5;
+ }
+ expireHistory->setCurrentIndex(idx);
+ settings.endGroup();
+
+ settings.beginGroup(QLatin1String("downloadmanager"));
+ QString downloadDirectory = settings.value(QLatin1String("downloadDirectory"), downloadsLocation->text()).toString();
+ downloadsLocation->setText(downloadDirectory);
+ settings.endGroup();
+
+ settings.beginGroup(QLatin1String("general"));
+ openLinksIn->setCurrentIndex(settings.value(QLatin1String("openLinksIn"), openLinksIn->currentIndex()).toInt());
+
+ settings.endGroup();
+
+ // Appearance
+ settings.beginGroup(QLatin1String("websettings"));
+ fixedFont = qVariantValue<QFont>(settings.value(QLatin1String("fixedFont"), fixedFont));
+ standardFont = qVariantValue<QFont>(settings.value(QLatin1String("standardFont"), standardFont));
+
+ standardLabel->setText(QString(QLatin1String("%1 %2")).arg(standardFont.family()).arg(standardFont.pointSize()));
+ fixedLabel->setText(QString(QLatin1String("%1 %2")).arg(fixedFont.family()).arg(fixedFont.pointSize()));
+
+ enableJavascript->setChecked(settings.value(QLatin1String("enableJavascript"), enableJavascript->isChecked()).toBool());
+ enablePlugins->setChecked(settings.value(QLatin1String("enablePlugins"), enablePlugins->isChecked()).toBool());
+ userStyleSheet->setText(settings.value(QLatin1String("userStyleSheet")).toUrl().toString());
+ settings.endGroup();
+
+ // Privacy
+ settings.beginGroup(QLatin1String("cookies"));
+
+ CookieJar *jar = BrowserApplication::cookieJar();
+ QByteArray value = settings.value(QLatin1String("acceptCookies"), QLatin1String("AcceptOnlyFromSitesNavigatedTo")).toByteArray();
+ QMetaEnum acceptPolicyEnum = jar->staticMetaObject.enumerator(jar->staticMetaObject.indexOfEnumerator("AcceptPolicy"));
+ CookieJar::AcceptPolicy acceptCookies = acceptPolicyEnum.keyToValue(value) == -1 ?
+ CookieJar::AcceptOnlyFromSitesNavigatedTo :
+ static_cast<CookieJar::AcceptPolicy>(acceptPolicyEnum.keyToValue(value));
+ switch(acceptCookies) {
+ case CookieJar::AcceptAlways:
+ acceptCombo->setCurrentIndex(0);
+ break;
+ case CookieJar::AcceptNever:
+ acceptCombo->setCurrentIndex(1);
+ break;
+ case CookieJar::AcceptOnlyFromSitesNavigatedTo:
+ acceptCombo->setCurrentIndex(2);
+ break;
+ }
+
+ value = settings.value(QLatin1String("keepCookiesUntil"), QLatin1String("Expire")).toByteArray();
+ QMetaEnum keepPolicyEnum = jar->staticMetaObject.enumerator(jar->staticMetaObject.indexOfEnumerator("KeepPolicy"));
+ CookieJar::KeepPolicy keepCookies = keepPolicyEnum.keyToValue(value) == -1 ?
+ CookieJar::KeepUntilExpire :
+ static_cast<CookieJar::KeepPolicy>(keepPolicyEnum.keyToValue(value));
+ switch(keepCookies) {
+ case CookieJar::KeepUntilExpire:
+ keepUntilCombo->setCurrentIndex(0);
+ break;
+ case CookieJar::KeepUntilExit:
+ keepUntilCombo->setCurrentIndex(1);
+ break;
+ case CookieJar::KeepUntilTimeLimit:
+ keepUntilCombo->setCurrentIndex(2);
+ break;
+ }
+ settings.endGroup();
+
+
+ // Proxy
+ settings.beginGroup(QLatin1String("proxy"));
+ proxySupport->setChecked(settings.value(QLatin1String("enabled"), false).toBool());
+ proxyType->setCurrentIndex(settings.value(QLatin1String("type"), 0).toInt());
+ proxyHostName->setText(settings.value(QLatin1String("hostName")).toString());
+ proxyPort->setValue(settings.value(QLatin1String("port"), 1080).toInt());
+ proxyUserName->setText(settings.value(QLatin1String("userName")).toString());
+ proxyPassword->setText(settings.value(QLatin1String("password")).toString());
+ settings.endGroup();
+}
+
+void SettingsDialog::saveToSettings()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("MainWindow"));
+ settings.setValue(QLatin1String("home"), homeLineEdit->text());
+ settings.endGroup();
+
+ settings.beginGroup(QLatin1String("general"));
+ settings.setValue(QLatin1String("openLinksIn"), openLinksIn->currentIndex());
+ settings.endGroup();
+
+ settings.beginGroup(QLatin1String("history"));
+ int historyExpire = expireHistory->currentIndex();
+ int idx = -1;
+ switch (historyExpire) {
+ case 0: idx = 1; break;
+ case 1: idx = 7; break;
+ case 2: idx = 14; break;
+ case 3: idx = 30; break;
+ case 4: idx = 365; break;
+ case 5: idx = -1; break;
+ }
+ settings.setValue(QLatin1String("historyExpire"), idx);
+ settings.endGroup();
+
+ // Appearance
+ settings.beginGroup(QLatin1String("websettings"));
+ settings.setValue(QLatin1String("fixedFont"), fixedFont);
+ settings.setValue(QLatin1String("standardFont"), standardFont);
+ settings.setValue(QLatin1String("enableJavascript"), enableJavascript->isChecked());
+ settings.setValue(QLatin1String("enablePlugins"), enablePlugins->isChecked());
+ QString userStyleSheetString = userStyleSheet->text();
+ if (QFile::exists(userStyleSheetString))
+ settings.setValue(QLatin1String("userStyleSheet"), QUrl::fromLocalFile(userStyleSheetString));
+ else
+ settings.setValue(QLatin1String("userStyleSheet"), QUrl(userStyleSheetString));
+ settings.endGroup();
+
+ //Privacy
+ settings.beginGroup(QLatin1String("cookies"));
+
+ CookieJar::KeepPolicy keepCookies;
+ switch(acceptCombo->currentIndex()) {
+ default:
+ case 0:
+ keepCookies = CookieJar::KeepUntilExpire;
+ break;
+ case 1:
+ keepCookies = CookieJar::KeepUntilExit;
+ break;
+ case 2:
+ keepCookies = CookieJar::KeepUntilTimeLimit;
+ break;
+ }
+ CookieJar *jar = BrowserApplication::cookieJar();
+ QMetaEnum acceptPolicyEnum = jar->staticMetaObject.enumerator(jar->staticMetaObject.indexOfEnumerator("AcceptPolicy"));
+ settings.setValue(QLatin1String("acceptCookies"), QLatin1String(acceptPolicyEnum.valueToKey(keepCookies)));
+
+ CookieJar::KeepPolicy keepPolicy;
+ switch(keepUntilCombo->currentIndex()) {
+ default:
+ case 0:
+ keepPolicy = CookieJar::KeepUntilExpire;
+ break;
+ case 1:
+ keepPolicy = CookieJar::KeepUntilExit;
+ break;
+ case 2:
+ keepPolicy = CookieJar::KeepUntilTimeLimit;
+ break;
+ }
+
+ QMetaEnum keepPolicyEnum = jar->staticMetaObject.enumerator(jar->staticMetaObject.indexOfEnumerator("KeepPolicy"));
+ settings.setValue(QLatin1String("keepCookiesUntil"), QLatin1String(keepPolicyEnum.valueToKey(keepPolicy)));
+
+ settings.endGroup();
+
+ // proxy
+ settings.beginGroup(QLatin1String("proxy"));
+ settings.setValue(QLatin1String("enabled"), proxySupport->isChecked());
+ settings.setValue(QLatin1String("type"), proxyType->currentIndex());
+ settings.setValue(QLatin1String("hostName"), proxyHostName->text());
+ settings.setValue(QLatin1String("port"), proxyPort->text());
+ settings.setValue(QLatin1String("userName"), proxyUserName->text());
+ settings.setValue(QLatin1String("password"), proxyPassword->text());
+ settings.endGroup();
+
+ BrowserApplication::instance()->loadSettings();
+ BrowserApplication::networkAccessManager()->loadSettings();
+ BrowserApplication::cookieJar()->loadSettings();
+ BrowserApplication::historyManager()->loadSettings();
+}
+
+void SettingsDialog::accept()
+{
+ saveToSettings();
+ QDialog::accept();
+}
+
+void SettingsDialog::showCookies()
+{
+ CookiesDialog *dialog = new CookiesDialog(BrowserApplication::cookieJar(), this);
+ dialog->exec();
+}
+
+void SettingsDialog::showExceptions()
+{
+ CookiesExceptionsDialog *dialog = new CookiesExceptionsDialog(BrowserApplication::cookieJar(), this);
+ dialog->exec();
+}
+
+void SettingsDialog::chooseFont()
+{
+ bool ok;
+ QFont font = QFontDialog::getFont(&ok, standardFont, this);
+ if ( ok ) {
+ standardFont = font;
+ standardLabel->setText(QString(QLatin1String("%1 %2")).arg(font.family()).arg(font.pointSize()));
+ }
+}
+
+void SettingsDialog::chooseFixedFont()
+{
+ bool ok;
+ QFont font = QFontDialog::getFont(&ok, fixedFont, this);
+ if ( ok ) {
+ fixedFont = font;
+ fixedLabel->setText(QString(QLatin1String("%1 %2")).arg(font.family()).arg(font.pointSize()));
+ }
+}
+
+void SettingsDialog::setHomeToCurrentPage()
+{
+ BrowserMainWindow *mw = static_cast<BrowserMainWindow*>(parent());
+ WebView *webView = mw->currentTab();
+ if (webView)
+ homeLineEdit->setText(webView->url().toString());
+}
+
diff --git a/demos/browser/settings.h b/demos/browser/settings.h
new file mode 100644
index 0000000..a7a0a35
--- /dev/null
+++ b/demos/browser/settings.h
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SETTINGS_H
+#define SETTINGS_H
+
+#include <QtGui/QDialog>
+#include "ui_settings.h"
+
+class SettingsDialog : public QDialog, public Ui_Settings
+{
+ Q_OBJECT
+
+public:
+ SettingsDialog(QWidget *parent = 0);
+ void accept();
+
+private slots:
+ void loadDefaults();
+ void loadFromSettings();
+ void saveToSettings();
+
+ void setHomeToCurrentPage();
+ void showCookies();
+ void showExceptions();
+
+ void chooseFont();
+ void chooseFixedFont();
+
+private:
+ QFont standardFont;
+ QFont fixedFont;
+};
+
+#endif // SETTINGS_H
+
diff --git a/demos/browser/settings.ui b/demos/browser/settings.ui
new file mode 100644
index 0000000..3491ce0
--- /dev/null
+++ b/demos/browser/settings.ui
@@ -0,0 +1,614 @@
+<ui version="4.0" >
+ <class>Settings</class>
+ <widget class="QDialog" name="Settings" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>657</width>
+ <height>322</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Settings</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout" >
+ <item row="2" column="0" >
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QTabWidget" name="tabWidget" >
+ <property name="currentIndex" >
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="tab" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>627</width>
+ <height>243</height>
+ </rect>
+ </property>
+ <attribute name="title" >
+ <string>General</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_4" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
+ <string>Home:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2" >
+ <widget class="QLineEdit" name="homeLineEdit" />
+ </item>
+ <item row="1" column="1" >
+ <widget class="QPushButton" name="setHomeToCurrentPageButton" >
+ <property name="text" >
+ <string>Set to current page</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <spacer name="horizontalSpacer" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>280</width>
+ <height>18</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_4" >
+ <property name="text" >
+ <string>Remove history items:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="2" >
+ <widget class="QComboBox" name="expireHistory" >
+ <item>
+ <property name="text" >
+ <string>After one day</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>After one week</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>After two weeks</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>After one month</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>After one year</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Manually</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="label_7" >
+ <property name="text" >
+ <string>Save downloads to:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" colspan="2" >
+ <widget class="QLineEdit" name="downloadsLocation" />
+ </item>
+ <item row="4" column="0" >
+ <widget class="QLabel" name="label_8" >
+ <property name="text" >
+ <string>Open links from applications:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" colspan="2" >
+ <widget class="QComboBox" name="openLinksIn" >
+ <item>
+ <property name="text" >
+ <string>In a tab in the current window</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>In a new window</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="5" column="1" colspan="2" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>391</width>
+ <height>262</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_3" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>627</width>
+ <height>243</height>
+ </rect>
+ </property>
+ <attribute name="title" >
+ <string>Appearance</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_3" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_5" >
+ <property name="text" >
+ <string>Standard font:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="standardLabel" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="text" >
+ <string>Times 16</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QPushButton" name="standardFontButton" >
+ <property name="text" >
+ <string>Select...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_6" >
+ <property name="text" >
+ <string>Fixed-width font:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="fixedLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="text" >
+ <string>Courier 13</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QPushButton" name="fixedFontButton" >
+ <property name="text" >
+ <string>Select...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <spacer name="verticalSpacer" >
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>20</width>
+ <height>93</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_2" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>627</width>
+ <height>243</height>
+ </rect>
+ </property>
+ <attribute name="title" >
+ <string>Privacy</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout_3" >
+ <item>
+ <widget class="QGroupBox" name="groupBox" >
+ <property name="title" >
+ <string>Web Content</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2" >
+ <item>
+ <widget class="QCheckBox" name="enablePlugins" >
+ <property name="text" >
+ <string>Enable Plugins</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="enableJavascript" >
+ <property name="text" >
+ <string>Enable Javascript</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="cookiesGroupBox" >
+ <property name="title" >
+ <string>Cookies</string>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Accept Cookies:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QComboBox" name="acceptCombo" >
+ <item>
+ <property name="text" >
+ <string>Always</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Never</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Only from sites you navigate to</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QPushButton" name="exceptionsButton" >
+ <property name="text" >
+ <string>Exceptions...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Keep until:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QComboBox" name="keepUntilCombo" >
+ <item>
+ <property name="text" >
+ <string>They expire</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>I exit the application</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>At most 90 days</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QPushButton" name="cookiesButton" >
+ <property name="text" >
+ <string>Cookies...</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>371</width>
+ <height>177</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_4" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>627</width>
+ <height>243</height>
+ </rect>
+ </property>
+ <attribute name="title" >
+ <string>Proxy</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout" >
+ <item>
+ <widget class="QGroupBox" name="proxySupport" >
+ <property name="title" >
+ <string>Enable proxy</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_6" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_9" >
+ <property name="text" >
+ <string>Type:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2" >
+ <widget class="QComboBox" name="proxyType" >
+ <item>
+ <property name="text" >
+ <string>Socks5</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Http</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_10" >
+ <property name="text" >
+ <string>Host:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2" >
+ <widget class="QLineEdit" name="proxyHostName" />
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_11" >
+ <property name="text" >
+ <string>Port:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QSpinBox" name="proxyPort" >
+ <property name="maximum" >
+ <number>10000</number>
+ </property>
+ <property name="value" >
+ <number>1080</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <spacer name="horizontalSpacer_2" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>293</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="label_12" >
+ <property name="text" >
+ <string>User Name:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" colspan="2" >
+ <widget class="QLineEdit" name="proxyUserName" />
+ </item>
+ <item row="4" column="0" >
+ <widget class="QLabel" name="label_13" >
+ <property name="text" >
+ <string>Password:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" colspan="2" >
+ <widget class="QLineEdit" name="proxyPassword" >
+ <property name="echoMode" >
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" >
+ <spacer name="verticalSpacer_2" >
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>20</width>
+ <height>8</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_5" >
+ <attribute name="title" >
+ <string>Advanced</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_2" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_14" >
+ <property name="text" >
+ <string>Style Sheet:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLineEdit" name="userStyleSheet" />
+ </item>
+ <item row="1" column="1" >
+ <spacer name="verticalSpacer_3" >
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>20</width>
+ <height>176</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>Settings</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>Settings</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/demos/browser/squeezelabel.cpp b/demos/browser/squeezelabel.cpp
new file mode 100644
index 0000000..3209e16
--- /dev/null
+++ b/demos/browser/squeezelabel.cpp
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "squeezelabel.h"
+
+SqueezeLabel::SqueezeLabel(QWidget *parent) : QLabel(parent)
+{
+}
+
+void SqueezeLabel::paintEvent(QPaintEvent *event)
+{
+ QFontMetrics fm = fontMetrics();
+ if (fm.width(text()) > contentsRect().width()) {
+ QString elided = fm.elidedText(text(), Qt::ElideMiddle, width());
+ QString oldText = text();
+ setText(elided);
+ QLabel::paintEvent(event);
+ setText(oldText);
+ } else {
+ QLabel::paintEvent(event);
+ }
+}
+
diff --git a/demos/browser/squeezelabel.h b/demos/browser/squeezelabel.h
new file mode 100644
index 0000000..2f82240
--- /dev/null
+++ b/demos/browser/squeezelabel.h
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SQUEEZELABEL_H
+#define SQUEEZELABEL_H
+
+#include <QtGui/QLabel>
+
+class SqueezeLabel : public QLabel
+{
+ Q_OBJECT
+
+public:
+ SqueezeLabel(QWidget *parent = 0);
+
+protected:
+ void paintEvent(QPaintEvent *event);
+
+};
+
+#endif // SQUEEZELABEL_H
+
diff --git a/demos/browser/tabwidget.cpp b/demos/browser/tabwidget.cpp
new file mode 100644
index 0000000..7a2ee40
--- /dev/null
+++ b/demos/browser/tabwidget.cpp
@@ -0,0 +1,830 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "tabwidget.h"
+
+#include "browserapplication.h"
+#include "browsermainwindow.h"
+#include "history.h"
+#include "urllineedit.h"
+#include "webview.h"
+
+#include <QtGui/QClipboard>
+#include <QtGui/QCompleter>
+#include <QtGui/QListView>
+#include <QtGui/QMenu>
+#include <QtGui/QMessageBox>
+#include <QtGui/QMouseEvent>
+#include <QtGui/QStackedWidget>
+#include <QtGui/QStyle>
+#include <QtGui/QToolButton>
+
+#include <QtCore/QDebug>
+
+TabBar::TabBar(QWidget *parent)
+ : QTabBar(parent)
+{
+ setContextMenuPolicy(Qt::CustomContextMenu);
+ setAcceptDrops(true);
+ connect(this, SIGNAL(customContextMenuRequested(const QPoint &)),
+ this, SLOT(contextMenuRequested(const QPoint &)));
+
+ QString alt = QLatin1String("Alt+%1");
+ for (int i = 1; i <= 10; ++i) {
+ int key = i;
+ if (key == 10)
+ key = 0;
+ QShortcut *shortCut = new QShortcut(alt.arg(key), this);
+ m_tabShortcuts.append(shortCut);
+ connect(shortCut, SIGNAL(activated()), this, SLOT(selectTabAction()));
+ }
+ setTabsClosable(true);
+ connect(this, SIGNAL(tabCloseRequested(int)),
+ this, SIGNAL(closeTab(int)));
+ setSelectionBehaviorOnRemove(QTabBar::SelectPreviousTab);
+ setMovable(true);
+}
+
+void TabBar::selectTabAction()
+{
+ if (QShortcut *shortCut = qobject_cast<QShortcut*>(sender())) {
+ int index = m_tabShortcuts.indexOf(shortCut);
+ if (index == 0)
+ index = 10;
+ setCurrentIndex(index);
+ }
+}
+
+void TabBar::contextMenuRequested(const QPoint &position)
+{
+ QMenu menu;
+ menu.addAction(tr("New &Tab"), this, SIGNAL(newTab()), QKeySequence::AddTab);
+ int index = tabAt(position);
+ if (-1 != index) {
+ QAction *action = menu.addAction(tr("Clone Tab"),
+ this, SLOT(cloneTab()));
+ action->setData(index);
+
+ menu.addSeparator();
+
+ action = menu.addAction(tr("&Close Tab"),
+ this, SLOT(closeTab()), QKeySequence::Close);
+ action->setData(index);
+
+ action = menu.addAction(tr("Close &Other Tabs"),
+ this, SLOT(closeOtherTabs()));
+ action->setData(index);
+
+ menu.addSeparator();
+
+ action = menu.addAction(tr("Reload Tab"),
+ this, SLOT(reloadTab()), QKeySequence::Refresh);
+ action->setData(index);
+ } else {
+ menu.addSeparator();
+ }
+ menu.addAction(tr("Reload All Tabs"), this, SIGNAL(reloadAllTabs()));
+ menu.exec(QCursor::pos());
+}
+
+void TabBar::cloneTab()
+{
+ if (QAction *action = qobject_cast<QAction*>(sender())) {
+ int index = action->data().toInt();
+ emit cloneTab(index);
+ }
+}
+
+void TabBar::closeTab()
+{
+ if (QAction *action = qobject_cast<QAction*>(sender())) {
+ int index = action->data().toInt();
+ emit closeTab(index);
+ }
+}
+
+void TabBar::closeOtherTabs()
+{
+ if (QAction *action = qobject_cast<QAction*>(sender())) {
+ int index = action->data().toInt();
+ emit closeOtherTabs(index);
+ }
+}
+
+void TabBar::mousePressEvent(QMouseEvent *event)
+{
+ if (event->button() == Qt::LeftButton)
+ m_dragStartPos = event->pos();
+ QTabBar::mousePressEvent(event);
+}
+
+void TabBar::mouseMoveEvent(QMouseEvent *event)
+{
+ if (event->buttons() == Qt::LeftButton) {
+ int diffX = event->pos().x() - m_dragStartPos.x();
+ int diffY = event->pos().y() - m_dragStartPos.y();
+ if ((event->pos() - m_dragStartPos).manhattanLength() > QApplication::startDragDistance()
+ && diffX < 3 && diffX > -3
+ && diffY < -10) {
+ QDrag *drag = new QDrag(this);
+ QMimeData *mimeData = new QMimeData;
+ QList<QUrl> urls;
+ int index = tabAt(event->pos());
+ QUrl url = tabData(index).toUrl();
+ urls.append(url);
+ mimeData->setUrls(urls);
+ mimeData->setText(tabText(index));
+ mimeData->setData(QLatin1String("action"), "tab-reordering");
+ drag->setMimeData(mimeData);
+ drag->exec();
+ }
+ }
+ QTabBar::mouseMoveEvent(event);
+}
+
+// When index is -1 index chooses the current tab
+void TabWidget::reloadTab(int index)
+{
+ if (index < 0)
+ index = currentIndex();
+ if (index < 0 || index >= count())
+ return;
+
+ QWidget *widget = this->widget(index);
+ if (WebView *tab = qobject_cast<WebView*>(widget))
+ tab->reload();
+}
+
+void TabBar::reloadTab()
+{
+ if (QAction *action = qobject_cast<QAction*>(sender())) {
+ int index = action->data().toInt();
+ emit reloadTab(index);
+ }
+}
+
+TabWidget::TabWidget(QWidget *parent)
+ : QTabWidget(parent)
+ , m_recentlyClosedTabsAction(0)
+ , m_newTabAction(0)
+ , m_closeTabAction(0)
+ , m_nextTabAction(0)
+ , m_previousTabAction(0)
+ , m_recentlyClosedTabsMenu(0)
+ , m_lineEditCompleter(0)
+ , m_lineEdits(0)
+ , m_tabBar(new TabBar(this))
+{
+ setElideMode(Qt::ElideRight);
+
+ connect(m_tabBar, SIGNAL(newTab()), this, SLOT(newTab()));
+ connect(m_tabBar, SIGNAL(closeTab(int)), this, SLOT(closeTab(int)));
+ connect(m_tabBar, SIGNAL(cloneTab(int)), this, SLOT(cloneTab(int)));
+ connect(m_tabBar, SIGNAL(closeOtherTabs(int)), this, SLOT(closeOtherTabs(int)));
+ connect(m_tabBar, SIGNAL(reloadTab(int)), this, SLOT(reloadTab(int)));
+ connect(m_tabBar, SIGNAL(reloadAllTabs()), this, SLOT(reloadAllTabs()));
+ connect(m_tabBar, SIGNAL(tabMoved(int, int)), this, SLOT(moveTab(int, int)));
+ setTabBar(m_tabBar);
+ setDocumentMode(true);
+
+ // Actions
+ m_newTabAction = new QAction(QIcon(QLatin1String(":addtab.png")), tr("New &Tab"), this);
+ m_newTabAction->setShortcuts(QKeySequence::AddTab);
+ m_newTabAction->setIconVisibleInMenu(false);
+ connect(m_newTabAction, SIGNAL(triggered()), this, SLOT(newTab()));
+
+ m_closeTabAction = new QAction(QIcon(QLatin1String(":closetab.png")), tr("&Close Tab"), this);
+ m_closeTabAction->setShortcuts(QKeySequence::Close);
+ m_closeTabAction->setIconVisibleInMenu(false);
+ connect(m_closeTabAction, SIGNAL(triggered()), this, SLOT(closeTab()));
+
+ m_nextTabAction = new QAction(tr("Show Next Tab"), this);
+ QList<QKeySequence> shortcuts;
+ shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BraceRight));
+ shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_PageDown));
+ shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BracketRight));
+ shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_Less));
+ m_nextTabAction->setShortcuts(shortcuts);
+ connect(m_nextTabAction, SIGNAL(triggered()), this, SLOT(nextTab()));
+
+ m_previousTabAction = new QAction(tr("Show Previous Tab"), this);
+ shortcuts.clear();
+ shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BraceLeft));
+ shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_PageUp));
+ shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BracketLeft));
+ shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_Greater));
+ m_previousTabAction->setShortcuts(shortcuts);
+ connect(m_previousTabAction, SIGNAL(triggered()), this, SLOT(previousTab()));
+
+ m_recentlyClosedTabsMenu = new QMenu(this);
+ connect(m_recentlyClosedTabsMenu, SIGNAL(aboutToShow()),
+ this, SLOT(aboutToShowRecentTabsMenu()));
+ connect(m_recentlyClosedTabsMenu, SIGNAL(triggered(QAction *)),
+ this, SLOT(aboutToShowRecentTriggeredAction(QAction *)));
+ m_recentlyClosedTabsAction = new QAction(tr("Recently Closed Tabs"), this);
+ m_recentlyClosedTabsAction->setMenu(m_recentlyClosedTabsMenu);
+ m_recentlyClosedTabsAction->setEnabled(false);
+
+ connect(this, SIGNAL(currentChanged(int)),
+ this, SLOT(currentChanged(int)));
+
+ m_lineEdits = new QStackedWidget(this);
+}
+
+void TabWidget::clear()
+{
+ // clear the recently closed tabs
+ m_recentlyClosedTabs.clear();
+ // clear the line edit history
+ for (int i = 0; i < m_lineEdits->count(); ++i) {
+ QLineEdit *qLineEdit = lineEdit(i);
+ qLineEdit->setText(qLineEdit->text());
+ }
+}
+
+void TabWidget::moveTab(int fromIndex, int toIndex)
+{
+ QWidget *lineEdit = m_lineEdits->widget(fromIndex);
+ m_lineEdits->removeWidget(lineEdit);
+ m_lineEdits->insertWidget(toIndex, lineEdit);
+}
+
+void TabWidget::addWebAction(QAction *action, QWebPage::WebAction webAction)
+{
+ if (!action)
+ return;
+ m_actions.append(new WebActionMapper(action, webAction, this));
+}
+
+void TabWidget::currentChanged(int index)
+{
+ WebView *webView = this->webView(index);
+ if (!webView)
+ return;
+
+ Q_ASSERT(m_lineEdits->count() == count());
+
+ WebView *oldWebView = this->webView(m_lineEdits->currentIndex());
+ if (oldWebView) {
+ disconnect(oldWebView, SIGNAL(statusBarMessage(const QString&)),
+ this, SIGNAL(showStatusBarMessage(const QString&)));
+ disconnect(oldWebView->page(), SIGNAL(linkHovered(const QString&, const QString&, const QString&)),
+ this, SIGNAL(linkHovered(const QString&)));
+ disconnect(oldWebView, SIGNAL(loadProgress(int)),
+ this, SIGNAL(loadProgress(int)));
+ }
+
+ connect(webView, SIGNAL(statusBarMessage(const QString&)),
+ this, SIGNAL(showStatusBarMessage(const QString&)));
+ connect(webView->page(), SIGNAL(linkHovered(const QString&, const QString&, const QString&)),
+ this, SIGNAL(linkHovered(const QString&)));
+ connect(webView, SIGNAL(loadProgress(int)),
+ this, SIGNAL(loadProgress(int)));
+
+ for (int i = 0; i < m_actions.count(); ++i) {
+ WebActionMapper *mapper = m_actions[i];
+ mapper->updateCurrent(webView->page());
+ }
+ emit setCurrentTitle(webView->title());
+ m_lineEdits->setCurrentIndex(index);
+ emit loadProgress(webView->progress());
+ emit showStatusBarMessage(webView->lastStatusBarText());
+ if (webView->url().isEmpty())
+ m_lineEdits->currentWidget()->setFocus();
+ else
+ webView->setFocus();
+}
+
+QAction *TabWidget::newTabAction() const
+{
+ return m_newTabAction;
+}
+
+QAction *TabWidget::closeTabAction() const
+{
+ return m_closeTabAction;
+}
+
+QAction *TabWidget::recentlyClosedTabsAction() const
+{
+ return m_recentlyClosedTabsAction;
+}
+
+QAction *TabWidget::nextTabAction() const
+{
+ return m_nextTabAction;
+}
+
+QAction *TabWidget::previousTabAction() const
+{
+ return m_previousTabAction;
+}
+
+QWidget *TabWidget::lineEditStack() const
+{
+ return m_lineEdits;
+}
+
+QLineEdit *TabWidget::currentLineEdit() const
+{
+ return lineEdit(m_lineEdits->currentIndex());
+}
+
+WebView *TabWidget::currentWebView() const
+{
+ return webView(currentIndex());
+}
+
+QLineEdit *TabWidget::lineEdit(int index) const
+{
+ UrlLineEdit *urlLineEdit = qobject_cast<UrlLineEdit*>(m_lineEdits->widget(index));
+ if (urlLineEdit)
+ return urlLineEdit->lineEdit();
+ return 0;
+}
+
+WebView *TabWidget::webView(int index) const
+{
+ QWidget *widget = this->widget(index);
+ if (WebView *webView = qobject_cast<WebView*>(widget)) {
+ return webView;
+ } else {
+ // optimization to delay creating the first webview
+ if (count() == 1) {
+ TabWidget *that = const_cast<TabWidget*>(this);
+ that->setUpdatesEnabled(false);
+ that->newTab();
+ that->closeTab(0);
+ that->setUpdatesEnabled(true);
+ return currentWebView();
+ }
+ }
+ return 0;
+}
+
+int TabWidget::webViewIndex(WebView *webView) const
+{
+ int index = indexOf(webView);
+ return index;
+}
+
+WebView *TabWidget::newTab(bool makeCurrent)
+{
+ // line edit
+ UrlLineEdit *urlLineEdit = new UrlLineEdit;
+ QLineEdit *lineEdit = urlLineEdit->lineEdit();
+ if (!m_lineEditCompleter && count() > 0) {
+ HistoryCompletionModel *completionModel = new HistoryCompletionModel(this);
+ completionModel->setSourceModel(BrowserApplication::historyManager()->historyFilterModel());
+ m_lineEditCompleter = new QCompleter(completionModel, this);
+ // Should this be in Qt by default?
+ QAbstractItemView *popup = m_lineEditCompleter->popup();
+ QListView *listView = qobject_cast<QListView*>(popup);
+ if (listView)
+ listView->setUniformItemSizes(true);
+ }
+ lineEdit->setCompleter(m_lineEditCompleter);
+ connect(lineEdit, SIGNAL(returnPressed()), this, SLOT(lineEditReturnPressed()));
+ m_lineEdits->addWidget(urlLineEdit);
+ m_lineEdits->setSizePolicy(lineEdit->sizePolicy());
+
+ // optimization to delay creating the more expensive WebView, history, etc
+ if (count() == 0) {
+ QWidget *emptyWidget = new QWidget;
+ QPalette p = emptyWidget->palette();
+ p.setColor(QPalette::Window, palette().color(QPalette::Base));
+ emptyWidget->setPalette(p);
+ emptyWidget->setAutoFillBackground(true);
+ disconnect(this, SIGNAL(currentChanged(int)),
+ this, SLOT(currentChanged(int)));
+ addTab(emptyWidget, tr("(Untitled)"));
+ connect(this, SIGNAL(currentChanged(int)),
+ this, SLOT(currentChanged(int)));
+ return 0;
+ }
+
+ // webview
+ WebView *webView = new WebView;
+ urlLineEdit->setWebView(webView);
+ connect(webView, SIGNAL(loadStarted()),
+ this, SLOT(webViewLoadStarted()));
+ connect(webView, SIGNAL(loadFinished(bool)),
+ this, SLOT(webViewIconChanged()));
+ connect(webView, SIGNAL(iconChanged()),
+ this, SLOT(webViewIconChanged()));
+ connect(webView, SIGNAL(titleChanged(const QString &)),
+ this, SLOT(webViewTitleChanged(const QString &)));
+ connect(webView, SIGNAL(urlChanged(const QUrl &)),
+ this, SLOT(webViewUrlChanged(const QUrl &)));
+ connect(webView->page(), SIGNAL(windowCloseRequested()),
+ this, SLOT(windowCloseRequested()));
+ connect(webView->page(), SIGNAL(geometryChangeRequested(const QRect &)),
+ this, SIGNAL(geometryChangeRequested(const QRect &)));
+ connect(webView->page(), SIGNAL(printRequested(QWebFrame *)),
+ this, SIGNAL(printRequested(QWebFrame *)));
+ connect(webView->page(), SIGNAL(menuBarVisibilityChangeRequested(bool)),
+ this, SIGNAL(menuBarVisibilityChangeRequested(bool)));
+ connect(webView->page(), SIGNAL(statusBarVisibilityChangeRequested(bool)),
+ this, SIGNAL(statusBarVisibilityChangeRequested(bool)));
+ connect(webView->page(), SIGNAL(toolBarVisibilityChangeRequested(bool)),
+ this, SIGNAL(toolBarVisibilityChangeRequested(bool)));
+ addTab(webView, tr("(Untitled)"));
+ if (makeCurrent)
+ setCurrentWidget(webView);
+
+ // webview actions
+ for (int i = 0; i < m_actions.count(); ++i) {
+ WebActionMapper *mapper = m_actions[i];
+ mapper->addChild(webView->page()->action(mapper->webAction()));
+ }
+
+ if (count() == 1)
+ currentChanged(currentIndex());
+ emit tabsChanged();
+ return webView;
+}
+
+void TabWidget::reloadAllTabs()
+{
+ for (int i = 0; i < count(); ++i) {
+ QWidget *tabWidget = widget(i);
+ if (WebView *tab = qobject_cast<WebView*>(tabWidget)) {
+ tab->reload();
+ }
+ }
+}
+
+void TabWidget::lineEditReturnPressed()
+{
+ if (QLineEdit *lineEdit = qobject_cast<QLineEdit*>(sender())) {
+ emit loadPage(lineEdit->text());
+ if (m_lineEdits->currentWidget() == lineEdit)
+ currentWebView()->setFocus();
+ }
+}
+
+void TabWidget::windowCloseRequested()
+{
+ WebPage *webPage = qobject_cast<WebPage*>(sender());
+ WebView *webView = qobject_cast<WebView*>(webPage->view());
+ int index = webViewIndex(webView);
+ if (index >= 0) {
+ if (count() == 1)
+ webView->webPage()->mainWindow()->close();
+ else
+ closeTab(index);
+ }
+}
+
+void TabWidget::closeOtherTabs(int index)
+{
+ if (-1 == index)
+ return;
+ for (int i = count() - 1; i > index; --i)
+ closeTab(i);
+ for (int i = index - 1; i >= 0; --i)
+ closeTab(i);
+}
+
+// When index is -1 index chooses the current tab
+void TabWidget::cloneTab(int index)
+{
+ if (index < 0)
+ index = currentIndex();
+ if (index < 0 || index >= count())
+ return;
+ WebView *tab = newTab(false);
+ tab->setUrl(webView(index)->url());
+}
+
+// When index is -1 index chooses the current tab
+void TabWidget::closeTab(int index)
+{
+ if (index < 0)
+ index = currentIndex();
+ if (index < 0 || index >= count())
+ return;
+
+ bool hasFocus = false;
+ if (WebView *tab = webView(index)) {
+ if (tab->isModified()) {
+ QMessageBox closeConfirmation(tab);
+ closeConfirmation.setWindowFlags(Qt::Sheet);
+ closeConfirmation.setWindowTitle(tr("Do you really want to close this page?"));
+ closeConfirmation.setInformativeText(tr("You have modified this page and when closing it you would lose the modification.\n"
+ "Do you really want to close this page?\n"));
+ closeConfirmation.setIcon(QMessageBox::Question);
+ closeConfirmation.addButton(QMessageBox::Yes);
+ closeConfirmation.addButton(QMessageBox::No);
+ closeConfirmation.setEscapeButton(QMessageBox::No);
+ if (closeConfirmation.exec() == QMessageBox::No)
+ return;
+ }
+ hasFocus = tab->hasFocus();
+
+ m_recentlyClosedTabsAction->setEnabled(true);
+ m_recentlyClosedTabs.prepend(tab->url());
+ if (m_recentlyClosedTabs.size() >= TabWidget::m_recentlyClosedTabsSize)
+ m_recentlyClosedTabs.removeLast();
+ }
+ QWidget *lineEdit = m_lineEdits->widget(index);
+ m_lineEdits->removeWidget(lineEdit);
+ lineEdit->deleteLater();
+ QWidget *webView = widget(index);
+ removeTab(index);
+ webView->deleteLater();
+ emit tabsChanged();
+ if (hasFocus && count() > 0)
+ currentWebView()->setFocus();
+ if (count() == 0)
+ emit lastTabClosed();
+}
+
+void TabWidget::webViewLoadStarted()
+{
+ WebView *webView = qobject_cast<WebView*>(sender());
+ int index = webViewIndex(webView);
+ if (-1 != index) {
+ QIcon icon(QLatin1String(":loading.gif"));
+ setTabIcon(index, icon);
+ }
+}
+
+void TabWidget::webViewIconChanged()
+{
+ WebView *webView = qobject_cast<WebView*>(sender());
+ int index = webViewIndex(webView);
+ if (-1 != index) {
+ QIcon icon = BrowserApplication::instance()->icon(webView->url());
+ setTabIcon(index, icon);
+ }
+}
+
+void TabWidget::webViewTitleChanged(const QString &title)
+{
+ WebView *webView = qobject_cast<WebView*>(sender());
+ int index = webViewIndex(webView);
+ if (-1 != index) {
+ setTabText(index, title);
+ }
+ if (currentIndex() == index)
+ emit setCurrentTitle(title);
+ BrowserApplication::historyManager()->updateHistoryItem(webView->url(), title);
+}
+
+void TabWidget::webViewUrlChanged(const QUrl &url)
+{
+ WebView *webView = qobject_cast<WebView*>(sender());
+ int index = webViewIndex(webView);
+ if (-1 != index) {
+ m_tabBar->setTabData(index, url);
+ }
+ emit tabsChanged();
+}
+
+void TabWidget::aboutToShowRecentTabsMenu()
+{
+ m_recentlyClosedTabsMenu->clear();
+ for (int i = 0; i < m_recentlyClosedTabs.count(); ++i) {
+ QAction *action = new QAction(m_recentlyClosedTabsMenu);
+ action->setData(m_recentlyClosedTabs.at(i));
+ QIcon icon = BrowserApplication::instance()->icon(m_recentlyClosedTabs.at(i));
+ action->setIcon(icon);
+ action->setText(m_recentlyClosedTabs.at(i).toString());
+ m_recentlyClosedTabsMenu->addAction(action);
+ }
+}
+
+void TabWidget::aboutToShowRecentTriggeredAction(QAction *action)
+{
+ QUrl url = action->data().toUrl();
+ loadUrlInCurrentTab(url);
+}
+
+void TabWidget::mouseDoubleClickEvent(QMouseEvent *event)
+{
+ if (!childAt(event->pos())
+ // Remove the line below when QTabWidget does not have a one pixel frame
+ && event->pos().y() < (tabBar()->y() + tabBar()->height())) {
+ newTab();
+ return;
+ }
+ QTabWidget::mouseDoubleClickEvent(event);
+}
+
+void TabWidget::contextMenuEvent(QContextMenuEvent *event)
+{
+ if (!childAt(event->pos())) {
+ m_tabBar->contextMenuRequested(event->pos());
+ return;
+ }
+ QTabWidget::contextMenuEvent(event);
+}
+
+void TabWidget::mouseReleaseEvent(QMouseEvent *event)
+{
+ if (event->button() == Qt::MidButton && !childAt(event->pos())
+ // Remove the line below when QTabWidget does not have a one pixel frame
+ && event->pos().y() < (tabBar()->y() + tabBar()->height())) {
+ QUrl url(QApplication::clipboard()->text(QClipboard::Selection));
+ if (!url.isEmpty() && url.isValid() && !url.scheme().isEmpty()) {
+ WebView *webView = newTab();
+ webView->setUrl(url);
+ }
+ }
+}
+
+void TabWidget::loadUrlInCurrentTab(const QUrl &url)
+{
+ WebView *webView = currentWebView();
+ if (webView) {
+ webView->loadUrl(url);
+ webView->setFocus();
+ }
+}
+
+void TabWidget::nextTab()
+{
+ int next = currentIndex() + 1;
+ if (next == count())
+ next = 0;
+ setCurrentIndex(next);
+}
+
+void TabWidget::previousTab()
+{
+ int next = currentIndex() - 1;
+ if (next < 0)
+ next = count() - 1;
+ setCurrentIndex(next);
+}
+
+static const qint32 TabWidgetMagic = 0xaa;
+
+QByteArray TabWidget::saveState() const
+{
+ int version = 1;
+ QByteArray data;
+ QDataStream stream(&data, QIODevice::WriteOnly);
+
+ stream << qint32(TabWidgetMagic);
+ stream << qint32(version);
+
+ QStringList tabs;
+ for (int i = 0; i < count(); ++i) {
+ if (WebView *tab = qobject_cast<WebView*>(widget(i))) {
+ tabs.append(tab->url().toString());
+ } else {
+ tabs.append(QString::null);
+ }
+ }
+ stream << tabs;
+ stream << currentIndex();
+ return data;
+}
+
+bool TabWidget::restoreState(const QByteArray &state)
+{
+ int version = 1;
+ QByteArray sd = state;
+ QDataStream stream(&sd, QIODevice::ReadOnly);
+ if (stream.atEnd())
+ return false;
+
+ qint32 marker;
+ qint32 v;
+ stream >> marker;
+ stream >> v;
+ if (marker != TabWidgetMagic || v != version)
+ return false;
+
+ QStringList openTabs;
+ stream >> openTabs;
+
+ for (int i = 0; i < openTabs.count(); ++i) {
+ if (i != 0)
+ newTab();
+ loadPage(openTabs.at(i));
+ }
+
+ int currentTab;
+ stream >> currentTab;
+ setCurrentIndex(currentTab);
+
+ return true;
+}
+
+WebActionMapper::WebActionMapper(QAction *root, QWebPage::WebAction webAction, QObject *parent)
+ : QObject(parent)
+ , m_currentParent(0)
+ , m_root(root)
+ , m_webAction(webAction)
+{
+ if (!m_root)
+ return;
+ connect(m_root, SIGNAL(triggered()), this, SLOT(rootTriggered()));
+ connect(root, SIGNAL(destroyed(QObject *)), this, SLOT(rootDestroyed()));
+ root->setEnabled(false);
+}
+
+void WebActionMapper::rootDestroyed()
+{
+ m_root = 0;
+}
+
+void WebActionMapper::currentDestroyed()
+{
+ updateCurrent(0);
+}
+
+void WebActionMapper::addChild(QAction *action)
+{
+ if (!action)
+ return;
+ connect(action, SIGNAL(changed()), this, SLOT(childChanged()));
+}
+
+QWebPage::WebAction WebActionMapper::webAction() const
+{
+ return m_webAction;
+}
+
+void WebActionMapper::rootTriggered()
+{
+ if (m_currentParent) {
+ QAction *gotoAction = m_currentParent->action(m_webAction);
+ gotoAction->trigger();
+ }
+}
+
+void WebActionMapper::childChanged()
+{
+ if (QAction *source = qobject_cast<QAction*>(sender())) {
+ if (m_root
+ && m_currentParent
+ && source->parent() == m_currentParent) {
+ m_root->setChecked(source->isChecked());
+ m_root->setEnabled(source->isEnabled());
+ }
+ }
+}
+
+void WebActionMapper::updateCurrent(QWebPage *currentParent)
+{
+ if (m_currentParent)
+ disconnect(m_currentParent, SIGNAL(destroyed(QObject *)),
+ this, SLOT(currentDestroyed()));
+
+ m_currentParent = currentParent;
+ if (!m_root)
+ return;
+ if (!m_currentParent) {
+ m_root->setEnabled(false);
+ m_root->setChecked(false);
+ return;
+ }
+ QAction *source = m_currentParent->action(m_webAction);
+ m_root->setChecked(source->isChecked());
+ m_root->setEnabled(source->isEnabled());
+ connect(m_currentParent, SIGNAL(destroyed(QObject *)),
+ this, SLOT(currentDestroyed()));
+}
+
diff --git a/demos/browser/tabwidget.h b/demos/browser/tabwidget.h
new file mode 100644
index 0000000..da3fe42
--- /dev/null
+++ b/demos/browser/tabwidget.h
@@ -0,0 +1,224 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef TABWIDGET_H
+#define TABWIDGET_H
+
+#include <QtGui/QTabBar>
+
+#include <QtGui/QShortcut>
+/*
+ Tab bar with a few more features such as a context menu and shortcuts
+ */
+class TabBar : public QTabBar
+{
+ Q_OBJECT
+
+signals:
+ void newTab();
+ void cloneTab(int index);
+ void closeTab(int index);
+ void closeOtherTabs(int index);
+ void reloadTab(int index);
+ void reloadAllTabs();
+ void tabMoveRequested(int fromIndex, int toIndex);
+
+public:
+ TabBar(QWidget *parent = 0);
+
+protected:
+ void mousePressEvent(QMouseEvent* event);
+ void mouseMoveEvent(QMouseEvent* event);
+
+private slots:
+ void selectTabAction();
+ void cloneTab();
+ void closeTab();
+ void closeOtherTabs();
+ void reloadTab();
+ void contextMenuRequested(const QPoint &position);
+
+private:
+ QList<QShortcut*> m_tabShortcuts;
+ friend class TabWidget;
+
+ QPoint m_dragStartPos;
+ int m_dragCurrentIndex;
+};
+
+#include <QtWebKit/QWebPage>
+
+QT_BEGIN_NAMESPACE
+class QAction;
+QT_END_NAMESPACE
+class WebView;
+/*!
+ A proxy object that connects a single browser action
+ to one child webpage action at a time.
+
+ Example usage: used to keep the main window stop action in sync with
+ the current tabs webview's stop action.
+ */
+class WebActionMapper : public QObject
+{
+ Q_OBJECT
+
+public:
+ WebActionMapper(QAction *root, QWebPage::WebAction webAction, QObject *parent);
+ QWebPage::WebAction webAction() const;
+ void addChild(QAction *action);
+ void updateCurrent(QWebPage *currentParent);
+
+private slots:
+ void rootTriggered();
+ void childChanged();
+ void rootDestroyed();
+ void currentDestroyed();
+
+private:
+ QWebPage *m_currentParent;
+ QAction *m_root;
+ QWebPage::WebAction m_webAction;
+};
+
+#include <QtCore/QUrl>
+#include <QtGui/QTabWidget>
+QT_BEGIN_NAMESPACE
+class QCompleter;
+class QLineEdit;
+class QMenu;
+class QStackedWidget;
+QT_END_NAMESPACE
+/*!
+ TabWidget that contains WebViews and a stack widget of associated line edits.
+
+ Connects up the current tab's signals to this class's signal and uses WebActionMapper
+ to proxy the actions.
+ */
+class TabWidget : public QTabWidget
+{
+ Q_OBJECT
+
+signals:
+ // tab widget signals
+ void loadPage(const QString &url);
+ void tabsChanged();
+ void lastTabClosed();
+
+ // current tab signals
+ void setCurrentTitle(const QString &url);
+ void showStatusBarMessage(const QString &message);
+ void linkHovered(const QString &link);
+ void loadProgress(int progress);
+ void geometryChangeRequested(const QRect &geometry);
+ void menuBarVisibilityChangeRequested(bool visible);
+ void statusBarVisibilityChangeRequested(bool visible);
+ void toolBarVisibilityChangeRequested(bool visible);
+ void printRequested(QWebFrame *frame);
+
+public:
+ TabWidget(QWidget *parent = 0);
+ void clear();
+ void addWebAction(QAction *action, QWebPage::WebAction webAction);
+
+ QAction *newTabAction() const;
+ QAction *closeTabAction() const;
+ QAction *recentlyClosedTabsAction() const;
+ QAction *nextTabAction() const;
+ QAction *previousTabAction() const;
+
+ QWidget *lineEditStack() const;
+ QLineEdit *currentLineEdit() const;
+ WebView *currentWebView() const;
+ WebView *webView(int index) const;
+ QLineEdit *lineEdit(int index) const;
+ int webViewIndex(WebView *webView) const;
+
+ QByteArray saveState() const;
+ bool restoreState(const QByteArray &state);
+
+protected:
+ void mouseDoubleClickEvent(QMouseEvent *event);
+ void contextMenuEvent(QContextMenuEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+
+public slots:
+ void loadUrlInCurrentTab(const QUrl &url);
+ WebView *newTab(bool makeCurrent = true);
+ void cloneTab(int index = -1);
+ void closeTab(int index = -1);
+ void closeOtherTabs(int index);
+ void reloadTab(int index = -1);
+ void reloadAllTabs();
+ void nextTab();
+ void previousTab();
+
+private slots:
+ void currentChanged(int index);
+ void aboutToShowRecentTabsMenu();
+ void aboutToShowRecentTriggeredAction(QAction *action);
+ void webViewLoadStarted();
+ void webViewIconChanged();
+ void webViewTitleChanged(const QString &title);
+ void webViewUrlChanged(const QUrl &url);
+ void lineEditReturnPressed();
+ void windowCloseRequested();
+ void moveTab(int fromIndex, int toIndex);
+
+private:
+ QAction *m_recentlyClosedTabsAction;
+ QAction *m_newTabAction;
+ QAction *m_closeTabAction;
+ QAction *m_nextTabAction;
+ QAction *m_previousTabAction;
+
+ QMenu *m_recentlyClosedTabsMenu;
+ static const int m_recentlyClosedTabsSize = 10;
+ QList<QUrl> m_recentlyClosedTabs;
+ QList<WebActionMapper*> m_actions;
+
+ QCompleter *m_lineEditCompleter;
+ QStackedWidget *m_lineEdits;
+ TabBar *m_tabBar;
+};
+
+#endif // TABWIDGET_H
+
diff --git a/demos/browser/toolbarsearch.cpp b/demos/browser/toolbarsearch.cpp
new file mode 100644
index 0000000..255b5e9
--- /dev/null
+++ b/demos/browser/toolbarsearch.cpp
@@ -0,0 +1,161 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "toolbarsearch.h"
+#include "autosaver.h"
+
+#include <QtCore/QSettings>
+#include <QtCore/QUrl>
+
+#include <QtGui/QCompleter>
+#include <QtGui/QMenu>
+#include <QtGui/QStringListModel>
+
+#include <QtWebKit/QWebSettings>
+
+/*
+ ToolbarSearch is a very basic search widget that also contains a small history.
+ Searches are turned into urls that use Google to perform search
+ */
+ToolbarSearch::ToolbarSearch(QWidget *parent)
+ : SearchLineEdit(parent)
+ , m_autosaver(new AutoSaver(this))
+ , m_maxSavedSearches(10)
+ , m_stringListModel(new QStringListModel(this))
+{
+ QMenu *m = menu();
+ connect(m, SIGNAL(aboutToShow()), this, SLOT(aboutToShowMenu()));
+ connect(m, SIGNAL(triggered(QAction*)), this, SLOT(triggeredMenuAction(QAction*)));
+
+ QCompleter *completer = new QCompleter(m_stringListModel, this);
+ completer->setCompletionMode(QCompleter::InlineCompletion);
+ lineEdit()->setCompleter(completer);
+
+ connect(lineEdit(), SIGNAL(returnPressed()), SLOT(searchNow()));
+ setInactiveText(tr("Google"));
+ load();
+}
+
+ToolbarSearch::~ToolbarSearch()
+{
+ m_autosaver->saveIfNeccessary();
+}
+
+void ToolbarSearch::save()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("toolbarsearch"));
+ settings.setValue(QLatin1String("recentSearches"), m_stringListModel->stringList());
+ settings.setValue(QLatin1String("maximumSaved"), m_maxSavedSearches);
+ settings.endGroup();
+}
+
+void ToolbarSearch::load()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("toolbarsearch"));
+ QStringList list = settings.value(QLatin1String("recentSearches")).toStringList();
+ m_maxSavedSearches = settings.value(QLatin1String("maximumSaved"), m_maxSavedSearches).toInt();
+ m_stringListModel->setStringList(list);
+ settings.endGroup();
+}
+
+void ToolbarSearch::searchNow()
+{
+ QString searchText = lineEdit()->text();
+ QStringList newList = m_stringListModel->stringList();
+ if (newList.contains(searchText))
+ newList.removeAt(newList.indexOf(searchText));
+ newList.prepend(searchText);
+ if (newList.size() >= m_maxSavedSearches)
+ newList.removeLast();
+
+ QWebSettings *globalSettings = QWebSettings::globalSettings();
+ if (!globalSettings->testAttribute(QWebSettings::PrivateBrowsingEnabled)) {
+ m_stringListModel->setStringList(newList);
+ m_autosaver->changeOccurred();
+ }
+
+ QUrl url(QLatin1String("http://www.google.com/search"));
+ url.addQueryItem(QLatin1String("q"), searchText);
+ url.addQueryItem(QLatin1String("ie"), QLatin1String("UTF-8"));
+ url.addQueryItem(QLatin1String("oe"), QLatin1String("UTF-8"));
+ url.addQueryItem(QLatin1String("client"), QLatin1String("qtdemobrowser"));
+ emit search(url);
+}
+
+void ToolbarSearch::aboutToShowMenu()
+{
+ lineEdit()->selectAll();
+ QMenu *m = menu();
+ m->clear();
+ QStringList list = m_stringListModel->stringList();
+ if (list.isEmpty()) {
+ m->addAction(tr("No Recent Searches"));
+ return;
+ }
+
+ QAction *recent = m->addAction(tr("Recent Searches"));
+ recent->setEnabled(false);
+ for (int i = 0; i < list.count(); ++i) {
+ QString text = list.at(i);
+ m->addAction(text)->setData(text);
+ }
+ m->addSeparator();
+ m->addAction(tr("Clear Recent Searches"), this, SLOT(clear()));
+}
+
+void ToolbarSearch::triggeredMenuAction(QAction *action)
+{
+ QVariant v = action->data();
+ if (v.canConvert<QString>()) {
+ QString text = v.toString();
+ lineEdit()->setText(text);
+ searchNow();
+ }
+}
+
+void ToolbarSearch::clear()
+{
+ m_stringListModel->setStringList(QStringList());
+ m_autosaver->changeOccurred();;
+}
+
diff --git a/demos/browser/toolbarsearch.h b/demos/browser/toolbarsearch.h
new file mode 100644
index 0000000..8e1be8d
--- /dev/null
+++ b/demos/browser/toolbarsearch.h
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef TOOLBARSEARCH_H
+#define TOOLBARSEARCH_H
+
+#include "searchlineedit.h"
+
+QT_BEGIN_NAMESPACE
+class QUrl;
+class QAction;
+class QStringListModel;
+QT_END_NAMESPACE
+
+class AutoSaver;
+
+class ToolbarSearch : public SearchLineEdit
+{
+ Q_OBJECT
+
+signals:
+ void search(const QUrl &url);
+
+public:
+ ToolbarSearch(QWidget *parent = 0);
+ ~ToolbarSearch();
+
+public slots:
+ void clear();
+ void searchNow();
+
+private slots:
+ void save();
+ void aboutToShowMenu();
+ void triggeredMenuAction(QAction *action);
+
+private:
+ void load();
+
+ AutoSaver *m_autosaver;
+ int m_maxSavedSearches;
+ QStringListModel *m_stringListModel;
+};
+
+#endif // TOOLBARSEARCH_H
+
diff --git a/demos/browser/urllineedit.cpp b/demos/browser/urllineedit.cpp
new file mode 100644
index 0000000..f7a6345
--- /dev/null
+++ b/demos/browser/urllineedit.cpp
@@ -0,0 +1,340 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "urllineedit.h"
+
+#include "browserapplication.h"
+#include "searchlineedit.h"
+#include "webview.h"
+
+#include <QtCore/QEvent>
+
+#include <QtGui/QApplication>
+#include <QtGui/QCompleter>
+#include <QtGui/QFocusEvent>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QLabel>
+#include <QtGui/QLineEdit>
+#include <QtGui/QPainter>
+#include <QtGui/QStyle>
+#include <QtGui/QStyleOptionFrameV2>
+
+#include <QtCore/QDebug>
+
+ExLineEdit::ExLineEdit(QWidget *parent)
+ : QWidget(parent)
+ , m_leftWidget(0)
+ , m_lineEdit(new QLineEdit(this))
+ , m_clearButton(0)
+{
+ setFocusPolicy(m_lineEdit->focusPolicy());
+ setAttribute(Qt::WA_InputMethodEnabled);
+ setSizePolicy(m_lineEdit->sizePolicy());
+ setBackgroundRole(m_lineEdit->backgroundRole());
+ setMouseTracking(true);
+ setAcceptDrops(true);
+ setAttribute(Qt::WA_MacShowFocusRect, true);
+ QPalette p = m_lineEdit->palette();
+ setPalette(p);
+
+ // line edit
+ m_lineEdit->setFrame(false);
+ m_lineEdit->setFocusProxy(this);
+ m_lineEdit->setAttribute(Qt::WA_MacShowFocusRect, false);
+ QPalette clearPalette = m_lineEdit->palette();
+ clearPalette.setBrush(QPalette::Base, QBrush(Qt::transparent));
+ m_lineEdit->setPalette(clearPalette);
+
+ // clearButton
+ m_clearButton = new ClearButton(this);
+ connect(m_clearButton, SIGNAL(clicked()),
+ m_lineEdit, SLOT(clear()));
+ connect(m_lineEdit, SIGNAL(textChanged(const QString&)),
+ m_clearButton, SLOT(textChanged(const QString&)));
+}
+
+void ExLineEdit::setLeftWidget(QWidget *widget)
+{
+ m_leftWidget = widget;
+}
+
+QWidget *ExLineEdit::leftWidget() const
+{
+ return m_leftWidget;
+}
+
+void ExLineEdit::resizeEvent(QResizeEvent *event)
+{
+ Q_ASSERT(m_leftWidget);
+ updateGeometries();
+ QWidget::resizeEvent(event);
+}
+
+void ExLineEdit::updateGeometries()
+{
+ QStyleOptionFrameV2 panel;
+ initStyleOption(&panel);
+ QRect rect = style()->subElementRect(QStyle::SE_LineEditContents, &panel, this);
+
+ int height = rect.height();
+ int width = rect.width();
+
+ int m_leftWidgetHeight = m_leftWidget->height();
+ m_leftWidget->setGeometry(rect.x() + 2, rect.y() + (height - m_leftWidgetHeight)/2,
+ m_leftWidget->width(), m_leftWidget->height());
+
+ int clearButtonWidth = this->height();
+ m_lineEdit->setGeometry(m_leftWidget->x() + m_leftWidget->width(), 0,
+ width - clearButtonWidth - m_leftWidget->width(), this->height());
+
+ m_clearButton->setGeometry(this->width() - clearButtonWidth, 0,
+ clearButtonWidth, this->height());
+}
+
+void ExLineEdit::initStyleOption(QStyleOptionFrameV2 *option) const
+{
+ option->initFrom(this);
+ option->rect = contentsRect();
+ option->lineWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, option, this);
+ option->midLineWidth = 0;
+ option->state |= QStyle::State_Sunken;
+ if (m_lineEdit->isReadOnly())
+ option->state |= QStyle::State_ReadOnly;
+#ifdef QT_KEYPAD_NAVIGATION
+ if (hasEditFocus())
+ option->state |= QStyle::State_HasEditFocus;
+#endif
+ option->features = QStyleOptionFrameV2::None;
+}
+
+QSize ExLineEdit::sizeHint() const
+{
+ m_lineEdit->setFrame(true);
+ QSize size = m_lineEdit->sizeHint();
+ m_lineEdit->setFrame(false);
+ return size;
+}
+
+void ExLineEdit::focusInEvent(QFocusEvent *event)
+{
+ m_lineEdit->event(event);
+ QWidget::focusInEvent(event);
+}
+
+void ExLineEdit::focusOutEvent(QFocusEvent *event)
+{
+ m_lineEdit->event(event);
+
+ if (m_lineEdit->completer()) {
+ connect(m_lineEdit->completer(), SIGNAL(activated(QString)),
+ m_lineEdit, SLOT(setText(QString)));
+ connect(m_lineEdit->completer(), SIGNAL(highlighted(QString)),
+ m_lineEdit, SLOT(_q_completionHighlighted(QString)));
+ }
+ QWidget::focusOutEvent(event);
+}
+
+void ExLineEdit::keyPressEvent(QKeyEvent *event)
+{
+ m_lineEdit->event(event);
+}
+
+bool ExLineEdit::event(QEvent *event)
+{
+ if (event->type() == QEvent::ShortcutOverride)
+ return m_lineEdit->event(event);
+ return QWidget::event(event);
+}
+
+void ExLineEdit::paintEvent(QPaintEvent *)
+{
+ QPainter p(this);
+ QStyleOptionFrameV2 panel;
+ initStyleOption(&panel);
+ style()->drawPrimitive(QStyle::PE_PanelLineEdit, &panel, &p, this);
+}
+
+QVariant ExLineEdit::inputMethodQuery(Qt::InputMethodQuery property) const
+{
+ return m_lineEdit->inputMethodQuery(property);
+}
+
+void ExLineEdit::inputMethodEvent(QInputMethodEvent *e)
+{
+ m_lineEdit->event(e);
+}
+
+
+class UrlIconLabel : public QLabel
+{
+
+public:
+ UrlIconLabel(QWidget *parent);
+
+ WebView *m_webView;
+
+protected:
+ void mousePressEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+
+private:
+ QPoint m_dragStartPos;
+
+};
+
+UrlIconLabel::UrlIconLabel(QWidget *parent)
+ : QLabel(parent)
+ , m_webView(0)
+{
+ setMinimumWidth(16);
+ setMinimumHeight(16);
+}
+
+void UrlIconLabel::mousePressEvent(QMouseEvent *event)
+{
+ if (event->button() == Qt::LeftButton)
+ m_dragStartPos = event->pos();
+ QLabel::mousePressEvent(event);
+}
+
+void UrlIconLabel::mouseMoveEvent(QMouseEvent *event)
+{
+ if (event->buttons() == Qt::LeftButton
+ && (event->pos() - m_dragStartPos).manhattanLength() > QApplication::startDragDistance()
+ && m_webView) {
+ QDrag *drag = new QDrag(this);
+ QMimeData *mimeData = new QMimeData;
+ mimeData->setText(QString::fromUtf8(m_webView->url().toEncoded()));
+ QList<QUrl> urls;
+ urls.append(m_webView->url());
+ mimeData->setUrls(urls);
+ drag->setMimeData(mimeData);
+ drag->exec();
+ }
+}
+
+UrlLineEdit::UrlLineEdit(QWidget *parent)
+ : ExLineEdit(parent)
+ , m_webView(0)
+ , m_iconLabel(0)
+{
+ // icon
+ m_iconLabel = new UrlIconLabel(this);
+ m_iconLabel->resize(16, 16);
+ setLeftWidget(m_iconLabel);
+ m_defaultBaseColor = palette().color(QPalette::Base);
+
+ webViewIconChanged();
+}
+
+void UrlLineEdit::setWebView(WebView *webView)
+{
+ Q_ASSERT(!m_webView);
+ m_webView = webView;
+ m_iconLabel->m_webView = webView;
+ connect(webView, SIGNAL(urlChanged(const QUrl &)),
+ this, SLOT(webViewUrlChanged(const QUrl &)));
+ connect(webView, SIGNAL(loadFinished(bool)),
+ this, SLOT(webViewIconChanged()));
+ connect(webView, SIGNAL(iconChanged()),
+ this, SLOT(webViewIconChanged()));
+ connect(webView, SIGNAL(loadProgress(int)),
+ this, SLOT(update()));
+}
+
+void UrlLineEdit::webViewUrlChanged(const QUrl &url)
+{
+ m_lineEdit->setText(QString::fromUtf8(url.toEncoded()));
+ m_lineEdit->setCursorPosition(0);
+}
+
+void UrlLineEdit::webViewIconChanged()
+{
+ QUrl url = (m_webView) ? m_webView->url() : QUrl();
+ QIcon icon = BrowserApplication::instance()->icon(url);
+ QPixmap pixmap(icon.pixmap(16, 16));
+ m_iconLabel->setPixmap(pixmap);
+}
+
+QLinearGradient UrlLineEdit::generateGradient(const QColor &color) const
+{
+ QLinearGradient gradient(0, 0, 0, height());
+ gradient.setColorAt(0, m_defaultBaseColor);
+ gradient.setColorAt(0.15, color.lighter(120));
+ gradient.setColorAt(0.5, color);
+ gradient.setColorAt(0.85, color.lighter(120));
+ gradient.setColorAt(1, m_defaultBaseColor);
+ return gradient;
+}
+
+void UrlLineEdit::focusOutEvent(QFocusEvent *event)
+{
+ if (m_lineEdit->text().isEmpty() && m_webView)
+ m_lineEdit->setText(QString::fromUtf8(m_webView->url().toEncoded()));
+ ExLineEdit::focusOutEvent(event);
+}
+
+void UrlLineEdit::paintEvent(QPaintEvent *event)
+{
+ QPalette p = palette();
+ if (m_webView && m_webView->url().scheme() == QLatin1String("https")) {
+ QColor lightYellow(248, 248, 210);
+ p.setBrush(QPalette::Base, generateGradient(lightYellow));
+ } else {
+ p.setBrush(QPalette::Base, m_defaultBaseColor);
+ }
+ setPalette(p);
+ ExLineEdit::paintEvent(event);
+
+ QPainter painter(this);
+ QStyleOptionFrameV2 panel;
+ initStyleOption(&panel);
+ QRect backgroundRect = style()->subElementRect(QStyle::SE_LineEditContents, &panel, this);
+ if (m_webView && !hasFocus()) {
+ int progress = m_webView->progress();
+ QColor loadingColor = QColor(116, 192, 250);
+ painter.setBrush(generateGradient(loadingColor));
+ painter.setPen(Qt::transparent);
+ int mid = backgroundRect.width() / 100 * progress;
+ QRect progressRect(backgroundRect.x(), backgroundRect.y(), mid, backgroundRect.height());
+ painter.drawRect(progressRect);
+ }
+}
diff --git a/demos/browser/urllineedit.h b/demos/browser/urllineedit.h
new file mode 100644
index 0000000..6a718f0
--- /dev/null
+++ b/demos/browser/urllineedit.h
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef URLLINEEDIT_H
+#define URLLINEEDIT_H
+
+#include <QtCore/QUrl>
+#include <QtGui/QWidget>
+#include <QtGui/QStyleOptionFrame>
+
+QT_BEGIN_NAMESPACE
+class QLineEdit;
+QT_END_NAMESPACE
+
+class ClearButton;
+class ExLineEdit : public QWidget
+{
+ Q_OBJECT
+
+public:
+ ExLineEdit(QWidget *parent = 0);
+
+ inline QLineEdit *lineEdit() const { return m_lineEdit; }
+
+ void setLeftWidget(QWidget *widget);
+ QWidget *leftWidget() const;
+
+ QSize sizeHint() const;
+
+ QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
+protected:
+ void focusInEvent(QFocusEvent *event);
+ void focusOutEvent(QFocusEvent *event);
+ void keyPressEvent(QKeyEvent *event);
+ void paintEvent(QPaintEvent *event);
+ void resizeEvent(QResizeEvent *event);
+ void inputMethodEvent(QInputMethodEvent *e);
+ bool event(QEvent *event);
+
+protected:
+ void updateGeometries();
+ void initStyleOption(QStyleOptionFrameV2 *option) const;
+
+ QWidget *m_leftWidget;
+ QLineEdit *m_lineEdit;
+ ClearButton *m_clearButton;
+};
+
+class UrlIconLabel;
+class WebView;
+class UrlLineEdit : public ExLineEdit
+{
+ Q_OBJECT
+
+public:
+ UrlLineEdit(QWidget *parent = 0);
+ void setWebView(WebView *webView);
+
+protected:
+ void paintEvent(QPaintEvent *event);
+ void focusOutEvent(QFocusEvent *event);
+
+private slots:
+ void webViewUrlChanged(const QUrl &url);
+ void webViewIconChanged();
+
+private:
+ QLinearGradient generateGradient(const QColor &color) const;
+ WebView *m_webView;
+ UrlIconLabel *m_iconLabel;
+ QColor m_defaultBaseColor;
+
+};
+
+
+#endif // URLLINEEDIT_H
+
diff --git a/demos/browser/webview.cpp b/demos/browser/webview.cpp
new file mode 100644
index 0000000..6c4d857
--- /dev/null
+++ b/demos/browser/webview.cpp
@@ -0,0 +1,304 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "browserapplication.h"
+#include "browsermainwindow.h"
+#include "cookiejar.h"
+#include "downloadmanager.h"
+#include "networkaccessmanager.h"
+#include "tabwidget.h"
+#include "webview.h"
+
+#include <QtGui/QClipboard>
+#include <QtGui/QMenu>
+#include <QtGui/QMessageBox>
+#include <QtGui/QMouseEvent>
+
+#include <QtWebKit/QWebHitTestResult>
+
+#include <QtUiTools/QUiLoader>
+
+#include <QtCore/QDebug>
+#include <QtCore/QBuffer>
+
+WebPage::WebPage(QObject *parent)
+ : QWebPage(parent)
+ , m_keyboardModifiers(Qt::NoModifier)
+ , m_pressedButtons(Qt::NoButton)
+ , m_openInNewTab(false)
+{
+ setNetworkAccessManager(BrowserApplication::networkAccessManager());
+ connect(this, SIGNAL(unsupportedContent(QNetworkReply *)),
+ this, SLOT(handleUnsupportedContent(QNetworkReply *)));
+}
+
+BrowserMainWindow *WebPage::mainWindow()
+{
+ QObject *w = this->parent();
+ while (w) {
+ if (BrowserMainWindow *mw = qobject_cast<BrowserMainWindow*>(w))
+ return mw;
+ w = w->parent();
+ }
+ return BrowserApplication::instance()->mainWindow();
+}
+
+bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type)
+{
+ // ctrl open in new tab
+ // ctrl-shift open in new tab and select
+ // ctrl-alt open in new window
+ if (type == QWebPage::NavigationTypeLinkClicked
+ && (m_keyboardModifiers & Qt::ControlModifier
+ || m_pressedButtons == Qt::MidButton)) {
+ bool newWindow = (m_keyboardModifiers & Qt::AltModifier);
+ WebView *webView;
+ if (newWindow) {
+ BrowserApplication::instance()->newMainWindow();
+ BrowserMainWindow *newMainWindow = BrowserApplication::instance()->mainWindow();
+ webView = newMainWindow->currentTab();
+ newMainWindow->raise();
+ newMainWindow->activateWindow();
+ webView->setFocus();
+ } else {
+ bool selectNewTab = (m_keyboardModifiers & Qt::ShiftModifier);
+ webView = mainWindow()->tabWidget()->newTab(selectNewTab);
+ }
+ webView->load(request);
+ m_keyboardModifiers = Qt::NoModifier;
+ m_pressedButtons = Qt::NoButton;
+ return false;
+ }
+ if (frame == mainFrame()) {
+ m_loadingUrl = request.url();
+ emit loadingUrl(m_loadingUrl);
+ }
+ return QWebPage::acceptNavigationRequest(frame, request, type);
+}
+
+QWebPage *WebPage::createWindow(QWebPage::WebWindowType type)
+{
+ Q_UNUSED(type);
+ if (m_keyboardModifiers & Qt::ControlModifier || m_pressedButtons == Qt::MidButton)
+ m_openInNewTab = true;
+ if (m_openInNewTab) {
+ m_openInNewTab = false;
+ return mainWindow()->tabWidget()->newTab()->page();
+ }
+ BrowserApplication::instance()->newMainWindow();
+ BrowserMainWindow *mainWindow = BrowserApplication::instance()->mainWindow();
+ return mainWindow->currentTab()->page();
+}
+
+#if !defined(QT_NO_UITOOLS)
+QObject *WebPage::createPlugin(const QString &classId, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues)
+{
+ Q_UNUSED(url);
+ Q_UNUSED(paramNames);
+ Q_UNUSED(paramValues);
+ QUiLoader loader;
+ return loader.createWidget(classId, view());
+}
+#endif // !defined(QT_NO_UITOOLS)
+
+void WebPage::handleUnsupportedContent(QNetworkReply *reply)
+{
+ if (reply->error() == QNetworkReply::NoError) {
+ BrowserApplication::downloadManager()->handleUnsupportedContent(reply);
+ return;
+ }
+
+ QFile file(QLatin1String(":/notfound.html"));
+ bool isOpened = file.open(QIODevice::ReadOnly);
+ Q_ASSERT(isOpened);
+ QString title = tr("Error loading page: %1").arg(reply->url().toString());
+ QString html = QString(QLatin1String(file.readAll()))
+ .arg(title)
+ .arg(reply->errorString())
+ .arg(reply->url().toString());
+
+ QBuffer imageBuffer;
+ imageBuffer.open(QBuffer::ReadWrite);
+ QIcon icon = view()->style()->standardIcon(QStyle::SP_MessageBoxWarning, 0, view());
+ QPixmap pixmap = icon.pixmap(QSize(32,32));
+ if (pixmap.save(&imageBuffer, "PNG")) {
+ html.replace(QLatin1String("IMAGE_BINARY_DATA_HERE"),
+ QString(QLatin1String(imageBuffer.buffer().toBase64())));
+ }
+
+ QList<QWebFrame*> frames;
+ frames.append(mainFrame());
+ while (!frames.isEmpty()) {
+ QWebFrame *frame = frames.takeFirst();
+ if (frame->url() == reply->url()) {
+ frame->setHtml(html, reply->url());
+ return;
+ }
+ QList<QWebFrame *> children = frame->childFrames();
+ foreach(QWebFrame *frame, children)
+ frames.append(frame);
+ }
+ if (m_loadingUrl == reply->url()) {
+ mainFrame()->setHtml(html, reply->url());
+ }
+}
+
+
+WebView::WebView(QWidget* parent)
+ : QWebView(parent)
+ , m_progress(0)
+ , m_page(new WebPage(this))
+{
+ setPage(m_page);
+ connect(page(), SIGNAL(statusBarMessage(const QString&)),
+ SLOT(setStatusBarText(const QString&)));
+ connect(this, SIGNAL(loadProgress(int)),
+ this, SLOT(setProgress(int)));
+ connect(this, SIGNAL(loadFinished(bool)),
+ this, SLOT(loadFinished()));
+ connect(page(), SIGNAL(loadingUrl(const QUrl&)),
+ this, SIGNAL(urlChanged(const QUrl &)));
+ connect(page(), SIGNAL(downloadRequested(const QNetworkRequest &)),
+ this, SLOT(downloadRequested(const QNetworkRequest &)));
+ page()->setForwardUnsupportedContent(true);
+
+}
+
+void WebView::contextMenuEvent(QContextMenuEvent *event)
+{
+ QWebHitTestResult r = page()->mainFrame()->hitTestContent(event->pos());
+ if (!r.linkUrl().isEmpty()) {
+ QMenu menu(this);
+ menu.addAction(pageAction(QWebPage::OpenLinkInNewWindow));
+ menu.addAction(tr("Open in New Tab"), this, SLOT(openLinkInNewTab()));
+ menu.addSeparator();
+ menu.addAction(pageAction(QWebPage::DownloadLinkToDisk));
+ // Add link to bookmarks...
+ menu.addSeparator();
+ menu.addAction(pageAction(QWebPage::CopyLinkToClipboard));
+ if (page()->settings()->testAttribute(QWebSettings::DeveloperExtrasEnabled))
+ menu.addAction(pageAction(QWebPage::InspectElement));
+ menu.exec(mapToGlobal(event->pos()));
+ return;
+ }
+ QWebView::contextMenuEvent(event);
+}
+
+void WebView::wheelEvent(QWheelEvent *event)
+{
+ if (QApplication::keyboardModifiers() & Qt::ControlModifier) {
+ int numDegrees = event->delta() / 8;
+ int numSteps = numDegrees / 15;
+ setTextSizeMultiplier(textSizeMultiplier() + numSteps * 0.1);
+ event->accept();
+ return;
+ }
+ QWebView::wheelEvent(event);
+}
+
+void WebView::openLinkInNewTab()
+{
+ m_page->m_openInNewTab = true;
+ pageAction(QWebPage::OpenLinkInNewWindow)->trigger();
+}
+
+void WebView::setProgress(int progress)
+{
+ m_progress = progress;
+}
+
+void WebView::loadFinished()
+{
+ if (100 != m_progress) {
+ qWarning() << "Recieved finished signal while progress is still:" << progress()
+ << "Url:" << url();
+ }
+ m_progress = 0;
+}
+
+void WebView::loadUrl(const QUrl &url)
+{
+ m_initialUrl = url;
+ load(url);
+}
+
+QString WebView::lastStatusBarText() const
+{
+ return m_statusBarText;
+}
+
+QUrl WebView::url() const
+{
+ QUrl url = QWebView::url();
+ if (!url.isEmpty())
+ return url;
+
+ return m_initialUrl;
+}
+
+void WebView::mousePressEvent(QMouseEvent *event)
+{
+ m_page->m_pressedButtons = event->buttons();
+ m_page->m_keyboardModifiers = event->modifiers();
+ QWebView::mousePressEvent(event);
+}
+
+void WebView::mouseReleaseEvent(QMouseEvent *event)
+{
+ QWebView::mouseReleaseEvent(event);
+ if (!event->isAccepted() && (m_page->m_pressedButtons & Qt::MidButton)) {
+ QUrl url(QApplication::clipboard()->text(QClipboard::Selection));
+ if (!url.isEmpty() && url.isValid() && !url.scheme().isEmpty()) {
+ setUrl(url);
+ }
+ }
+}
+
+void WebView::setStatusBarText(const QString &string)
+{
+ m_statusBarText = string;
+}
+
+void WebView::downloadRequested(const QNetworkRequest &request)
+{
+ BrowserApplication::downloadManager()->download(request);
+}
+
diff --git a/demos/browser/webview.h b/demos/browser/webview.h
new file mode 100644
index 0000000..a41bcf3
--- /dev/null
+++ b/demos/browser/webview.h
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef WEBVIEW_H
+#define WEBVIEW_H
+
+#include <QtWebKit/QWebView>
+
+QT_BEGIN_NAMESPACE
+class QAuthenticator;
+class QMouseEvent;
+class QNetworkProxy;
+class QNetworkReply;
+class QSslError;
+QT_END_NAMESPACE
+
+class BrowserMainWindow;
+class WebPage : public QWebPage {
+ Q_OBJECT
+
+signals:
+ void loadingUrl(const QUrl &url);
+
+public:
+ WebPage(QObject *parent = 0);
+ BrowserMainWindow *mainWindow();
+
+protected:
+ bool acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type);
+ QWebPage *createWindow(QWebPage::WebWindowType type);
+#if !defined(QT_NO_UITOOLS)
+ QObject *createPlugin(const QString &classId, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues);
+#endif
+
+private slots:
+ void handleUnsupportedContent(QNetworkReply *reply);
+
+private:
+ friend class WebView;
+
+ // set the webview mousepressedevent
+ Qt::KeyboardModifiers m_keyboardModifiers;
+ Qt::MouseButtons m_pressedButtons;
+ bool m_openInNewTab;
+ QUrl m_loadingUrl;
+};
+
+class WebView : public QWebView {
+ Q_OBJECT
+
+public:
+ WebView(QWidget *parent = 0);
+ WebPage *webPage() const { return m_page; }
+
+ void loadUrl(const QUrl &url);
+ QUrl url() const;
+
+ QString lastStatusBarText() const;
+ inline int progress() const { return m_progress; }
+
+protected:
+ void mousePressEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void contextMenuEvent(QContextMenuEvent *event);
+ void wheelEvent(QWheelEvent *event);
+
+private slots:
+ void setProgress(int progress);
+ void loadFinished();
+ void setStatusBarText(const QString &string);
+ void downloadRequested(const QNetworkRequest &request);
+ void openLinkInNewTab();
+
+private:
+ QString m_statusBarText;
+ QUrl m_initialUrl;
+ int m_progress;
+ WebPage *m_page;
+};
+
+#endif
diff --git a/demos/browser/xbel.cpp b/demos/browser/xbel.cpp
new file mode 100644
index 0000000..a92b649
--- /dev/null
+++ b/demos/browser/xbel.cpp
@@ -0,0 +1,320 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "xbel.h"
+
+#include <QtCore/QFile>
+
+BookmarkNode::BookmarkNode(BookmarkNode::Type type, BookmarkNode *parent) :
+ expanded(false)
+ , m_parent(parent)
+ , m_type(type)
+{
+ if (parent)
+ parent->add(this);
+}
+
+BookmarkNode::~BookmarkNode()
+{
+ if (m_parent)
+ m_parent->remove(this);
+ qDeleteAll(m_children);
+ m_parent = 0;
+ m_type = BookmarkNode::Root;
+}
+
+bool BookmarkNode::operator==(const BookmarkNode &other)
+{
+ if (url != other.url
+ || title != other.title
+ || desc != other.desc
+ || expanded != other.expanded
+ || m_type != other.m_type
+ || m_children.count() != other.m_children.count())
+ return false;
+
+ for (int i = 0; i < m_children.count(); ++i)
+ if (!((*(m_children[i])) == (*(other.m_children[i]))))
+ return false;
+ return true;
+}
+
+BookmarkNode::Type BookmarkNode::type() const
+{
+ return m_type;
+}
+
+void BookmarkNode::setType(Type type)
+{
+ m_type = type;
+}
+
+QList<BookmarkNode *> BookmarkNode::children() const
+{
+ return m_children;
+}
+
+BookmarkNode *BookmarkNode::parent() const
+{
+ return m_parent;
+}
+
+void BookmarkNode::add(BookmarkNode *child, int offset)
+{
+ Q_ASSERT(child->m_type != Root);
+ if (child->m_parent)
+ child->m_parent->remove(child);
+ child->m_parent = this;
+ if (-1 == offset)
+ offset = m_children.size();
+ m_children.insert(offset, child);
+}
+
+void BookmarkNode::remove(BookmarkNode *child)
+{
+ child->m_parent = 0;
+ m_children.removeAll(child);
+}
+
+
+XbelReader::XbelReader()
+{
+}
+
+BookmarkNode *XbelReader::read(const QString &fileName)
+{
+ QFile file(fileName);
+ if (!file.exists()) {
+ return new BookmarkNode(BookmarkNode::Root);
+ }
+ file.open(QFile::ReadOnly);
+ return read(&file);
+}
+
+BookmarkNode *XbelReader::read(QIODevice *device)
+{
+ BookmarkNode *root = new BookmarkNode(BookmarkNode::Root);
+ setDevice(device);
+ while (!atEnd()) {
+ readNext();
+ if (isStartElement()) {
+ QString version = attributes().value(QLatin1String("version")).toString();
+ if (name() == QLatin1String("xbel")
+ && (version.isEmpty() || version == QLatin1String("1.0"))) {
+ readXBEL(root);
+ } else {
+ raiseError(QObject::tr("The file is not an XBEL version 1.0 file."));
+ }
+ }
+ }
+ return root;
+}
+
+void XbelReader::readXBEL(BookmarkNode *parent)
+{
+ Q_ASSERT(isStartElement() && name() == QLatin1String("xbel"));
+
+ while (!atEnd()) {
+ readNext();
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ if (name() == QLatin1String("folder"))
+ readFolder(parent);
+ else if (name() == QLatin1String("bookmark"))
+ readBookmarkNode(parent);
+ else if (name() == QLatin1String("separator"))
+ readSeparator(parent);
+ else
+ skipUnknownElement();
+ }
+ }
+}
+
+void XbelReader::readFolder(BookmarkNode *parent)
+{
+ Q_ASSERT(isStartElement() && name() == QLatin1String("folder"));
+
+ BookmarkNode *folder = new BookmarkNode(BookmarkNode::Folder, parent);
+ folder->expanded = (attributes().value(QLatin1String("folded")) == QLatin1String("no"));
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ if (name() == QLatin1String("title"))
+ readTitle(folder);
+ else if (name() == QLatin1String("desc"))
+ readDescription(folder);
+ else if (name() == QLatin1String("folder"))
+ readFolder(folder);
+ else if (name() == QLatin1String("bookmark"))
+ readBookmarkNode(folder);
+ else if (name() == QLatin1String("separator"))
+ readSeparator(folder);
+ else
+ skipUnknownElement();
+ }
+ }
+}
+
+void XbelReader::readTitle(BookmarkNode *parent)
+{
+ Q_ASSERT(isStartElement() && name() == QLatin1String("title"));
+ parent->title = readElementText();
+}
+
+void XbelReader::readDescription(BookmarkNode *parent)
+{
+ Q_ASSERT(isStartElement() && name() == QLatin1String("desc"));
+ parent->desc = readElementText();
+}
+
+void XbelReader::readSeparator(BookmarkNode *parent)
+{
+ new BookmarkNode(BookmarkNode::Separator, parent);
+ // empty elements have a start and end element
+ readNext();
+}
+
+void XbelReader::readBookmarkNode(BookmarkNode *parent)
+{
+ Q_ASSERT(isStartElement() && name() == QLatin1String("bookmark"));
+ BookmarkNode *bookmark = new BookmarkNode(BookmarkNode::Bookmark, parent);
+ bookmark->url = attributes().value(QLatin1String("href")).toString();
+ while (!atEnd()) {
+ readNext();
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ if (name() == QLatin1String("title"))
+ readTitle(bookmark);
+ else if (name() == QLatin1String("desc"))
+ readDescription(bookmark);
+ else
+ skipUnknownElement();
+ }
+ }
+ if (bookmark->title.isEmpty())
+ bookmark->title = QObject::tr("Unknown title");
+}
+
+void XbelReader::skipUnknownElement()
+{
+ Q_ASSERT(isStartElement());
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement())
+ skipUnknownElement();
+ }
+}
+
+
+XbelWriter::XbelWriter()
+{
+ setAutoFormatting(true);
+}
+
+bool XbelWriter::write(const QString &fileName, const BookmarkNode *root)
+{
+ QFile file(fileName);
+ if (!root || !file.open(QFile::WriteOnly))
+ return false;
+ return write(&file, root);
+}
+
+bool XbelWriter::write(QIODevice *device, const BookmarkNode *root)
+{
+ setDevice(device);
+
+ writeStartDocument();
+ writeDTD(QLatin1String("<!DOCTYPE xbel>"));
+ writeStartElement(QLatin1String("xbel"));
+ writeAttribute(QLatin1String("version"), QLatin1String("1.0"));
+ if (root->type() == BookmarkNode::Root) {
+ for (int i = 0; i < root->children().count(); ++i)
+ writeItem(root->children().at(i));
+ } else {
+ writeItem(root);
+ }
+
+ writeEndDocument();
+ return true;
+}
+
+void XbelWriter::writeItem(const BookmarkNode *parent)
+{
+ switch (parent->type()) {
+ case BookmarkNode::Folder:
+ writeStartElement(QLatin1String("folder"));
+ writeAttribute(QLatin1String("folded"), parent->expanded ? QLatin1String("no") : QLatin1String("yes"));
+ writeTextElement(QLatin1String("title"), parent->title);
+ for (int i = 0; i < parent->children().count(); ++i)
+ writeItem(parent->children().at(i));
+ writeEndElement();
+ break;
+ case BookmarkNode::Bookmark:
+ writeStartElement(QLatin1String("bookmark"));
+ if (!parent->url.isEmpty())
+ writeAttribute(QLatin1String("href"), parent->url);
+ writeTextElement(QLatin1String("title"), parent->title);
+ if (!parent->desc.isEmpty())
+ writeAttribute(QLatin1String("desc"), parent->desc);
+ writeEndElement();
+ break;
+ case BookmarkNode::Separator:
+ writeEmptyElement(QLatin1String("separator"));
+ break;
+ default:
+ break;
+ }
+}
+
diff --git a/demos/browser/xbel.h b/demos/browser/xbel.h
new file mode 100644
index 0000000..b736d02
--- /dev/null
+++ b/demos/browser/xbel.h
@@ -0,0 +1,113 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef XBEL_H
+#define XBEL_H
+
+#include <QtCore/QXmlStreamReader>
+#include <QtCore/QDateTime>
+
+class BookmarkNode
+{
+public:
+ enum Type {
+ Root,
+ Folder,
+ Bookmark,
+ Separator
+ };
+
+ BookmarkNode(Type type = Root, BookmarkNode *parent = 0);
+ ~BookmarkNode();
+ bool operator==(const BookmarkNode &other);
+
+ Type type() const;
+ void setType(Type type);
+ QList<BookmarkNode *> children() const;
+ BookmarkNode *parent() const;
+
+ void add(BookmarkNode *child, int offset = -1);
+ void remove(BookmarkNode *child);
+
+ QString url;
+ QString title;
+ QString desc;
+ bool expanded;
+
+private:
+ BookmarkNode *m_parent;
+ Type m_type;
+ QList<BookmarkNode *> m_children;
+
+};
+
+class XbelReader : public QXmlStreamReader
+{
+public:
+ XbelReader();
+ BookmarkNode *read(const QString &fileName);
+ BookmarkNode *read(QIODevice *device);
+
+private:
+ void skipUnknownElement();
+ void readXBEL(BookmarkNode *parent);
+ void readTitle(BookmarkNode *parent);
+ void readDescription(BookmarkNode *parent);
+ void readSeparator(BookmarkNode *parent);
+ void readFolder(BookmarkNode *parent);
+ void readBookmarkNode(BookmarkNode *parent);
+};
+
+#include <QtCore/QXmlStreamWriter>
+
+class XbelWriter : public QXmlStreamWriter
+{
+public:
+ XbelWriter();
+ bool write(const QString &fileName, const BookmarkNode *root);
+ bool write(QIODevice *device, const BookmarkNode *root);
+
+private:
+ void writeItem(const BookmarkNode *parent);
+};
+
+#endif // XBEL_H
+
diff --git a/demos/chip/chip.cpp b/demos/chip/chip.cpp
new file mode 100644
index 0000000..c2b22da
--- /dev/null
+++ b/demos/chip/chip.cpp
@@ -0,0 +1,182 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "chip.h"
+
+#include <QtGui>
+
+Chip::Chip(const QColor &color, int x, int y)
+{
+ this->x = x;
+ this->y = y;
+ this->color = color;
+ setZValue((x + y) % 2);
+
+ setFlags(ItemIsSelectable | ItemIsMovable);
+ setAcceptsHoverEvents(true);
+}
+
+QRectF Chip::boundingRect() const
+{
+ return QRectF(0, 0, 110, 70);
+}
+
+QPainterPath Chip::shape() const
+{
+ QPainterPath path;
+ path.addRect(14, 14, 82, 42);
+ return path;
+}
+
+void Chip::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+ Q_UNUSED(widget);
+
+ QColor fillColor = (option->state & QStyle::State_Selected) ? color.dark(150) : color;
+ if (option->state & QStyle::State_MouseOver)
+ fillColor = fillColor.light(125);
+
+ if (option->levelOfDetail < 0.2) {
+ if (option->levelOfDetail < 0.125) {
+ painter->fillRect(QRectF(0, 0, 110, 70), fillColor);
+ return;
+ }
+
+ QBrush b = painter->brush();
+ painter->setBrush(fillColor);
+ painter->drawRect(13, 13, 97, 57);
+ painter->setBrush(b);
+ return;
+ }
+
+ QPen oldPen = painter->pen();
+ QPen pen = oldPen;
+ int width = 0;
+ if (option->state & QStyle::State_Selected)
+ width += 2;
+
+ pen.setWidth(width);
+ QBrush b = painter->brush();
+ painter->setBrush(QBrush(fillColor.dark(option->state & QStyle::State_Sunken ? 120 : 100)));
+
+ painter->drawRect(QRect(14, 14, 79, 39));
+ painter->setBrush(b);
+
+ if (option->levelOfDetail >= 1) {
+ painter->setPen(QPen(Qt::gray, 1));
+ painter->drawLine(15, 54, 94, 54);
+ painter->drawLine(94, 53, 94, 15);
+ painter->setPen(QPen(Qt::black, 0));
+ }
+
+ // Draw text
+ if (option->levelOfDetail >= 2) {
+ QFont font("Times", 10);
+ font.setStyleStrategy(QFont::ForceOutline);
+ painter->setFont(font);
+ painter->save();
+ painter->scale(0.1, 0.1);
+ painter->drawText(170, 180, QString("Model: VSC-2000 (Very Small Chip) at %1x%2").arg(x).arg(y));
+ painter->drawText(170, 200, QString("Serial number: DLWR-WEER-123L-ZZ33-SDSJ"));
+ painter->drawText(170, 220, QString("Manufacturer: Chip Manufacturer"));
+ painter->restore();
+ }
+
+ // Draw lines
+ QVarLengthArray<QLineF, 36> lines;
+ if (option->levelOfDetail >= 0.5) {
+ for (int i = 0; i <= 10; i += (option->levelOfDetail > 0.5 ? 1 : 2)) {
+ lines.append(QLineF(18 + 7 * i, 13, 18 + 7 * i, 5));
+ lines.append(QLineF(18 + 7 * i, 54, 18 + 7 * i, 62));
+ }
+ for (int i = 0; i <= 6; i += (option->levelOfDetail > 0.5 ? 1 : 2)) {
+ lines.append(QLineF(5, 18 + i * 5, 13, 18 + i * 5));
+ lines.append(QLineF(94, 18 + i * 5, 102, 18 + i * 5));
+ }
+ }
+ if (option->levelOfDetail >= 0.4) {
+ const QLineF lineData[] = {
+ QLineF(25, 35, 35, 35),
+ QLineF(35, 30, 35, 40),
+ QLineF(35, 30, 45, 35),
+ QLineF(35, 40, 45, 35),
+ QLineF(45, 30, 45, 40),
+ QLineF(45, 35, 55, 35)
+ };
+ lines.append(lineData, 6);
+ }
+ painter->drawLines(lines.data(), lines.size());
+
+ // Draw red ink
+ if (stuff.size() > 1) {
+ QPen p = painter->pen();
+ painter->setPen(QPen(Qt::red, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+ painter->setBrush(Qt::NoBrush);
+ QPainterPath path;
+ path.moveTo(stuff.first());
+ for (int i = 1; i < stuff.size(); ++i)
+ path.lineTo(stuff.at(i));
+ painter->drawPath(path);
+ painter->setPen(p);
+ }
+}
+
+void Chip::mousePressEvent(QGraphicsSceneMouseEvent *event)
+{
+ QGraphicsItem::mousePressEvent(event);
+ update();
+}
+
+void Chip::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
+{
+ if (event->modifiers() & Qt::ShiftModifier) {
+ stuff << event->pos();
+ update();
+ return;
+ }
+ QGraphicsItem::mouseMoveEvent(event);
+}
+
+void Chip::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
+{
+ QGraphicsItem::mouseReleaseEvent(event);
+ update();
+}
diff --git a/demos/chip/chip.h b/demos/chip/chip.h
new file mode 100644
index 0000000..9866f80
--- /dev/null
+++ b/demos/chip/chip.h
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef CHIP_H
+#define CHIP_H
+
+#include <QtGui/QColor>
+#include <QtGui/QGraphicsItem>
+
+class Chip : public QGraphicsItem
+{
+public:
+ Chip(const QColor &color, int x, int y);
+
+ QRectF boundingRect() const;
+ QPainterPath shape() const;
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *item, QWidget *widget);
+
+protected:
+ void mousePressEvent(QGraphicsSceneMouseEvent *event);
+ void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
+ void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
+
+private:
+ int x, y;
+ QColor color;
+ QList<QPointF> stuff;
+};
+
+#endif
diff --git a/demos/chip/chip.pro b/demos/chip/chip.pro
new file mode 100644
index 0000000..53fa23b
--- /dev/null
+++ b/demos/chip/chip.pro
@@ -0,0 +1,19 @@
+RESOURCES += images.qrc
+
+HEADERS += mainwindow.h view.h chip.h
+SOURCES += main.cpp
+SOURCES += mainwindow.cpp view.cpp chip.cpp
+
+contains(QT_CONFIG, opengl):QT += opengl
+
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/chip
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.png *.pro *.html *.doc images
+sources.path = $$[QT_INSTALL_DEMOS]/chip
+INSTALLS += target sources
+
diff --git a/demos/chip/fileprint.png b/demos/chip/fileprint.png
new file mode 100644
index 0000000..ba7c02d
--- /dev/null
+++ b/demos/chip/fileprint.png
Binary files differ
diff --git a/demos/chip/images.qrc b/demos/chip/images.qrc
new file mode 100644
index 0000000..c7cdf0c
--- /dev/null
+++ b/demos/chip/images.qrc
@@ -0,0 +1,10 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>qt4logo.png</file>
+ <file>zoomin.png</file>
+ <file>zoomout.png</file>
+ <file>rotateleft.png</file>
+ <file>rotateright.png</file>
+ <file>fileprint.png</file>
+</qresource>
+</RCC>
diff --git a/demos/chip/main.cpp b/demos/chip/main.cpp
new file mode 100644
index 0000000..e945026
--- /dev/null
+++ b/demos/chip/main.cpp
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "mainwindow.h"
+
+#include <QApplication>
+
+int main(int argc, char **argv)
+{
+ Q_INIT_RESOURCE(images);
+
+ QApplication app(argc, argv);
+ app.setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
+
+ MainWindow window;
+ window.show();
+
+ return app.exec();
+}
diff --git a/demos/chip/mainwindow.cpp b/demos/chip/mainwindow.cpp
new file mode 100644
index 0000000..5222cd4
--- /dev/null
+++ b/demos/chip/mainwindow.cpp
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "mainwindow.h"
+#include "view.h"
+#include "chip.h"
+
+#include <QtGui>
+
+MainWindow::MainWindow(QWidget *parent)
+ : QWidget(parent)
+{
+ populateScene();
+
+ h1Splitter = new QSplitter;
+ h2Splitter = new QSplitter;
+
+ QSplitter *vSplitter = new QSplitter;
+ vSplitter->setOrientation(Qt::Vertical);
+ vSplitter->addWidget(h1Splitter);
+ vSplitter->addWidget(h2Splitter);
+
+ View *view = new View("Top left view");
+ view->view()->setScene(scene);
+ h1Splitter->addWidget(view);
+
+ view = new View("Top right view");
+ view->view()->setScene(scene);
+ h1Splitter->addWidget(view);
+
+ view = new View("Bottom left view");
+ view->view()->setScene(scene);
+ h2Splitter->addWidget(view);
+
+ view = new View("Bottom right view");
+ view->view()->setScene(scene);
+ h2Splitter->addWidget(view);
+
+ QHBoxLayout *layout = new QHBoxLayout;
+ layout->addWidget(vSplitter);
+ setLayout(layout);
+
+ setWindowTitle(tr("Chip Demo"));
+}
+
+void MainWindow::populateScene()
+{
+ scene = new QGraphicsScene;
+
+ QImage image(":/qt4logo.png");
+
+ // Populate scene
+ int xx = 0;
+ int nitems = 0;
+ for (int i = -11000; i < 11000; i += 110) {
+ ++xx;
+ int yy = 0;
+ for (int j = -7000; j < 7000; j += 70) {
+ ++yy;
+ qreal x = (i + 11000) / 22000.0;
+ qreal y = (j + 7000) / 14000.0;
+
+ QColor color(image.pixel(int(image.width() * x), int(image.height() * y)));
+ QGraphicsItem *item = new Chip(color, xx, yy);
+ item->setPos(QPointF(i, j));
+ scene->addItem(item);
+
+ ++nitems;
+ }
+ }
+}
diff --git a/demos/chip/mainwindow.h b/demos/chip/mainwindow.h
new file mode 100644
index 0000000..5decca8
--- /dev/null
+++ b/demos/chip/mainwindow.h
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QtGui/qwidget.h>
+
+QT_FORWARD_DECLARE_CLASS(QGraphicsScene)
+QT_FORWARD_DECLARE_CLASS(QGraphicsView)
+QT_FORWARD_DECLARE_CLASS(QLabel)
+QT_FORWARD_DECLARE_CLASS(QSlider)
+QT_FORWARD_DECLARE_CLASS(QSplitter)
+
+class MainWindow : public QWidget
+{
+ Q_OBJECT
+public:
+ MainWindow(QWidget *parent = 0);
+
+private:
+ void setupMatrix();
+ void populateScene();
+
+ QGraphicsScene *scene;
+ QSplitter *h1Splitter;
+ QSplitter *h2Splitter;
+};
+
+#endif
diff --git a/demos/chip/qt4logo.png b/demos/chip/qt4logo.png
new file mode 100644
index 0000000..157e86e
--- /dev/null
+++ b/demos/chip/qt4logo.png
Binary files differ
diff --git a/demos/chip/rotateleft.png b/demos/chip/rotateleft.png
new file mode 100644
index 0000000..8cfa931
--- /dev/null
+++ b/demos/chip/rotateleft.png
Binary files differ
diff --git a/demos/chip/rotateright.png b/demos/chip/rotateright.png
new file mode 100644
index 0000000..ec5e866
--- /dev/null
+++ b/demos/chip/rotateright.png
Binary files differ
diff --git a/demos/chip/view.cpp b/demos/chip/view.cpp
new file mode 100644
index 0000000..f919af3
--- /dev/null
+++ b/demos/chip/view.cpp
@@ -0,0 +1,234 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "view.h"
+
+#include <QtGui>
+#ifndef QT_NO_OPENGL
+#include <QtOpenGL>
+#endif
+
+#include <qmath.h>
+
+View::View(const QString &name, QWidget *parent)
+ : QFrame(parent)
+{
+ setFrameStyle(Sunken | StyledPanel);
+ graphicsView = new QGraphicsView;
+ graphicsView->setRenderHint(QPainter::Antialiasing, false);
+ graphicsView->setDragMode(QGraphicsView::RubberBandDrag);
+ graphicsView->setOptimizationFlags(QGraphicsView::DontSavePainterState);
+ graphicsView->setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
+
+ int size = style()->pixelMetric(QStyle::PM_ToolBarIconSize);
+ QSize iconSize(size, size);
+
+ QToolButton *zoomInIcon = new QToolButton;
+ zoomInIcon->setAutoRepeat(true);
+ zoomInIcon->setAutoRepeatInterval(33);
+ zoomInIcon->setAutoRepeatDelay(0);
+ zoomInIcon->setIcon(QPixmap(":/zoomin.png"));
+ zoomInIcon->setIconSize(iconSize);
+ QToolButton *zoomOutIcon = new QToolButton;
+ zoomOutIcon->setAutoRepeat(true);
+ zoomOutIcon->setAutoRepeatInterval(33);
+ zoomOutIcon->setAutoRepeatDelay(0);
+ zoomOutIcon->setIcon(QPixmap(":/zoomout.png"));
+ zoomOutIcon->setIconSize(iconSize);
+ zoomSlider = new QSlider;
+ zoomSlider->setMinimum(0);
+ zoomSlider->setMaximum(500);
+ zoomSlider->setValue(250);
+ zoomSlider->setTickPosition(QSlider::TicksRight);
+
+ // Zoom slider layout
+ QVBoxLayout *zoomSliderLayout = new QVBoxLayout;
+ zoomSliderLayout->addWidget(zoomInIcon);
+ zoomSliderLayout->addWidget(zoomSlider);
+ zoomSliderLayout->addWidget(zoomOutIcon);
+
+ QToolButton *rotateLeftIcon = new QToolButton;
+ rotateLeftIcon->setIcon(QPixmap(":/rotateleft.png"));
+ rotateLeftIcon->setIconSize(iconSize);
+ QToolButton *rotateRightIcon = new QToolButton;
+ rotateRightIcon->setIcon(QPixmap(":/rotateright.png"));
+ rotateRightIcon->setIconSize(iconSize);
+ rotateSlider = new QSlider;
+ rotateSlider->setOrientation(Qt::Horizontal);
+ rotateSlider->setMinimum(-360);
+ rotateSlider->setMaximum(360);
+ rotateSlider->setValue(0);
+ rotateSlider->setTickPosition(QSlider::TicksBelow);
+
+ // Rotate slider layout
+ QHBoxLayout *rotateSliderLayout = new QHBoxLayout;
+ rotateSliderLayout->addWidget(rotateLeftIcon);
+ rotateSliderLayout->addWidget(rotateSlider);
+ rotateSliderLayout->addWidget(rotateRightIcon);
+
+ resetButton = new QToolButton;
+ resetButton->setText(tr("0"));
+ resetButton->setEnabled(false);
+
+ // Label layout
+ QHBoxLayout *labelLayout = new QHBoxLayout;
+ label = new QLabel(name);
+ antialiasButton = new QToolButton;
+ antialiasButton->setText(tr("Antialiasing"));
+ antialiasButton->setCheckable(true);
+ antialiasButton->setChecked(false);
+ openGlButton = new QToolButton;
+ openGlButton->setText(tr("OpenGL"));
+ openGlButton->setCheckable(true);
+#ifndef QT_NO_OPENGL
+ openGlButton->setEnabled(QGLFormat::hasOpenGL());
+#else
+ openGlButton->setEnabled(false);
+#endif
+ printButton = new QToolButton;
+ printButton->setIcon(QIcon(QPixmap(":/fileprint.png")));
+
+ labelLayout->addWidget(label);
+ labelLayout->addStretch();
+ labelLayout->addWidget(antialiasButton);
+ labelLayout->addWidget(openGlButton);
+ labelLayout->addWidget(printButton);
+
+ QGridLayout *topLayout = new QGridLayout;
+ topLayout->addLayout(labelLayout, 0, 0);
+ topLayout->addWidget(graphicsView, 1, 0);
+ topLayout->addLayout(zoomSliderLayout, 1, 1);
+ topLayout->addLayout(rotateSliderLayout, 2, 0);
+ topLayout->addWidget(resetButton, 2, 1);
+ setLayout(topLayout);
+
+ connect(resetButton, SIGNAL(clicked()), this, SLOT(resetView()));
+ connect(zoomSlider, SIGNAL(valueChanged(int)), this, SLOT(setupMatrix()));
+ connect(rotateSlider, SIGNAL(valueChanged(int)), this, SLOT(setupMatrix()));
+ connect(graphicsView->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(setResetButtonEnabled()));
+ connect(graphicsView->horizontalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(setResetButtonEnabled()));
+ connect(antialiasButton, SIGNAL(toggled(bool)), this, SLOT(toggleAntialiasing()));
+ connect(openGlButton, SIGNAL(toggled(bool)), this, SLOT(toggleOpenGL()));
+ connect(rotateLeftIcon, SIGNAL(clicked()), this, SLOT(rotateLeft()));
+ connect(rotateRightIcon, SIGNAL(clicked()), this, SLOT(rotateRight()));
+ connect(zoomInIcon, SIGNAL(clicked()), this, SLOT(zoomIn()));
+ connect(zoomOutIcon, SIGNAL(clicked()), this, SLOT(zoomOut()));
+ connect(printButton, SIGNAL(clicked()), this, SLOT(print()));
+
+ setupMatrix();
+}
+
+QGraphicsView *View::view() const
+{
+ return graphicsView;
+}
+
+void View::resetView()
+{
+ zoomSlider->setValue(250);
+ rotateSlider->setValue(0);
+ setupMatrix();
+ graphicsView->ensureVisible(QRectF(0, 0, 0, 0));
+
+ resetButton->setEnabled(false);
+}
+
+void View::setResetButtonEnabled()
+{
+ resetButton->setEnabled(true);
+}
+
+void View::setupMatrix()
+{
+ qreal scale = qPow(qreal(2), (zoomSlider->value() - 250) / qreal(50));
+
+ QMatrix matrix;
+ matrix.scale(scale, scale);
+ matrix.rotate(rotateSlider->value());
+
+ graphicsView->setMatrix(matrix);
+ setResetButtonEnabled();
+}
+
+void View::toggleOpenGL()
+{
+#ifndef QT_NO_OPENGL
+ graphicsView->setViewport(openGlButton->isChecked() ? new QGLWidget(QGLFormat(QGL::SampleBuffers)) : new QWidget);
+#endif
+}
+
+void View::toggleAntialiasing()
+{
+ graphicsView->setRenderHint(QPainter::Antialiasing, antialiasButton->isChecked());
+}
+
+void View::print()
+{
+#ifndef QT_NO_PRINTER
+ QPrinter printer;
+ QPrintDialog dialog(&printer, this);
+ if (dialog.exec() == QDialog::Accepted) {
+ QPainter painter(&printer);
+ graphicsView->render(&painter);
+ }
+#endif
+}
+
+void View::zoomIn()
+{
+ zoomSlider->setValue(zoomSlider->value() + 1);
+}
+
+void View::zoomOut()
+{
+ zoomSlider->setValue(zoomSlider->value() - 1);
+}
+
+void View::rotateLeft()
+{
+ rotateSlider->setValue(rotateSlider->value() - 10);
+}
+
+void View::rotateRight()
+{
+ rotateSlider->setValue(rotateSlider->value() + 10);
+}
+
diff --git a/demos/chip/view.h b/demos/chip/view.h
new file mode 100644
index 0000000..4987f60
--- /dev/null
+++ b/demos/chip/view.h
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef VIEW_H
+#define VIEW_H
+
+#include <QFrame>
+
+QT_FORWARD_DECLARE_CLASS(QGraphicsView)
+QT_FORWARD_DECLARE_CLASS(QLabel)
+QT_FORWARD_DECLARE_CLASS(QSlider)
+QT_FORWARD_DECLARE_CLASS(QToolButton)
+
+class View : public QFrame
+{
+ Q_OBJECT
+public:
+ View(const QString &name, QWidget *parent = 0);
+
+ QGraphicsView *view() const;
+
+private slots:
+ void resetView();
+ void setResetButtonEnabled();
+ void setupMatrix();
+ void toggleOpenGL();
+ void toggleAntialiasing();
+ void print();
+
+ void zoomIn();
+ void zoomOut();
+ void rotateLeft();
+ void rotateRight();
+
+private:
+ QGraphicsView *graphicsView;
+ QLabel *label;
+ QToolButton *openGlButton;
+ QToolButton *antialiasButton;
+ QToolButton *printButton;
+ QToolButton *resetButton;
+ QSlider *zoomSlider;
+ QSlider *rotateSlider;
+};
+
+#endif
diff --git a/demos/chip/zoomin.png b/demos/chip/zoomin.png
new file mode 100644
index 0000000..8b0daee
--- /dev/null
+++ b/demos/chip/zoomin.png
Binary files differ
diff --git a/demos/chip/zoomout.png b/demos/chip/zoomout.png
new file mode 100644
index 0000000..1575dd2
--- /dev/null
+++ b/demos/chip/zoomout.png
Binary files differ
diff --git a/demos/composition/composition.cpp b/demos/composition/composition.cpp
new file mode 100644
index 0000000..b43c66b
--- /dev/null
+++ b/demos/composition/composition.cpp
@@ -0,0 +1,511 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "composition.h"
+#include <QBoxLayout>
+#include <QRadioButton>
+#include <QTimer>
+#include <QDateTime>
+#include <QSlider>
+#include <QMouseEvent>
+#include <qmath.h>
+
+CompositionWidget::CompositionWidget(QWidget *parent)
+ : QWidget(parent)
+{
+ CompositionRenderer *view = new CompositionRenderer(this);
+
+ QGroupBox *mainGroup = new QGroupBox(parent);
+ mainGroup->setTitle(tr("Composition Modes"));
+
+ QGroupBox *modesGroup = new QGroupBox(mainGroup);
+ modesGroup->setTitle(tr("Mode"));
+
+ rbClear = new QRadioButton(tr("Clear"), modesGroup);
+ connect(rbClear, SIGNAL(clicked()), view, SLOT(setClearMode()));
+ rbSource = new QRadioButton(tr("Source"), modesGroup);
+ connect(rbSource, SIGNAL(clicked()), view, SLOT(setSourceMode()));
+ rbDest = new QRadioButton(tr("Destination"), modesGroup);
+ connect(rbDest, SIGNAL(clicked()), view, SLOT(setDestMode()));
+ rbSourceOver = new QRadioButton(tr("Source Over"), modesGroup);
+ connect(rbSourceOver, SIGNAL(clicked()), view, SLOT(setSourceOverMode()));
+ rbDestOver = new QRadioButton(tr("Destination Over"), modesGroup);
+ connect(rbDestOver, SIGNAL(clicked()), view, SLOT(setDestOverMode()));
+ rbSourceIn = new QRadioButton(tr("Source In"), modesGroup);
+ connect(rbSourceIn, SIGNAL(clicked()), view, SLOT(setSourceInMode()));
+ rbDestIn = new QRadioButton(tr("Dest In"), modesGroup);
+ connect(rbDestIn, SIGNAL(clicked()), view, SLOT(setDestInMode()));
+ rbSourceOut = new QRadioButton(tr("Source Out"), modesGroup);
+ connect(rbSourceOut, SIGNAL(clicked()), view, SLOT(setSourceOutMode()));
+ rbDestOut = new QRadioButton(tr("Dest Out"), modesGroup);
+ connect(rbDestOut, SIGNAL(clicked()), view, SLOT(setDestOutMode()));
+ rbSourceAtop = new QRadioButton(tr("Source Atop"), modesGroup);
+ connect(rbSourceAtop, SIGNAL(clicked()), view, SLOT(setSourceAtopMode()));
+ rbDestAtop = new QRadioButton(tr("Dest Atop"), modesGroup);
+ connect(rbDestAtop, SIGNAL(clicked()), view, SLOT(setDestAtopMode()));
+ rbXor = new QRadioButton(tr("Xor"), modesGroup);
+ connect(rbXor, SIGNAL(clicked()), view, SLOT(setXorMode()));
+
+ rbPlus = new QRadioButton(tr("Plus"), modesGroup);
+ connect(rbPlus, SIGNAL(clicked()), view, SLOT(setPlusMode()));
+ rbMultiply = new QRadioButton(tr("Multiply"), modesGroup);
+ connect(rbMultiply, SIGNAL(clicked()), view, SLOT(setMultiplyMode()));
+ rbScreen = new QRadioButton(tr("Screen"), modesGroup);
+ connect(rbScreen, SIGNAL(clicked()), view, SLOT(setScreenMode()));
+ rbOverlay = new QRadioButton(tr("Overlay"), modesGroup);
+ connect(rbOverlay, SIGNAL(clicked()), view, SLOT(setOverlayMode()));
+ rbDarken = new QRadioButton(tr("Darken"), modesGroup);
+ connect(rbDarken, SIGNAL(clicked()), view, SLOT(setDarkenMode()));
+ rbLighten = new QRadioButton(tr("Lighten"), modesGroup);
+ connect(rbLighten, SIGNAL(clicked()), view, SLOT(setLightenMode()));
+ rbColorDodge = new QRadioButton(tr("Color Dodge"), modesGroup);
+ connect(rbColorDodge, SIGNAL(clicked()), view, SLOT(setColorDodgeMode()));
+ rbColorBurn = new QRadioButton(tr("Color Burn"), modesGroup);
+ connect(rbColorBurn, SIGNAL(clicked()), view, SLOT(setColorBurnMode()));
+ rbHardLight = new QRadioButton(tr("Hard Light"), modesGroup);
+ connect(rbHardLight, SIGNAL(clicked()), view, SLOT(setHardLightMode()));
+ rbSoftLight = new QRadioButton(tr("Soft Light"), modesGroup);
+ connect(rbSoftLight, SIGNAL(clicked()), view, SLOT(setSoftLightMode()));
+ rbDifference = new QRadioButton(tr("Difference"), modesGroup);
+ connect(rbDifference, SIGNAL(clicked()), view, SLOT(setDifferenceMode()));
+ rbExclusion = new QRadioButton(tr("Exclusion"), modesGroup);
+ connect(rbExclusion, SIGNAL(clicked()), view, SLOT(setExclusionMode()));
+
+ QGroupBox *circleColorGroup = new QGroupBox(mainGroup);
+ circleColorGroup->setTitle(tr("Circle color"));
+ QSlider *circleColorSlider = new QSlider(Qt::Horizontal, circleColorGroup);
+ circleColorSlider->setRange(0, 359);
+ circleColorSlider->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+ connect(circleColorSlider, SIGNAL(valueChanged(int)), view, SLOT(setCircleColor(int)));
+
+ QGroupBox *circleAlphaGroup = new QGroupBox(mainGroup);
+ circleAlphaGroup->setTitle(tr("Circle alpha"));
+ QSlider *circleAlphaSlider = new QSlider(Qt::Horizontal, circleAlphaGroup);
+ circleAlphaSlider->setRange(0, 255);
+ circleAlphaSlider->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+ connect(circleAlphaSlider, SIGNAL(valueChanged(int)), view, SLOT(setCircleAlpha(int)));
+
+ QPushButton *showSourceButton = new QPushButton(mainGroup);
+ showSourceButton->setText(tr("Show Source"));
+#if defined(QT_OPENGL_SUPPORT) && !defined(QT_OPENGL_ES)
+ QPushButton *enableOpenGLButton = new QPushButton(mainGroup);
+ enableOpenGLButton->setText(tr("Use OpenGL"));
+ enableOpenGLButton->setCheckable(true);
+ enableOpenGLButton->setChecked(view->usesOpenGL());
+
+ if (!QGLFormat::hasOpenGL() || !QGLPixelBuffer::hasOpenGLPbuffers())
+ enableOpenGLButton->hide();
+#endif
+ QPushButton *whatsThisButton = new QPushButton(mainGroup);
+ whatsThisButton->setText(tr("What's This?"));
+ whatsThisButton->setCheckable(true);
+
+ QPushButton *animateButton = new QPushButton(mainGroup);
+ animateButton->setText(tr("Animated"));
+ animateButton->setCheckable(true);
+ animateButton->setChecked(true);
+
+ QHBoxLayout *viewLayout = new QHBoxLayout(this);
+ viewLayout->addWidget(view);
+ viewLayout->addWidget(mainGroup);
+
+ QVBoxLayout *mainGroupLayout = new QVBoxLayout(mainGroup);
+ mainGroupLayout->addWidget(circleColorGroup);
+ mainGroupLayout->addWidget(circleAlphaGroup);
+ mainGroupLayout->addWidget(modesGroup);
+ mainGroupLayout->addStretch();
+ mainGroupLayout->addWidget(animateButton);
+ mainGroupLayout->addWidget(whatsThisButton);
+ mainGroupLayout->addWidget(showSourceButton);
+#if defined(QT_OPENGL_SUPPORT) && !defined(QT_OPENGL_ES)
+ mainGroupLayout->addWidget(enableOpenGLButton);
+#endif
+
+ QGridLayout *modesLayout = new QGridLayout(modesGroup);
+ modesLayout->addWidget(rbClear, 0, 0);
+ modesLayout->addWidget(rbSource, 1, 0);
+ modesLayout->addWidget(rbDest, 2, 0);
+ modesLayout->addWidget(rbSourceOver, 3, 0);
+ modesLayout->addWidget(rbDestOver, 4, 0);
+ modesLayout->addWidget(rbSourceIn, 5, 0);
+ modesLayout->addWidget(rbDestIn, 6, 0);
+ modesLayout->addWidget(rbSourceOut, 7, 0);
+ modesLayout->addWidget(rbDestOut, 8, 0);
+ modesLayout->addWidget(rbSourceAtop, 9, 0);
+ modesLayout->addWidget(rbDestAtop, 10, 0);
+ modesLayout->addWidget(rbXor, 11, 0);
+
+ modesLayout->addWidget(rbPlus, 0, 1);
+ modesLayout->addWidget(rbMultiply, 1, 1);
+ modesLayout->addWidget(rbScreen, 2, 1);
+ modesLayout->addWidget(rbOverlay, 3, 1);
+ modesLayout->addWidget(rbDarken, 4, 1);
+ modesLayout->addWidget(rbLighten, 5, 1);
+ modesLayout->addWidget(rbColorDodge, 6, 1);
+ modesLayout->addWidget(rbColorBurn, 7, 1);
+ modesLayout->addWidget(rbHardLight, 8, 1);
+ modesLayout->addWidget(rbSoftLight, 9, 1);
+ modesLayout->addWidget(rbDifference, 10, 1);
+ modesLayout->addWidget(rbExclusion, 11, 1);
+
+
+ QVBoxLayout *circleColorLayout = new QVBoxLayout(circleColorGroup);
+ circleColorLayout->addWidget(circleColorSlider);
+
+ QVBoxLayout *circleAlphaLayout = new QVBoxLayout(circleAlphaGroup);
+ circleAlphaLayout->addWidget(circleAlphaSlider);
+
+ view->loadDescription(":res/composition/composition.html");
+ view->loadSourceFile(":res/composition/composition.cpp");
+
+ connect(whatsThisButton, SIGNAL(clicked(bool)), view, SLOT(setDescriptionEnabled(bool)));
+ connect(view, SIGNAL(descriptionEnabledChanged(bool)), whatsThisButton, SLOT(setChecked(bool)));
+ connect(showSourceButton, SIGNAL(clicked()), view, SLOT(showSource()));
+#if defined(QT_OPENGL_SUPPORT) && !defined(QT_OPENGL_ES)
+ connect(enableOpenGLButton, SIGNAL(clicked(bool)), view, SLOT(enableOpenGL(bool)));
+#endif
+ connect(animateButton, SIGNAL(toggled(bool)), view, SLOT(setAnimationEnabled(bool)));
+
+ circleColorSlider->setValue(270);
+ circleAlphaSlider->setValue(200);
+ rbSourceOut->animateClick();
+
+ setWindowTitle(tr("Composition Modes"));
+}
+
+
+void CompositionWidget::nextMode()
+{
+ /*
+ if (!m_animation_enabled)
+ return;
+ if (rbClear->isChecked()) rbSource->animateClick();
+ if (rbSource->isChecked()) rbDest->animateClick();
+ if (rbDest->isChecked()) rbSourceOver->animateClick();
+ if (rbSourceOver->isChecked()) rbDestOver->animateClick();
+ if (rbDestOver->isChecked()) rbSourceIn->animateClick();
+ if (rbSourceIn->isChecked()) rbDestIn->animateClick();
+ if (rbDestIn->isChecked()) rbSourceOut->animateClick();
+ if (rbSourceOut->isChecked()) rbDestOut->animateClick();
+ if (rbDestOut->isChecked()) rbSourceAtop->animateClick();
+ if (rbSourceAtop->isChecked()) rbDestAtop->animateClick();
+ if (rbDestAtop->isChecked()) rbXor->animateClick();
+ if (rbXor->isChecked()) rbClear->animateClick();
+ */
+}
+
+CompositionRenderer::CompositionRenderer(QWidget *parent)
+ : ArthurFrame(parent)
+{
+ m_animation_enabled = true;
+#ifdef Q_WS_QWS
+ m_image = QPixmap(":res/composition/flower.jpg");
+ m_image.setAlphaChannel(QPixmap(":res/composition/flower_alpha.jpg"));
+#else
+ m_image = QImage(":res/composition/flower.jpg");
+ m_image.setAlphaChannel(QImage(":res/composition/flower_alpha.jpg"));
+#endif
+ m_circle_alpha = 127;
+ m_circle_hue = 255;
+ m_current_object = NoObject;
+ m_composition_mode = QPainter::CompositionMode_SourceOut;
+
+ m_circle_pos = QPoint(200, 100);
+
+ setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+#ifdef QT_OPENGL_SUPPORT
+ m_pbuffer = 0;
+ m_pbuffer_size = 1024;
+#endif
+}
+
+QRectF rectangle_around(const QPointF &p, const QSizeF &size = QSize(250, 200))
+{
+ QRectF rect(p, size);
+ rect.translate(-size.width()/2, -size.height()/2);
+ return rect;
+}
+
+void CompositionRenderer::updateCirclePos()
+{
+ if (m_current_object != NoObject)
+ return;
+ QDateTime dt = QDateTime::currentDateTime();
+ qreal t = (dt.toTime_t() * 1000 + dt.time().msec()) / 1000.0;
+
+ qreal x = width() / qreal(2) + (qCos(t*8/11) + qSin(-t)) * width() / qreal(4);
+ qreal y = height() / qreal(2) + (qSin(t*6/7) + qCos(t * qreal(1.5))) * height() / qreal(4);
+
+ setCirclePos(QLineF(m_circle_pos, QPointF(x, y)).pointAt(0.02));
+}
+
+void CompositionRenderer::drawBase(QPainter &p)
+{
+ p.setPen(Qt::NoPen);
+
+ QLinearGradient rect_gradient(0, 0, 0, height());
+ rect_gradient.setColorAt(0, Qt::red);
+ rect_gradient.setColorAt(.17, Qt::yellow);
+ rect_gradient.setColorAt(.33, Qt::green);
+ rect_gradient.setColorAt(.50, Qt::cyan);
+ rect_gradient.setColorAt(.66, Qt::blue);
+ rect_gradient.setColorAt(.81, Qt::magenta);
+ rect_gradient.setColorAt(1, Qt::red);
+ p.setBrush(rect_gradient);
+ p.drawRect(width() / 2, 0, width() / 2, height());
+
+ QLinearGradient alpha_gradient(0, 0, width(), 0);
+ alpha_gradient.setColorAt(0, Qt::white);
+ alpha_gradient.setColorAt(0.2, Qt::white);
+ alpha_gradient.setColorAt(0.5, Qt::transparent);
+ alpha_gradient.setColorAt(0.8, Qt::white);
+ alpha_gradient.setColorAt(1, Qt::white);
+
+ p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
+ p.setBrush(alpha_gradient);
+ p.drawRect(0, 0, width(), height());
+
+ p.setCompositionMode(QPainter::CompositionMode_DestinationOver);
+
+ p.setPen(Qt::NoPen);
+ p.setRenderHint(QPainter::SmoothPixmapTransform);
+#ifdef Q_WS_QWS
+ p.drawPixmap(rect(), m_image);
+#else
+ p.drawImage(rect(), m_image);
+#endif
+}
+
+void CompositionRenderer::drawSource(QPainter &p)
+{
+ p.setPen(Qt::NoPen);
+ p.setRenderHint(QPainter::Antialiasing);
+ p.setCompositionMode(m_composition_mode);
+
+ QRectF circle_rect = rectangle_around(m_circle_pos);
+ QColor color = QColor::fromHsvF(m_circle_hue / 360.0, 1, 1, m_circle_alpha / 255.0);
+ QLinearGradient circle_gradient(circle_rect.topLeft(), circle_rect.bottomRight());
+ circle_gradient.setColorAt(0, color.light());
+ circle_gradient.setColorAt(0.5, color);
+ circle_gradient.setColorAt(1, color.dark());
+ p.setBrush(circle_gradient);
+
+ p.drawEllipse(circle_rect);
+}
+
+void CompositionRenderer::paint(QPainter *painter)
+{
+#if defined(QT_OPENGL_SUPPORT) && !defined(QT_OPENGL_ES)
+ if (usesOpenGL()) {
+
+ int new_pbuf_size = m_pbuffer_size;
+ if (size().width() > m_pbuffer_size ||
+ size().height() > m_pbuffer_size)
+ new_pbuf_size *= 2;
+
+ if (size().width() < m_pbuffer_size/2 &&
+ size().height() < m_pbuffer_size/2)
+ new_pbuf_size /= 2;
+
+ if (!m_pbuffer || new_pbuf_size != m_pbuffer_size) {
+ if (m_pbuffer) {
+ m_pbuffer->deleteTexture(m_base_tex);
+ m_pbuffer->deleteTexture(m_compositing_tex);
+ delete m_pbuffer;
+ }
+
+ m_pbuffer = new QGLPixelBuffer(QSize(new_pbuf_size, new_pbuf_size), QGLFormat::defaultFormat(), glWidget());
+ m_pbuffer->makeCurrent();
+ m_base_tex = m_pbuffer->generateDynamicTexture();
+ m_compositing_tex = m_pbuffer->generateDynamicTexture();
+ m_pbuffer_size = new_pbuf_size;
+ }
+
+ if (size() != m_previous_size) {
+ m_previous_size = size();
+ QPainter p(m_pbuffer);
+ p.setCompositionMode(QPainter::CompositionMode_Source);
+ p.fillRect(QRect(0, 0, m_pbuffer->width(), m_pbuffer->height()), Qt::transparent);
+ drawBase(p);
+ p.end();
+ m_pbuffer->updateDynamicTexture(m_base_tex);
+ }
+
+ qreal x_fraction = width()/float(m_pbuffer->width());
+ qreal y_fraction = height()/float(m_pbuffer->height());
+
+ {
+ QPainter p(m_pbuffer);
+ p.setCompositionMode(QPainter::CompositionMode_Source);
+ p.fillRect(QRect(0, 0, m_pbuffer->width(), m_pbuffer->height()), Qt::transparent);
+
+ p.save();
+ glBindTexture(GL_TEXTURE_2D, m_base_tex);
+ glEnable(GL_TEXTURE_2D);
+ glColor4f(1.,1.,1.,1.);
+
+ glBegin(GL_QUADS);
+ {
+ glTexCoord2f(0, 1.0);
+ glVertex2f(0, 0);
+
+ glTexCoord2f(x_fraction, 1.0);
+ glVertex2f(width(), 0);
+
+ glTexCoord2f(x_fraction, 1.0-y_fraction);
+ glVertex2f(width(), height());
+
+ glTexCoord2f(0, 1.0-y_fraction);
+ glVertex2f(0, height());
+ }
+ glEnd();
+
+ glDisable(GL_TEXTURE_2D);
+ p.restore();
+
+ drawSource(p);
+ p.end();
+ m_pbuffer->updateDynamicTexture(m_compositing_tex);
+ }
+
+ glWidget()->makeCurrent();
+ glBindTexture(GL_TEXTURE_2D, m_compositing_tex);
+ glEnable(GL_TEXTURE_2D);
+ glColor4f(1.,1.,1.,1.);
+ glBegin(GL_QUADS);
+ {
+ glTexCoord2f(0, 1.0);
+ glVertex2f(0, 0);
+
+ glTexCoord2f(x_fraction, 1.0);
+ glVertex2f(width(), 0);
+
+ glTexCoord2f(x_fraction, 1.0-y_fraction);
+ glVertex2f(width(), height());
+
+ glTexCoord2f(0, 1.0-y_fraction);
+ glVertex2f(0, height());
+ }
+ glEnd();
+ glDisable(GL_TEXTURE_2D);
+ } else
+#endif
+ {
+ // using a QImage
+ if (m_buffer.size() != size()) {
+#ifdef Q_WS_QWS
+ m_base_buffer = QPixmap(size());
+ m_base_buffer.fill(Qt::transparent);
+#else
+ m_buffer = QImage(size(), QImage::Format_ARGB32_Premultiplied);
+ m_base_buffer = QImage(size(), QImage::Format_ARGB32_Premultiplied);
+
+ m_base_buffer.fill(0);
+#endif
+
+ QPainter p(&m_base_buffer);
+
+ drawBase(p);
+ }
+
+#ifdef Q_WS_QWS
+ m_buffer = m_base_buffer;
+#else
+ memcpy(m_buffer.bits(), m_base_buffer.bits(), m_buffer.numBytes());
+#endif
+
+ {
+ QPainter p(&m_buffer);
+ drawSource(p);
+ }
+
+#ifdef Q_WS_QWS
+ painter->drawPixmap(0, 0, m_buffer);
+#else
+ painter->drawImage(0, 0, m_buffer);
+#endif
+ }
+
+ if (m_animation_enabled && m_current_object == NoObject) {
+ updateCirclePos();
+ }
+}
+
+void CompositionRenderer::mousePressEvent(QMouseEvent *e)
+{
+ setDescriptionEnabled(false);
+
+ QRectF circle = rectangle_around(m_circle_pos);
+
+ if (circle.contains(e->pos())) {
+ m_current_object = Circle;
+ m_offset = circle.center() - e->pos();
+ } else {
+ m_current_object = NoObject;
+ }
+}
+
+void CompositionRenderer::mouseMoveEvent(QMouseEvent *e)
+{
+ if (m_current_object == Circle) setCirclePos(e->pos() + m_offset);
+}
+
+void CompositionRenderer::mouseReleaseEvent(QMouseEvent *)
+{
+ m_current_object = NoObject;
+
+ if (m_animation_enabled)
+ updateCirclePos();
+}
+
+void CompositionRenderer::setCirclePos(const QPointF &pos)
+{
+ const QRect oldRect = rectangle_around(m_circle_pos).toAlignedRect();
+ m_circle_pos = pos;
+ const QRect newRect = rectangle_around(m_circle_pos).toAlignedRect();
+#if defined(QT_OPENGL_SUPPORT) && !defined(QT_OPENGL_ES)
+ if (usesOpenGL())
+ update();
+ else
+#endif
+ update(oldRect | newRect);
+}
+
diff --git a/demos/composition/composition.h b/demos/composition/composition.h
new file mode 100644
index 0000000..1d504d0
--- /dev/null
+++ b/demos/composition/composition.h
@@ -0,0 +1,190 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef COMPOSITION_H
+#define COMPOSITION_H
+
+#include "arthurwidgets.h"
+
+#include <QPainter>
+#include <QEvent>
+
+QT_FORWARD_DECLARE_CLASS(QPushButton)
+QT_FORWARD_DECLARE_CLASS(QRadioButton)
+
+#ifdef QT_OPENGL_SUPPORT
+#include <QtOpenGL>
+#endif
+
+class CompositionWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ CompositionWidget(QWidget *parent);
+
+public slots:
+void nextMode();
+
+private:
+ bool m_cycle_enabled;
+
+ QRadioButton *rbClear;
+ QRadioButton *rbSource;
+ QRadioButton *rbDest;
+ QRadioButton *rbSourceOver;
+ QRadioButton *rbDestOver;
+ QRadioButton *rbSourceIn;
+ QRadioButton *rbDestIn;
+ QRadioButton *rbSourceOut;
+ QRadioButton *rbDestOut;
+ QRadioButton *rbSourceAtop;
+ QRadioButton *rbDestAtop;
+ QRadioButton *rbXor;
+
+ QRadioButton *rbPlus;
+ QRadioButton *rbMultiply;
+ QRadioButton *rbScreen;
+ QRadioButton *rbOverlay;
+ QRadioButton *rbDarken;
+ QRadioButton *rbLighten;
+ QRadioButton *rbColorDodge;
+ QRadioButton *rbColorBurn;
+ QRadioButton *rbHardLight;
+ QRadioButton *rbSoftLight;
+ QRadioButton *rbDifference;
+ QRadioButton *rbExclusion;
+};
+
+class CompositionRenderer : public ArthurFrame
+{
+ Q_OBJECT
+
+ enum ObjectType { NoObject, Circle, Rectangle, Image };
+
+ Q_PROPERTY(int circleColor READ circleColor WRITE setCircleColor)
+ Q_PROPERTY(int circleAlpha READ circleAlpha WRITE setCircleAlpha)
+ Q_PROPERTY(bool animation READ animationEnabled WRITE setAnimationEnabled)
+
+public:
+ CompositionRenderer(QWidget *parent);
+
+ void paint(QPainter *);
+
+ void mousePressEvent(QMouseEvent *);
+ void mouseMoveEvent(QMouseEvent *);
+ void mouseReleaseEvent(QMouseEvent *);
+
+ void setCirclePos(const QPointF &pos);
+
+ QSize sizeHint() const { return QSize(500, 400); }
+
+ bool animationEnabled() const { return m_animation_enabled; }
+ int circleColor() const { return m_circle_hue; }
+ int circleAlpha() const { return m_circle_alpha; }
+
+public slots:
+ void setClearMode() { m_composition_mode = QPainter::CompositionMode_Clear; update(); }
+ void setSourceMode() { m_composition_mode = QPainter::CompositionMode_Source; update(); }
+ void setDestMode() { m_composition_mode = QPainter::CompositionMode_Destination; update(); }
+ void setSourceOverMode() { m_composition_mode = QPainter::CompositionMode_SourceOver; update(); }
+ void setDestOverMode() { m_composition_mode = QPainter::CompositionMode_DestinationOver; update(); }
+ void setSourceInMode() { m_composition_mode = QPainter::CompositionMode_SourceIn; update(); }
+ void setDestInMode() { m_composition_mode = QPainter::CompositionMode_DestinationIn; update(); }
+ void setSourceOutMode() { m_composition_mode = QPainter::CompositionMode_SourceOut; update(); }
+ void setDestOutMode() { m_composition_mode = QPainter::CompositionMode_DestinationOut; update(); }
+ void setSourceAtopMode() { m_composition_mode = QPainter::CompositionMode_SourceAtop; update(); }
+ void setDestAtopMode() { m_composition_mode = QPainter::CompositionMode_DestinationAtop; update(); }
+ void setXorMode() { m_composition_mode = QPainter::CompositionMode_Xor; update(); }
+
+ void setPlusMode() { m_composition_mode = QPainter::CompositionMode_Plus; update(); }
+ void setMultiplyMode() { m_composition_mode = QPainter::CompositionMode_Multiply; update(); }
+ void setScreenMode() { m_composition_mode = QPainter::CompositionMode_Screen; update(); }
+ void setOverlayMode() { m_composition_mode = QPainter::CompositionMode_Overlay; update(); }
+ void setDarkenMode() { m_composition_mode = QPainter::CompositionMode_Darken; update(); }
+ void setLightenMode() { m_composition_mode = QPainter::CompositionMode_Lighten; update(); }
+ void setColorDodgeMode() { m_composition_mode = QPainter::CompositionMode_ColorDodge; update(); }
+ void setColorBurnMode() { m_composition_mode = QPainter::CompositionMode_ColorBurn; update(); }
+ void setHardLightMode() { m_composition_mode = QPainter::CompositionMode_HardLight; update(); }
+ void setSoftLightMode() { m_composition_mode = QPainter::CompositionMode_SoftLight; update(); }
+ void setDifferenceMode() { m_composition_mode = QPainter::CompositionMode_Difference; update(); }
+ void setExclusionMode() { m_composition_mode = QPainter::CompositionMode_Exclusion; update(); }
+
+ void setCircleAlpha(int alpha) { m_circle_alpha = alpha; update(); }
+ void setCircleColor(int hue) { m_circle_hue = hue; update(); }
+ void setAnimationEnabled(bool enabled) { m_animation_enabled = enabled; update(); }
+
+private:
+ void updateCirclePos();
+ void drawBase(QPainter &p);
+ void drawSource(QPainter &p);
+
+ QPainter::CompositionMode m_composition_mode;
+
+#ifdef Q_WS_QWS
+ QPixmap m_image;
+ QPixmap m_buffer;
+ QPixmap m_base_buffer;
+#else
+ QImage m_image;
+ QImage m_buffer;
+ QImage m_base_buffer;
+#endif
+
+ int m_circle_alpha;
+ int m_circle_hue;
+
+ QPointF m_circle_pos;
+ QPointF m_offset;
+
+ ObjectType m_current_object;
+ bool m_animation_enabled;
+
+#ifdef QT_OPENGL_SUPPORT
+ QGLPixelBuffer *m_pbuffer;
+ GLuint m_base_tex;
+ GLuint m_compositing_tex;
+ int m_pbuffer_size; // width==height==size of pbuffer
+ QSize m_previous_size;
+#endif
+};
+
+#endif // COMPOSITION_H
diff --git a/demos/composition/composition.html b/demos/composition/composition.html
new file mode 100644
index 0000000..1848ad8
--- /dev/null
+++ b/demos/composition/composition.html
@@ -0,0 +1,23 @@
+<html>
+
+<h1>Demo for composition modes</h1>
+
+<p>
+ This demo shows some of the more advanced composition modes supported by Qt.
+</p>
+
+<p>
+ The two most common forms of composition are <b>Source</b> and <b>SourceOver</b>.
+ <b>Source</b> is used to draw opaque objects onto a paint device. In this mode,
+ each pixel in the source replaces the corresponding pixel in the destination.
+ In <b>SourceOver</b> composition mode, the source object is transparent and is
+ drawn on top of the destination.
+</p>
+
+<p>
+ In addition to these standard modes, Qt defines the complete set of composition
+ modes as defined by Thomas Porter and Tom Duff. See the <tt>QPainter</tt> documentation
+ for details.
+</p>
+
+</html>
diff --git a/demos/composition/composition.pro b/demos/composition/composition.pro
new file mode 100644
index 0000000..d5c4a60
--- /dev/null
+++ b/demos/composition/composition.pro
@@ -0,0 +1,27 @@
+SOURCES += main.cpp composition.cpp
+HEADERS += composition.h
+
+SHARED_FOLDER = ../shared
+
+include($$SHARED_FOLDER/shared.pri)
+
+RESOURCES += composition.qrc
+contains(QT_CONFIG, opengl) {
+ DEFINES += QT_OPENGL_SUPPORT
+ QT += opengl
+}
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/composition
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.png *.jpg *.pro *.html
+sources.path = $$[QT_INSTALL_DEMOS]/composition
+INSTALLS += target sources
+
+win32-msvc* {
+ QMAKE_CXXFLAGS += /Zm500
+ QMAKE_CFLAGS += /Zm500
+}
+
+wince* {
+ DEPLOYMENT_PLUGIN += qjpeg
+}
diff --git a/demos/composition/composition.qrc b/demos/composition/composition.qrc
new file mode 100644
index 0000000..d02c397
--- /dev/null
+++ b/demos/composition/composition.qrc
@@ -0,0 +1,8 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/res/composition">
+ <file>composition.cpp</file>
+ <file>composition.html</file>
+ <file>flower.jpg</file>
+ <file>flower_alpha.jpg</file>
+</qresource>
+</RCC>
diff --git a/demos/composition/flower.jpg b/demos/composition/flower.jpg
new file mode 100644
index 0000000..f8e022c
--- /dev/null
+++ b/demos/composition/flower.jpg
Binary files differ
diff --git a/demos/composition/flower_alpha.jpg b/demos/composition/flower_alpha.jpg
new file mode 100644
index 0000000..6a3c2a0
--- /dev/null
+++ b/demos/composition/flower_alpha.jpg
Binary files differ
diff --git a/demos/composition/main.cpp b/demos/composition/main.cpp
new file mode 100644
index 0000000..74055b2
--- /dev/null
+++ b/demos/composition/main.cpp
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "composition.h"
+
+#include <QApplication>
+
+int main(int argc, char **argv)
+{
+ // Q_INIT_RESOURCE(deform);
+
+ QApplication app(argc, argv);
+
+ CompositionWidget compWidget(0);
+ QStyle *arthurStyle = new ArthurStyle();
+ compWidget.setStyle(arthurStyle);
+
+ QList<QWidget *> widgets = qFindChildren<QWidget *>(&compWidget);
+ foreach (QWidget *w, widgets)
+ w->setStyle(arthurStyle);
+ compWidget.show();
+
+ return app.exec();
+}
diff --git a/demos/deform/deform.pro b/demos/deform/deform.pro
new file mode 100644
index 0000000..db8484d
--- /dev/null
+++ b/demos/deform/deform.pro
@@ -0,0 +1,19 @@
+SOURCES += main.cpp pathdeform.cpp
+HEADERS += pathdeform.h
+
+SHARED_FOLDER = ../shared
+
+include($$SHARED_FOLDER/shared.pri)
+
+RESOURCES += deform.qrc
+
+contains(QT_CONFIG, opengl) {
+ DEFINES += QT_OPENGL_SUPPORT
+ QT += opengl
+}
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/deform
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html
+sources.path = $$[QT_INSTALL_DEMOS]/deform
+INSTALLS += target sources
diff --git a/demos/deform/deform.qrc b/demos/deform/deform.qrc
new file mode 100644
index 0000000..2e59ebc
--- /dev/null
+++ b/demos/deform/deform.qrc
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/res/deform">
+ <file>pathdeform.cpp</file>
+ <file>pathdeform.html</file>
+</qresource>
+</RCC>
diff --git a/demos/deform/main.cpp b/demos/deform/main.cpp
new file mode 100644
index 0000000..e32fa12
--- /dev/null
+++ b/demos/deform/main.cpp
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "pathdeform.h"
+
+#include <QApplication>
+#include <QDebug>
+
+int main(int argc, char **argv)
+{
+ Q_INIT_RESOURCE(deform);
+
+ QApplication app(argc, argv);
+
+ bool smallScreen = false;
+ for (int i=0; i<argc; i++)
+ if (QString(argv[i]) == "-small-screen")
+ smallScreen = true;
+
+ PathDeformWidget deformWidget(0, smallScreen);
+
+ QStyle *arthurStyle = new ArthurStyle();
+ deformWidget.setStyle(arthurStyle);
+ QList<QWidget *> widgets = qFindChildren<QWidget *>(&deformWidget);
+ foreach (QWidget *w, widgets)
+ w->setStyle(arthurStyle);
+
+ if (smallScreen)
+ deformWidget.showFullScreen();
+ else
+ deformWidget.show();
+
+ return app.exec();
+}
diff --git a/demos/deform/pathdeform.cpp b/demos/deform/pathdeform.cpp
new file mode 100644
index 0000000..2e1d89a
--- /dev/null
+++ b/demos/deform/pathdeform.cpp
@@ -0,0 +1,647 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "pathdeform.h"
+
+#include <QApplication>
+#include <QtDebug>
+#include <QMouseEvent>
+#include <QTimerEvent>
+#include <QLayout>
+#include <QLineEdit>
+#include <QPainter>
+#include <QSlider>
+#include <QLabel>
+#include <QDesktopWidget>
+#include <qmath.h>
+
+
+PathDeformControls::PathDeformControls(QWidget *parent, PathDeformRenderer* renderer, bool smallScreen)
+ : QWidget(parent)
+{
+ m_renderer = renderer;
+
+ if (smallScreen)
+ layoutForSmallScreen();
+ else
+ layoutForDesktop();
+}
+
+
+void PathDeformControls::layoutForDesktop()
+{
+ QGroupBox* mainGroup = new QGroupBox(this);
+ mainGroup->setTitle(tr("Controls"));
+
+ QGroupBox *radiusGroup = new QGroupBox(mainGroup);
+ radiusGroup->setTitle(tr("Lens Radius"));
+ QSlider *radiusSlider = new QSlider(Qt::Horizontal, radiusGroup);
+ radiusSlider->setRange(15, 150);
+ radiusSlider->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+
+ QGroupBox *deformGroup = new QGroupBox(mainGroup);
+ deformGroup->setTitle(tr("Deformation"));
+ QSlider *deformSlider = new QSlider(Qt::Horizontal, deformGroup);
+ deformSlider->setRange(-100, 100);
+ deformSlider->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+
+ QGroupBox *fontSizeGroup = new QGroupBox(mainGroup);
+ fontSizeGroup->setTitle(tr("Font Size"));
+ QSlider *fontSizeSlider = new QSlider(Qt::Horizontal, fontSizeGroup);
+ fontSizeSlider->setRange(16, 200);
+ fontSizeSlider->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+
+ QGroupBox *textGroup = new QGroupBox(mainGroup);
+ textGroup->setTitle(tr("Text"));
+ QLineEdit *textInput = new QLineEdit(textGroup);
+
+ QPushButton *animateButton = new QPushButton(mainGroup);
+ animateButton->setText(tr("Animated"));
+ animateButton->setCheckable(true);
+
+ QPushButton *showSourceButton = new QPushButton(mainGroup);
+ showSourceButton->setText(tr("Show Source"));
+
+#ifdef QT_OPENGL_SUPPORT
+ QPushButton *enableOpenGLButton = new QPushButton(mainGroup);
+ enableOpenGLButton->setText(tr("Use OpenGL"));
+ enableOpenGLButton->setCheckable(true);
+ enableOpenGLButton->setChecked(m_renderer->usesOpenGL());
+ if (!QGLFormat::hasOpenGL())
+ enableOpenGLButton->hide();
+#endif
+
+ QPushButton *whatsThisButton = new QPushButton(mainGroup);
+ whatsThisButton->setText(tr("What's This?"));
+ whatsThisButton->setCheckable(true);
+
+
+ mainGroup->setFixedWidth(180);
+
+ QVBoxLayout *mainGroupLayout = new QVBoxLayout(mainGroup);
+ mainGroupLayout->addWidget(radiusGroup);
+ mainGroupLayout->addWidget(deformGroup);
+ mainGroupLayout->addWidget(fontSizeGroup);
+ mainGroupLayout->addWidget(textGroup);
+ mainGroupLayout->addWidget(animateButton);
+ mainGroupLayout->addStretch(1);
+#ifdef QT_OPENGL_SUPPORT
+ mainGroupLayout->addWidget(enableOpenGLButton);
+#endif
+ mainGroupLayout->addWidget(showSourceButton);
+ mainGroupLayout->addWidget(whatsThisButton);
+
+ QVBoxLayout *radiusGroupLayout = new QVBoxLayout(radiusGroup);
+ radiusGroupLayout->addWidget(radiusSlider);
+
+ QVBoxLayout *deformGroupLayout = new QVBoxLayout(deformGroup);
+ deformGroupLayout->addWidget(deformSlider);
+
+ QVBoxLayout *fontSizeGroupLayout = new QVBoxLayout(fontSizeGroup);
+ fontSizeGroupLayout->addWidget(fontSizeSlider);
+
+ QVBoxLayout *textGroupLayout = new QVBoxLayout(textGroup);
+ textGroupLayout->addWidget(textInput);
+
+ QVBoxLayout * mainLayout = new QVBoxLayout(this);
+ mainLayout->addWidget(mainGroup);
+ mainLayout->setMargin(0);
+
+ connect(radiusSlider, SIGNAL(valueChanged(int)), m_renderer, SLOT(setRadius(int)));
+ connect(deformSlider, SIGNAL(valueChanged(int)), m_renderer, SLOT(setIntensity(int)));
+ connect(fontSizeSlider, SIGNAL(valueChanged(int)), m_renderer, SLOT(setFontSize(int)));
+ connect(animateButton, SIGNAL(clicked(bool)), m_renderer, SLOT(setAnimated(bool)));
+#ifdef QT_OPENGL_SUPPORT
+ connect(enableOpenGLButton, SIGNAL(clicked(bool)), m_renderer, SLOT(enableOpenGL(bool)));
+#endif
+
+ connect(textInput, SIGNAL(textChanged(QString)), m_renderer, SLOT(setText(QString)));
+ connect(m_renderer, SIGNAL(descriptionEnabledChanged(bool)),
+ whatsThisButton, SLOT(setChecked(bool)));
+ connect(whatsThisButton, SIGNAL(clicked(bool)), m_renderer, SLOT(setDescriptionEnabled(bool)));
+ connect(showSourceButton, SIGNAL(clicked()), m_renderer, SLOT(showSource()));
+
+ animateButton->animateClick();
+ deformSlider->setValue(80);
+ fontSizeSlider->setValue(120);
+ radiusSlider->setValue(100);
+ textInput->setText(tr("Qt"));
+}
+
+void PathDeformControls::layoutForSmallScreen()
+{
+ QGroupBox* mainGroup = new QGroupBox(this);
+ mainGroup->setTitle(tr("Controls"));
+
+ QLabel *radiusLabel = new QLabel(mainGroup);
+ radiusLabel->setText(tr("Lens Radius:"));
+ QSlider *radiusSlider = new QSlider(Qt::Horizontal, mainGroup);
+ radiusSlider->setRange(15, 150);
+ radiusSlider->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+
+ QLabel *deformLabel = new QLabel(mainGroup);
+ deformLabel->setText(tr("Deformation:"));
+ QSlider *deformSlider = new QSlider(Qt::Horizontal, mainGroup);
+ deformSlider->setRange(-100, 100);
+ deformSlider->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+
+ QLabel *fontSizeLabel = new QLabel(mainGroup);
+ fontSizeLabel->setText(tr("Font Size:"));
+ QSlider *fontSizeSlider = new QSlider(Qt::Horizontal, mainGroup);
+ fontSizeSlider->setRange(16, 200);
+ fontSizeSlider->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+
+ QPushButton *animateButton = new QPushButton(tr("Animated"), mainGroup);
+ animateButton->setCheckable(true);
+
+#ifdef QT_OPENGL_SUPPORT
+ QPushButton *enableOpenGLButton = new QPushButton(mainGroup);
+ enableOpenGLButton->setText(tr("Use OpenGL"));
+ enableOpenGLButton->setCheckable(mainGroup);
+ enableOpenGLButton->setChecked(m_renderer->usesOpenGL());
+ if (!QGLFormat::hasOpenGL())
+ enableOpenGLButton->hide();
+#endif
+
+ QPushButton *quitButton = new QPushButton(tr("Quit"), mainGroup);
+ QPushButton *okButton = new QPushButton(tr("OK"), mainGroup);
+
+
+ QGridLayout *mainGroupLayout = new QGridLayout(mainGroup);
+ mainGroupLayout->setMargin(0);
+ mainGroupLayout->addWidget(radiusLabel, 0, 0, Qt::AlignRight);
+ mainGroupLayout->addWidget(radiusSlider, 0, 1);
+ mainGroupLayout->addWidget(deformLabel, 1, 0, Qt::AlignRight);
+ mainGroupLayout->addWidget(deformSlider, 1, 1);
+ mainGroupLayout->addWidget(fontSizeLabel, 2, 0, Qt::AlignRight);
+ mainGroupLayout->addWidget(fontSizeSlider, 2, 1);
+ mainGroupLayout->addWidget(animateButton, 3,0, 1,2);
+#ifdef QT_OPENGL_SUPPORT
+ mainGroupLayout->addWidget(enableOpenGLButton, 4,0, 1,2);
+#endif
+
+ QVBoxLayout *mainLayout = new QVBoxLayout(this);
+ mainLayout->addWidget(mainGroup);
+ mainLayout->addStretch(1);
+ mainLayout->addWidget(okButton);
+ mainLayout->addWidget(quitButton);
+
+ connect(quitButton, SIGNAL(clicked()), this, SLOT(emitQuitSignal()));
+ connect(okButton, SIGNAL(clicked()), this, SLOT(emitOkSignal()));
+ connect(radiusSlider, SIGNAL(valueChanged(int)), m_renderer, SLOT(setRadius(int)));
+ connect(deformSlider, SIGNAL(valueChanged(int)), m_renderer, SLOT(setIntensity(int)));
+ connect(fontSizeSlider, SIGNAL(valueChanged(int)), m_renderer, SLOT(setFontSize(int)));
+ connect(animateButton, SIGNAL(clicked(bool)), m_renderer, SLOT(setAnimated(bool)));
+#ifdef QT_OPENGL_SUPPORT
+ connect(enableOpenGLButton, SIGNAL(clicked(bool)), m_renderer, SLOT(enableOpenGL(bool)));
+#endif
+
+
+ animateButton->animateClick();
+ deformSlider->setValue(80);
+ fontSizeSlider->setValue(120);
+
+ QRect screen_size = QApplication::desktop()->screenGeometry();
+ radiusSlider->setValue(qMin(screen_size.width(), screen_size.height())/5);
+ m_renderer->setText(tr("Qt"));
+}
+
+
+void PathDeformControls::emitQuitSignal()
+{ emit quitPressed(); }
+
+void PathDeformControls::emitOkSignal()
+{ emit okPressed(); }
+
+
+PathDeformWidget::PathDeformWidget(QWidget *parent, bool smallScreen)
+ : QWidget(parent)
+{
+ setWindowTitle(tr("Vector Deformation"));
+
+ m_renderer = new PathDeformRenderer(this, smallScreen);
+ m_renderer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+
+ // Layouts
+ QHBoxLayout *mainLayout = new QHBoxLayout(this);
+ mainLayout->addWidget(m_renderer);
+
+ m_controls = new PathDeformControls(0, m_renderer, smallScreen);
+ m_controls->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum);
+
+ if (!smallScreen)
+ mainLayout->addWidget(m_controls);
+
+ m_renderer->loadSourceFile(":res/deform/pathdeform.cpp");
+ m_renderer->loadDescription(":res/deform/pathdeform.html");
+ m_renderer->setDescriptionEnabled(false);
+
+ connect(m_renderer, SIGNAL(clicked()), this, SLOT(showControls()));
+ connect(m_controls, SIGNAL(okPressed()), this, SLOT(hideControls()));
+ connect(m_controls, SIGNAL(quitPressed()), QApplication::instance(), SLOT(quit()));
+}
+
+
+void PathDeformWidget::showControls()
+{
+ m_controls->showFullScreen();
+}
+
+void PathDeformWidget::hideControls()
+{
+ m_controls->hide();
+}
+
+void PathDeformWidget::setStyle( QStyle * style )
+{
+ QWidget::setStyle(style);
+ if (m_controls != 0)
+ {
+ m_controls->setStyle(style);
+
+ QList<QWidget *> widgets = qFindChildren<QWidget *>(m_controls);
+ foreach (QWidget *w, widgets)
+ w->setStyle(style);
+ }
+}
+
+static inline QRect circle_bounds(const QPointF &center, qreal radius, qreal compensation)
+{
+ return QRect(qRound(center.x() - radius - compensation),
+ qRound(center.y() - radius - compensation),
+ qRound((radius + compensation) * 2),
+ qRound((radius + compensation) * 2));
+
+}
+
+const int LENS_EXTENT = 10;
+
+PathDeformRenderer::PathDeformRenderer(QWidget *widget, bool smallScreen)
+ : ArthurFrame(widget)
+{
+ m_radius = 100;
+ m_pos = QPointF(m_radius, m_radius);
+ m_direction = QPointF(1, 1);
+ m_fontSize = 24;
+ m_animated = true;
+ m_repaintTimer.start(25, this);
+ m_repaintTracker.start();
+ m_intensity = 100;
+ m_smallScreen = smallScreen;
+
+// m_fpsTimer.start(1000, this);
+// m_fpsCounter = 0;
+
+ generateLensPixmap();
+}
+
+void PathDeformRenderer::setText(const QString &text)
+{
+ m_text = text;
+
+ QFont f("times new roman,utopia");
+ f.setStyleStrategy(QFont::ForceOutline);
+ f.setPointSize(m_fontSize);
+ f.setStyleHint(QFont::Times);
+
+ QFontMetrics fm(f);
+
+ m_paths.clear();
+ m_pathBounds = QRect();
+
+ QPointF advance(0, 0);
+
+ bool do_quick = true;
+ for (int i=0; i<text.size(); ++i) {
+ if (text.at(i).unicode() >= 0x4ff && text.at(i).unicode() <= 0x1e00) {
+ do_quick = false;
+ break;
+ }
+ }
+
+ if (do_quick) {
+ for (int i=0; i<text.size(); ++i) {
+ QPainterPath path;
+ path.addText(advance, f, text.mid(i, 1));
+ m_pathBounds |= path.boundingRect();
+ m_paths << path;
+ advance += QPointF(fm.width(text.mid(i, 1)), 0);
+ }
+ } else {
+ QPainterPath path;
+ path.addText(advance, f, text);
+ m_pathBounds |= path.boundingRect();
+ m_paths << path;
+ }
+
+ for (int i=0; i<m_paths.size(); ++i)
+ m_paths[i] = m_paths[i] * QMatrix(1, 0, 0, 1, -m_pathBounds.x(), -m_pathBounds.y());
+
+ update();
+}
+
+
+void PathDeformRenderer::generateLensPixmap()
+{
+ qreal rad = m_radius + LENS_EXTENT;
+
+ QRect bounds = circle_bounds(QPointF(), rad, 0);
+
+ QPainter painter;
+
+ if (preferImage()) {
+ m_lens_image = QImage(bounds.size(), QImage::Format_ARGB32_Premultiplied);
+ m_lens_image.fill(0);
+ painter.begin(&m_lens_image);
+ } else {
+ m_lens_pixmap = QPixmap(bounds.size());
+ m_lens_pixmap.fill(Qt::transparent);
+ painter.begin(&m_lens_pixmap);
+ }
+
+ QRadialGradient gr(rad, rad, rad, 3 * rad / 5, 3 * rad / 5);
+ gr.setColorAt(0.0, QColor(255, 255, 255, 191));
+ gr.setColorAt(0.2, QColor(255, 255, 127, 191));
+ gr.setColorAt(0.9, QColor(150, 150, 200, 63));
+ gr.setColorAt(0.95, QColor(0, 0, 0, 127));
+ gr.setColorAt(1, QColor(0, 0, 0, 0));
+ painter.setRenderHint(QPainter::Antialiasing);
+ painter.setBrush(gr);
+ painter.setPen(Qt::NoPen);
+ painter.drawEllipse(0, 0, bounds.width(), bounds.height());
+}
+
+
+void PathDeformRenderer::setAnimated(bool animated)
+{
+ m_animated = animated;
+
+ if (m_animated) {
+// m_fpsTimer.start(1000, this);
+// m_fpsCounter = 0;
+ m_repaintTimer.start(25, this);
+ m_repaintTracker.start();
+ } else {
+// m_fpsTimer.stop();
+ m_repaintTimer.stop();
+ }
+}
+
+void PathDeformRenderer::timerEvent(QTimerEvent *e)
+{
+
+ if (e->timerId() == m_repaintTimer.timerId()) {
+
+ if (QLineF(QPointF(0,0), m_direction).length() > 1)
+ m_direction *= 0.995;
+ qreal time = m_repaintTracker.restart();
+
+ QRect rectBefore = circle_bounds(m_pos, m_radius, m_fontSize);
+
+ qreal dx = m_direction.x();
+ qreal dy = m_direction.y();
+ if (time > 0) {
+ dx = dx * time * .1;
+ dy = dy * time * .1;
+ }
+
+ m_pos += QPointF(dx, dy);
+
+
+
+ if (m_pos.x() - m_radius < 0) {
+ m_direction.setX(-m_direction.x());
+ m_pos.setX(m_radius);
+ } else if (m_pos.x() + m_radius > width()) {
+ m_direction.setX(-m_direction.x());
+ m_pos.setX(width() - m_radius);
+ }
+
+ if (m_pos.y() - m_radius < 0) {
+ m_direction.setY(-m_direction.y());
+ m_pos.setY(m_radius);
+ } else if (m_pos.y() + m_radius > height()) {
+ m_direction.setY(-m_direction.y());
+ m_pos.setY(height() - m_radius);
+ }
+
+#ifdef QT_OPENGL_SUPPORT
+ if (usesOpenGL()) {
+ update();
+ } else
+#endif
+ {
+ QRect rectAfter = circle_bounds(m_pos, m_radius, m_fontSize);
+ update(rectAfter | rectBefore);
+ QApplication::syncX();
+ }
+ }
+// else if (e->timerId() == m_fpsTimer.timerId()) {
+// printf("fps: %d\n", m_fpsCounter);
+// emit frameRate(m_fpsCounter);
+// m_fpsCounter = 0;
+
+// }
+}
+
+void PathDeformRenderer::mousePressEvent(QMouseEvent *e)
+{
+ setDescriptionEnabled(false);
+
+ m_repaintTimer.stop();
+ m_offset = QPointF();
+ if (QLineF(m_pos, e->pos()).length() <= m_radius)
+ m_offset = m_pos - e->pos();
+
+ m_mousePress = e->pos();
+
+ // If we're not running in small screen mode, always assume we're dragging
+ m_mouseDrag = !m_smallScreen;
+
+ mouseMoveEvent(e);
+}
+
+void PathDeformRenderer::mouseReleaseEvent(QMouseEvent *e)
+{
+ if (e->buttons() == Qt::NoButton && m_animated) {
+ m_repaintTimer.start(10, this);
+ m_repaintTracker.start();
+ }
+
+ if (!m_mouseDrag && m_smallScreen)
+ emit clicked();
+}
+
+void PathDeformRenderer::mouseMoveEvent(QMouseEvent *e)
+{
+ if (!m_mouseDrag && (QLineF(m_mousePress, e->pos()).length() > 25.0) )
+ m_mouseDrag = true;
+
+ if (m_mouseDrag) {
+ QRect rectBefore = circle_bounds(m_pos, m_radius, m_fontSize);
+ if (e->type() == QEvent::MouseMove) {
+ QLineF line(m_pos, e->pos() + m_offset);
+ line.setLength(line.length() * .1);
+ QPointF dir(line.dx(), line.dy());
+ m_direction = (m_direction + dir) / 2;
+ }
+ m_pos = e->pos() + m_offset;
+#ifdef QT_OPENGL_SUPPORT
+ if (usesOpenGL()) {
+ update();
+ } else
+#endif
+ {
+ QRect rectAfter = circle_bounds(m_pos, m_radius, m_fontSize);
+ update(rectBefore | rectAfter);
+ }
+ }
+}
+
+QPainterPath PathDeformRenderer::lensDeform(const QPainterPath &source, const QPointF &offset)
+{
+ QPainterPath path;
+ path.addPath(source);
+
+ qreal flip = m_intensity / qreal(100);
+
+ for (int i=0; i<path.elementCount(); ++i) {
+ const QPainterPath::Element &e = path.elementAt(i);
+
+ qreal x = e.x + offset.x();
+ qreal y = e.y + offset.y();
+
+ qreal dx = x - m_pos.x();
+ qreal dy = y - m_pos.y();
+ qreal len = m_radius - qSqrt(dx * dx + dy * dy);
+
+ if (len > 0) {
+ path.setElementPositionAt(i,
+ x + flip * dx * len / m_radius,
+ y + flip * dy * len / m_radius);
+ } else {
+ path.setElementPositionAt(i, x, y);
+ }
+
+ }
+
+ return path;
+}
+
+
+void PathDeformRenderer::paint(QPainter *painter)
+{
+ int pad_x = 5;
+ int pad_y = 5;
+
+ int skip_x = qRound(m_pathBounds.width() + pad_x + m_fontSize/2);
+ int skip_y = qRound(m_pathBounds.height() + pad_y);
+
+ painter->setPen(Qt::NoPen);
+ painter->setBrush(Qt::black);
+
+ QRectF clip(painter->clipPath().boundingRect());
+
+ int overlap = pad_x / 2;
+
+ for (int start_y=0; start_y < height(); start_y += skip_y) {
+
+ if (start_y > clip.bottom())
+ break;
+
+ int start_x = -overlap;
+ for (; start_x < width(); start_x += skip_x) {
+
+ if (start_y + skip_y >= clip.top() &&
+ start_x + skip_x >= clip.left() &&
+ start_x <= clip.right()) {
+ for (int i=0; i<m_paths.size(); ++i) {
+ QPainterPath path = lensDeform(m_paths[i], QPointF(start_x, start_y));
+ painter->drawPath(path);
+ }
+ }
+ }
+ overlap = skip_x - (start_x - width());
+
+ }
+
+ if (preferImage()) {
+ painter->drawImage(m_pos - QPointF(m_radius + LENS_EXTENT, m_radius + LENS_EXTENT),
+ m_lens_image);
+ } else {
+ painter->drawPixmap(m_pos - QPointF(m_radius + LENS_EXTENT, m_radius + LENS_EXTENT),
+ m_lens_pixmap);
+ }
+}
+
+
+
+void PathDeformRenderer::setRadius(int radius)
+{
+ qreal max = qMax(m_radius, (qreal)radius);
+ m_radius = radius;
+ generateLensPixmap();
+ if (!m_animated || m_radius < max) {
+#ifdef QT_OPENGL_SUPPORT
+ if (usesOpenGL()) {
+ update();
+ } else
+#endif
+ {
+ update(circle_bounds(m_pos, max, m_fontSize));
+ }
+ }
+}
+
+void PathDeformRenderer::setIntensity(int intensity)
+{
+ m_intensity = intensity;
+ if (!m_animated) {
+#ifdef QT_OPENGL_SUPPORT
+ if (usesOpenGL()) {
+ update();
+ } else
+#endif
+ {
+ update(circle_bounds(m_pos, m_radius, m_fontSize));
+ }
+ }
+}
diff --git a/demos/deform/pathdeform.h b/demos/deform/pathdeform.h
new file mode 100644
index 0000000..45edb26
--- /dev/null
+++ b/demos/deform/pathdeform.h
@@ -0,0 +1,153 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef PATHDEFORM_H
+#define PATHDEFORM_H
+
+#include "arthurwidgets.h"
+
+#include <QPainterPath>
+#include <QBasicTimer>
+#include <QDateTime>
+
+class PathDeformRenderer : public ArthurFrame
+{
+ Q_OBJECT
+ Q_PROPERTY(bool animated READ animated WRITE setAnimated)
+ Q_PROPERTY(int radius READ radius WRITE setRadius)
+ Q_PROPERTY(int fontSize READ fontSize WRITE setFontSize)
+ Q_PROPERTY(int intensity READ intensity WRITE setIntensity)
+ Q_PROPERTY(QString text READ text WRITE setText)
+
+public:
+ PathDeformRenderer(QWidget *widget, bool smallScreen = false);
+
+ void paint(QPainter *painter);
+
+ void mousePressEvent(QMouseEvent *e);
+ void mouseReleaseEvent(QMouseEvent *e);
+ void mouseMoveEvent(QMouseEvent *e);
+ void timerEvent(QTimerEvent *e);
+
+ QSize sizeHint() const { return QSize(600, 500); }
+
+ bool animated() const { return m_animated; }
+ int radius() const { return int(m_radius); }
+ int fontSize() const { return m_fontSize; }
+ int intensity() const { return int(m_intensity); }
+ QString text() const { return m_text; }
+
+public slots:
+ void setRadius(int radius);
+ void setFontSize(int fontSize) { m_fontSize = fontSize; setText(m_text); }
+ void setText(const QString &text);
+ void setIntensity(int intensity);
+
+ void setAnimated(bool animated);
+
+signals:
+ void clicked();
+// void frameRate(double fps);
+
+private:
+ void generateLensPixmap();
+ QPainterPath lensDeform(const QPainterPath &source, const QPointF &offset);
+
+ QBasicTimer m_repaintTimer;
+// QBasicTimer m_fpsTimer;
+// int m_fpsCounter;
+ QTime m_repaintTracker;
+
+ QVector<QPainterPath> m_paths;
+ QVector<QPointF> m_advances;
+ QRectF m_pathBounds;
+ QString m_text;
+
+ QPixmap m_lens_pixmap;
+ QImage m_lens_image;
+
+ int m_fontSize;
+ bool m_animated;
+
+ qreal m_intensity;
+ qreal m_radius;
+ QPointF m_pos;
+ QPointF m_offset;
+ QPointF m_direction;
+ QPointF m_mousePress;
+ bool m_mouseDrag;
+ bool m_smallScreen;
+};
+
+class PathDeformControls : public QWidget
+{
+ Q_OBJECT
+public:
+ PathDeformControls(QWidget *parent, PathDeformRenderer* renderer, bool smallScreen);
+signals:
+ void okPressed();
+ void quitPressed();
+private:
+ PathDeformRenderer* m_renderer;
+ void layoutForDesktop();
+ void layoutForSmallScreen();
+private slots:
+ void emitQuitSignal();
+ void emitOkSignal();
+};
+
+class PathDeformWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ PathDeformWidget(QWidget *parent, bool smallScreen);
+ void setStyle ( QStyle * style );
+
+private:
+ PathDeformRenderer *m_renderer;
+ PathDeformControls *m_controls;
+
+private slots:
+ void showControls();
+ void hideControls();
+};
+
+#endif // PATHDEFORM_H
diff --git a/demos/deform/pathdeform.html b/demos/deform/pathdeform.html
new file mode 100644
index 0000000..b3f63a8
--- /dev/null
+++ b/demos/deform/pathdeform.html
@@ -0,0 +1,24 @@
+<html>
+<center>
+<h2>Vector deformation</h2>
+</center>
+
+<p>This demo shows how to use advanced vector techniques to draw text
+using a <code>QPainterPath</code>.</p>
+
+<p>We define a vector deformation field in the shape of a lens and apply
+this to all points in a path. This means that what is rendered on
+screen is not pixel manipulation, but modified vector representations of
+the glyphs themselves. This is visible from the high quality of the
+antialiased edges for the deformed glyphs.</p>
+
+<p>To get a fairly complex path we allow the user to type in text and
+convert the text to paths. This is done using the
+<code>QPainterPath::addText()</code> function.</p>
+
+<p>The lens is drawn using a single call to <code>drawEllipse()</code>, using
+a <code>QRadialGradient</code> to fill it with a specialized color table,
+giving the effect of the Sun's reflection and a drop shadow. The lens
+is cached as a pixmap for better performance.</p>
+
+</html>
diff --git a/demos/demos.pro b/demos/demos.pro
new file mode 100644
index 0000000..9248ab8
--- /dev/null
+++ b/demos/demos.pro
@@ -0,0 +1,73 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ demos_shared \
+ demos_deform \
+ demos_gradients \
+ demos_pathstroke \
+ demos_affine \
+ demos_composition \
+ demos_books \
+ demos_interview \
+ demos_mainwindow \
+ demos_spreadsheet \
+ demos_textedit \
+ demos_chip \
+ demos_embeddeddialogs \
+ demos_undo
+
+contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles1):!contains(QT_CONFIG, opengles1cl):!contains(QT_CONFIG, opengles2):{
+SUBDIRS += demos_boxes
+}
+
+mac*: SUBDIRS += demos_macmainwindow
+wince*|embedded: SUBDIRS += embedded
+
+!contains(QT_EDITION, Console):!cross_compile:!embedded:!wince*:SUBDIRS += demos_arthurplugin
+
+!cross_compile:{
+contains(QT_BUILD_PARTS, tools):{
+!wince*:SUBDIRS += demos_sqlbrowser demos_qtdemo
+wince*: SUBDIRS += demos_sqlbrowser
+}
+}
+contains(QT_CONFIG, phonon)!static:SUBDIRS += demos_mediaplayer
+contains(QT_CONFIG, webkit):contains(QT_CONFIG, svg):SUBDIRS += demos_browser
+
+# install
+sources.files = README *.pro
+sources.path = $$[QT_INSTALL_DEMOS]
+INSTALLS += sources
+
+demos_chip.subdir = chip
+demos_embeddeddialogs.subdir = embeddeddialogs
+demos_shared.subdir = shared
+demos_deform.subdir = deform
+demos_gradients.subdir = gradients
+demos_pathstroke.subdir = pathstroke
+demos_affine.subdir = affine
+demos_composition.subdir = composition
+demos_books.subdir = books
+demos_interview.subdir = interview
+demos_macmainwindow.subdir = macmainwindow
+demos_mainwindow.subdir = mainwindow
+demos_spreadsheet.subdir = spreadsheet
+demos_textedit.subdir = textedit
+demos_arthurplugin.subdir = arthurplugin
+demos_sqlbrowser.subdir = sqlbrowser
+demos_undo.subdir = undo
+demos_qtdemo.subdir = qtdemo
+demos_mediaplayer.subdir = mediaplayer
+
+demos_browser.subdir = browser
+
+demos_boxes.subdir = boxes
+
+#CONFIG += ordered
+!ordered {
+ demos_affine.depends = demos_shared
+ demos_deform.depends = demos_shared
+ demos_gradients.depends = demos_shared
+ demos_composition.depends = demos_shared
+ demos_arthurplugin.depends = demos_shared
+ demos_pathstroke.depends = demos_shared
+}
diff --git a/demos/embedded/embedded.pro b/demos/embedded/embedded.pro
new file mode 100644
index 0000000..7428b9f
--- /dev/null
+++ b/demos/embedded/embedded.pro
@@ -0,0 +1,13 @@
+TEMPLATE = subdirs
+SUBDIRS = styledemo
+
+contains(QT_CONFIG, svg) {
+ SUBDIRS += embeddedsvgviewer \
+ fluidlauncher
+}
+
+# install
+sources.files = README *.pro
+sources.path = $$[QT_INSTALL_DEMOS]/embedded
+INSTALLS += sources
+
diff --git a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp
new file mode 100644
index 0000000..1bd99c9
--- /dev/null
+++ b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp
@@ -0,0 +1,181 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QPainter>
+#include <QApplication>
+
+#include "embeddedsvgviewer.h"
+
+
+
+EmbeddedSvgViewer::EmbeddedSvgViewer(const QString &filePath)
+{
+ qApp->setStyleSheet(" QSlider:vertical { width: 50px; } \
+ QSlider::groove:vertical { border: 1px solid black; border-radius: 3px; width: 6px; } \
+ QSlider::handle:vertical { height: 25px; margin: 0 -22px; image: url(':/files/v-slider-handle.svg'); } \
+ ");
+
+ m_renderer = new QSvgRenderer(filePath);
+ m_imageSize = m_renderer->viewBox().size();
+
+ m_viewBoxCenter = (QPointF(m_imageSize.width() / qreal(2.0), m_imageSize.height() / qreal(2.0)));
+
+ m_zoomSlider = new QSlider(Qt::Vertical, this);
+ m_zoomSlider->setMaximum(150);
+ m_zoomSlider->setMinimum(1);
+
+ connect(m_zoomSlider, SIGNAL(valueChanged(int)), this, SLOT(setZoom(int)));
+ m_zoomSlider->setValue(100);
+
+ m_quitButton = new QPushButton("Quit", this);
+
+ connect(m_quitButton, SIGNAL(pressed()), QApplication::instance(), SLOT(quit()));
+
+ if (m_renderer->animated())
+ connect(m_renderer, SIGNAL(repaintNeeded()), this, SLOT(update()));
+
+}
+
+void EmbeddedSvgViewer::paintEvent(QPaintEvent *event)
+{
+ Q_UNUSED(event)
+ QPainter painter(this);
+ m_renderer->setViewBox(m_viewBox);
+ m_renderer->render(&painter);
+}
+
+
+void EmbeddedSvgViewer::mouseMoveEvent ( QMouseEvent * event )
+{
+ int incX = int((event->globalX() - m_mousePress.x()) * m_imageScale);
+ int incY = int((event->globalY() - m_mousePress.y()) * m_imageScale);
+
+ QPointF newCenter;
+ newCenter.setX(m_viewBoxCenterOnMousePress.x() - incX);
+ newCenter.setY(m_viewBoxCenterOnMousePress.y() - incY);
+
+ QRectF newViewBox = getViewBox(newCenter);
+
+
+ // Do a bounded move on the horizontal:
+ if ( (newViewBox.left() >= m_viewBoxBounds.left()) &&
+ (newViewBox.right() <= m_viewBoxBounds.right()) )
+ {
+ m_viewBoxCenter.setX(newCenter.x());
+ m_viewBox.setLeft(newViewBox.left());
+ m_viewBox.setRight(newViewBox.right());
+ }
+
+ // do a bounded move on the vertical:
+ if ( (newViewBox.top() >= m_viewBoxBounds.top()) &&
+ (newViewBox.bottom() <= m_viewBoxBounds.bottom()) )
+ {
+ m_viewBoxCenter.setY(newCenter.y());
+ m_viewBox.setTop(newViewBox.top());
+ m_viewBox.setBottom(newViewBox.bottom());
+ }
+
+ update();
+}
+
+void EmbeddedSvgViewer::mousePressEvent ( QMouseEvent * event )
+{
+ m_viewBoxCenterOnMousePress = m_viewBoxCenter;
+ m_mousePress = event->globalPos();
+}
+
+
+QRectF EmbeddedSvgViewer::getViewBox(QPointF viewBoxCenter)
+{
+ QRectF result;
+ result.setLeft(viewBoxCenter.x() - (m_viewBoxSize.width() / 2));
+ result.setTop(viewBoxCenter.y() - (m_viewBoxSize.height() / 2));
+ result.setRight(viewBoxCenter.x() + (m_viewBoxSize.width() / 2));
+ result.setBottom(viewBoxCenter.y() + (m_viewBoxSize.height() / 2));
+ return result;
+}
+
+void EmbeddedSvgViewer::updateImageScale()
+{
+ m_imageScale = qMax( (qreal)m_imageSize.width() / (qreal)width(),
+ (qreal)m_imageSize.height() / (qreal)height())*m_zoomLevel;
+
+ m_viewBoxSize.setWidth((qreal)width() * m_imageScale);
+ m_viewBoxSize.setHeight((qreal)height() * m_imageScale);
+}
+
+
+void EmbeddedSvgViewer::resizeEvent ( QResizeEvent * event )
+{
+ qreal origZoom = m_zoomLevel;
+
+ // Get the new bounds:
+ m_zoomLevel = 1.0;
+ updateImageScale();
+ m_viewBoxBounds = getViewBox(QPointF(m_imageSize.width() / 2.0, m_imageSize.height() / 2.0));
+
+ m_zoomLevel = origZoom;
+ updateImageScale();
+ m_viewBox = getViewBox(m_viewBoxCenter);
+
+ QRect sliderRect;
+ sliderRect.setLeft(width() - m_zoomSlider->sizeHint().width());
+ sliderRect.setRight(width());
+ sliderRect.setTop(height()/4);
+ sliderRect.setBottom(height() - (height()/4));
+ m_zoomSlider->setGeometry(sliderRect);
+}
+
+
+void EmbeddedSvgViewer::setZoom(int newZoom)
+{
+ m_zoomLevel = qreal(newZoom) / qreal(100);
+
+ updateImageScale();
+ m_viewBox = getViewBox(m_viewBoxCenter);
+
+ update();
+}
+
+
+
+
+
diff --git a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.h b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.h
new file mode 100644
index 0000000..c0af3cf
--- /dev/null
+++ b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.h
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef EMBEDDED_SVG_VIEWER_H
+#define EMBEDDED_SVG_VIEWER_H
+
+#include <QWidget>
+#include <QString>
+#include <QSvgRenderer>
+#include <QSize>
+#include <QMouseEvent>
+#include <QSlider>
+#include <QPushButton>
+
+class EmbeddedSvgViewer : public QWidget
+{
+ Q_OBJECT
+public:
+ EmbeddedSvgViewer(const QString& filePath);
+ virtual void paintEvent(QPaintEvent *event);
+ void mouseMoveEvent ( QMouseEvent * event );
+ void mousePressEvent ( QMouseEvent * event );
+ void resizeEvent ( QResizeEvent * event );
+
+public slots:
+ void setZoom(int); // 100 <= newZoom < 0
+
+private:
+ QSvgRenderer* m_renderer;
+ QSlider* m_zoomSlider;
+ QPushButton* m_quitButton;
+ QSize m_imageSize;
+ qreal m_zoomLevel;
+ qreal m_imageScale; // How many Image coords 1 widget pixel is worth
+
+ QRectF m_viewBox;
+ QRectF m_viewBoxBounds;
+ QSizeF m_viewBoxSize;
+ QPointF m_viewBoxCenter;
+ QPointF m_viewBoxCenterOnMousePress;
+ QPoint m_mousePress;
+
+ void updateImageScale();
+ QRectF getViewBox(QPointF viewBoxCenter);
+};
+
+
+
+#endif
diff --git a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro
new file mode 100644
index 0000000..505e607
--- /dev/null
+++ b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro
@@ -0,0 +1,16 @@
+TEMPLATE = app
+QT += svg
+
+# Input
+HEADERS += embeddedsvgviewer.h
+SOURCES += embeddedsvgviewer.cpp main.cpp
+RESOURCES += embeddedsvgviewer.qrc
+
+target.path = $$[QT_INSTALL_DEMOS]/embedded/embeddedsvgviewer
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html *.svg files
+sources.path = $$[QT_INSTALL_DEMOS]/embedded/embeddedsvgviewer
+INSTALLS += target sources
+
+wince*: {
+ DEPLOYMENT_PLUGIN += qsvg
+}
diff --git a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.qrc b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.qrc
new file mode 100644
index 0000000..bb02118
--- /dev/null
+++ b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.qrc
@@ -0,0 +1,7 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/">
+ <file>files/v-slider-handle.svg</file>
+ <file>files/default.svg</file>
+</qresource>
+</RCC>
+
diff --git a/demos/embedded/embeddedsvgviewer/files/default.svg b/demos/embedded/embeddedsvgviewer/files/default.svg
new file mode 100644
index 0000000..c28a711
--- /dev/null
+++ b/demos/embedded/embeddedsvgviewer/files/default.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="400px"
+ height="400px"
+ baseProfile="tiny"
+ id="svg8268"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ sodipodi:docname="simple2.svg"
+ sodipodi:docbase="/nfs/OpenMoko/SVGs"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata8283">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs8281" />
+ <sodipodi:namedview
+ inkscape:window-height="917"
+ inkscape:window-width="1324"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="2.1452345"
+ inkscape:cx="185.25"
+ inkscape:cy="214.75"
+ inkscape:window-x="0"
+ inkscape:window-y="30"
+ inkscape:current-layer="svg8268" />
+ <g
+ stroke="DarkBlue"
+ stroke-width="10"
+ id="g8270">
+ <rect
+ fill="blue"
+ fill-opacity="0.5"
+ x="25"
+ y="25"
+ width="175"
+ height="175"
+ id="rect8272" />
+ </g>
+ <circle
+ cx="200"
+ cy="200"
+ r="75"
+ id="circle8274"
+ sodipodi:cx="200"
+ sodipodi:cy="200"
+ sodipodi:rx="75"
+ sodipodi:ry="75"
+ transform="translate(-26.104372,21.909027)"
+ style="fill:#ffff00;fill-opacity:0.5;stroke:#000000" />
+ <polygon
+ fill="green"
+ stroke="black"
+ fill-opacity="0.5"
+ stroke-width="1"
+ points="200,225 350,225 275,350"
+ id="polygon8276" />
+ <path
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.50196081"
+ d="M 303.7037,50.705207 C 173.88522,56.588264 90.320951,92.710345 162.85059,120.82533 C 211.91719,139.84524 196.63811,214.12391 233.86243,192.59259 C 284.31755,163.4083 299.34345,193.75691 311.11111,187.30159 C 347.88407,167.12924 269.34382,134.85785 303.81608,114.5167 C 394.71183,60.881583 332.47907,46.043712 303.7037,50.705207 z "
+ id="path8289"
+ sodipodi:nodetypes="cssssc" />
+</svg>
diff --git a/demos/embedded/embeddedsvgviewer/files/v-slider-handle.svg b/demos/embedded/embeddedsvgviewer/files/v-slider-handle.svg
new file mode 100644
index 0000000..4ee87f8
--- /dev/null
+++ b/demos/embedded/embeddedsvgviewer/files/v-slider-handle.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="50"
+ height="25"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ version="1.0"
+ sodipodi:docbase="/home/tcooksey/Projects/qt-4.4/demos/embedded/embeddedsvgviewer/files"
+ sodipodi:docname="v-slider-handle.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2158">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop2160" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop2162" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2158"
+ id="linearGradient2164"
+ x1="26.10779"
+ y1="9.1025448"
+ x2="26.10779"
+ y2="-0.01334004"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9876687,0,0,2.5969342,0.3086332,-0.476397)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="12.256878"
+ inkscape:cx="42.920885"
+ inkscape:cy="4.2252457"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="50px"
+ height="25px"
+ inkscape:window-width="1282"
+ inkscape:window-height="879"
+ inkscape:window-x="137"
+ inkscape:window-y="30" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:url(#linearGradient2164);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.60153389px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 10.191803,24.254577 C 26.804559,24.254577 25.309299,24.303278 39.985656,24.303278 C 52.503796,24.303278 51.963217,0.91536797 40.722957,0.91536797 C 13.837108,0.91536797 16.298612,0.86901372 10.385089,0.86901372 C -2.0345215,0.86901372 -2.5249912,24.254577 10.191803,24.254577 z "
+ id="path2162"
+ sodipodi:nodetypes="csssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#868686;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ id="path2166"
+ sodipodi:cx="9.4232807"
+ sodipodi:cy="13.169908"
+ sodipodi:rx="2.2436383"
+ sodipodi:ry="1.9580842"
+ d="M 9.4232808,15.127992 A 2.2436383,1.9580842 0 1 1 9.4232808,11.211823 L 9.4232807,13.169908 z"
+ sodipodi:start="1.5707963"
+ sodipodi:end="4.712389"
+ transform="matrix(4.3804554,0,0,2.228386,-25.247974,-16.463284)" />
+ </g>
+</svg>
diff --git a/demos/embedded/embeddedsvgviewer/main.cpp b/demos/embedded/embeddedsvgviewer/main.cpp
new file mode 100644
index 0000000..80f92d6
--- /dev/null
+++ b/demos/embedded/embeddedsvgviewer/main.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QApplication>
+#include <QDebug>
+
+#include "embeddedsvgviewer.h"
+
+int main(int argc, char** argv)
+{
+ QApplication app(argc, argv);
+ Q_INIT_RESOURCE(embeddedsvgviewer);
+
+ QString filePath;
+
+ if (argc == 1)
+ filePath = QLatin1String(":/files/default.svg");
+ else if (argc == 2)
+ filePath = argv[1];
+ else {
+ qDebug() << QLatin1String("Please specify an svg file!");
+ return -1;
+ }
+
+ EmbeddedSvgViewer viewer(filePath);
+
+ viewer.showFullScreen();
+
+ return app.exec();
+}
diff --git a/demos/embedded/embeddedsvgviewer/shapes.svg b/demos/embedded/embeddedsvgviewer/shapes.svg
new file mode 100644
index 0000000..c28a711
--- /dev/null
+++ b/demos/embedded/embeddedsvgviewer/shapes.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="400px"
+ height="400px"
+ baseProfile="tiny"
+ id="svg8268"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ sodipodi:docname="simple2.svg"
+ sodipodi:docbase="/nfs/OpenMoko/SVGs"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata8283">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs8281" />
+ <sodipodi:namedview
+ inkscape:window-height="917"
+ inkscape:window-width="1324"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="2.1452345"
+ inkscape:cx="185.25"
+ inkscape:cy="214.75"
+ inkscape:window-x="0"
+ inkscape:window-y="30"
+ inkscape:current-layer="svg8268" />
+ <g
+ stroke="DarkBlue"
+ stroke-width="10"
+ id="g8270">
+ <rect
+ fill="blue"
+ fill-opacity="0.5"
+ x="25"
+ y="25"
+ width="175"
+ height="175"
+ id="rect8272" />
+ </g>
+ <circle
+ cx="200"
+ cy="200"
+ r="75"
+ id="circle8274"
+ sodipodi:cx="200"
+ sodipodi:cy="200"
+ sodipodi:rx="75"
+ sodipodi:ry="75"
+ transform="translate(-26.104372,21.909027)"
+ style="fill:#ffff00;fill-opacity:0.5;stroke:#000000" />
+ <polygon
+ fill="green"
+ stroke="black"
+ fill-opacity="0.5"
+ stroke-width="1"
+ points="200,225 350,225 275,350"
+ id="polygon8276" />
+ <path
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.50196081"
+ d="M 303.7037,50.705207 C 173.88522,56.588264 90.320951,92.710345 162.85059,120.82533 C 211.91719,139.84524 196.63811,214.12391 233.86243,192.59259 C 284.31755,163.4083 299.34345,193.75691 311.11111,187.30159 C 347.88407,167.12924 269.34382,134.85785 303.81608,114.5167 C 394.71183,60.881583 332.47907,46.043712 303.7037,50.705207 z "
+ id="path8289"
+ sodipodi:nodetypes="cssssc" />
+</svg>
diff --git a/demos/embedded/embeddedsvgviewer/spheres.svg b/demos/embedded/embeddedsvgviewer/spheres.svg
new file mode 100644
index 0000000..e108777
--- /dev/null
+++ b/demos/embedded/embeddedsvgviewer/spheres.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" standalone="no"?>
+<svg width="8cm" height="8cm" viewBox="0 0 400 400"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink/"
+ baseProfile="tiny" version="1.2">
+ <title>Spheres</title>
+ <desc>Gradient filled spheres with different colors.</desc>
+ <defs>
+ <!-- Create radial gradients for each circle to make them look like
+ spheres. -->
+ <radialGradient id="blueSphere" gradientUnits="userSpaceOnUse"
+ cx="0" cy="0" r="100" fx="-50" fy="-50">
+ <stop offset="0%" stop-color="white" />
+ <stop offset="75%" stop-color="blue" />
+ <stop offset="100%" stop-color="#222244" />
+ </radialGradient>
+ <radialGradient id="redSphere" gradientUnits="userSpaceOnUse"
+ cx="0" cy="0" r="100" fx="-50" fy="-50">
+ <stop offset="0%" stop-color="white" />
+ <stop offset="75%" stop-color="red" />
+ <stop offset="100%" stop-color="#442222" />
+ </radialGradient>
+ <radialGradient id="greenSphere" gradientUnits="userSpaceOnUse"
+ cx="0" cy="0" r="100" fx="-50" fy="-50">
+ <stop offset="0%" stop-color="white" />
+ <stop offset="75%" stop-color="green" />
+ <stop offset="100%" stop-color="#113311" />
+ </radialGradient>
+ <radialGradient id="yellowSphere" gradientUnits="userSpaceOnUse"
+ cx="0" cy="0" r="100" fx="-50" fy="-50">
+ <stop offset="0%" stop-color="white" />
+ <stop offset="75%" stop-color="yellow" />
+ <stop offset="100%" stop-color="#444422" />
+ </radialGradient>
+ <radialGradient id="shadowGrad" gradientUnits="userSpaceOnUse"
+ cx="0" cy="0" r="100" fx="-50" fy="50">
+ <stop offset="0%" stop-color="black" stop-opacity="1.0" />
+ <stop offset="100%" stop-color="white" stop-opacity="0.0" />
+ </radialGradient>
+
+ <!-- Define a shadow for each sphere. -->
+ <circle id="shadow" fill="url(#shadowGrad)" cx="0" cy="0" r="100" />
+ </defs>
+ <g fill="#ffee99" stroke="none" >
+ <rect x="0" y="0" width="400" height="400" />
+ </g>
+ <g fill="white" stroke="none" >
+ <rect x="0" y="175" width="400" height="225" />
+ </g>
+ <g transform="translate(200,290) scale(2.0,1.0) rotate(45)" >
+ <rect fill="#a6ce39" x="-69" y="-69" width="138" height="138" />
+ <circle fill="black" cx="0" cy="0" r="50" />
+ <circle fill="#a6ce39" cx="0" cy="0" r="33" />
+ <path fill="black" d="M 37,50 L 50,37 L 12,-1 L 22,-11 L 10,-24 L -24,10
+ L -11,22 L -1,12 Z" />
+ <animateTransform attributeName="transform" type="rotate" values="0; 360"
+ begin="0s" dur="10s" fill="freeze" />
+ </g>
+ <g transform="translate(200,175)">
+ <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
+ <circle fill="url(#blueSphere)" cx="0" cy="0" r="100" />
+ </g>
+ <g transform="translate(315,240)">
+ <g transform="scale(0.5,0.5)">
+ <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
+ <circle fill="url(#redSphere)" cx="0" cy="0" r="100" />
+ </g>
+ </g>
+ <g transform="translate(80,275)">
+ <g transform="scale(0.65,0.65)">
+ <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
+ <circle fill="url(#greenSphere)" cx="0" cy="0" r="100" />
+ </g>
+ </g>
+ <g transform="translate(255,325)">
+ <g transform="scale(0.3,0.3)">
+ <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
+ <circle fill="url(#yellowSphere)" cx="0" cy="0" r="100" />
+ </g>
+ </g>
+</svg>
diff --git a/demos/embedded/fluidlauncher/config.xml b/demos/embedded/fluidlauncher/config.xml
new file mode 100644
index 0000000..6cb4be7
--- /dev/null
+++ b/demos/embedded/fluidlauncher/config.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<demolauncher>
+ <demos>
+ <example filename="../embeddedsvgviewer/embeddedsvgviewer" name="SVG Viewer" image="screenshots/embeddedsvgviewer.png" args="../embeddedsvgviewer/shapes.svg"/>
+ <example filename="../styledemo/styledemo" name="Stylesheets" image="screenshots/styledemo.png"/>
+ <example filename="../../deform/deform" name="Vector Deformation" image="screenshots/deform.png" args="-small-screen"/>
+ <example filename="../../pathstroke/pathstroke" name="Path Stroking" image="screenshots/pathstroke.png" args="-small-screen"/>
+ <example filename="../../../examples/widgets/wiggly/wiggly" name="Wiggly Text" image="screenshots/wiggly.png"/>
+ <example filename="../../../examples/painting/concentriccircles/concentriccircles" name="Concentric Circles" image="screenshots/concentriccircles.png"/>
+<!--
+ <example filename="../../../examples/graphicsview/elasticnodes/elasticnodes" name="Elastic Nodes" image="screenshots/elasticnodes.png" args="-maximize"/>
+ <example filename="../../../examples/assistant/simpletextviewer/simpletextviewer" name="Simple Text Viewer" image="../../../doc/html/images/simpletextviewer-mainwindow.png"/>
+ <example filename="../../../examples/dialogs/trivialwizard/trivialwizard" name="Trivial Wizard" image="../../../doc/html/images/trivialwizard-example-conclusion.png"/>
+ <example filename="../../../examples/draganddrop/draggableicons/draggableicons" name="Draggable Icons" image="../../../doc/html/images/draggableicons-example.png"/>
+ <example filename="../../../examples/draganddrop/draggabletext/draggabletext" name="Draggable Text" image="../../../doc/html/images/draggabletext-example.png"/>
+ <example filename="../../../examples/draganddrop/fridgemagnets/fridgemagnets" name="Fridge Magnets" image="../../../doc/html/images/fridgemagnets-example.png"/>
+ <example filename="../../../examples/graphicsview/collidingmice/collidingmice" name="Colliding Mice" image="../../../doc/html/images/collidingmice-example.png"/>
+ <example filename="../../../examples/graphicsview/padnavigator/padnavigator" name="Pad Navigator" image="../../../doc/html/images/padnavigator-example.png"/>
+ <example filename="../../../examples/itemviews/coloreditorfactory/coloreditorfactory" name="Color Editor" image="../../../doc/html/images/coloreditorfactoryimage.png"/>
+-->
+
+ </demos>
+ <slideshow timeout="60000" interval="10000">
+ <imagedir dir="slides"/>
+ </slideshow>
+</demolauncher>
diff --git a/demos/embedded/fluidlauncher/config_wince/config.xml b/demos/embedded/fluidlauncher/config_wince/config.xml
new file mode 100644
index 0000000..3b57770
--- /dev/null
+++ b/demos/embedded/fluidlauncher/config_wince/config.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<demolauncher>
+ <demos>
+ <example filename="embeddedsvgviewer" name="SVG Viewer" image="screenshots/embeddedsvgviewer.png" args="shapes.svg"/>
+ <example filename="styledemo" name="Stylesheets" image="screenshots/styledemo.png"/>
+ <example filename="deform" name="Vector Deformation" image="screenshots/deform.png" args="-small-screen"/>
+ <example filename="pathstroke" name="Path Stroking" image="screenshots/pathstroke.png" args="-small-screen"/>
+ <example filename="wiggly" name="Wiggly Text" image="screenshots/wiggly.png"/>
+ </demos>
+ <slideshow timeout="60000" interval="10000">
+ <imagedir dir="slides"/>
+ </slideshow>
+</demolauncher>
diff --git a/demos/embedded/fluidlauncher/demoapplication.cpp b/demos/embedded/fluidlauncher/demoapplication.cpp
new file mode 100644
index 0000000..c5abfb9
--- /dev/null
+++ b/demos/embedded/fluidlauncher/demoapplication.cpp
@@ -0,0 +1,116 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QDebug>
+#include <QDir>
+
+#include "demoapplication.h"
+
+
+
+DemoApplication::DemoApplication(QString executableName, QString caption, QString imageName, QStringList args)
+{
+ imagePath = imageName;
+ appCaption = caption;
+
+ if (executableName[0] == QLatin1Char('/'))
+ executablePath = executableName;
+ else
+ executablePath = QDir::cleanPath(QDir::currentPath() + QLatin1Char('/') + executableName);
+
+ arguments = args;
+
+ process.setProcessChannelMode(QProcess::ForwardedChannels);
+
+ QObject::connect( &process, SIGNAL(finished(int, QProcess::ExitStatus)),
+ this, SLOT(processFinished(int, QProcess::ExitStatus)));
+
+ QObject::connect( &process, SIGNAL(error(QProcess::ProcessError)),
+ this, SLOT(processError(QProcess::ProcessError)));
+
+ QObject::connect( &process, SIGNAL(started()), this, SLOT(processStarted()));
+}
+
+
+void DemoApplication::launch()
+{
+ process.start(executablePath, arguments);
+}
+
+QImage* DemoApplication::getImage()
+{
+ return new QImage(imagePath);
+}
+
+QString DemoApplication::getCaption()
+{
+ return appCaption;
+}
+
+void DemoApplication::processFinished(int exitCode, QProcess::ExitStatus exitStatus)
+{
+ Q_UNUSED(exitCode);
+ Q_UNUSED(exitStatus);
+
+ emit demoFinished();
+
+ QObject::disconnect(this, SIGNAL(demoStarted()), 0, 0);
+ QObject::disconnect(this, SIGNAL(demoFinished()), 0, 0);
+}
+
+void DemoApplication::processError(QProcess::ProcessError err)
+{
+ qDebug() << "Process error: " << err;
+ if (err == QProcess::Crashed)
+ emit demoFinished();
+}
+
+
+void DemoApplication::processStarted()
+{
+ emit demoStarted();
+}
+
+
+
+
+
+
diff --git a/demos/embedded/fluidlauncher/demoapplication.h b/demos/embedded/fluidlauncher/demoapplication.h
new file mode 100644
index 0000000..84ce1d4
--- /dev/null
+++ b/demos/embedded/fluidlauncher/demoapplication.h
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DEMO_APPLICATION_H
+#define DEMO_APPLICATION_H
+
+#include <QPixmap>
+#include <QImage>
+#include <QProcess>
+#include <QObject>
+
+class DemoApplication : public QObject
+{
+ Q_OBJECT
+
+public:
+ DemoApplication(QString executableName, QString caption, QString imageName, QStringList args);
+ void launch();
+ QImage* getImage();
+ QString getCaption();
+
+public slots:
+ void processStarted();
+ void processFinished(int exitCode, QProcess::ExitStatus exitStatus);
+ void processError(QProcess::ProcessError err);
+
+signals:
+ void demoStarted();
+ void demoFinished();
+
+private:
+ QString imagePath;
+ QString appCaption;
+ QString executablePath;
+ QStringList arguments;
+ QProcess process;
+};
+
+
+
+
+#endif
+
+
diff --git a/demos/embedded/fluidlauncher/fluidlauncher.cpp b/demos/embedded/fluidlauncher/fluidlauncher.cpp
new file mode 100644
index 0000000..f80e6ca
--- /dev/null
+++ b/demos/embedded/fluidlauncher/fluidlauncher.cpp
@@ -0,0 +1,221 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtXml>
+
+#include "fluidlauncher.h"
+
+
+#define DEFAULT_INPUT_TIMEOUT 10000
+
+FluidLauncher::FluidLauncher(QStringList* args)
+{
+ pictureFlowWidget = new PictureFlow();
+ slideShowWidget = new SlideShow();
+ inputTimer = new QTimer();
+
+ QRect screen_size = QApplication::desktop()->screenGeometry();
+
+ QObject::connect(pictureFlowWidget, SIGNAL(itemActivated(int)), this, SLOT(launchApplication(int)));
+ QObject::connect(pictureFlowWidget, SIGNAL(inputReceived()), this, SLOT(resetInputTimeout()));
+ QObject::connect(slideShowWidget, SIGNAL(inputReceived()), this, SLOT(switchToLauncher()));
+ QObject::connect(inputTimer, SIGNAL(timeout()), this, SLOT(inputTimedout()));
+
+ inputTimer->setSingleShot(true);
+ inputTimer->setInterval(DEFAULT_INPUT_TIMEOUT);
+
+ pictureFlowWidget->setSlideSize(QSize( (screen_size.width()*2)/5, (screen_size.height()*2)/5 ));
+
+ bool success;
+ int configIndex = args->indexOf("-config");
+ if ( (configIndex != -1) && (configIndex != args->count()-1) )
+ success = loadConfig(args->at(configIndex+1));
+ else
+ success = loadConfig("config.xml");
+
+ if (success) {
+ populatePictureFlow();
+
+ pictureFlowWidget->showFullScreen();
+ inputTimer->start();
+ } else {
+ pictureFlowWidget->setAttribute(Qt::WA_DeleteOnClose, true);
+ pictureFlowWidget->close();
+ }
+
+}
+
+FluidLauncher::~FluidLauncher()
+{
+ delete pictureFlowWidget;
+ delete slideShowWidget;
+}
+
+bool FluidLauncher::loadConfig(QString configPath)
+{
+ QFile xmlFile(configPath);
+
+ if (!xmlFile.exists() || (xmlFile.error() != QFile::NoError)) {
+ qDebug() << "ERROR: Unable to open config file " << configPath;
+ return false;
+ }
+
+ slideShowWidget->clearImages();
+
+ QDomDocument xmlDoc;
+ xmlDoc.setContent(&xmlFile, true);
+
+ QDomElement rootElement = xmlDoc.documentElement();
+
+ // Process the demos node:
+ QDomNodeList demoNodes = rootElement.firstChildElement("demos").elementsByTagName("example");
+ for (int i=0; i<demoNodes.size(); i++) {
+ QDomElement element = demoNodes.item(i).toElement();
+
+ if (element.hasAttribute("filename")) {
+ DemoApplication* newDemo = new DemoApplication(
+ element.attribute("filename"),
+ element.attribute("name", "Unamed Demo"),
+ element.attribute("image"),
+ element.attribute("args").split(" "));
+ demoList.append(newDemo);
+ }
+ }
+
+
+ // Process the slideshow node:
+ QDomElement slideshowElement = rootElement.firstChildElement("slideshow");
+
+ if (slideshowElement.hasAttribute("timeout")) {
+ bool valid;
+ int timeout = slideshowElement.attribute("timeout").toInt(&valid);
+ if (valid)
+ inputTimer->setInterval(timeout);
+ }
+
+ if (slideshowElement.hasAttribute("interval")) {
+ bool valid;
+ int interval = slideshowElement.attribute("interval").toInt(&valid);
+ if (valid)
+ slideShowWidget->setSlideInterval(interval);
+ }
+
+ for (QDomNode node=slideshowElement.firstChild(); !node.isNull(); node=node.nextSibling()) {
+ QDomElement element = node.toElement();
+
+ if (element.tagName() == "imagedir")
+ slideShowWidget->addImageDir(element.attribute("dir"));
+ else if (element.tagName() == "image")
+ slideShowWidget->addImage(element.attribute("image"));
+ }
+
+ // Append an exit Item
+ DemoApplication* exitItem = new DemoApplication(QString(), QLatin1String("Exit Embedded Demo"), QString(), QStringList());
+ demoList.append(exitItem);
+
+ return true;
+}
+
+
+void FluidLauncher::populatePictureFlow()
+{
+ pictureFlowWidget->setSlideCount(demoList.count());
+
+ for (int i=demoList.count()-1; i>=0; --i) {
+ pictureFlowWidget->setSlide(i, *(demoList[i]->getImage()));
+ pictureFlowWidget->setSlideCaption(i, demoList[i]->getCaption());
+ }
+
+ pictureFlowWidget->setCurrentSlide(demoList.count()/2);
+}
+
+
+void FluidLauncher::launchApplication(int index)
+{
+ // NOTE: Clearing the caches will free up more memory for the demo but will cause
+ // a delay upon returning, as items are reloaded.
+ //pictureFlowWidget->clearCaches();
+
+ if (index == demoList.size() -1) {
+ qApp->quit();
+ return;
+ }
+
+ inputTimer->stop();
+ pictureFlowWidget->hide();
+
+ QObject::connect(demoList[index], SIGNAL(demoFinished()), this, SLOT(demoFinished()));
+
+ demoList[index]->launch();
+}
+
+
+void FluidLauncher::switchToLauncher()
+{
+ slideShowWidget->stopShow();
+ inputTimer->start();
+}
+
+
+void FluidLauncher::resetInputTimeout()
+{
+ if (inputTimer->isActive())
+ inputTimer->start();
+}
+
+void FluidLauncher::inputTimedout()
+{
+ switchToSlideshow();
+}
+
+
+void FluidLauncher::switchToSlideshow()
+{
+ inputTimer->stop();
+ slideShowWidget->startShow();
+}
+
+void FluidLauncher::demoFinished()
+{
+ pictureFlowWidget->showFullScreen();
+ inputTimer->start();
+}
+
diff --git a/demos/embedded/fluidlauncher/fluidlauncher.h b/demos/embedded/fluidlauncher/fluidlauncher.h
new file mode 100644
index 0000000..3f4c1fe
--- /dev/null
+++ b/demos/embedded/fluidlauncher/fluidlauncher.h
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef FLUID_LAUNCHER_H
+#define FLUID_LAUNCHER_H
+
+#include <QtGui>
+#include <QTimer>
+
+#include "pictureflow.h"
+#include "slideshow.h"
+#include "demoapplication.h"
+
+class FluidLauncher : public QObject
+{
+ Q_OBJECT
+
+public:
+ FluidLauncher(QStringList* args);
+ ~FluidLauncher();
+
+public slots:
+ void launchApplication(int index);
+ void switchToLauncher();
+ void resetInputTimeout();
+ void inputTimedout();
+ void demoFinished();
+
+private:
+ PictureFlow* pictureFlowWidget;
+ SlideShow* slideShowWidget;
+ QTimer* inputTimer;
+ QList<DemoApplication*> demoList;
+
+ bool loadConfig(QString configPath);
+ void populatePictureFlow();
+ void switchToSlideshow();
+
+
+};
+
+
+#endif
diff --git a/demos/embedded/fluidlauncher/fluidlauncher.pro b/demos/embedded/fluidlauncher/fluidlauncher.pro
new file mode 100644
index 0000000..76d12ad
--- /dev/null
+++ b/demos/embedded/fluidlauncher/fluidlauncher.pro
@@ -0,0 +1,56 @@
+TEMPLATE = app
+TARGET =
+DEPENDPATH += .
+INCLUDEPATH += .
+QT += xml
+
+# Input
+HEADERS += \
+ demoapplication.h \
+ fluidlauncher.h \
+ pictureflow.h \
+ slideshow.h
+
+SOURCES += \
+ demoapplication.cpp \
+ fluidlauncher.cpp \
+ main.cpp \
+ pictureflow.cpp \
+ slideshow.cpp
+
+embedded{
+ target.path = $$[QT_INSTALL_DEMOS]/embedded/fluidlauncher
+ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html config.xml screenshots slides
+ sources.path = $$[QT_INSTALL_DEMOS]/embedded/fluidlauncher
+ INSTALLS += target sources
+}
+
+wince*{
+ QT += svg
+
+ BUILD_DIR = release
+ if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
+ BUILD_DIR = debug
+ }
+
+ executables.sources = \
+ $$QT_BUILD_TREE/demos/embedded/embeddedsvgviewer/$${BUILD_DIR}/embeddedsvgviewer.exe \
+ $$QT_BUILD_TREE/demos/embedded/styledemo/$${BUILD_DIR}/styledemo.exe \
+ $$QT_BUILD_TREE/demos/deform/$${BUILD_DIR}/deform.exe \
+ $$QT_BUILD_TREE/demos/pathstroke/$${BUILD_DIR}/pathstroke.exe \
+ $$QT_BUILD_TREE/examples/graphicsview/elasticnodes/$${BUILD_DIR}/elasticnodes.exe \
+ $$QT_BUILD_TREE/examples/widgets/wiggly/$${BUILD_DIR}/wiggly.exe \
+ $$QT_BUILD_TREE/examples/painting/concentriccircles/$${BUILD_DIR}/concentriccircles.exe
+
+ executables.path = .
+
+ files.sources = $$PWD/screenshots $$PWD/slides $$PWD/../embeddedsvgviewer/shapes.svg
+ files.path = .
+
+ config.sources = $$PWD/config_wince/config.xml
+ config.path = .
+
+ DEPLOYMENT += config files executables
+
+ DEPLOYMENT_PLUGIN += qgif qjpeg qmng qsvg
+}
diff --git a/demos/embedded/fluidlauncher/main.cpp b/demos/embedded/fluidlauncher/main.cpp
new file mode 100644
index 0000000..05e820e
--- /dev/null
+++ b/demos/embedded/fluidlauncher/main.cpp
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QApplication>
+#include <QStringList>
+
+#include "fluidlauncher.h"
+
+
+int main(int argc, char** argv)
+{
+ QStringList originalArgs;
+
+ for (int i=0; i<argc; i++)
+ originalArgs << argv[i];
+
+ QApplication app(argc, argv);
+ FluidLauncher launcher(&originalArgs);
+
+
+ return app.exec();
+}
diff --git a/demos/embedded/fluidlauncher/pictureflow.cpp b/demos/embedded/fluidlauncher/pictureflow.cpp
new file mode 100644
index 0000000..04bbf05
--- /dev/null
+++ b/demos/embedded/fluidlauncher/pictureflow.cpp
@@ -0,0 +1,1420 @@
+/****************************************************************************
+**
+* Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
+* This is version of the Pictureflow animated image show widget modified by Nokia.
+*
+* $QT_BEGIN_LICENSE:LGPL$
+* No Commercial Usage
+* This file contains pre-release code and may not be distributed.
+* You may use this file in accordance with the terms and conditions
+* contained in the either Technology Preview License Agreement or the
+* Beta Release License Agreement.
+*
+* GNU Lesser General Public License Usage
+* Alternatively, this file may be used under the terms of the GNU Lesser
+* General Public License version 2.1 as published by the Free Software
+* Foundation and appearing in the file LICENSE.LGPL included in the
+* packaging of this file. Please review the following information to
+* ensure the GNU Lesser General Public License version 2.1 requirements
+* will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+*
+* In addition, as a special exception, Nokia gives you certain
+* additional rights. These rights are described in the Nokia Qt LGPL
+* Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+* package.
+*
+* GNU General Public License Usage
+* Alternatively, this file may be used under the terms of the GNU
+* General Public License version 3.0 as published by the Free Software
+* Foundation and appearing in the file LICENSE.GPL included in the
+* packaging of this file. Please review the following information to
+* ensure the GNU General Public License version 3.0 requirements will be
+* met: http://www.gnu.org/copyleft/gpl.html.
+*
+* If you are unsure which license is appropriate for your use, please
+* contact the sales department at qt-sales@nokia.com.
+* $QT_END_LICENSE$
+*
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* * Neither the name of the <organization> nor the
+* names of its contributors may be used to endorse or promote products
+* derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY TROLLTECH ASA ``AS IS'' AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+****************************************************************************/
+
+/*
+ ORIGINAL COPYRIGHT HEADER
+ PictureFlow - animated image show widget
+ http://pictureflow.googlecode.com
+
+ Copyright (C) 2007 Ariya Hidayat (ariya@kde.org)
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+*/
+
+#include "pictureflow.h"
+
+#include <QBasicTimer>
+#include <QCache>
+#include <QImage>
+#include <QKeyEvent>
+#include <QPainter>
+#include <QPixmap>
+#include <QTimer>
+#include <QVector>
+#include <QWidget>
+#include <QTime>
+
+#ifdef Q_WS_QWS
+#include <QScreen>
+#endif
+
+#include <QDebug>
+
+// uncomment this to enable bilinear filtering for texture mapping
+// gives much better rendering, at the cost of memory space
+// #define PICTUREFLOW_BILINEAR_FILTER
+
+// for fixed-point arithmetic, we need minimum 32-bit long
+// long long (64-bit) might be useful for multiplication and division
+typedef long PFreal;
+
+typedef unsigned short QRgb565;
+
+#define RGB565_RED_MASK 0xF800
+#define RGB565_GREEN_MASK 0x07E0
+#define RGB565_BLUE_MASK 0x001F
+
+#define RGB565_RED(col) ((col&RGB565_RED_MASK)>>11)
+#define RGB565_GREEN(col) ((col&RGB565_GREEN_MASK)>>5)
+#define RGB565_BLUE(col) (col&RGB565_BLUE_MASK)
+
+#define PFREAL_SHIFT 10
+#define PFREAL_FACTOR (1 << PFREAL_SHIFT)
+#define PFREAL_ONE (1 << PFREAL_SHIFT)
+#define PFREAL_HALF (PFREAL_ONE >> 1)
+
+inline PFreal fmul(PFreal a, PFreal b)
+{
+ return ((long long)(a))*((long long)(b)) >> PFREAL_SHIFT;
+}
+
+inline PFreal fdiv(PFreal num, PFreal den)
+{
+ long long p = (long long)(num) << (PFREAL_SHIFT*2);
+ long long q = p / (long long)den;
+ long long r = q >> PFREAL_SHIFT;
+
+ return r;
+}
+
+inline float fixedToFloat(PFreal val)
+{
+ return ((float)val) / (float)PFREAL_ONE;
+}
+
+inline PFreal floatToFixed(float val)
+{
+ return (PFreal)(val*PFREAL_ONE);
+}
+
+#define IANGLE_MAX 1024
+#define IANGLE_MASK 1023
+
+// warning: regenerate the table if IANGLE_MAX and PFREAL_SHIFT are changed!
+static const PFreal sinTable[IANGLE_MAX] = {
+ 3, 9, 15, 21, 28, 34, 40, 47,
+ 53, 59, 65, 72, 78, 84, 90, 97,
+ 103, 109, 115, 122, 128, 134, 140, 147,
+ 153, 159, 165, 171, 178, 184, 190, 196,
+ 202, 209, 215, 221, 227, 233, 239, 245,
+ 251, 257, 264, 270, 276, 282, 288, 294,
+ 300, 306, 312, 318, 324, 330, 336, 342,
+ 347, 353, 359, 365, 371, 377, 383, 388,
+ 394, 400, 406, 412, 417, 423, 429, 434,
+ 440, 446, 451, 457, 463, 468, 474, 479,
+ 485, 491, 496, 501, 507, 512, 518, 523,
+ 529, 534, 539, 545, 550, 555, 561, 566,
+ 571, 576, 581, 587, 592, 597, 602, 607,
+ 612, 617, 622, 627, 632, 637, 642, 647,
+ 652, 656, 661, 666, 671, 675, 680, 685,
+ 690, 694, 699, 703, 708, 712, 717, 721,
+ 726, 730, 735, 739, 743, 748, 752, 756,
+ 760, 765, 769, 773, 777, 781, 785, 789,
+ 793, 797, 801, 805, 809, 813, 816, 820,
+ 824, 828, 831, 835, 839, 842, 846, 849,
+ 853, 856, 860, 863, 866, 870, 873, 876,
+ 879, 883, 886, 889, 892, 895, 898, 901,
+ 904, 907, 910, 913, 916, 918, 921, 924,
+ 927, 929, 932, 934, 937, 939, 942, 944,
+ 947, 949, 951, 954, 956, 958, 960, 963,
+ 965, 967, 969, 971, 973, 975, 977, 978,
+ 980, 982, 984, 986, 987, 989, 990, 992,
+ 994, 995, 997, 998, 999, 1001, 1002, 1003,
+ 1004, 1006, 1007, 1008, 1009, 1010, 1011, 1012,
+ 1013, 1014, 1015, 1015, 1016, 1017, 1018, 1018,
+ 1019, 1019, 1020, 1020, 1021, 1021, 1022, 1022,
+ 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1022,
+ 1022, 1022, 1021, 1021, 1020, 1020, 1019, 1019,
+ 1018, 1018, 1017, 1016, 1015, 1015, 1014, 1013,
+ 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1004,
+ 1003, 1002, 1001, 999, 998, 997, 995, 994,
+ 992, 990, 989, 987, 986, 984, 982, 980,
+ 978, 977, 975, 973, 971, 969, 967, 965,
+ 963, 960, 958, 956, 954, 951, 949, 947,
+ 944, 942, 939, 937, 934, 932, 929, 927,
+ 924, 921, 918, 916, 913, 910, 907, 904,
+ 901, 898, 895, 892, 889, 886, 883, 879,
+ 876, 873, 870, 866, 863, 860, 856, 853,
+ 849, 846, 842, 839, 835, 831, 828, 824,
+ 820, 816, 813, 809, 805, 801, 797, 793,
+ 789, 785, 781, 777, 773, 769, 765, 760,
+ 756, 752, 748, 743, 739, 735, 730, 726,
+ 721, 717, 712, 708, 703, 699, 694, 690,
+ 685, 680, 675, 671, 666, 661, 656, 652,
+ 647, 642, 637, 632, 627, 622, 617, 612,
+ 607, 602, 597, 592, 587, 581, 576, 571,
+ 566, 561, 555, 550, 545, 539, 534, 529,
+ 523, 518, 512, 507, 501, 496, 491, 485,
+ 479, 474, 468, 463, 457, 451, 446, 440,
+ 434, 429, 423, 417, 412, 406, 400, 394,
+ 388, 383, 377, 371, 365, 359, 353, 347,
+ 342, 336, 330, 324, 318, 312, 306, 300,
+ 294, 288, 282, 276, 270, 264, 257, 251,
+ 245, 239, 233, 227, 221, 215, 209, 202,
+ 196, 190, 184, 178, 171, 165, 159, 153,
+ 147, 140, 134, 128, 122, 115, 109, 103,
+ 97, 90, 84, 78, 72, 65, 59, 53,
+ 47, 40, 34, 28, 21, 15, 9, 3,
+ -4, -10, -16, -22, -29, -35, -41, -48,
+ -54, -60, -66, -73, -79, -85, -91, -98,
+ -104, -110, -116, -123, -129, -135, -141, -148,
+ -154, -160, -166, -172, -179, -185, -191, -197,
+ -203, -210, -216, -222, -228, -234, -240, -246,
+ -252, -258, -265, -271, -277, -283, -289, -295,
+ -301, -307, -313, -319, -325, -331, -337, -343,
+ -348, -354, -360, -366, -372, -378, -384, -389,
+ -395, -401, -407, -413, -418, -424, -430, -435,
+ -441, -447, -452, -458, -464, -469, -475, -480,
+ -486, -492, -497, -502, -508, -513, -519, -524,
+ -530, -535, -540, -546, -551, -556, -562, -567,
+ -572, -577, -582, -588, -593, -598, -603, -608,
+ -613, -618, -623, -628, -633, -638, -643, -648,
+ -653, -657, -662, -667, -672, -676, -681, -686,
+ -691, -695, -700, -704, -709, -713, -718, -722,
+ -727, -731, -736, -740, -744, -749, -753, -757,
+ -761, -766, -770, -774, -778, -782, -786, -790,
+ -794, -798, -802, -806, -810, -814, -817, -821,
+ -825, -829, -832, -836, -840, -843, -847, -850,
+ -854, -857, -861, -864, -867, -871, -874, -877,
+ -880, -884, -887, -890, -893, -896, -899, -902,
+ -905, -908, -911, -914, -917, -919, -922, -925,
+ -928, -930, -933, -935, -938, -940, -943, -945,
+ -948, -950, -952, -955, -957, -959, -961, -964,
+ -966, -968, -970, -972, -974, -976, -978, -979,
+ -981, -983, -985, -987, -988, -990, -991, -993,
+ -995, -996, -998, -999, -1000, -1002, -1003, -1004,
+ -1005, -1007, -1008, -1009, -1010, -1011, -1012, -1013,
+ -1014, -1015, -1016, -1016, -1017, -1018, -1019, -1019,
+ -1020, -1020, -1021, -1021, -1022, -1022, -1023, -1023,
+ -1023, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
+ -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1023,
+ -1023, -1023, -1022, -1022, -1021, -1021, -1020, -1020,
+ -1019, -1019, -1018, -1017, -1016, -1016, -1015, -1014,
+ -1013, -1012, -1011, -1010, -1009, -1008, -1007, -1005,
+ -1004, -1003, -1002, -1000, -999, -998, -996, -995,
+ -993, -991, -990, -988, -987, -985, -983, -981,
+ -979, -978, -976, -974, -972, -970, -968, -966,
+ -964, -961, -959, -957, -955, -952, -950, -948,
+ -945, -943, -940, -938, -935, -933, -930, -928,
+ -925, -922, -919, -917, -914, -911, -908, -905,
+ -902, -899, -896, -893, -890, -887, -884, -880,
+ -877, -874, -871, -867, -864, -861, -857, -854,
+ -850, -847, -843, -840, -836, -832, -829, -825,
+ -821, -817, -814, -810, -806, -802, -798, -794,
+ -790, -786, -782, -778, -774, -770, -766, -761,
+ -757, -753, -749, -744, -740, -736, -731, -727,
+ -722, -718, -713, -709, -704, -700, -695, -691,
+ -686, -681, -676, -672, -667, -662, -657, -653,
+ -648, -643, -638, -633, -628, -623, -618, -613,
+ -608, -603, -598, -593, -588, -582, -577, -572,
+ -567, -562, -556, -551, -546, -540, -535, -530,
+ -524, -519, -513, -508, -502, -497, -492, -486,
+ -480, -475, -469, -464, -458, -452, -447, -441,
+ -435, -430, -424, -418, -413, -407, -401, -395,
+ -389, -384, -378, -372, -366, -360, -354, -348,
+ -343, -337, -331, -325, -319, -313, -307, -301,
+ -295, -289, -283, -277, -271, -265, -258, -252,
+ -246, -240, -234, -228, -222, -216, -210, -203,
+ -197, -191, -185, -179, -172, -166, -160, -154,
+ -148, -141, -135, -129, -123, -116, -110, -104,
+ -98, -91, -85, -79, -73, -66, -60, -54,
+ -48, -41, -35, -29, -22, -16, -10, -4
+};
+
+// this is the program the generate the above table
+#if 0
+#include <stdio.h>
+#include <math.h>
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+#define PFREAL_ONE 1024
+#define IANGLE_MAX 1024
+
+int main(int, char**)
+{
+ FILE*f = fopen("table.c","wt");
+ fprintf(f,"PFreal sinTable[] = {\n");
+ for(int i = 0; i < 128; i++)
+ {
+ for(int j = 0; j < 8; j++)
+ {
+ int iang = j+i*8;
+ double ii = (double)iang + 0.5;
+ double angle = ii * 2 * M_PI / IANGLE_MAX;
+ double sinAngle = sin(angle);
+ fprintf(f,"%6d, ", (int)(floor(PFREAL_ONE*sinAngle)));
+ }
+ fprintf(f,"\n");
+ }
+ fprintf(f,"};\n");
+ fclose(f);
+
+ return 0;
+}
+#endif
+
+inline PFreal fsin(int iangle)
+{
+ while(iangle < 0)
+ iangle += IANGLE_MAX;
+ return sinTable[iangle & IANGLE_MASK];
+}
+
+inline PFreal fcos(int iangle)
+{
+ // quarter phase shift
+ return fsin(iangle + (IANGLE_MAX >> 2));
+}
+
+struct SlideInfo
+{
+ int slideIndex;
+ int angle;
+ PFreal cx;
+ PFreal cy;
+};
+
+class PictureFlowPrivate
+{
+public:
+ PictureFlowPrivate(PictureFlow* widget);
+
+ int slideCount() const;
+ void setSlideCount(int count);
+
+ QSize slideSize() const;
+ void setSlideSize(QSize size);
+
+ int zoomFactor() const;
+ void setZoomFactor(int z);
+
+ QImage slide(int index) const;
+ void setSlide(int index, const QImage& image);
+
+ int currentSlide() const;
+ void setCurrentSlide(int index);
+
+ int getTarget() const;
+
+ void showPrevious();
+ void showNext();
+ void showSlide(int index);
+
+ void resize(int w, int h);
+
+ void render();
+ void startAnimation();
+ void updateAnimation();
+
+ void clearSurfaceCache();
+
+ QImage buffer;
+ QBasicTimer animateTimer;
+
+ bool singlePress;
+ int singlePressThreshold;
+ QPoint firstPress;
+ QPoint previousPos;
+ QTime previousPosTimestamp;
+ int pixelDistanceMoved;
+ int pixelsToMovePerSlide;
+
+ QVector<QString> captions;
+
+private:
+ PictureFlow* widget;
+
+ int slideWidth;
+ int slideHeight;
+ int zoom;
+
+ QVector<QImage> slideImages;
+ int centerIndex;
+ SlideInfo centerSlide;
+ QVector<SlideInfo> leftSlides;
+ QVector<SlideInfo> rightSlides;
+
+ QVector<PFreal> rays;
+ int itilt;
+ int spacing;
+ PFreal offsetX;
+ PFreal offsetY;
+
+ QImage blankSurface;
+ QCache<int, QImage> surfaceCache;
+ QTimer triggerTimer;
+
+ int slideFrame;
+ int step;
+ int target;
+ int fade;
+
+ void recalc(int w, int h);
+ QRect renderSlide(const SlideInfo &slide, int alpha=256, int col1=-1, int col=-1);
+ QImage* surface(int slideIndex);
+ void triggerRender();
+ void resetSlides();
+};
+
+PictureFlowPrivate::PictureFlowPrivate(PictureFlow* w)
+{
+ widget = w;
+
+ slideWidth = 200;
+ slideHeight = 200;
+ zoom = 100;
+
+ centerIndex = 0;
+
+ slideFrame = 0;
+ step = 0;
+ target = 0;
+ fade = 256;
+
+ triggerTimer.setSingleShot(true);
+ triggerTimer.setInterval(0);
+ QObject::connect(&triggerTimer, SIGNAL(timeout()), widget, SLOT(render()));
+
+ recalc(200, 200);
+ resetSlides();
+}
+
+int PictureFlowPrivate::slideCount() const
+{
+ return slideImages.count();
+}
+
+void PictureFlowPrivate::setSlideCount(int count)
+{
+ slideImages.resize(count);
+ captions.resize(count);
+ surfaceCache.clear();
+ resetSlides();
+ triggerRender();
+}
+
+QSize PictureFlowPrivate::slideSize() const
+{
+ return QSize(slideWidth, slideHeight);
+}
+
+void PictureFlowPrivate::setSlideSize(QSize size)
+{
+ slideWidth = size.width();
+ slideHeight = size.height();
+ recalc(buffer.width(), buffer.height());
+ triggerRender();
+}
+
+int PictureFlowPrivate::zoomFactor() const
+{
+ return zoom;
+}
+
+void PictureFlowPrivate::setZoomFactor(int z)
+{
+ if(z <= 0)
+ return;
+
+ zoom = z;
+ recalc(buffer.width(), buffer.height());
+ triggerRender();
+}
+
+QImage PictureFlowPrivate::slide(int index) const
+{
+ return slideImages[index];
+}
+
+void PictureFlowPrivate::setSlide(int index, const QImage& image)
+{
+ if((index >= 0) && (index < slideImages.count()))
+ {
+ slideImages[index] = image;
+ surfaceCache.remove(index);
+ triggerRender();
+ }
+}
+
+int PictureFlowPrivate::getTarget() const
+{
+ return target;
+}
+
+int PictureFlowPrivate::currentSlide() const
+{
+ return centerIndex;
+}
+
+void PictureFlowPrivate::setCurrentSlide(int index)
+{
+ step = 0;
+ centerIndex = qBound(index, 0, slideImages.count()-1);
+ target = centerIndex;
+ slideFrame = index << 16;
+ resetSlides();
+ triggerRender();
+}
+
+void PictureFlowPrivate::showPrevious()
+{
+ if(step >= 0)
+ {
+ if(centerIndex > 0)
+ {
+ target--;
+ startAnimation();
+ }
+ }
+ else
+ {
+ target = qMax(0, centerIndex - 2);
+ }
+}
+
+void PictureFlowPrivate::showNext()
+{
+ if(step <= 0)
+ {
+ if(centerIndex < slideImages.count()-1)
+ {
+ target++;
+ startAnimation();
+ }
+ }
+ else
+ {
+ target = qMin(centerIndex + 2, slideImages.count()-1);
+ }
+}
+
+void PictureFlowPrivate::showSlide(int index)
+{
+ index = qMax(index, 0);
+ index = qMin(slideImages.count()-1, index);
+ if(index == centerSlide.slideIndex)
+ return;
+
+ target = index;
+ startAnimation();
+}
+
+void PictureFlowPrivate::resize(int w, int h)
+{
+ recalc(w, h);
+ resetSlides();
+ triggerRender();
+}
+
+
+// adjust slides so that they are in "steady state" position
+void PictureFlowPrivate::resetSlides()
+{
+ centerSlide.angle = 0;
+ centerSlide.cx = 0;
+ centerSlide.cy = 0;
+ centerSlide.slideIndex = centerIndex;
+
+ leftSlides.clear();
+ leftSlides.resize(3);
+ for(int i = 0; i < leftSlides.count(); i++)
+ {
+ SlideInfo& si = leftSlides[i];
+ si.angle = itilt;
+ si.cx = -(offsetX + spacing*i*PFREAL_ONE);
+ si.cy = offsetY;
+ si.slideIndex = centerIndex-1-i;
+ //qDebug() << "Left[" << i << "] x=" << fixedToFloat(si.cx) << ", y=" << fixedToFloat(si.cy) ;
+ }
+
+ rightSlides.clear();
+ rightSlides.resize(3);
+ for(int i = 0; i < rightSlides.count(); i++)
+ {
+ SlideInfo& si = rightSlides[i];
+ si.angle = -itilt;
+ si.cx = offsetX + spacing*i*PFREAL_ONE;
+ si.cy = offsetY;
+ si.slideIndex = centerIndex+1+i;
+ //qDebug() << "Right[" << i << "] x=" << fixedToFloat(si.cx) << ", y=" << fixedToFloat(si.cy) ;
+ }
+}
+
+#define BILINEAR_STRETCH_HOR 4
+#define BILINEAR_STRETCH_VER 4
+
+static QImage prepareSurface(QImage img, int w, int h)
+{
+ Qt::TransformationMode mode = Qt::SmoothTransformation;
+ img = img.scaled(w, h, Qt::IgnoreAspectRatio, mode);
+
+ // slightly larger, to accomodate for the reflection
+ int hs = h * 2;
+ int hofs = h / 3;
+
+ // offscreen buffer: black is sweet
+ QImage result(hs, w, QImage::Format_RGB16);
+ result.fill(0);
+
+ // transpose the image, this is to speed-up the rendering
+ // because we process one column at a time
+ // (and much better and faster to work row-wise, i.e in one scanline)
+ for(int x = 0; x < w; x++)
+ for(int y = 0; y < h; y++)
+ result.setPixel(hofs + y, x, img.pixel(x, y));
+
+ // create the reflection
+ int ht = hs - h - hofs;
+ int hte = ht;
+ for(int x = 0; x < w; x++)
+ for(int y = 0; y < ht; y++)
+ {
+ QRgb color = img.pixel(x, img.height()-y-1);
+ //QRgb565 color = img.scanLine(img.height()-y-1) + x*sizeof(QRgb565); //img.pixel(x, img.height()-y-1);
+ int a = qAlpha(color);
+ int r = qRed(color) * a / 256 * (hte - y) / hte * 3/5;
+ int g = qGreen(color) * a / 256 * (hte - y) / hte * 3/5;
+ int b = qBlue(color) * a / 256 * (hte - y) / hte * 3/5;
+ result.setPixel(h+hofs+y, x, qRgb(r, g, b));
+ }
+
+#ifdef PICTUREFLOW_BILINEAR_FILTER
+ int hh = BILINEAR_STRETCH_VER*hs;
+ int ww = BILINEAR_STRETCH_HOR*w;
+ result = result.scaled(hh, ww, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+#endif
+
+ return result;
+}
+
+
+// get transformed image for specified slide
+// if it does not exist, create it and place it in the cache
+QImage* PictureFlowPrivate::surface(int slideIndex)
+{
+ if(slideIndex < 0)
+ return 0;
+ if(slideIndex >= slideImages.count())
+ return 0;
+
+ if(surfaceCache.contains(slideIndex))
+ return surfaceCache[slideIndex];
+
+ QImage img = widget->slide(slideIndex);
+ if(img.isNull())
+ {
+ if(blankSurface.isNull())
+ {
+ blankSurface = QImage(slideWidth, slideHeight, QImage::Format_RGB16);
+
+ QPainter painter(&blankSurface);
+ QPoint p1(slideWidth*4/10, 0);
+ QPoint p2(slideWidth*6/10, slideHeight);
+ QLinearGradient linearGrad(p1, p2);
+ linearGrad.setColorAt(0, Qt::black);
+ linearGrad.setColorAt(1, Qt::white);
+ painter.setBrush(linearGrad);
+ painter.fillRect(0, 0, slideWidth, slideHeight, QBrush(linearGrad));
+
+ painter.setPen(QPen(QColor(64,64,64), 4));
+ painter.setBrush(QBrush());
+ painter.drawRect(2, 2, slideWidth-3, slideHeight-3);
+ painter.end();
+ blankSurface = prepareSurface(blankSurface, slideWidth, slideHeight);
+ }
+ return &blankSurface;
+ }
+
+ surfaceCache.insert(slideIndex, new QImage(prepareSurface(img, slideWidth, slideHeight)));
+ return surfaceCache[slideIndex];
+}
+
+
+// Schedules rendering the slides. Call this function to avoid immediate
+// render and thus cause less flicker.
+void PictureFlowPrivate::triggerRender()
+{
+ triggerTimer.start();
+}
+
+// Render the slides. Updates only the offscreen buffer.
+void PictureFlowPrivate::render()
+{
+ buffer.fill(0);
+
+ int nleft = leftSlides.count();
+ int nright = rightSlides.count();
+
+ QRect r = renderSlide(centerSlide);
+ int c1 = r.left();
+ int c2 = r.right();
+
+ if(step == 0)
+ {
+ // no animation, boring plain rendering
+ for(int index = 0; index < nleft-1; index++)
+ {
+ int alpha = (index < nleft-2) ? 256 : 128;
+ QRect rs = renderSlide(leftSlides[index], alpha, 0, c1-1);
+ if(!rs.isEmpty())
+ c1 = rs.left();
+ }
+ for(int index = 0; index < nright-1; index++)
+ {
+ int alpha = (index < nright-2) ? 256 : 128;
+ QRect rs = renderSlide(rightSlides[index], alpha, c2+1, buffer.width());
+ if(!rs.isEmpty())
+ c2 = rs.right();
+ }
+
+ QPainter painter;
+ painter.begin(&buffer);
+
+ QFont font("Arial", 14);
+ font.setBold(true);
+ painter.setFont(font);
+ painter.setPen(Qt::white);
+ //painter.setPen(QColor(255,255,255,127));
+
+ if (!captions.isEmpty())
+ painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/2),
+ Qt::AlignCenter, captions[centerIndex]);
+
+ painter.end();
+
+ }
+ else
+ {
+ // the first and last slide must fade in/fade out
+ for(int index = 0; index < nleft; index++)
+ {
+ int alpha = 256;
+ if(index == nleft-1)
+ alpha = (step > 0) ? 0 : 128-fade/2;
+ if(index == nleft-2)
+ alpha = (step > 0) ? 128-fade/2 : 256-fade/2;
+ if(index == nleft-3)
+ alpha = (step > 0) ? 256-fade/2 : 256;
+ QRect rs = renderSlide(leftSlides[index], alpha, 0, c1-1);
+ if(!rs.isEmpty())
+ c1 = rs.left();
+
+ alpha = (step > 0) ? 256-fade/2 : 256;
+ }
+ for(int index = 0; index < nright; index++)
+ {
+ int alpha = (index < nright-2) ? 256 : 128;
+ if(index == nright-1)
+ alpha = (step > 0) ? fade/2 : 0;
+ if(index == nright-2)
+ alpha = (step > 0) ? 128+fade/2 : fade/2;
+ if(index == nright-3)
+ alpha = (step > 0) ? 256 : 128+fade/2;
+ QRect rs = renderSlide(rightSlides[index], alpha, c2+1, buffer.width());
+ if(!rs.isEmpty())
+ c2 = rs.right();
+ }
+
+
+
+ QPainter painter;
+ painter.begin(&buffer);
+
+ QFont font("Arial", 14);
+ font.setBold(true);
+ painter.setFont(font);
+
+ int leftTextIndex = (step>0) ? centerIndex : centerIndex-1;
+
+ painter.setPen(QColor(255,255,255, (255-fade) ));
+ painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/2),
+ Qt::AlignCenter, captions[leftTextIndex]);
+
+ painter.setPen(QColor(255,255,255, fade));
+ painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/2),
+ Qt::AlignCenter, captions[leftTextIndex+1]);
+
+
+ painter.end();
+ }
+}
+
+
+static inline uint BYTE_MUL_RGB16(uint x, uint a) {
+ a += 1;
+ uint t = (((x & 0x07e0)*a) >> 8) & 0x07e0;
+ t |= (((x & 0xf81f)*(a>>2)) >> 6) & 0xf81f;
+ return t;
+}
+
+static inline uint BYTE_MUL_RGB16_32(uint x, uint a) {
+ uint t = (((x & 0xf81f07e0) >> 5)*a) & 0xf81f07e0;
+ t |= (((x & 0x07e0f81f)*a) >> 5) & 0x07e0f81f;
+ return t;
+}
+
+
+// Renders a slide to offscreen buffer. Returns a rect of the rendered area.
+// alpha=256 means normal, alpha=0 is fully black, alpha=128 half transparent
+// col1 and col2 limit the column for rendering.
+QRect PictureFlowPrivate::renderSlide(const SlideInfo &slide, int alpha,
+int col1, int col2)
+{
+ QImage* src = surface(slide.slideIndex);
+ if(!src)
+ return QRect();
+
+ QRect rect(0, 0, 0, 0);
+
+#ifdef PICTUREFLOW_BILINEAR_FILTER
+ int sw = src->height() / BILINEAR_STRETCH_HOR;
+ int sh = src->width() / BILINEAR_STRETCH_VER;
+#else
+ int sw = src->height();
+ int sh = src->width();
+#endif
+ int h = buffer.height();
+ int w = buffer.width();
+
+ if(col1 > col2)
+ {
+ int c = col2;
+ col2 = col1;
+ col1 = c;
+ }
+
+ col1 = (col1 >= 0) ? col1 : 0;
+ col2 = (col2 >= 0) ? col2 : w-1;
+ col1 = qMin(col1, w-1);
+ col2 = qMin(col2, w-1);
+
+ int distance = h * 100 / zoom;
+ PFreal sdx = fcos(slide.angle);
+ PFreal sdy = fsin(slide.angle);
+ PFreal xs = slide.cx - slideWidth * sdx/2;
+ PFreal ys = slide.cy - slideWidth * sdy/2;
+ PFreal dist = distance * PFREAL_ONE;
+
+ int xi = qMax((PFreal)0, ((w*PFREAL_ONE/2) + fdiv(xs*h, dist+ys)) >> PFREAL_SHIFT);
+ if(xi >= w)
+ return rect;
+
+ bool flag = false;
+ rect.setLeft(xi);
+ for(int x = qMax(xi, col1); x <= col2; x++)
+ {
+ PFreal hity = 0;
+ PFreal fk = rays[x];
+ if(sdy)
+ {
+ fk = fk - fdiv(sdx,sdy);
+ hity = -fdiv((rays[x]*distance - slide.cx + slide.cy*sdx/sdy), fk);
+ }
+
+ dist = distance*PFREAL_ONE + hity;
+ if(dist < 0)
+ continue;
+
+ PFreal hitx = fmul(dist, rays[x]);
+ PFreal hitdist = fdiv(hitx - slide.cx, sdx);
+
+#ifdef PICTUREFLOW_BILINEAR_FILTER
+ int column = sw*BILINEAR_STRETCH_HOR/2 + (hitdist*BILINEAR_STRETCH_HOR >> PFREAL_SHIFT);
+ if(column >= sw*BILINEAR_STRETCH_HOR)
+ break;
+#else
+ int column = sw/2 + (hitdist >> PFREAL_SHIFT);
+ if(column >= sw)
+ break;
+#endif
+ if(column < 0)
+ continue;
+
+ rect.setRight(x);
+ if(!flag)
+ rect.setLeft(x);
+ flag = true;
+
+ int y1 = h/2;
+ int y2 = y1+ 1;
+ QRgb565* pixel1 = (QRgb565*)(buffer.scanLine(y1)) + x;
+ QRgb565* pixel2 = (QRgb565*)(buffer.scanLine(y2)) + x;
+ int pixelstep = pixel2 - pixel1;
+
+#ifdef PICTUREFLOW_BILINEAR_FILTER
+ int center = (sh*BILINEAR_STRETCH_VER/2);
+ int dy = dist*BILINEAR_STRETCH_VER / h;
+#else
+ int center = (sh/2);
+ int dy = dist / h;
+#endif
+ int p1 = center*PFREAL_ONE - dy/2;
+ int p2 = center*PFREAL_ONE + dy/2;
+
+ const QRgb565 *ptr = (const QRgb565*)(src->scanLine(column));
+ if(alpha == 256)
+ while((y1 >= 0) && (y2 < h) && (p1 >= 0))
+ {
+ *pixel1 = ptr[p1 >> PFREAL_SHIFT];
+ *pixel2 = ptr[p2 >> PFREAL_SHIFT];
+ p1 -= dy;
+ p2 += dy;
+ y1--;
+ y2++;
+ pixel1 -= pixelstep;
+ pixel2 += pixelstep;
+ }
+ else
+ while((y1 >= 0) && (y2 < h) && (p1 >= 0))
+ {
+ QRgb565 c1 = ptr[p1 >> PFREAL_SHIFT];
+ QRgb565 c2 = ptr[p2 >> PFREAL_SHIFT];
+
+ *pixel1 = BYTE_MUL_RGB16(c1, alpha);
+ *pixel2 = BYTE_MUL_RGB16(c2, alpha);
+
+/*
+ int r1 = qRed(c1) * alpha/256;
+ int g1 = qGreen(c1) * alpha/256;
+ int b1 = qBlue(c1) * alpha/256;
+ int r2 = qRed(c2) * alpha/256;
+ int g2 = qGreen(c2) * alpha/256;
+ int b2 = qBlue(c2) * alpha/256;
+ *pixel1 = qRgb(r1, g1, b1);
+ *pixel2 = qRgb(r2, g2, b2);
+*/
+ p1 -= dy;
+ p2 += dy;
+ y1--;
+ y2++;
+ pixel1 -= pixelstep;
+ pixel2 += pixelstep;
+ }
+ }
+
+ rect.setTop(0);
+ rect.setBottom(h-1);
+ return rect;
+}
+
+// Updates look-up table and other stuff necessary for the rendering.
+// Call this when the viewport size or slide dimension is changed.
+void PictureFlowPrivate::recalc(int ww, int wh)
+{
+ int w = (ww+1)/2;
+ int h = (wh+1)/2;
+ buffer = QImage(ww, wh, QImage::Format_RGB16);
+ buffer.fill(0);
+
+ rays.resize(w*2);
+
+ for(int i = 0; i < w; i++)
+ {
+ PFreal gg = (PFREAL_HALF + i * PFREAL_ONE) / (2*h);
+ rays[w-i-1] = -gg;
+ rays[w+i] = gg;
+ }
+
+ // pointer must move more than 1/15 of the window to enter drag mode
+ singlePressThreshold = ww / 15;
+// qDebug() << "singlePressThreshold now set to " << singlePressThreshold;
+
+ pixelsToMovePerSlide = ww / 3;
+// qDebug() << "pixelsToMovePerSlide now set to " << pixelsToMovePerSlide;
+
+ itilt = 80 * IANGLE_MAX / 360; // approx. 80 degrees tilted
+
+ offsetY = slideWidth/2 * fsin(itilt);
+ offsetY += slideWidth * PFREAL_ONE / 4;
+
+// offsetX = slideWidth/2 * (PFREAL_ONE-fcos(itilt));
+// offsetX += slideWidth * PFREAL_ONE;
+
+ // center slide + side slide
+ offsetX = slideWidth*PFREAL_ONE;
+// offsetX = 150*PFREAL_ONE;//(slideWidth/2)*PFREAL_ONE + ( slideWidth*fcos(itilt) )/2;
+// qDebug() << "center width = " << slideWidth;
+// qDebug() << "side width = " << fixedToFloat(slideWidth/2 * (PFREAL_ONE-fcos(itilt)));
+// qDebug() << "offsetX now " << fixedToFloat(offsetX);
+
+ spacing = slideWidth/5;
+
+ surfaceCache.clear();
+ blankSurface = QImage();
+}
+
+void PictureFlowPrivate::startAnimation()
+{
+ if(!animateTimer.isActive())
+ {
+ step = (target < centerSlide.slideIndex) ? -1 : 1;
+ animateTimer.start(30, widget);
+ }
+}
+
+// Updates the animation effect. Call this periodically from a timer.
+void PictureFlowPrivate::updateAnimation()
+{
+ if(!animateTimer.isActive())
+ return;
+ if(step == 0)
+ return;
+
+ int speed = 16384;
+
+ // deaccelerate when approaching the target
+ if(true)
+ {
+ const int max = 2 * 65536;
+
+ int fi = slideFrame;
+ fi -= (target << 16);
+ if(fi < 0)
+ fi = -fi;
+ fi = qMin(fi, max);
+
+ int ia = IANGLE_MAX * (fi-max/2) / (max*2);
+ speed = 512 + 16384 * (PFREAL_ONE+fsin(ia))/PFREAL_ONE;
+ }
+
+ slideFrame += speed*step;
+
+ int index = slideFrame >> 16;
+ int pos = slideFrame & 0xffff;
+ int neg = 65536 - pos;
+ int tick = (step < 0) ? neg : pos;
+ PFreal ftick = (tick * PFREAL_ONE) >> 16;
+
+ // the leftmost and rightmost slide must fade away
+ fade = pos / 256;
+
+ if(step < 0)
+ index++;
+ if(centerIndex != index)
+ {
+ centerIndex = index;
+ slideFrame = index << 16;
+ centerSlide.slideIndex = centerIndex;
+ for(int i = 0; i < leftSlides.count(); i++)
+ leftSlides[i].slideIndex = centerIndex-1-i;
+ for(int i = 0; i < rightSlides.count(); i++)
+ rightSlides[i].slideIndex = centerIndex+1+i;
+ }
+
+ centerSlide.angle = (step * tick * itilt) >> 16;
+ centerSlide.cx = -step * fmul(offsetX, ftick);
+ centerSlide.cy = fmul(offsetY, ftick);
+
+ if(centerIndex == target)
+ {
+ resetSlides();
+ animateTimer.stop();
+ triggerRender();
+ step = 0;
+ fade = 256;
+ return;
+ }
+
+ for(int i = 0; i < leftSlides.count(); i++)
+ {
+ SlideInfo& si = leftSlides[i];
+ si.angle = itilt;
+ si.cx = -(offsetX + spacing*i*PFREAL_ONE + step*spacing*ftick);
+ si.cy = offsetY;
+ }
+
+ for(int i = 0; i < rightSlides.count(); i++)
+ {
+ SlideInfo& si = rightSlides[i];
+ si.angle = -itilt;
+ si.cx = offsetX + spacing*i*PFREAL_ONE - step*spacing*ftick;
+ si.cy = offsetY;
+ }
+
+ if(step > 0)
+ {
+ PFreal ftick = (neg * PFREAL_ONE) >> 16;
+ rightSlides[0].angle = -(neg * itilt) >> 16;
+ rightSlides[0].cx = fmul(offsetX, ftick);
+ rightSlides[0].cy = fmul(offsetY, ftick);
+ }
+ else
+ {
+ PFreal ftick = (pos * PFREAL_ONE) >> 16;
+ leftSlides[0].angle = (pos * itilt) >> 16;
+ leftSlides[0].cx = -fmul(offsetX, ftick);
+ leftSlides[0].cy = fmul(offsetY, ftick);
+ }
+
+ // must change direction ?
+ if(target < index) if(step > 0)
+ step = -1;
+ if(target > index) if(step < 0)
+ step = 1;
+
+ triggerRender();
+}
+
+
+void PictureFlowPrivate::clearSurfaceCache()
+{
+ surfaceCache.clear();
+}
+
+// -----------------------------------------
+
+PictureFlow::PictureFlow(QWidget* parent): QWidget(parent)
+{
+ d = new PictureFlowPrivate(this);
+
+ setAttribute(Qt::WA_StaticContents, true);
+ setAttribute(Qt::WA_OpaquePaintEvent, true);
+ setAttribute(Qt::WA_NoSystemBackground, true);
+
+#ifdef Q_WS_QWS
+ if (QScreen::instance()->pixelFormat() != QImage::Format_Invalid)
+ setAttribute(Qt::WA_PaintOnScreen, true);
+#endif
+}
+
+PictureFlow::~PictureFlow()
+{
+ delete d;
+}
+
+int PictureFlow::slideCount() const
+{
+ return d->slideCount();
+}
+
+void PictureFlow::setSlideCount(int count)
+{
+ d->setSlideCount(count);
+}
+
+QSize PictureFlow::slideSize() const
+{
+ return d->slideSize();
+}
+
+void PictureFlow::setSlideSize(QSize size)
+{
+ d->setSlideSize(size);
+}
+
+int PictureFlow::zoomFactor() const
+{
+ return d->zoomFactor();
+}
+
+void PictureFlow::setZoomFactor(int z)
+{
+ d->setZoomFactor(z);
+}
+
+QImage PictureFlow::slide(int index) const
+{
+ return d->slide(index);
+}
+
+void PictureFlow::setSlide(int index, const QImage& image)
+{
+ d->setSlide(index, image);
+}
+
+void PictureFlow::setSlide(int index, const QPixmap& pixmap)
+{
+ d->setSlide(index, pixmap.toImage());
+}
+
+void PictureFlow::setSlideCaption(int index, QString caption)
+{
+ d->captions[index] = caption;
+}
+
+
+int PictureFlow::currentSlide() const
+{
+ return d->currentSlide();
+}
+
+void PictureFlow::setCurrentSlide(int index)
+{
+ d->setCurrentSlide(index);
+}
+
+void PictureFlow::clear()
+{
+ d->setSlideCount(0);
+}
+
+void PictureFlow::clearCaches()
+{
+ d->clearSurfaceCache();
+}
+
+void PictureFlow::render()
+{
+ d->render();
+ update();
+}
+
+void PictureFlow::showPrevious()
+{
+ d->showPrevious();
+}
+
+void PictureFlow::showNext()
+{
+ d->showNext();
+}
+
+void PictureFlow::showSlide(int index)
+{
+ d->showSlide(index);
+}
+
+void PictureFlow::keyPressEvent(QKeyEvent* event)
+{
+ if(event->key() == Qt::Key_Left)
+ {
+ if(event->modifiers() == Qt::ControlModifier)
+ showSlide(currentSlide()-10);
+ else
+ showPrevious();
+ event->accept();
+ return;
+ }
+
+ if(event->key() == Qt::Key_Right)
+ {
+ if(event->modifiers() == Qt::ControlModifier)
+ showSlide(currentSlide()+10);
+ else
+ showNext();
+ event->accept();
+ return;
+ }
+
+ event->ignore();
+}
+
+#define SPEED_LOWER_THRESHOLD 10
+#define SPEED_UPPER_LIMIT 40
+
+void PictureFlow::mouseMoveEvent(QMouseEvent* event)
+{
+ int distanceMovedSinceLastEvent = event->pos().x() - d->previousPos.x();
+
+ // Check to see if we need to switch from single press mode to a drag mode
+ if (d->singlePress)
+ {
+ // Increment the distance moved for this event
+ d->pixelDistanceMoved += distanceMovedSinceLastEvent;
+
+ // Check against threshold
+ if (qAbs(d->pixelDistanceMoved) > d->singlePressThreshold)
+ {
+ d->singlePress = false;
+// qDebug() << "DRAG MODE ON";
+ }
+ }
+
+ if (!d->singlePress)
+ {
+ int speed;
+ // Calculate velocity in a 10th of a window width per second
+ if (d->previousPosTimestamp.elapsed() == 0)
+ speed = SPEED_LOWER_THRESHOLD;
+ else
+ {
+ speed = ((qAbs(event->pos().x()-d->previousPos.x())*1000) / d->previousPosTimestamp.elapsed())
+ / (d->buffer.width() / 10);
+
+ if (speed < SPEED_LOWER_THRESHOLD)
+ speed = SPEED_LOWER_THRESHOLD;
+ else if (speed > SPEED_UPPER_LIMIT)
+ speed = SPEED_UPPER_LIMIT;
+ else {
+ speed = SPEED_LOWER_THRESHOLD + (speed / 3);
+// qDebug() << "ACCELERATION ENABLED Speed = " << speed << ", Distance = " << distanceMovedSinceLastEvent;
+
+ }
+ }
+
+
+// qDebug() << "Speed = " << speed;
+
+// int incr = ((event->pos().x() - d->previousPos.x())/10) * speed;
+
+// qDebug() << "Incremented by " << incr;
+
+ int incr = (distanceMovedSinceLastEvent * speed);
+
+ //qDebug() << "(distanceMovedSinceLastEvent * speed) = " << incr;
+
+ if (incr > d->pixelsToMovePerSlide*2) {
+ incr = d->pixelsToMovePerSlide*2;
+ //qDebug() << "Limiting incr to " << incr;
+ }
+
+
+ d->pixelDistanceMoved += (distanceMovedSinceLastEvent * speed);
+ // qDebug() << "distance: " << d->pixelDistanceMoved;
+
+ int slideInc;
+
+ slideInc = d->pixelDistanceMoved / (d->pixelsToMovePerSlide * 10);
+
+ if (slideInc != 0) {
+ int targetSlide = d->getTarget() - slideInc;
+ showSlide(targetSlide);
+// qDebug() << "TargetSlide = " << targetSlide;
+
+ //qDebug() << "Decrementing pixelDistanceMoved by " << (d->pixelsToMovePerSlide *10) * slideInc;
+
+ d->pixelDistanceMoved -= (d->pixelsToMovePerSlide *10) * slideInc;
+
+/*
+ if ( (targetSlide <= 0) || (targetSlide >= d->slideCount()-1) )
+ d->pixelDistanceMoved = 0;
+*/
+ }
+
+
+ }
+
+ d->previousPos = event->pos();
+ d->previousPosTimestamp.restart();
+
+ emit inputReceived();
+}
+
+void PictureFlow::mousePressEvent(QMouseEvent* event)
+{
+ d->firstPress = event->pos();
+ d->previousPos = event->pos();
+ d->previousPosTimestamp.start();
+ d->singlePress = true; // Initially assume a single press
+// d->dragStartSlide = d->getTarget();
+ d->pixelDistanceMoved = 0;
+
+ emit inputReceived();
+}
+
+void PictureFlow::mouseReleaseEvent(QMouseEvent* event)
+{
+ int sideWidth = (d->buffer.width() - slideSize().width()) /2;
+
+ if (d->singlePress)
+ {
+ if (event->x() < sideWidth )
+ {
+ showPrevious();
+ } else if ( event->x() > sideWidth + slideSize().width() ) {
+ showNext();
+ } else {
+ emit itemActivated(d->getTarget());
+ }
+
+ event->accept();
+ }
+
+ emit inputReceived();
+}
+
+
+void PictureFlow::paintEvent(QPaintEvent* event)
+{
+ Q_UNUSED(event);
+ QPainter painter(this);
+ painter.setRenderHint(QPainter::Antialiasing, false);
+ painter.drawImage(QPoint(0,0), d->buffer);
+}
+
+void PictureFlow::resizeEvent(QResizeEvent* event)
+{
+ d->resize(width(), height());
+ QWidget::resizeEvent(event);
+}
+
+void PictureFlow::timerEvent(QTimerEvent* event)
+{
+ if(event->timerId() == d->animateTimer.timerId())
+ {
+// QTime now = QTime::currentTime();
+ d->updateAnimation();
+// d->animateTimer.start(qMax(0, 30-now.elapsed() ), this);
+ }
+ else
+ QWidget::timerEvent(event);
+}
diff --git a/demos/embedded/fluidlauncher/pictureflow.h b/demos/embedded/fluidlauncher/pictureflow.h
new file mode 100644
index 0000000..fccc7a3
--- /dev/null
+++ b/demos/embedded/fluidlauncher/pictureflow.h
@@ -0,0 +1,237 @@
+/****************************************************************************
+*
+* Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
+* This is version of the Pictureflow animated image show widget modified by Nokia.
+*
+* $QT_BEGIN_LICENSE:LGPL$
+* No Commercial Usage
+* This file contains pre-release code and may not be distributed.
+* You may use this file in accordance with the terms and conditions
+* contained in the either Technology Preview License Agreement or the
+* Beta Release License Agreement.
+*
+* GNU Lesser General Public License Usage
+* Alternatively, this file may be used under the terms of the GNU Lesser
+* General Public License version 2.1 as published by the Free Software
+* Foundation and appearing in the file LICENSE.LGPL included in the
+* packaging of this file. Please review the following information to
+* ensure the GNU Lesser General Public License version 2.1 requirements
+* will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+*
+* In addition, as a special exception, Nokia gives you certain
+* additional rights. These rights are described in the Nokia Qt LGPL
+* Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+* package.
+*
+* GNU General Public License Usage
+* Alternatively, this file may be used under the terms of the GNU
+* General Public License version 3.0 as published by the Free Software
+* Foundation and appearing in the file LICENSE.GPL included in the
+* packaging of this file. Please review the following information to
+* ensure the GNU General Public License version 3.0 requirements will be
+* met: http://www.gnu.org/copyleft/gpl.html.
+*
+* If you are unsure which license is appropriate for your use, please
+* contact the sales department at qt-sales@nokia.com.
+* $QT_END_LICENSE$
+*
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* * Neither the name of the <organization> nor the
+* names of its contributors may be used to endorse or promote products
+* derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY TROLLTECH ASA ``AS IS'' AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+****************************************************************************/
+/*
+ ORIGINAL COPYRIGHT HEADER
+ PictureFlow - animated image show widget
+ http://pictureflow.googlecode.com
+
+ Copyright (C) 2007 Ariya Hidayat (ariya@kde.org)
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+*/
+
+#ifndef PICTUREFLOW_H
+#define PICTUREFLOW_H
+
+#include <QWidget>
+
+class PictureFlowPrivate;
+
+/*!
+ Class PictureFlow implements an image show widget with animation effect
+ like Apple's CoverFlow (in iTunes and iPod). Images are arranged in form
+ of slides, one main slide is shown at the center with few slides on
+ the left and right sides of the center slide. When the next or previous
+ slide is brought to the front, the whole slides flow to the right or
+ the right with smooth animation effect; until the new slide is finally
+ placed at the center.
+
+ */
+class PictureFlow : public QWidget
+{
+Q_OBJECT
+
+ Q_PROPERTY(int slideCount READ slideCount WRITE setSlideCount)
+ Q_PROPERTY(int currentSlide READ currentSlide WRITE setCurrentSlide)
+ Q_PROPERTY(QSize slideSize READ slideSize WRITE setSlideSize)
+ Q_PROPERTY(int zoomFactor READ zoomFactor WRITE setZoomFactor)
+
+public:
+ /*!
+ Creates a new PictureFlow widget.
+ */
+ PictureFlow(QWidget* parent = 0);
+
+ /*!
+ Destroys the widget.
+ */
+ ~PictureFlow();
+
+ /*!
+ Returns the total number of slides.
+ */
+ int slideCount() const;
+
+ /*!
+ Sets the total number of slides.
+ */
+ void setSlideCount(int count);
+
+ /*!
+ Returns the dimension of each slide (in pixels).
+ */
+ QSize slideSize() const;
+
+ /*!
+ Sets the dimension of each slide (in pixels).
+ */
+ void setSlideSize(QSize size);
+
+ /*!
+ Sets the zoom factor (in percent).
+ */
+ void setZoomFactor(int zoom);
+
+ /*!
+ Returns the zoom factor (in percent).
+ */
+ int zoomFactor() const;
+
+ /*!
+ Clears any caches held to free up memory
+ */
+ void clearCaches();
+
+ /*!
+ Returns QImage of specified slide.
+ This function will be called only whenever necessary, e.g. the 100th slide
+ will not be retrived when only the first few slides are visible.
+ */
+ virtual QImage slide(int index) const;
+
+ /*!
+ Sets an image for specified slide. If the slide already exists,
+ it will be replaced.
+ */
+ virtual void setSlide(int index, const QImage& image);
+
+ virtual void setSlideCaption(int index, QString caption);
+
+ /*!
+ Sets a pixmap for specified slide. If the slide already exists,
+ it will be replaced.
+ */
+ virtual void setSlide(int index, const QPixmap& pixmap);
+
+ /*!
+ Returns the index of slide currently shown in the middle of the viewport.
+ */
+ int currentSlide() const;
+
+public slots:
+
+ /*!
+ Sets slide to be shown in the middle of the viewport. No animation
+ effect will be produced, unlike using showSlide.
+ */
+ void setCurrentSlide(int index);
+
+ /*!
+ Clears images of all slides.
+ */
+ void clear();
+
+ /*!
+ Rerender the widget. Normally this function will be automatically invoked
+ whenever necessary, e.g. during the transition animation.
+ */
+ void render();
+
+ /*!
+ Shows previous slide using animation effect.
+ */
+ void showPrevious();
+
+ /*!
+ Shows next slide using animation effect.
+ */
+ void showNext();
+
+ /*!
+ Go to specified slide using animation effect.
+ */
+ void showSlide(int index);
+
+signals:
+ void itemActivated(int index);
+ void inputReceived();
+
+protected:
+ void paintEvent(QPaintEvent *event);
+ void keyPressEvent(QKeyEvent* event);
+ void mouseMoveEvent(QMouseEvent* event);
+ void mousePressEvent(QMouseEvent* event);
+ void mouseReleaseEvent(QMouseEvent* event);
+ void resizeEvent(QResizeEvent* event);
+ void timerEvent(QTimerEvent* event);
+
+private:
+ PictureFlowPrivate* d;
+};
+
+#endif // PICTUREFLOW_H
diff --git a/demos/embedded/fluidlauncher/screenshots/concentriccircles.png b/demos/embedded/fluidlauncher/screenshots/concentriccircles.png
new file mode 100644
index 0000000..fd308b5
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/concentriccircles.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/deform.png b/demos/embedded/fluidlauncher/screenshots/deform.png
new file mode 100644
index 0000000..c22f2ae
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/deform.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/elasticnodes.png b/demos/embedded/fluidlauncher/screenshots/elasticnodes.png
new file mode 100644
index 0000000..bc157e5
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/elasticnodes.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/embeddedsvgviewer.png b/demos/embedded/fluidlauncher/screenshots/embeddedsvgviewer.png
new file mode 100644
index 0000000..522f13b
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/embeddedsvgviewer.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/mediaplayer.png b/demos/embedded/fluidlauncher/screenshots/mediaplayer.png
new file mode 100644
index 0000000..1304a19
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/mediaplayer.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/pathstroke.png b/demos/embedded/fluidlauncher/screenshots/pathstroke.png
new file mode 100644
index 0000000..c3d727e
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/pathstroke.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/styledemo.png b/demos/embedded/fluidlauncher/screenshots/styledemo.png
new file mode 100644
index 0000000..669c488
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/styledemo.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/wiggly.png b/demos/embedded/fluidlauncher/screenshots/wiggly.png
new file mode 100644
index 0000000..b20fbc4
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/wiggly.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/slides/demo_1.png b/demos/embedded/fluidlauncher/slides/demo_1.png
new file mode 100644
index 0000000..d2952e5
--- /dev/null
+++ b/demos/embedded/fluidlauncher/slides/demo_1.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/slides/demo_2.png b/demos/embedded/fluidlauncher/slides/demo_2.png
new file mode 100644
index 0000000..1899825
--- /dev/null
+++ b/demos/embedded/fluidlauncher/slides/demo_2.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/slides/demo_3.png b/demos/embedded/fluidlauncher/slides/demo_3.png
new file mode 100644
index 0000000..8369bc0
--- /dev/null
+++ b/demos/embedded/fluidlauncher/slides/demo_3.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/slides/demo_4.png b/demos/embedded/fluidlauncher/slides/demo_4.png
new file mode 100644
index 0000000..377e369
--- /dev/null
+++ b/demos/embedded/fluidlauncher/slides/demo_4.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/slides/demo_5.png b/demos/embedded/fluidlauncher/slides/demo_5.png
new file mode 100644
index 0000000..239f08a
--- /dev/null
+++ b/demos/embedded/fluidlauncher/slides/demo_5.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/slides/demo_6.png b/demos/embedded/fluidlauncher/slides/demo_6.png
new file mode 100644
index 0000000..0addf37
--- /dev/null
+++ b/demos/embedded/fluidlauncher/slides/demo_6.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/slideshow.cpp b/demos/embedded/fluidlauncher/slideshow.cpp
new file mode 100644
index 0000000..8f643b4
--- /dev/null
+++ b/demos/embedded/fluidlauncher/slideshow.cpp
@@ -0,0 +1,233 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QBasicTimer>
+#include <QList>
+#include <QImage>
+#include <QDir>
+#include <QPainter>
+#include <QPaintEvent>
+
+#include <QDebug>
+
+
+#include "slideshow.h"
+
+
+class SlideShowPrivate
+{
+public:
+ SlideShowPrivate();
+
+ int currentSlide;
+ int slideInterval;
+ QBasicTimer interSlideTimer;
+ QStringList imagePaths;
+
+ void showNextSlide();
+};
+
+
+
+SlideShowPrivate::SlideShowPrivate()
+{
+ currentSlide = 0;
+ slideInterval = 10000; // Default to 10 sec interval
+}
+
+
+void SlideShowPrivate::showNextSlide()
+{
+ currentSlide++;
+ if (currentSlide >= imagePaths.size())
+ currentSlide = 0;
+}
+
+
+
+SlideShow::SlideShow()
+{
+ d = new SlideShowPrivate;
+
+ setAttribute(Qt::WA_StaticContents, true);
+ setAttribute(Qt::WA_OpaquePaintEvent, true);
+ setAttribute(Qt::WA_NoSystemBackground, true);
+
+ setMouseTracking(true);
+}
+
+
+SlideShow::~SlideShow()
+{
+ delete d;
+}
+
+
+void SlideShow::addImageDir(QString dirName)
+{
+ QDir dir(dirName);
+
+ QStringList fileNames = dir.entryList(QDir::Files | QDir::Readable, QDir::Name);
+
+ for (int i=0; i<fileNames.count(); i++)
+ d->imagePaths << dir.absoluteFilePath(fileNames[i]);
+}
+
+void SlideShow::addImage(QString filename)
+{
+ d->imagePaths << filename;
+}
+
+
+void SlideShow::clearImages()
+{
+ d->imagePaths.clear();
+}
+
+
+void SlideShow::startShow()
+{
+ showFullScreen();
+ d->interSlideTimer.start(d->slideInterval, this);
+ d->showNextSlide();
+ update();
+}
+
+
+void SlideShow::stopShow()
+{
+ hide();
+ d->interSlideTimer.stop();
+}
+
+
+int SlideShow::slideInterval()
+{
+ return d->slideInterval;
+}
+
+void SlideShow::setSlideInterval(int val)
+{
+ d->slideInterval = val;
+}
+
+
+void SlideShow::timerEvent(QTimerEvent* event)
+{
+ Q_UNUSED(event);
+ d->showNextSlide();
+ update();
+}
+
+
+void SlideShow::paintEvent(QPaintEvent *event)
+{
+ QPainter painter(this);
+ painter.setRenderHint(QPainter::Antialiasing, false);
+
+ if (d->imagePaths.size() > 0) {
+ QPixmap slide = QPixmap(d->imagePaths[d->currentSlide]);
+ QSize slideSize = slide.size();
+ QSize scaledSize = QSize(qMin(slideSize.width(), size().width()),
+ qMin(slideSize.height(), size().height()));
+ if (slideSize != scaledSize)
+ slide = slide.scaled(scaledSize, Qt::KeepAspectRatio);
+
+ QRect pixmapRect(qMax( (size().width() - slide.width())/2, 0),
+ qMax( (size().height() - slide.height())/2, 0),
+ slide.width(),
+ slide.height());
+
+ if (pixmapRect.top() > 0) {
+ // Fill in top & bottom rectangles:
+ painter.fillRect(0, 0, size().width(), pixmapRect.top(), Qt::black);
+ painter.fillRect(0, pixmapRect.bottom(), size().width(), size().height(), Qt::black);
+ }
+
+ if (pixmapRect.left() > 0) {
+ // Fill in left & right rectangles:
+ painter.fillRect(0, 0, pixmapRect.left(), size().height(), Qt::black);
+ painter.fillRect(pixmapRect.right(), 0, size().width(), size().height(), Qt::black);
+ }
+
+ painter.drawPixmap(pixmapRect, slide);
+
+ } else
+ painter.fillRect(event->rect(), Qt::black);
+}
+
+
+void SlideShow::keyPressEvent(QKeyEvent* event)
+{
+ Q_UNUSED(event);
+ emit inputReceived();
+}
+
+
+void SlideShow::mouseMoveEvent(QMouseEvent* event)
+{
+ Q_UNUSED(event);
+ emit inputReceived();
+}
+
+
+void SlideShow::mousePressEvent(QMouseEvent* event)
+{
+ Q_UNUSED(event);
+ emit inputReceived();
+}
+
+
+void SlideShow::mouseReleaseEvent(QMouseEvent* event)
+{
+ Q_UNUSED(event);
+ emit inputReceived();
+}
+
+
+void SlideShow::showEvent(QShowEvent * event )
+{
+ Q_UNUSED(event);
+#ifndef QT_NO_CURSOR
+ setCursor(Qt::BlankCursor);
+#endif
+}
+
diff --git a/demos/embedded/fluidlauncher/slideshow.h b/demos/embedded/fluidlauncher/slideshow.h
new file mode 100644
index 0000000..27fb87b
--- /dev/null
+++ b/demos/embedded/fluidlauncher/slideshow.h
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SLIDESHOW_H
+#define SLIDESHOW_H
+
+#include <QWidget>
+
+class SlideShowPrivate;
+
+class SlideShow : public QWidget
+{
+ Q_OBJECT
+
+ Q_PROPERTY(int slideInterval READ slideInterval WRITE setSlideInterval)
+
+public:
+ SlideShow();
+ ~SlideShow();
+ void addImage(QString filename);
+ void addImageDir(QString dirName);
+ void clearImages();
+ void startShow();
+ void stopShow();
+
+
+ int slideInterval();
+ void setSlideInterval(int val);
+
+signals:
+ void inputReceived();
+
+protected:
+ void paintEvent(QPaintEvent *event);
+ void keyPressEvent(QKeyEvent* event);
+ void mouseMoveEvent(QMouseEvent* event);
+ void mousePressEvent(QMouseEvent* event);
+ void mouseReleaseEvent(QMouseEvent* event);
+ void timerEvent(QTimerEvent* event);
+ void showEvent(QShowEvent * event );
+
+
+private:
+ SlideShowPrivate* d;
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+#endif
diff --git a/demos/embedded/styledemo/files/add.png b/demos/embedded/styledemo/files/add.png
new file mode 100755
index 0000000..fc5c16d
--- /dev/null
+++ b/demos/embedded/styledemo/files/add.png
Binary files differ
diff --git a/demos/embedded/styledemo/files/application.qss b/demos/embedded/styledemo/files/application.qss
new file mode 100644
index 0000000..a632ad1
--- /dev/null
+++ b/demos/embedded/styledemo/files/application.qss
@@ -0,0 +1,125 @@
+QWidget#StyleWidget
+{
+ background-color: none;
+ background-image: url(icons:nature_1.jpg);
+}
+
+QLabel, QAbstractButton
+{
+ font: 18px bold;
+ color: beige;
+}
+
+QAbstractButton
+{
+ background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(173,216,230,60%), stop:1 rgba(0,0,139,60%) );
+ border-color: black;
+ border-style: solid;
+ border-width: 3px;
+ border-radius: 6px;
+}
+
+QAbstractButton:pressed, QAbstractButton:checked
+{
+ background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(0,0,139,60%), stop:1 rgba(173,216,230,60%) );
+}
+
+QSpinBox {
+ padding-left: 24px;
+ padding-right: 24px;
+ border-color: darkkhaki;
+ border-style: solid;
+ border-radius: 5;
+ border-width: 3;
+}
+
+QSpinBox::up-button
+{
+ subcontrol-origin: padding;
+ subcontrol-position: right; /* position at the top right corner */
+ width: 24px;
+ height: 24px;
+ border-width: 3px;
+
+}
+
+QSpinBox::up-arrow
+{
+ image: url(icons:add.png);
+ width: 18px;
+ height: 18px;
+}
+
+
+QSpinBox::down-button
+{
+ subcontrol-origin: border;
+ subcontrol-position: left;
+ width: 24px;
+ height: 24px;
+ border-width: 3px;
+}
+
+QSpinBox::down-arrow
+{
+ image: url(icons:remove.png);
+ width: 18px;
+ height: 18px;
+}
+
+
+QScrollBar:horizontal
+{
+ border: 1px solid black;
+ background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0,0,139,60%), stop:1 rgba(173,216,230,60%) );
+ height: 15px;
+ margin: 0px 20px 0 20px;
+}
+
+QScrollBar::handle:horizontal
+{
+ border: 1px solid black;
+ background: rgba(0,0,139,60%);
+ min-width: 20px;
+}
+
+QScrollBar::add-line:horizontal
+{
+ border: 1px solid black;
+ background: rgba(0,0,139,60%);
+ width: 20px;
+ subcontrol-position: right;
+ subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:horizontal
+{
+ border: 1px solid black;
+ background: rgba(0,0,139,60%);
+ width: 20px;
+ subcontrol-position: left;
+ subcontrol-origin: margin;
+}
+
+QScrollBar:left-arrow:horizontal, QScrollBar::right-arrow:horizontal
+{
+ border: none;
+ width: 16px;
+ height: 16px;
+}
+
+QScrollBar:left-arrow:horizontal
+{
+ image: url(icons:add.png)
+}
+
+QScrollBar::right-arrow:horizontal
+{
+ image: url(icons:remove.png)
+}
+
+QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal
+{
+ background: none;
+}
+
diff --git a/demos/embedded/styledemo/files/blue.qss b/demos/embedded/styledemo/files/blue.qss
new file mode 100644
index 0000000..aa87277
--- /dev/null
+++ b/demos/embedded/styledemo/files/blue.qss
@@ -0,0 +1,39 @@
+*
+{
+ color: beige;
+}
+
+QLabel, QAbstractButton
+{
+ font: 10pt bold;
+ color: yellow;
+}
+
+QFrame
+{
+ background-color: rgba(96,96,255,60%);
+ border-color: rgb(32,32,196);
+ border-width: 3px;
+ border-style: solid;
+ border-radius: 5;
+ padding: 3px;
+}
+
+QAbstractButton
+{
+ background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
+ stop:0 lightblue, stop:0.5 darkblue);
+ border-width: 3px;
+ border-color: darkblue;
+ border-style: solid;
+ border-radius: 5;
+ padding: 3px;
+ qproperty-focusPolicy: NoFocus;
+}
+
+QAbstractButton:pressed
+{
+ background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
+ stop:0.5 darkblue, stop:1 lightblue);
+ border-color: beige;
+}
diff --git a/demos/embedded/styledemo/files/khaki.qss b/demos/embedded/styledemo/files/khaki.qss
new file mode 100644
index 0000000..9c0f77c
--- /dev/null
+++ b/demos/embedded/styledemo/files/khaki.qss
@@ -0,0 +1,100 @@
+
+QWidget#StartScreen, QWidget#MainWidget {
+ border: none;
+}
+
+QWidget#StartScreen, .QFrame {
+ background-color: beige;
+}
+
+QPushButton, QToolButton {
+ background-color: palegoldenrod;
+ border-width: 2px;
+ border-color: darkkhaki;
+ border-style: solid;
+ border-radius: 5;
+ padding: 3px;
+ /* min-width: 96px; */
+ /* min-height: 48px; */
+ qproperty-focusPolicy: NoFocus
+}
+
+QPushButton:hover, QToolButton:hover {
+ background-color: khaki;
+}
+
+QPushButton:pressed, QToolButton:pressed {
+ padding-left: 5px;
+ padding-top: 5px;
+ background-color: #d0d67c;
+}
+
+QLabel, QAbstractButton {
+ font: italic 11pt "Times New Roman";
+}
+
+QFrame, QLabel#title {
+ border-width: 2px;
+ padding: 1px;
+ border-style: solid;
+ border-color: darkkhaki;
+ border-radius: 5px;
+}
+
+QFrame:focus {
+ border-width: 3px;
+ padding: 0px;
+}
+
+
+QLabel {
+ border: none;
+ padding: 0;
+ background: none;
+}
+
+QLabel#title {
+ font: 32px bold;
+}
+
+QSpinBox {
+ padding-left: 24px;
+ padding-right: 24px;
+ border-color: darkkhaki;
+ border-style: solid;
+ border-radius: 5;
+ border-width: 3;
+}
+
+QSpinBox::up-button
+{
+ subcontrol-origin: padding;
+ subcontrol-position: right; /* position at the top right corner */
+ width: 24px;
+ height: 24px;
+ border-width: 3px;
+ border-image: url(:/files/spindownpng) 1;
+}
+
+QSpinBox::up-arrow {
+ image: url(:/files/add.png);
+ width: 12px;
+ height: 12px;
+ }
+
+
+QSpinBox::down-button
+{
+ subcontrol-origin: border;
+ subcontrol-position: left;
+ width: 24px;
+ height: 24px;
+ border-width: 3px;
+ border-image: url(:/files/spindownpng) 1;
+}
+
+QSpinBox::down-arrow {
+ image: url(:/files/remove.png);
+ width: 12px;
+ height: 12px;
+ }
diff --git a/demos/embedded/styledemo/files/nature_1.jpg b/demos/embedded/styledemo/files/nature_1.jpg
new file mode 100644
index 0000000..3a04edb
--- /dev/null
+++ b/demos/embedded/styledemo/files/nature_1.jpg
Binary files differ
diff --git a/demos/embedded/styledemo/files/nostyle.qss b/demos/embedded/styledemo/files/nostyle.qss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/demos/embedded/styledemo/files/nostyle.qss
diff --git a/demos/embedded/styledemo/files/remove.png b/demos/embedded/styledemo/files/remove.png
new file mode 100755
index 0000000..a0ab1fa
--- /dev/null
+++ b/demos/embedded/styledemo/files/remove.png
Binary files differ
diff --git a/demos/embedded/styledemo/files/transparent.qss b/demos/embedded/styledemo/files/transparent.qss
new file mode 100644
index 0000000..e3a9912
--- /dev/null
+++ b/demos/embedded/styledemo/files/transparent.qss
@@ -0,0 +1,140 @@
+QWidget#StyleWidget
+{
+ background-color: none;
+ background-image: url(:/files/nature_1.jpg);
+}
+
+QLabel, QAbstractButton
+{
+ font: 13pt;
+ color: beige;
+}
+
+QFrame, QLabel#title {
+ border-width: 2px;
+ padding: 1px;
+ border-style: solid;
+ border-color: black;
+ border-radius: 5px;
+}
+
+QFrame:focus {
+ border-width: 3px;
+ padding: 0px;
+}
+
+
+
+QAbstractButton
+{
+ background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(173,216,230,60%), stop:1 rgba(0,0,139,60%) );
+ border-color: black;
+ border-style: solid;
+ border-width: 3px;
+ border-radius: 6px;
+}
+
+QAbstractButton:pressed, QAbstractButton:checked
+{
+ background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(0,0,139,60%), stop:1 rgba(173,216,230,60%) );
+}
+
+QSpinBox {
+ padding-left: 24px;
+ padding-right: 24px;
+ border-color: darkkhaki;
+ border-style: solid;
+ border-radius: 5;
+ border-width: 3;
+}
+
+QSpinBox::up-button
+{
+ subcontrol-origin: padding;
+ subcontrol-position: right; /* position at the top right corner */
+ width: 24px;
+ height: 24px;
+ border-width: 3px;
+
+}
+
+QSpinBox::up-arrow
+{
+ image: url(:/files/add.png);
+ width: 18px;
+ height: 18px;
+}
+
+
+QSpinBox::down-button
+{
+ subcontrol-origin: border;
+ subcontrol-position: left;
+ width: 24px;
+ height: 24px;
+ border-width: 3px;
+}
+
+QSpinBox::down-arrow
+{
+ image: url(:/files/remove.png);
+ width: 18px;
+ height: 18px;
+}
+
+
+QScrollBar:horizontal
+{
+ border: 1px solid black;
+ background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0,0,139,60%), stop:1 rgba(173,216,230,60%) );
+ height: 15px;
+ margin: 0px 20px 0 20px;
+}
+
+QScrollBar::handle:horizontal
+{
+ border: 1px solid black;
+ background: rgba(0,0,139,60%);
+ min-width: 20px;
+}
+
+QScrollBar::add-line:horizontal
+{
+ border: 1px solid black;
+ background: rgba(0,0,139,60%);
+ width: 20px;
+ subcontrol-position: right;
+ subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:horizontal
+{
+ border: 1px solid black;
+ background: rgba(0,0,139,60%);
+ width: 20px;
+ subcontrol-position: left;
+ subcontrol-origin: margin;
+}
+
+QScrollBar:left-arrow:horizontal, QScrollBar::right-arrow:horizontal
+{
+ border: none;
+ width: 16px;
+ height: 16px;
+}
+
+QScrollBar:left-arrow:horizontal
+{
+ image: url(:/files/add.png)
+}
+
+QScrollBar::right-arrow:horizontal
+{
+ image: url(:/files/remove.png)
+}
+
+QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal
+{
+ background: none;
+}
+
diff --git a/demos/embedded/styledemo/main.cpp b/demos/embedded/styledemo/main.cpp
new file mode 100644
index 0000000..6a7472e
--- /dev/null
+++ b/demos/embedded/styledemo/main.cpp
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QApplication>
+
+#include "stylewidget.h"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+ Q_INIT_RESOURCE(styledemo);
+
+ app.setApplicationName("style");
+ app.setOrganizationName("Trolltech");
+ app.setOrganizationDomain("com.trolltech");
+
+ StyleWidget widget;
+ widget.showFullScreen();
+
+ return app.exec();
+}
+
diff --git a/demos/embedded/styledemo/styledemo.pro b/demos/embedded/styledemo/styledemo.pro
new file mode 100644
index 0000000..ee5e4d6
--- /dev/null
+++ b/demos/embedded/styledemo/styledemo.pro
@@ -0,0 +1,12 @@
+TEMPLATE = app
+
+# Input
+HEADERS += stylewidget.h
+FORMS += stylewidget.ui
+SOURCES += main.cpp stylewidget.cpp
+RESOURCES += styledemo.qrc
+
+target.path = $$[QT_INSTALL_DEMOS]/embedded/styledemo
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro *.html
+sources.path = $$[QT_INSTALL_DEMOS]/embedded/styledemo
+INSTALLS += target sources
diff --git a/demos/embedded/styledemo/styledemo.qrc b/demos/embedded/styledemo/styledemo.qrc
new file mode 100644
index 0000000..96237d4
--- /dev/null
+++ b/demos/embedded/styledemo/styledemo.qrc
@@ -0,0 +1,13 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/">
+ <file>files/add.png</file>
+ <file>files/blue.qss</file>
+ <file>files/khaki.qss</file>
+ <file>files/nostyle.qss</file>
+ <file>files/transparent.qss</file>
+ <file>files/application.qss</file>
+ <file>files/nature_1.jpg</file>
+ <file>files/remove.png</file>
+</qresource>
+</RCC>
+
diff --git a/demos/embedded/styledemo/stylewidget.cpp b/demos/embedded/styledemo/stylewidget.cpp
new file mode 100644
index 0000000..304dd36
--- /dev/null
+++ b/demos/embedded/styledemo/stylewidget.cpp
@@ -0,0 +1,112 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QApplication>
+#include <QString>
+#include <QFile>
+
+#include "stylewidget.h"
+
+
+
+StyleWidget::StyleWidget(QWidget *parent)
+ : QFrame(parent)
+{
+ m_ui.setupUi(this);
+}
+
+
+void StyleWidget::on_close_clicked()
+{
+ close();
+}
+
+void StyleWidget::on_blueStyle_clicked()
+{
+ QFile styleSheet(":/files/blue.qss");
+
+ if (!styleSheet.open(QIODevice::ReadOnly)) {
+ qWarning("Unable to open :/files/blue.qss");
+ return;
+ }
+
+ qApp->setStyleSheet(styleSheet.readAll());
+}
+
+void StyleWidget::on_khakiStyle_clicked()
+{
+ QFile styleSheet(":/files/khaki.qss");
+
+ if (!styleSheet.open(QIODevice::ReadOnly)) {
+ qWarning("Unable to open :/files/khaki.qss");
+ return;
+ }
+
+ qApp->setStyleSheet(styleSheet.readAll());
+}
+
+
+void StyleWidget::on_noStyle_clicked()
+{
+ QFile styleSheet(":/files/nostyle.qss");
+
+ if (!styleSheet.open(QIODevice::ReadOnly)) {
+ qWarning("Unable to open :/files/nostyle.qss");
+ return;
+ }
+
+ qApp->setStyleSheet(styleSheet.readAll());
+}
+
+
+void StyleWidget::on_transparentStyle_clicked()
+{
+ QFile styleSheet(":/files/transparent.qss");
+
+ if (!styleSheet.open(QIODevice::ReadOnly)) {
+ qWarning("Unable to open :/files/transparent.qss");
+ return;
+ }
+
+ qApp->setStyleSheet(styleSheet.readAll());
+}
+
+
+
diff --git a/demos/embedded/styledemo/stylewidget.h b/demos/embedded/styledemo/stylewidget.h
new file mode 100644
index 0000000..5ccb418
--- /dev/null
+++ b/demos/embedded/styledemo/stylewidget.h
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef STYLEWIDGET_H
+#define STYLEWIDGET_H
+
+#include <QFrame>
+
+#include "ui_stylewidget.h"
+
+class StyleWidget : public QFrame
+{
+ Q_OBJECT
+public:
+ StyleWidget(QWidget *parent = 0);
+
+private:
+ Ui_StyleWidget m_ui;
+
+private slots:
+ void on_close_clicked();
+ void on_blueStyle_clicked();
+ void on_khakiStyle_clicked();
+ void on_noStyle_clicked();
+ void on_transparentStyle_clicked();
+};
+
+#endif
diff --git a/demos/embedded/styledemo/stylewidget.ui b/demos/embedded/styledemo/stylewidget.ui
new file mode 100644
index 0000000..586faea
--- /dev/null
+++ b/demos/embedded/styledemo/stylewidget.ui
@@ -0,0 +1,429 @@
+<ui version="4.0" >
+ <class>StyleWidget</class>
+ <widget class="QWidget" name="StyleWidget" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>339</width>
+ <height>230</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Form</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout" >
+ <property name="margin" >
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>Styles</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>3</number>
+ </property>
+ <property name="margin" >
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="noStyle" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="text" >
+ <string>No-Style</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ <property name="autoExclusive" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="blueStyle" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="text" >
+ <string>Blue</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="checked" >
+ <bool>false</bool>
+ </property>
+ <property name="autoExclusive" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="khakiStyle" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="text" >
+ <string>Khaki</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="checked" >
+ <bool>false</bool>
+ </property>
+ <property name="autoExclusive" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="transparentStyle" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="text" >
+ <string>Transparent</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="checked" >
+ <bool>false</bool>
+ </property>
+ <property name="autoExclusive" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_3" >
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QFrame" name="frame" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="MinimumExpanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QVBoxLayout" name="frameLayout" >
+ <property name="margin" >
+ <number>3</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout" >
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>My Value is:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBox" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ <property name="keyboardTracking" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QGridLayout" name="gridLayout" >
+ <item row="0" column="0" >
+ <widget class="QScrollBar" name="horizontalScrollBar" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QPushButton" name="pushButton_2" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="MinimumExpanding" hsizetype="MinimumExpanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="text" >
+ <string>Show Scroller</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ <property name="flat" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QScrollBar" name="horizontalScrollBar_2" >
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QPushButton" name="pushButton" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="MinimumExpanding" hsizetype="MinimumExpanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="text" >
+ <string>Enable Scroller</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ <property name="flat" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer" >
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="close" >
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="text" >
+ <string>Close</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="StyleDemo.qrc" />
+ </resources>
+ <connections>
+ <connection>
+ <sender>horizontalScrollBar</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>horizontalScrollBar_2</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>134</x>
+ <y>196</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>523</x>
+ <y>193</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>horizontalScrollBar_2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>horizontalScrollBar</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>577</x>
+ <y>199</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>127</x>
+ <y>207</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>pushButton</sender>
+ <signal>clicked(bool)</signal>
+ <receiver>horizontalScrollBar_2</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>566</x>
+ <y>241</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>492</x>
+ <y>207</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>pushButton_2</sender>
+ <signal>clicked(bool)</signal>
+ <receiver>horizontalScrollBar</receiver>
+ <slot>setVisible(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>123</x>
+ <y>239</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>123</x>
+ <y>184</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>spinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>horizontalScrollBar_2</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>603</x>
+ <y>136</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>575</x>
+ <y>199</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/demos/embeddeddialogs/No-Ones-Laughing-3.jpg b/demos/embeddeddialogs/No-Ones-Laughing-3.jpg
new file mode 100644
index 0000000..445567f
--- /dev/null
+++ b/demos/embeddeddialogs/No-Ones-Laughing-3.jpg
Binary files differ
diff --git a/demos/embeddeddialogs/customproxy.cpp b/demos/embeddeddialogs/customproxy.cpp
new file mode 100644
index 0000000..56a0548
--- /dev/null
+++ b/demos/embeddeddialogs/customproxy.cpp
@@ -0,0 +1,156 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "customproxy.h"
+
+#include <QtGui>
+
+CustomProxy::CustomProxy(QGraphicsItem *parent, Qt::WindowFlags wFlags)
+ : QGraphicsProxyWidget(parent, wFlags), popupShown(false)
+{
+ timeLine = new QTimeLine(250, this);
+ connect(timeLine, SIGNAL(valueChanged(qreal)),
+ this, SLOT(updateStep(qreal)));
+ connect(timeLine, SIGNAL(stateChanged(QTimeLine::State)),
+ this, SLOT(stateChanged(QTimeLine::State)));
+}
+
+QRectF CustomProxy::boundingRect() const
+{
+ return QGraphicsProxyWidget::boundingRect().adjusted(0, 0, 10, 10);
+}
+
+void CustomProxy::paintWindowFrame(QPainter *painter, const QStyleOptionGraphicsItem *option,
+ QWidget *widget)
+{
+ const QColor color(0, 0, 0, 64);
+
+ QRectF r = windowFrameRect();
+ QRectF right(r.right(), r.top() + 10, 10, r.height() - 10);
+ QRectF bottom(r.left() + 10, r.bottom(), r.width(), 10);
+ bool intersectsRight = right.intersects(option->exposedRect);
+ bool intersectsBottom = bottom.intersects(option->exposedRect);
+ if (intersectsRight && intersectsBottom) {
+ QPainterPath path;
+ path.addRect(right);
+ path.addRect(bottom);
+ painter->setPen(Qt::NoPen);
+ painter->setBrush(color);
+ painter->drawPath(path);
+ } else if (intersectsBottom) {
+ painter->fillRect(bottom, color);
+ } else if (intersectsRight) {
+ painter->fillRect(right, color);
+ }
+
+ QGraphicsProxyWidget::paintWindowFrame(painter, option, widget);
+}
+
+void CustomProxy::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
+{
+ QGraphicsProxyWidget::hoverEnterEvent(event);
+ scene()->setActiveWindow(this);
+ if (timeLine->currentValue() != 1)
+ zoomIn();
+}
+
+void CustomProxy::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
+{
+ QGraphicsProxyWidget::hoverLeaveEvent(event);
+ if (!popupShown && (timeLine->direction() != QTimeLine::Backward || timeLine->currentValue() != 0))
+ zoomOut();
+}
+
+bool CustomProxy::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
+{
+ if (watched->isWindow() && (event->type() == QEvent::UngrabMouse || event->type() == QEvent::GrabMouse)) {
+ popupShown = watched->isVisible();
+ if (!popupShown && !isUnderMouse())
+ zoomOut();
+ }
+ return QGraphicsProxyWidget::sceneEventFilter(watched, event);
+}
+
+QVariant CustomProxy::itemChange(GraphicsItemChange change, const QVariant &value)
+{
+ if (change == ItemChildRemovedChange)
+ removeSceneEventFilter(this);
+ return QGraphicsProxyWidget::itemChange(change, value);
+}
+
+void CustomProxy::updateStep(qreal step)
+{
+ QRectF r = boundingRect();
+ setTransform(QTransform()
+ .translate(r.width() / 2, r.height() / 2)
+ .rotate(step * 30, Qt::XAxis)
+ .rotate(step * 10, Qt::YAxis)
+ .rotate(step * 5, Qt::ZAxis)
+ .scale(1 + 1.5 * step, 1 + 1.5 * step)
+ .translate(-r.width() / 2, -r.height() / 2));
+}
+
+void CustomProxy::stateChanged(QTimeLine::State state)
+{
+ if (state == QTimeLine::Running) {
+ if (timeLine->direction() == QTimeLine::Forward)
+ setCacheMode(ItemCoordinateCache);
+ } else if (state == QTimeLine::NotRunning) {
+ if (timeLine->direction() == QTimeLine::Backward)
+ setCacheMode(DeviceCoordinateCache);
+ }
+}
+
+void CustomProxy::zoomIn()
+{
+ if (timeLine->direction() != QTimeLine::Forward)
+ timeLine->setDirection(QTimeLine::Forward);
+ if (timeLine->state() == QTimeLine::NotRunning)
+ timeLine->start();
+}
+
+void CustomProxy::zoomOut()
+{
+ if (timeLine->direction() != QTimeLine::Backward)
+ timeLine->setDirection(QTimeLine::Backward);
+ if (timeLine->state() == QTimeLine::NotRunning)
+ timeLine->start();
+}
diff --git a/demos/embeddeddialogs/customproxy.h b/demos/embeddeddialogs/customproxy.h
new file mode 100644
index 0000000..0a5fbaf
--- /dev/null
+++ b/demos/embeddeddialogs/customproxy.h
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef CUSTOMPROXY_H
+#define CUSTOMPROXY_H
+
+#include <QtCore/qtimeline.h>
+#include <QtGui/qgraphicsproxywidget.h>
+
+class CustomProxy : public QGraphicsProxyWidget
+{
+ Q_OBJECT
+public:
+ CustomProxy(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0);
+
+ QRectF boundingRect() const;
+ void paintWindowFrame(QPainter *painter, const QStyleOptionGraphicsItem *option,
+ QWidget *widget);
+
+protected:
+ void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
+ void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
+ bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
+ QVariant itemChange(GraphicsItemChange change, const QVariant &value);
+
+private slots:
+ void updateStep(qreal step);
+ void stateChanged(QTimeLine::State);
+ void zoomIn();
+ void zoomOut();
+
+private:
+ QTimeLine *timeLine;
+ bool popupShown;
+};
+
+#endif
diff --git a/demos/embeddeddialogs/embeddeddialog.cpp b/demos/embeddeddialogs/embeddeddialog.cpp
new file mode 100644
index 0000000..40f361c
--- /dev/null
+++ b/demos/embeddeddialogs/embeddeddialog.cpp
@@ -0,0 +1,106 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "embeddeddialog.h"
+#include "ui_embeddeddialog.h"
+
+#include <QtGui>
+
+EmbeddedDialog::EmbeddedDialog(QWidget *parent)
+ : QDialog(parent)
+{
+ ui = new Ui_embeddedDialog;
+ ui->setupUi(this);
+ ui->layoutDirection->setCurrentIndex(layoutDirection() != Qt::LeftToRight);
+
+ foreach (QString styleName, QStyleFactory::keys()) {
+ ui->style->addItem(styleName);
+ if (style()->objectName().toLower() == styleName.toLower())
+ ui->style->setCurrentIndex(ui->style->count() - 1);
+ }
+
+ connect(ui->layoutDirection, SIGNAL(activated(int)),
+ this, SLOT(layoutDirectionChanged(int)));
+ connect(ui->spacing, SIGNAL(valueChanged(int)),
+ this, SLOT(spacingChanged(int)));
+ connect(ui->fontComboBox, SIGNAL(currentFontChanged(const QFont &)),
+ this, SLOT(fontChanged(const QFont &)));
+ connect(ui->style, SIGNAL(activated(QString)),
+ this, SLOT(styleChanged(QString)));
+}
+
+EmbeddedDialog::~EmbeddedDialog()
+{
+ delete ui;
+}
+
+void EmbeddedDialog::layoutDirectionChanged(int index)
+{
+ setLayoutDirection(index == 0 ? Qt::LeftToRight : Qt::RightToLeft);
+}
+
+void EmbeddedDialog::spacingChanged(int spacing)
+{
+ layout()->setSpacing(spacing);
+ adjustSize();
+}
+
+void EmbeddedDialog::fontChanged(const QFont &font)
+{
+ setFont(font);
+}
+
+static void setStyleHelper(QWidget *widget, QStyle *style)
+{
+ widget->setStyle(style);
+ widget->setPalette(style->standardPalette());
+ foreach (QObject *child, widget->children()) {
+ if (QWidget *childWidget = qobject_cast<QWidget *>(child))
+ setStyleHelper(childWidget, style);
+ }
+}
+
+void EmbeddedDialog::styleChanged(const QString &styleName)
+{
+ QStyle *style = QStyleFactory::create(styleName);
+ if (style)
+ setStyleHelper(this, style);
+}
diff --git a/demos/embeddeddialogs/embeddeddialog.h b/demos/embeddeddialogs/embeddeddialog.h
new file mode 100644
index 0000000..787196c
--- /dev/null
+++ b/demos/embeddeddialogs/embeddeddialog.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef EMBEDDEDDIALOG_H
+#define EMBEDDEDDIALOG_H
+
+#include <QtGui/qdialog.h>
+
+QT_FORWARD_DECLARE_CLASS(Ui_embeddedDialog);
+
+class EmbeddedDialog : public QDialog
+{
+ Q_OBJECT
+public:
+ EmbeddedDialog(QWidget *parent = 0);
+ ~EmbeddedDialog();
+
+private slots:
+ void layoutDirectionChanged(int index);
+ void spacingChanged(int spacing);
+ void fontChanged(const QFont &font);
+ void styleChanged(const QString &styleName);
+
+private:
+ Ui_embeddedDialog *ui;
+};
+
+#endif
diff --git a/demos/embeddeddialogs/embeddeddialog.ui b/demos/embeddeddialogs/embeddeddialog.ui
new file mode 100644
index 0000000..f967b10
--- /dev/null
+++ b/demos/embeddeddialogs/embeddeddialog.ui
@@ -0,0 +1,87 @@
+<ui version="4.0" >
+ <class>embeddedDialog</class>
+ <widget class="QDialog" name="embeddedDialog" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>407</width>
+ <height>134</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Embedded Dialog</string>
+ </property>
+ <layout class="QFormLayout" name="formLayout" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Layout Direction:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>layoutDirection</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QComboBox" name="layoutDirection" >
+ <item>
+ <property name="text" >
+ <string>Left to Right</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Right to Left</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Select Font:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>fontComboBox</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QFontComboBox" name="fontComboBox" />
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
+ <string>Style:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>style</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QComboBox" name="style" />
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="label_4" >
+ <property name="text" >
+ <string>Layout spacing:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>spacing</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QSlider" name="spacing" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/demos/embeddeddialogs/embeddeddialogs.pro b/demos/embeddeddialogs/embeddeddialogs.pro
new file mode 100644
index 0000000..a38e3e8
--- /dev/null
+++ b/demos/embeddeddialogs/embeddeddialogs.pro
@@ -0,0 +1,17 @@
+SOURCES += main.cpp
+SOURCES += customproxy.cpp embeddeddialog.cpp
+HEADERS += customproxy.h embeddeddialog.h
+
+FORMS += embeddeddialog.ui
+RESOURCES += embeddeddialogs.qrc
+
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/embeddeddialogs
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.png *.jpg *.plist *.icns *.ico *.rc *.pro *.html *.doc images
+sources.path = $$[QT_INSTALL_DEMOS]/embeddeddialogs
+INSTALLS += target sources
diff --git a/demos/embeddeddialogs/embeddeddialogs.qrc b/demos/embeddeddialogs/embeddeddialogs.qrc
new file mode 100644
index 0000000..33be503
--- /dev/null
+++ b/demos/embeddeddialogs/embeddeddialogs.qrc
@@ -0,0 +1,5 @@
+<RCC>
+ <qresource>
+ <file>No-Ones-Laughing-3.jpg</file>
+ </qresource>
+</RCC>
diff --git a/demos/embeddeddialogs/main.cpp b/demos/embeddeddialogs/main.cpp
new file mode 100644
index 0000000..4cf7325
--- /dev/null
+++ b/demos/embeddeddialogs/main.cpp
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "customproxy.h"
+#include "embeddeddialog.h"
+
+#include <QtGui>
+
+int main(int argc, char *argv[])
+{
+ Q_INIT_RESOURCE(embeddeddialogs);
+ QApplication app(argc, argv);
+
+ QGraphicsScene scene;
+ scene.setStickyFocus(true);
+#ifndef Q_OS_WINCE
+ const int gridSize = 10;
+#else
+ const int gridSize = 5;
+#endif
+
+ for (int y = 0; y < gridSize; ++y) {
+ for (int x = 0; x < gridSize; ++x) {
+ CustomProxy *proxy = new CustomProxy(0, Qt::Window);
+ proxy->setWidget(new EmbeddedDialog);
+
+ QRectF rect = proxy->boundingRect();
+
+ proxy->setPos(x * rect.width() * 1.05, y * rect.height() * 1.05);
+ proxy->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
+
+ scene.addItem(proxy);
+ proxy->installSceneEventFilter(proxy);
+ }
+ }
+ scene.setSceneRect(scene.itemsBoundingRect());
+
+ QGraphicsView view(&scene);
+ view.scale(0.5, 0.5);
+ view.setRenderHints(view.renderHints() | QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
+ view.setBackgroundBrush(QPixmap(":/No-Ones-Laughing-3.jpg"));
+ view.setCacheMode(QGraphicsView::CacheBackground);
+ view.setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
+ view.show();
+ view.setWindowTitle("Embedded Dialogs Demo");
+ return app.exec();
+}
diff --git a/demos/gradients/gradients.cpp b/demos/gradients/gradients.cpp
new file mode 100644
index 0000000..6256ba9
--- /dev/null
+++ b/demos/gradients/gradients.cpp
@@ -0,0 +1,516 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "gradients.h"
+#include "hoverpoints.h"
+
+ShadeWidget::ShadeWidget(ShadeType type, QWidget *parent)
+ : QWidget(parent), m_shade_type(type), m_alpha_gradient(QLinearGradient(0, 0, 0, 0))
+{
+
+ // Checkers background
+ if (m_shade_type == ARGBShade) {
+ QPixmap pm(20, 20);
+ QPainter pmp(&pm);
+ pmp.fillRect(0, 0, 10, 10, Qt::lightGray);
+ pmp.fillRect(10, 10, 10, 10, Qt::lightGray);
+ pmp.fillRect(0, 10, 10, 10, Qt::darkGray);
+ pmp.fillRect(10, 0, 10, 10, Qt::darkGray);
+ pmp.end();
+ QPalette pal = palette();
+ pal.setBrush(backgroundRole(), QBrush(pm));
+ setAutoFillBackground(true);
+ setPalette(pal);
+
+ } else {
+ setAttribute(Qt::WA_NoBackground);
+
+ }
+
+ QPolygonF points;
+ points << QPointF(0, sizeHint().height())
+ << QPointF(sizeHint().width(), 0);
+
+ m_hoverPoints = new HoverPoints(this, HoverPoints::CircleShape);
+// m_hoverPoints->setConnectionType(HoverPoints::LineConnection);
+ m_hoverPoints->setPoints(points);
+ m_hoverPoints->setPointLock(0, HoverPoints::LockToLeft);
+ m_hoverPoints->setPointLock(1, HoverPoints::LockToRight);
+ m_hoverPoints->setSortType(HoverPoints::XSort);
+
+ setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+
+ connect(m_hoverPoints, SIGNAL(pointsChanged(const QPolygonF &)), this, SIGNAL(colorsChanged()));
+}
+
+
+QPolygonF ShadeWidget::points() const
+{
+ return m_hoverPoints->points();
+}
+
+
+uint ShadeWidget::colorAt(int x)
+{
+ generateShade();
+
+ QPolygonF pts = m_hoverPoints->points();
+ for (int i=1; i < pts.size(); ++i) {
+ if (pts.at(i-1).x() <= x && pts.at(i).x() >= x) {
+ QLineF l(pts.at(i-1), pts.at(i));
+ l.setLength(l.length() * ((x - l.x1()) / l.dx()));
+ return m_shade.pixel(qRound(qMin(l.x2(), (qreal(m_shade.width() - 1)))),
+ qRound(qMin(l.y2(), qreal(m_shade.height() - 1))));
+ }
+ }
+ return 0;
+}
+
+
+void ShadeWidget::setGradientStops(const QGradientStops &stops)
+{
+ if (m_shade_type == ARGBShade) {
+ m_alpha_gradient = QLinearGradient(0, 0, width(), 0);
+
+ for (int i=0; i<stops.size(); ++i) {
+ QColor c = stops.at(i).second;
+ m_alpha_gradient.setColorAt(stops.at(i).first, QColor(c.red(), c.green(), c.blue()));
+ }
+
+ m_shade = QImage();
+ generateShade();
+ update();
+ }
+}
+
+
+void ShadeWidget::paintEvent(QPaintEvent *)
+{
+ generateShade();
+
+ QPainter p(this);
+ p.drawImage(0, 0, m_shade);
+
+ p.setPen(QColor(146, 146, 146));
+ p.drawRect(0, 0, width() - 1, height() - 1);
+}
+
+
+void ShadeWidget::generateShade()
+{
+ if (m_shade.isNull() || m_shade.size() != size()) {
+
+ if (m_shade_type == ARGBShade) {
+ m_shade = QImage(size(), QImage::Format_ARGB32_Premultiplied);
+ m_shade.fill(0);
+
+ QPainter p(&m_shade);
+ p.fillRect(rect(), m_alpha_gradient);
+
+ p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
+ QLinearGradient fade(0, 0, 0, height());
+ fade.setColorAt(0, QColor(0, 0, 0, 255));
+ fade.setColorAt(1, QColor(0, 0, 0, 0));
+ p.fillRect(rect(), fade);
+
+ } else {
+ m_shade = QImage(size(), QImage::Format_RGB32);
+ QLinearGradient shade(0, 0, 0, height());
+ shade.setColorAt(1, Qt::black);
+
+ if (m_shade_type == RedShade)
+ shade.setColorAt(0, Qt::red);
+ else if (m_shade_type == GreenShade)
+ shade.setColorAt(0, Qt::green);
+ else
+ shade.setColorAt(0, Qt::blue);
+
+ QPainter p(&m_shade);
+ p.fillRect(rect(), shade);
+ }
+ }
+
+
+}
+
+
+GradientEditor::GradientEditor(QWidget *parent)
+ : QWidget(parent)
+{
+ QVBoxLayout *vbox = new QVBoxLayout(this);
+ vbox->setSpacing(1);
+ vbox->setMargin(1);
+
+ m_red_shade = new ShadeWidget(ShadeWidget::RedShade, this);
+ m_green_shade = new ShadeWidget(ShadeWidget::GreenShade, this);
+ m_blue_shade = new ShadeWidget(ShadeWidget::BlueShade, this);
+ m_alpha_shade = new ShadeWidget(ShadeWidget::ARGBShade, this);
+
+ vbox->addWidget(m_red_shade);
+ vbox->addWidget(m_green_shade);
+ vbox->addWidget(m_blue_shade);
+ vbox->addWidget(m_alpha_shade);
+
+ connect(m_red_shade, SIGNAL(colorsChanged()), this, SLOT(pointsUpdated()));
+ connect(m_green_shade, SIGNAL(colorsChanged()), this, SLOT(pointsUpdated()));
+ connect(m_blue_shade, SIGNAL(colorsChanged()), this, SLOT(pointsUpdated()));
+ connect(m_alpha_shade, SIGNAL(colorsChanged()), this, SLOT(pointsUpdated()));
+}
+
+
+inline static bool x_less_than(const QPointF &p1, const QPointF &p2)
+{
+ return p1.x() < p2.x();
+}
+
+
+void GradientEditor::pointsUpdated()
+{
+ qreal w = m_alpha_shade->width();
+
+ QGradientStops stops;
+
+ QPolygonF points;
+
+ points += m_red_shade->points();
+ points += m_green_shade->points();
+ points += m_blue_shade->points();
+ points += m_alpha_shade->points();
+
+ qSort(points.begin(), points.end(), x_less_than);
+
+ for (int i=0; i<points.size(); ++i) {
+ qreal x = int(points.at(i).x());
+ if (i < points.size() - 1 && x == points.at(i+1).x())
+ continue;
+ QColor color((0x00ff0000 & m_red_shade->colorAt(int(x))) >> 16,
+ (0x0000ff00 & m_green_shade->colorAt(int(x))) >> 8,
+ (0x000000ff & m_blue_shade->colorAt(int(x))),
+ (0xff000000 & m_alpha_shade->colorAt(int(x))) >> 24);
+
+ if (x / w > 1)
+ return;
+
+ stops << QGradientStop(x / w, color);
+ }
+
+ m_alpha_shade->setGradientStops(stops);
+
+ emit gradientStopsChanged(stops);
+}
+
+
+static void set_shade_points(const QPolygonF &points, ShadeWidget *shade)
+{
+ shade->hoverPoints()->setPoints(points);
+ shade->hoverPoints()->setPointLock(0, HoverPoints::LockToLeft);
+ shade->hoverPoints()->setPointLock(points.size() - 1, HoverPoints::LockToRight);
+ shade->update();
+}
+
+void GradientEditor::setGradientStops(const QGradientStops &stops)
+{
+ QPolygonF pts_red, pts_green, pts_blue, pts_alpha;
+
+ qreal h_red = m_red_shade->height();
+ qreal h_green = m_green_shade->height();
+ qreal h_blue = m_blue_shade->height();
+ qreal h_alpha = m_alpha_shade->height();
+
+ for (int i=0; i<stops.size(); ++i) {
+ qreal pos = stops.at(i).first;
+ QRgb color = stops.at(i).second.rgba();
+ pts_red << QPointF(pos * m_red_shade->width(), h_red - qRed(color) * h_red / 255);
+ pts_green << QPointF(pos * m_green_shade->width(), h_green - qGreen(color) * h_green / 255);
+ pts_blue << QPointF(pos * m_blue_shade->width(), h_blue - qBlue(color) * h_blue / 255);
+ pts_alpha << QPointF(pos * m_alpha_shade->width(), h_alpha - qAlpha(color) * h_alpha / 255);
+ }
+
+ set_shade_points(pts_red, m_red_shade);
+ set_shade_points(pts_green, m_green_shade);
+ set_shade_points(pts_blue, m_blue_shade);
+ set_shade_points(pts_alpha, m_alpha_shade);
+
+}
+
+GradientWidget::GradientWidget(QWidget *parent)
+ : QWidget(parent)
+{
+ setWindowTitle(tr("Gradients"));
+
+ m_renderer = new GradientRenderer(this);
+
+ QGroupBox *mainGroup = new QGroupBox(this);
+ mainGroup->setTitle(tr("Gradients"));
+
+ QGroupBox *editorGroup = new QGroupBox(mainGroup);
+ editorGroup->setTitle(tr("Color Editor"));
+ m_editor = new GradientEditor(editorGroup);
+
+ QGroupBox *typeGroup = new QGroupBox(mainGroup);
+ typeGroup->setTitle(tr("Gradient Type"));
+ m_linearButton = new QRadioButton(tr("Linear Gradient"), typeGroup);
+ m_radialButton = new QRadioButton(tr("Radial Gradient"), typeGroup);
+ m_conicalButton = new QRadioButton(tr("Conical Gradient"), typeGroup);
+
+ QGroupBox *spreadGroup = new QGroupBox(mainGroup);
+ spreadGroup->setTitle(tr("Spread Method"));
+ m_padSpreadButton = new QRadioButton(tr("Pad Spread"), spreadGroup);
+ m_reflectSpreadButton = new QRadioButton(tr("Reflect Spread"), spreadGroup);
+ m_repeatSpreadButton = new QRadioButton(tr("Repeat Spread"), spreadGroup);
+
+ QGroupBox *defaultsGroup = new QGroupBox(mainGroup);
+ defaultsGroup->setTitle(tr("Defaults"));
+ QPushButton *default1Button = new QPushButton(tr("1"), defaultsGroup);
+ QPushButton *default2Button = new QPushButton(tr("2"), defaultsGroup);
+ QPushButton *default3Button = new QPushButton(tr("3"), defaultsGroup);
+ QPushButton *default4Button = new QPushButton(tr("Reset"), editorGroup);
+
+ QPushButton *showSourceButton = new QPushButton(mainGroup);
+ showSourceButton->setText(tr("Show Source"));
+#ifdef QT_OPENGL_SUPPORT
+ QPushButton *enableOpenGLButton = new QPushButton(mainGroup);
+ enableOpenGLButton->setText(tr("Use OpenGL"));
+ enableOpenGLButton->setCheckable(true);
+ enableOpenGLButton->setChecked(m_renderer->usesOpenGL());
+ if (!QGLFormat::hasOpenGL())
+ enableOpenGLButton->hide();
+#endif
+ QPushButton *whatsThisButton = new QPushButton(mainGroup);
+ whatsThisButton->setText(tr("What's This?"));
+ whatsThisButton->setCheckable(true);
+
+ // Layouts
+ QHBoxLayout *mainLayout = new QHBoxLayout(this);
+ mainLayout->addWidget(m_renderer);
+ mainLayout->addWidget(mainGroup);
+
+ mainGroup->setFixedWidth(180);
+ QVBoxLayout *mainGroupLayout = new QVBoxLayout(mainGroup);
+ mainGroupLayout->addWidget(editorGroup);
+ mainGroupLayout->addWidget(typeGroup);
+ mainGroupLayout->addWidget(spreadGroup);
+ mainGroupLayout->addWidget(defaultsGroup);
+ mainGroupLayout->addStretch(1);
+ mainGroupLayout->addWidget(showSourceButton);
+#ifdef QT_OPENGL_SUPPORT
+ mainGroupLayout->addWidget(enableOpenGLButton);
+#endif
+ mainGroupLayout->addWidget(whatsThisButton);
+
+ QVBoxLayout *editorGroupLayout = new QVBoxLayout(editorGroup);
+ editorGroupLayout->addWidget(m_editor);
+
+ QVBoxLayout *typeGroupLayout = new QVBoxLayout(typeGroup);
+ typeGroupLayout->addWidget(m_linearButton);
+ typeGroupLayout->addWidget(m_radialButton);
+ typeGroupLayout->addWidget(m_conicalButton);
+
+ QVBoxLayout *spreadGroupLayout = new QVBoxLayout(spreadGroup);
+ spreadGroupLayout->addWidget(m_padSpreadButton);
+ spreadGroupLayout->addWidget(m_repeatSpreadButton);
+ spreadGroupLayout->addWidget(m_reflectSpreadButton);
+
+ QHBoxLayout *defaultsGroupLayout = new QHBoxLayout(defaultsGroup);
+ defaultsGroupLayout->addWidget(default1Button);
+ defaultsGroupLayout->addWidget(default2Button);
+ defaultsGroupLayout->addWidget(default3Button);
+ editorGroupLayout->addWidget(default4Button);
+
+ connect(m_editor, SIGNAL(gradientStopsChanged(const QGradientStops &)),
+ m_renderer, SLOT(setGradientStops(const QGradientStops &)));
+
+ connect(m_linearButton, SIGNAL(clicked()), m_renderer, SLOT(setLinearGradient()));
+ connect(m_radialButton, SIGNAL(clicked()), m_renderer, SLOT(setRadialGradient()));
+ connect(m_conicalButton, SIGNAL(clicked()), m_renderer, SLOT(setConicalGradient()));
+
+ connect(m_padSpreadButton, SIGNAL(clicked()), m_renderer, SLOT(setPadSpread()));
+ connect(m_reflectSpreadButton, SIGNAL(clicked()), m_renderer, SLOT(setReflectSpread()));
+ connect(m_repeatSpreadButton, SIGNAL(clicked()), m_renderer, SLOT(setRepeatSpread()));
+
+ connect(default1Button, SIGNAL(clicked()), this, SLOT(setDefault1()));
+ connect(default2Button, SIGNAL(clicked()), this, SLOT(setDefault2()));
+ connect(default3Button, SIGNAL(clicked()), this, SLOT(setDefault3()));
+ connect(default4Button, SIGNAL(clicked()), this, SLOT(setDefault4()));
+
+ connect(showSourceButton, SIGNAL(clicked()), m_renderer, SLOT(showSource()));
+#ifdef QT_OPENGL_SUPPORT
+ connect(enableOpenGLButton, SIGNAL(clicked(bool)), m_renderer, SLOT(enableOpenGL(bool)));
+#endif
+ connect(whatsThisButton, SIGNAL(clicked(bool)), m_renderer, SLOT(setDescriptionEnabled(bool)));
+ connect(whatsThisButton, SIGNAL(clicked(bool)),
+ m_renderer->hoverPoints(), SLOT(setDisabled(bool)));
+ connect(m_renderer, SIGNAL(descriptionEnabledChanged(bool)),
+ whatsThisButton, SLOT(setChecked(bool)));
+ connect(m_renderer, SIGNAL(descriptionEnabledChanged(bool)),
+ m_renderer->hoverPoints(), SLOT(setDisabled(bool)));
+
+ m_renderer->loadSourceFile(":res/gradients/gradients.cpp");
+ m_renderer->loadDescription(":res/gradients/gradients.html");
+
+ QTimer::singleShot(50, this, SLOT(setDefault1()));
+}
+
+void GradientWidget::setDefault(int config)
+{
+ QGradientStops stops;
+ QPolygonF points;
+ switch (config) {
+ case 1:
+ stops << QGradientStop(0.00, QColor::fromRgba(0));
+ stops << QGradientStop(0.04, QColor::fromRgba(0xff131360));
+ stops << QGradientStop(0.08, QColor::fromRgba(0xff202ccc));
+ stops << QGradientStop(0.42, QColor::fromRgba(0xff93d3f9));
+ stops << QGradientStop(0.51, QColor::fromRgba(0xffb3e6ff));
+ stops << QGradientStop(0.73, QColor::fromRgba(0xffffffec));
+ stops << QGradientStop(0.92, QColor::fromRgba(0xff5353d9));
+ stops << QGradientStop(0.96, QColor::fromRgba(0xff262666));
+ stops << QGradientStop(1.00, QColor::fromRgba(0));
+ m_linearButton->animateClick();
+ m_repeatSpreadButton->animateClick();
+ break;
+
+ case 2:
+ stops << QGradientStop(0.00, QColor::fromRgba(0xffffffff));
+ stops << QGradientStop(0.11, QColor::fromRgba(0xfff9ffa0));
+ stops << QGradientStop(0.13, QColor::fromRgba(0xfff9ff99));
+ stops << QGradientStop(0.14, QColor::fromRgba(0xfff3ff86));
+ stops << QGradientStop(0.49, QColor::fromRgba(0xff93b353));
+ stops << QGradientStop(0.87, QColor::fromRgba(0xff264619));
+ stops << QGradientStop(0.96, QColor::fromRgba(0xff0c1306));
+ stops << QGradientStop(1.00, QColor::fromRgba(0));
+ m_radialButton->animateClick();
+ m_padSpreadButton->animateClick();
+ break;
+
+ case 3:
+ stops << QGradientStop(0.00, QColor::fromRgba(0));
+ stops << QGradientStop(0.10, QColor::fromRgba(0xffe0cc73));
+ stops << QGradientStop(0.17, QColor::fromRgba(0xffc6a006));
+ stops << QGradientStop(0.46, QColor::fromRgba(0xff600659));
+ stops << QGradientStop(0.72, QColor::fromRgba(0xff0680ac));
+ stops << QGradientStop(0.92, QColor::fromRgba(0xffb9d9e6));
+ stops << QGradientStop(1.00, QColor::fromRgba(0));
+ m_conicalButton->animateClick();
+ m_padSpreadButton->animateClick();
+ break;
+
+ case 4:
+ stops << QGradientStop(0.00, QColor::fromRgba(0xff000000));
+ stops << QGradientStop(1.00, QColor::fromRgba(0xffffffff));
+ break;
+
+ default:
+ qWarning("bad default: %d\n", config);
+ break;
+ }
+
+ QPolygonF pts;
+ int h_off = m_renderer->width() / 10;
+ int v_off = m_renderer->height() / 8;
+ pts << QPointF(m_renderer->width() / 2, m_renderer->height() / 2)
+ << QPointF(m_renderer->width() / 2 - h_off, m_renderer->height() / 2 - v_off);
+
+ m_editor->setGradientStops(stops);
+ m_renderer->hoverPoints()->setPoints(pts);
+ m_renderer->setGradientStops(stops);
+}
+
+
+GradientRenderer::GradientRenderer(QWidget *parent)
+ : ArthurFrame(parent)
+{
+ m_hoverPoints = new HoverPoints(this, HoverPoints::CircleShape);
+ m_hoverPoints->setPointSize(QSize(20, 20));
+ m_hoverPoints->setConnectionType(HoverPoints::NoConnection);
+ m_hoverPoints->setEditable(false);
+
+ QVector<QPointF> points;
+ points << QPointF(100, 100) << QPointF(200, 200);
+ m_hoverPoints->setPoints(points);
+
+ m_spread = QGradient::PadSpread;
+ m_gradientType = Qt::LinearGradientPattern;
+}
+
+void GradientRenderer::setGradientStops(const QGradientStops &stops)
+{
+ m_stops = stops;
+ update();
+}
+
+
+void GradientRenderer::mousePressEvent(QMouseEvent *)
+{
+ setDescriptionEnabled(false);
+}
+
+void GradientRenderer::paint(QPainter *p)
+{
+ QPolygonF pts = m_hoverPoints->points();
+
+ QGradient g;
+
+ if (m_gradientType == Qt::LinearGradientPattern) {
+ g = QLinearGradient(pts.at(0), pts.at(1));
+
+ } else if (m_gradientType == Qt::RadialGradientPattern) {
+ g = QRadialGradient(pts.at(0), qMin(width(), height()) / 3.0, pts.at(1));
+
+ } else {
+ QLineF l(pts.at(0), pts.at(1));
+ qreal angle = l.angle(QLineF(0, 0, 1, 0));
+ if (l.dy() > 0)
+ angle = 360 - angle;
+ g = QConicalGradient(pts.at(0), angle);
+ }
+
+ for (int i=0; i<m_stops.size(); ++i)
+ g.setColorAt(m_stops.at(i).first, m_stops.at(i).second);
+
+ g.setSpread(m_spread);
+
+ p->setBrush(g);
+ p->setPen(Qt::NoPen);
+
+ p->drawRect(rect());
+
+}
diff --git a/demos/gradients/gradients.h b/demos/gradients/gradients.h
new file mode 100644
index 0000000..74e8417
--- /dev/null
+++ b/demos/gradients/gradients.h
@@ -0,0 +1,170 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef GRADIENTS_H
+#define GRADIENTS_H
+
+#include "arthurwidgets.h"
+
+#include <QtGui>
+
+class HoverPoints;
+
+
+class ShadeWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ enum ShadeType {
+ RedShade,
+ GreenShade,
+ BlueShade,
+ ARGBShade
+ };
+
+ ShadeWidget(ShadeType type, QWidget *parent);
+
+ void setGradientStops(const QGradientStops &stops);
+
+ void paintEvent(QPaintEvent *e);
+
+ QSize sizeHint() const { return QSize(150, 40); }
+ QPolygonF points() const;
+
+ HoverPoints *hoverPoints() const { return m_hoverPoints; }
+
+ uint colorAt(int x);
+
+signals:
+ void colorsChanged();
+
+private:
+ void generateShade();
+
+ ShadeType m_shade_type;
+ QImage m_shade;
+ HoverPoints *m_hoverPoints;
+ QLinearGradient m_alpha_gradient;
+};
+
+class GradientEditor : public QWidget
+{
+ Q_OBJECT
+public:
+ GradientEditor(QWidget *parent);
+
+ void setGradientStops(const QGradientStops &stops);
+
+public slots:
+ void pointsUpdated();
+
+signals:
+ void gradientStopsChanged(const QGradientStops &stops);
+
+private:
+ ShadeWidget *m_red_shade;
+ ShadeWidget *m_green_shade;
+ ShadeWidget *m_blue_shade;
+ ShadeWidget *m_alpha_shade;
+};
+
+
+class GradientRenderer : public ArthurFrame
+{
+ Q_OBJECT
+public:
+ GradientRenderer(QWidget *parent);
+ void paint(QPainter *p);
+
+ QSize sizeHint() const { return QSize(400, 400); }
+
+ HoverPoints *hoverPoints() const { return m_hoverPoints; }
+ void mousePressEvent(QMouseEvent *e);
+
+public slots:
+ void setGradientStops(const QGradientStops &stops);
+
+ void setPadSpread() { m_spread = QGradient::PadSpread; update(); }
+ void setRepeatSpread() { m_spread = QGradient::RepeatSpread; update(); }
+ void setReflectSpread() { m_spread = QGradient::ReflectSpread; update(); }
+
+ void setLinearGradient() { m_gradientType = Qt::LinearGradientPattern; update(); }
+ void setRadialGradient() { m_gradientType = Qt::RadialGradientPattern; update(); }
+ void setConicalGradient() { m_gradientType = Qt::ConicalGradientPattern; update(); }
+
+
+private:
+ QGradientStops m_stops;
+ HoverPoints *m_hoverPoints;
+
+ QGradient::Spread m_spread;
+ Qt::BrushStyle m_gradientType;
+};
+
+
+class GradientWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ GradientWidget(QWidget *parent);
+
+public slots:
+ void setDefault1() { setDefault(1); }
+ void setDefault2() { setDefault(2); }
+ void setDefault3() { setDefault(3); }
+ void setDefault4() { setDefault(4); }
+
+private:
+ void setDefault(int i);
+
+ GradientRenderer *m_renderer;
+ GradientEditor *m_editor;
+
+ QRadioButton *m_linearButton;
+ QRadioButton *m_radialButton;
+ QRadioButton *m_conicalButton;
+ QRadioButton *m_padSpreadButton;
+ QRadioButton *m_reflectSpreadButton;
+ QRadioButton *m_repeatSpreadButton;
+
+};
+
+#endif // GRADIENTS_H
diff --git a/demos/gradients/gradients.html b/demos/gradients/gradients.html
new file mode 100644
index 0000000..1ea2c0e
--- /dev/null
+++ b/demos/gradients/gradients.html
@@ -0,0 +1,31 @@
+<html>
+<center>
+<h2>Gradients</h2>
+</center>
+
+<p>In this demo we show the various types of gradients that can
+be used in Qt.</p>
+
+<p>There are three types of gradients:
+
+<ul>
+ <li><b>Linear</b> gradients interpolate colors between start and end
+ points.</li>
+ <li><b>Radial</b> gradients interpolate colors between a focal point and the
+ points on a circle surrounding it.</li>
+ <li><b>Conical</b> gradients interpolate colors around a center point.</li>
+</ul>
+
+</p>
+
+<p>The panel on the right contains a color table editor that defines
+the colors in the gradient. The three topmost controls determine the red,
+green and blue components while the last defines the alpha of the
+gradient. You can move points, and add new ones, by clicking with the left
+mouse button, and remove points by clicking with the right button.</p>
+
+<p>There are three default configurations available at the bottom of
+the page that are provided as suggestions on how a color table could be
+configured.</p>
+
+</html>
diff --git a/demos/gradients/gradients.pro b/demos/gradients/gradients.pro
new file mode 100644
index 0000000..167572b
--- /dev/null
+++ b/demos/gradients/gradients.pro
@@ -0,0 +1,18 @@
+SOURCES += main.cpp gradients.cpp
+HEADERS += gradients.h
+
+SHARED_FOLDER = ../shared
+
+include($$SHARED_FOLDER/shared.pri)
+
+RESOURCES += gradients.qrc
+contains(QT_CONFIG, opengl) {
+ DEFINES += QT_OPENGL_SUPPORT
+ QT += opengl
+}
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/gradients
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html
+sources.path = $$[QT_INSTALL_DEMOS]/gradients
+INSTALLS += target sources
diff --git a/demos/gradients/gradients.qrc b/demos/gradients/gradients.qrc
new file mode 100644
index 0000000..fb971eb
--- /dev/null
+++ b/demos/gradients/gradients.qrc
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/res/gradients">
+ <file>gradients.cpp</file>
+ <file>gradients.html</file>
+</qresource>
+</RCC>
diff --git a/demos/gradients/main.cpp b/demos/gradients/main.cpp
new file mode 100644
index 0000000..f880510
--- /dev/null
+++ b/demos/gradients/main.cpp
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "gradients.h"
+
+#include <QApplication>
+
+int main(int argc, char **argv)
+{
+ Q_INIT_RESOURCE(gradients);
+
+ QApplication app(argc, argv);
+
+ GradientWidget gradientWidget(0);
+ QStyle *arthurStyle = new ArthurStyle();
+ gradientWidget.setStyle(arthurStyle);
+ QList<QWidget *> widgets = qFindChildren<QWidget *>(&gradientWidget);
+ foreach (QWidget *w, widgets)
+ w->setStyle(arthurStyle);
+ gradientWidget.show();
+
+ return app.exec();
+}
diff --git a/demos/interview/README b/demos/interview/README
new file mode 100644
index 0000000..5089442
--- /dev/null
+++ b/demos/interview/README
@@ -0,0 +1,2 @@
+The interview example shows the same model and selection being shared
+between three different views.
diff --git a/demos/interview/images/folder.png b/demos/interview/images/folder.png
new file mode 100644
index 0000000..589fd2d
--- /dev/null
+++ b/demos/interview/images/folder.png
Binary files differ
diff --git a/demos/interview/images/interview.png b/demos/interview/images/interview.png
new file mode 100644
index 0000000..0c3d690
--- /dev/null
+++ b/demos/interview/images/interview.png
Binary files differ
diff --git a/demos/interview/images/services.png b/demos/interview/images/services.png
new file mode 100644
index 0000000..6b2ad96
--- /dev/null
+++ b/demos/interview/images/services.png
Binary files differ
diff --git a/demos/interview/interview.pro b/demos/interview/interview.pro
new file mode 100644
index 0000000..c013755
--- /dev/null
+++ b/demos/interview/interview.pro
@@ -0,0 +1,18 @@
+TEMPLATE = app
+
+CONFIG += qt warn_on
+HEADERS += model.h
+SOURCES += model.cpp main.cpp
+RESOURCES += interview.qrc
+
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/interview
+sources.files = $$SOURCES $$HEADERS $$RESOURCES README *.pro images
+sources.path = $$[QT_INSTALL_DEMOS]/interview
+INSTALLS += target sources
+
diff --git a/demos/interview/interview.qrc b/demos/interview/interview.qrc
new file mode 100644
index 0000000..b28ea34
--- /dev/null
+++ b/demos/interview/interview.qrc
@@ -0,0 +1,7 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/">
+ <file>images/folder.png</file>
+ <file>images/services.png</file>
+ <file>images/interview.png</file>
+</qresource>
+</RCC>
diff --git a/demos/interview/main.cpp b/demos/interview/main.cpp
new file mode 100644
index 0000000..9682322
--- /dev/null
+++ b/demos/interview/main.cpp
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "model.h"
+
+#include <QApplication>
+#include <QTableView>
+#include <QTreeView>
+#include <QListView>
+#include <QSplitter>
+#include <QHeaderView>
+
+int main(int argc, char *argv[])
+{
+ Q_INIT_RESOURCE(interview);
+
+ QApplication app(argc, argv);
+ QSplitter page;
+
+ QAbstractItemModel *data = new Model(1000, 10, &page);
+ QItemSelectionModel *selections = new QItemSelectionModel(data);
+
+ QTableView *table = new QTableView;
+ table->setModel(data);
+ table->setSelectionModel(selections);
+ table->horizontalHeader()->setMovable(true);
+ table->verticalHeader()->setMovable(true);
+ // Set StaticContents to enable minimal repaints on resizes.
+ table->viewport()->setAttribute(Qt::WA_StaticContents);
+ page.addWidget(table);
+
+ QTreeView *tree = new QTreeView;
+ tree->setModel(data);
+ tree->setSelectionModel(selections);
+ tree->setUniformRowHeights(true);
+ tree->header()->setStretchLastSection(false);
+ tree->viewport()->setAttribute(Qt::WA_StaticContents);
+ // Disable the focus rect to get minimal repaints when scrolling on Mac.
+ tree->setAttribute(Qt::WA_MacShowFocusRect, false);
+ page.addWidget(tree);
+
+ QListView *list = new QListView;
+ list->setModel(data);
+ list->setSelectionModel(selections);
+ list->setViewMode(QListView::IconMode);
+ list->setSelectionMode(QAbstractItemView::ExtendedSelection);
+ list->setAlternatingRowColors(false);
+ list->viewport()->setAttribute(Qt::WA_StaticContents);
+ list->setAttribute(Qt::WA_MacShowFocusRect, false);
+ page.addWidget(list);
+
+ page.setWindowIcon(QPixmap(":/images/interview.png"));
+ page.setWindowTitle("Interview");
+ page.show();
+
+ return app.exec();
+}
diff --git a/demos/interview/model.cpp b/demos/interview/model.cpp
new file mode 100644
index 0000000..1d5040c
--- /dev/null
+++ b/demos/interview/model.cpp
@@ -0,0 +1,147 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "model.h"
+#include <QIcon>
+#include <QPixmap>
+
+Model::Model(int rows, int columns, QObject *parent)
+ : QAbstractItemModel(parent),
+ rc(rows), cc(columns),
+ tree(new QVector<Node>(rows, Node(0)))
+{
+
+}
+
+Model::~Model()
+{
+ delete tree;
+}
+
+QModelIndex Model::index(int row, int column, const QModelIndex &parent) const
+{
+ if (row < rc && row >= 0 && column < cc && column >= 0) {
+ Node *p = static_cast<Node*>(parent.internalPointer());
+ Node *n = node(row, p);
+ if (n)
+ return createIndex(row, column, n);
+ }
+ return QModelIndex();
+}
+
+QModelIndex Model::parent(const QModelIndex &child) const
+{
+ if (child.isValid()) {
+ Node *n = static_cast<Node*>(child.internalPointer());
+ Node *p = parent(n);
+ if (p)
+ return createIndex(row(p), 0, p);
+ }
+ return QModelIndex();
+}
+
+int Model::rowCount(const QModelIndex &parent) const
+{
+ return (parent.isValid() && parent.column() != 0) ? 0 : rc;
+}
+
+int Model::columnCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+ return cc;
+}
+
+QVariant Model::data(const QModelIndex &index, int role) const
+{
+ if (!index.isValid())
+ return QVariant();
+ if (role == Qt::DisplayRole)
+ return "Item " + QString::number(index.row()) + ":" + QString::number(index.column());
+ if (role == Qt::DecorationRole) {
+ if (index.column() == 0)
+ return iconProvider.icon(QFileIconProvider::Folder);
+ return iconProvider.icon(QFileIconProvider::File);
+ }
+ return QVariant();
+}
+
+QVariant Model::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ static QIcon services(QPixmap(":/images/services.png"));
+ if (role == Qt::DisplayRole)
+ return QString::number(section);
+ if (role == Qt::DecorationRole)
+ return qVariantFromValue(services);
+ return QAbstractItemModel::headerData(section, orientation, role);
+}
+
+bool Model::hasChildren(const QModelIndex &parent) const
+{
+ if (parent.isValid() && parent.column() != 0)
+ return false;
+ return rc > 0 && cc > 0;
+}
+
+Qt::ItemFlags Model::flags(const QModelIndex &index) const
+{
+ if (!index.isValid())
+ return 0;
+ return (Qt::ItemIsDragEnabled|Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+}
+
+Model::Node *Model::node(int row, Node *parent) const
+{
+ if (parent && !parent->children)
+ parent->children = new QVector<Node>(rc, Node(parent));
+ QVector<Node> *v = parent ? parent->children : tree;
+ return const_cast<Node*>(&(v->at(row)));
+}
+
+Model::Node *Model::parent(Node *child) const
+{
+ return child ? child->parent : 0;
+}
+
+int Model::row(Node *node) const
+{
+ const Node *first = node->parent ? &(node->parent->children->at(0)) : &(tree->at(0));
+ return (node - first);
+}
diff --git a/demos/interview/model.h b/demos/interview/model.h
new file mode 100644
index 0000000..96e6aea
--- /dev/null
+++ b/demos/interview/model.h
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MODEL_H
+#define MODEL_H
+
+#include <QAbstractItemModel>
+#include <QFileIconProvider>
+#include <QVector>
+
+class Model : public QAbstractItemModel
+{
+ Q_OBJECT
+
+public:
+ Model(int rows, int columns, QObject *parent = 0);
+ ~Model();
+
+ QModelIndex index(int row, int column, const QModelIndex &parent) const;
+ QModelIndex parent(const QModelIndex &child) const;
+
+ int rowCount(const QModelIndex &parent) const;
+ int columnCount(const QModelIndex &parent) const;
+
+ QVariant data(const QModelIndex &index, int role) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+
+ bool hasChildren(const QModelIndex &parent) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+
+private:
+
+ struct Node
+ {
+ Node(Node *parent = 0) : parent(parent), children(0) {}
+ ~Node() { delete children; }
+ Node *parent;
+ QVector<Node> *children;
+ };
+
+ Node *node(int row, Node *parent) const;
+ Node *parent(Node *child) const;
+ int row(Node *node) const;
+
+ int rc, cc;
+ QVector<Node> *tree;
+ QFileIconProvider iconProvider;
+};
+
+#endif
diff --git a/demos/macmainwindow/macmainwindow.h b/demos/macmainwindow/macmainwindow.h
new file mode 100644
index 0000000..b5e4740
--- /dev/null
+++ b/demos/macmainwindow/macmainwindow.h
@@ -0,0 +1,137 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef MACMAINWINDOW_H
+#define MACMAINWINDOW_H
+
+#include <QtGui>
+
+#ifdef Q_WS_MAC
+
+#import <qmaccocoaviewcontainer_mac.h>
+
+#ifdef QT_MAC_USE_COCOA
+class SearchWidget : public QMacCocoaViewContainer
+{
+ Q_OBJECT
+public:
+ SearchWidget(QWidget *parent = 0);
+ ~SearchWidget();
+
+ QSize sizeHint() const;
+private:
+};
+
+#else
+#include <Carbon/Carbon.h>
+
+// The SearchWidget class wraps a native HISearchField.
+class SearchWidget : public QWidget
+{
+ Q_OBJECT
+private:
+ HIViewRef searchField;
+ CFStringRef searchFieldText;
+
+public:
+ QSize sizeHint() const;
+ SearchWidget(QWidget *parent = 0);
+ ~SearchWidget();
+};
+
+#endif
+
+QMenu *createMenu(QWidget *parent);
+
+class SearchWrapper : public QWidget
+{
+Q_OBJECT
+public:
+ SearchWrapper(QWidget *parent = 0);
+ QSize sizeHint() const;
+ QWidget *s;
+};
+
+class Spacer : public QWidget
+{
+Q_OBJECT
+public:
+ Spacer(QWidget *parent = 0);
+ QSize sizeHint() const;
+};
+
+class MacSplitterHandle : public QSplitterHandle
+{
+Q_OBJECT
+public:
+ MacSplitterHandle(Qt::Orientation orientation, QSplitter *parent);
+ void paintEvent(QPaintEvent *);
+ QSize sizeHint() const;
+};
+
+class MacSplitter : public QSplitter
+{
+public:
+ QSplitterHandle *createHandle();
+};
+
+class MacMainWindow : public QMainWindow
+{
+Q_OBJECT
+public:
+ MacMainWindow();
+ ~MacMainWindow();
+ QAbstractItemModel *createItemModel();
+ void resizeEvent(QResizeEvent *e);
+ QAbstractItemModel *createDocumentModel();
+public:
+ QSplitter *splitter;
+ QSplitter *horizontalSplitter;
+ QTreeView *sidebar;
+ QListView *documents;
+ QTextEdit *textedit;
+ QVBoxLayout *layout;
+ SearchWidget *searchWidget;
+ QToolBar * toolBar;
+};
+
+#endif // Q_WS_MAC
+
+#endif //MACMAINWINDOW_H
diff --git a/demos/macmainwindow/macmainwindow.mm b/demos/macmainwindow/macmainwindow.mm
new file mode 100644
index 0000000..156e793
--- /dev/null
+++ b/demos/macmainwindow/macmainwindow.mm
@@ -0,0 +1,347 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "macmainwindow.h"
+#import <Cocoa/Cocoa.h>
+#include <QtGui>
+
+
+#ifdef Q_WS_MAC
+
+#include <Carbon/Carbon.h>
+
+#ifdef QT_MAC_USE_COCOA
+
+//![0]
+SearchWidget::SearchWidget(QWidget *parent)
+ : QMacCocoaViewContainer(0, parent)
+{
+ // Many Cocoa objects create temporary autorelease objects,
+ // so create a pool to catch them.
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
+ // Create the NSSearchField, set it on the QCocoaViewContainer.
+ NSSearchField *search = [[NSSearchField alloc] init];
+ setCocoaView(search);
+
+ // Use a Qt menu for the search field menu.
+ QMenu *qtMenu = createMenu(this);
+ NSMenu *nsMenu = qtMenu->macMenu(0);
+ [[search cell] setSearchMenuTemplate:nsMenu];
+
+ // Release our reference, since our super class takes ownership and we
+ // don't need it anymore.
+ [search release];
+
+ // Clean up our pool as we no longer need it.
+ [pool release];
+}
+//![0]
+
+SearchWidget::~SearchWidget()
+{
+}
+
+QSize SearchWidget::sizeHint() const
+{
+ return QSize(150, 40);
+}
+
+#else
+
+// The SearchWidget class wraps a native HISearchField.
+SearchWidget::SearchWidget(QWidget *parent)
+ :QWidget(parent)
+{
+
+ // Create a native search field and pass its window id to QWidget::create.
+ searchFieldText = CFStringCreateWithCString(0, "search", 0);
+ HISearchFieldCreate(NULL/*bounds*/, kHISearchFieldAttributesSearchIcon | kHISearchFieldAttributesCancel,
+ NULL/*menu ref*/, searchFieldText, &searchField);
+ create(reinterpret_cast<WId>(searchField));
+
+ // Use a Qt menu for the search field menu.
+ QMenu *searchMenu = createMenu(this);
+ MenuRef menuRef = searchMenu->macMenu(0);
+ HISearchFieldSetSearchMenu(searchField, menuRef);
+ setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+}
+
+SearchWidget::~SearchWidget()
+{
+ CFRelease(searchField);
+ CFRelease(searchFieldText);
+}
+
+// Get the size hint from the search field.
+QSize SearchWidget::sizeHint() const
+{
+ EventRef event;
+ HIRect optimalBounds;
+ CreateEvent(0, kEventClassControl,
+ kEventControlGetOptimalBounds,
+ GetCurrentEventTime(),
+ kEventAttributeUserEvent, &event);
+
+ SendEventToEventTargetWithOptions(event,
+ HIObjectGetEventTarget(HIObjectRef(winId())),
+ kEventTargetDontPropagate);
+
+ GetEventParameter(event,
+ kEventParamControlOptimalBounds, typeHIRect,
+ 0, sizeof(HIRect), 0, &optimalBounds);
+
+ ReleaseEvent(event);
+ return QSize(optimalBounds.size.width + 100, // make it a bit wider.
+ optimalBounds.size.height);
+}
+
+#endif
+
+QMenu *createMenu(QWidget *parent)
+{
+ QMenu *searchMenu = new QMenu(parent);
+
+ QAction * indexAction = searchMenu->addAction("Index Search");
+ indexAction->setCheckable(true);
+ indexAction->setChecked(true);
+
+ QAction * fulltextAction = searchMenu->addAction("Full Text Search");
+ fulltextAction->setCheckable(true);
+
+ QActionGroup *searchActionGroup = new QActionGroup(parent);
+ searchActionGroup->addAction(indexAction);
+ searchActionGroup->addAction(fulltextAction);
+ searchActionGroup->setExclusive(true);
+
+ return searchMenu;
+}
+
+SearchWrapper::SearchWrapper(QWidget *parent)
+:QWidget(parent)
+{
+ s = new SearchWidget(this);
+ s->move(2,2);
+ setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+}
+
+QSize SearchWrapper::sizeHint() const
+{
+ return s->sizeHint() + QSize(6, 2);
+}
+
+Spacer::Spacer(QWidget *parent)
+:QWidget(parent)
+{
+ QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ setSizePolicy(sizePolicy);
+}
+
+QSize Spacer::sizeHint() const
+{
+ return QSize(1, 1);
+}
+
+MacSplitterHandle::MacSplitterHandle(Qt::Orientation orientation, QSplitter *parent)
+: QSplitterHandle(orientation, parent) { }
+
+// Paint the horizontal handle as a gradient, paint
+// the vertical handle as a line.
+void MacSplitterHandle::paintEvent(QPaintEvent *)
+{
+ QPainter painter(this);
+
+ QColor topColor(145, 145, 145);
+ QColor bottomColor(142, 142, 142);
+ QColor gradientStart(252, 252, 252);
+ QColor gradientStop(223, 223, 223);
+
+ if (orientation() == Qt::Vertical) {
+ painter.setPen(topColor);
+ painter.drawLine(0, 0, width(), 0);
+ painter.setPen(bottomColor);
+ painter.drawLine(0, height() - 1, width(), height() - 1);
+
+ QLinearGradient linearGrad(QPointF(0, 0), QPointF(0, height() -3));
+ linearGrad.setColorAt(0, gradientStart);
+ linearGrad.setColorAt(1, gradientStop);
+ painter.fillRect(QRect(QPoint(0,1), size() - QSize(0, 2)), QBrush(linearGrad));
+ } else {
+ painter.setPen(topColor);
+ painter.drawLine(0, 0, 0, height());
+ }
+}
+
+QSize MacSplitterHandle::sizeHint() const
+{
+ QSize parent = QSplitterHandle::sizeHint();
+ if (orientation() == Qt::Vertical) {
+ return parent + QSize(0, 3);
+ } else {
+ return QSize(1, parent.height());
+ }
+}
+
+QSplitterHandle *MacSplitter::createHandle()
+{
+ return new MacSplitterHandle(orientation(), this);
+}
+
+MacMainWindow::MacMainWindow()
+{
+ QSettings settings;
+ restoreGeometry(settings.value("Geometry").toByteArray());
+
+ setWindowTitle("Mac Main Window");
+
+ splitter = new MacSplitter();
+
+ // Set up the left-hand side blue side bar.
+ sidebar = new QTreeView();
+ sidebar->setFrameStyle(QFrame::NoFrame);
+ sidebar->setAttribute(Qt::WA_MacShowFocusRect, false);
+ sidebar->setAutoFillBackground(true);
+
+ // Set the palette.
+ QPalette palette = sidebar->palette();
+ QColor macSidebarColor(231, 237, 246);
+ QColor macSidebarHighlightColor(168, 183, 205);
+ palette.setColor(QPalette::Base, macSidebarColor);
+ palette.setColor(QPalette::Highlight, macSidebarHighlightColor);
+ sidebar->setPalette(palette);
+
+ sidebar->setModel(createItemModel());
+ sidebar->header()->hide();
+ sidebar->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ sidebar->setTextElideMode(Qt::ElideMiddle);
+
+ splitter->addWidget(sidebar);
+
+ horizontalSplitter = new MacSplitter();
+ horizontalSplitter->setOrientation(Qt::Vertical);
+ splitter->addWidget(horizontalSplitter);
+
+ splitter->setStretchFactor(0, 0);
+ splitter->setStretchFactor(1, 1);
+
+ // Set up the top document list view.
+ documents = new QListView();
+ documents->setFrameStyle(QFrame::NoFrame);
+ documents->setAttribute(Qt::WA_MacShowFocusRect, false);
+ documents->setModel(createDocumentModel());
+ documents->setAlternatingRowColors(true);
+ documents->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
+ horizontalSplitter->addWidget(documents);
+ horizontalSplitter->setStretchFactor(0, 0);
+
+ // Set up the text view.
+ textedit = new QTextEdit();
+ textedit->setFrameStyle(QFrame::NoFrame);
+ textedit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
+ textedit->setText("<br><br><br><br><br><br><center><b>This demo shows how to create a \
+ Qt main window application that has the same appearance as other \
+ Mac OS X applications such as Mail or iTunes. This includes \
+ customizing the item views and QSplitter and wrapping native widgets \
+ such as the search field.</b></center>");
+
+ horizontalSplitter->addWidget(textedit);
+
+ setCentralWidget(splitter);
+
+ toolBar = addToolBar(tr("Search"));
+ toolBar->addWidget(new Spacer());
+ toolBar->addWidget(new SearchWrapper());
+
+ setUnifiedTitleAndToolBarOnMac(true);
+}
+
+MacMainWindow::~MacMainWindow()
+{
+ QSettings settings;
+ settings.setValue("Geometry", saveGeometry());
+}
+
+QAbstractItemModel *MacMainWindow::createItemModel()
+{
+ QStandardItemModel *model = new QStandardItemModel();
+ QStandardItem *parentItem = model->invisibleRootItem();
+
+ QStandardItem *documentationItem = new QStandardItem("Documentation");
+ parentItem->appendRow(documentationItem);
+
+ QStandardItem *assistantItem = new QStandardItem("Qt MainWindow Manual");
+ documentationItem->appendRow(assistantItem);
+
+ QStandardItem *designerItem = new QStandardItem("Qt Designer Manual");
+ documentationItem->appendRow(designerItem);
+
+ QStandardItem *qtItem = new QStandardItem("Qt Reference Documentation");
+ qtItem->appendRow(new QStandardItem("Classes"));
+ qtItem->appendRow(new QStandardItem("Overviews"));
+ qtItem->appendRow(new QStandardItem("Tutorial & Examples"));
+ documentationItem->appendRow(qtItem);
+
+ QStandardItem *bookmarksItem = new QStandardItem("Bookmarks");
+ parentItem->appendRow(bookmarksItem);
+ bookmarksItem->appendRow(new QStandardItem("QWidget"));
+ bookmarksItem->appendRow(new QStandardItem("QObject"));
+ bookmarksItem->appendRow(new QStandardItem("QWizard"));
+
+ return model;
+}
+
+void MacMainWindow::resizeEvent(QResizeEvent *)
+{
+ if (toolBar)
+ toolBar->updateGeometry();
+}
+
+QAbstractItemModel *MacMainWindow::createDocumentModel()
+{
+ QStandardItemModel *model = new QStandardItemModel();
+ QStandardItem *parentItem = model->invisibleRootItem();
+ parentItem->appendRow(new QStandardItem("QWidget Class Reference"));
+ parentItem->appendRow(new QStandardItem("QObject Class Reference"));
+ parentItem->appendRow(new QStandardItem("QListView Class Reference"));
+
+ return model;
+}
+
+#endif // Q_WS_MAC
diff --git a/demos/macmainwindow/macmainwindow.pro b/demos/macmainwindow/macmainwindow.pro
new file mode 100644
index 0000000..f5165a7
--- /dev/null
+++ b/demos/macmainwindow/macmainwindow.pro
@@ -0,0 +1,23 @@
+TEMPLATE = app
+TARGET = macmainwindow
+
+CONFIG += qt warn_on console
+
+OBJECTIVE_SOURCES += macmainwindow.mm
+SOURCES += main.cpp
+HEADERS += macmainwindow.h
+
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+
+LIBS += -framework Cocoa
+
+# install
+mac {
+target.path = $$[QT_INSTALL_DEMOS]/macmainwindow
+sources.files = $$SOURCES *.pro *.html
+sources.path = $$[QT_INSTALL_DEMOS]/macmainwindow
+INSTALLS += target sources
+}
diff --git a/demos/macmainwindow/main.cpp b/demos/macmainwindow/main.cpp
new file mode 100644
index 0000000..2b01cfe
--- /dev/null
+++ b/demos/macmainwindow/main.cpp
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+#include "macmainwindow.h"
+
+#ifdef Q_WS_MAC
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+ MacMainWindow mainWindow;
+ mainWindow.show();
+ return app.exec();
+}
+
+#else
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+ QLabel label;
+ label.resize(300, 200);
+ label.setText(" This demo requires Mac OS X.");
+ label.show();
+ return app.exec();
+}
+
+#endif
diff --git a/demos/mainwindow/colorswatch.cpp b/demos/mainwindow/colorswatch.cpp
new file mode 100644
index 0000000..ba6a076
--- /dev/null
+++ b/demos/mainwindow/colorswatch.cpp
@@ -0,0 +1,746 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "colorswatch.h"
+
+#include <QAction>
+#include <QtEvents>
+#include <QFrame>
+#include <QMainWindow>
+#include <QMenu>
+#include <QPainter>
+#include <QImage>
+#include <QColor>
+#include <QDialog>
+#include <QGridLayout>
+#include <QSpinBox>
+#include <QLabel>
+#include <QPainterPath>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QBitmap>
+#include <QtDebug>
+
+#undef DEBUG_SIZEHINTS
+
+QColor bgColorForName(const QString &name)
+{
+ if (name == "Black")
+ return QColor("#D8D8D8");
+ else if (name == "White")
+ return QColor("#F1F1F1");
+ else if (name == "Red")
+ return QColor("#F1D8D8");
+ else if (name == "Green")
+ return QColor("#D8E4D8");
+ else if (name == "Blue")
+ return QColor("#D8D8F1");
+ else if (name == "Yellow")
+ return QColor("#F1F0D8");
+ return QColor(name).light(110);
+}
+
+QColor fgColorForName(const QString &name)
+{
+ if (name == "Black")
+ return QColor("#6C6C6C");
+ else if (name == "White")
+ return QColor("#F8F8F8");
+ else if (name == "Red")
+ return QColor("#F86C6C");
+ else if (name == "Green")
+ return QColor("#6CB26C");
+ else if (name == "Blue")
+ return QColor("#6C6CF8");
+ else if (name == "Yellow")
+ return QColor("#F8F76C");
+ return QColor(name);
+}
+
+class ColorDock : public QFrame
+{
+ Q_OBJECT
+public:
+ ColorDock(const QString &c, QWidget *parent);
+
+ virtual QSize sizeHint() const;
+ virtual QSize minimumSizeHint() const;
+
+ void setCustomSizeHint(const QSize &size);
+
+public slots:
+ void changeSizeHints();
+
+protected:
+ void paintEvent(QPaintEvent *);
+ QString color;
+ QSize szHint, minSzHint;
+};
+
+ColorDock::ColorDock(const QString &c, QWidget *parent)
+ : QFrame(parent) , color(c)
+{
+ QFont font = this->font();
+ font.setPointSize(8);
+ setFont(font);
+ szHint = QSize(-1, -1);
+ minSzHint = QSize(125, 75);
+}
+
+QSize ColorDock::sizeHint() const
+{
+ return szHint;
+}
+
+QSize ColorDock::minimumSizeHint() const
+{
+ return minSzHint;
+}
+
+void ColorDock::paintEvent(QPaintEvent *)
+{
+ QPainter p(this);
+ p.setRenderHint(QPainter::Antialiasing);
+ p.fillRect(rect(), bgColorForName(color));
+
+ p.save();
+
+ extern void render_qt_text(QPainter *, int, int, const QColor &);
+ render_qt_text(&p, width(), height(), fgColorForName(color));
+
+ p.restore();
+
+#ifdef DEBUG_SIZEHINTS
+ p.setRenderHint(QPainter::Antialiasing, false);
+
+ QSize sz = size();
+ QSize szHint = sizeHint();
+ QSize minSzHint = minimumSizeHint();
+ QSize maxSz = maximumSize();
+ QString text = QString::fromLatin1("sz: %1x%2\nszHint: %3x%4\nminSzHint: %5x%6\n"
+ "maxSz: %8x%9")
+ .arg(sz.width()).arg(sz.height())
+ .arg(szHint.width()).arg(szHint.height())
+ .arg(minSzHint.width()).arg(minSzHint.height())
+ .arg(maxSz.width()).arg(maxSz.height());
+
+ QRect r = fontMetrics().boundingRect(rect(), Qt::AlignLeft|Qt::AlignTop, text);
+ r.adjust(-2, -2, 1, 1);
+ p.translate(4, 4);
+ QColor bg = Qt::yellow;
+ bg.setAlpha(120);
+ p.setBrush(bg);
+ p.setPen(Qt::black);
+ p.drawRect(r);
+ p.drawText(rect(), Qt::AlignLeft|Qt::AlignTop, text);
+#endif // DEBUG_SIZEHINTS
+}
+
+static QSpinBox *createSpinBox(int value, QWidget *parent, int max = 1000)
+{
+ QSpinBox *result = new QSpinBox(parent);
+ result->setMinimum(-1);
+ result->setMaximum(max);
+ result->setValue(value);
+ return result;
+}
+
+void ColorDock::changeSizeHints()
+{
+ QDialog dialog(this);
+ dialog.setWindowTitle(color);
+
+ QVBoxLayout *topLayout = new QVBoxLayout(&dialog);
+
+ QGridLayout *inputLayout = new QGridLayout();
+ topLayout->addLayout(inputLayout);
+
+ inputLayout->addWidget(new QLabel(tr("Size Hint:"), &dialog), 0, 0);
+ inputLayout->addWidget(new QLabel(tr("Min Size Hint:"), &dialog), 1, 0);
+ inputLayout->addWidget(new QLabel(tr("Max Size:"), &dialog), 2, 0);
+ inputLayout->addWidget(new QLabel(tr("Dockwgt Max Size:"), &dialog), 3, 0);
+
+ QSpinBox *szHintW = createSpinBox(szHint.width(), &dialog);
+ inputLayout->addWidget(szHintW, 0, 1);
+ QSpinBox *szHintH = createSpinBox(szHint.height(), &dialog);
+ inputLayout->addWidget(szHintH, 0, 2);
+
+ QSpinBox *minSzHintW = createSpinBox(minSzHint.width(), &dialog);
+ inputLayout->addWidget(minSzHintW, 1, 1);
+ QSpinBox *minSzHintH = createSpinBox(minSzHint.height(), &dialog);
+ inputLayout->addWidget(minSzHintH, 1, 2);
+
+ QSize maxSz = maximumSize();
+ QSpinBox *maxSzW = createSpinBox(maxSz.width(), &dialog, QWIDGETSIZE_MAX);
+ inputLayout->addWidget(maxSzW, 2, 1);
+ QSpinBox *maxSzH = createSpinBox(maxSz.height(), &dialog, QWIDGETSIZE_MAX);
+ inputLayout->addWidget(maxSzH, 2, 2);
+
+ QSize dwMaxSz = parentWidget()->maximumSize();
+ QSpinBox *dwMaxSzW = createSpinBox(dwMaxSz.width(), &dialog, QWIDGETSIZE_MAX);
+ inputLayout->addWidget(dwMaxSzW, 3, 1);
+ QSpinBox *dwMaxSzH = createSpinBox(dwMaxSz.height(), &dialog, QWIDGETSIZE_MAX);
+ inputLayout->addWidget(dwMaxSzH, 3, 2);
+
+ inputLayout->setColumnStretch(1, 1);
+ inputLayout->setColumnStretch(2, 1);
+
+ topLayout->addStretch();
+
+ QHBoxLayout *buttonBox = new QHBoxLayout();
+ topLayout->addLayout(buttonBox);
+
+ QPushButton *okButton = new QPushButton(tr("Ok"), &dialog);
+ QPushButton *cancelButton = new QPushButton(tr("Cancel"), &dialog);
+ connect(okButton, SIGNAL(clicked()), &dialog, SLOT(accept()));
+ connect(cancelButton, SIGNAL(clicked()), &dialog, SLOT(reject()));
+ buttonBox->addStretch();
+ buttonBox->addWidget(cancelButton);
+ buttonBox->addWidget(okButton);
+
+
+ if (!dialog.exec())
+ return;
+
+ szHint = QSize(szHintW->value(), szHintH->value());
+ minSzHint = QSize(minSzHintW->value(), minSzHintH->value());
+ maxSz = QSize(maxSzW->value(), maxSzH->value());
+ setMaximumSize(maxSz);
+ dwMaxSz = QSize(dwMaxSzW->value(), dwMaxSzH->value());
+ parentWidget()->setMaximumSize(dwMaxSz);
+ updateGeometry();
+ update();
+}
+
+void ColorDock::setCustomSizeHint(const QSize &size)
+{
+ szHint = size;
+ updateGeometry();
+}
+
+ColorSwatch::ColorSwatch(const QString &colorName, QWidget *parent, Qt::WindowFlags flags)
+ : QDockWidget(parent, flags)
+{
+ setObjectName(colorName + QLatin1String(" Dock Widget"));
+ setWindowTitle(objectName() + QLatin1String(" [*]"));
+
+ QFrame *swatch = new ColorDock(colorName, this);
+ swatch->setFrameStyle(QFrame::Box | QFrame::Sunken);
+
+ setWidget(swatch);
+
+ changeSizeHintsAction = new QAction(tr("Change Size Hints"), this);
+ connect(changeSizeHintsAction, SIGNAL(triggered()), swatch, SLOT(changeSizeHints()));
+
+ closableAction = new QAction(tr("Closable"), this);
+ closableAction->setCheckable(true);
+ connect(closableAction, SIGNAL(triggered(bool)), SLOT(changeClosable(bool)));
+
+ movableAction = new QAction(tr("Movable"), this);
+ movableAction->setCheckable(true);
+ connect(movableAction, SIGNAL(triggered(bool)), SLOT(changeMovable(bool)));
+
+ floatableAction = new QAction(tr("Floatable"), this);
+ floatableAction->setCheckable(true);
+ connect(floatableAction, SIGNAL(triggered(bool)), SLOT(changeFloatable(bool)));
+
+ verticalTitleBarAction = new QAction(tr("Vertical title bar"), this);
+ verticalTitleBarAction->setCheckable(true);
+ connect(verticalTitleBarAction, SIGNAL(triggered(bool)),
+ SLOT(changeVerticalTitleBar(bool)));
+
+ floatingAction = new QAction(tr("Floating"), this);
+ floatingAction->setCheckable(true);
+ connect(floatingAction, SIGNAL(triggered(bool)), SLOT(changeFloating(bool)));
+
+ allowedAreasActions = new QActionGroup(this);
+ allowedAreasActions->setExclusive(false);
+
+ allowLeftAction = new QAction(tr("Allow on Left"), this);
+ allowLeftAction->setCheckable(true);
+ connect(allowLeftAction, SIGNAL(triggered(bool)), SLOT(allowLeft(bool)));
+
+ allowRightAction = new QAction(tr("Allow on Right"), this);
+ allowRightAction->setCheckable(true);
+ connect(allowRightAction, SIGNAL(triggered(bool)), SLOT(allowRight(bool)));
+
+ allowTopAction = new QAction(tr("Allow on Top"), this);
+ allowTopAction->setCheckable(true);
+ connect(allowTopAction, SIGNAL(triggered(bool)), SLOT(allowTop(bool)));
+
+ allowBottomAction = new QAction(tr("Allow on Bottom"), this);
+ allowBottomAction->setCheckable(true);
+ connect(allowBottomAction, SIGNAL(triggered(bool)), SLOT(allowBottom(bool)));
+
+ allowedAreasActions->addAction(allowLeftAction);
+ allowedAreasActions->addAction(allowRightAction);
+ allowedAreasActions->addAction(allowTopAction);
+ allowedAreasActions->addAction(allowBottomAction);
+
+ areaActions = new QActionGroup(this);
+ areaActions->setExclusive(true);
+
+ leftAction = new QAction(tr("Place on Left") , this);
+ leftAction->setCheckable(true);
+ connect(leftAction, SIGNAL(triggered(bool)), SLOT(placeLeft(bool)));
+
+ rightAction = new QAction(tr("Place on Right") , this);
+ rightAction->setCheckable(true);
+ connect(rightAction, SIGNAL(triggered(bool)), SLOT(placeRight(bool)));
+
+ topAction = new QAction(tr("Place on Top") , this);
+ topAction->setCheckable(true);
+ connect(topAction, SIGNAL(triggered(bool)), SLOT(placeTop(bool)));
+
+ bottomAction = new QAction(tr("Place on Bottom") , this);
+ bottomAction->setCheckable(true);
+ connect(bottomAction, SIGNAL(triggered(bool)), SLOT(placeBottom(bool)));
+
+ areaActions->addAction(leftAction);
+ areaActions->addAction(rightAction);
+ areaActions->addAction(topAction);
+ areaActions->addAction(bottomAction);
+
+ connect(movableAction, SIGNAL(triggered(bool)), areaActions, SLOT(setEnabled(bool)));
+
+ connect(movableAction, SIGNAL(triggered(bool)), allowedAreasActions, SLOT(setEnabled(bool)));
+
+ connect(floatableAction, SIGNAL(triggered(bool)), floatingAction, SLOT(setEnabled(bool)));
+
+ connect(floatingAction, SIGNAL(triggered(bool)), floatableAction, SLOT(setDisabled(bool)));
+ connect(movableAction, SIGNAL(triggered(bool)), floatableAction, SLOT(setEnabled(bool)));
+
+ tabMenu = new QMenu(this);
+ tabMenu->setTitle(tr("Tab into"));
+ connect(tabMenu, SIGNAL(triggered(QAction*)), this, SLOT(tabInto(QAction*)));
+
+ splitHMenu = new QMenu(this);
+ splitHMenu->setTitle(tr("Split horizontally into"));
+ connect(splitHMenu, SIGNAL(triggered(QAction*)), this, SLOT(splitInto(QAction*)));
+
+ splitVMenu = new QMenu(this);
+ splitVMenu->setTitle(tr("Split vertically into"));
+ connect(splitVMenu, SIGNAL(triggered(QAction*)), this, SLOT(splitInto(QAction*)));
+
+ windowModifiedAction = new QAction(tr("Modified"), this);
+ windowModifiedAction->setCheckable(true);
+ windowModifiedAction->setChecked(false);
+ connect(windowModifiedAction, SIGNAL(toggled(bool)), this, SLOT(setWindowModified(bool)));
+
+ menu = new QMenu(colorName, this);
+ menu->addAction(toggleViewAction());
+ QAction *action = menu->addAction(tr("Raise"));
+ connect(action, SIGNAL(triggered()), this, SLOT(raise()));
+ menu->addAction(changeSizeHintsAction);
+ menu->addSeparator();
+ menu->addAction(closableAction);
+ menu->addAction(movableAction);
+ menu->addAction(floatableAction);
+ menu->addAction(floatingAction);
+ menu->addAction(verticalTitleBarAction);
+ menu->addSeparator();
+ menu->addActions(allowedAreasActions->actions());
+ menu->addSeparator();
+ menu->addActions(areaActions->actions());
+ menu->addSeparator();
+ menu->addMenu(splitHMenu);
+ menu->addMenu(splitVMenu);
+ menu->addMenu(tabMenu);
+ menu->addSeparator();
+ menu->addAction(windowModifiedAction);
+
+ connect(menu, SIGNAL(aboutToShow()), this, SLOT(updateContextMenu()));
+
+ if(colorName == "Black") {
+ leftAction->setShortcut(Qt::CTRL|Qt::Key_W);
+ rightAction->setShortcut(Qt::CTRL|Qt::Key_E);
+ toggleViewAction()->setShortcut(Qt::CTRL|Qt::Key_R);
+ }
+}
+
+void ColorSwatch::updateContextMenu()
+{
+ QMainWindow *mainWindow = qobject_cast<QMainWindow *>(parentWidget());
+ const Qt::DockWidgetArea area = mainWindow->dockWidgetArea(this);
+ const Qt::DockWidgetAreas areas = allowedAreas();
+
+ closableAction->setChecked(features() & QDockWidget::DockWidgetClosable);
+ if (windowType() == Qt::Drawer) {
+ floatableAction->setEnabled(false);
+ floatingAction->setEnabled(false);
+ movableAction->setEnabled(false);
+ verticalTitleBarAction->setChecked(false);
+ } else {
+ floatableAction->setChecked(features() & QDockWidget::DockWidgetFloatable);
+ floatingAction->setChecked(isWindow());
+ // done after floating, to get 'floatable' correctly initialized
+ movableAction->setChecked(features() & QDockWidget::DockWidgetMovable);
+ verticalTitleBarAction
+ ->setChecked(features() & QDockWidget::DockWidgetVerticalTitleBar);
+ }
+
+ allowLeftAction->setChecked(isAreaAllowed(Qt::LeftDockWidgetArea));
+ allowRightAction->setChecked(isAreaAllowed(Qt::RightDockWidgetArea));
+ allowTopAction->setChecked(isAreaAllowed(Qt::TopDockWidgetArea));
+ allowBottomAction->setChecked(isAreaAllowed(Qt::BottomDockWidgetArea));
+
+ if (allowedAreasActions->isEnabled()) {
+ allowLeftAction->setEnabled(area != Qt::LeftDockWidgetArea);
+ allowRightAction->setEnabled(area != Qt::RightDockWidgetArea);
+ allowTopAction->setEnabled(area != Qt::TopDockWidgetArea);
+ allowBottomAction->setEnabled(area != Qt::BottomDockWidgetArea);
+ }
+
+ leftAction->blockSignals(true);
+ rightAction->blockSignals(true);
+ topAction->blockSignals(true);
+ bottomAction->blockSignals(true);
+
+ leftAction->setChecked(area == Qt::LeftDockWidgetArea);
+ rightAction->setChecked(area == Qt::RightDockWidgetArea);
+ topAction->setChecked(area == Qt::TopDockWidgetArea);
+ bottomAction->setChecked(area == Qt::BottomDockWidgetArea);
+
+ leftAction->blockSignals(false);
+ rightAction->blockSignals(false);
+ topAction->blockSignals(false);
+ bottomAction->blockSignals(false);
+
+ if (areaActions->isEnabled()) {
+ leftAction->setEnabled(areas & Qt::LeftDockWidgetArea);
+ rightAction->setEnabled(areas & Qt::RightDockWidgetArea);
+ topAction->setEnabled(areas & Qt::TopDockWidgetArea);
+ bottomAction->setEnabled(areas & Qt::BottomDockWidgetArea);
+ }
+
+ tabMenu->clear();
+ splitHMenu->clear();
+ splitVMenu->clear();
+ QList<ColorSwatch*> dock_list = qFindChildren<ColorSwatch*>(mainWindow);
+ foreach (ColorSwatch *dock, dock_list) {
+// if (!dock->isVisible() || dock->isFloating())
+// continue;
+ tabMenu->addAction(dock->objectName());
+ splitHMenu->addAction(dock->objectName());
+ splitVMenu->addAction(dock->objectName());
+ }
+}
+
+void ColorSwatch::splitInto(QAction *action)
+{
+ QMainWindow *mainWindow = qobject_cast<QMainWindow *>(parentWidget());
+ QList<ColorSwatch*> dock_list = qFindChildren<ColorSwatch*>(mainWindow);
+ ColorSwatch *target = 0;
+ foreach (ColorSwatch *dock, dock_list) {
+ if (action->text() == dock->objectName()) {
+ target = dock;
+ break;
+ }
+ }
+ if (target == 0)
+ return;
+
+ Qt::Orientation o = action->parent() == splitHMenu
+ ? Qt::Horizontal : Qt::Vertical;
+ mainWindow->splitDockWidget(target, this, o);
+}
+
+void ColorSwatch::tabInto(QAction *action)
+{
+ QMainWindow *mainWindow = qobject_cast<QMainWindow *>(parentWidget());
+ QList<ColorSwatch*> dock_list = qFindChildren<ColorSwatch*>(mainWindow);
+ ColorSwatch *target = 0;
+ foreach (ColorSwatch *dock, dock_list) {
+ if (action->text() == dock->objectName()) {
+ target = dock;
+ break;
+ }
+ }
+ if (target == 0)
+ return;
+
+ mainWindow->tabifyDockWidget(target, this);
+}
+
+void ColorSwatch::contextMenuEvent(QContextMenuEvent *event)
+{
+ event->accept();
+ menu->exec(event->globalPos());
+}
+
+void ColorSwatch::resizeEvent(QResizeEvent *e)
+{
+ if (BlueTitleBar *btb = qobject_cast<BlueTitleBar*>(titleBarWidget()))
+ btb->updateMask();
+
+ QDockWidget::resizeEvent(e);
+}
+
+
+void ColorSwatch::allow(Qt::DockWidgetArea area, bool a)
+{
+ Qt::DockWidgetAreas areas = allowedAreas();
+ areas = a ? areas | area : areas & ~area;
+ setAllowedAreas(areas);
+
+ if (areaActions->isEnabled()) {
+ leftAction->setEnabled(areas & Qt::LeftDockWidgetArea);
+ rightAction->setEnabled(areas & Qt::RightDockWidgetArea);
+ topAction->setEnabled(areas & Qt::TopDockWidgetArea);
+ bottomAction->setEnabled(areas & Qt::BottomDockWidgetArea);
+ }
+}
+
+void ColorSwatch::place(Qt::DockWidgetArea area, bool p)
+{
+ if (!p) return;
+
+ QMainWindow *mainWindow = qobject_cast<QMainWindow *>(parentWidget());
+ mainWindow->addDockWidget(area, this);
+
+ if (allowedAreasActions->isEnabled()) {
+ allowLeftAction->setEnabled(area != Qt::LeftDockWidgetArea);
+ allowRightAction->setEnabled(area != Qt::RightDockWidgetArea);
+ allowTopAction->setEnabled(area != Qt::TopDockWidgetArea);
+ allowBottomAction->setEnabled(area != Qt::BottomDockWidgetArea);
+ }
+}
+
+void ColorSwatch::setCustomSizeHint(const QSize &size)
+{
+ if (ColorDock *dock = qobject_cast<ColorDock*>(widget()))
+ dock->setCustomSizeHint(size);
+}
+
+void ColorSwatch::changeClosable(bool on)
+{ setFeatures(on ? features() | DockWidgetClosable : features() & ~DockWidgetClosable); }
+
+void ColorSwatch::changeMovable(bool on)
+{ setFeatures(on ? features() | DockWidgetMovable : features() & ~DockWidgetMovable); }
+
+void ColorSwatch::changeFloatable(bool on)
+{ setFeatures(on ? features() | DockWidgetFloatable : features() & ~DockWidgetFloatable); }
+
+void ColorSwatch::changeFloating(bool floating)
+{ setFloating(floating); }
+
+void ColorSwatch::allowLeft(bool a)
+{ allow(Qt::LeftDockWidgetArea, a); }
+
+void ColorSwatch::allowRight(bool a)
+{ allow(Qt::RightDockWidgetArea, a); }
+
+void ColorSwatch::allowTop(bool a)
+{ allow(Qt::TopDockWidgetArea, a); }
+
+void ColorSwatch::allowBottom(bool a)
+{ allow(Qt::BottomDockWidgetArea, a); }
+
+void ColorSwatch::placeLeft(bool p)
+{ place(Qt::LeftDockWidgetArea, p); }
+
+void ColorSwatch::placeRight(bool p)
+{ place(Qt::RightDockWidgetArea, p); }
+
+void ColorSwatch::placeTop(bool p)
+{ place(Qt::TopDockWidgetArea, p); }
+
+void ColorSwatch::placeBottom(bool p)
+{ place(Qt::BottomDockWidgetArea, p); }
+
+void ColorSwatch::changeVerticalTitleBar(bool on)
+{
+ setFeatures(on ? features() | DockWidgetVerticalTitleBar
+ : features() & ~DockWidgetVerticalTitleBar);
+}
+
+QSize BlueTitleBar::minimumSizeHint() const
+{
+ QDockWidget *dw = qobject_cast<QDockWidget*>(parentWidget());
+ Q_ASSERT(dw != 0);
+ QSize result(leftPm.width() + rightPm.width(), centerPm.height());
+ if (dw->features() & QDockWidget::DockWidgetVerticalTitleBar)
+ result.transpose();
+ return result;
+}
+
+BlueTitleBar::BlueTitleBar(QWidget *parent)
+ : QWidget(parent)
+{
+ leftPm = QPixmap(":/res/titlebarLeft.png");
+ centerPm = QPixmap(":/res/titlebarCenter.png");
+ rightPm = QPixmap(":/res/titlebarRight.png");
+}
+
+void BlueTitleBar::paintEvent(QPaintEvent*)
+{
+ QPainter painter(this);
+ QRect rect = this->rect();
+
+ QDockWidget *dw = qobject_cast<QDockWidget*>(parentWidget());
+ Q_ASSERT(dw != 0);
+
+ if (dw->features() & QDockWidget::DockWidgetVerticalTitleBar) {
+ QSize s = rect.size();
+ s.transpose();
+ rect.setSize(s);
+
+ painter.translate(rect.left(), rect.top() + rect.width());
+ painter.rotate(-90);
+ painter.translate(-rect.left(), -rect.top());
+ }
+
+ painter.drawPixmap(rect.topLeft(), leftPm);
+ painter.drawPixmap(rect.topRight() - QPoint(rightPm.width() - 1, 0), rightPm);
+ QBrush brush(centerPm);
+ painter.fillRect(rect.left() + leftPm.width(), rect.top(),
+ rect.width() - leftPm.width() - rightPm.width(),
+ centerPm.height(), centerPm);
+}
+
+void BlueTitleBar::mousePressEvent(QMouseEvent *event)
+{
+ QPoint pos = event->pos();
+
+ QRect rect = this->rect();
+
+ QDockWidget *dw = qobject_cast<QDockWidget*>(parentWidget());
+ Q_ASSERT(dw != 0);
+
+ if (dw->features() & QDockWidget::DockWidgetVerticalTitleBar) {
+ QPoint p = pos;
+ pos.setX(rect.left() + rect.bottom() - p.y());
+ pos.setY(rect.top() + p.x() - rect.left());
+
+ QSize s = rect.size();
+ s.transpose();
+ rect.setSize(s);
+ }
+
+ const int buttonRight = 7;
+ const int buttonWidth = 20;
+ int right = rect.right() - pos.x();
+ int button = (right - buttonRight)/buttonWidth;
+ switch (button) {
+ case 0:
+ event->accept();
+ dw->close();
+ break;
+ case 1:
+ event->accept();
+ dw->setFloating(!dw->isFloating());
+ break;
+ case 2: {
+ event->accept();
+ QDockWidget::DockWidgetFeatures features = dw->features();
+ if (features & QDockWidget::DockWidgetVerticalTitleBar)
+ features &= ~QDockWidget::DockWidgetVerticalTitleBar;
+ else
+ features |= QDockWidget::DockWidgetVerticalTitleBar;
+ dw->setFeatures(features);
+ break;
+ }
+ default:
+ event->ignore();
+ break;
+ }
+}
+
+void BlueTitleBar::updateMask()
+{
+ QDockWidget *dw = qobject_cast<QDockWidget*>(parent());
+ Q_ASSERT(dw != 0);
+
+ QRect rect = dw->rect();
+ QPixmap bitmap(dw->size());
+
+ {
+ QPainter painter(&bitmap);
+
+ ///initialize to transparent
+ painter.fillRect(rect, Qt::color0);
+
+ QRect contents = rect;
+ contents.setTopLeft(geometry().bottomLeft());
+ contents.setRight(geometry().right());
+ contents.setBottom(contents.bottom()-y());
+ painter.fillRect(contents, Qt::color1);
+
+
+
+ //let's pait the titlebar
+
+ QRect titleRect = this->geometry();
+
+ if (dw->features() & QDockWidget::DockWidgetVerticalTitleBar) {
+ QSize s = rect.size();
+ s.transpose();
+ rect.setSize(s);
+
+ QSize s2 = size();
+ s2.transpose();
+ titleRect.setSize(s2);
+
+ painter.translate(rect.left(), rect.top() + rect.width());
+ painter.rotate(-90);
+ painter.translate(-rect.left(), -rect.top());
+ }
+
+ contents.setTopLeft(titleRect.bottomLeft());
+ contents.setRight(titleRect.right());
+ contents.setBottom(rect.bottom()-y());
+
+ QRect rect = titleRect;
+
+
+ painter.drawPixmap(rect.topLeft(), leftPm.mask());
+ painter.fillRect(rect.left() + leftPm.width(), rect.top(),
+ rect.width() - leftPm.width() - rightPm.width(),
+ centerPm.height(), Qt::color1);
+ painter.drawPixmap(rect.topRight() - QPoint(rightPm.width() - 1, 0), rightPm.mask());
+
+ painter.fillRect(contents, Qt::color1);
+ }
+
+ dw->setMask(bitmap);
+}
+
+#include "colorswatch.moc"
diff --git a/demos/mainwindow/colorswatch.h b/demos/mainwindow/colorswatch.h
new file mode 100644
index 0000000..57c5ac6
--- /dev/null
+++ b/demos/mainwindow/colorswatch.h
@@ -0,0 +1,136 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef COLORSWATCH_H
+#define COLORSWATCH_H
+
+#include <QDockWidget>
+
+QT_FORWARD_DECLARE_CLASS(QAction)
+QT_FORWARD_DECLARE_CLASS(QActionGroup)
+QT_FORWARD_DECLARE_CLASS(QMenu)
+
+class ColorSwatch : public QDockWidget
+{
+ Q_OBJECT
+
+ QAction *closableAction;
+ QAction *movableAction;
+ QAction *floatableAction;
+ QAction *floatingAction;
+ QAction *verticalTitleBarAction;
+
+ QActionGroup *allowedAreasActions;
+ QAction *allowLeftAction;
+ QAction *allowRightAction;
+ QAction *allowTopAction;
+ QAction *allowBottomAction;
+
+ QActionGroup *areaActions;
+ QAction *leftAction;
+ QAction *rightAction;
+ QAction *topAction;
+ QAction *bottomAction;
+
+ QAction *changeSizeHintsAction;
+
+ QMenu *tabMenu;
+ QMenu *splitHMenu;
+ QMenu *splitVMenu;
+
+ QAction *windowModifiedAction;
+
+public:
+ ColorSwatch(const QString &colorName, QWidget *parent = 0, Qt::WindowFlags flags = 0);
+
+ QMenu *menu;
+ void setCustomSizeHint(const QSize &size);
+
+protected:
+ virtual void contextMenuEvent(QContextMenuEvent *event);
+ virtual void resizeEvent(QResizeEvent *e);
+
+private:
+ void allow(Qt::DockWidgetArea area, bool allow);
+ void place(Qt::DockWidgetArea area, bool place);
+
+private slots:
+ void changeClosable(bool on);
+ void changeMovable(bool on);
+ void changeFloatable(bool on);
+ void changeFloating(bool on);
+ void changeVerticalTitleBar(bool on);
+ void updateContextMenu();
+
+ void allowLeft(bool a);
+ void allowRight(bool a);
+ void allowTop(bool a);
+ void allowBottom(bool a);
+
+ void placeLeft(bool p);
+ void placeRight(bool p);
+ void placeTop(bool p);
+ void placeBottom(bool p);
+
+ void splitInto(QAction *action);
+ void tabInto(QAction *action);
+};
+
+class BlueTitleBar : public QWidget
+{
+ Q_OBJECT
+public:
+ BlueTitleBar(QWidget *parent = 0);
+
+ QSize sizeHint() const { return minimumSizeHint(); }
+ QSize minimumSizeHint() const;
+protected:
+ void paintEvent(QPaintEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+public slots:
+ void updateMask();
+
+private:
+ QPixmap leftPm, centerPm, rightPm;
+};
+
+
+#endif
diff --git a/demos/mainwindow/main.cpp b/demos/mainwindow/main.cpp
new file mode 100644
index 0000000..46268b5
--- /dev/null
+++ b/demos/mainwindow/main.cpp
@@ -0,0 +1,164 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "mainwindow.h"
+
+#include <QApplication>
+#include <QPainterPath>
+#include <QPainter>
+#include <QMap>
+#include <qdebug.h>
+
+void render_qt_text(QPainter *painter, int w, int h, const QColor &color) {
+ QPainterPath path;
+ path.moveTo(-0.083695, 0.283849);
+ path.cubicTo(-0.049581, 0.349613, -0.012720, 0.397969, 0.026886, 0.428917);
+ path.cubicTo(0.066493, 0.459865, 0.111593, 0.477595, 0.162186, 0.482108);
+ path.lineTo(0.162186, 0.500000);
+ path.cubicTo(0.115929, 0.498066, 0.066565, 0.487669, 0.014094, 0.468810);
+ path.cubicTo(-0.038378, 0.449952, -0.088103, 0.423839, -0.135082, 0.390474);
+ path.cubicTo(-0.182061, 0.357108, -0.222608, 0.321567, -0.256722, 0.283849);
+ path.cubicTo(-0.304712, 0.262250, -0.342874, 0.239362, -0.371206, 0.215184);
+ path.cubicTo(-0.411969, 0.179078, -0.443625, 0.134671, -0.466175, 0.081963);
+ path.cubicTo(-0.488725, 0.029255, -0.500000, -0.033043, -0.500000, -0.104932);
+ path.cubicTo(-0.500000, -0.218407, -0.467042, -0.312621, -0.401127, -0.387573);
+ path.cubicTo(-0.335212, -0.462524, -0.255421, -0.500000, -0.161752, -0.500000);
+ path.cubicTo(-0.072998, -0.500000, 0.003903, -0.462444, 0.068951, -0.387331);
+ path.cubicTo(0.133998, -0.312218, 0.166522, -0.217440, 0.166522, -0.102998);
+ path.cubicTo(0.166522, -0.010155, 0.143394, 0.071325, 0.097138, 0.141441);
+ path.cubicTo(0.050882, 0.211557, -0.009396, 0.259026, -0.083695, 0.283849);
+ path.moveTo(-0.167823, -0.456963);
+ path.cubicTo(-0.228823, -0.456963, -0.277826, -0.432624, -0.314831, -0.383946);
+ path.cubicTo(-0.361665, -0.323340, -0.385082, -0.230335, -0.385082, -0.104932);
+ path.cubicTo(-0.385082, 0.017569, -0.361376, 0.112025, -0.313964, 0.178433);
+ path.cubicTo(-0.277248, 0.229368, -0.228534, 0.254836, -0.167823, 0.254836);
+ path.cubicTo(-0.105088, 0.254836, -0.054496, 0.229368, -0.016045, 0.178433);
+ path.cubicTo(0.029055, 0.117827, 0.051605, 0.028691, 0.051605, -0.088975);
+ path.cubicTo(0.051605, -0.179562, 0.039318, -0.255803, 0.014744, -0.317698);
+ path.cubicTo(-0.004337, -0.365409, -0.029705, -0.400548, -0.061362, -0.423114);
+ path.cubicTo(-0.093018, -0.445680, -0.128505, -0.456963, -0.167823, -0.456963);
+ path.moveTo(0.379011, -0.404739);
+ path.lineTo(0.379011, -0.236460);
+ path.lineTo(0.486123, -0.236460);
+ path.lineTo(0.486123, -0.197292);
+ path.lineTo(0.379011, -0.197292);
+ path.lineTo(0.379011, 0.134913);
+ path.cubicTo(0.379011, 0.168117, 0.383276, 0.190442, 0.391804, 0.201886);
+ path.cubicTo(0.400332, 0.213330, 0.411246, 0.219052, 0.424545, 0.219052);
+ path.cubicTo(0.435531, 0.219052, 0.446227, 0.215264, 0.456635, 0.207689);
+ path.cubicTo(0.467042, 0.200113, 0.474993, 0.188910, 0.480486, 0.174081);
+ path.lineTo(0.500000, 0.174081);
+ path.cubicTo(0.488436, 0.210509, 0.471957, 0.237911, 0.450564, 0.256286);
+ path.cubicTo(0.429170, 0.274662, 0.407054, 0.283849, 0.384215, 0.283849);
+ path.cubicTo(0.368893, 0.283849, 0.353859, 0.279094, 0.339115, 0.269584);
+ path.cubicTo(0.324371, 0.260074, 0.313530, 0.246534, 0.306592, 0.228965);
+ path.cubicTo(0.299653, 0.211396, 0.296184, 0.184075, 0.296184, 0.147002);
+ path.lineTo(0.296184, -0.197292);
+ path.lineTo(0.223330, -0.197292);
+ path.lineTo(0.223330, -0.215667);
+ path.cubicTo(0.241833, -0.224049, 0.260697, -0.237992, 0.279922, -0.257495);
+ path.cubicTo(0.299147, -0.276999, 0.316276, -0.300129, 0.331310, -0.326886);
+ path.cubicTo(0.338826, -0.341070, 0.349523, -0.367021, 0.363400, -0.404739);
+ path.lineTo(0.379011, -0.404739);
+ path.moveTo(-0.535993, 0.275629);
+
+ painter->translate(w / 2, h / 2);
+ double scale = qMin(w, h) * 8 / 10.0;
+ painter->scale(scale, scale);
+
+ painter->setRenderHint(QPainter::Antialiasing);
+
+ painter->save();
+ painter->translate(.1, .1);
+ painter->fillPath(path, QColor(0, 0, 0, 63));
+ painter->restore();
+
+ painter->setBrush(color);
+ painter->setPen(QPen(Qt::black, 0.02, Qt::SolidLine, Qt::FlatCap, Qt::RoundJoin));
+ painter->drawPath(path);
+}
+
+void usage()
+{
+ qWarning() << "Usage: mainwindow [-SizeHint<color> <width>x<height>] ...";
+ exit(1);
+}
+
+QMap<QString, QSize> parseCustomSizeHints(int argc, char **argv)
+{
+ QMap<QString, QSize> result;
+
+ for (int i = 1; i < argc; ++i) {
+ QString arg = QString::fromLocal8Bit(argv[i]);
+
+ if (arg.startsWith(QLatin1String("-SizeHint"))) {
+ QString name = arg.mid(9);
+ if (name.isEmpty())
+ usage();
+ if (++i == argc)
+ usage();
+ QString sizeStr = QString::fromLocal8Bit(argv[i]);
+ int idx = sizeStr.indexOf(QLatin1Char('x'));
+ if (idx == -1)
+ usage();
+ bool ok;
+ int w = sizeStr.left(idx).toInt(&ok);
+ if (!ok)
+ usage();
+ int h = sizeStr.mid(idx + 1).toInt(&ok);
+ if (!ok)
+ usage();
+ result[name] = QSize(w, h);
+ }
+ }
+
+ return result;
+}
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+ QMap<QString, QSize> customSizeHints = parseCustomSizeHints(argc, argv);
+ MainWindow mainWin(customSizeHints);
+ mainWin.resize(800, 600);
+ mainWin.show();
+ return app.exec();
+}
diff --git a/demos/mainwindow/mainwindow.cpp b/demos/mainwindow/mainwindow.cpp
new file mode 100644
index 0000000..7edaf52
--- /dev/null
+++ b/demos/mainwindow/mainwindow.cpp
@@ -0,0 +1,510 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "mainwindow.h"
+#include "colorswatch.h"
+#include "toolbar.h"
+
+#include <QAction>
+#include <QLayout>
+#include <QMenu>
+#include <QMenuBar>
+#include <QStatusBar>
+#include <QTextEdit>
+#include <QFile>
+#include <QDataStream>
+#include <QFileDialog>
+#include <QMessageBox>
+#include <QSignalMapper>
+#include <QApplication>
+#include <QPainter>
+#include <QMouseEvent>
+#include <QLineEdit>
+#include <QComboBox>
+#include <QLabel>
+#include <QPushButton>
+#include <qdebug.h>
+
+static const char * const message =
+ "<p><b>Qt Main Window Demo</b></p>"
+
+ "<p>This is a demonstration of the QMainWindow, QToolBar and "
+ "QDockWidget classes.</p>"
+
+ "<p>The tool bar and dock widgets can be dragged around and rearranged "
+ "using the mouse or via the menu.</p>"
+
+ "<p>Each dock widget contains a colored frame and a context "
+ "(right-click) menu.</p>"
+
+#ifdef Q_WS_MAC
+ "<p>On Mac OS X, the \"Black\" dock widget has been created as a "
+ "<em>Drawer</em>, which is a special kind of QDockWidget.</p>"
+#endif
+ ;
+
+MainWindow::MainWindow(const QMap<QString, QSize> &customSizeHints,
+ QWidget *parent, Qt::WindowFlags flags)
+ : QMainWindow(parent, flags)
+{
+ setObjectName("MainWindow");
+ setWindowTitle("Qt Main Window Demo");
+
+ center = new QTextEdit(this);
+ center->setReadOnly(true);
+ center->setMinimumSize(400, 205);
+ setCentralWidget(center);
+
+ setupToolBar();
+ setupMenuBar();
+ setupDockWidgets(customSizeHints);
+
+ statusBar()->showMessage(tr("Status Bar"));
+}
+
+void MainWindow::actionTriggered(QAction *action)
+{
+ qDebug("action '%s' triggered", action->text().toLocal8Bit().data());
+}
+
+void MainWindow::setupToolBar()
+{
+ for (int i = 0; i < 3; ++i) {
+ ToolBar *tb = new ToolBar(QString::fromLatin1("Tool Bar %1").arg(i + 1), this);
+ toolBars.append(tb);
+ addToolBar(tb);
+ }
+}
+
+void MainWindow::setupMenuBar()
+{
+ QMenu *menu = menuBar()->addMenu(tr("&File"));
+
+ QAction *action = menu->addAction(tr("Save layout..."));
+ connect(action, SIGNAL(triggered()), this, SLOT(saveLayout()));
+
+ action = menu->addAction(tr("Load layout..."));
+ connect(action, SIGNAL(triggered()), this, SLOT(loadLayout()));
+
+ action = menu->addAction(tr("Switch layout direction"));
+ connect(action, SIGNAL(triggered()), this, SLOT(switchLayoutDirection()));
+
+ menu->addSeparator();
+
+ menu->addAction(tr("&Quit"), this, SLOT(close()));
+
+ mainWindowMenu = menuBar()->addMenu(tr("Main window"));
+
+ action = mainWindowMenu->addAction(tr("Animated docks"));
+ action->setCheckable(true);
+ action->setChecked(dockOptions() & AnimatedDocks);
+ connect(action, SIGNAL(toggled(bool)), this, SLOT(setDockOptions()));
+
+ action = mainWindowMenu->addAction(tr("Allow nested docks"));
+ action->setCheckable(true);
+ action->setChecked(dockOptions() & AllowNestedDocks);
+ connect(action, SIGNAL(toggled(bool)), this, SLOT(setDockOptions()));
+
+ action = mainWindowMenu->addAction(tr("Allow tabbed docks"));
+ action->setCheckable(true);
+ action->setChecked(dockOptions() & AllowTabbedDocks);
+ connect(action, SIGNAL(toggled(bool)), this, SLOT(setDockOptions()));
+
+ action = mainWindowMenu->addAction(tr("Force tabbed docks"));
+ action->setCheckable(true);
+ action->setChecked(dockOptions() & ForceTabbedDocks);
+ connect(action, SIGNAL(toggled(bool)), this, SLOT(setDockOptions()));
+
+ action = mainWindowMenu->addAction(tr("Vertical tabs"));
+ action->setCheckable(true);
+ action->setChecked(dockOptions() & VerticalTabs);
+ connect(action, SIGNAL(toggled(bool)), this, SLOT(setDockOptions()));
+
+ QMenu *toolBarMenu = menuBar()->addMenu(tr("Tool bars"));
+ for (int i = 0; i < toolBars.count(); ++i)
+ toolBarMenu->addMenu(toolBars.at(i)->menu);
+
+ dockWidgetMenu = menuBar()->addMenu(tr("&Dock Widgets"));
+}
+
+void MainWindow::setDockOptions()
+{
+ DockOptions opts;
+ QList<QAction*> actions = mainWindowMenu->actions();
+
+ if (actions.at(0)->isChecked())
+ opts |= AnimatedDocks;
+ if (actions.at(1)->isChecked())
+ opts |= AllowNestedDocks;
+ if (actions.at(2)->isChecked())
+ opts |= AllowTabbedDocks;
+ if (actions.at(3)->isChecked())
+ opts |= ForceTabbedDocks;
+ if (actions.at(4)->isChecked())
+ opts |= VerticalTabs;
+
+ QMainWindow::setDockOptions(opts);
+}
+
+void MainWindow::saveLayout()
+{
+ QString fileName
+ = QFileDialog::getSaveFileName(this, tr("Save layout"));
+ if (fileName.isEmpty())
+ return;
+ QFile file(fileName);
+ if (!file.open(QFile::WriteOnly)) {
+ QString msg = tr("Failed to open %1\n%2")
+ .arg(fileName)
+ .arg(file.errorString());
+ QMessageBox::warning(this, tr("Error"), msg);
+ return;
+ }
+
+ QByteArray geo_data = saveGeometry();
+ QByteArray layout_data = saveState();
+
+ bool ok = file.putChar((uchar)geo_data.size());
+ if (ok)
+ ok = file.write(geo_data) == geo_data.size();
+ if (ok)
+ ok = file.write(layout_data) == layout_data.size();
+
+ if (!ok) {
+ QString msg = tr("Error writing to %1\n%2")
+ .arg(fileName)
+ .arg(file.errorString());
+ QMessageBox::warning(this, tr("Error"), msg);
+ return;
+ }
+}
+
+void MainWindow::loadLayout()
+{
+ QString fileName
+ = QFileDialog::getOpenFileName(this, tr("Load layout"));
+ if (fileName.isEmpty())
+ return;
+ QFile file(fileName);
+ if (!file.open(QFile::ReadOnly)) {
+ QString msg = tr("Failed to open %1\n%2")
+ .arg(fileName)
+ .arg(file.errorString());
+ QMessageBox::warning(this, tr("Error"), msg);
+ return;
+ }
+
+ uchar geo_size;
+ QByteArray geo_data;
+ QByteArray layout_data;
+
+ bool ok = file.getChar((char*)&geo_size);
+ if (ok) {
+ geo_data = file.read(geo_size);
+ ok = geo_data.size() == geo_size;
+ }
+ if (ok) {
+ layout_data = file.readAll();
+ ok = layout_data.size() > 0;
+ }
+
+ if (ok)
+ ok = restoreGeometry(geo_data);
+ if (ok)
+ ok = restoreState(layout_data);
+
+ if (!ok) {
+ QString msg = tr("Error reading %1")
+ .arg(fileName);
+ QMessageBox::warning(this, tr("Error"), msg);
+ return;
+ }
+}
+
+QAction *addAction(QMenu *menu, const QString &text, QActionGroup *group, QSignalMapper *mapper,
+ int id)
+{
+ bool first = group->actions().isEmpty();
+ QAction *result = menu->addAction(text);
+ result->setCheckable(true);
+ result->setChecked(first);
+ group->addAction(result);
+ QObject::connect(result, SIGNAL(triggered()), mapper, SLOT(map()));
+ mapper->setMapping(result, id);
+ return result;
+}
+
+void MainWindow::setupDockWidgets(const QMap<QString, QSize> &customSizeHints)
+{
+ mapper = new QSignalMapper(this);
+ connect(mapper, SIGNAL(mapped(int)), this, SLOT(setCorner(int)));
+
+ QMenu *corner_menu = dockWidgetMenu->addMenu(tr("Top left corner"));
+ QActionGroup *group = new QActionGroup(this);
+ group->setExclusive(true);
+ ::addAction(corner_menu, tr("Top dock area"), group, mapper, 0);
+ ::addAction(corner_menu, tr("Left dock area"), group, mapper, 1);
+
+ corner_menu = dockWidgetMenu->addMenu(tr("Top right corner"));
+ group = new QActionGroup(this);
+ group->setExclusive(true);
+ ::addAction(corner_menu, tr("Top dock area"), group, mapper, 2);
+ ::addAction(corner_menu, tr("Right dock area"), group, mapper, 3);
+
+ corner_menu = dockWidgetMenu->addMenu(tr("Bottom left corner"));
+ group = new QActionGroup(this);
+ group->setExclusive(true);
+ ::addAction(corner_menu, tr("Bottom dock area"), group, mapper, 4);
+ ::addAction(corner_menu, tr("Left dock area"), group, mapper, 5);
+
+ corner_menu = dockWidgetMenu->addMenu(tr("Bottom right corner"));
+ group = new QActionGroup(this);
+ group->setExclusive(true);
+ ::addAction(corner_menu, tr("Bottom dock area"), group, mapper, 6);
+ ::addAction(corner_menu, tr("Right dock area"), group, mapper, 7);
+
+ dockWidgetMenu->addSeparator();
+
+ static const struct Set {
+ const char * name;
+ uint flags;
+ Qt::DockWidgetArea area;
+ } sets [] = {
+#ifndef Q_WS_MAC
+ { "Black", 0, Qt::LeftDockWidgetArea },
+#else
+ { "Black", Qt::Drawer, Qt::LeftDockWidgetArea },
+#endif
+ { "White", 0, Qt::RightDockWidgetArea },
+ { "Red", 0, Qt::TopDockWidgetArea },
+ { "Green", 0, Qt::TopDockWidgetArea },
+ { "Blue", 0, Qt::BottomDockWidgetArea },
+ { "Yellow", 0, Qt::BottomDockWidgetArea }
+ };
+ const int setCount = sizeof(sets) / sizeof(Set);
+
+ for (int i = 0; i < setCount; ++i) {
+ ColorSwatch *swatch = new ColorSwatch(tr(sets[i].name), this, Qt::WindowFlags(sets[i].flags));
+ if (i%2)
+ swatch->setWindowIcon(QIcon(QPixmap(":/res/qt.png")));
+ if (qstrcmp(sets[i].name, "Blue") == 0) {
+ BlueTitleBar *titlebar = new BlueTitleBar(swatch);
+ swatch->setTitleBarWidget(titlebar);
+ connect(swatch, SIGNAL(topLevelChanged(bool)), titlebar, SLOT(updateMask()));
+ connect(swatch, SIGNAL(featuresChanged(QDockWidget::DockWidgetFeatures)), titlebar, SLOT(updateMask()));
+
+#ifdef Q_WS_QWS
+ QPalette pal = palette();
+ pal.setBrush(backgroundRole(), QColor(0,0,0,0));
+ swatch->setPalette(pal);
+#endif
+ }
+
+ QString name = QString::fromLatin1(sets[i].name);
+ if (customSizeHints.contains(name))
+ swatch->setCustomSizeHint(customSizeHints.value(name));
+
+ addDockWidget(sets[i].area, swatch);
+ dockWidgetMenu->addMenu(swatch->menu);
+ }
+
+ createDockWidgetAction = new QAction(tr("Add dock widget..."), this);
+ connect(createDockWidgetAction, SIGNAL(triggered()), this, SLOT(createDockWidget()));
+ destroyDockWidgetMenu = new QMenu(tr("Destroy dock widget"), this);
+ destroyDockWidgetMenu->setEnabled(false);
+ connect(destroyDockWidgetMenu, SIGNAL(triggered(QAction*)), this, SLOT(destroyDockWidget(QAction*)));
+
+ dockWidgetMenu->addSeparator();
+ dockWidgetMenu->addAction(createDockWidgetAction);
+ dockWidgetMenu->addMenu(destroyDockWidgetMenu);
+}
+
+void MainWindow::setCorner(int id)
+{
+ switch (id) {
+ case 0:
+ QMainWindow::setCorner(Qt::TopLeftCorner, Qt::TopDockWidgetArea);
+ break;
+ case 1:
+ QMainWindow::setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);
+ break;
+ case 2:
+ QMainWindow::setCorner(Qt::TopRightCorner, Qt::TopDockWidgetArea);
+ break;
+ case 3:
+ QMainWindow::setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea);
+ break;
+ case 4:
+ QMainWindow::setCorner(Qt::BottomLeftCorner, Qt::BottomDockWidgetArea);
+ break;
+ case 5:
+ QMainWindow::setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
+ break;
+ case 6:
+ QMainWindow::setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea);
+ break;
+ case 7:
+ QMainWindow::setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
+ break;
+ }
+}
+
+void MainWindow::showEvent(QShowEvent *event)
+{
+ QMainWindow::showEvent(event);
+}
+
+void MainWindow::switchLayoutDirection()
+{
+ if (layoutDirection() == Qt::LeftToRight)
+ qApp->setLayoutDirection(Qt::RightToLeft);
+ else
+ qApp->setLayoutDirection(Qt::LeftToRight);
+}
+
+class CreateDockWidgetDialog : public QDialog
+{
+public:
+ CreateDockWidgetDialog(QWidget *parent = 0);
+
+ QString objectName() const;
+ Qt::DockWidgetArea location() const;
+
+private:
+ QLineEdit *m_objectName;
+ QComboBox *m_location;
+};
+
+CreateDockWidgetDialog::CreateDockWidgetDialog(QWidget *parent)
+ : QDialog(parent)
+{
+ QGridLayout *layout = new QGridLayout(this);
+
+ layout->addWidget(new QLabel(tr("Object name:")), 0, 0);
+ m_objectName = new QLineEdit;
+ layout->addWidget(m_objectName, 0, 1);
+
+ layout->addWidget(new QLabel(tr("Location:")), 1, 0);
+ m_location = new QComboBox;
+ m_location->setEditable(false);
+ m_location->addItem(tr("Top"));
+ m_location->addItem(tr("Left"));
+ m_location->addItem(tr("Right"));
+ m_location->addItem(tr("Bottom"));
+ m_location->addItem(tr("Restore"));
+ layout->addWidget(m_location, 1, 1);
+
+ QHBoxLayout *buttonLayout = new QHBoxLayout;
+ layout->addLayout(buttonLayout, 2, 0, 1, 2);
+ buttonLayout->addStretch();
+
+ QPushButton *cancelButton = new QPushButton(tr("Cancel"));
+ connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
+ buttonLayout->addWidget(cancelButton);
+ QPushButton *okButton = new QPushButton(tr("Ok"));
+ connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
+ buttonLayout->addWidget(okButton);
+
+ okButton->setDefault(true);
+}
+
+QString CreateDockWidgetDialog::objectName() const
+{
+ return m_objectName->text();
+}
+
+Qt::DockWidgetArea CreateDockWidgetDialog::location() const
+{
+ switch (m_location->currentIndex()) {
+ case 0: return Qt::TopDockWidgetArea;
+ case 1: return Qt::LeftDockWidgetArea;
+ case 2: return Qt::RightDockWidgetArea;
+ case 3: return Qt::BottomDockWidgetArea;
+ default:
+ break;
+ }
+ return Qt::NoDockWidgetArea;
+}
+
+void MainWindow::createDockWidget()
+{
+ CreateDockWidgetDialog dialog(this);
+ int ret = dialog.exec();
+ if (ret == QDialog::Rejected)
+ return;
+
+ QDockWidget *dw = new QDockWidget;
+ dw->setObjectName(dialog.objectName());
+ dw->setWindowTitle(dialog.objectName());
+ dw->setWidget(new QTextEdit);
+
+ Qt::DockWidgetArea area = dialog.location();
+ switch (area) {
+ case Qt::LeftDockWidgetArea:
+ case Qt::RightDockWidgetArea:
+ case Qt::TopDockWidgetArea:
+ case Qt::BottomDockWidgetArea:
+ addDockWidget(area, dw);
+ break;
+ default:
+ if (!restoreDockWidget(dw)) {
+ QMessageBox::warning(this, QString(), tr("Failed to restore dock widget"));
+ delete dw;
+ return;
+ }
+ break;
+ }
+
+ extraDockWidgets.append(dw);
+ destroyDockWidgetMenu->setEnabled(true);
+ destroyDockWidgetMenu->addAction(new QAction(dialog.objectName(), this));
+}
+
+void MainWindow::destroyDockWidget(QAction *action)
+{
+ int index = destroyDockWidgetMenu->actions().indexOf(action);
+ delete extraDockWidgets.takeAt(index);
+ destroyDockWidgetMenu->removeAction(action);
+ action->deleteLater();
+
+ if (destroyDockWidgetMenu->isEmpty())
+ destroyDockWidgetMenu->setEnabled(false);
+}
diff --git a/demos/mainwindow/mainwindow.h b/demos/mainwindow/mainwindow.h
new file mode 100644
index 0000000..9c7f620
--- /dev/null
+++ b/demos/mainwindow/mainwindow.h
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+#include <QTextEdit>
+
+class ToolBar;
+QT_FORWARD_DECLARE_CLASS(QMenu)
+QT_FORWARD_DECLARE_CLASS(QSignalMapper)
+
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+ QTextEdit *center;
+ QList<ToolBar*> toolBars;
+ QMenu *dockWidgetMenu;
+ QMenu *mainWindowMenu;
+ QSignalMapper *mapper;
+ QList<QDockWidget*> extraDockWidgets;
+ QAction *createDockWidgetAction;
+ QMenu *destroyDockWidgetMenu;
+
+public:
+ MainWindow(const QMap<QString, QSize> &customSizeHints,
+ QWidget *parent = 0, Qt::WindowFlags flags = 0);
+
+protected:
+ void showEvent(QShowEvent *event);
+
+public slots:
+ void actionTriggered(QAction *action);
+ void saveLayout();
+ void loadLayout();
+ void setCorner(int id);
+ void switchLayoutDirection();
+ void setDockOptions();
+
+ void createDockWidget();
+ void destroyDockWidget(QAction *action);
+
+private:
+ void setupToolBar();
+ void setupMenuBar();
+ void setupDockWidgets(const QMap<QString, QSize> &customSizeHints);
+};
+
+
+#endif
diff --git a/demos/mainwindow/mainwindow.pro b/demos/mainwindow/mainwindow.pro
new file mode 100644
index 0000000..9853a55
--- /dev/null
+++ b/demos/mainwindow/mainwindow.pro
@@ -0,0 +1,16 @@
+TEMPLATE = app
+HEADERS += colorswatch.h mainwindow.h toolbar.h
+SOURCES += colorswatch.cpp mainwindow.cpp toolbar.cpp main.cpp
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+
+RESOURCES += mainwindow.qrc
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/mainwindow
+sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES *.png *.jpg *.pro
+sources.path = $$[QT_INSTALL_DEMOS]/mainwindow
+INSTALLS += target sources
+
diff --git a/demos/mainwindow/mainwindow.qrc b/demos/mainwindow/mainwindow.qrc
new file mode 100644
index 0000000..47ff22a
--- /dev/null
+++ b/demos/mainwindow/mainwindow.qrc
@@ -0,0 +1,8 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/res">
+ <file>qt.png</file>
+ <file>titlebarLeft.png</file>
+ <file>titlebarCenter.png</file>
+ <file>titlebarRight.png</file>
+</qresource>
+</RCC>
diff --git a/demos/mainwindow/qt.png b/demos/mainwindow/qt.png
new file mode 100644
index 0000000..48fa9fc
--- /dev/null
+++ b/demos/mainwindow/qt.png
Binary files differ
diff --git a/demos/mainwindow/titlebarCenter.png b/demos/mainwindow/titlebarCenter.png
new file mode 100644
index 0000000..5cc1413
--- /dev/null
+++ b/demos/mainwindow/titlebarCenter.png
Binary files differ
diff --git a/demos/mainwindow/titlebarLeft.png b/demos/mainwindow/titlebarLeft.png
new file mode 100644
index 0000000..3151662
--- /dev/null
+++ b/demos/mainwindow/titlebarLeft.png
Binary files differ
diff --git a/demos/mainwindow/titlebarRight.png b/demos/mainwindow/titlebarRight.png
new file mode 100644
index 0000000..a450526
--- /dev/null
+++ b/demos/mainwindow/titlebarRight.png
Binary files differ
diff --git a/demos/mainwindow/toolbar.cpp b/demos/mainwindow/toolbar.cpp
new file mode 100644
index 0000000..9de1348
--- /dev/null
+++ b/demos/mainwindow/toolbar.cpp
@@ -0,0 +1,383 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "toolbar.h"
+
+#include <QMainWindow>
+#include <QMenu>
+#include <QPainter>
+#include <QPainterPath>
+#include <QSpinBox>
+#include <QLabel>
+#include <QToolTip>
+
+#include <stdlib.h>
+
+static QPixmap genIcon(const QSize &iconSize, const QString &, const QColor &color)
+{
+ int w = iconSize.width();
+ int h = iconSize.height();
+
+ QImage image(w, h, QImage::Format_ARGB32_Premultiplied);
+ image.fill(0);
+
+ QPainter p(&image);
+
+ extern void render_qt_text(QPainter *, int, int, const QColor &);
+ render_qt_text(&p, w, h, color);
+
+ return QPixmap::fromImage(image, Qt::DiffuseDither | Qt::DiffuseAlphaDither);
+}
+
+static QPixmap genIcon(const QSize &iconSize, int number, const QColor &color)
+{ return genIcon(iconSize, QString::number(number), color); }
+
+ToolBar::ToolBar(const QString &title, QWidget *parent)
+ : QToolBar(parent), spinbox(0), spinboxAction(0)
+{
+ tip = 0;
+ setWindowTitle(title);
+ setObjectName(title);
+
+ setIconSize(QSize(32, 32));
+
+ QColor bg(palette().background().color());
+ menu = new QMenu("One", this);
+ menu->setIcon(genIcon(iconSize(), 1, Qt::black));
+ menu->addAction(genIcon(iconSize(), "A", Qt::blue), "A");
+ menu->addAction(genIcon(iconSize(), "B", Qt::blue), "B");
+ menu->addAction(genIcon(iconSize(), "C", Qt::blue), "C");
+ addAction(menu->menuAction());
+
+ QAction *two = addAction(genIcon(iconSize(), 2, Qt::white), "Two");
+ QFont boldFont;
+ boldFont.setBold(true);
+ two->setFont(boldFont);
+
+ addAction(genIcon(iconSize(), 3, Qt::red), "Three");
+ addAction(genIcon(iconSize(), 4, Qt::green), "Four");
+ addAction(genIcon(iconSize(), 5, Qt::blue), "Five");
+ addAction(genIcon(iconSize(), 6, Qt::yellow), "Six");
+ orderAction = new QAction(this);
+ orderAction->setText(tr("Order Items in Tool Bar"));
+ connect(orderAction, SIGNAL(triggered()), SLOT(order()));
+
+ randomizeAction = new QAction(this);
+ randomizeAction->setText(tr("Randomize Items in Tool Bar"));
+ connect(randomizeAction, SIGNAL(triggered()), SLOT(randomize()));
+
+ addSpinBoxAction = new QAction(this);
+ addSpinBoxAction->setText(tr("Add Spin Box"));
+ connect(addSpinBoxAction, SIGNAL(triggered()), SLOT(addSpinBox()));
+
+ removeSpinBoxAction = new QAction(this);
+ removeSpinBoxAction->setText(tr("Remove Spin Box"));
+ removeSpinBoxAction->setEnabled(false);
+ connect(removeSpinBoxAction, SIGNAL(triggered()), SLOT(removeSpinBox()));
+
+ movableAction = new QAction(tr("Movable"), this);
+ movableAction->setCheckable(true);
+ connect(movableAction, SIGNAL(triggered(bool)), SLOT(changeMovable(bool)));
+
+ allowedAreasActions = new QActionGroup(this);
+ allowedAreasActions->setExclusive(false);
+
+ allowLeftAction = new QAction(tr("Allow on Left"), this);
+ allowLeftAction->setCheckable(true);
+ connect(allowLeftAction, SIGNAL(triggered(bool)), SLOT(allowLeft(bool)));
+
+ allowRightAction = new QAction(tr("Allow on Right"), this);
+ allowRightAction->setCheckable(true);
+ connect(allowRightAction, SIGNAL(triggered(bool)), SLOT(allowRight(bool)));
+
+ allowTopAction = new QAction(tr("Allow on Top"), this);
+ allowTopAction->setCheckable(true);
+ connect(allowTopAction, SIGNAL(triggered(bool)), SLOT(allowTop(bool)));
+
+ allowBottomAction = new QAction(tr("Allow on Bottom"), this);
+ allowBottomAction->setCheckable(true);
+ connect(allowBottomAction, SIGNAL(triggered(bool)), SLOT(allowBottom(bool)));
+
+ allowedAreasActions->addAction(allowLeftAction);
+ allowedAreasActions->addAction(allowRightAction);
+ allowedAreasActions->addAction(allowTopAction);
+ allowedAreasActions->addAction(allowBottomAction);
+
+ areaActions = new QActionGroup(this);
+ areaActions->setExclusive(true);
+
+ leftAction = new QAction(tr("Place on Left") , this);
+ leftAction->setCheckable(true);
+ connect(leftAction, SIGNAL(triggered(bool)), SLOT(placeLeft(bool)));
+
+ rightAction = new QAction(tr("Place on Right") , this);
+ rightAction->setCheckable(true);
+ connect(rightAction, SIGNAL(triggered(bool)), SLOT(placeRight(bool)));
+
+ topAction = new QAction(tr("Place on Top") , this);
+ topAction->setCheckable(true);
+ connect(topAction, SIGNAL(triggered(bool)), SLOT(placeTop(bool)));
+
+ bottomAction = new QAction(tr("Place on Bottom") , this);
+ bottomAction->setCheckable(true);
+ connect(bottomAction, SIGNAL(triggered(bool)), SLOT(placeBottom(bool)));
+
+ areaActions->addAction(leftAction);
+ areaActions->addAction(rightAction);
+ areaActions->addAction(topAction);
+ areaActions->addAction(bottomAction);
+
+ toolBarBreakAction = new QAction(tr("Insert break"), this);
+ connect(toolBarBreakAction, SIGNAL(triggered(bool)), this, SLOT(insertToolBarBreak()));
+
+ connect(movableAction, SIGNAL(triggered(bool)), areaActions, SLOT(setEnabled(bool)));
+
+ connect(movableAction, SIGNAL(triggered(bool)), allowedAreasActions, SLOT(setEnabled(bool)));
+
+ menu = new QMenu(title, this);
+ menu->addAction(toggleViewAction());
+ menu->addSeparator();
+ menu->addAction(orderAction);
+ menu->addAction(randomizeAction);
+ menu->addSeparator();
+ menu->addAction(addSpinBoxAction);
+ menu->addAction(removeSpinBoxAction);
+ menu->addSeparator();
+ menu->addAction(movableAction);
+ menu->addSeparator();
+ menu->addActions(allowedAreasActions->actions());
+ menu->addSeparator();
+ menu->addActions(areaActions->actions());
+ menu->addSeparator();
+ menu->addAction(toolBarBreakAction);
+
+ connect(menu, SIGNAL(aboutToShow()), this, SLOT(updateMenu()));
+
+ randomize();
+}
+
+void ToolBar::updateMenu()
+{
+ QMainWindow *mainWindow = qobject_cast<QMainWindow *>(parentWidget());
+ Q_ASSERT(mainWindow != 0);
+
+ const Qt::ToolBarArea area = mainWindow->toolBarArea(this);
+ const Qt::ToolBarAreas areas = allowedAreas();
+
+ movableAction->setChecked(isMovable());
+
+ allowLeftAction->setChecked(isAreaAllowed(Qt::LeftToolBarArea));
+ allowRightAction->setChecked(isAreaAllowed(Qt::RightToolBarArea));
+ allowTopAction->setChecked(isAreaAllowed(Qt::TopToolBarArea));
+ allowBottomAction->setChecked(isAreaAllowed(Qt::BottomToolBarArea));
+
+ if (allowedAreasActions->isEnabled()) {
+ allowLeftAction->setEnabled(area != Qt::LeftToolBarArea);
+ allowRightAction->setEnabled(area != Qt::RightToolBarArea);
+ allowTopAction->setEnabled(area != Qt::TopToolBarArea);
+ allowBottomAction->setEnabled(area != Qt::BottomToolBarArea);
+ }
+
+ leftAction->setChecked(area == Qt::LeftToolBarArea);
+ rightAction->setChecked(area == Qt::RightToolBarArea);
+ topAction->setChecked(area == Qt::TopToolBarArea);
+ bottomAction->setChecked(area == Qt::BottomToolBarArea);
+
+ if (areaActions->isEnabled()) {
+ leftAction->setEnabled(areas & Qt::LeftToolBarArea);
+ rightAction->setEnabled(areas & Qt::RightToolBarArea);
+ topAction->setEnabled(areas & Qt::TopToolBarArea);
+ bottomAction->setEnabled(areas & Qt::BottomToolBarArea);
+ }
+}
+
+void ToolBar::order()
+{
+ QList<QAction *> ordered, actions1 = actions(),
+ actions2 = qFindChildren<QAction *>(this);
+ while (!actions2.isEmpty()) {
+ QAction *action = actions2.takeFirst();
+ if (!actions1.contains(action))
+ continue;
+ actions1.removeAll(action);
+ ordered.append(action);
+ }
+
+ clear();
+ addActions(ordered);
+
+ orderAction->setEnabled(false);
+}
+
+void ToolBar::randomize()
+{
+ QList<QAction *> randomized, actions = this->actions();
+ while (!actions.isEmpty()) {
+ QAction *action = actions.takeAt(rand() % actions.size());
+ randomized.append(action);
+ }
+ clear();
+ addActions(randomized);
+
+ orderAction->setEnabled(true);
+}
+
+void ToolBar::addSpinBox()
+{
+ if (!spinbox) {
+ spinbox = new QSpinBox(this);
+ }
+ if (!spinboxAction)
+ spinboxAction = addWidget(spinbox);
+ else
+ addAction(spinboxAction);
+
+ addSpinBoxAction->setEnabled(false);
+ removeSpinBoxAction->setEnabled(true);
+}
+
+void ToolBar::removeSpinBox()
+{
+ if (spinboxAction)
+ removeAction(spinboxAction);
+
+ addSpinBoxAction->setEnabled(true);
+ removeSpinBoxAction->setEnabled(false);
+}
+
+void ToolBar::allow(Qt::ToolBarArea area, bool a)
+{
+ Qt::ToolBarAreas areas = allowedAreas();
+ areas = a ? areas | area : areas & ~area;
+ setAllowedAreas(areas);
+
+ if (areaActions->isEnabled()) {
+ leftAction->setEnabled(areas & Qt::LeftToolBarArea);
+ rightAction->setEnabled(areas & Qt::RightToolBarArea);
+ topAction->setEnabled(areas & Qt::TopToolBarArea);
+ bottomAction->setEnabled(areas & Qt::BottomToolBarArea);
+ }
+}
+
+void ToolBar::place(Qt::ToolBarArea area, bool p)
+{
+ if (!p)
+ return;
+
+ QMainWindow *mainWindow = qobject_cast<QMainWindow *>(parentWidget());
+ Q_ASSERT(mainWindow != 0);
+
+ mainWindow->addToolBar(area, this);
+
+ if (allowedAreasActions->isEnabled()) {
+ allowLeftAction->setEnabled(area != Qt::LeftToolBarArea);
+ allowRightAction->setEnabled(area != Qt::RightToolBarArea);
+ allowTopAction->setEnabled(area != Qt::TopToolBarArea);
+ allowBottomAction->setEnabled(area != Qt::BottomToolBarArea);
+ }
+}
+
+void ToolBar::changeMovable(bool movable)
+{ setMovable(movable); }
+
+void ToolBar::allowLeft(bool a)
+{ allow(Qt::LeftToolBarArea, a); }
+
+void ToolBar::allowRight(bool a)
+{ allow(Qt::RightToolBarArea, a); }
+
+void ToolBar::allowTop(bool a)
+{ allow(Qt::TopToolBarArea, a); }
+
+void ToolBar::allowBottom(bool a)
+{ allow(Qt::BottomToolBarArea, a); }
+
+void ToolBar::placeLeft(bool p)
+{ place(Qt::LeftToolBarArea, p); }
+
+void ToolBar::placeRight(bool p)
+{ place(Qt::RightToolBarArea, p); }
+
+void ToolBar::placeTop(bool p)
+{ place(Qt::TopToolBarArea, p); }
+
+void ToolBar::placeBottom(bool p)
+{ place(Qt::BottomToolBarArea, p); }
+
+void ToolBar::insertToolBarBreak()
+{
+ QMainWindow *mainWindow = qobject_cast<QMainWindow *>(parentWidget());
+ Q_ASSERT(mainWindow != 0);
+
+ mainWindow->insertToolBarBreak(this);
+}
+
+void ToolBar::enterEvent(QEvent*)
+{
+/*
+ These labels on top of toolbars look darn ugly
+
+ if (tip == 0) {
+ tip = new QLabel(windowTitle(), this);
+ QPalette pal = tip->palette();
+ QColor c = Qt::black;
+ c.setAlpha(100);
+ pal.setColor(QPalette::Window, c);
+ pal.setColor(QPalette::Foreground, Qt::white);
+ tip->setPalette(pal);
+ tip->setAutoFillBackground(true);
+ tip->setMargin(3);
+ tip->setText(windowTitle());
+ }
+ QPoint c = rect().center();
+ QSize hint = tip->sizeHint();
+ tip->setGeometry(c.x() - hint.width()/2, c.y() - hint.height()/2,
+ hint.width(), hint.height());
+
+ tip->show();
+*/
+}
+
+void ToolBar::leaveEvent(QEvent*)
+{
+ if (tip != 0)
+ tip->hide();
+}
diff --git a/demos/mainwindow/toolbar.h b/demos/mainwindow/toolbar.h
new file mode 100644
index 0000000..a9b9af2
--- /dev/null
+++ b/demos/mainwindow/toolbar.h
@@ -0,0 +1,118 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef TOOLBAR_H
+#define TOOLBAR_H
+
+#include <QToolBar>
+
+QT_FORWARD_DECLARE_CLASS(QAction)
+QT_FORWARD_DECLARE_CLASS(QActionGroup)
+QT_FORWARD_DECLARE_CLASS(QMenu)
+QT_FORWARD_DECLARE_CLASS(QSpinBox)
+QT_FORWARD_DECLARE_CLASS(QLabel)
+
+class ToolBar : public QToolBar
+{
+ Q_OBJECT
+
+ QSpinBox *spinbox;
+ QAction *spinboxAction;
+
+ QAction *orderAction;
+ QAction *randomizeAction;
+ QAction *addSpinBoxAction;
+ QAction *removeSpinBoxAction;
+
+ QAction *movableAction;
+
+ QActionGroup *allowedAreasActions;
+ QAction *allowLeftAction;
+ QAction *allowRightAction;
+ QAction *allowTopAction;
+ QAction *allowBottomAction;
+
+ QActionGroup *areaActions;
+ QAction *leftAction;
+ QAction *rightAction;
+ QAction *topAction;
+ QAction *bottomAction;
+
+ QAction *toolBarBreakAction;
+
+public:
+ ToolBar(const QString &title, QWidget *parent);
+
+ QMenu *menu;
+
+protected:
+ void enterEvent(QEvent*);
+ void leaveEvent(QEvent*);
+
+private:
+ void allow(Qt::ToolBarArea area, bool allow);
+ void place(Qt::ToolBarArea area, bool place);
+ QLabel *tip;
+
+private slots:
+ void order();
+ void randomize();
+ void addSpinBox();
+ void removeSpinBox();
+
+ void changeMovable(bool movable);
+
+ void allowLeft(bool a);
+ void allowRight(bool a);
+ void allowTop(bool a);
+ void allowBottom(bool a);
+
+ void placeLeft(bool p);
+ void placeRight(bool p);
+ void placeTop(bool p);
+ void placeBottom(bool p);
+
+ void updateMenu();
+ void insertToolBarBreak();
+
+};
+
+#endif
diff --git a/demos/mediaplayer/images/screen.png b/demos/mediaplayer/images/screen.png
new file mode 100644
index 0000000..a15df92
--- /dev/null
+++ b/demos/mediaplayer/images/screen.png
Binary files differ
diff --git a/demos/mediaplayer/main.cpp b/demos/mediaplayer/main.cpp
new file mode 100644
index 0000000..279a6c7
--- /dev/null
+++ b/demos/mediaplayer/main.cpp
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+***************************************************************************/
+
+#include <QtGui>
+#include "mediaplayer.h"
+
+int main (int argc, char *argv[])
+{
+ Q_INIT_RESOURCE(mediaplayer);
+ QApplication app(argc, argv);
+ app.setApplicationName("Media Player");
+ app.setOrganizationName("Trolltech");
+ app.setQuitOnLastWindowClosed(true);
+
+ QString fileString = app.arguments().value(1);
+ MediaPlayer player(fileString);
+ player.show();
+
+ return app.exec();
+}
+
diff --git a/demos/mediaplayer/mediaplayer.cpp b/demos/mediaplayer/mediaplayer.cpp
new file mode 100644
index 0000000..5f5a5dc
--- /dev/null
+++ b/demos/mediaplayer/mediaplayer.cpp
@@ -0,0 +1,840 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+***************************************************************************/
+
+#include <QtGui>
+
+#define SLIDER_RANGE 8
+
+#include "mediaplayer.h"
+#include "ui_settings.h"
+
+
+class MediaVideoWidget : public Phonon::VideoWidget
+{
+public:
+ MediaVideoWidget(MediaPlayer *player, QWidget *parent = 0) :
+ Phonon::VideoWidget(parent), m_player(player), m_action(this)
+ {
+ m_action.setCheckable(true);
+ m_action.setChecked(false);
+ m_action.setShortcut(QKeySequence( Qt::AltModifier + Qt::Key_Return));
+ m_action.setShortcutContext(Qt::WindowShortcut);
+ connect(&m_action, SIGNAL(toggled(bool)), SLOT(setFullScreen(bool)));
+ addAction(&m_action);
+ setAcceptDrops(true);
+ }
+
+protected:
+ void mouseDoubleClickEvent(QMouseEvent *e)
+ {
+ Phonon::VideoWidget::mouseDoubleClickEvent(e);
+ setFullScreen(!isFullScreen());
+ }
+
+ void keyPressEvent(QKeyEvent *e)
+ {
+ if (e->key() == Qt::Key_Space && !e->modifiers()) {
+ m_player->playPause();
+ e->accept();
+ return;
+ } else if (e->key() == Qt::Key_Escape && !e->modifiers()) {
+ setFullScreen(false);
+ e->accept();
+ return;
+ }
+ Phonon::VideoWidget::keyPressEvent(e);
+ }
+
+ bool event(QEvent *e)
+ {
+ switch(e->type())
+ {
+ case QEvent::Close:
+ //we just ignore the cose events on the video widget
+ //this prevents ALT+F4 from having an effect in fullscreen mode
+ e->ignore();
+ return true;
+ case QEvent::MouseMove:
+#ifndef QT_NO_CURSOR
+ unsetCursor();
+#endif
+ //fall through
+ case QEvent::WindowStateChange:
+ {
+ //we just update the state of the checkbox, in case it wasn't already
+ m_action.setChecked(windowState() & Qt::WindowFullScreen);
+ const Qt::WindowFlags flags = m_player->windowFlags();
+ if (windowState() & Qt::WindowFullScreen) {
+ m_timer.start(1000, this);
+ } else {
+ m_timer.stop();
+#ifndef QT_NO_CURSOR
+ unsetCursor();
+#endif
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ return Phonon::VideoWidget::event(e);
+ }
+
+ void timerEvent(QTimerEvent *e)
+ {
+ if (e->timerId() == m_timer.timerId()) {
+ //let's store the cursor shape
+#ifndef QT_NO_CURSOR
+ setCursor(Qt::BlankCursor);
+#endif
+ }
+ Phonon::VideoWidget::timerEvent(e);
+ }
+
+ void dropEvent(QDropEvent *e)
+ {
+ m_player->handleDrop(e);
+ }
+
+ void dragEnterEvent(QDragEnterEvent *e) {
+ if (e->mimeData()->hasUrls())
+ e->acceptProposedAction();
+ }
+
+private:
+ MediaPlayer *m_player;
+ QBasicTimer m_timer;
+ QAction m_action;
+};
+
+
+MediaPlayer::MediaPlayer(const QString &filePath) :
+ playButton(0), nextEffect(0), settingsDialog(0), ui(0),
+ m_AudioOutput(Phonon::VideoCategory),
+ m_videoWidget(new MediaVideoWidget(this))
+{
+ setWindowTitle(tr("Media Player"));
+ setContextMenuPolicy(Qt::CustomContextMenu);
+ m_videoWidget->setContextMenuPolicy(Qt::CustomContextMenu);
+
+ QSize buttonSize(34, 28);
+
+ QPushButton *openButton = new QPushButton(this);
+
+ openButton->setIcon(style()->standardIcon(QStyle::SP_DialogOpenButton));
+ QPalette bpal;
+ QColor arrowcolor = bpal.buttonText().color();
+ if (arrowcolor == Qt::black)
+ arrowcolor = QColor(80, 80, 80);
+ bpal.setBrush(QPalette::ButtonText, arrowcolor);
+ openButton->setPalette(bpal);
+
+ rewindButton = new QPushButton(this);
+ rewindButton->setIcon(style()->standardIcon(QStyle::SP_MediaSkipBackward));
+
+ forwardButton = new QPushButton(this);
+ forwardButton->setIcon(style()->standardIcon(QStyle::SP_MediaSkipForward));
+ forwardButton->setEnabled(false);
+
+ playButton = new QPushButton(this);
+ playIcon = style()->standardIcon(QStyle::SP_MediaPlay);
+ pauseIcon = style()->standardIcon(QStyle::SP_MediaPause);
+ playButton->setIcon(playIcon);
+
+ slider = new Phonon::SeekSlider(this);
+ slider->setMediaObject(&m_MediaObject);
+ volume = new Phonon::VolumeSlider(&m_AudioOutput);
+
+ QVBoxLayout *vLayout = new QVBoxLayout(this);
+ vLayout->setContentsMargins(8, 8, 8, 8);
+
+ QHBoxLayout *layout = new QHBoxLayout();
+
+ info = new QLabel(this);
+ info->setMinimumHeight(70);
+ info->setAcceptDrops(false);
+ info->setMargin(2);
+ info->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
+ info->setLineWidth(2);
+ info->setAutoFillBackground(true);
+
+ QPalette palette;
+ palette.setBrush(QPalette::WindowText, Qt::white);
+#ifndef Q_WS_MAC
+ openButton->setMinimumSize(54, buttonSize.height());
+ rewindButton->setMinimumSize(buttonSize);
+ forwardButton->setMinimumSize(buttonSize);
+ playButton->setMinimumSize(buttonSize);
+#endif
+ info->setStyleSheet("border-image:url(:/images/screen.png) ; border-width:3px");
+ info->setPalette(palette);
+ info->setText(tr("<center>No media</center>"));
+
+ volume->setFixedWidth(120);
+
+ layout->addWidget(openButton);
+ layout->addWidget(rewindButton);
+ layout->addWidget(playButton);
+ layout->addWidget(forwardButton);
+
+ layout->addStretch();
+ layout->addWidget(volume);
+
+ vLayout->addWidget(info);
+ initVideoWindow();
+ vLayout->addWidget(&m_videoWindow);
+ QVBoxLayout *buttonPanelLayout = new QVBoxLayout();
+ m_videoWindow.hide();
+ buttonPanelLayout->addLayout(layout);
+
+ timeLabel = new QLabel(this);
+ progressLabel = new QLabel(this);
+ QWidget *sliderPanel = new QWidget(this);
+ QHBoxLayout *sliderLayout = new QHBoxLayout();
+ sliderLayout->addWidget(slider);
+ sliderLayout->addWidget(timeLabel);
+ sliderLayout->addWidget(progressLabel);
+ sliderLayout->setContentsMargins(0, 0, 0, 0);
+ sliderPanel->setLayout(sliderLayout);
+
+ buttonPanelLayout->addWidget(sliderPanel);
+ buttonPanelLayout->setContentsMargins(0, 0, 0, 0);
+#ifdef Q_OS_MAC
+ layout->setSpacing(4);
+ buttonPanelLayout->setSpacing(0);
+ info->setMinimumHeight(100);
+ info->setFont(QFont("verdana", 15));
+ // QStyle *flatButtonStyle = new QWindowsStyle;
+ openButton->setFocusPolicy(Qt::NoFocus);
+ // openButton->setStyle(flatButtonStyle);
+ // playButton->setStyle(flatButtonStyle);
+ // rewindButton->setStyle(flatButtonStyle);
+ // forwardButton->setStyle(flatButtonStyle);
+ #endif
+ QWidget *buttonPanelWidget = new QWidget(this);
+ buttonPanelWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+ buttonPanelWidget->setLayout(buttonPanelLayout);
+ vLayout->addWidget(buttonPanelWidget);
+
+ QHBoxLayout *labelLayout = new QHBoxLayout();
+
+ vLayout->addLayout(labelLayout);
+ setLayout(vLayout);
+
+ // Create menu bar:
+ fileMenu = new QMenu(this);
+ QAction *openFileAction = fileMenu->addAction(tr("Open &File..."));
+ QAction *openUrlAction = fileMenu->addAction(tr("Open &Location..."));
+
+ fileMenu->addSeparator();
+ QMenu *aspectMenu = fileMenu->addMenu(tr("&Aspect ratio"));
+ QActionGroup *aspectGroup = new QActionGroup(aspectMenu);
+ connect(aspectGroup, SIGNAL(triggered(QAction *)), this, SLOT(aspectChanged(QAction *)));
+ aspectGroup->setExclusive(true);
+ QAction *aspectActionAuto = aspectMenu->addAction(tr("Auto"));
+ aspectActionAuto->setCheckable(true);
+ aspectActionAuto->setChecked(true);
+ aspectGroup->addAction(aspectActionAuto);
+ QAction *aspectActionScale = aspectMenu->addAction(tr("Scale"));
+ aspectActionScale->setCheckable(true);
+ aspectGroup->addAction(aspectActionScale);
+ QAction *aspectAction16_9 = aspectMenu->addAction(tr("16/9"));
+ aspectAction16_9->setCheckable(true);
+ aspectGroup->addAction(aspectAction16_9);
+ QAction *aspectAction4_3 = aspectMenu->addAction(tr("4/3"));
+ aspectAction4_3->setCheckable(true);
+ aspectGroup->addAction(aspectAction4_3);
+
+ QMenu *scaleMenu = fileMenu->addMenu(tr("&Scale mode"));
+ QActionGroup *scaleGroup = new QActionGroup(scaleMenu);
+ connect(scaleGroup, SIGNAL(triggered(QAction *)), this, SLOT(scaleChanged(QAction *)));
+ scaleGroup->setExclusive(true);
+ QAction *scaleActionFit = scaleMenu->addAction(tr("Fit in view"));
+ scaleActionFit->setCheckable(true);
+ scaleActionFit->setChecked(true);
+ scaleGroup->addAction(scaleActionFit);
+ QAction *scaleActionCrop = scaleMenu->addAction(tr("Scale and crop"));
+ scaleActionCrop->setCheckable(true);
+ scaleGroup->addAction(scaleActionCrop);
+
+ fileMenu->addSeparator();
+ QAction *settingsAction = fileMenu->addAction(tr("&Settings..."));
+
+ // Setup signal connections:
+ connect(rewindButton, SIGNAL(clicked()), this, SLOT(rewind()));
+ //connect(openButton, SIGNAL(clicked()), this, SLOT(openFile()));
+ openButton->setMenu(fileMenu);
+
+ connect(playButton, SIGNAL(clicked()), this, SLOT(playPause()));
+ connect(forwardButton, SIGNAL(clicked()), this, SLOT(forward()));
+ //connect(openButton, SIGNAL(clicked()), this, SLOT(openFile()));
+ connect(settingsAction, SIGNAL(triggered(bool)), this, SLOT(showSettingsDialog()));
+ connect(openUrlAction, SIGNAL(triggered(bool)), this, SLOT(openUrl()));
+ connect(openFileAction, SIGNAL(triggered(bool)), this, SLOT(openFile()));
+
+ connect(m_videoWidget, SIGNAL(customContextMenuRequested(const QPoint &)), SLOT(showContextMenu(const QPoint &)));
+ connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), SLOT(showContextMenu(const QPoint &)));
+ connect(&m_MediaObject, SIGNAL(metaDataChanged()), this, SLOT(updateInfo()));
+ connect(&m_MediaObject, SIGNAL(totalTimeChanged(qint64)), this, SLOT(updateTime()));
+ connect(&m_MediaObject, SIGNAL(tick(qint64)), this, SLOT(updateTime()));
+ connect(&m_MediaObject, SIGNAL(finished()), this, SLOT(finished()));
+ connect(&m_MediaObject, SIGNAL(stateChanged(Phonon::State, Phonon::State)), this, SLOT(stateChanged(Phonon::State, Phonon::State)));
+ connect(&m_MediaObject, SIGNAL(bufferStatus(int)), this, SLOT(bufferStatus(int)));
+
+ rewindButton->setEnabled(false);
+ playButton->setEnabled(false);
+ setAcceptDrops(true);
+
+ m_audioOutputPath = Phonon::createPath(&m_MediaObject, &m_AudioOutput);
+ Phonon::createPath(&m_MediaObject, m_videoWidget);
+
+ if (!filePath.isEmpty())
+ setFile(filePath);
+ resize(minimumSizeHint());
+}
+
+void MediaPlayer::stateChanged(Phonon::State newstate, Phonon::State oldstate)
+{
+ Q_UNUSED(oldstate);
+
+ if (oldstate == Phonon::LoadingState) {
+ m_videoWindow.setVisible(m_MediaObject.hasVideo());
+ info->setVisible(!m_MediaObject.hasVideo());
+ QRect videoHintRect = QRect(QPoint(0, 0), m_videoWindow.sizeHint());
+ QRect newVideoRect = QApplication::desktop()->screenGeometry().intersected(videoHintRect);
+ if (m_MediaObject.hasVideo()){
+ // Flush event que so that sizeHint takes the
+ // recently shown/hidden m_videoWindow into account:
+ qApp->processEvents();
+ resize(sizeHint());
+ } else
+ resize(minimumSize());
+ }
+
+ switch (newstate) {
+ case Phonon::ErrorState:
+ QMessageBox::warning(this, "Phonon Mediaplayer", m_MediaObject.errorString(), QMessageBox::Close);
+ if (m_MediaObject.errorType() == Phonon::FatalError) {
+ playButton->setEnabled(false);
+ rewindButton->setEnabled(false);
+ } else {
+ m_MediaObject.pause();
+ }
+ break;
+ case Phonon::PausedState:
+ case Phonon::StoppedState:
+ playButton->setIcon(playIcon);
+ if (m_MediaObject.currentSource().type() != Phonon::MediaSource::Invalid){
+ playButton->setEnabled(true);
+ rewindButton->setEnabled(true);
+ } else {
+ playButton->setEnabled(false);
+ rewindButton->setEnabled(false);
+ }
+ break;
+ case Phonon::PlayingState:
+ playButton->setEnabled(true);
+ playButton->setIcon(pauseIcon);
+ if (m_MediaObject.hasVideo())
+ m_videoWindow.show();
+ // Fall through
+ case Phonon::BufferingState:
+ rewindButton->setEnabled(true);
+ break;
+ case Phonon::LoadingState:
+ rewindButton->setEnabled(false);
+ break;
+ }
+
+}
+
+void MediaPlayer::initSettingsDialog()
+{
+ settingsDialog = new QDialog(this);
+ ui = new Ui_settings();
+ ui->setupUi(settingsDialog);
+
+ connect(ui->brightnessSlider, SIGNAL(valueChanged(int)), this, SLOT(setBrightness(int)));
+ connect(ui->hueSlider, SIGNAL(valueChanged(int)), this, SLOT(setHue(int)));
+ connect(ui->saturationSlider, SIGNAL(valueChanged(int)), this, SLOT(setSaturation(int)));
+ connect(ui->contrastSlider , SIGNAL(valueChanged(int)), this, SLOT(setContrast(int)));
+ connect(ui->aspectCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(setAspect(int)));
+ connect(ui->scalemodeCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(setScale(int)));
+
+ ui->brightnessSlider->setValue(int(m_videoWidget->brightness() * SLIDER_RANGE));
+ ui->hueSlider->setValue(int(m_videoWidget->hue() * SLIDER_RANGE));
+ ui->saturationSlider->setValue(int(m_videoWidget->saturation() * SLIDER_RANGE));
+ ui->contrastSlider->setValue(int(m_videoWidget->contrast() * SLIDER_RANGE));
+ ui->aspectCombo->setCurrentIndex(m_videoWidget->aspectRatio());
+ ui->scalemodeCombo->setCurrentIndex(m_videoWidget->scaleMode());
+ connect(ui->effectButton, SIGNAL(clicked()), this, SLOT(configureEffect()));
+
+#ifdef Q_WS_X11
+ //Cross fading is not currently implemented in the GStreamer backend
+ ui->crossFadeSlider->setVisible(false);
+ ui->crossFadeLabel->setVisible(false);
+ ui->crossFadeLabel1->setVisible(false);
+ ui->crossFadeLabel2->setVisible(false);
+ ui->crossFadeLabel3->setVisible(false);
+#endif
+ ui->crossFadeSlider->setValue((int)(2 * m_MediaObject.transitionTime() / 1000.0f));
+
+ // Insert audio devices:
+ QList<Phonon::AudioOutputDevice> devices = Phonon::BackendCapabilities::availableAudioOutputDevices();
+ for (int i=0; i<devices.size(); i++){
+ QString itemText = devices[i].name();
+ if (!devices[i].description().isEmpty()) {
+ itemText += QString::fromLatin1(" (%1)").arg(devices[i].description());
+ }
+ ui->deviceCombo->addItem(itemText);
+ if (devices[i] == m_AudioOutput.outputDevice())
+ ui->deviceCombo->setCurrentIndex(i);
+ }
+
+ // Insert audio effects:
+ ui->audioEffectsCombo->addItem(tr("<no effect>"));
+ QList<Phonon::Effect *> currEffects = m_audioOutputPath.effects();
+ Phonon::Effect *currEffect = currEffects.size() ? currEffects[0] : 0;
+ QList<Phonon::EffectDescription> availableEffects = Phonon::BackendCapabilities::availableAudioEffects();
+ for (int i=0; i<availableEffects.size(); i++){
+ ui->audioEffectsCombo->addItem(availableEffects[i].name());
+ if (currEffect && availableEffects[i] == currEffect->description())
+ ui->audioEffectsCombo->setCurrentIndex(i+1);
+ }
+ connect(ui->audioEffectsCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(effectChanged()));
+
+}
+
+void MediaPlayer::effectChanged()
+{
+ int currentIndex = ui->audioEffectsCombo->currentIndex();
+ if (currentIndex) {
+ QList<Phonon::EffectDescription> availableEffects = Phonon::BackendCapabilities::availableAudioEffects();
+ Phonon::EffectDescription chosenEffect = availableEffects[currentIndex - 1];
+
+ QList<Phonon::Effect *> currEffects = m_audioOutputPath.effects();
+ Phonon::Effect *currentEffect = currEffects.size() ? currEffects[0] : 0;
+
+ // Deleting the running effect will stop playback, it is deleted when removed from path
+ if (nextEffect && !(currentEffect && (currentEffect->description().name() == nextEffect->description().name())))
+ delete nextEffect;
+
+ nextEffect = new Phonon::Effect(chosenEffect);
+ }
+ ui->effectButton->setEnabled(currentIndex);
+}
+
+void MediaPlayer::showSettingsDialog()
+{
+ if (!settingsDialog)
+ initSettingsDialog();
+
+ float oldBrightness = m_videoWidget->brightness();
+ float oldHue = m_videoWidget->hue();
+ float oldSaturation = m_videoWidget->saturation();
+ float oldContrast = m_videoWidget->contrast();
+ Phonon::VideoWidget::AspectRatio oldAspect = m_videoWidget->aspectRatio();
+ Phonon::VideoWidget::ScaleMode oldScale = m_videoWidget->scaleMode();
+ int currentEffect = ui->audioEffectsCombo->currentIndex();
+ settingsDialog->exec();
+
+ if (settingsDialog->result() == QDialog::Accepted){
+ m_MediaObject.setTransitionTime((int)(1000 * float(ui->crossFadeSlider->value()) / 2.0f));
+ QList<Phonon::AudioOutputDevice> devices = Phonon::BackendCapabilities::availableAudioOutputDevices();
+ m_AudioOutput.setOutputDevice(devices[ui->deviceCombo->currentIndex()]);
+ QList<Phonon::Effect *> currEffects = m_audioOutputPath.effects();
+ QList<Phonon::EffectDescription> availableEffects = Phonon::BackendCapabilities::availableAudioEffects();
+
+ if (ui->audioEffectsCombo->currentIndex() > 0){
+ Phonon::Effect *currentEffect = currEffects.size() ? currEffects[0] : 0;
+ if (!currentEffect || currentEffect->description() != nextEffect->description()){
+ foreach(Phonon::Effect *effect, currEffects) {
+ m_audioOutputPath.removeEffect(effect);
+ delete effect;
+ }
+ m_audioOutputPath.insertEffect(nextEffect);
+ }
+ } else {
+ foreach(Phonon::Effect *effect, currEffects) {
+ m_audioOutputPath.removeEffect(effect);
+ delete effect;
+ nextEffect = 0;
+ }
+ }
+ } else {
+ // Restore previous settings
+ m_videoWidget->setBrightness(oldBrightness);
+ m_videoWidget->setSaturation(oldSaturation);
+ m_videoWidget->setHue(oldHue);
+ m_videoWidget->setContrast(oldContrast);
+ m_videoWidget->setAspectRatio(oldAspect);
+ m_videoWidget->setScaleMode(oldScale);
+ ui->audioEffectsCombo->setCurrentIndex(currentEffect);
+ }
+}
+
+void MediaPlayer::initVideoWindow()
+{
+ QVBoxLayout *videoLayout = new QVBoxLayout();
+ videoLayout->addWidget(m_videoWidget);
+ videoLayout->setContentsMargins(0, 0, 0, 0);
+ m_videoWindow.setLayout(videoLayout);
+ m_videoWindow.setMinimumSize(100, 100);
+}
+
+
+void MediaPlayer::configureEffect()
+{
+ if (!nextEffect)
+ return;
+
+
+ QList<Phonon::Effect *> currEffects = m_audioOutputPath.effects();
+ const QList<Phonon::EffectDescription> availableEffects = Phonon::BackendCapabilities::availableAudioEffects();
+ if (ui->audioEffectsCombo->currentIndex() > 0) {
+ Phonon::EffectDescription chosenEffect = availableEffects[ui->audioEffectsCombo->currentIndex() - 1];
+
+ QDialog effectDialog;
+ effectDialog.setWindowTitle(tr("Configure effect"));
+ QVBoxLayout *topLayout = new QVBoxLayout(&effectDialog);
+
+ QLabel *description = new QLabel("<b>Description:</b><br>" + chosenEffect.description(), &effectDialog);
+ description->setWordWrap(true);
+ topLayout->addWidget(description);
+
+ QScrollArea *scrollArea = new QScrollArea(&effectDialog);
+ topLayout->addWidget(scrollArea);
+
+ QVariantList savedParamValues;
+ foreach(Phonon::EffectParameter param, nextEffect->parameters()) {
+ savedParamValues << nextEffect->parameterValue(param);
+ }
+
+ QWidget *scrollWidget = new Phonon::EffectWidget(nextEffect);
+ scrollWidget->setMinimumWidth(320);
+ scrollWidget->setContentsMargins(10, 10, 10,10);
+ scrollArea->setWidget(scrollWidget);
+
+ QDialogButtonBox *bbox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, &effectDialog);
+ connect(bbox->button(QDialogButtonBox::Ok), SIGNAL(clicked()), &effectDialog, SLOT(accept()));
+ connect(bbox->button(QDialogButtonBox::Cancel), SIGNAL(clicked()), &effectDialog, SLOT(reject()));
+ topLayout->addWidget(bbox);
+
+ effectDialog.exec();
+
+ if (effectDialog.result() != QDialog::Accepted) {
+ //we need to restore the paramaters values
+ int currentIndex = 0;
+ foreach(Phonon::EffectParameter param, nextEffect->parameters()) {
+ nextEffect->setParameterValue(param, savedParamValues.at(currentIndex++));
+ }
+
+ }
+ }
+}
+
+void MediaPlayer::handleDrop(QDropEvent *e)
+{
+ QList<QUrl> urls = e->mimeData()->urls();
+ if (e->proposedAction() == Qt::MoveAction){
+ // Just add to the queue:
+ for (int i=0; i<urls.size(); i++)
+ m_MediaObject.enqueue(Phonon::MediaSource(urls[i].toLocalFile()));
+ } else {
+ // Create new queue:
+ m_MediaObject.clearQueue();
+ if (urls.size() > 0) {
+ QString fileName = urls[0].toLocalFile();
+ QDir dir(fileName);
+ if (dir.exists()) {
+ dir.setFilter(QDir::Files);
+ QStringList entries = dir.entryList();
+ if (entries.size() > 0) {
+ setFile(fileName + QDir::separator() + entries[0]);
+ for (int i=1; i< entries.size(); ++i)
+ m_MediaObject.enqueue(fileName + QDir::separator() + entries[i]);
+ }
+ } else {
+ setFile(fileName);
+ for (int i=1; i<urls.size(); i++)
+ m_MediaObject.enqueue(Phonon::MediaSource(urls[i].toLocalFile()));
+ }
+ }
+ }
+ forwardButton->setEnabled(m_MediaObject.queue().size() > 0);
+ m_MediaObject.play();
+}
+
+void MediaPlayer::dropEvent(QDropEvent *e)
+{
+ if (e->mimeData()->hasUrls() && e->proposedAction() != Qt::LinkAction) {
+ e->acceptProposedAction();
+ handleDrop(e);
+ } else {
+ e->ignore();
+ }
+}
+
+void MediaPlayer::dragEnterEvent(QDragEnterEvent *e)
+{
+ dragMoveEvent(e);
+}
+
+void MediaPlayer::dragMoveEvent(QDragMoveEvent *e)
+{
+ if (e->mimeData()->hasUrls()) {
+ if (e->proposedAction() == Qt::CopyAction || e->proposedAction() == Qt::MoveAction){
+ e->acceptProposedAction();
+ }
+ }
+}
+
+void MediaPlayer::playPause()
+{
+ if (m_MediaObject.state() == Phonon::PlayingState)
+ m_MediaObject.pause();
+ else {
+ if (m_MediaObject.currentTime() == m_MediaObject.totalTime())
+ m_MediaObject.seek(0);
+ m_MediaObject.play();
+ }
+}
+
+void MediaPlayer::setFile(const QString &fileName)
+{
+ setWindowTitle(fileName.right(fileName.length() - fileName.lastIndexOf('/') - 1));
+ m_MediaObject.setCurrentSource(Phonon::MediaSource(fileName));
+ m_MediaObject.play();
+}
+
+void MediaPlayer::openFile()
+{
+ QStringList fileNames = QFileDialog::getOpenFileNames(this);
+ m_MediaObject.clearQueue();
+ if (fileNames.size() > 0) {
+ QString fileName = fileNames[0];
+ setFile(fileName);
+ for (int i=1; i<fileNames.size(); i++)
+ m_MediaObject.enqueue(Phonon::MediaSource(fileNames[i]));
+ }
+ forwardButton->setEnabled(m_MediaObject.queue().size() > 0);
+}
+
+void MediaPlayer::bufferStatus(int percent)
+{
+ if (percent == 0 || percent == 100)
+ progressLabel->setText(QString());
+ else {
+ QString str = QString::fromLatin1("(%1%)").arg(percent);
+ progressLabel->setText(str);
+ }
+}
+
+void MediaPlayer::setSaturation(int val)
+{
+ m_videoWidget->setSaturation(val / qreal(SLIDER_RANGE));
+}
+
+void MediaPlayer::setHue(int val)
+{
+ m_videoWidget->setHue(val / qreal(SLIDER_RANGE));
+}
+
+void MediaPlayer::setAspect(int val)
+{
+ m_videoWidget->setAspectRatio(Phonon::VideoWidget::AspectRatio(val));
+}
+
+void MediaPlayer::setScale(int val)
+{
+ m_videoWidget->setScaleMode(Phonon::VideoWidget::ScaleMode(val));
+}
+
+void MediaPlayer::setBrightness(int val)
+{
+ m_videoWidget->setBrightness(val / qreal(SLIDER_RANGE));
+}
+
+void MediaPlayer::setContrast(int val)
+{
+ m_videoWidget->setContrast(val / qreal(SLIDER_RANGE));
+}
+
+void MediaPlayer::updateInfo()
+{
+ int maxLength = 30;
+ QString font = "<font color=#ffeeaa>";
+ QString fontmono = "<font family=\"monospace,courier new\" color=#ffeeaa>";
+
+ QMap <QString, QString> metaData = m_MediaObject.metaData();
+ QString trackArtist = metaData.value("ARTIST");
+ if (trackArtist.length() > maxLength)
+ trackArtist = trackArtist.left(maxLength) + "...";
+
+ QString trackTitle = metaData.value("TITLE");
+ int trackBitrate = metaData.value("BITRATE").toInt();
+
+ QString fileName;
+ if (m_MediaObject.currentSource().type() == Phonon::MediaSource::Url) {
+ fileName = m_MediaObject.currentSource().url().toString();
+ } else {
+ fileName = m_MediaObject.currentSource().fileName();
+ fileName = fileName.right(fileName.length() - fileName.lastIndexOf('/') - 1);
+ if (fileName.length() > maxLength)
+ fileName = fileName.left(maxLength) + "...";
+ }
+
+ QString title;
+ if (!trackTitle.isEmpty()) {
+ if (trackTitle.length() > maxLength)
+ trackTitle = trackTitle.left(maxLength) + "...";
+ title = "Title: " + font + trackTitle + "<br></font>";
+ } else if (!fileName.isEmpty()) {
+ if (fileName.length() > maxLength)
+ fileName = fileName.left(maxLength) + "...";
+ title = font + fileName + "</font>";
+ if (m_MediaObject.currentSource().type() == Phonon::MediaSource::Url) {
+ title.prepend("Url: ");
+ } else {
+ title.prepend("File: ");
+ }
+ }
+
+ QString artist;
+ if (!trackArtist.isEmpty())
+ artist = "Artist: " + font + trackArtist + "</font>";
+
+ QString bitrate;
+ if (trackBitrate != 0)
+ bitrate = "<br>Bitrate: " + font + QString::number(trackBitrate/1000) + "kbit</font>";
+
+ info->setText(title + artist + bitrate);
+}
+
+void MediaPlayer::updateTime()
+{
+ long len = m_MediaObject.totalTime();
+ long pos = m_MediaObject.currentTime();
+ QString timeString;
+ if (pos || len)
+ {
+ int sec = pos/1000;
+ int min = sec/60;
+ int hour = min/60;
+ int msec = pos;
+
+ QTime playTime(hour%60, min%60, sec%60, msec%1000);
+ sec = len / 1000;
+ min = sec / 60;
+ hour = min / 60;
+ msec = len;
+
+ QTime stopTime(hour%60, min%60, sec%60, msec%1000);
+ QString timeFormat = "m:ss";
+ if (hour > 0)
+ timeFormat = "h:mm:ss";
+ timeString = playTime.toString(timeFormat);
+ if (len)
+ timeString += " / " + stopTime.toString(timeFormat);
+ }
+ timeLabel->setText(timeString);
+}
+
+void MediaPlayer::rewind()
+{
+ m_MediaObject.seek(0);
+}
+
+void MediaPlayer::forward()
+{
+ QList<Phonon::MediaSource> queue = m_MediaObject.queue();
+ if (queue.size() > 0) {
+ m_MediaObject.setCurrentSource(queue[0]);
+ forwardButton->setEnabled(queue.size() > 1);
+ m_MediaObject.play();
+ }
+}
+
+void MediaPlayer::openUrl()
+{
+ QSettings settings;
+ settings.beginGroup(QLatin1String("BrowserMainWindow"));
+ QString sourceURL = settings.value("location").toString();
+ bool ok = false;
+ sourceURL = QInputDialog::getText(this, tr("Open Location"), tr("Please enter a valid address here:"), QLineEdit::Normal, sourceURL, &ok);
+ if (ok && !sourceURL.isEmpty()) {
+ setWindowTitle(sourceURL.right(sourceURL.length() - sourceURL.lastIndexOf('/') - 1));
+ m_MediaObject.setCurrentSource(Phonon::MediaSource(QUrl::fromEncoded(sourceURL.toUtf8())));
+ m_MediaObject.play();
+ settings.setValue("location", sourceURL);
+ }
+}
+
+void MediaPlayer::finished()
+{
+}
+
+void MediaPlayer::showContextMenu(const QPoint &p)
+{
+ fileMenu->popup(m_videoWidget->isFullScreen() ? p : mapToGlobal(p));
+}
+
+void MediaPlayer::scaleChanged(QAction *act)
+{
+ if (act->text() == tr("Scale and crop"))
+ m_videoWidget->setScaleMode(Phonon::VideoWidget::ScaleAndCrop);
+ else
+ m_videoWidget->setScaleMode(Phonon::VideoWidget::FitInView);
+}
+
+void MediaPlayer::aspectChanged(QAction *act)
+{
+ if (act->text() == tr("16/9"))
+ m_videoWidget->setAspectRatio(Phonon::VideoWidget::AspectRatio16_9);
+ else if (act->text() == tr("Scale"))
+ m_videoWidget->setAspectRatio(Phonon::VideoWidget::AspectRatioWidget);
+ else if (act->text() == tr("4/3"))
+ m_videoWidget->setAspectRatio(Phonon::VideoWidget::AspectRatio4_3);
+ else
+ m_videoWidget->setAspectRatio(Phonon::VideoWidget::AspectRatioAuto);
+}
+
diff --git a/demos/mediaplayer/mediaplayer.h b/demos/mediaplayer/mediaplayer.h
new file mode 100644
index 0000000..d162435
--- /dev/null
+++ b/demos/mediaplayer/mediaplayer.h
@@ -0,0 +1,137 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+***************************************************************************/
+
+#ifndef MEDIALAYER_H
+#define MEDIAPLAYER_H
+
+#include <QtGui/QWidget>
+#include <QtGui/QApplication>
+#include <QtCore/QTimerEvent>
+#include <QtGui/QShowEvent>
+#include <QtGui/QIcon>
+
+#include <Phonon/AudioOutput>
+#include <Phonon/BackendCapabilities>
+#include <Phonon/Effect>
+#include <Phonon/EffectParameter>
+#include <Phonon/EffectWidget>
+#include <Phonon/MediaObject>
+#include <Phonon/SeekSlider>
+#include <Phonon/VideoWidget>
+#include <Phonon/VolumeSlider>
+
+QT_BEGIN_NAMESPACE
+class QPushButton;
+class QLabel;
+class QSlider;
+class QTextEdit;
+class QMenu;
+class Ui_settings;
+QT_END_NAMESPACE
+
+class MediaPlayer :
+ public QWidget
+{
+ Q_OBJECT
+public:
+ MediaPlayer(const QString &);
+
+ void dragEnterEvent(QDragEnterEvent *e);
+ void dragMoveEvent(QDragMoveEvent *e);
+ void dropEvent(QDropEvent *e);
+ void handleDrop(QDropEvent *e);
+ void setFile(const QString &text);
+ void initVideoWindow();
+ void initSettingsDialog();
+
+public slots:
+ void openFile();
+ void rewind();
+ void forward();
+ void updateInfo();
+ void updateTime();
+ void finished();
+ void playPause();
+ void scaleChanged(QAction *);
+ void aspectChanged(QAction *);
+
+private slots:
+ void setAspect(int);
+ void setScale(int);
+ void setSaturation(int);
+ void setContrast(int);
+ void setHue(int);
+ void setBrightness(int);
+ void stateChanged(Phonon::State newstate, Phonon::State oldstate);
+ void effectChanged();
+ void showSettingsDialog();
+ void showContextMenu(const QPoint &);
+ void bufferStatus(int percent);
+ void openUrl();
+ void configureEffect();
+
+private:
+ QIcon playIcon;
+ QIcon pauseIcon;
+ QMenu *fileMenu;
+ QPushButton *playButton;
+ QPushButton *rewindButton;
+ QPushButton *forwardButton;
+ Phonon::SeekSlider *slider;
+ QLabel *timeLabel;
+ QLabel *progressLabel;
+ Phonon::VolumeSlider *volume;
+ QSlider *m_hueSlider;
+ QSlider *m_satSlider;
+ QSlider *m_contSlider;
+ QLabel *info;
+ Phonon::Effect *nextEffect;
+ QDialog *settingsDialog;
+ Ui_settings *ui;
+
+ QWidget m_videoWindow;
+ Phonon::MediaObject m_MediaObject;
+ Phonon::AudioOutput m_AudioOutput;
+ Phonon::VideoWidget *m_videoWidget;
+ Phonon::Path m_audioOutputPath;
+};
+
+#endif //MEDIAPLAYER_H
diff --git a/demos/mediaplayer/mediaplayer.pro b/demos/mediaplayer/mediaplayer.pro
new file mode 100644
index 0000000..c64abd9
--- /dev/null
+++ b/demos/mediaplayer/mediaplayer.pro
@@ -0,0 +1,28 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Thu Aug 23 18:02:14 2007
+######################################################################
+
+TEMPLATE = app
+TARGET =
+DEPENDPATH += . build src ui
+
+QT += phonon
+
+FORMS += settings.ui
+RESOURCES += mediaplayer.qrc
+
+!win32:CONFIG += CONSOLE
+
+SOURCES += main.cpp mediaplayer.cpp
+HEADERS += mediaplayer.h
+
+target.path = $$[QT_INSTALL_DEMOS]/mediaplayer
+sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES *.pro *.html *.doc images
+sources.path = $$[QT_INSTALL_DEMOS]/mediaplayer
+INSTALLS += target sources
+
+wince*{
+DEPLOYMENT_PLUGIN += phonon_ds9 phonon_waveout
+}
+
+
diff --git a/demos/mediaplayer/mediaplayer.qrc b/demos/mediaplayer/mediaplayer.qrc
new file mode 100644
index 0000000..bcdf404
--- /dev/null
+++ b/demos/mediaplayer/mediaplayer.qrc
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>images/screen.png</file>
+</qresource>
+</RCC>
diff --git a/demos/mediaplayer/settings.ui b/demos/mediaplayer/settings.ui
new file mode 100644
index 0000000..d2cedd4
--- /dev/null
+++ b/demos/mediaplayer/settings.ui
@@ -0,0 +1,464 @@
+<ui version="4.0" >
+ <class>settings</class>
+ <widget class="QDialog" name="settings" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>360</width>
+ <height>362</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Settings</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2" >
+ <item>
+ <widget class="QGroupBox" name="groupBox" >
+ <property name="title" >
+ <string>Video options:</string>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" name="gridLayout" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_9" >
+ <property name="text" >
+ <string>Contrast:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2" >
+ <widget class="QSlider" name="contrastSlider" >
+ <property name="minimum" >
+ <number>-8</number>
+ </property>
+ <property name="maximum" >
+ <number>8</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickPosition" >
+ <enum>QSlider::TicksBelow</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>4</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_8" >
+ <property name="text" >
+ <string>Brightness:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2" >
+ <widget class="QSlider" name="brightnessSlider" >
+ <property name="minimum" >
+ <number>-8</number>
+ </property>
+ <property name="maximum" >
+ <number>8</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickPosition" >
+ <enum>QSlider::TicksBelow</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>4</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_7" >
+ <property name="text" >
+ <string>Saturation:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="2" >
+ <widget class="QSlider" name="saturationSlider" >
+ <property name="minimum" >
+ <number>-8</number>
+ </property>
+ <property name="maximum" >
+ <number>8</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickPosition" >
+ <enum>QSlider::TicksBelow</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>4</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Hue:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" colspan="2" >
+ <widget class="QSlider" name="hueSlider" >
+ <property name="minimum" >
+ <number>-8</number>
+ </property>
+ <property name="maximum" >
+ <number>8</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickPosition" >
+ <enum>QSlider::TicksBelow</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>4</number>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="2" >
+ <widget class="QLabel" name="label_10" >
+ <property name="text" >
+ <string>Aspect ratio:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="2" >
+ <widget class="QComboBox" name="aspectCombo" >
+ <property name="minimumSize" >
+ <size>
+ <width>180</width>
+ <height>0</height>
+ </size>
+ </property>
+ <item>
+ <property name="text" >
+ <string>Auto</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Stretch</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>4/3</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>16/9</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="5" column="0" colspan="2" >
+ <widget class="QLabel" name="label_11" >
+ <property name="text" >
+ <string>Scale Mode:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="2" >
+ <widget class="QComboBox" name="scalemodeCombo" >
+ <property name="minimumSize" >
+ <size>
+ <width>180</width>
+ <height>0</height>
+ </size>
+ </property>
+ <item>
+ <property name="text" >
+ <string>Fit in view</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Scale and crop</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_2" >
+ <property name="title" >
+ <string>Audio options:</string>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout" >
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Maximum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>90</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Audio device:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="deviceCombo" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout" >
+ <item>
+ <widget class="QLabel" name="label_6" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Maximum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>90</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Audio effect:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="audioEffectsCombo" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Maximum" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="effectButton" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>Setup</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QLabel" name="crossFadeLabel" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Maximum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>90</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Cross fade:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <item>
+ <widget class="QSlider" name="crossFadeSlider" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimum" >
+ <number>-20</number>
+ </property>
+ <property name="maximum" >
+ <number>20</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>2</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickPosition" >
+ <enum>QSlider::TicksBelow</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QLabel" name="crossFadeLabel1" >
+ <property name="font" >
+ <font>
+ <pointsize>9</pointsize>
+ </font>
+ </property>
+ <property name="text" >
+ <string>-10 Sec</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="crossFadeLabel2" >
+ <property name="font" >
+ <font>
+ <pointsize>9</pointsize>
+ </font>
+ </property>
+ <property name="text" >
+ <string>0</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="crossFadeLabel3" >
+ <property name="font" >
+ <font>
+ <pointsize>9</pointsize>
+ </font>
+ </property>
+ <property name="text" >
+ <string>10 Sec</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>settings</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>settings</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/demos/pathstroke/main.cpp b/demos/pathstroke/main.cpp
new file mode 100644
index 0000000..613d835
--- /dev/null
+++ b/demos/pathstroke/main.cpp
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "pathstroke.h"
+#include <QApplication>
+
+int main(int argc, char **argv)
+{
+ Q_INIT_RESOURCE(pathstroke);
+
+ QApplication app(argc, argv);
+
+ bool smallScreen = false;
+ for (int i=0; i<argc; i++)
+ if (QString(argv[i]) == "-small-screen")
+ smallScreen = true;
+
+ PathStrokeWidget pathStrokeWidget(smallScreen);
+ QStyle *arthurStyle = new ArthurStyle();
+ pathStrokeWidget.setStyle(arthurStyle);
+ QList<QWidget *> widgets = qFindChildren<QWidget *>(&pathStrokeWidget);
+ foreach (QWidget *w, widgets)
+ w->setStyle(arthurStyle);
+
+ if (smallScreen)
+ pathStrokeWidget.showFullScreen();
+ else
+ pathStrokeWidget.show();
+
+ return app.exec();
+}
diff --git a/demos/pathstroke/pathstroke.cpp b/demos/pathstroke/pathstroke.cpp
new file mode 100644
index 0000000..d079490
--- /dev/null
+++ b/demos/pathstroke/pathstroke.cpp
@@ -0,0 +1,599 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "pathstroke.h"
+#include "arthurstyle.h"
+#include "arthurwidgets.h"
+
+#include <stdio.h>
+
+extern void draw_round_rect(QPainter *p, const QRect &bounds, int radius);
+
+
+PathStrokeControls::PathStrokeControls(QWidget* parent, PathStrokeRenderer* renderer, bool smallScreen)
+ : QWidget(parent)
+{
+ m_renderer = renderer;
+
+ if (smallScreen)
+ layoutForSmallScreens();
+ else
+ layoutForDesktop();
+}
+
+void PathStrokeControls::createCommonControls(QWidget* parent)
+{
+ m_capGroup = new QGroupBox(parent);
+ m_capGroup->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+ QRadioButton *flatCap = new QRadioButton(m_capGroup);
+ QRadioButton *squareCap = new QRadioButton(m_capGroup);
+ QRadioButton *roundCap = new QRadioButton(m_capGroup);
+ m_capGroup->setTitle(tr("Cap Style"));
+ flatCap->setText(tr("Flat"));
+ squareCap->setText(tr("Square"));
+ roundCap->setText(tr("Round"));
+ flatCap->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ squareCap->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ roundCap->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+
+ m_joinGroup = new QGroupBox(parent);
+ m_joinGroup->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+ QRadioButton *bevelJoin = new QRadioButton(m_joinGroup);
+ QRadioButton *miterJoin = new QRadioButton(m_joinGroup);
+ QRadioButton *roundJoin = new QRadioButton(m_joinGroup);
+ m_joinGroup->setTitle(tr("Join Style"));
+ bevelJoin->setText(tr("Bevel"));
+ miterJoin->setText(tr("Miter"));
+ roundJoin->setText(tr("Round"));
+
+ m_styleGroup = new QGroupBox(parent);
+ m_styleGroup->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+ QRadioButton *solidLine = new QRadioButton(m_styleGroup);
+ QRadioButton *dashLine = new QRadioButton(m_styleGroup);
+ QRadioButton *dotLine = new QRadioButton(m_styleGroup);
+ QRadioButton *dashDotLine = new QRadioButton(m_styleGroup);
+ QRadioButton *dashDotDotLine = new QRadioButton(m_styleGroup);
+ QRadioButton *customDashLine = new QRadioButton(m_styleGroup);
+ m_styleGroup->setTitle(tr("Pen Style"));
+
+ QPixmap line_solid(":res/images/line_solid.png");
+ solidLine->setIcon(line_solid);
+ solidLine->setIconSize(line_solid.size());
+ QPixmap line_dashed(":res/images/line_dashed.png");
+ dashLine->setIcon(line_dashed);
+ dashLine->setIconSize(line_dashed.size());
+ QPixmap line_dotted(":res/images/line_dotted.png");
+ dotLine->setIcon(line_dotted);
+ dotLine->setIconSize(line_dotted.size());
+ QPixmap line_dash_dot(":res/images/line_dash_dot.png");
+ dashDotLine->setIcon(line_dash_dot);
+ dashDotLine->setIconSize(line_dash_dot.size());
+ QPixmap line_dash_dot_dot(":res/images/line_dash_dot_dot.png");
+ dashDotDotLine->setIcon(line_dash_dot_dot);
+ dashDotDotLine->setIconSize(line_dash_dot_dot.size());
+ customDashLine->setText(tr("Custom"));
+
+ int fixedHeight = bevelJoin->sizeHint().height();
+ solidLine->setFixedHeight(fixedHeight);
+ dashLine->setFixedHeight(fixedHeight);
+ dotLine->setFixedHeight(fixedHeight);
+ dashDotLine->setFixedHeight(fixedHeight);
+ dashDotDotLine->setFixedHeight(fixedHeight);
+
+ m_pathModeGroup = new QGroupBox(parent);
+ m_pathModeGroup->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+ QRadioButton *curveMode = new QRadioButton(m_pathModeGroup);
+ QRadioButton *lineMode = new QRadioButton(m_pathModeGroup);
+ m_pathModeGroup->setTitle(tr("Line Style"));
+ curveMode->setText(tr("Curves"));
+ lineMode->setText(tr("Lines"));
+
+
+ // Layouts
+ QVBoxLayout *capGroupLayout = new QVBoxLayout(m_capGroup);
+ capGroupLayout->addWidget(flatCap);
+ capGroupLayout->addWidget(squareCap);
+ capGroupLayout->addWidget(roundCap);
+
+ QVBoxLayout *joinGroupLayout = new QVBoxLayout(m_joinGroup);
+ joinGroupLayout->addWidget(bevelJoin);
+ joinGroupLayout->addWidget(miterJoin);
+ joinGroupLayout->addWidget(roundJoin);
+
+ QVBoxLayout *styleGroupLayout = new QVBoxLayout(m_styleGroup);
+ styleGroupLayout->addWidget(solidLine);
+ styleGroupLayout->addWidget(dashLine);
+ styleGroupLayout->addWidget(dotLine);
+ styleGroupLayout->addWidget(dashDotLine);
+ styleGroupLayout->addWidget(dashDotDotLine);
+ styleGroupLayout->addWidget(customDashLine);
+
+ QVBoxLayout *pathModeGroupLayout = new QVBoxLayout(m_pathModeGroup);
+ pathModeGroupLayout->addWidget(curveMode);
+ pathModeGroupLayout->addWidget(lineMode);
+
+
+ // Connections
+ connect(flatCap, SIGNAL(clicked()), m_renderer, SLOT(setFlatCap()));
+ connect(squareCap, SIGNAL(clicked()), m_renderer, SLOT(setSquareCap()));
+ connect(roundCap, SIGNAL(clicked()), m_renderer, SLOT(setRoundCap()));
+
+ connect(bevelJoin, SIGNAL(clicked()), m_renderer, SLOT(setBevelJoin()));
+ connect(miterJoin, SIGNAL(clicked()), m_renderer, SLOT(setMiterJoin()));
+ connect(roundJoin, SIGNAL(clicked()), m_renderer, SLOT(setRoundJoin()));
+
+ connect(curveMode, SIGNAL(clicked()), m_renderer, SLOT(setCurveMode()));
+ connect(lineMode, SIGNAL(clicked()), m_renderer, SLOT(setLineMode()));
+
+ connect(solidLine, SIGNAL(clicked()), m_renderer, SLOT(setSolidLine()));
+ connect(dashLine, SIGNAL(clicked()), m_renderer, SLOT(setDashLine()));
+ connect(dotLine, SIGNAL(clicked()), m_renderer, SLOT(setDotLine()));
+ connect(dashDotLine, SIGNAL(clicked()), m_renderer, SLOT(setDashDotLine()));
+ connect(dashDotDotLine, SIGNAL(clicked()), m_renderer, SLOT(setDashDotDotLine()));
+ connect(customDashLine, SIGNAL(clicked()), m_renderer, SLOT(setCustomDashLine()));
+
+ // Set the defaults:
+ flatCap->setChecked(true);
+ bevelJoin->setChecked(true);
+ curveMode->setChecked(true);
+ solidLine->setChecked(true);
+}
+
+
+void PathStrokeControls::layoutForDesktop()
+{
+ QGroupBox *mainGroup = new QGroupBox(this);
+ mainGroup->setFixedWidth(180);
+ mainGroup->setTitle(tr("Path Stroking"));
+
+ createCommonControls(mainGroup);
+
+ QGroupBox* penWidthGroup = new QGroupBox(mainGroup);
+ QSlider *penWidth = new QSlider(Qt::Horizontal, penWidthGroup);
+ penWidth->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+ penWidthGroup->setTitle(tr("Pen Width"));
+ penWidth->setRange(0, 500);
+
+ QPushButton *animated = new QPushButton(mainGroup);
+ animated->setText(tr("Animate"));
+ animated->setCheckable(true);
+
+ QPushButton *showSourceButton = new QPushButton(mainGroup);
+ showSourceButton->setText(tr("Show Source"));
+#ifdef QT_OPENGL_SUPPORT
+ QPushButton *enableOpenGLButton = new QPushButton(mainGroup);
+ enableOpenGLButton->setText(tr("Use OpenGL"));
+ enableOpenGLButton->setCheckable(true);
+ enableOpenGLButton->setChecked(m_renderer->usesOpenGL());
+ if (!QGLFormat::hasOpenGL())
+ enableOpenGLButton->hide();
+#endif
+ QPushButton *whatsThisButton = new QPushButton(mainGroup);
+ whatsThisButton->setText(tr("What's This?"));
+ whatsThisButton->setCheckable(true);
+
+
+ // Layouts:
+ QVBoxLayout *penWidthLayout = new QVBoxLayout(penWidthGroup);
+ penWidthLayout->addWidget(penWidth);
+
+ QVBoxLayout * mainLayout = new QVBoxLayout(this);
+ mainLayout->setMargin(0);
+ mainLayout->addWidget(mainGroup);
+
+ QVBoxLayout *mainGroupLayout = new QVBoxLayout(mainGroup);
+ mainGroupLayout->setMargin(3);
+ mainGroupLayout->addWidget(m_capGroup);
+ mainGroupLayout->addWidget(m_joinGroup);
+ mainGroupLayout->addWidget(m_styleGroup);
+ mainGroupLayout->addWidget(penWidthGroup);
+ mainGroupLayout->addWidget(m_pathModeGroup);
+ mainGroupLayout->addWidget(animated);
+ mainGroupLayout->addStretch(1);
+ mainGroupLayout->addWidget(showSourceButton);
+#ifdef QT_OPENGL_SUPPORT
+ mainGroupLayout->addWidget(enableOpenGLButton);
+#endif
+ mainGroupLayout->addWidget(whatsThisButton);
+
+
+ // Set up connections
+ connect(animated, SIGNAL(toggled(bool)),
+ m_renderer, SLOT(setAnimation(bool)));
+
+ connect(penWidth, SIGNAL(valueChanged(int)),
+ m_renderer, SLOT(setPenWidth(int)));
+
+ connect(showSourceButton, SIGNAL(clicked()), m_renderer, SLOT(showSource()));
+#ifdef QT_OPENGL_SUPPORT
+ connect(enableOpenGLButton, SIGNAL(clicked(bool)), m_renderer, SLOT(enableOpenGL(bool)));
+#endif
+ connect(whatsThisButton, SIGNAL(clicked(bool)), m_renderer, SLOT(setDescriptionEnabled(bool)));
+ connect(m_renderer, SIGNAL(descriptionEnabledChanged(bool)),
+ whatsThisButton, SLOT(setChecked(bool)));
+
+
+ // Set the defaults
+ animated->setChecked(true);
+ penWidth->setValue(50);
+
+}
+
+void PathStrokeControls::layoutForSmallScreens()
+{
+ createCommonControls(this);
+
+ m_capGroup->layout()->setMargin(0);
+ m_joinGroup->layout()->setMargin(0);
+ m_styleGroup->layout()->setMargin(0);
+ m_pathModeGroup->layout()->setMargin(0);
+
+ QPushButton* okBtn = new QPushButton(tr("OK"), this);
+ okBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ okBtn->setMinimumSize(100,okBtn->minimumSize().height());
+
+ QPushButton* quitBtn = new QPushButton(tr("Quit"), this);
+ quitBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ quitBtn->setMinimumSize(100, okBtn->minimumSize().height());
+
+ QLabel *penWidthLabel = new QLabel(tr(" Width:"));
+ QSlider *penWidth = new QSlider(Qt::Horizontal, this);
+ penWidth->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+ penWidth->setRange(0, 500);
+
+#ifdef QT_OPENGL_SUPPORT
+ QPushButton *enableOpenGLButton = new QPushButton(this);
+ enableOpenGLButton->setText(tr("Use OpenGL"));
+ enableOpenGLButton->setCheckable(true);
+ enableOpenGLButton->setChecked(m_renderer->usesOpenGL());
+ if (!QGLFormat::hasOpenGL())
+ enableOpenGLButton->hide();
+#endif
+
+ // Layouts:
+ QHBoxLayout *penWidthLayout = new QHBoxLayout(0);
+ penWidthLayout->addWidget(penWidthLabel, 0, Qt::AlignRight);
+ penWidthLayout->addWidget(penWidth);
+
+ QVBoxLayout *leftLayout = new QVBoxLayout(0);
+ leftLayout->addWidget(m_capGroup);
+ leftLayout->addWidget(m_joinGroup);
+#ifdef QT_OPENGL_SUPPORT
+ leftLayout->addWidget(enableOpenGLButton);
+#endif
+ leftLayout->addLayout(penWidthLayout);
+
+ QVBoxLayout *rightLayout = new QVBoxLayout(0);
+ rightLayout->addWidget(m_styleGroup);
+ rightLayout->addWidget(m_pathModeGroup);
+
+ QGridLayout *mainLayout = new QGridLayout(this);
+ mainLayout->setMargin(0);
+
+ // Add spacers around the form items so we don't look stupid at higher resolutions
+ mainLayout->addItem(new QSpacerItem(0,0), 0, 0, 1, 4);
+ mainLayout->addItem(new QSpacerItem(0,0), 1, 0, 2, 1);
+ mainLayout->addItem(new QSpacerItem(0,0), 1, 3, 2, 1);
+ mainLayout->addItem(new QSpacerItem(0,0), 3, 0, 1, 4);
+
+ mainLayout->addLayout(leftLayout, 1, 1);
+ mainLayout->addLayout(rightLayout, 1, 2);
+ mainLayout->addWidget(quitBtn, 2, 1, Qt::AlignHCenter | Qt::AlignTop);
+ mainLayout->addWidget(okBtn, 2, 2, Qt::AlignHCenter | Qt::AlignTop);
+
+#ifdef QT_OPENGL_SUPPORT
+ connect(enableOpenGLButton, SIGNAL(clicked(bool)), m_renderer, SLOT(enableOpenGL(bool)));
+#endif
+
+ connect(penWidth, SIGNAL(valueChanged(int)), m_renderer, SLOT(setPenWidth(int)));
+ connect(quitBtn, SIGNAL(clicked()), this, SLOT(emitQuitSignal()));
+ connect(okBtn, SIGNAL(clicked()), this, SLOT(emitOkSignal()));
+
+ m_renderer->setAnimation(true);
+ penWidth->setValue(50);
+}
+
+void PathStrokeControls::emitQuitSignal()
+{ emit quitPressed(); }
+
+void PathStrokeControls::emitOkSignal()
+{ emit okPressed(); }
+
+
+PathStrokeWidget::PathStrokeWidget(bool smallScreen)
+{
+ setWindowTitle(tr("Path Stroking"));
+
+ // Widget construction and property setting
+ m_renderer = new PathStrokeRenderer(this, smallScreen);
+
+ m_controls = new PathStrokeControls(0, m_renderer, smallScreen);
+
+ // Layouting
+ QHBoxLayout *viewLayout = new QHBoxLayout(this);
+ viewLayout->addWidget(m_renderer);
+
+ if (!smallScreen)
+ viewLayout->addWidget(m_controls);
+
+ m_renderer->loadSourceFile(":res/pathstroke/pathstroke.cpp");
+ m_renderer->loadDescription(":res/pathstroke/pathstroke.html");
+
+ connect(m_renderer, SIGNAL(clicked()), this, SLOT(showControls()));
+ connect(m_controls, SIGNAL(okPressed()), this, SLOT(hideControls()));
+ connect(m_controls, SIGNAL(quitPressed()), QApplication::instance(), SLOT(quit()));
+}
+
+
+void PathStrokeWidget::showControls()
+{
+ m_controls->showFullScreen();
+}
+
+
+void PathStrokeWidget::hideControls()
+{
+ m_controls->hide();
+}
+
+
+void PathStrokeWidget::setStyle( QStyle * style )
+{
+ QWidget::setStyle(style);
+ if (m_controls != 0)
+ {
+ m_controls->setStyle(style);
+
+ QList<QWidget *> widgets = qFindChildren<QWidget *>(m_controls);
+ foreach (QWidget *w, widgets)
+ w->setStyle(style);
+ }
+}
+
+
+PathStrokeRenderer::PathStrokeRenderer(QWidget *parent, bool smallScreen)
+ : ArthurFrame(parent)
+{
+ m_smallScreen = smallScreen;
+ m_pointSize = 10;
+ m_activePoint = -1;
+ m_capStyle = Qt::FlatCap;
+ m_joinStyle = Qt::BevelJoin;
+ m_pathMode = CurveMode;
+ m_penWidth = 1;
+ m_penStyle = Qt::SolidLine;
+ m_wasAnimated = true;
+ setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+}
+
+void PathStrokeRenderer::paint(QPainter *painter)
+{
+ if (m_points.isEmpty())
+ initializePoints();
+
+ painter->setRenderHint(QPainter::Antialiasing);
+
+ QPalette pal = palette();
+ painter->setPen(Qt::NoPen);
+
+ // Construct the path
+ QPainterPath path;
+ path.moveTo(m_points.at(0));
+
+ if (m_pathMode == LineMode) {
+ for (int i=1; i<m_points.size(); ++i) {
+ path.lineTo(m_points.at(i));
+ }
+ } else {
+ int i=1;
+ while (i + 2 < m_points.size()) {
+ path.cubicTo(m_points.at(i), m_points.at(i+1), m_points.at(i+2));
+ i += 3;
+ }
+ while (i < m_points.size()) {
+ path.lineTo(m_points.at(i));
+ ++i;
+ }
+ }
+
+ // Draw the path
+ {
+ QColor lg = Qt::red;
+
+ // The "custom" pen
+ if (m_penStyle == Qt::NoPen) {
+ QPainterPathStroker stroker;
+ stroker.setWidth(m_penWidth);
+ stroker.setJoinStyle(m_joinStyle);
+ stroker.setCapStyle(m_capStyle);
+
+ QVector<qreal> dashes;
+ qreal space = 4;
+ dashes << 1 << space
+ << 3 << space
+ << 9 << space
+ << 27 << space
+ << 9 << space
+ << 3 << space;
+ stroker.setDashPattern(dashes);
+ QPainterPath stroke = stroker.createStroke(path);
+ painter->fillPath(stroke, lg);
+
+ } else {
+ QPen pen(lg, m_penWidth, m_penStyle, m_capStyle, m_joinStyle);
+ painter->strokePath(path, pen);
+ }
+ }
+
+ if (1) {
+ // Draw the control points
+ painter->setPen(QColor(50, 100, 120, 200));
+ painter->setBrush(QColor(200, 200, 210, 120));
+ for (int i=0; i<m_points.size(); ++i) {
+ QPointF pos = m_points.at(i);
+ painter->drawEllipse(QRectF(pos.x() - m_pointSize,
+ pos.y() - m_pointSize,
+ m_pointSize*2, m_pointSize*2));
+ }
+ painter->setPen(QPen(Qt::lightGray, 0, Qt::SolidLine));
+ painter->setBrush(Qt::NoBrush);
+ painter->drawPolyline(m_points);
+ }
+
+}
+
+void PathStrokeRenderer::initializePoints()
+{
+ const int count = 7;
+ m_points.clear();
+ m_vectors.clear();
+
+ QMatrix m;
+ qreal rot = 360 / count;
+ QPointF center(width() / 2, height() / 2);
+ QMatrix vm;
+ vm.shear(2, -1);
+ vm.scale(3, 3);
+
+ for (int i=0; i<count; ++i) {
+ m_vectors << QPointF(.1f, .25f) * (m * vm);
+ m_points << QPointF(0, 100) * m + center;
+ m.rotate(rot);
+ }
+}
+
+void PathStrokeRenderer::updatePoints()
+{
+ qreal pad = 10;
+ qreal left = pad;
+ qreal right = width() - pad;
+ qreal top = pad;
+ qreal bottom = height() - pad;
+
+ Q_ASSERT(m_points.size() == m_vectors.size());
+ for (int i=0; i<m_points.size(); ++i) {
+
+ if (i == m_activePoint)
+ continue;
+
+ QPointF pos = m_points.at(i);
+ QPointF vec = m_vectors.at(i);
+ pos += vec;
+ if (pos.x() < left || pos.x() > right) {
+ vec.setX(-vec.x());
+ pos.setX(pos.x() < left ? left : right);
+ } if (pos.y() < top || pos.y() > bottom) {
+ vec.setY(-vec.y());
+ pos.setY(pos.y() < top ? top : bottom);
+ }
+ m_points[i] = pos;
+ m_vectors[i] = vec;
+ }
+ update();
+}
+
+void PathStrokeRenderer::mousePressEvent(QMouseEvent *e)
+{
+ setDescriptionEnabled(false);
+ m_activePoint = -1;
+ qreal distance = -1;
+ for (int i=0; i<m_points.size(); ++i) {
+ qreal d = QLineF(e->pos(), m_points.at(i)).length();
+ if ((distance < 0 && d < 8 * m_pointSize) || d < distance) {
+ distance = d;
+ m_activePoint = i;
+ }
+ }
+
+ if (m_activePoint != -1) {
+ m_wasAnimated = m_timer.isActive();
+ setAnimation(false);
+ mouseMoveEvent(e);
+ }
+
+ // If we're not running in small screen mode, always assume we're dragging
+ m_mouseDrag = !m_smallScreen;
+ m_mousePress = e->pos();
+}
+
+void PathStrokeRenderer::mouseMoveEvent(QMouseEvent *e)
+{
+ // If we've moved more then 25 pixels, assume user is dragging
+ if (!m_mouseDrag && QPoint(m_mousePress - e->pos()).manhattanLength() > 25)
+ m_mouseDrag = true;
+
+ if (m_mouseDrag && m_activePoint >= 0 && m_activePoint < m_points.size()) {
+ m_points[m_activePoint] = e->pos();
+ update();
+ }
+}
+
+void PathStrokeRenderer::mouseReleaseEvent(QMouseEvent *)
+{
+ m_activePoint = -1;
+ setAnimation(m_wasAnimated);
+
+ if (!m_mouseDrag && m_smallScreen)
+ emit clicked();
+}
+
+void PathStrokeRenderer::timerEvent(QTimerEvent *e)
+{
+ if (e->timerId() == m_timer.timerId()) {
+ updatePoints();
+ QApplication::syncX();
+ } // else if (e->timerId() == m_fpsTimer.timerId()) {
+// emit frameRate(m_frameCount);
+// m_frameCount = 0;
+// }
+}
+
+void PathStrokeRenderer::setAnimation(bool animation)
+{
+ m_timer.stop();
+// m_fpsTimer.stop();
+
+ if (animation) {
+ m_timer.start(25, this);
+// m_fpsTimer.start(1000, this);
+// m_frameCount = 0;
+ }
+}
diff --git a/demos/pathstroke/pathstroke.h b/demos/pathstroke/pathstroke.h
new file mode 100644
index 0000000..99f17a7
--- /dev/null
+++ b/demos/pathstroke/pathstroke.h
@@ -0,0 +1,168 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef PATHSTROKE_H
+#define PATHSTROKE_H
+
+#include "arthurwidgets.h"
+#include <QtGui>
+
+class PathStrokeRenderer : public ArthurFrame
+{
+ Q_OBJECT
+ Q_PROPERTY(bool animation READ animation WRITE setAnimation)
+ Q_PROPERTY(qreal penWidth READ realPenWidth WRITE setRealPenWidth)
+public:
+ enum PathMode { CurveMode, LineMode };
+
+ PathStrokeRenderer(QWidget *parent, bool smallScreen = false);
+
+ void paint(QPainter *);
+ void mousePressEvent(QMouseEvent *e);
+ void mouseMoveEvent(QMouseEvent *e);
+ void mouseReleaseEvent(QMouseEvent *e);
+ void timerEvent(QTimerEvent *e);
+
+ QSize sizeHint() const { return QSize(500, 500); }
+
+ bool animation() const { return m_timer.isActive(); }
+
+ qreal realPenWidth() const { return m_penWidth; }
+ void setRealPenWidth(qreal penWidth) { m_penWidth = penWidth; update(); }
+
+signals:
+ void clicked();
+
+public slots:
+ void setPenWidth(int penWidth) { m_penWidth = penWidth / 10.0; update(); }
+ void setAnimation(bool animation);
+
+ void setFlatCap() { m_capStyle = Qt::FlatCap; update(); }
+ void setSquareCap() { m_capStyle = Qt::SquareCap; update(); }
+ void setRoundCap() { m_capStyle = Qt::RoundCap; update(); }
+
+ void setBevelJoin() { m_joinStyle = Qt::BevelJoin; update(); }
+ void setMiterJoin() { m_joinStyle = Qt::MiterJoin; update(); }
+ void setRoundJoin() { m_joinStyle = Qt::RoundJoin; update(); }
+
+ void setCurveMode() { m_pathMode = CurveMode; update(); }
+ void setLineMode() { m_pathMode = LineMode; update(); }
+
+ void setSolidLine() { m_penStyle = Qt::SolidLine; update(); }
+ void setDashLine() { m_penStyle = Qt::DashLine; update(); }
+ void setDotLine() { m_penStyle = Qt::DotLine; update(); }
+ void setDashDotLine() { m_penStyle = Qt::DashDotLine; update(); }
+ void setDashDotDotLine() { m_penStyle = Qt::DashDotDotLine; update(); }
+ void setCustomDashLine() { m_penStyle = Qt::NoPen; update(); }
+
+private:
+ void initializePoints();
+ void updatePoints();
+
+ QBasicTimer m_timer;
+
+ PathMode m_pathMode;
+
+ bool m_wasAnimated;
+
+ qreal m_penWidth;
+ int m_pointCount;
+ int m_pointSize;
+ int m_activePoint;
+ QVector<QPointF> m_points;
+ QVector<QPointF> m_vectors;
+
+ Qt::PenJoinStyle m_joinStyle;
+ Qt::PenCapStyle m_capStyle;
+
+ Qt::PenStyle m_penStyle;
+
+ bool m_smallScreen;
+ QPoint m_mousePress;
+ bool m_mouseDrag;
+};
+
+class PathStrokeControls : public QWidget
+{
+ Q_OBJECT
+public:
+ PathStrokeControls(QWidget* parent, PathStrokeRenderer* renderer, bool smallScreen);
+
+signals:
+ void okPressed();
+ void quitPressed();
+
+private:
+ PathStrokeRenderer* m_renderer;
+
+ QGroupBox *m_capGroup;
+ QGroupBox *m_joinGroup;
+ QGroupBox *m_styleGroup;
+ QGroupBox *m_pathModeGroup;
+
+ void createCommonControls(QWidget* parent);
+ void layoutForDesktop();
+ void layoutForSmallScreens();
+
+private slots:
+ void emitQuitSignal();
+ void emitOkSignal();
+
+};
+
+class PathStrokeWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ PathStrokeWidget(bool smallScreen);
+ void setStyle ( QStyle * style );
+
+private:
+ PathStrokeRenderer *m_renderer;
+ PathStrokeControls *m_controls;
+
+private slots:
+ void showControls();
+ void hideControls();
+
+};
+
+#endif // PATHSTROKE_H
diff --git a/demos/pathstroke/pathstroke.html b/demos/pathstroke/pathstroke.html
new file mode 100644
index 0000000..9e7e50d
--- /dev/null
+++ b/demos/pathstroke/pathstroke.html
@@ -0,0 +1,20 @@
+<html>
+<center>
+<h2>Primitive Stroking</h2>
+</center>
+
+<p>In this demo we show some of the various types of pens that can be
+used in Qt.</p>
+
+<p>Qt defines cap styles for how the end points are treated and join
+styles for how path segments are joined together. A standard set of
+predefined dash patterns are also included that can be used with
+<code>QPen</code>.</p>
+
+<p>In addition to the predefined patterns available in
+<code>QPen</code> we also demonstrate direct use of the
+<code>QPainterPathStroker</code> class which can be used to define
+custom dash patterns. You can see this by enabling the
+<i>Custom Pattern</i> option.</p>
+
+</html>
diff --git a/demos/pathstroke/pathstroke.pro b/demos/pathstroke/pathstroke.pro
new file mode 100644
index 0000000..50b4de2
--- /dev/null
+++ b/demos/pathstroke/pathstroke.pro
@@ -0,0 +1,20 @@
+SOURCES += main.cpp pathstroke.cpp
+HEADERS += pathstroke.h
+
+SHARED_FOLDER = ../shared
+
+include($$SHARED_FOLDER/shared.pri)
+
+RESOURCES += pathstroke.qrc
+
+contains(QT_CONFIG, opengl) {
+ DEFINES += QT_OPENGL_SUPPORT
+ QT += opengl
+}
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/pathstroke
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html
+sources.path = $$[QT_INSTALL_DEMOS]/pathstroke
+INSTALLS += target sources
+
diff --git a/demos/pathstroke/pathstroke.qrc b/demos/pathstroke/pathstroke.qrc
new file mode 100644
index 0000000..a9a7234
--- /dev/null
+++ b/demos/pathstroke/pathstroke.qrc
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/res/pathstroke">
+ <file>pathstroke.cpp</file>
+ <file>pathstroke.html</file>
+</qresource>
+</RCC>
diff --git a/demos/qtdemo/Info_mac.plist b/demos/qtdemo/Info_mac.plist
new file mode 100644
index 0000000..71b0059
--- /dev/null
+++ b/demos/qtdemo/Info_mac.plist
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
+<plist version="0.9">
+<dict>
+ <key>CFBundleIconFile</key>
+ <string>@ICON@</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleGetInfoString</key>
+ <string>Created by Qt/QMake</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.trolltech.qt.demo</string>
+ <key>CFBundleExecutable</key>
+ <string>@EXECUTABLE@</string>
+</dict>
+</plist>
diff --git a/demos/qtdemo/colors.cpp b/demos/qtdemo/colors.cpp
new file mode 100644
index 0000000..18343cb
--- /dev/null
+++ b/demos/qtdemo/colors.cpp
@@ -0,0 +1,390 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "colors.h"
+
+#ifndef QT_NO_OPENGL
+ #include <QGLWidget>
+#endif
+//#define QT_NO_OPENGL
+
+// Colors:
+QColor Colors::sceneBg1(QColor(91, 91, 91));
+QColor Colors::sceneBg1Line(QColor(114, 108, 104));
+QColor Colors::sceneBg2(QColor(0, 0, 0));
+QColor Colors::sceneLine(255, 255, 255);
+QColor Colors::paperBg(QColor(100, 100, 100));
+QColor Colors::menuTextFg(QColor(255, 0, 0));
+QColor Colors::buttonBgLow(QColor(255, 255, 255, 90));
+QColor Colors::buttonBgHigh(QColor(255, 255, 255, 20));
+QColor Colors::buttonText(QColor(255, 255, 255));
+QColor Colors::tt_green(QColor(166, 206, 57));
+QColor Colors::fadeOut(QColor(206, 246, 117, 0));
+QColor Colors::heading(QColor(190,230,80));
+QString Colors::contentColor("<font color='#eeeeee'>");
+QString Colors::glVersion("Not detected!");
+
+// Guides:
+int Colors::stageStartY = 8;
+int Colors::stageHeight = 536;
+int Colors::stageStartX = 8;
+int Colors::stageWidth = 785;
+int Colors::contentStartY = 22;
+int Colors::contentHeight = 510;
+
+// Properties:
+bool Colors::openGlRendering = false;
+bool Colors::direct3dRendering = false;
+bool Colors::softwareRendering = false;
+bool Colors::openGlAwailable = true;
+bool Colors::direct3dAwailable = true;
+bool Colors::xRenderPresent = true;
+
+bool Colors::noTicker = false;
+bool Colors::noRescale = false;
+bool Colors::noAnimations = false;
+bool Colors::noBlending = false;
+bool Colors::noScreenSync = false;
+bool Colors::fullscreen = false;
+bool Colors::usePixmaps = false;
+bool Colors::useLoop = false;
+bool Colors::showBoundingRect = false;
+bool Colors::showFps = false;
+bool Colors::noAdapt = false;
+bool Colors::noWindowMask = true;
+bool Colors::useButtonBalls = false;
+bool Colors::useEightBitPalette = false;
+bool Colors::noTimerUpdate = false;
+bool Colors::noTickerMorph = false;
+bool Colors::adapted = false;
+bool Colors::verbose = false;
+bool Colors::pause = true;
+int Colors::fps = 100;
+int Colors::menuCount = 18;
+float Colors::animSpeed = 1.0;
+float Colors::animSpeedButtons = 1.0;
+float Colors::benchmarkFps = -1;
+int Colors::tickerLetterCount = 80;
+float Colors::tickerMoveSpeed = 0.4f;
+float Colors::tickerMorphSpeed = 2.5f;
+QString Colors::tickerText = ".EROM ETAERC .SSEL EDOC";
+QString Colors::rootMenuName = "Qt Examples and Demos";
+
+QFont Colors::contentFont()
+{
+ QFont font;
+ font.setStyleStrategy(QFont::PreferAntialias);
+#if defined(Q_OS_MAC)
+ font.setPixelSize(14);
+ font.setFamily("Arial");
+#else
+ font.setPixelSize(13);
+ font.setFamily("Verdana");
+#endif
+ return font;
+}
+
+QFont Colors::headingFont()
+{
+ QFont font;
+ font.setStyleStrategy(QFont::PreferAntialias);
+ font.setPixelSize(23);
+ font.setBold(true);
+ font.setFamily("Verdana");
+ return font;
+}
+
+QFont Colors::buttonFont()
+{
+ QFont font;
+ font.setStyleStrategy(QFont::PreferAntialias);
+#if 0//defined(Q_OS_MAC)
+ font.setPixelSize(11);
+ font.setFamily("Silom");
+#else
+ font.setPixelSize(11);
+ font.setFamily("Verdana");
+#endif
+ return font;
+}
+
+QFont Colors::tickerFont()
+{
+ QFont font;
+ font.setStyleStrategy(QFont::PreferAntialias);
+#if defined(Q_OS_MAC)
+ font.setPixelSize(11);
+ font.setBold(true);
+ font.setFamily("Arial");
+#else
+ font.setPixelSize(10);
+ font.setBold(true);
+ font.setFamily("sans serif");
+#endif
+ return font;
+}
+
+float parseFloat(const QString &argument, const QString &name)
+{
+ if (name.length() == argument.length()){
+ QMessageBox::warning(0, "Arguments",
+ QString("No argument number found for ")
+ + name
+ + ". Remember to put name and value adjacent! (e.g. -fps100)");
+ exit(0);
+ }
+ float value = argument.mid(name.length()).toFloat();
+ return value;
+}
+
+QString parseText(const QString &argument, const QString &name)
+{
+ if (name.length() == argument.length()){
+ QMessageBox::warning(0, "Arguments",
+ QString("No argument number found for ")
+ + name
+ + ". Remember to put name and value adjacent! (e.g. -fps100)");
+ exit(0);
+ }
+ QString value = argument.mid(name.length());
+ return value;
+}
+
+void Colors::parseArgs(int argc, char *argv[])
+{
+ // some arguments should be processed before
+ // others. Handle them now:
+ for (int i=1; i<argc; i++){
+ QString s(argv[i]);
+ if (s == "-verbose")
+ Colors::verbose = true;
+ }
+
+ Colors::detectSystemResources();
+
+ // Handle the rest of the arguments. They may
+ // override attributes already set:
+ for (int i=1; i<argc; i++){
+ QString s(argv[i]);
+ if (s == "-opengl")
+ Colors::openGlRendering = true;
+ else if (s == "-direct3d")
+ Colors::direct3dRendering = true;
+ else if (s == "-software")
+ Colors::softwareRendering = true;
+ else if (s == "-no-opengl") // support old style
+ Colors::softwareRendering = true;
+ else if (s == "-no-ticker") // support old style
+ Colors::noTicker = true;
+ else if (s.startsWith("-ticker"))
+ Colors::noTicker = !bool(parseFloat(s, "-ticker"));
+ else if (s == "-no-animations")
+ Colors::noAnimations = true; // support old style
+ else if (s.startsWith("-animations"))
+ Colors::noAnimations = !bool(parseFloat(s, "-animations"));
+ else if (s == "-no-adapt")
+ Colors::noAdapt = true;
+ else if (s == "-low")
+ Colors::setLowSettings();
+ else if (s == "-no-rescale")
+ Colors::noRescale = true;
+ else if (s == "-use-pixmaps")
+ Colors::usePixmaps = true;
+ else if (s == "-fullscreen")
+ Colors::fullscreen = true;
+ else if (s == "-show-br")
+ Colors::showBoundingRect = true;
+ else if (s == "-show-fps")
+ Colors::showFps = true;
+ else if (s == "-no-blending")
+ Colors::noBlending = true;
+ else if (s == "-no-sync")
+ Colors::noScreenSync = true;
+ else if (s.startsWith("-menu"))
+ Colors::menuCount = int(parseFloat(s, "-menu"));
+ else if (s.startsWith("-use-timer-update"))
+ Colors::noTimerUpdate = !bool(parseFloat(s, "-use-timer-update"));
+ else if (s.startsWith("-pause"))
+ Colors::pause = bool(parseFloat(s, "-pause"));
+ else if (s == "-no-ticker-morph")
+ Colors::noTickerMorph = true;
+ else if (s == "-use-window-mask")
+ Colors::noWindowMask = false;
+ else if (s == "-use-loop")
+ Colors::useLoop = true;
+ else if (s == "-use-8bit")
+ Colors::useEightBitPalette = true;
+ else if (s.startsWith("-8bit"))
+ Colors::useEightBitPalette = bool(parseFloat(s, "-8bit"));
+ else if (s == "-use-balls")
+ Colors::useButtonBalls = true;
+ else if (s.startsWith("-ticker-letters"))
+ Colors::tickerLetterCount = int(parseFloat(s, "-ticker-letters"));
+ else if (s.startsWith("-ticker-text"))
+ Colors::tickerText = parseText(s, "-ticker-text");
+ else if (s.startsWith("-ticker-speed"))
+ Colors::tickerMoveSpeed = parseFloat(s, "-ticker-speed");
+ else if (s.startsWith("-ticker-morph-speed"))
+ Colors::tickerMorphSpeed = parseFloat(s, "-ticker-morph-speed");
+ else if (s.startsWith("-animation-speed"))
+ Colors::animSpeed = parseFloat(s, "-animation-speed");
+ else if (s.startsWith("-fps"))
+ Colors::fps = int(parseFloat(s, "-fps"));
+ else if (s.startsWith("-h") || s.startsWith("-help")){
+ QMessageBox::warning(0, "Arguments",
+ QString("Usage: qtdemo [-verbose] [-no-adapt] [-opengl] [-direct3d] [-software] [-fullscreen] [-ticker[0|1]] ")
+ + "[-animations[0|1]] [-no-blending] [-no-sync] [-use-timer-update[0|1]] [-pause[0|1]] "
+ + "[-use-window-mask] [-no-rescale] "
+ + "[-use-pixmaps] [-show-fps] [-show-br] [-8bit[0|1]] [-menu<int>] [-use-loop] [-use-balls] "
+ + "[-animation-speed<float>] [-fps<int>] "
+ + "[-low] [-ticker-letters<int>] [-ticker-speed<float>] [-no-ticker-morph] "
+ + "[-ticker-morph-speed<float>] [-ticker-text<string>]");
+ exit(0);
+ }
+ }
+
+ Colors::postConfigure();
+}
+
+void Colors::setLowSettings()
+{
+ Colors::openGlRendering = false;
+ Colors::direct3dRendering = false;
+ Colors::softwareRendering = true;
+ Colors::noTicker = true;
+ Colors::noTimerUpdate = true;
+ Colors::fps = 30;
+ Colors::usePixmaps = true;
+ Colors::noAnimations = true;
+ Colors::noBlending = true;
+}
+
+void Colors::detectSystemResources()
+{
+#ifndef QT_NO_OPENGL
+ if (QGLFormat::openGLVersionFlags() & QGLFormat::OpenGL_Version_2_0)
+ Colors::glVersion = "2.0 or higher";
+ else if (QGLFormat::openGLVersionFlags() & QGLFormat::OpenGL_Version_1_5)
+ Colors::glVersion = "1.5";
+ else if (QGLFormat::openGLVersionFlags() & QGLFormat::OpenGL_Version_1_4)
+ Colors::glVersion = "1.4";
+ else if (QGLFormat::openGLVersionFlags() & QGLFormat::OpenGL_Version_1_3)
+ Colors::glVersion = "1.3 or lower";
+ if (Colors::verbose)
+ qDebug() << "- OpenGL version:" << Colors::glVersion;
+
+ QGLWidget glw;
+ if (!QGLFormat::hasOpenGL()
+ || !glw.format().directRendering()
+ || !(QGLFormat::openGLVersionFlags() & QGLFormat::OpenGL_Version_1_5)
+ || glw.depth() < 24
+ )
+#else
+ if (Colors::verbose)
+ qDebug() << "- OpenGL not supported by current build of Qt";
+#endif
+ {
+ Colors::openGlAwailable = false;
+ if (Colors::verbose)
+ qDebug("- OpenGL not recommended on this system");
+ }
+
+#if defined(Q_WS_WIN)
+ Colors::direct3dAwailable = false; // for now.
+#endif
+
+#if defined(Q_WS_X11)
+ // check if X render is present:
+ QPixmap tmp(1, 1);
+ if (!tmp.x11PictureHandle()){
+ Colors::xRenderPresent = false;
+ if (Colors::verbose)
+ qDebug("- X render not present");
+ }
+
+#endif
+
+ QWidget w;
+ if (Colors::verbose)
+ qDebug() << "- Color depth: " << QString::number(w.depth());
+}
+
+void Colors::postConfigure()
+{
+ if (!Colors::noAdapt){
+ QWidget w;
+ if (w.depth() < 16){
+ Colors::useEightBitPalette = true;
+ Colors::adapted = true;
+ if (Colors::verbose)
+ qDebug() << "- Adapt: Color depth less than 16 bit. Using 8 bit palette";
+ }
+
+ if (!Colors::xRenderPresent){
+ Colors::setLowSettings();
+ Colors::adapted = true;
+ if (Colors::verbose)
+ qDebug() << "- Adapt: X renderer not present. Using low settings";
+ }
+ }
+
+#if !defined(Q_WS_WIN)
+ if (Colors::direct3dRendering){
+ Colors::direct3dRendering = false;
+ qDebug() << "- WARNING: Direct3D specified, but not supported on this platform";
+ }
+#endif
+
+ if (!Colors::openGlRendering && !Colors::direct3dRendering && !Colors::softwareRendering){
+ // The user has not decided rendering system. So we do it instead:
+#if defined(Q_WS_WIN)
+ if (Colors::direct3dAwailable)
+ Colors::direct3dRendering = true;
+ else
+#endif
+ if (Colors::openGlAwailable)
+ Colors::openGlRendering = true;
+ else
+ Colors::softwareRendering = true;
+ }
+}
+
+
diff --git a/demos/qtdemo/colors.h b/demos/qtdemo/colors.h
new file mode 100644
index 0000000..58865c6
--- /dev/null
+++ b/demos/qtdemo/colors.h
@@ -0,0 +1,130 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef COLORS_H
+#define COLORS_H
+
+#include <QtGui>
+#include <QBrush>
+
+class Colors
+{
+private:
+ Colors(){};
+
+public:
+ static void parseArgs(int argc, char *argv[]);
+ static void detectSystemResources();
+ static void postConfigure();
+ static void setLowSettings();
+
+ // Colors:
+ static QColor sceneBg1;
+ static QColor sceneBg2;
+ static QColor sceneBg1Line;
+ static QColor paperBg;
+ static QColor menuTextFg;
+ static QColor buttonText;
+ static QColor buttonBgLow;
+ static QColor buttonBgHigh;
+ static QColor tt_green;
+ static QColor fadeOut;
+ static QColor sceneLine;
+ static QColor heading;
+ static QString contentColor;
+ static QString glVersion;
+
+ // Guides:
+ static int stageStartY;
+ static int stageHeight;
+ static int stageStartX;
+ static int stageWidth;
+ static int contentStartY;
+ static int contentHeight;
+
+ // properties:
+ static bool openGlRendering;
+ static bool direct3dRendering;
+ static bool softwareRendering;
+ static bool openGlAwailable;
+ static bool direct3dAwailable;
+ static bool xRenderPresent;
+ static bool noAdapt;
+ static bool noTicker;
+ static bool noRescale;
+ static bool noAnimations;
+ static bool noBlending;
+ static bool noScreenSync;
+ static bool useLoop;
+ static bool noWindowMask;
+ static bool usePixmaps;
+ static bool useEightBitPalette;
+ static bool fullscreen;
+ static bool showBoundingRect;
+ static bool showFps;
+ static bool noTimerUpdate;
+ static bool noTickerMorph;
+ static bool useButtonBalls;
+ static bool adapted;
+ static bool verbose;
+ static bool pause;
+
+ static float animSpeed;
+ static float animSpeedButtons;
+ static float benchmarkFps;
+ static int tickerLetterCount;
+ static int fps;
+ static int menuCount;
+ static float tickerMoveSpeed;
+ static float tickerMorphSpeed;
+ static QString tickerText;
+ static QString rootMenuName;
+
+ // fonts
+ static QFont contentFont();
+ static QFont headingFont();
+ static QFont buttonFont();
+ static QFont tickerFont();
+
+};
+
+#endif // COLORS_H
+
diff --git a/demos/qtdemo/demoitem.cpp b/demos/qtdemo/demoitem.cpp
new file mode 100644
index 0000000..0335bd3
--- /dev/null
+++ b/demos/qtdemo/demoitem.cpp
@@ -0,0 +1,280 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "demoitem.h"
+#include "menumanager.h"
+#include "guide.h"
+#include "colors.h"
+
+QHash<QString, SharedImage *> DemoItem::sharedImageHash;
+QMatrix DemoItem::matrix;
+
+DemoItem::DemoItem(QGraphicsScene *scene, QGraphicsItem *parent) : QGraphicsItem(parent, scene)
+{
+ this->opacity = 1.0;
+ this->locked = false;
+ this->prepared = false;
+ this->neverVisible = false;
+ this->noSubPixeling = false;
+ this->currentAnimation = 0;
+ this->currGuide = 0;
+ this->guideFrame = 0;
+ this->sharedImage = new SharedImage();
+ ++this->sharedImage->refCount;
+}
+
+DemoItem::~DemoItem()
+{
+ if(--this->sharedImage->refCount == 0){
+ if (!this->hashKey.isEmpty())
+ DemoItem::sharedImageHash.remove(this->hashKey);
+ delete this->sharedImage;
+ }
+}
+
+void DemoItem::setNeverVisible(bool never)
+{
+ Q_UNUSED(never);
+/*
+ this->neverVisible = never;
+ if (never){
+ this->setVisible(false);
+ QList<QGraphicsItem *> c = children();
+ for (int i=0; i<c.size(); i++){
+ DemoItem *d = dynamic_cast<DemoItem *>(c[i]); // Don't use dynamic cast because it needs RTTI support.
+ if (d)
+ d->setNeverVisible(true);
+ else{
+ c[i]->setVisible(false);
+ }
+ }
+ }
+*/
+}
+
+void DemoItem::setRecursiveVisible(bool visible){
+ if (visible && this->neverVisible){
+ this->setVisible(false);
+ return;
+ }
+
+ this->setVisible(visible);
+ QList<QGraphicsItem *> c = children();
+ for (int i=0; i<c.size(); i++){
+ // DemoItem *d = dynamic_cast<DemoItem *>(c[i]);
+ // if (d)
+ // d->setRecursiveVisible(visible);
+ // else{
+ c[i]->setVisible(visible);
+ // }
+ }
+}
+
+void DemoItem::useGuide(Guide *guide, float startFrame)
+{
+ this->startFrame = startFrame;
+ this->guideFrame = startFrame;
+ while (this->guideFrame > guide->startLength + guide->length()){
+ if (guide->nextGuide == guide->firstGuide)
+ break;
+
+ guide = guide->nextGuide;
+ }
+ this->currGuide = guide;
+}
+
+void DemoItem::guideAdvance(float distance)
+{
+ this->guideFrame += distance;
+ while (this->guideFrame > this->currGuide->startLength + this->currGuide->length()){
+ this->currGuide = this->currGuide->nextGuide;
+ if (this->currGuide == this->currGuide->firstGuide)
+ this->guideFrame -= this->currGuide->lengthAll();
+ }
+}
+
+void DemoItem::guideMove(float moveSpeed)
+{
+ this->currGuide->guide(this, moveSpeed);
+}
+
+void DemoItem::setPosUsingSheepDog(const QPointF &dest, const QRectF &sceneFence)
+{
+ this->setPos(dest);
+ if (sceneFence.isNull())
+ return;
+
+ // I agree. This is not the optimal way of doing it.
+ // But don't want for use time on it now....
+ float itemWidth = this->boundingRect().width();
+ float itemHeight = this->boundingRect().height();
+ float fenceRight = sceneFence.x() + sceneFence.width();
+ float fenceBottom = sceneFence.y() + sceneFence.height();
+
+ if (this->scenePos().x() < sceneFence.x()) this->moveBy(this->mapFromScene(QPointF(sceneFence.x(), 0)).x(), 0);
+ if (this->scenePos().x() > fenceRight - itemWidth) this->moveBy(this->mapFromScene(QPointF(fenceRight - itemWidth, 0)).x(), 0);
+ if (this->scenePos().y() < sceneFence.y()) this->moveBy(0, this->mapFromScene(QPointF(0, sceneFence.y())).y());
+ if (this->scenePos().y() > fenceBottom - itemHeight) this->moveBy(0, this->mapFromScene(QPointF(0, fenceBottom - itemHeight)).y());
+}
+
+void DemoItem::setGuidedPos(const QPointF &pos)
+{
+ this->guidedPos = pos;
+}
+
+QPointF DemoItem::getGuidedPos()
+{
+ return this->guidedPos;
+}
+
+void DemoItem::switchGuide(Guide *guide)
+{
+ this->currGuide = guide;
+ this->guideFrame = 0;
+}
+
+bool DemoItem::inTransition()
+{
+ if (this->currentAnimation)
+ return this->currentAnimation->running();
+ else
+ return false;
+}
+
+void DemoItem::setMatrix(const QMatrix &matrix)
+{
+ DemoItem::matrix = matrix;
+}
+
+void DemoItem::useSharedImage(const QString &hashKey)
+{
+ this->hashKey = hashKey;
+ if (!sharedImageHash.contains(hashKey))
+ sharedImageHash.insert(hashKey, this->sharedImage);
+ else {
+ if(--this->sharedImage->refCount == 0)
+ delete this->sharedImage;
+ this->sharedImage = sharedImageHash.value(hashKey);
+ ++this->sharedImage->refCount;
+ }
+}
+
+bool DemoItem::validateImage()
+{
+ if ((this->sharedImage->matrix != DemoItem::matrix && !Colors::noRescale) || !(this->sharedImage->image || this->sharedImage->pixmap)){
+ // (Re)create image according to new matrix
+ delete this->sharedImage->image;
+ this->sharedImage->image = 0;
+ delete this->sharedImage->pixmap;
+ this->sharedImage->pixmap = 0;
+ this->sharedImage->matrix = DemoItem::matrix;
+
+ // Let subclass create and draw a new image according to the new matrix
+ QImage *image = this->createImage(Colors::noRescale ? QMatrix() : DemoItem::matrix);
+ if (image){
+ if (Colors::showBoundingRect){
+ // draw red transparent rect
+ QPainter painter(image);
+ painter.fillRect(image->rect(), QColor(255, 0, 0, 50));
+ painter.end();
+ }
+
+ this->sharedImage->unscaledBoundingRect = this->sharedImage->matrix.inverted().mapRect(image->rect());
+ if (Colors::usePixmaps){
+ if (image->isNull())
+ this->sharedImage->pixmap = new QPixmap(1, 1);
+ else
+ this->sharedImage->pixmap = new QPixmap(image->size());
+ this->sharedImage->pixmap->fill(QColor(0, 0, 0, 0));
+ QPainter painter(this->sharedImage->pixmap);
+ painter.drawImage(0, 0, *image);
+ delete image;
+ } else {
+ this->sharedImage->image = image;
+ }
+ return true;
+ } else
+ return false;
+ }
+ return true;
+}
+
+QRectF DemoItem::boundingRect() const
+{
+ const_cast<DemoItem *>(this)->validateImage();
+ return this->sharedImage->unscaledBoundingRect;
+}
+
+void DemoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+ Q_UNUSED(option);
+ Q_UNUSED(widget);
+
+ if (this->validateImage()){
+
+ bool wasSmoothPixmapTransform = painter->testRenderHint(QPainter::SmoothPixmapTransform);
+ painter->setRenderHint(QPainter::SmoothPixmapTransform);
+
+ if (Colors::noRescale){
+ // Let the painter scale the image for us.
+ // This may degrade both quality and performance
+ if (this->sharedImage->image)
+ painter->drawImage(this->pos(), *this->sharedImage->image);
+ else
+ painter->drawPixmap(this->pos(), *this->sharedImage->pixmap);
+ }
+ else {
+ QMatrix m = painter->worldMatrix();
+ painter->setWorldMatrix(QMatrix());
+ float x = this->noSubPixeling ? qRound(m.dx()) : m.dx();
+ float y = this->noSubPixeling ? qRound(m.dy()) : m.dy();
+ if (this->sharedImage->image)
+ painter->drawImage(QPointF(x, y), *this->sharedImage->image);
+ else
+ painter->drawPixmap(QPointF(x, y), *this->sharedImage->pixmap);
+ }
+
+ if (!wasSmoothPixmapTransform) {
+ painter->setRenderHint(QPainter::SmoothPixmapTransform, false);
+ }
+
+ }
+}
diff --git a/demos/qtdemo/demoitem.h b/demos/qtdemo/demoitem.h
new file mode 100644
index 0000000..e03327b
--- /dev/null
+++ b/demos/qtdemo/demoitem.h
@@ -0,0 +1,124 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DEMO_ITEM_H
+#define DEMO_ITEM_H
+
+#include <QtGui>
+
+class DemoItemAnimation;
+class Guide;
+
+class SharedImage
+{
+public:
+ SharedImage() : refCount(0), image(0), pixmap(0){};
+ ~SharedImage()
+ {
+ delete image;
+ delete pixmap;
+ }
+
+ int refCount;
+ QImage *image;
+ QPixmap *pixmap;
+ QMatrix matrix;
+ QRectF unscaledBoundingRect;
+};
+
+class DemoItem : public QGraphicsItem
+{
+
+public:
+ DemoItem(QGraphicsScene *scene = 0, QGraphicsItem *parent = 0);
+ virtual ~DemoItem();
+
+ bool inTransition();
+ virtual void animationStarted(int id = 0){ Q_UNUSED(id); };
+ virtual void animationStopped(int id = 0){ Q_UNUSED(id); };
+ virtual void prepare(){};
+ void setRecursiveVisible(bool visible);
+ void useSharedImage(const QString &hashKey);
+ void setNeverVisible(bool never = true);
+ static void setMatrix(const QMatrix &matrix);
+ virtual QRectF boundingRect() const; // overridden
+ void setPosUsingSheepDog(const QPointF &dest, const QRectF &sceneFence);
+
+ qreal opacity;
+ bool locked;
+ DemoItemAnimation *currentAnimation;
+ bool noSubPixeling;
+
+ // Used if controlled by a guide:
+ void useGuide(Guide *guide, float startFrame = 0);
+ void guideAdvance(float distance);
+ void guideMove(float moveSpeed);
+ void setGuidedPos(const QPointF &position);
+ QPointF getGuidedPos();
+ float startFrame;
+ float guideFrame;
+ Guide *currGuide;
+
+protected:
+ virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option = 0, QWidget *widget = 0); // overridden
+ virtual QImage *createImage(const QMatrix &) const { return 0; };
+ virtual bool collidesWithItem(const QGraphicsItem *, Qt::ItemSelectionMode) const { return false; };
+ bool prepared;
+
+private:
+ SharedImage *sharedImage;
+ QString hashKey;
+ bool neverVisible;
+ bool validateImage();
+
+ // Used if controlled by a guide:
+ void switchGuide(Guide *guide);
+ friend class Guide;
+ QPointF guidedPos;
+
+ // The next static hash is shared amongst all demo items, and
+ // has the purpose of reusing images to save memory and time
+ static QHash<QString, SharedImage *> sharedImageHash;
+ static QMatrix matrix;
+};
+
+#endif // DEMO_ITEM_H
+
diff --git a/demos/qtdemo/demoitemanimation.cpp b/demos/qtdemo/demoitemanimation.cpp
new file mode 100644
index 0000000..92b2d24
--- /dev/null
+++ b/demos/qtdemo/demoitemanimation.cpp
@@ -0,0 +1,219 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "demoitemanimation.h"
+#include "demoitem.h"
+#include "colors.h"
+
+DemoItemAnimation::DemoItemAnimation(DemoItem *item, INOROUT inOrOut)
+{
+ this->opacityAt0 = 1.0;
+ this->opacityAt1 = 1.0;
+ this->startDelay = 0;
+ this->inOrOut = inOrOut;
+ this->hideOnFinished = false;
+ this->forcePlay = false;
+ this->timeline = new QTimeLine(5000);
+ this->timeline->setFrameRange(0, 2000);
+ this->timeline->setUpdateInterval(int(1000.0/Colors::fps));
+ this->moveOnPlay = false;
+ setTimeLine(this->timeline);
+ setItem(item);
+}
+
+DemoItemAnimation::~DemoItemAnimation()
+{
+ // Do not delete demoitem. It is not
+ // owned by an animation
+ delete this->timeline;
+}
+
+void DemoItemAnimation::prepare()
+{
+ this->demoItem()->prepare();
+}
+
+void DemoItemAnimation::setStartPos(const QPointF &pos){
+ this->startPos = pos;
+}
+
+void DemoItemAnimation::setDuration(int duration)
+{
+ duration = int(duration * Colors::animSpeed);
+ this->timeline->setDuration(duration);
+ this->moveOnPlay = true;
+}
+
+void DemoItemAnimation::setCurrentTime(int ms)
+{
+ this->timeline->setCurrentTime(ms);
+}
+
+bool DemoItemAnimation::notOwnerOfItem()
+{
+ return this != demoItem()->currentAnimation;
+}
+
+void DemoItemAnimation::play(bool fromStart, bool force)
+{
+ this->fromStart = fromStart;
+ this->forcePlay = force;
+
+ QPointF currPos = this->demoItem()->pos();
+
+ // If the item that this animation controls in currently under the
+ // control of another animation, stop that animation first
+ if (this->demoItem()->currentAnimation)
+ this->demoItem()->currentAnimation->timeline->stop();
+ this->demoItem()->currentAnimation = this;
+ this->timeline->stop();
+
+ if (Colors::noAnimations && !this->forcePlay){
+ this->timeline->setCurrentTime(1);
+ this->demoItem()->setPos(this->posAt(1));
+ }
+ else{
+ if (this->demoItem()->isVisible())
+ // If the item is already visible, start the animation from
+ // the items current position rather than from start.
+ this->setPosAt(0.0, currPos);
+ else
+ this->setPosAt(0.0, this->startPos);
+
+ if (this->fromStart){
+ this->timeline->setCurrentTime(0);
+ this->demoItem()->setPos(this->posAt(0));
+ }
+ }
+
+ if (this->inOrOut == ANIM_IN)
+ this->demoItem()->setRecursiveVisible(true);
+
+ if (this->startDelay){
+ QTimer::singleShot(this->startDelay, this, SLOT(playWithoutDelay()));
+ return;
+ }
+ else
+ this->playWithoutDelay();
+}
+
+void DemoItemAnimation::playWithoutDelay()
+{
+ if (this->moveOnPlay && !(Colors::noAnimations && !this->forcePlay))
+ this->timeline->start();
+ this->demoItem()->animationStarted(this->inOrOut);
+}
+
+void DemoItemAnimation::stop(bool reset)
+{
+ this->timeline->stop();
+ if (reset)
+ this->demoItem()->setPos(this->posAt(0));
+ if (this->hideOnFinished && !this->moveOnPlay)
+ this->demoItem()->setRecursiveVisible(false);
+ this->demoItem()->animationStopped(this->inOrOut);
+}
+
+void DemoItemAnimation::setRepeat(int nr)
+{
+ this->timeline->setLoopCount(nr);
+}
+
+void DemoItemAnimation::playReverse()
+{
+}
+
+bool DemoItemAnimation::running()
+{
+ return (this->timeLine()->state() == QTimeLine::Running);
+}
+
+bool DemoItemAnimation::runningOrItemLocked()
+{
+ return (this->running() || this->demoItem()->locked);
+}
+
+void DemoItemAnimation::lockItem(bool state)
+{
+ this->demoItem()->locked = state;
+}
+
+DemoItem *DemoItemAnimation::demoItem()
+{
+ return (DemoItem *) this->item();
+}
+
+void DemoItemAnimation::setOpacityAt0(qreal opacity)
+{
+ this->opacityAt0 = opacity;
+}
+
+void DemoItemAnimation::setOpacityAt1(qreal opacity)
+{
+ this->opacityAt1 = opacity;
+}
+
+void DemoItemAnimation::setOpacity(qreal step)
+{
+ DemoItem *demoItem = (DemoItem *) item();
+ demoItem->opacity = this->opacityAt0 + step * step * step * (this->opacityAt1 - this->opacityAt0);
+}
+
+void DemoItemAnimation::afterAnimationStep(qreal step)
+{
+ if (step == 1.0f){
+ if (this->timeline->loopCount() > 0){
+ // animation finished.
+ if (this->hideOnFinished)
+ this->demoItem()->setRecursiveVisible(false);
+ this->demoItem()->animationStopped(this->inOrOut);
+ }
+ } else if (Colors::noAnimations && !this->forcePlay){
+ // The animation is not at end, but
+ // the animations should not play, so go to end.
+ this->setStep(1.0f); // will make this method being called recursive.
+ }
+}
+
+
+
+
+
diff --git a/demos/qtdemo/demoitemanimation.h b/demos/qtdemo/demoitemanimation.h
new file mode 100644
index 0000000..ad89ada
--- /dev/null
+++ b/demos/qtdemo/demoitemanimation.h
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DEMO_ITEM_ANIMATION_H
+#define DEMO_ITEM_ANIMATION_H
+
+#include <QtCore>
+#include <QtGui>
+
+class DemoItem;
+
+class DemoItemAnimation : public QGraphicsItemAnimation
+{
+ Q_OBJECT
+
+public:
+ enum INOROUT {ANIM_IN, ANIM_OUT, ANIM_UNSPECIFIED};
+
+ DemoItemAnimation(DemoItem *item, INOROUT inOrOut = ANIM_UNSPECIFIED);
+ virtual ~DemoItemAnimation();
+
+ virtual void play(bool fromStart = true, bool force = false);
+ virtual void playReverse();
+ virtual void stop(bool reset = true);
+ virtual void setRepeat(int nr = 0);
+
+ void setDuration(int duration);
+ void setDuration(float duration){ setDuration(int(duration)); };
+ void setOpacityAt0(qreal opacity);
+ void setOpacityAt1(qreal opacity);
+ void setOpacity(qreal step);
+ void setCurrentTime(int ms);
+ void setStartPos(const QPointF &pos);
+ bool notOwnerOfItem();
+
+ bool running();
+ bool runningOrItemLocked();
+ void lockItem(bool state);
+ void prepare();
+
+ DemoItem *demoItem();
+
+ virtual void afterAnimationStep(qreal step); // overridden
+
+ QTimeLine *timeline;
+ qreal opacityAt0;
+ qreal opacityAt1;
+ int startDelay;
+ QPointF startPos;
+ bool hideOnFinished;
+ bool moveOnPlay;
+ bool forcePlay;
+ bool fromStart;
+ INOROUT inOrOut;
+
+private slots:
+ virtual void playWithoutDelay();
+};
+
+#endif // DEMO_ITEM_ANIMATION_H
+
+
+
diff --git a/demos/qtdemo/demoscene.cpp b/demos/qtdemo/demoscene.cpp
new file mode 100644
index 0000000..29b73d3
--- /dev/null
+++ b/demos/qtdemo/demoscene.cpp
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "demoscene.h"
+
+void DemoScene::drawItems(QPainter *painter, int numItems, QGraphicsItem *items[], const QStyleOptionGraphicsItem options[], QWidget *widget)
+{
+ for (int i=0; i<numItems; ++i) {
+ painter->save();
+ painter->setMatrix(items[i]->sceneMatrix(), true);
+ items[i]->paint(painter, &options[i], widget);
+ painter->restore();
+ }
+}
+
+
diff --git a/demos/qtdemo/demoscene.h b/demos/qtdemo/demoscene.h
new file mode 100644
index 0000000..e4838c7
--- /dev/null
+++ b/demos/qtdemo/demoscene.h
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MAIN_VIEW_H
+#define MAIN_VIEW_H
+
+#include <QtGui>
+
+class DemoScene : public QGraphicsScene
+{
+public:
+ DemoScene(QObject *parent) : QGraphicsScene(parent){};
+
+protected:
+ void drawItems(QPainter *painter, int numItems, QGraphicsItem *items[], const QStyleOptionGraphicsItem options[], QWidget *widget);
+};
+
+#endif // MAIN_VIEW_H
+
diff --git a/demos/qtdemo/demotextitem.cpp b/demos/qtdemo/demotextitem.cpp
new file mode 100644
index 0000000..cd549fc
--- /dev/null
+++ b/demos/qtdemo/demotextitem.cpp
@@ -0,0 +1,123 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "demotextitem.h"
+#include "colors.h"
+
+DemoTextItem::DemoTextItem(const QString &text, const QFont &font, const QColor &textColor,
+ float textWidth, QGraphicsScene *scene, QGraphicsItem *parent, TYPE type, const QColor &bgColor)
+ : DemoItem(scene, parent)
+{
+ this->type = type;
+ this->text = text;
+ this->font = font;
+ this->textColor = textColor;
+ this->bgColor = bgColor;
+ this->textWidth = textWidth;
+ this->noSubPixeling = true;
+}
+
+void DemoTextItem::setText(const QString &text)
+{
+ this->text = text;
+ this->update();
+}
+
+QImage *DemoTextItem::createImage(const QMatrix &matrix) const
+{
+ if (this->type == DYNAMIC_TEXT)
+ return 0;
+
+ float sx = qMin(matrix.m11(), matrix.m22());
+ float sy = matrix.m22() < sx ? sx : matrix.m22();
+
+ QGraphicsTextItem textItem(0, 0);
+ textItem.setHtml(this->text);
+ textItem.setTextWidth(this->textWidth);
+ textItem.setFont(this->font);
+ textItem.setDefaultTextColor(this->textColor);
+ textItem.document()->setDocumentMargin(2);
+
+ float w = textItem.boundingRect().width();
+ float h = textItem.boundingRect().height();
+ QImage *image = new QImage(int(w * sx), int(h * sy), QImage::Format_ARGB32_Premultiplied);
+ image->fill(QColor(0, 0, 0, 0).rgba());
+ QPainter painter(image);
+ painter.scale(sx, sy);
+ QStyleOptionGraphicsItem style;
+ textItem.paint(&painter, &style, 0);
+ return image;
+}
+
+
+void DemoTextItem::animationStarted(int)
+{
+ this->noSubPixeling = false;
+}
+
+
+void DemoTextItem::animationStopped(int)
+{
+ this->noSubPixeling = true;
+}
+
+QRectF DemoTextItem::boundingRect() const
+
+{
+ if (this->type == STATIC_TEXT)
+ return DemoItem::boundingRect();
+ return QRectF(0, 0, 50, 20); // Sorry for using magic number
+}
+
+
+void DemoTextItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+ Q_UNUSED(option);
+ Q_UNUSED(widget);
+
+ if (this->type == STATIC_TEXT) {
+ DemoItem::paint(painter, option, widget);
+ return;
+ }
+
+ painter->setPen(this->textColor);
+ painter->drawText(0, 0, this->text);
+}
diff --git a/demos/qtdemo/demotextitem.h b/demos/qtdemo/demotextitem.h
new file mode 100644
index 0000000..679e3fb
--- /dev/null
+++ b/demos/qtdemo/demotextitem.h
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DEMO_TEXT_ITEM_H
+#define DEMO_TEXT_ITEM_H
+
+#include <QtGui>
+#include "demoitem.h"
+
+class DemoTextItem : public DemoItem
+{
+public:
+ enum TYPE {STATIC_TEXT, DYNAMIC_TEXT};
+
+ DemoTextItem(const QString &text, const QFont &font, const QColor &textColor,
+ float textWidth, QGraphicsScene *scene = 0, QGraphicsItem *parent = 0, TYPE type = STATIC_TEXT, const QColor &bgColor = QColor());
+ void setText(const QString &text);
+ QRectF boundingRect() const; // overridden
+ void animationStarted(int id = 0);
+ void animationStopped(int id = 0);
+
+protected:
+ virtual QImage *createImage(const QMatrix &matrix) const; // overridden
+ virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option = 0, QWidget *widget = 0); // overridden
+
+private:
+ float textWidth;
+ QString text;
+ QFont font;
+ QColor textColor;
+ QColor bgColor;
+ TYPE type;
+};
+
+#endif // DEMO_TEXT_ITEM_H
+
diff --git a/demos/qtdemo/dockitem.cpp b/demos/qtdemo/dockitem.cpp
new file mode 100644
index 0000000..7f26f04
--- /dev/null
+++ b/demos/qtdemo/dockitem.cpp
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "dockitem.h"
+#include "colors.h"
+
+DockItem::DockItem(ORIENTATION orien, qreal x, qreal y, qreal width, qreal length, QGraphicsScene *scene, QGraphicsItem *parent)
+ : DemoItem(scene, parent)
+{
+ this->orientation = orien;
+ this->width = width;
+ this->length = length;
+ this->setPos(x, y);
+ this->setZValue(40);
+ this->setupPixmap();
+}
+
+void DockItem::setupPixmap()
+{
+ this->pixmap = new QPixmap(int(this->boundingRect().width()), int(this->boundingRect().height()));
+ this->pixmap->fill(QColor(0, 0, 0, 0));
+ QPainter painter(this->pixmap);
+ // create brush:
+ QColor background = Colors::sceneBg1;
+ QLinearGradient brush(0, 0, 0, this->boundingRect().height());
+ brush.setSpread(QGradient::PadSpread);
+
+ if (this->orientation == DOWN){
+ brush.setColorAt(0.0, background);
+ brush.setColorAt(0.2, background);
+ background.setAlpha(0);
+ brush.setColorAt(1.0, background);
+ }
+ else
+ if (this->orientation == UP){
+ brush.setColorAt(1.0, background);
+ brush.setColorAt(0.8, background);
+ background.setAlpha(0);
+ brush.setColorAt(0.0, background);
+ }
+ else
+ qWarning("DockItem doesn't support the orientation given!");
+
+ painter.fillRect(0, 0, int(this->boundingRect().width()), int(this->boundingRect().height()), brush);
+
+}
+
+DockItem::~DockItem()
+{
+ delete this->pixmap;
+}
+
+QRectF DockItem::boundingRect() const
+{
+ if (this->orientation == UP || this->orientation == DOWN)
+ return QRectF(0, 0, this->length, this->width);
+ else
+ return QRectF(0, 0, this->width, this->length);
+}
+
+void DockItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+ Q_UNUSED(option);
+ Q_UNUSED(widget);
+
+ painter->drawPixmap(0, 0, *this->pixmap);
+}
+
+
+
diff --git a/demos/qtdemo/dockitem.h b/demos/qtdemo/dockitem.h
new file mode 100644
index 0000000..13473a3
--- /dev/null
+++ b/demos/qtdemo/dockitem.h
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DOCK_ITEM_H
+#define DOCK_ITEM_H
+
+#include <QtGui>
+#include "demoitem.h"
+
+class DockItem : public DemoItem
+{
+public:
+ enum ORIENTATION {UP, DOWN, LEFT, RIGHT};
+
+ DockItem(ORIENTATION orien, qreal x, qreal y, qreal width, qreal length, QGraphicsScene *scene = 0, QGraphicsItem *parent = 0);
+ virtual ~DockItem();
+
+ virtual QRectF boundingRect() const; // overridden
+ virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); // overridden
+
+ qreal length;
+ qreal width;
+ ORIENTATION orientation;
+
+private:
+ void setupPixmap();
+ QPixmap *pixmap;
+};
+
+#endif // DOCK_ITEM_H
+
diff --git a/demos/qtdemo/examplecontent.cpp b/demos/qtdemo/examplecontent.cpp
new file mode 100644
index 0000000..a568b8c
--- /dev/null
+++ b/demos/qtdemo/examplecontent.cpp
@@ -0,0 +1,158 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "examplecontent.h"
+#include "colors.h"
+#include "menumanager.h"
+#include "imageitem.h"
+#include "headingitem.h"
+
+ExampleContent::ExampleContent(const QString &name, QGraphicsScene *scene, QGraphicsItem *parent)
+ : DemoItem(scene, parent)
+{
+ this->name = name;
+ this->heading = 0;
+ this->description = 0;
+ this->screenshot = 0;
+}
+
+void ExampleContent::prepare()
+{
+ if (!this->prepared){
+ this->prepared = true;
+ this->createContent();
+ }
+}
+
+void ExampleContent::animationStopped(int id)
+{
+ if (id == DemoItemAnimation::ANIM_OUT){
+ // Free up some memory:
+ delete this->heading;
+ delete this->description;
+ delete this->screenshot;
+ this->heading = 0;
+ this->description = 0;
+ this->screenshot = 0;
+ this->prepared = false;
+ }
+}
+
+QString ExampleContent::loadDescription()
+{
+ QByteArray ba = MenuManager::instance()->getHtml(this->name);
+
+ QDomDocument exampleDoc;
+ exampleDoc.setContent(ba, false);
+
+ QDomNodeList paragraphs = exampleDoc.elementsByTagName("p");
+ if (paragraphs.length() < 1 && Colors::verbose)
+ qDebug() << "- ExampleContent::loadDescription(): Could not load description:" << MenuManager::instance()->info[this->name]["docfile"];
+ QString description = Colors::contentColor + QLatin1String("Could not load description. Ensure that the documentation for Qt is built.");
+ for (int p = 0; p < int(paragraphs.length()); ++p) {
+ description = this->extractTextFromParagraph(paragraphs.item(p));
+ if (this->isSummary(description)) {
+ break;
+ }
+ }
+ return Colors::contentColor + description;
+}
+
+bool ExampleContent::isSummary(const QString &text)
+{
+ return (!text.contains("[") &&
+ text.indexOf(QRegExp(QString("(In )?((The|This) )?(%1 )?.*(tutorial|example|demo|application)").arg(this->name), Qt::CaseInsensitive)) != -1);
+}
+
+QString ExampleContent::extractTextFromParagraph(const QDomNode &parentNode)
+{
+ QString description;
+ QDomNode node = parentNode.firstChild();
+
+ while (!node.isNull()) {
+ QString beginTag;
+ QString endTag;
+ if (node.isText())
+ description += Colors::contentColor + node.nodeValue();
+ else if (node.hasChildNodes()) {
+ if (node.nodeName() == "b") {
+ beginTag = "<b>";
+ endTag = "</b>";
+ } else if (node.nodeName() == "a") {
+ beginTag = Colors::contentColor;
+ endTag = "</font>";
+ } else if (node.nodeName() == "i") {
+ beginTag = "<i>";
+ endTag = "</i>";
+ } else if (node.nodeName() == "tt") {
+ beginTag = "<tt>";
+ endTag = "</tt>";
+ }
+ description += beginTag + this->extractTextFromParagraph(node) + endTag;
+ }
+ node = node.nextSibling();
+ }
+
+ return description;
+}
+
+void ExampleContent::createContent()
+{
+ // Create the items:
+ this->heading = new HeadingItem(this->name, this->scene(), this);
+ this->description = new DemoTextItem(this->loadDescription(), Colors::contentFont(),
+ Colors::heading, 500, this->scene(), this);
+ int imgHeight = 340 - int(this->description->boundingRect().height()) + 50;
+ this->screenshot = new ImageItem(QImage::fromData(MenuManager::instance()->getImage(this->name)),
+ 550, imgHeight, this->scene(), this);
+
+ // Place the items on screen:
+ this->heading->setPos(0, 3);
+ this->description->setPos(0, this->heading->pos().y() + this->heading->boundingRect().height() + 10);
+ this->screenshot->setPos(0, this->description->pos().y() + this->description->boundingRect().height() + 10);
+}
+
+QRectF ExampleContent::boundingRect() const
+{
+ return QRectF(0, 0, 500, 100);
+}
+
+
diff --git a/demos/qtdemo/examplecontent.h b/demos/qtdemo/examplecontent.h
new file mode 100644
index 0000000..850d64b
--- /dev/null
+++ b/demos/qtdemo/examplecontent.h
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef CONTENT_ITEM_H
+#define CONTENT_ITEM_H
+
+#include <QtGui>
+#include <QtXml>
+#include "demoitem.h"
+
+class HeadingItem;
+class DemoTextItem;
+class ImageItem;
+
+class ExampleContent : public DemoItem
+{
+
+public:
+ ExampleContent(const QString &name, QGraphicsScene *scene = 0, QGraphicsItem *parent = 0);
+
+ virtual QRectF boundingRect() const;
+ virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0){};
+ void animationStopped(int id);
+ void prepare();
+
+private:
+ QString name;
+ HeadingItem *heading;
+ DemoTextItem *description;
+ ImageItem *screenshot;
+
+ QString loadDescription();
+ QString extractTextFromParagraph(const QDomNode &parentNode);
+ bool isSummary(const QString &text);
+ void createContent();
+};
+
+#endif // CONTENT_ITEM_H
+
diff --git a/demos/qtdemo/guide.cpp b/demos/qtdemo/guide.cpp
new file mode 100644
index 0000000..1f3c355
--- /dev/null
+++ b/demos/qtdemo/guide.cpp
@@ -0,0 +1,144 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <cmath>
+#include "guide.h"
+#include "colors.h"
+
+Guide::Guide(Guide *follows)
+{
+ this->scaleX = 1.0;
+ this->scaleY = 1.0;
+
+ if (follows){
+ while (follows->nextGuide != follows->firstGuide) // append to end
+ follows = follows->nextGuide;
+
+ follows->nextGuide = this;
+ this->prevGuide = follows;
+ this->firstGuide = follows->firstGuide;
+ this->nextGuide = follows->firstGuide;
+ this->startLength = int(follows->startLength + follows->length()) + 1;
+ }
+ else{
+ this->prevGuide = this;
+ this->firstGuide = this;
+ this->nextGuide = this;
+ this->startLength = 0;
+ }
+}
+
+void Guide::setScale(float scaleX, float scaleY, bool all)
+{
+ this->scaleX = scaleX;
+ this->scaleY = scaleY;
+
+ if (all){
+ Guide *next = this->nextGuide;
+ while(next != this){
+ next->scaleX = scaleX;
+ next->scaleY = scaleY;
+ next = next->nextGuide;
+ }
+ }
+}
+
+void Guide::setFence(const QRectF &fence, bool all)
+{
+ this->fence = fence;
+
+ if (all){
+ Guide *next = this->nextGuide;
+ while(next != this){
+ next->fence = fence;
+ next = next->nextGuide;
+ }
+ }
+}
+
+Guide::~Guide()
+{
+ if (this != this->nextGuide && this->nextGuide != this->firstGuide)
+ delete this->nextGuide;
+}
+
+float Guide::lengthAll()
+{
+ float len = length();
+ Guide *next = this->nextGuide;
+ while(next != this){
+ len += next->length();
+ next = next->nextGuide;
+ }
+ return len;
+}
+
+void Guide::move(DemoItem *item, QPointF &dest, float moveSpeed)
+{
+ QLineF walkLine(item->getGuidedPos(), dest);
+ if (moveSpeed >= 0 && walkLine.length() > moveSpeed){
+ // The item is too far away from it's destination point.
+ // So we choose to move it towards it instead.
+ float dx = walkLine.dx();
+ float dy = walkLine.dy();
+
+ if (qAbs(dx) > qAbs(dy)){
+ // walk along x-axis
+ if (dx != 0){
+ float d = moveSpeed * dy / qAbs(dx);
+ float s = dx > 0 ? moveSpeed : -moveSpeed;
+ dest.setX(item->getGuidedPos().x() + s);
+ dest.setY(item->getGuidedPos().y() + d);
+ }
+ }
+ else{
+ // walk along y-axis
+ if (dy != 0){
+ float d = moveSpeed * dx / qAbs(dy);
+ float s = dy > 0 ? moveSpeed : -moveSpeed;
+ dest.setX(item->getGuidedPos().x() + d);
+ dest.setY(item->getGuidedPos().y() + s);
+ }
+ }
+ }
+
+ item->setGuidedPos(dest);
+}
diff --git a/demos/qtdemo/guide.h b/demos/qtdemo/guide.h
new file mode 100644
index 0000000..51ce6c3
--- /dev/null
+++ b/demos/qtdemo/guide.h
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef GUIDE_H
+#define GUIDE_H
+
+#include "demoitem.h"
+
+class Guide
+{
+public:
+ Guide(Guide *follows = 0);
+ virtual ~Guide();
+
+ virtual void guide(DemoItem *item, float moveSpeed) = 0;
+ void move(DemoItem *item, QPointF &dest, float moveSpeed);
+ virtual QPointF startPos(){ return QPointF(0, 0); };
+ virtual QPointF endPos(){ return QPointF(0, 0); };
+ virtual float length(){ return 1; };
+ float lengthAll();
+
+ void setScale(float scaleX, float scaleY, bool all = true);
+ void setFence(const QRectF &fence, bool all = true);
+
+ int startLength;
+ Guide *nextGuide;
+ Guide *firstGuide;
+ Guide *prevGuide;
+ float scaleX;
+ float scaleY;
+ QRectF fence;
+};
+
+#endif // GUIDE_H
+
diff --git a/demos/qtdemo/guidecircle.cpp b/demos/qtdemo/guidecircle.cpp
new file mode 100644
index 0000000..98328dc
--- /dev/null
+++ b/demos/qtdemo/guidecircle.cpp
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "guidecircle.h"
+
+static float PI2 = 2*3.1415f;
+
+GuideCircle::GuideCircle(const QRectF &rect, float startAngle, float span, DIRECTION dir, Guide *follows) : Guide(follows)
+{
+ this->radiusX = rect.width() / 2.0;
+ this->radiusY = rect.height() / 2.0;
+ this->posX = rect.topLeft().x();
+ this->posY = rect.topLeft().y();
+ this->spanRad = span * PI2 / -360.0;
+ if (dir == CCW){
+ this->startAngleRad = startAngle * PI2 / -360.0;
+ this->endAngleRad = startAngleRad + spanRad;
+ this->stepAngleRad = this->spanRad / this->length();
+ }
+ else{
+ this->startAngleRad = spanRad + (startAngle * PI2 / -360.0);
+ this->endAngleRad = startAngle * PI2 / -360.0;
+ this->stepAngleRad = -this->spanRad / this->length();
+ }
+}
+
+float GuideCircle::length()
+{
+ return qAbs(this->radiusX * spanRad);
+}
+
+QPointF GuideCircle::startPos()
+{
+ return QPointF((posX + radiusX + radiusX * cos(startAngleRad)) * scaleX,
+ (posY + radiusY + radiusY * sin(startAngleRad)) * scaleY);
+}
+
+QPointF GuideCircle::endPos()
+{
+ return QPointF((posX + radiusX + radiusX * cos(endAngleRad)) * scaleX,
+ (posY + radiusY + radiusY * sin(endAngleRad)) * scaleY);
+}
+
+void GuideCircle::guide(DemoItem *item, float moveSpeed)
+{
+ float frame = item->guideFrame - this->startLength;
+ QPointF end((posX + radiusX + radiusX * cos(startAngleRad + (frame * stepAngleRad))) * scaleX,
+ (posY + radiusY + radiusY * sin(startAngleRad + (frame * stepAngleRad))) * scaleY);
+ this->move(item, end, moveSpeed);
+}
diff --git a/demos/qtdemo/guidecircle.h b/demos/qtdemo/guidecircle.h
new file mode 100644
index 0000000..2179527
--- /dev/null
+++ b/demos/qtdemo/guidecircle.h
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef GUIDECIRCLE_H
+#define GUIDECIRCLE_H
+
+#include "guide.h"
+#include "demoitem.h"
+
+class GuideCircle : public Guide
+{
+public:
+ enum DIRECTION {CW = 1, CCW = -1};
+
+ GuideCircle(const QRectF &rect, float startAngle = 0, float span = 360, DIRECTION dir = CCW, Guide *follows = 0);
+
+ void guide(DemoItem *item, float moveSpeed); // overridden
+ QPointF startPos();
+ QPointF endPos();
+ float length();
+
+private:
+ float posX;
+ float posY;
+ float radiusX;
+ float radiusY;
+ float startAngleRad;
+ float endAngleRad;
+ float spanRad;
+ float stepAngleRad;
+};
+
+#endif // GUIDECIRCLE_H
+
diff --git a/demos/qtdemo/guideline.cpp b/demos/qtdemo/guideline.cpp
new file mode 100644
index 0000000..ac01339
--- /dev/null
+++ b/demos/qtdemo/guideline.cpp
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "guideline.h"
+#include <cmath>
+
+GuideLine::GuideLine(const QLineF &line, Guide *follows) : Guide(follows)
+{
+ this->line = line;
+}
+
+GuideLine::GuideLine(const QPointF &end, Guide *follows) : Guide(follows)
+{
+ if (follows)
+ this->line = QLineF(prevGuide->endPos(), end);
+ else
+ this->line = QLineF(QPointF(0, 0), end);
+}
+
+float GuideLine::length()
+{
+ return line.length();
+}
+
+QPointF GuideLine::startPos()
+{
+ return QPointF(this->line.p1().x() * scaleX, this->line.p1().y() * scaleY);
+}
+
+QPointF GuideLine::endPos()
+{
+ return QPointF(this->line.p2().x() * scaleX, this->line.p2().y() * scaleY);
+}
+
+void GuideLine::guide(DemoItem *item, float moveSpeed)
+{
+ float frame = item->guideFrame - this->startLength;
+ float endX = (this->line.p1().x() + (frame * this->line.dx() / this->length())) * scaleX;
+ float endY = (this->line.p1().y() + (frame * this->line.dy() / this->length())) * scaleY;
+ QPointF pos(endX, endY);
+ this->move(item, pos, moveSpeed);
+}
+
diff --git a/demos/qtdemo/guideline.h b/demos/qtdemo/guideline.h
new file mode 100644
index 0000000..93daaa8
--- /dev/null
+++ b/demos/qtdemo/guideline.h
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef GUIDELINE_H
+#define GUIDELINE_H
+
+#include "guide.h"
+#include "demoitem.h"
+
+class GuideLine : public Guide
+{
+public:
+ GuideLine(const QLineF &line, Guide *follows = 0);
+ GuideLine(const QPointF &end, Guide *follows = 0);
+
+ void guide(DemoItem *item, float moveSpeed); // overridden
+ QPointF startPos();
+ QPointF endPos();
+ float length();
+
+private:
+ QLineF line;
+
+};
+
+#endif // GUIDELINE_H
+
diff --git a/demos/qtdemo/headingitem.cpp b/demos/qtdemo/headingitem.cpp
new file mode 100644
index 0000000..80a255a
--- /dev/null
+++ b/demos/qtdemo/headingitem.cpp
@@ -0,0 +1,104 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "headingitem.h"
+#include "colors.h"
+
+HeadingItem::HeadingItem(const QString &text, QGraphicsScene *scene, QGraphicsItem *parent)
+ : DemoItem(scene, parent)
+{
+ this->text = text;
+ this->noSubPixeling = true;
+}
+
+QImage *HeadingItem::createImage(const QMatrix &matrix) const
+{
+ float sx = qMin(matrix.m11(), matrix.m22());
+ float sy = matrix.m22() < sx ? sx : matrix.m22();
+ QFontMetrics fm(Colors::headingFont());
+
+ float w = fm.width(this->text) + 1;
+ float h = fm.height();
+ float xShadow = 3.0f;
+ float yShadow = 3.0f;
+
+ QImage *image = new QImage(int((w + xShadow) * sx), int((h + yShadow) * sy), QImage::Format_ARGB32_Premultiplied);
+ image->fill(QColor(0, 0, 0, 0).rgba());
+ QPainter painter(image);
+ painter.setFont(Colors::headingFont());
+ painter.scale(sx, sy);
+
+ //draw shadow
+ QLinearGradient brush_shadow(xShadow, yShadow, w, yShadow);
+ brush_shadow.setSpread(QLinearGradient::PadSpread);
+ if (Colors::useEightBitPalette)
+ brush_shadow.setColorAt(0.0f, QColor(0, 0, 0));
+ else
+ brush_shadow.setColorAt(0.0f, QColor(0, 0, 0, 100));
+ QPen pen_shadow;
+ pen_shadow.setBrush(brush_shadow);
+ painter.setPen(pen_shadow);
+ painter.drawText(int(xShadow), int(yShadow), int(w), int(h), Qt::AlignLeft, this->text);
+
+ // draw text
+ QLinearGradient brush_text(0, 0, w, w);
+ brush_text.setSpread(QLinearGradient::PadSpread);
+ brush_text.setColorAt(0.0f, QColor(255, 255, 255));
+ brush_text.setColorAt(0.2f, QColor(255, 255, 255));
+ brush_text.setColorAt(0.5f, QColor(190, 190, 190));
+ QPen pen_text;
+ pen_text.setBrush(brush_text);
+ painter.setPen(pen_text);
+ painter.drawText(0, 0, int(w), int(h), Qt::AlignLeft, this->text);
+ return image;
+}
+
+
+void HeadingItem::animationStarted(int)
+{
+ this->noSubPixeling = false;
+}
+
+
+void HeadingItem::animationStopped(int)
+{
+ this->noSubPixeling = true;
+}
diff --git a/demos/qtdemo/headingitem.h b/demos/qtdemo/headingitem.h
new file mode 100644
index 0000000..a5cb997
--- /dev/null
+++ b/demos/qtdemo/headingitem.h
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef HEADING_ITEM_H
+#define HEADING_ITEM_H
+
+#include <QtGui>
+#include "demoitem.h"
+
+class HeadingItem : public DemoItem
+{
+public:
+ HeadingItem(const QString &text, QGraphicsScene *scene = 0, QGraphicsItem *parent = 0);
+ void animationStarted(int id = 0);
+ void animationStopped(int id = 0);
+
+protected:
+ virtual QImage *createImage(const QMatrix &matrix) const; // overridden
+
+private:
+ QString text;
+};
+
+#endif // HEADING_ITEM_H
+
diff --git a/demos/qtdemo/imageitem.cpp b/demos/qtdemo/imageitem.cpp
new file mode 100644
index 0000000..e556011
--- /dev/null
+++ b/demos/qtdemo/imageitem.cpp
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "imageitem.h"
+#include "colors.h"
+
+ImageItem::ImageItem(const QImage &image, int maxWidth, int maxHeight, QGraphicsScene *scene,
+ QGraphicsItem *parent, bool adjustSize, float scale) : DemoItem(scene, parent)
+{
+ this->image = image;
+ this->maxWidth = maxWidth;
+ this->maxHeight = maxHeight;
+ this->adjustSize = adjustSize;
+ this->scale = scale;
+}
+
+QImage *ImageItem::createImage(const QMatrix &matrix) const
+{
+ QImage *original = new QImage(image);
+ if (original->isNull()){
+ return original; // nothing we can do about it...
+ }
+
+ QPoint size = matrix.map(QPoint(this->maxWidth, this->maxHeight));
+ float w = size.x(); // x, y is the used as width, height
+ float h = size.y();
+
+ // Optimization: if image is smaller than maximum allowed size, just return the loaded image
+ if (original->size().height() <= h && original->size().width() <= w && !this->adjustSize && this->scale == 1)
+ return original;
+
+ // Calculate what the size of the final image will be:
+ w = qMin(w, float(original->size().width()) * this->scale);
+ h = qMin(h, float(original->size().height()) * this->scale);
+
+ float adjustx = 1.0f;
+ float adjusty = 1.0f;
+ if (this->adjustSize){
+ adjustx = qMin(matrix.m11(), matrix.m22());
+ adjusty = matrix.m22() < adjustx ? adjustx : matrix.m22();
+ w *= adjustx;
+ h *= adjusty;
+ }
+
+ // Create a new image with correct size, and draw original on it
+ QImage *image = new QImage(int(w+2), int(h+2), QImage::Format_ARGB32_Premultiplied);
+ image->fill(QColor(0, 0, 0, 0).rgba());
+ QPainter painter(image);
+ painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
+ if (this->adjustSize)
+ painter.scale(adjustx, adjusty);
+ if (this->scale != 1)
+ painter.scale(this->scale, this->scale);
+ painter.drawImage(0, 0, *original);
+
+ if (!this->adjustSize){
+ // Blur out edges
+ int blur = 30;
+ if (h < original->height()){
+ QLinearGradient brush1(0, h - blur, 0, h);
+ brush1.setSpread(QGradient::PadSpread);
+ brush1.setColorAt(0.0, QColor(0, 0, 0, 0));
+ brush1.setColorAt(1.0, Colors::sceneBg1);
+ painter.fillRect(0, int(h) - blur, original->width(), int(h), brush1);
+ }
+ if (w < original->width()){
+ QLinearGradient brush2(w - blur, 0, w, 0);
+ brush2.setSpread(QGradient::PadSpread);
+ brush2.setColorAt(0.0, QColor(0, 0, 0, 0));
+ brush2.setColorAt(1.0, Colors::sceneBg1);
+ painter.fillRect(int(w) - blur, 0, int(w), original->height(), brush2);
+ }
+ }
+ delete original;
+ return image;
+}
diff --git a/demos/qtdemo/imageitem.h b/demos/qtdemo/imageitem.h
new file mode 100644
index 0000000..e73079a
--- /dev/null
+++ b/demos/qtdemo/imageitem.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef IMAGE_ITEM_H
+#define IMAGE_ITEM_H
+
+#include <QtGui>
+#include "demoitem.h"
+
+class ImageItem : public DemoItem
+{
+public:
+ ImageItem(const QImage &image, int maxWidth, int maxHeight, QGraphicsScene *scene = 0, QGraphicsItem *parent = 0,
+ bool adjustSize = false, float scale = 1.0f);
+
+ bool adjustSize;
+ float scale;
+protected:
+ QImage *createImage(const QMatrix &matrix) const;
+
+private:
+ QImage image;
+ int maxWidth;
+ int maxHeight;
+};
+
+#endif // DOCK_ITEM_H
+
diff --git a/demos/qtdemo/images/demobg.png b/demos/qtdemo/images/demobg.png
new file mode 100755
index 0000000..3280afa
--- /dev/null
+++ b/demos/qtdemo/images/demobg.png
Binary files differ
diff --git a/demos/qtdemo/images/qtlogo_small.png b/demos/qtdemo/images/qtlogo_small.png
new file mode 100644
index 0000000..21b17df
--- /dev/null
+++ b/demos/qtdemo/images/qtlogo_small.png
Binary files differ
diff --git a/demos/qtdemo/images/trolltech-logo.png b/demos/qtdemo/images/trolltech-logo.png
new file mode 100644
index 0000000..186c69c
--- /dev/null
+++ b/demos/qtdemo/images/trolltech-logo.png
Binary files differ
diff --git a/demos/qtdemo/itemcircleanimation.cpp b/demos/qtdemo/itemcircleanimation.cpp
new file mode 100644
index 0000000..fff52bb
--- /dev/null
+++ b/demos/qtdemo/itemcircleanimation.cpp
@@ -0,0 +1,507 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "itemcircleanimation.h"
+#include "demoitemanimation.h"
+#include "colors.h"
+#include "menumanager.h"
+#include "mainwindow.h"
+#include "menumanager.h"
+
+static QGraphicsScene *sscene;
+
+//////////////////// POST EFFECT STUFF ////////////////////////////////////////
+
+class TickerPostEffect
+{
+public:
+ virtual ~TickerPostEffect(){};
+ virtual void tick(float){};
+ virtual void transform(DemoItem *, QPointF &){};
+};
+
+class PostRotateXY : public TickerPostEffect
+{
+public:
+ float currRotX, currRotY;
+ float speedx, speedy, curvx, curvy;
+
+ PostRotateXY(float speedx, float speedy, float curvx, float curvy)
+ : currRotX(0), currRotY(0),
+ speedx(speedx), speedy(speedy),
+ curvx(curvx), curvy(curvy){};
+
+ void tick(float adjust)
+ {
+ currRotX += speedx * adjust;
+ currRotY += speedy * adjust;
+ }
+
+ void transform(DemoItem *item, QPointF &pos)
+ {
+ DemoItem *parent = (DemoItem *) item->parentItem();
+ QPointF center = parent->boundingRect().center();
+ pos.setX(center.x() + (pos.x() - center.x()) * cos(currRotX + pos.x() * curvx));
+ pos.setY(center.y() + (pos.y() - center.y()) * cos(currRotY + pos.y() * curvy));
+ }
+};
+
+class PostRotateXYTwist : public TickerPostEffect
+{
+public:
+ float currRotX, currRotY;
+ float speedx, speedy, curvx, curvy;
+
+ PostRotateXYTwist(float speedx, float speedy, float curvx, float curvy)
+ : currRotX(0), currRotY(0),
+ speedx(speedx), speedy(speedy),
+ curvx(curvx), curvy(curvy){};
+
+ void tick(float adjust)
+ {
+ currRotX += speedx * adjust;
+ currRotY += speedy * adjust;
+ }
+
+ void transform(DemoItem *item, QPointF &pos)
+ {
+ DemoItem *parent = (DemoItem *) item->parentItem();
+ QPointF center = parent->boundingRect().center();
+ pos.setX(center.x() + (pos.x() - center.x()) * cos(currRotX + pos.y() * curvx));
+ pos.setY(center.y() + (pos.y() - center.y()) * cos(currRotY + pos.x() * curvy));
+ }
+};
+
+//////////////////// TICKER EFFECT STUFF //////////////////////////////////////
+
+class TickerEffect
+{
+ TickerPostEffect *postEffect;
+public:
+ enum EffectStatus{Normal, Intro, Outro} status;
+ LetterList *letters;
+ float morphSpeed, moveSpeed;
+ float normalMorphSpeed, normalMoveSpeed;
+ bool useSheepDog, morphBetweenModels;
+
+ TickerEffect(LetterList *letters)
+ : postEffect(new TickerPostEffect()), status(Intro), letters(letters),
+ morphSpeed(Colors::tickerMorphSpeed), moveSpeed(Colors::tickerMoveSpeed),
+ normalMorphSpeed(Colors::tickerMorphSpeed), normalMoveSpeed(Colors::tickerMoveSpeed),
+ useSheepDog(true), morphBetweenModels(!Colors::noTickerMorph){}
+
+ void setPostEffect(TickerPostEffect *effect)
+ {
+ delete postEffect;
+ postEffect = effect;
+ }
+
+ virtual ~TickerEffect()
+ {
+ delete postEffect;
+ }
+
+ void slowDownAfterIntro(float adjust)
+ {
+ if (morphBetweenModels){
+ if (status == Intro){
+ float dec = 0.1 * adjust;
+ moveSpeed -= dec;
+ if (moveSpeed < Colors::tickerMoveSpeed){
+ moveSpeed = normalMoveSpeed;
+ morphSpeed = normalMorphSpeed;
+ status = Normal;
+ }
+ }
+ }
+ }
+
+ void moveLetters(float adjust)
+ {
+ float adaptedMoveSpeed = this->moveSpeed * adjust;
+ float adaptedMorphSpeed = this->morphSpeed * adjust;
+ postEffect->tick(adjust);
+
+ for (int i=0; i<letters->size(); i++){
+ LetterItem *letter = letters->at(i);
+ letter->guideAdvance(this->morphBetweenModels ? adaptedMoveSpeed : Colors::tickerMoveSpeed);
+ letter->guideMove(this->morphBetweenModels ? adaptedMorphSpeed : -1);
+
+ QPointF pos = letter->getGuidedPos();
+ postEffect->transform(letter, pos);
+
+ if (useSheepDog)
+ letter->setPosUsingSheepDog(pos, QRectF(0, 0, 800, 600));
+ else
+ letter->setPos(pos);
+ }
+ }
+
+ virtual void tick(float adjust)
+ {
+ slowDownAfterIntro(adjust);
+ moveLetters(adjust);
+ }
+
+};
+
+class EffectWhirlWind : public TickerEffect
+{
+public:
+ EffectWhirlWind(LetterList *letters) : TickerEffect(letters)
+ {
+ moveSpeed = 50;
+ for (int i=0; i<this->letters->size(); i++){
+ LetterItem *letter = this->letters->at(i);
+ letter->setGuidedPos(QPointF(0, 100));
+ }
+ }
+};
+
+class EffectSnake : public TickerEffect
+{
+public:
+ EffectSnake(LetterList *letters) : TickerEffect(letters)
+ {
+ moveSpeed = 40;
+ for (int i=0; i<this->letters->size(); i++){
+ LetterItem *letter = this->letters->at(i);
+ letter->setGuidedPos(QPointF(0, -250 - (i * 5)));
+ }
+ }
+};
+
+class EffectScan : public TickerEffect
+{
+public:
+ EffectScan(LetterList *letters) : TickerEffect(letters)
+ {
+ for (int i=0; i<this->letters->size(); i++){
+ LetterItem *letter = this->letters->at(i);
+ letter->setGuidedPos(QPointF(100, -300));
+ }
+ }
+};
+
+class EffectRaindrops : public TickerEffect
+{
+public:
+ EffectRaindrops(LetterList *letters) : TickerEffect(letters)
+ {
+ for (int i=0; i<this->letters->size(); i++){
+ LetterItem *letter = this->letters->at(i);
+ letter->setGuidedPos(QPointF(-100 + rand() % 200, - 200.0f - rand() % 1300));
+ }
+ }
+};
+
+class EffectLine : public TickerEffect
+{
+public:
+ EffectLine(LetterList *letters) : TickerEffect(letters)
+ {
+ for (int i=0; i<this->letters->size(); i++){
+ LetterItem *letter = this->letters->at(i);
+ letter->setGuidedPos(QPointF(100, 500.0f + i * 20));
+ }
+ }
+};
+
+//////////////////// TICKER STUFF /////////////////////////////////////////////
+
+ItemCircleAnimation::ItemCircleAnimation(QGraphicsScene *scene, QGraphicsItem *parent)
+ : DemoItem(scene, parent)
+{
+ sscene = scene;
+ this->letterCount = Colors::tickerLetterCount;
+ this->scale = 1;
+ this->showCount = -1;
+ this->tickOnPaint = false;
+ this->paused = false;
+ this->doIntroTransitions = true;
+ this->setAcceptsHoverEvents(true);
+ this->setCursor(Qt::OpenHandCursor);
+ this->setupGuides();
+ this->setupLetters();
+ this->useGuideQt();
+ this->effect = 0;//new TickerEffect(this->letterList);
+}
+
+ItemCircleAnimation::~ItemCircleAnimation()
+{
+ delete this->letterList;
+ delete this->qtGuide1;
+ delete this->qtGuide2;
+ delete this->qtGuide3;
+ delete this->effect;
+}
+
+void ItemCircleAnimation::createLetter(char c)
+{
+ LetterItem *letter = new LetterItem(c, sscene, this);
+ this->letterList->append(letter);
+}
+
+void ItemCircleAnimation::setupLetters()
+{
+ this->letterList = new LetterList();
+
+ QString s = Colors::tickerText;
+ int len = s.length();
+ int i = 0;
+ for (; i < this->letterCount - len; i += len)
+ for (int l=0; l<len; l++)
+ createLetter(s[l].toLatin1());
+
+ // Fill inn with blanks:
+ for (; i < this->letterCount; ++i)
+ createLetter(' ');
+}
+
+void ItemCircleAnimation::setupGuides()
+{
+ int x = 0;
+ int y = 20;
+
+ this->qtGuide1 = new GuideCircle(QRectF(x, y, 260, 260), -36, 342);
+ new GuideLine(QPointF(x + 240, y + 268), this->qtGuide1);
+ new GuideLine(QPointF(x + 265, y + 246), this->qtGuide1);
+ new GuideLine(QPointF(x + 158, y + 134), this->qtGuide1);
+ new GuideLine(QPointF(x + 184, y + 109), this->qtGuide1);
+ new GuideLine(QPointF(x + 160, y + 82), this->qtGuide1);
+ new GuideLine(QPointF(x + 77, y + 163), this->qtGuide1); // T-top
+ new GuideLine(QPointF(x + 100, y + 190), this->qtGuide1);
+ new GuideLine(QPointF(x + 132, y + 159), this->qtGuide1);
+ new GuideLine(QPointF(x + 188, y + 211), this->qtGuide1);
+ new GuideCircle(QRectF(x + 30, y + 30, 200, 200), -30, 336, GuideCircle::CW, this->qtGuide1);
+ new GuideLine(QPointF(x + 238, y + 201), this->qtGuide1);
+
+ y = 30;
+ this->qtGuide2 = new GuideCircle(QRectF(x + 30, y + 30, 200, 200), 135, 270, GuideCircle::CCW);
+ new GuideLine(QPointF(x + 222, y + 38), this->qtGuide2);
+ new GuideCircle(QRectF(x, y, 260, 260), 135, 270, GuideCircle::CW, this->qtGuide2);
+ new GuideLine(QPointF(x + 59, y + 59), this->qtGuide2);
+
+ x = 115;
+ y = 10;
+ this->qtGuide3 = new GuideLine(QLineF(x, y, x + 30, y));
+ new GuideLine(QPointF(x + 30, y + 170), this->qtGuide3);
+ new GuideLine(QPointF(x, y + 170), this->qtGuide3);
+ new GuideLine(QPointF(x, y), this->qtGuide3);
+
+ this->qtGuide1->setFence(QRectF(0, 0, 800, 600));
+ this->qtGuide2->setFence(QRectF(0, 0, 800, 600));
+ this->qtGuide3->setFence(QRectF(0, 0, 800, 600));
+}
+
+void ItemCircleAnimation::useGuide(Guide *guide, int firstLetter, int lastLetter)
+{
+ float padding = guide->lengthAll() / float(lastLetter - firstLetter);
+ for (int i=firstLetter; i<lastLetter; i++){
+ LetterItem *letter = this->letterList->at(i);
+ letter->useGuide(guide, (i - firstLetter) * padding);
+ }
+}
+
+void ItemCircleAnimation::useGuideQt()
+{
+ if (this->currGuide != this->qtGuide1){
+ this->useGuide(qtGuide1, 0, this->letterCount);
+ this->currGuide = qtGuide1;
+ }
+}
+
+void ItemCircleAnimation::useGuideTt()
+{
+ if (this->currGuide != this->qtGuide2){
+ int split = int(this->letterCount * 5.0 / 7.0);
+ this->useGuide(qtGuide2, 0, split);
+ this->useGuide(qtGuide3, split, this->letterCount);
+ this->currGuide = qtGuide2;
+ }
+}
+
+QRectF ItemCircleAnimation::boundingRect() const
+{
+ return QRectF(0, 0, 300, 320);
+}
+
+void ItemCircleAnimation::prepare()
+{
+}
+
+void ItemCircleAnimation::switchToNextEffect()
+{
+ ++this->showCount;
+ delete this->effect;
+
+ switch (this->showCount){
+ case 1:
+ this->effect = new EffectSnake(this->letterList);
+ break;
+ case 2:
+ this->effect = new EffectLine(this->letterList);
+ this->effect->setPostEffect(new PostRotateXYTwist(0.01f, 0.0f, 0.003f, 0.0f));
+ break;
+ case 3:
+ this->effect = new EffectRaindrops(this->letterList);
+ this->effect->setPostEffect(new PostRotateXYTwist(0.01f, 0.005f, 0.003f, 0.003f));
+ break;
+ case 4:
+ this->effect = new EffectScan(this->letterList);
+ this->effect->normalMoveSpeed = 0;
+ this->effect->setPostEffect(new PostRotateXY(0.008f, 0.0f, 0.005f, 0.0f));
+ break;
+ default:
+ this->showCount = 0;
+ this->effect = new EffectWhirlWind(this->letterList);
+ }
+}
+
+void ItemCircleAnimation::animationStarted(int id)
+{
+ if (id == DemoItemAnimation::ANIM_IN){
+ if (this->doIntroTransitions){
+ // Make all letters dissapear
+ for (int i=0; i<this->letterList->size(); i++){
+ LetterItem *letter = this->letterList->at(i);
+ letter->setPos(1000, 0);
+ }
+ this->switchToNextEffect();
+ this->useGuideQt();
+ this->scale = 1;
+ // The first time we run, we have a rather large
+ // delay to perform benchmark before the ticker shows.
+ // But now, since we are showing, use a more appropriate value:
+ this->currentAnimation->startDelay = 1500;
+ }
+ }
+ else if (this->effect)
+ this->effect->useSheepDog = false;
+
+ this->tickTimer = QTime::currentTime();
+}
+
+void ItemCircleAnimation::animationStopped(int)
+{
+ // Nothing to do.
+}
+
+void ItemCircleAnimation::swapModel(){
+ if (this->currGuide == this->qtGuide2)
+ this->useGuideQt();
+ else
+ this->useGuideTt();
+}
+
+void ItemCircleAnimation::hoverEnterEvent(QGraphicsSceneHoverEvent *)
+{
+// Skip swap here to enhance ticker dragging
+// this->swapModel();
+}
+
+void ItemCircleAnimation::hoverLeaveEvent(QGraphicsSceneHoverEvent *)
+{
+ this->swapModel();
+}
+
+void ItemCircleAnimation::setTickerScale(float s)
+{
+ this->scale = s;
+ qtGuide1->setScale(this->scale, this->scale);
+ qtGuide2->setScale(this->scale, this->scale);
+ qtGuide3->setScale(this->scale, this->scale);
+}
+
+void ItemCircleAnimation::mousePressEvent(QGraphicsSceneMouseEvent *event)
+{
+ this->mouseMoveLastPosition = event->scenePos();
+ if (event->button() == Qt::LeftButton)
+ this->setCursor(Qt::ClosedHandCursor);
+ else
+ this->switchToNextEffect();
+}
+
+void ItemCircleAnimation::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
+{
+ if (event->button() == Qt::LeftButton)
+ this->setCursor(Qt::OpenHandCursor);
+}
+
+void ItemCircleAnimation::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
+{
+ QPointF newPosition = event->scenePos();
+ this->setPosUsingSheepDog(this->pos() + newPosition - this->mouseMoveLastPosition, QRectF(-260, -280, 1350, 1160));
+ this->mouseMoveLastPosition = newPosition;
+}
+
+void ItemCircleAnimation::wheelEvent(QGraphicsSceneWheelEvent *event)
+{
+ this->effect->moveSpeed = this->effect->moveSpeed + (event->delta() > 0 ? -0.20 : 0.20);
+ if (this->effect->moveSpeed < 0)
+ this->effect->moveSpeed = 0;
+}
+
+void ItemCircleAnimation::pause(bool on)
+{
+ this->paused = on;
+ this->tickTimer = QTime::currentTime();
+}
+
+void ItemCircleAnimation::tick()
+{
+ if (this->paused || !this->effect)
+ return;
+
+ float t = this->tickTimer.msecsTo(QTime::currentTime());
+ this->tickTimer = QTime::currentTime();
+ this->effect->tick(t/10.0f);
+}
+
+void ItemCircleAnimation::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *)
+{
+ if (this->tickOnPaint)
+ tick();
+}
+
+
+
+
diff --git a/demos/qtdemo/itemcircleanimation.h b/demos/qtdemo/itemcircleanimation.h
new file mode 100644
index 0000000..27e399c
--- /dev/null
+++ b/demos/qtdemo/itemcircleanimation.h
@@ -0,0 +1,110 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef ITEM_CIRCLE_ANIMATION_H
+#define ITEM_CIRCLE_ANIMATION_H
+
+#include <QtCore>
+#include <QObject>
+#include <QtGui>
+#include <QTimeLine>
+#include <QList>
+#include "demoitem.h"
+#include "letteritem.h"
+#include "guideline.h"
+#include "guidecircle.h"
+
+typedef QList<LetterItem *> LetterList;
+class TickerEffect;
+
+class ItemCircleAnimation : public QObject, public DemoItem
+{
+public:
+ ItemCircleAnimation(QGraphicsScene *scene = 0, QGraphicsItem *parent = 0);
+ virtual ~ItemCircleAnimation();
+
+ // overidden methods:
+ QRectF boundingRect() const;
+ void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0);
+ void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
+ void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
+ void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
+ void mousePressEvent(QGraphicsSceneMouseEvent *event);
+ void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
+ void wheelEvent(QGraphicsSceneWheelEvent *event);
+ void animationStarted(int id = 0);
+ void animationStopped(int id = 0);
+ void prepare();
+ void tick();
+ void switchToNextEffect();
+ void useGuideQt();
+ void useGuideTt();
+ void pause(bool on);
+
+ bool tickOnPaint;
+ bool paused;
+ bool doIntroTransitions;
+
+private:
+ void setupLetters();
+ void createLetter(char c);
+ void setupGuides();
+ void useGuide(Guide *guide, int firstLetter, int lastLetter);
+ void swapModel();
+ void setTickerScale(float s);
+
+ int showCount;
+ float scale;
+ QPointF mouseMoveLastPosition;
+ int letterCount;
+ LetterList *letterList;
+ Guide *qtGuide1;
+ Guide *qtGuide2;
+ Guide *qtGuide3;
+ Guide *currGuide;
+ TickerEffect *effect;
+ QTime tickTimer;
+};
+
+#endif // ITEM_CIRCLE_ANIMATION_H
+
+
+
diff --git a/demos/qtdemo/letteritem.cpp b/demos/qtdemo/letteritem.cpp
new file mode 100644
index 0000000..7b814b1
--- /dev/null
+++ b/demos/qtdemo/letteritem.cpp
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <cmath>
+#include "letteritem.h"
+#include "colors.h"
+
+LetterItem::LetterItem(char letter, QGraphicsScene *scene, QGraphicsItem *parent) : DemoItem(scene, parent), letter(letter)
+{
+ useSharedImage(QString(__FILE__) + letter);
+}
+
+LetterItem::~LetterItem()
+{
+}
+
+QImage *LetterItem::createImage(const QMatrix &matrix) const
+{
+ QRect scaledRect = matrix.mapRect(QRect(0, 0, 25, 25));
+ QImage *image = new QImage(scaledRect.width(), scaledRect.height(), QImage::Format_ARGB32_Premultiplied);
+ image->fill(0);
+ QPainter painter(image);
+ painter.scale(matrix.m11(), matrix.m22());
+ painter.setRenderHints(QPainter::TextAntialiasing | QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
+ painter.setPen(Qt::NoPen);
+ if (Colors::useEightBitPalette){
+ painter.setBrush(QColor(102, 175, 54));
+ painter.drawEllipse(0, 0, 25, 25);
+ painter.setFont(Colors::tickerFont());
+ painter.setPen(QColor(255, 255, 255));
+ painter.drawText(10, 15, QString(this->letter));
+ }
+ else {
+ QLinearGradient brush(0, 0, 0, 25);
+ brush.setSpread(QLinearGradient::PadSpread);
+ brush.setColorAt(0.0, QColor(102, 175, 54, 200));
+ brush.setColorAt(1.0, QColor(102, 175, 54, 60));
+ painter.setBrush(brush);
+ painter.drawEllipse(0, 0, 25, 25);
+ painter.setFont(Colors::tickerFont());
+ painter.setPen(QColor(255, 255, 255, 255));
+ painter.drawText(10, 15, QString(this->letter));
+ }
+ return image;
+}
+
+
diff --git a/demos/qtdemo/letteritem.h b/demos/qtdemo/letteritem.h
new file mode 100644
index 0000000..8c3f16e
--- /dev/null
+++ b/demos/qtdemo/letteritem.h
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef LETTER_ITEM_H
+#define LETTER_ITEM_H
+
+#include <QtGui>
+#include "demoitem.h"
+
+class LetterItem : public DemoItem
+{
+public:
+ LetterItem(char letter, QGraphicsScene *scene = 0, QGraphicsItem *parent = 0);
+ virtual ~LetterItem();
+
+protected:
+ QImage *createImage(const QMatrix &matrix) const;
+
+private:
+ char letter;
+};
+
+#endif // LETTER_ITEM_H
+
diff --git a/demos/qtdemo/main.cpp b/demos/qtdemo/main.cpp
new file mode 100644
index 0000000..bf2028d
--- /dev/null
+++ b/demos/qtdemo/main.cpp
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+#include "mainwindow.h"
+#include "menumanager.h"
+#include "colors.h"
+
+static void artisticSleep(int sleepTime)
+{
+ QTime time;
+ time.restart();
+ while (time.elapsed() < sleepTime)
+ QCoreApplication::processEvents(QEventLoop::AllEvents, 50);
+}
+
+int main(int argc, char *argv[])
+{
+ Q_INIT_RESOURCE(qtdemo);
+ QApplication app(argc, argv);
+ Colors::parseArgs(argc, argv);
+ MainWindow mainWindow;
+ MenuManager::instance()->init(&mainWindow);
+ mainWindow.setFocus();
+
+ if (Colors::fullscreen)
+ mainWindow.showFullScreen();
+ else {
+ mainWindow.enableMask(true);
+ mainWindow.show();
+ }
+
+ artisticSleep(500);
+ mainWindow.start();
+ return app.exec();
+}
diff --git a/demos/qtdemo/mainwindow.cpp b/demos/qtdemo/mainwindow.cpp
new file mode 100644
index 0000000..8723823
--- /dev/null
+++ b/demos/qtdemo/mainwindow.cpp
@@ -0,0 +1,483 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "mainwindow.h"
+#include "menumanager.h"
+#include "colors.h"
+#include "dockitem.h"
+#include "demotextitem.h"
+#include "imageitem.h"
+#include "demoitem.h"
+#include "demoscene.h"
+
+#ifndef QT_NO_OPENGL
+ #include <QGLWidget>
+#endif
+//#define QT_NO_OPENGL
+
+MainWindow::MainWindow(QWidget *parent) : QGraphicsView(parent), updateTimer(this)
+{
+ this->currentFps = Colors::fps;
+ this->loop = false;
+ this->fpsMedian = -1;
+ this->fpsLabel = 0;
+ this->pausedLabel = 0;
+ this->doneAdapt = false;
+ this->useTimer = false;
+ this->updateTimer.setSingleShot(true);
+ this->trolltechLogo = 0;
+ this->qtLogo = 0;
+ this->setupWidget();
+ this->setupScene();
+ this->setupSceneItems();
+ this->drawBackgroundToPixmap();
+}
+
+MainWindow::~MainWindow()
+{
+ delete this->trolltechLogo;
+ delete this->qtLogo;
+}
+
+void MainWindow::setupWidget()
+{
+ QRect screenRect = QApplication::desktop()->screenGeometry(QApplication::desktop()->primaryScreen());
+ QRect windowRect(0, 0, 800, 600);
+ if (screenRect.width() < 800)
+ windowRect.setWidth(screenRect.width());
+ if (screenRect.height() < 600)
+ windowRect.setHeight(screenRect.height());
+ windowRect.moveCenter(screenRect.center());
+ this->setGeometry(windowRect);
+ this->setMinimumSize(80, 60);
+ setWindowTitle(tr("Qt Examples and Demos"));
+ setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ setFrameStyle(QFrame::NoFrame);
+ this->setRenderingSystem();
+ connect(&this->updateTimer, SIGNAL(timeout()), this, SLOT(tick()));
+}
+
+void MainWindow::setRenderingSystem()
+{
+ QWidget *viewport = 0;
+
+ if (Colors::direct3dRendering){
+ viewport->setAttribute(Qt::WA_MSWindowsUseDirect3D);
+ setCacheMode(QGraphicsView::CacheNone);
+ if (Colors::verbose)
+ qDebug() << "- using Direct3D";
+ }
+#ifndef QT_NO_OPENGL
+ else if (Colors::openGlRendering){
+ QGLWidget *glw = new QGLWidget(QGLFormat(QGL::SampleBuffers));
+ if (Colors::noScreenSync)
+ glw->format().setSwapInterval(0);
+ glw->setAutoFillBackground(false);
+ viewport = glw;
+ setCacheMode(QGraphicsView::CacheNone);
+ if (Colors::verbose)
+ qDebug() << "- using OpenGL";
+ }
+#endif
+ else{ // software rendering
+ viewport = new QWidget;
+ setCacheMode(QGraphicsView::CacheBackground);
+ if (Colors::verbose)
+ qDebug() << "- using software rendering";
+ }
+
+ setViewport(viewport);
+}
+
+void MainWindow::start()
+{
+ this->switchTimerOnOff(true);
+ this->demoStartTime.restart();
+ MenuManager::instance()->itemSelected(MenuManager::ROOT, Colors::rootMenuName);
+ if (Colors::verbose)
+ qDebug("- starting demo");
+}
+
+void MainWindow::enableMask(bool enable)
+{
+ if (!enable || Colors::noWindowMask)
+ this->clearMask();
+ else {
+ QPolygon region;
+ region.setPoints(9,
+ // north side:
+ 0, 0,
+ 800, 0,
+ // east side:
+ // 800, 70,
+ // 790, 90,
+ // 790, 480,
+ // 800, 500,
+ 800, 600,
+ // south side:
+ 700, 600,
+ 670, 590,
+ 130, 590,
+ 100, 600,
+ 0, 600,
+ // west side:
+ // 0, 550,
+ // 10, 530,
+ // 10, 520,
+ // 0, 520,
+ 0, 0);
+ this->setMask(QRegion(region));
+ }
+}
+
+void MainWindow::setupScene()
+{
+ this->scene = new DemoScene(this);
+ this->scene->setSceneRect(0, 0, 800, 600);
+ setScene(this->scene);
+ this->scene->setItemIndexMethod(QGraphicsScene::NoIndex);
+}
+
+void MainWindow::drawItems(QPainter *painter, int numItems, QGraphicsItem **items, const QStyleOptionGraphicsItem* options)
+{
+ QGraphicsView::drawItems(painter, numItems, items, options);
+}
+
+void MainWindow::switchTimerOnOff(bool on)
+{
+ bool ticker = MenuManager::instance()->ticker && MenuManager::instance()->ticker->scene();
+ if (ticker)
+ MenuManager::instance()->ticker->tickOnPaint = !on || Colors::noTimerUpdate;
+
+ if (on && !Colors::noTimerUpdate){
+ this->useTimer = true;
+ this->setViewportUpdateMode(QGraphicsView::NoViewportUpdate);
+ this->fpsTime = QTime::currentTime();
+ this->updateTimer.start(int(1000 / Colors::fps));
+ }
+ else{
+ this->useTimer = false;
+ this->updateTimer.stop();
+ if (Colors::softwareRendering)
+ if (Colors::noTicker)
+ this->setViewportUpdateMode(QGraphicsView::MinimalViewportUpdate);
+ else
+ this->setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
+ else
+ this->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
+ }
+}
+
+bool MainWindow::measureFps()
+{
+ // Calculate time diff:
+ float t = this->fpsTime.msecsTo(QTime::currentTime());
+ if (t == 0)
+ t = 0.01f;
+ this->currentFps = (1000.0f / t);
+ this->fpsHistory += this->currentFps;
+ this->fpsTime = QTime::currentTime();
+
+ // Calculate median:
+ int size = this->fpsHistory.size();
+ if (size == 10){
+ qSort(this->fpsHistory.begin(), this->fpsHistory.end());
+ this->fpsMedian = this->fpsHistory.at(int(size/2));
+ if (this->fpsMedian == 0)
+ this->fpsMedian = 0.01f;
+ this->fpsHistory.clear();
+ return true;
+ }
+ return false;
+}
+
+/**
+ Used for adaption in case things are so slow
+ that no median yet has been calculated
+*/
+void MainWindow::forceFpsMedianCalculation()
+{
+ if (this->fpsMedian != -1)
+ return;
+
+ int size = this->fpsHistory.size();
+ if (size == 0){
+ this->fpsMedian = 0.01f;
+ return;
+ }
+
+ qSort(this->fpsHistory.begin(), this->fpsHistory.end());
+ this->fpsMedian = this->fpsHistory.at(int(size/2));
+ if (this->fpsMedian == 0)
+ this->fpsMedian = 0.01f;
+}
+
+void MainWindow::tick()
+{
+ bool medianChanged = this->measureFps();
+ this->checkAdapt();
+
+ if (medianChanged && this->fpsLabel && Colors::showFps)
+ this->fpsLabel->setText(QString("FPS: ") + QString::number(int(this->currentFps)));
+
+ if (MenuManager::instance()->ticker)
+ MenuManager::instance()->ticker->tick();
+
+ this->viewport()->update();
+ if (Colors::softwareRendering)
+ QApplication::syncX();
+
+ if (this->useTimer)
+ this->updateTimer.start(int(1000 / Colors::fps));
+}
+
+void MainWindow::setupSceneItems()
+{
+ if (Colors::showFps){
+ this->fpsLabel = new DemoTextItem(QString("FPS: --"), Colors::buttonFont(), Qt::white, -1, this->scene, 0, DemoTextItem::DYNAMIC_TEXT);
+ this->fpsLabel->setZValue(100);
+ this->fpsLabel->setPos(Colors::stageStartX, 600 - QFontMetricsF(Colors::buttonFont()).height() - 5);
+ }
+
+ this->trolltechLogo = new ImageItem(QImage(":/images/trolltech-logo.png"), 1000, 1000, this->scene, 0, true, 0.5f);
+ this->qtLogo = new ImageItem(QImage(":/images/qtlogo_small.png"), 1000, 1000, this->scene, 0, true, 0.5f);
+ this->trolltechLogo->setZValue(100);
+ this->qtLogo->setZValue(100);
+ this->pausedLabel = new DemoTextItem(QString("PAUSED"), Colors::buttonFont(), Qt::white, -1, this->scene, 0);
+ this->pausedLabel->setZValue(100);
+ QFontMetricsF fm(Colors::buttonFont());
+ this->pausedLabel->setPos(Colors::stageWidth - fm.width("PAUSED"), 590 - fm.height());
+ this->pausedLabel->setRecursiveVisible(false);
+}
+
+void MainWindow::checkAdapt()
+{
+ if (this->doneAdapt
+ || Colors::noTimerUpdate
+ || this->demoStartTime.elapsed() < 2000)
+ return;
+
+ this->doneAdapt = true;
+ this->forceFpsMedianCalculation();
+ Colors::benchmarkFps = this->fpsMedian;
+ if (Colors::verbose)
+ qDebug() << "- benchmark:" << QString::number(Colors::benchmarkFps) << "FPS";
+
+ if (Colors::noAdapt)
+ return;
+
+ if (this->fpsMedian < 30){
+ if (MenuManager::instance()->ticker && MenuManager::instance()->ticker->scene()){
+ this->scene->removeItem(MenuManager::instance()->ticker);
+ Colors::noTimerUpdate = true;
+ this->switchTimerOnOff(false);
+ if (this->fpsLabel)
+ this->fpsLabel->setText(QString("FPS: (") + QString::number(this->fpsMedian) + QString(")"));
+ if (Colors::verbose)
+ qDebug() << "- benchmark adaption: removed ticker (fps < 30)";
+ }
+
+ if (this->fpsMedian < 20){
+ Colors::noAnimations = true;
+ if (Colors::verbose)
+ qDebug() << "- benchmark adaption: animations switched off (fps < 20)";
+ }
+
+ Colors::adapted = true;
+ }
+}
+
+int MainWindow::performBenchmark()
+{
+/*
+ QTime time;
+ time.restart();
+ while (time.elapsed() < 2000)
+ QCoreApplication::processEvents(QEventLoop::AllEvents, 50);
+*/
+ return 0;
+}
+
+void MainWindow::drawBackgroundToPixmap()
+{
+ const QRectF r = this->scene->sceneRect();
+ this->background = QPixmap(qRound(r.width()), qRound(r.height()));
+ this->background.fill(Qt::black);
+ QPainter painter(&this->background);
+
+ if (false && Colors::useEightBitPalette){
+ painter.fillRect(r, Colors::sceneBg1);
+ } else {
+ QImage bg(":/images/demobg.png");
+ painter.drawImage(0, 0, bg);
+ }
+}
+
+void MainWindow::drawBackground(QPainter *painter, const QRectF &rect)
+{
+ Q_UNUSED(rect);
+ painter->drawPixmap(QPoint(0, 0), this->background);
+}
+
+void MainWindow::showEvent(QShowEvent * event)
+{
+ Q_UNUSED(event);
+ QGraphicsView::showEvent(event);
+}
+
+void MainWindow::toggleFullscreen()
+{
+ if (this->isFullScreen()){
+ this->enableMask(true);
+ this->showNormal();
+ if (MenuManager::instance()->ticker)
+ MenuManager::instance()->ticker->pause(false);
+ }
+ else {
+ this->enableMask(false);
+ this->showFullScreen();
+ }
+}
+
+void MainWindow::keyPressEvent(QKeyEvent *event)
+{
+ if (event->key() == Qt::Key_Escape){
+ this->loop = false;
+ QApplication::quit();
+ }
+ else if (event->key() == Qt::Key_1){
+ QString s("");
+ s += "Rendering system: ";
+ if (Colors::openGlRendering)
+ s += "OpenGL";
+ else if (Colors::direct3dRendering)
+ s += "Direct3D";
+ else
+ s += "software";
+
+ s += "\nAdapt: ";
+ s += Colors::noAdapt ? "off" : "on";
+ s += "\nAdaption occured: ";
+ s += Colors::adapted ? "yes" : "no";
+ s += "\nOpenGL version: ";
+ s += Colors::glVersion;
+ QWidget w;
+ s += "\nColor bit depth: ";
+ s += QString::number(w.depth());
+ s += "\nWanted FPS: ";
+ s += QString::number(Colors::fps);
+ s += "\nBenchmarked FPS: ";
+ s += Colors::benchmarkFps != -1 ? QString::number(Colors::benchmarkFps) : "not calculated";
+ s += "\nAnimations: ";
+ s += Colors::noAnimations ? "off" : "on";
+ s += "\nBlending: ";
+ s += Colors::useEightBitPalette ? "off" : "on";
+ s += "\nTicker: ";
+ s += Colors::noTicker ? "off" : "on";
+ s += "\nPixmaps: ";
+ s += Colors::usePixmaps ? "on" : "off";
+ s += "\nRescale images on resize: ";
+ s += Colors::noRescale ? "off" : "on";
+ s += "\nTimer based updates: ";
+ s += Colors::noTimerUpdate ? "off" : "on";
+ s += "\nSeparate loop: ";
+ s += Colors::useLoop ? "yes" : "no";
+ s += "\nScreen sync: ";
+ s += Colors::noScreenSync ? "no" : "yes";
+ QMessageBox::information(0, QString("Current configuration"), s);
+ }
+}
+
+void MainWindow::focusInEvent(QFocusEvent *)
+{
+ if (!Colors::pause)
+ return;
+
+ if (MenuManager::instance()->ticker)
+ MenuManager::instance()->ticker->pause(false);
+
+ int code = MenuManager::instance()->currentMenuCode;
+ if (code == MenuManager::ROOT || code == MenuManager::MENU1)
+ this->switchTimerOnOff(true);
+
+ this->pausedLabel->setRecursiveVisible(false);
+}
+
+void MainWindow::focusOutEvent(QFocusEvent *)
+{
+ if (!Colors::pause)
+ return;
+
+ if (MenuManager::instance()->ticker)
+ MenuManager::instance()->ticker->pause(true);
+
+ int code = MenuManager::instance()->currentMenuCode;
+ if (code == MenuManager::ROOT || code == MenuManager::MENU1)
+ this->switchTimerOnOff(false);
+
+ this->pausedLabel->setRecursiveVisible(true);
+}
+
+void MainWindow::resizeEvent(QResizeEvent *event)
+{
+ Q_UNUSED(event);
+
+ this->resetMatrix();
+ this->scale(event->size().width() / 800.0, event->size().height() / 600.0);
+ QGraphicsView::resizeEvent(event);
+ DemoItem::setMatrix(this->matrix());
+
+ if (this->trolltechLogo){
+ const QRectF r = this->scene->sceneRect();
+ QRectF ttb = this->trolltechLogo->boundingRect();
+ this->trolltechLogo->setPos(int((r.width() - ttb.width()) / 2), 595 - ttb.height());
+ QRectF qtb = this->qtLogo->boundingRect();
+ this->qtLogo->setPos(802 - qtb.width(), 0);
+ }
+
+ // Changing size will almost always
+ // hurt FPS during the changing. So
+ // ignore it.
+ this->fpsHistory.clear();
+}
+
+
diff --git a/demos/qtdemo/mainwindow.h b/demos/qtdemo/mainwindow.h
new file mode 100644
index 0000000..388a392
--- /dev/null
+++ b/demos/qtdemo/mainwindow.h
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MAIN_WINDOW_H
+#define MAIN_WINDOW_H
+
+#include <QtGui>
+#include <QPixmap>
+
+class DemoTextItem;
+class ImageItem;
+
+class MainWindow : public QGraphicsView
+{
+ Q_OBJECT
+
+public:
+ MainWindow(QWidget *parent = 0);
+ ~MainWindow();
+ void enableMask(bool enable);
+ void toggleFullscreen();
+ int performBenchmark();
+ void switchTimerOnOff(bool on);
+ void start();
+
+ QGraphicsScene *scene;
+ bool loop;
+
+ // FPS stuff:
+ QList<QTime> frameTimeList;
+ QList<float> fpsHistory;
+ float currentFps;
+ float fpsMedian;
+ DemoTextItem *fpsLabel;
+
+protected:
+ // Overidden methods:
+ void showEvent(QShowEvent *event);
+ void keyPressEvent(QKeyEvent *event);
+ void resizeEvent(QResizeEvent *event);
+ void drawBackground(QPainter *painter, const QRectF &rect);
+ void drawItems(QPainter *painter, int numItems, QGraphicsItem ** items, const QStyleOptionGraphicsItem* options);
+ void focusInEvent(QFocusEvent *event);
+ void focusOutEvent(QFocusEvent *event);
+
+private slots:
+ void tick();
+
+private:
+ void setupWidget();
+ void setupSceneItems();
+ void drawBackgroundToPixmap();
+ void setupScene();
+ bool measureFps();
+ void forceFpsMedianCalculation();
+ void checkAdapt();
+ void setRenderingSystem();
+
+ QTimer updateTimer;
+ QTime demoStartTime;
+ QTime fpsTime;
+ QPixmap background;
+ ImageItem *trolltechLogo;
+ ImageItem *qtLogo;
+ bool doneAdapt;
+ bool useTimer;
+ DemoTextItem *pausedLabel;
+};
+
+#endif // MAIN_WINDOW_H
+
diff --git a/demos/qtdemo/menucontent.cpp b/demos/qtdemo/menucontent.cpp
new file mode 100644
index 0000000..a74cfe4
--- /dev/null
+++ b/demos/qtdemo/menucontent.cpp
@@ -0,0 +1,140 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "menucontent.h"
+#include "colors.h"
+#include "menumanager.h"
+#include "demotextitem.h"
+#include "headingitem.h"
+
+MenuContentItem::MenuContentItem(const QDomElement &el, QGraphicsScene *scene, QGraphicsItem *parent)
+ : DemoItem(scene, parent)
+{
+ this->name = el.attribute("name");
+ this->heading = 0;
+ this->description1 = 0;
+ this->description2 = 0;
+
+ if (el.tagName() == "demos")
+ this->readmePath = QLibraryInfo::location(QLibraryInfo::DemosPath) + "/README";
+ else
+ this->readmePath = QLibraryInfo::location(QLibraryInfo::ExamplesPath) + "/" + el.attribute("dirname") + "/README";
+
+}
+
+void MenuContentItem::prepare()
+{
+ if (!this->prepared){
+ this->prepared= true;
+ this->createContent();
+ }
+}
+
+void MenuContentItem::animationStopped(int id)
+{
+ if (this->name == Colors::rootMenuName)
+ return; // Optimization hack.
+
+ if (id == DemoItemAnimation::ANIM_OUT){
+ // Free up some memory:
+ delete this->heading;
+ delete this->description1;
+ delete this->description2;
+ this->heading = 0;
+ this->description1 = 0;
+ this->description2 = 0;
+ this->prepared = false;
+ }
+}
+
+QString MenuContentItem::loadDescription(int startPara, int nrPara)
+{
+ QString result;
+ QFile readme(this->readmePath);
+ if (!readme.open(QFile::ReadOnly)){
+ if (Colors::verbose)
+ qDebug() << "- MenuContentItem::loadDescription: Could not load:" << this->readmePath;
+ return "";
+ }
+
+ QTextStream in(&readme);
+ // Skip a certain number of paragraphs:
+ while (startPara)
+ if (in.readLine().isEmpty()) --startPara;
+
+ // Read in the number of wanted paragraphs:
+ QString line = in.readLine();
+ do {
+ result += line + " ";
+ line = in.readLine();
+ if (line.isEmpty()){
+ --nrPara;
+ line = "<br><br>" + in.readLine();
+ }
+ } while (nrPara && !in.atEnd());
+
+ return Colors::contentColor + result;
+}
+
+void MenuContentItem::createContent()
+{
+ // Create the items:
+ this->heading = new HeadingItem(this->name, this->scene(), this);
+ QString para1 = this->loadDescription(0, 1);
+ if (para1.isEmpty())
+ para1 = Colors::contentColor + QLatin1String("Could not load description. Ensure that the documentation for Qt is built.");
+ QColor bgcolor = Colors::sceneBg1.darker(200);
+ bgcolor.setAlpha(100);
+ this->description1 = new DemoTextItem(para1, Colors::contentFont(), Colors::heading, 500, this->scene(), this, DemoTextItem::STATIC_TEXT);
+ this->description2 = new DemoTextItem(this->loadDescription(1, 2), Colors::contentFont(), Colors::heading, 250, this->scene(), this, DemoTextItem::STATIC_TEXT);
+
+ // Place the items on screen:
+ this->heading->setPos(0, 3);
+ this->description1->setPos(0, this->heading->pos().y() + this->heading->boundingRect().height() + 10);
+ this->description2->setPos(0, this->description1->pos().y() + this->description1->boundingRect().height() + 15);
+}
+
+QRectF MenuContentItem::boundingRect() const
+{
+ return QRectF(0, 0, 500, 350);
+}
+
+
diff --git a/demos/qtdemo/menucontent.h b/demos/qtdemo/menucontent.h
new file mode 100644
index 0000000..737492d
--- /dev/null
+++ b/demos/qtdemo/menucontent.h
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MENU_CONTENT_ITEM_H
+#define MENU_CONTENT_ITEM_H
+
+#include <QtGui>
+#include <QtXml>
+#include "demoitem.h"
+
+class HeadingItem;
+class DemoTextItem;
+
+class MenuContentItem : public DemoItem
+{
+
+public:
+ MenuContentItem(const QDomElement &el, QGraphicsScene *scene = 0, QGraphicsItem *parent = 0);
+
+ virtual QRectF boundingRect() const; // overridden
+ virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0){}; // overridden
+ void animationStopped(int id);
+ void prepare();
+
+private:
+ QString name;
+ QString readmePath;
+ HeadingItem *heading;
+ DemoTextItem *description1;
+ DemoTextItem *description2;
+
+ QString loadDescription(int startPara, int nrPara);
+ QString extractTextFromParagraph(const QDomNode &parentNode);
+
+ void createContent();
+};
+
+#endif // MENU_CONTENT_ITEM_H
+
diff --git a/demos/qtdemo/menumanager.cpp b/demos/qtdemo/menumanager.cpp
new file mode 100644
index 0000000..bfa2e3f
--- /dev/null
+++ b/demos/qtdemo/menumanager.cpp
@@ -0,0 +1,876 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "menumanager.h"
+#include "colors.h"
+#include "menucontent.h"
+#include "examplecontent.h"
+
+MenuManager *MenuManager::pInstance = 0;
+
+MenuManager * MenuManager::instance()
+{
+ if (!MenuManager::pInstance)
+ MenuManager::pInstance = new MenuManager();
+ return MenuManager::pInstance;
+}
+
+MenuManager::MenuManager()
+{
+ this->ticker = 0;
+ this->tickerInAnim = 0;
+ this->upButton = 0;
+ this->downButton = 0;
+ this->helpEngine = 0;
+ this->score = new Score();
+ this->currentMenu = QLatin1String("[no menu visible]");
+ this->currentCategory = QLatin1String("[no category visible]");
+ this->currentMenuButtons = QLatin1String("[no menu buttons visible]");
+ this->currentInfo = QLatin1String("[no info visible]");
+ this->currentMenuCode = -1;
+ this->readXmlDocument();
+ this->initHelpEngine();
+}
+
+MenuManager::~MenuManager()
+{
+ delete this->score;
+ delete this->contentsDoc;
+ delete this->helpEngine;
+}
+
+QByteArray MenuManager::getResource(const QString &name)
+{
+ QByteArray ba = this->helpEngine->fileData(name);
+ if (Colors::verbose && ba.isEmpty())
+ qDebug() << " - WARNING: Could not get " << name;
+ return ba;
+}
+
+void MenuManager::readXmlDocument()
+{
+ this->contentsDoc = new QDomDocument();
+ QString errorStr;
+ int errorLine;
+ int errorColumn;
+
+ QFile file(":/xml/examples.xml");
+ bool statusOK = this->contentsDoc->setContent(&file, true, &errorStr, &errorLine, &errorColumn);
+ if (!statusOK){
+ QMessageBox::critical(0,
+ QObject::tr("DOM Parser"),
+ QObject::tr("Could not read or find the contents document. Error at line %1, column %2:\n%3")
+ .arg(errorLine).arg(errorColumn).arg(errorStr)
+ );
+ exit(-1);
+ }
+}
+
+void MenuManager::initHelpEngine()
+{
+ this->helpRootUrl = QString("qthelp://com.trolltech.qt.%1%2%3/qdoc/")
+ .arg(QT_VERSION >> 16).arg((QT_VERSION >> 8) & 0xFF)
+ .arg(QT_VERSION & 0xFF);
+
+ // Store help collection file in cache dir of assistant
+ QString cacheDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation)
+ + QLatin1String("/Trolltech/Assistant/");
+ QString helpDataFile = QString(QLatin1String("qtdemo_%1.qhc")).arg(QLatin1String(QT_VERSION_STR));
+
+ QDir dir;
+ if (!dir.exists(cacheDir))
+ dir.mkpath(cacheDir);
+
+ // Create help engine (and new
+ // helpDataFile if it does not exist):
+ this->helpEngine = new QHelpEngineCore(cacheDir + helpDataFile);
+ this->helpEngine->setupData();
+
+ QString qtDocRoot = QLibraryInfo::location(QLibraryInfo::DocumentationPath) + QLatin1String("/qch");
+ qtDocRoot = QDir(qtDocRoot).absolutePath();
+
+ QStringList qchFiles;
+ qchFiles << QLatin1String("/qt.qch")
+ << QLatin1String("/designer.qch")
+ << QLatin1String("/linguist.qch");
+
+ QString oldDir = helpEngine->customValue(QLatin1String("docDir"), QString()).toString();
+ if (oldDir != qtDocRoot) {
+ foreach (const QString &qchFile, qchFiles)
+ helpEngine->unregisterDocumentation(QHelpEngineCore::namespaceName(qtDocRoot + qchFile));
+ }
+
+ // If the data that the engine will work
+ // on is not yet registered, do it now:
+ foreach (const QString &qchFile, qchFiles)
+ helpEngine->registerDocumentation(qtDocRoot + qchFile);
+
+ helpEngine->setCustomValue(QLatin1String("docDir"), qtDocRoot);
+}
+
+void MenuManager::itemSelected(int userCode, const QString &menuName)
+{
+ switch (userCode){
+ case LAUNCH:
+ this->launchExample(this->currentInfo);
+ break;
+ case DOCUMENTATION:
+ this->showDocInAssistant(this->currentInfo);
+ break;
+ case QUIT:
+ this->window->loop = false;
+ QCoreApplication::quit();
+ break;
+ case FULLSCREEN:
+ this->window->toggleFullscreen();
+ break;
+ case ROOT:
+ // out:
+ this->score->queueMovie(this->currentMenu + " -out", Score::FROM_START, Score::LOCK_ITEMS);
+ this->score->queueMovie(this->currentMenuButtons + " -out", Score::FROM_START, Score::LOCK_ITEMS);
+ this->score->queueMovie(this->currentInfo + " -out");
+ this->score->queueMovie(this->currentInfo + " -buttons -out", Score::NEW_ANIMATION_ONLY);
+ this->score->queueMovie("back -out", Score::ONLY_IF_VISIBLE);
+ // book-keeping:
+ this->currentMenuCode = ROOT;
+ this->currentMenu = menuName + " -menu1";
+ this->currentMenuButtons = menuName + " -buttons";
+ this->currentInfo = menuName + " -info";
+ // in:
+ this->score->queueMovie("upndown -shake");
+ this->score->queueMovie(this->currentMenu, Score::FROM_START, Score::UNLOCK_ITEMS);
+ this->score->queueMovie(this->currentMenuButtons, Score::FROM_START, Score::UNLOCK_ITEMS);
+ this->score->queueMovie(this->currentInfo);
+ if (!Colors::noTicker){
+ this->ticker->doIntroTransitions = true;
+ this->tickerInAnim->startDelay = 2000;
+ this->ticker->useGuideQt();
+ this->score->queueMovie("ticker", Score::NEW_ANIMATION_ONLY);
+ this->window->switchTimerOnOff(true);
+ }
+ break;
+ case MENU1:
+ // out:
+ this->score->queueMovie(this->currentMenu + " -out", Score::FROM_START, Score::LOCK_ITEMS);
+ this->score->queueMovie(this->currentMenuButtons + " -out", Score::FROM_START, Score::LOCK_ITEMS);
+ this->score->queueMovie(this->currentInfo + " -out");
+ // book-keeping:
+ this->currentMenuCode = MENU1;
+ this->currentCategory = menuName;
+ this->currentMenu = menuName + " -menu1";
+ this->currentInfo = menuName + " -info";
+ // in:
+ this->score->queueMovie("upndown -shake");
+ this->score->queueMovie("back -in");
+ this->score->queueMovie(this->currentMenu, Score::FROM_START, Score::UNLOCK_ITEMS);
+ this->score->queueMovie(this->currentInfo);
+ if (!Colors::noTicker)
+ this->ticker->useGuideTt();
+ break;
+ case MENU2:
+ // out:
+ this->score->queueMovie(this->currentInfo + " -out", Score::NEW_ANIMATION_ONLY);
+ this->score->queueMovie(this->currentInfo + " -buttons -out", Score::NEW_ANIMATION_ONLY);
+ // book-keeping:
+ this->currentMenuCode = MENU2;
+ this->currentInfo = menuName;
+ // in / shake:
+ this->score->queueMovie("upndown -shake");
+ this->score->queueMovie("back -shake");
+ this->score->queueMovie(this->currentMenu + " -shake");
+ this->score->queueMovie(this->currentInfo, Score::NEW_ANIMATION_ONLY);
+ this->score->queueMovie(this->currentInfo + " -buttons", Score::NEW_ANIMATION_ONLY);
+ if (!Colors::noTicker){
+ this->score->queueMovie("ticker -out", Score::NEW_ANIMATION_ONLY);
+ this->window->switchTimerOnOff(false);
+ }
+ break;
+ case UP:{
+ QString backMenu = this->info[this->currentMenu]["back"];
+ if (!backMenu.isNull()){
+ this->score->queueMovie(this->currentMenu + " -top_out", Score::FROM_START, Score::LOCK_ITEMS);
+ this->score->queueMovie(backMenu + " -bottom_in", Score::FROM_START, Score::UNLOCK_ITEMS);
+ this->currentMenu = backMenu;
+ }
+ break; }
+ case DOWN:{
+ QString moreMenu = this->info[this->currentMenu]["more"];
+ if (!moreMenu.isNull()){
+ this->score->queueMovie(this->currentMenu + " -bottom_out", Score::FROM_START, Score::LOCK_ITEMS);
+ this->score->queueMovie(moreMenu + " -top_in", Score::FROM_START, Score::UNLOCK_ITEMS);
+ this->currentMenu = moreMenu;
+ }
+ break; }
+ case BACK:{
+ if (this->currentMenuCode == MENU2){
+ // out:
+ this->score->queueMovie(this->currentInfo + " -out", Score::NEW_ANIMATION_ONLY);
+ this->score->queueMovie(this->currentInfo + " -buttons -out", Score::NEW_ANIMATION_ONLY);
+ // book-keeping:
+ this->currentMenuCode = MENU1;
+ this->currentMenuButtons = this->currentCategory + " -buttons";
+ this->currentInfo = this->currentCategory + " -info";
+ // in / shake:
+ this->score->queueMovie("upndown -shake");
+ this->score->queueMovie(this->currentMenu + " -shake");
+ this->score->queueMovie(this->currentInfo, Score::NEW_ANIMATION_ONLY);
+ this->score->queueMovie(this->currentInfo + " -buttons", Score::NEW_ANIMATION_ONLY);
+ if (!Colors::noTicker){
+ this->ticker->doIntroTransitions = false;
+ this->tickerInAnim->startDelay = 500;
+ this->score->queueMovie("ticker", Score::NEW_ANIMATION_ONLY);
+ this->window->switchTimerOnOff(true);
+ }
+ } else if (this->currentMenuCode != ROOT)
+ itemSelected(ROOT, Colors::rootMenuName);
+ break; }
+ }
+
+ // update back- and more buttons
+ bool noBackMenu = this->info[this->currentMenu]["back"].isNull();
+ bool noMoreMenu = this->info[this->currentMenu]["more"].isNull();
+ this->upButton->setState(noBackMenu ? TextButton::DISABLED : TextButton::OFF);
+ this->downButton->setState(noMoreMenu ? TextButton::DISABLED : TextButton::OFF);
+
+ if (this->score->hasQueuedMovies()){
+ this->score->playQue();
+ // Playing new movies might include
+ // loading etc. So ignore the FPS
+ // at this point
+ this->window->fpsHistory.clear();
+ }
+}
+
+void MenuManager::showDocInAssistant(const QString &name)
+{
+ QString url = this->resolveDocUrl(name);
+ if (Colors::verbose)
+ qDebug() << "Sending URL to Assistant:" << url;
+
+ // Start assistant if it's not already running:
+ if (this->assistantProcess.state() != QProcess::Running){
+ QString app = QLibraryInfo::location(QLibraryInfo::BinariesPath) + QDir::separator();
+#if !defined(Q_OS_MAC)
+ app += QLatin1String("assistant");
+#else
+ app += QLatin1String("Assistant.app/Contents/MacOS/Assistant");
+#endif
+ QStringList args;
+ args << QLatin1String("-enableRemoteControl");
+ this->assistantProcess.start(app, args);
+ if (!this->assistantProcess.waitForStarted()) {
+ QMessageBox::critical(0, tr("Qt Demo"), tr("Could not start Qt Assistant.").arg(app));
+ return;
+ }
+ }
+
+ // Send command through remote control even if the process
+ // was started to activate assistant and bring it to front:
+ QTextStream str(&this->assistantProcess);
+ str << "SetSource " << url << QLatin1Char('\0') << endl;
+}
+
+void MenuManager::launchExample(const QString &name)
+{
+ QString executable = this->resolveExeFile(name);
+#ifdef Q_OS_MAC
+ if (Colors::verbose)
+ qDebug() << "Launching:" << executable;
+ bool success = QDesktopServices::openUrl(QUrl::fromLocalFile(executable));
+ if (!success){
+ QMessageBox::critical(0, tr("Failed to launch the example"),
+ tr("Could not launch the example. Ensure that it has been built."),
+ QMessageBox::Cancel);
+ }
+#else // Not mac. To not break anything regarding dll's etc, keep it the way it was before:
+ QProcess *process = new QProcess(this);
+ connect(process, SIGNAL(finished(int)), this, SLOT(exampleFinished()));
+ connect(process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(exampleError(QProcess::ProcessError)));
+
+#ifdef Q_OS_WIN
+ //make sure it finds the dlls on windows
+ QString curpath = QString::fromLocal8Bit(qgetenv("PATH").constData());
+ QString newpath = QString("PATH=%1;%2").arg(QLibraryInfo::location(QLibraryInfo::BinariesPath), curpath);
+ process->setEnvironment(QStringList(newpath));
+#endif
+
+ if (info[name]["changedirectory"] != "false"){
+ QString workingDirectory = resolveDataDir(name);
+ process->setWorkingDirectory(workingDirectory);
+ if (Colors::verbose)
+ qDebug() << "Setting working directory:" << workingDirectory;
+ }
+
+ if (Colors::verbose)
+ qDebug() << "Launching:" << executable;
+ process->start(executable);
+#endif
+}
+
+void MenuManager::exampleFinished()
+{
+}
+
+void MenuManager::exampleError(QProcess::ProcessError error)
+{
+ if (error != QProcess::Crashed)
+ QMessageBox::critical(0, tr("Failed to launch the example"),
+ tr("Could not launch the example. Ensure that it has been built."),
+ QMessageBox::Cancel);
+}
+
+void MenuManager::init(MainWindow *window)
+{
+ this->window = window;
+
+ // Create div:
+ this->createTicker();
+ this->createUpnDownButtons();
+ this->createBackButton();
+
+ // Create first level menu:
+ QDomElement rootElement = this->contentsDoc->documentElement();
+ this->createRootMenu(rootElement);
+
+ // Create second level menus:
+ QDomNode level2MenuNode = rootElement.firstChild();
+ while (!level2MenuNode.isNull()){
+ QDomElement level2MenuElement = level2MenuNode.toElement();
+ this->createSubMenu(level2MenuElement);
+
+ // create leaf menu and example info:
+ QDomNode exampleNode = level2MenuElement.firstChild();
+ while (!exampleNode.isNull()){
+ QDomElement exampleElement = exampleNode.toElement();
+ this->readInfoAboutExample(exampleElement);
+ this->createLeafMenu(exampleElement);
+ exampleNode = exampleNode.nextSibling();
+ }
+
+ level2MenuNode = level2MenuNode.nextSibling();
+ }
+}
+
+void MenuManager::readInfoAboutExample(const QDomElement &example)
+{
+ QString name = example.attribute("name");
+ if (this->info.contains(name))
+ qWarning() << "__WARNING: MenuManager::readInfoAboutExample: Demo/example with name"
+ << name << "appears twize in the xml-file!__";
+
+ this->info[name]["filename"] = example.attribute("filename");
+ this->info[name]["category"] = example.parentNode().toElement().tagName();
+ this->info[name]["dirname"] = example.parentNode().toElement().attribute("dirname");
+ this->info[name]["changedirectory"] = example.attribute("changedirectory");
+ this->info[name]["image"] = example.attribute("image");
+}
+
+QString MenuManager::resolveDataDir(const QString &name)
+{
+ QString dirName = this->info[name]["dirname"];
+ QString category = this->info[name]["category"];
+ QString fileName = this->info[name]["filename"];
+
+ QDir dir;
+ if (category == "demos")
+ dir = QDir(QLibraryInfo::location(QLibraryInfo::DemosPath));
+ else
+ dir = QDir(QLibraryInfo::location(QLibraryInfo::ExamplesPath));
+
+ dir.cd(dirName);
+ dir.cd(fileName);
+ return dir.absolutePath();
+}
+
+QString MenuManager::resolveExeFile(const QString &name)
+{
+ QString dirName = this->info[name]["dirname"];
+ QString category = this->info[name]["category"];
+ QString fileName = this->info[name]["filename"];
+
+ QDir dir;
+ if (category == "demos")
+ dir = QDir(QLibraryInfo::location(QLibraryInfo::DemosPath));
+ else
+ dir = QDir(QLibraryInfo::location(QLibraryInfo::ExamplesPath));
+
+ dir.cd(dirName);
+ dir.cd(fileName);
+
+ QFile unixFile(dir.path() + "/" + fileName);
+ if (unixFile.exists()) return unixFile.fileName();
+ QFile winR(dir.path() + "\\release\\" + fileName + ".exe");
+ if (winR.exists()) return winR.fileName();
+ QFile winD(dir.path() + "\\debug\\" + fileName + ".exe");
+ if (winD.exists()) return winD.fileName();
+ QFile mac(dir.path() + "/" + fileName + ".app");
+ if (mac.exists()) return mac.fileName();
+
+ if (Colors::verbose)
+ qDebug() << "- WARNING: Could not resolve executable:" << dir.path() << fileName;
+ return "__executable not found__";
+}
+
+QString MenuManager::resolveDocUrl(const QString &name)
+{
+ QString dirName = this->info[name]["dirname"];
+ QString category = this->info[name]["category"];
+ QString fileName = this->info[name]["filename"];
+
+ if (category == "demos")
+ return this->helpRootUrl + "demos-" + fileName + ".html";
+ else
+ return this->helpRootUrl + dirName.replace("/", "-") + "-" + fileName + ".html";
+}
+
+QString MenuManager::resolveImageUrl(const QString &name)
+{
+ return this->helpRootUrl + "images/" + name;
+}
+
+QByteArray MenuManager::getHtml(const QString &name)
+{
+ return getResource(this->resolveDocUrl(name));
+}
+
+QByteArray MenuManager::getImage(const QString &name)
+{
+ QString imageName = this->info[name]["image"];
+ QString category = this->info[name]["category"];
+ QString fileName = this->info[name]["filename"];
+
+ if (imageName.isEmpty()){
+ if (category == "demos")
+ imageName = fileName + "-demo.png";
+ else
+ imageName = fileName + "-example.png";
+ if ((getResource(resolveImageUrl(imageName))).isEmpty())
+ imageName = fileName + ".png";
+ if ((getResource(resolveImageUrl(imageName))).isEmpty())
+ imageName = fileName + "example.png";
+ }
+ return getResource(resolveImageUrl(imageName));
+}
+
+
+void MenuManager::createRootMenu(const QDomElement &el)
+{
+ QString name = el.attribute("name");
+ createMenu(el, MENU1);
+ createInfo(new MenuContentItem(el, this->window->scene, 0), name + " -info");
+
+ Movie *menuButtonsIn = this->score->insertMovie(name + " -buttons");
+ Movie *menuButtonsOut = this->score->insertMovie(name + " -buttons -out");
+ createLowLeftButton(QLatin1String("Quit"), QUIT, menuButtonsIn, menuButtonsOut, 0);
+ createLowRightButton("Toggle fullscreen", FULLSCREEN, menuButtonsIn, menuButtonsOut, 0);
+}
+
+void MenuManager::createSubMenu(const QDomElement &el)
+{
+ QString name = el.attribute("name");
+ createMenu(el, MENU2);
+ createInfo(new MenuContentItem(el, this->window->scene, 0), name + " -info");
+}
+
+void MenuManager::createLeafMenu(const QDomElement &el)
+{
+ QString name = el.attribute("name");
+ createInfo(new ExampleContent(name, this->window->scene, 0), name);
+
+ Movie *infoButtonsIn = this->score->insertMovie(name + " -buttons");
+ Movie *infoButtonsOut = this->score->insertMovie(name + " -buttons -out");
+ createLowRightLeafButton("Documentation", 600, DOCUMENTATION, infoButtonsIn, infoButtonsOut, 0);
+ if (el.attribute("executable") != "false")
+ createLowRightLeafButton("Launch", 405, LAUNCH, infoButtonsIn, infoButtonsOut, 0);
+}
+
+void MenuManager::createMenu(const QDomElement &category, BUTTON_TYPE type)
+{
+ qreal sw = this->window->scene->sceneRect().width();
+ int xOffset = 15;
+ int yOffset = 10;
+ int maxExamples = Colors::menuCount;
+ int menuIndex = 1;
+ QString name = category.attribute("name");
+ QDomNode currentNode = category.firstChild();
+ QString currentMenu = name + QLatin1String(" -menu") + QString::number(menuIndex);
+
+ while (!currentNode.isNull()){
+ Movie *movieIn = this->score->insertMovie(currentMenu);
+ Movie *movieOut = this->score->insertMovie(currentMenu + " -out");
+ Movie *movieNextTopOut = this->score->insertMovie(currentMenu + " -top_out");
+ Movie *movieNextBottomOut = this->score->insertMovie(currentMenu + " -bottom_out");
+ Movie *movieNextTopIn = this->score->insertMovie(currentMenu + " -top_in");
+ Movie *movieNextBottomIn = this->score->insertMovie(currentMenu + " -bottom_in");
+ Movie *movieShake = this->score->insertMovie(currentMenu + " -shake");
+
+ int i = 0;
+ while (!currentNode.isNull() && i < maxExamples){
+ TextButton *item;
+
+ // create normal menu button
+ QString label = currentNode.toElement().attribute("name");
+ item = new TextButton(label, TextButton::LEFT, type, this->window->scene, 0);
+ currentNode = currentNode.nextSibling();
+
+#ifndef QT_OPENGL_SUPPORT
+ if (currentNode.toElement().attribute("dirname") == "opengl")
+ currentNode = currentNode.nextSibling();
+#endif
+
+ item->setRecursiveVisible(false);
+ item->setZValue(10);
+ qreal ih = item->sceneBoundingRect().height();
+ qreal iw = item->sceneBoundingRect().width();
+ qreal ihp = ih + 3;
+
+ // create in-animation:
+ DemoItemAnimation *anim = new DemoItemAnimation(item, DemoItemAnimation::ANIM_IN);
+ anim->setDuration(float(1000 + (i * 20)) * Colors::animSpeedButtons);
+ anim->setStartPos(QPointF(xOffset, -ih));
+ anim->setPosAt(0.20, QPointF(xOffset, -ih));
+ anim->setPosAt(0.50, QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY + (10 * float(i / 4.0f))));
+ anim->setPosAt(0.60, QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY));
+ anim->setPosAt(0.70, QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY + (5 * float(i / 4.0f))));
+ anim->setPosAt(0.80, QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY));
+ anim->setPosAt(0.90, QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY + (2 * float(i / 4.0f))));
+ anim->setPosAt(1.00, QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY));
+ movieIn->append(anim);
+
+ // create out-animation:
+ anim = new DemoItemAnimation(item, DemoItemAnimation::ANIM_OUT);
+ anim->hideOnFinished = true;
+ anim->setDuration((700 + (30 * i)) * Colors::animSpeedButtons);
+ anim->setStartPos(QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY));
+ anim->setPosAt(0.60, QPointF(xOffset, 600 - ih - ih));
+ anim->setPosAt(0.65, QPointF(xOffset + 20, 600 - ih));
+ anim->setPosAt(1.00, QPointF(sw + iw, 600 - ih));
+ movieOut->append(anim);
+
+ // create shake-animation:
+ anim = new DemoItemAnimation(item);
+ anim->setDuration(700 * Colors::animSpeedButtons);
+ anim->setStartPos(QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY));
+ anim->setPosAt(0.55, QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY - i*2.0));
+ anim->setPosAt(0.70, QPointF(xOffset - 10, (i * ihp) + yOffset + Colors::contentStartY - i*1.5));
+ anim->setPosAt(0.80, QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY - i*1.0));
+ anim->setPosAt(0.90, QPointF(xOffset - 2, (i * ihp) + yOffset + Colors::contentStartY - i*0.5));
+ anim->setPosAt(1.00, QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY));
+ movieShake->append(anim);
+
+ // create next-menu top-out-animation:
+ anim = new DemoItemAnimation(item, DemoItemAnimation::ANIM_OUT);
+ anim->hideOnFinished = true;
+ anim->setDuration((200 + (30 * i)) * Colors::animSpeedButtons);
+ anim->setStartPos(QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY));
+ anim->setPosAt(0.70, QPointF(xOffset, yOffset + Colors::contentStartY));
+ anim->setPosAt(1.00, QPointF(-iw, yOffset + Colors::contentStartY));
+ movieNextTopOut->append(anim);
+
+ // create next-menu bottom-out-animation:
+ anim = new DemoItemAnimation(item, DemoItemAnimation::ANIM_OUT);
+ anim->hideOnFinished = true;
+ anim->setDuration((200 + (30 * i)) * Colors::animSpeedButtons);
+ anim->setStartPos(QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY));
+ anim->setPosAt(0.70, QPointF(xOffset, (maxExamples * ihp) + yOffset + Colors::contentStartY));
+ anim->setPosAt(1.00, QPointF(-iw, (maxExamples * ihp) + yOffset + Colors::contentStartY));
+ movieNextBottomOut->append(anim);
+
+ // create next-menu top-in-animation:
+ anim = new DemoItemAnimation(item, DemoItemAnimation::ANIM_IN);
+ anim->setDuration((700 - (30 * i)) * Colors::animSpeedButtons);
+ anim->setStartPos(QPointF(-iw, yOffset + Colors::contentStartY));
+ anim->setPosAt(0.30, QPointF(xOffset, yOffset + Colors::contentStartY));
+ anim->setPosAt(1.00, QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY));
+ movieNextTopIn->append(anim);
+
+ // create next-menu bottom-in-animation:
+ int reverse = maxExamples - i;
+ anim = new DemoItemAnimation(item, DemoItemAnimation::ANIM_IN);
+ anim->setDuration((1000 - (30 * reverse)) * Colors::animSpeedButtons);
+ anim->setStartPos(QPointF(-iw, (maxExamples * ihp) + yOffset + Colors::contentStartY));
+ anim->setPosAt(0.30, QPointF(xOffset, (maxExamples * ihp) + yOffset + Colors::contentStartY));
+ anim->setPosAt(1.00, QPointF(xOffset, (i * ihp) + yOffset + Colors::contentStartY));
+ movieNextBottomIn->append(anim);
+
+ i++;
+ }
+
+ if (!currentNode.isNull() && i == maxExamples){
+ // We need another menu, so register for 'more' and 'back' buttons
+ ++menuIndex;
+ this->info[currentMenu]["more"] = name + QLatin1String(" -menu") + QString::number(menuIndex);
+ currentMenu = name + QLatin1String(" -menu") + QString::number(menuIndex);
+ this->info[currentMenu]["back"] = name + QLatin1String(" -menu") + QString::number(menuIndex - 1);
+ }
+ }
+}
+
+
+void MenuManager::createLowLeftButton(const QString &label, BUTTON_TYPE type,
+ Movie *movieIn, Movie *movieOut, Movie *movieShake, const QString &menuString)
+{
+ TextButton *button = new TextButton(label, TextButton::RIGHT, type, this->window->scene, 0, TextButton::PANEL);
+ if (!menuString.isNull())
+ button->setMenuString(menuString);
+ button->setRecursiveVisible(false);
+ button->setZValue(10);
+
+ qreal iw = button->sceneBoundingRect().width();
+ int xOffset = 15;
+
+ // create in-animation:
+ DemoItemAnimation *buttonIn = new DemoItemAnimation(button, DemoItemAnimation::ANIM_IN);
+ buttonIn->setDuration(1800 * Colors::animSpeedButtons);
+ buttonIn->setStartPos(QPointF(-iw, Colors::contentStartY + Colors::contentHeight - 35));
+ buttonIn->setPosAt(0.5, QPointF(-iw, Colors::contentStartY + Colors::contentHeight - 35));
+ buttonIn->setPosAt(0.7, QPointF(xOffset, Colors::contentStartY + Colors::contentHeight - 35));
+ buttonIn->setPosAt(1.0, QPointF(xOffset, Colors::contentStartY + Colors::contentHeight - 26));
+ movieIn->append(buttonIn);
+
+ // create out-animation:
+ DemoItemAnimation *buttonOut = new DemoItemAnimation(button, DemoItemAnimation::ANIM_OUT);
+ buttonOut->hideOnFinished = true;
+ buttonOut->setDuration(400 * Colors::animSpeedButtons);
+ buttonOut->setStartPos(QPointF(xOffset, Colors::contentStartY + Colors::contentHeight - 26));
+ buttonOut->setPosAt(1.0, QPointF(-iw, Colors::contentStartY + Colors::contentHeight - 26));
+ movieOut->append(buttonOut);
+
+ if (movieShake){
+ DemoItemAnimation *shakeAnim = new DemoItemAnimation(button, DemoItemAnimation::ANIM_UNSPECIFIED);
+ shakeAnim->timeline->setCurveShape(QTimeLine::LinearCurve);
+ shakeAnim->setDuration(650);
+ shakeAnim->setStartPos(buttonIn->posAt(1.0f));
+ shakeAnim->setPosAt(0.60, buttonIn->posAt(1.0f));
+ shakeAnim->setPosAt(0.70, buttonIn->posAt(1.0f) + QPointF(-3, 0));
+ shakeAnim->setPosAt(0.80, buttonIn->posAt(1.0f) + QPointF(2, 0));
+ shakeAnim->setPosAt(0.90, buttonIn->posAt(1.0f) + QPointF(-1, 0));
+ shakeAnim->setPosAt(1.00, buttonIn->posAt(1.0f));
+ movieShake->append(shakeAnim);
+ }
+}
+
+void MenuManager::createLowRightButton(const QString &label, BUTTON_TYPE type, Movie *movieIn, Movie *movieOut, Movie * /*movieShake*/)
+{
+ TextButton *item = new TextButton(label, TextButton::RIGHT, type, this->window->scene, 0, TextButton::PANEL);
+ item->setRecursiveVisible(false);
+ item->setZValue(10);
+
+ qreal sw = this->window->scene->sceneRect().width();
+ int xOffset = 70;
+
+ // create in-animation:
+ DemoItemAnimation *anim = new DemoItemAnimation(item, DemoItemAnimation::ANIM_IN);
+ anim->setDuration(1800 * Colors::animSpeedButtons);
+ anim->setStartPos(QPointF(sw, Colors::contentStartY + Colors::contentHeight - 35));
+ anim->setPosAt(0.5, QPointF(sw, Colors::contentStartY + Colors::contentHeight - 35));
+ anim->setPosAt(0.7, QPointF(xOffset + 535, Colors::contentStartY + Colors::contentHeight - 35));
+ anim->setPosAt(1.0, QPointF(xOffset + 535, Colors::contentStartY + Colors::contentHeight - 26));
+ movieIn->append(anim);
+
+ // create out-animation:
+ anim = new DemoItemAnimation(item, DemoItemAnimation::ANIM_OUT);
+ anim->hideOnFinished = true;
+ anim->setDuration(400 * Colors::animSpeedButtons);
+ anim->setStartPos(QPointF(xOffset + 535, Colors::contentStartY + Colors::contentHeight - 26));
+ anim->setPosAt(1.0, QPointF(sw, Colors::contentStartY + Colors::contentHeight - 26));
+ movieOut->append(anim);
+}
+
+void MenuManager::createLowRightLeafButton(const QString &label, int xOffset, BUTTON_TYPE type, Movie *movieIn, Movie *movieOut, Movie * /*movieShake*/)
+{
+ TextButton *item = new TextButton(label, TextButton::RIGHT, type, this->window->scene, 0, TextButton::PANEL);
+ item->setRecursiveVisible(false);
+ item->setZValue(10);
+
+ qreal sw = this->window->scene->sceneRect().width();
+ qreal sh = this->window->scene->sceneRect().height();
+
+ // create in-animation:
+ DemoItemAnimation *anim = new DemoItemAnimation(item, DemoItemAnimation::ANIM_IN);
+ anim->setDuration(1050 * Colors::animSpeedButtons);
+ anim->setStartPos(QPointF(sw, Colors::contentStartY + Colors::contentHeight - 35));
+ anim->setPosAt(0.10, QPointF(sw, Colors::contentStartY + Colors::contentHeight - 35));
+ anim->setPosAt(0.30, QPointF(xOffset, Colors::contentStartY + Colors::contentHeight - 35));
+ anim->setPosAt(0.35, QPointF(xOffset + 30, Colors::contentStartY + Colors::contentHeight - 35));
+ anim->setPosAt(0.40, QPointF(xOffset, Colors::contentStartY + Colors::contentHeight - 35));
+ anim->setPosAt(0.45, QPointF(xOffset + 5, Colors::contentStartY + Colors::contentHeight - 35));
+ anim->setPosAt(0.50, QPointF(xOffset, Colors::contentStartY + Colors::contentHeight - 35));
+ anim->setPosAt(1.00, QPointF(xOffset, Colors::contentStartY + Colors::contentHeight - 26));
+ movieIn->append(anim);
+
+ // create out-animation:
+ anim = new DemoItemAnimation(item, DemoItemAnimation::ANIM_OUT);
+ anim->hideOnFinished = true;
+ anim->setDuration(300 * Colors::animSpeedButtons);
+ anim->setStartPos(QPointF(xOffset, Colors::contentStartY + Colors::contentHeight - 26));
+ anim->setPosAt(1.0, QPointF(xOffset, sh));
+ movieOut->append(anim);
+}
+
+void MenuManager::createInfo(DemoItem *item, const QString &name)
+{
+ Movie *movie_in = this->score->insertMovie(name);
+ Movie *movie_out = this->score->insertMovie(name + " -out");
+ item->setZValue(8);
+ item->setRecursiveVisible(false);
+
+ float xOffset = 230.0f;
+ DemoItemAnimation *infoIn = new DemoItemAnimation(item, DemoItemAnimation::ANIM_IN);
+ infoIn->timeline->setCurveShape(QTimeLine::LinearCurve);
+ infoIn->setDuration(650);
+ infoIn->setStartPos(QPointF(this->window->scene->sceneRect().width(), Colors::contentStartY));
+ infoIn->setPosAt(0.60, QPointF(xOffset, Colors::contentStartY));
+ infoIn->setPosAt(0.70, QPointF(xOffset + 20, Colors::contentStartY));
+ infoIn->setPosAt(0.80, QPointF(xOffset, Colors::contentStartY));
+ infoIn->setPosAt(0.90, QPointF(xOffset + 7, Colors::contentStartY));
+ infoIn->setPosAt(1.00, QPointF(xOffset, Colors::contentStartY));
+ movie_in->append(infoIn);
+
+ DemoItemAnimation *infoOut = new DemoItemAnimation(item, DemoItemAnimation::ANIM_OUT);
+ infoOut->timeline->setCurveShape(QTimeLine::EaseInCurve);
+ infoOut->setDuration(300);
+ infoOut->hideOnFinished = true;
+ infoOut->setStartPos(QPointF(xOffset, Colors::contentStartY));
+ infoOut->setPosAt(1.0, QPointF(-600, Colors::contentStartY));
+ movie_out->append(infoOut);
+}
+
+void MenuManager::createTicker()
+{
+ if (!Colors::noTicker){
+ Movie *movie_in = this->score->insertMovie("ticker");
+ Movie *movie_out = this->score->insertMovie("ticker -out");
+ Movie *movie_activate = this->score->insertMovie("ticker -activate");
+ Movie *movie_deactivate = this->score->insertMovie("ticker -deactivate");
+
+ this->ticker = new ItemCircleAnimation(this->window->scene, 0);
+ this->ticker->setZValue(50);
+ this->ticker->hide();
+
+ // Move ticker in:
+ int qtendpos = 485;
+ int qtPosY = 120;
+ this->tickerInAnim = new DemoItemAnimation(this->ticker, DemoItemAnimation::ANIM_IN);
+ this->tickerInAnim->setDuration(500);
+ this->tickerInAnim->setStartPos(QPointF(this->window->scene->sceneRect().width(), Colors::contentStartY + qtPosY));
+ this->tickerInAnim->setPosAt(0.60, QPointF(qtendpos, Colors::contentStartY + qtPosY));
+ this->tickerInAnim->setPosAt(0.70, QPointF(qtendpos + 30, Colors::contentStartY + qtPosY));
+ this->tickerInAnim->setPosAt(0.80, QPointF(qtendpos, Colors::contentStartY + qtPosY));
+ this->tickerInAnim->setPosAt(0.90, QPointF(qtendpos + 5, Colors::contentStartY + qtPosY));
+ this->tickerInAnim->setPosAt(1.00, QPointF(qtendpos, Colors::contentStartY + qtPosY));
+ movie_in->append(this->tickerInAnim);
+
+ // Move ticker out:
+ DemoItemAnimation *qtOut = new DemoItemAnimation(this->ticker, DemoItemAnimation::ANIM_OUT);
+ qtOut->hideOnFinished = true;
+ qtOut->setDuration(500);
+ qtOut->setStartPos(QPointF(qtendpos, Colors::contentStartY + qtPosY));
+ qtOut->setPosAt(1.00, QPointF(this->window->scene->sceneRect().width() + 700, Colors::contentStartY + qtPosY));
+ movie_out->append(qtOut);
+
+ // Move ticker in on activate:
+ DemoItemAnimation *qtActivate = new DemoItemAnimation(this->ticker);
+ qtActivate->setDuration(400);
+ qtActivate->setStartPos(QPointF(this->window->scene->sceneRect().width(), Colors::contentStartY + qtPosY));
+ qtActivate->setPosAt(0.60, QPointF(qtendpos, Colors::contentStartY + qtPosY));
+ qtActivate->setPosAt(0.70, QPointF(qtendpos + 30, Colors::contentStartY + qtPosY));
+ qtActivate->setPosAt(0.80, QPointF(qtendpos, Colors::contentStartY + qtPosY));
+ qtActivate->setPosAt(0.90, QPointF(qtendpos + 5, Colors::contentStartY + qtPosY));
+ qtActivate->setPosAt(1.00, QPointF(qtendpos, Colors::contentStartY + qtPosY));
+ movie_activate->append(qtActivate);
+
+ // Move ticker out on deactivate:
+ DemoItemAnimation *qtDeactivate = new DemoItemAnimation(this->ticker);
+ qtDeactivate->hideOnFinished = true;
+ qtDeactivate->setDuration(400);
+ qtDeactivate->setStartPos(QPointF(qtendpos, Colors::contentStartY + qtPosY));
+ qtDeactivate->setPosAt(1.00, QPointF(qtendpos, 800));
+ movie_deactivate->append(qtDeactivate);
+ }
+}
+
+void MenuManager::createUpnDownButtons()
+{
+ float xOffset = 15.0f;
+ float yOffset = 450.0f;
+
+ this->upButton = new TextButton("", TextButton::LEFT, MenuManager::UP, this->window->scene, 0, TextButton::UP);
+ this->upButton->prepare();
+ this->upButton->setPos(xOffset, yOffset);
+ this->upButton->setState(TextButton::DISABLED);
+
+ this->downButton = new TextButton("", TextButton::LEFT, MenuManager::DOWN, this->window->scene, 0, TextButton::DOWN);
+ this->downButton->prepare();
+ this->downButton->setPos(xOffset + 10 + this->downButton->sceneBoundingRect().width(), yOffset);
+
+ Movie *movieShake = this->score->insertMovie("upndown -shake");
+
+ DemoItemAnimation *shakeAnim = new DemoItemAnimation(this->upButton, DemoItemAnimation::ANIM_UNSPECIFIED);
+ shakeAnim->timeline->setCurveShape(QTimeLine::LinearCurve);
+ shakeAnim->setDuration(650);
+ shakeAnim->setStartPos(this->upButton->pos());
+ shakeAnim->setPosAt(0.60, this->upButton->pos());
+ shakeAnim->setPosAt(0.70, this->upButton->pos() + QPointF(-2, 0));
+ shakeAnim->setPosAt(0.80, this->upButton->pos() + QPointF(1, 0));
+ shakeAnim->setPosAt(0.90, this->upButton->pos() + QPointF(-1, 0));
+ shakeAnim->setPosAt(1.00, this->upButton->pos());
+ movieShake->append(shakeAnim);
+
+ shakeAnim = new DemoItemAnimation(this->downButton, DemoItemAnimation::ANIM_UNSPECIFIED);
+ shakeAnim->timeline->setCurveShape(QTimeLine::LinearCurve);
+ shakeAnim->setDuration(650);
+ shakeAnim->setStartPos(this->downButton->pos());
+ shakeAnim->setPosAt(0.60, this->downButton->pos());
+ shakeAnim->setPosAt(0.70, this->downButton->pos() + QPointF(-5, 0));
+ shakeAnim->setPosAt(0.80, this->downButton->pos() + QPointF(-3, 0));
+ shakeAnim->setPosAt(0.90, this->downButton->pos() + QPointF(-1, 0));
+ shakeAnim->setPosAt(1.00, this->downButton->pos());
+ movieShake->append(shakeAnim);
+}
+
+void MenuManager::createBackButton()
+{
+ Movie *backIn = this->score->insertMovie("back -in");
+ Movie *backOut = this->score->insertMovie("back -out");
+ Movie *backShake = this->score->insertMovie("back -shake");
+ createLowLeftButton(QLatin1String("Back"), ROOT, backIn, backOut, backShake, Colors::rootMenuName);
+}
diff --git a/demos/qtdemo/menumanager.h b/demos/qtdemo/menumanager.h
new file mode 100644
index 0000000..3a12c54
--- /dev/null
+++ b/demos/qtdemo/menumanager.h
@@ -0,0 +1,134 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MENU_MANAGER_H
+#define MENU_MANAGER_H
+
+#include <QtGui>
+#include <QtXml>
+#include <QtHelp/QHelpEngineCore>
+
+#include "score.h"
+#include "textbutton.h"
+#include "mainwindow.h"
+#include "itemcircleanimation.h"
+
+typedef QHash<QString, QString> StringHash;
+typedef QHash<QString, StringHash> HashHash;
+
+class TextButton;
+
+class MenuManager : public QObject
+{
+ Q_OBJECT
+
+public:
+ enum BUTTON_TYPE {ROOT, MENU1, MENU2, LAUNCH, DOCUMENTATION, QUIT, FULLSCREEN, UP, DOWN, BACK};
+
+ // singleton pattern:
+ static MenuManager *instance();
+ virtual ~MenuManager();
+
+ void init(MainWindow *window);
+ void itemSelected(int userCode, const QString &menuName = "");
+
+ QByteArray getHtml(const QString &name);
+ QByteArray getImage(const QString &name);
+ QString resolveExeFile(const QString &name);
+ QString resolveDocUrl(const QString &name);
+ QString resolveImageUrl(const QString &name);
+ QString resolveDataDir(const QString &name);
+
+ HashHash info;
+ ItemCircleAnimation *ticker;
+ MainWindow *window;
+ Score *score;
+ int currentMenuCode;
+
+private slots:
+ void exampleFinished();
+ void exampleError(QProcess::ProcessError error);
+
+private:
+ // singleton pattern:
+ MenuManager();
+ static MenuManager *pInstance;
+
+ QByteArray getResource(const QString &name);
+
+ void readXmlDocument();
+ void initHelpEngine();
+ void getDocumentationDir();
+ void readInfoAboutExample(const QDomElement &example);
+ void showDocInAssistant(const QString &docFile);
+ void launchExample(const QString &uniqueName);
+
+ void createMenu(const QDomElement &category, BUTTON_TYPE type);
+ void createLowLeftButton(const QString &label, BUTTON_TYPE type,
+ Movie *movieIn, Movie *movieOut, Movie *movieShake, const QString &menuString = QString());
+ void createLowRightButton(const QString &label, BUTTON_TYPE type, Movie *movieIn, Movie *movieOut, Movie *movieShake);
+ void createLowRightLeafButton(const QString &label, int pos, BUTTON_TYPE type, Movie *movieIn, Movie *movieOut, Movie * /*movieShake*/);
+ void createRootMenu(const QDomElement &el);
+ void createSubMenu(const QDomElement &el);
+ void createLeafMenu(const QDomElement &el);
+ void createInfo(DemoItem *item, const QString &name);
+ void createTicker();
+ void createUpnDownButtons();
+ void createBackButton();
+
+ QDomDocument *contentsDoc;
+ QProcess assistantProcess;
+ QString currentMenu;
+ QString currentCategory;
+ QString currentMenuButtons;
+ QString currentInfo;
+ QString helpRootUrl;
+ DemoItemAnimation *tickerInAnim;
+ QDir docDir;
+ QDir imgDir;
+ QHelpEngineCore *helpEngine;
+
+ TextButton *upButton;
+ TextButton *downButton;
+};
+
+#endif // MENU_MANAGER_H
+
diff --git a/demos/qtdemo/qtdemo.icns b/demos/qtdemo/qtdemo.icns
new file mode 100644
index 0000000..def5f0e
--- /dev/null
+++ b/demos/qtdemo/qtdemo.icns
Binary files differ
diff --git a/demos/qtdemo/qtdemo.ico b/demos/qtdemo/qtdemo.ico
new file mode 100644
index 0000000..016c77f
--- /dev/null
+++ b/demos/qtdemo/qtdemo.ico
Binary files differ
diff --git a/demos/qtdemo/qtdemo.pro b/demos/qtdemo/qtdemo.pro
new file mode 100644
index 0000000..2534b75
--- /dev/null
+++ b/demos/qtdemo/qtdemo.pro
@@ -0,0 +1,72 @@
+CONFIG += assistant help x11inc
+TARGET = qtdemo
+DESTDIR = $$QT_BUILD_TREE/bin
+OBJECTS_DIR = .obj
+MOC_DIR = .moc
+INSTALLS += target sources
+QT += xml network
+
+contains(QT_CONFIG, opengl) {
+ DEFINES += QT_OPENGL_SUPPORT
+ QT += opengl
+}
+
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+
+RESOURCES = qtdemo.qrc
+HEADERS = mainwindow.h \
+ demoscene.h \
+ demoitem.h \
+ score.h \
+ demoitemanimation.h \
+ itemcircleanimation.h \
+ demotextitem.h \
+ headingitem.h \
+ dockitem.h \
+ scanitem.h \
+ letteritem.h \
+ examplecontent.h \
+ menucontent.h \
+ guide.h \
+ guideline.h \
+ guidecircle.h \
+ menumanager.h \
+ colors.h \
+ textbutton.h \
+ imageitem.h
+SOURCES = main.cpp \
+ demoscene.cpp \
+ mainwindow.cpp \
+ demoitem.cpp \
+ score.cpp \
+ demoitemanimation.cpp \
+ itemcircleanimation.cpp \
+ demotextitem.cpp \
+ headingitem.cpp \
+ dockitem.cpp \
+ scanitem.cpp \
+ letteritem.cpp \
+ examplecontent.cpp \
+ menucontent.cpp \
+ guide.cpp \
+ guideline.cpp \
+ guidecircle.cpp \
+ menumanager.cpp \
+ colors.cpp \
+ textbutton.cpp \
+ imageitem.cpp
+
+win32:RC_FILE = qtdemo.rc
+mac {
+ICON = qtdemo.icns
+QMAKE_INFO_PLIST = Info_mac.plist
+}
+
+# install
+target.path = $$[QT_INSTALL_BINS]
+sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES qtdemo.pro images xml *.ico *.icns *.rc *.plist
+sources.path = $$[QT_INSTALL_DEMOS]/qtdemo
+
diff --git a/demos/qtdemo/qtdemo.qrc b/demos/qtdemo/qtdemo.qrc
new file mode 100644
index 0000000..b30dd58
--- /dev/null
+++ b/demos/qtdemo/qtdemo.qrc
@@ -0,0 +1,8 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/">
+ <file>xml/examples.xml</file>
+ <file>images/qtlogo_small.png</file>
+ <file>images/trolltech-logo.png</file>
+ <file>images/demobg.png</file>
+</qresource>
+</RCC>
diff --git a/demos/qtdemo/qtdemo.rc b/demos/qtdemo/qtdemo.rc
new file mode 100644
index 0000000..4cf2a63
--- /dev/null
+++ b/demos/qtdemo/qtdemo.rc
@@ -0,0 +1,2 @@
+IDI_ICON1 ICON DISCARDABLE "qtdemo.ico"
+
diff --git a/demos/qtdemo/scanitem.cpp b/demos/qtdemo/scanitem.cpp
new file mode 100644
index 0000000..0eab840
--- /dev/null
+++ b/demos/qtdemo/scanitem.cpp
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "scanitem.h"
+#include "colors.h"
+
+#define ITEM_WIDTH 16
+#define ITEM_HEIGHT 16
+
+ScanItem::ScanItem(QGraphicsScene *scene, QGraphicsItem *parent)
+ : DemoItem(scene, parent)
+{
+ useSharedImage(QString(__FILE__));
+}
+
+ScanItem::~ScanItem()
+{
+}
+
+QImage *ScanItem::createImage(const QMatrix &matrix) const
+{
+ QRect scaledRect = matrix.mapRect(QRect(0, 0, ITEM_WIDTH, ITEM_HEIGHT));
+ QImage *image = new QImage(scaledRect.width(), scaledRect.height(), QImage::Format_ARGB32_Premultiplied);
+ image->fill(QColor(0, 0, 0, 0).rgba());
+ QPainter painter(image);
+ painter.setRenderHint(QPainter::Antialiasing);
+
+ if (Colors::useEightBitPalette){
+ painter.setPen(QPen(QColor(100, 100, 100), 2));
+ painter.setBrush(QColor(206, 246, 117));
+ painter.drawEllipse(1, 1, scaledRect.width()-2, scaledRect.height()-2);
+ }
+ else {
+ painter.setPen(QPen(QColor(0, 0, 0, 15), 1));
+// painter.setBrush(QColor(206, 246, 117, 150));
+ painter.setBrush(QColor(0, 0, 0, 15));
+ painter.drawEllipse(1, 1, scaledRect.width()-2, scaledRect.height()-2);
+ }
+ return image;
+}
+
+
diff --git a/demos/qtdemo/scanitem.h b/demos/qtdemo/scanitem.h
new file mode 100644
index 0000000..b0b5ffc
--- /dev/null
+++ b/demos/qtdemo/scanitem.h
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SCAN_ITEM_H
+#define SCAN_ITEM_H
+
+#include <QtGui>
+#include "demoitem.h"
+
+class ScanItem : public DemoItem
+{
+public:
+ ScanItem(QGraphicsScene *scene = 0, QGraphicsItem *parent = 0);
+ virtual ~ScanItem();
+
+protected:
+ QImage *createImage(const QMatrix &matrix) const;
+
+};
+
+#endif // SCAN_ITEM_H
+
diff --git a/demos/qtdemo/score.cpp b/demos/qtdemo/score.cpp
new file mode 100644
index 0000000..f45ba0d
--- /dev/null
+++ b/demos/qtdemo/score.cpp
@@ -0,0 +1,149 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "score.h"
+#include "colors.h"
+#include "demoitem.h"
+
+Score::Score()
+{
+}
+
+Score::~Score()
+{
+ // NB! Deleting all movies.
+ qDeleteAll(this->index);
+}
+
+void Score::prepare(Movie *movie, RUN_MODE runMode, LOCK_MODE lockMode)
+{
+ if (lockMode == LOCK_ITEMS){
+ for (int i=0; i<movie->size(); ++i){
+ if (runMode == ONLY_IF_VISIBLE && !movie->at(i)->demoItem()->isVisible())
+ continue;
+ movie->at(i)->lockItem(true);
+ movie->at(i)->prepare();
+ }
+ }
+ else if (lockMode == UNLOCK_ITEMS){
+ for (int i=0; i<movie->size(); ++i){
+ if (runMode == ONLY_IF_VISIBLE && !movie->at(i)->demoItem()->isVisible())
+ continue;
+ movie->at(i)->lockItem(false);
+ movie->at(i)->prepare();
+ }
+ }
+ else {
+ for (int i=0; i<movie->size(); ++i){
+ if (runMode == ONLY_IF_VISIBLE && !movie->at(i)->demoItem()->isVisible())
+ continue;
+ movie->at(i)->prepare();
+ }
+ }
+}
+
+void Score::play(Movie *movie, RUN_MODE runMode)
+{
+ if (runMode == NEW_ANIMATION_ONLY){
+ for (int i=0; i<movie->size(); ++i)
+ if (movie->at(i)->notOwnerOfItem())
+ movie->at(i)->play(true);
+ }
+ else if (runMode == ONLY_IF_VISIBLE){
+ for (int i=0; i<movie->size(); ++i)
+ if (movie->at(i)->demoItem()->isVisible())
+ movie->at(i)->play(runMode == FROM_START);
+ }
+ else {
+ for (int i=0; i<movie->size(); ++i)
+ movie->at(i)->play(runMode == FROM_START);
+ }
+}
+
+void Score::playMovie(const QString &indexName, RUN_MODE runMode, LOCK_MODE lockMode)
+{
+ MovieIndex::iterator movieIterator = this->index.find(indexName);
+ if (movieIterator == this->index.end())
+ return;
+
+ Movie *movie = *movieIterator;
+ this->prepare(movie, runMode, lockMode);
+ this->play(movie, runMode);
+}
+
+void Score::queueMovie(const QString &indexName, RUN_MODE runMode, LOCK_MODE lockMode)
+{
+ MovieIndex::iterator movieIterator = this->index.find(indexName);
+ if (movieIterator == this->index.end()){
+ if (Colors::verbose)
+ qDebug() << "Queuing movie:" << indexName << "(does not exist)";
+ return;
+ }
+
+ Movie *movie = *movieIterator;
+ this->prepare(movie, runMode, lockMode);
+ this->playList.append(PlayListMember(movie, int(runMode)));
+ if (Colors::verbose)
+ qDebug() << "Queuing movie:" << indexName;
+}
+
+void Score::playQue()
+{
+ int movieCount = this->playList.size();
+ for (int i=0; i<movieCount; i++)
+ this->play(this->playList.at(i).movie, RUN_MODE(this->playList.at(i).runMode));
+ this->playList.clear();
+ if (Colors::verbose)
+ qDebug() << "********* Playing que *********";
+}
+
+void Score::insertMovie(const QString &indexName, Movie *movie)
+{
+ this->index.insert(indexName, movie);
+}
+
+Movie *Score::insertMovie(const QString &indexName)
+{
+ Movie *movie = new Movie();
+ insertMovie(indexName, movie);
+ return movie;
+}
+
diff --git a/demos/qtdemo/score.h b/demos/qtdemo/score.h
new file mode 100644
index 0000000..bfed5d2
--- /dev/null
+++ b/demos/qtdemo/score.h
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SCORE_H
+#define SCORE_H
+
+#include <QList>
+#include <QHash>
+#include "demoitemanimation.h"
+
+typedef QList<DemoItemAnimation *> Movie;
+typedef QHash<QString, Movie*> MovieIndex;
+
+class PlayListMember
+{
+public:
+ PlayListMember(Movie *movie, int runMode) : movie(movie), runMode(runMode){};
+ Movie *movie;
+ int runMode;
+};
+typedef QList<PlayListMember> PlayList;
+
+class Score
+{
+public:
+ enum LOCK_MODE {LOCK_ITEMS, UNLOCK_ITEMS, SKIP_LOCK};
+ enum RUN_MODE {FROM_CURRENT, FROM_START, NEW_ANIMATION_ONLY, ONLY_IF_VISIBLE};
+
+ Score();
+ virtual ~Score();
+
+ void playMovie(const QString &indexName, RUN_MODE runMode = FROM_START, LOCK_MODE lockMode = SKIP_LOCK);
+ void insertMovie(const QString &indexName, Movie *movie);
+ Movie *insertMovie(const QString &indexName);
+ void queueMovie(const QString &indexName, RUN_MODE runMode = FROM_START, LOCK_MODE lockMode = SKIP_LOCK);
+ void playQue();
+ bool hasQueuedMovies(){ return this->playList.size() > 0; };
+
+ MovieIndex index;
+ PlayList playList;
+
+private:
+ void prepare(Movie *movie, RUN_MODE runMode, LOCK_MODE lockMode);
+ void play(Movie *movie, RUN_MODE runMode);
+};
+
+#endif // SCORE_H
+
diff --git a/demos/qtdemo/textbutton.cpp b/demos/qtdemo/textbutton.cpp
new file mode 100644
index 0000000..96e1a23
--- /dev/null
+++ b/demos/qtdemo/textbutton.cpp
@@ -0,0 +1,384 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "textbutton.h"
+#include "demoitemanimation.h"
+#include "demotextitem.h"
+#include "colors.h"
+#include "menumanager.h"
+
+#define BUTTON_WIDTH 180
+#define BUTTON_HEIGHT 19
+
+class ButtonBackground : public DemoItem
+{
+public:
+ TextButton::BUTTONTYPE type;
+ bool highlighted;
+ bool pressed;
+ QSize logicalSize;
+
+ ButtonBackground(TextButton::BUTTONTYPE type, bool highlighted, bool pressed, QSize logicalSize,
+ QGraphicsScene *scene, QGraphicsItem *parent) : DemoItem(scene, parent)
+ {
+ this->type = type;
+ this->highlighted = highlighted;
+ this->pressed = pressed;
+ this->logicalSize = logicalSize;
+ useSharedImage(QString(__FILE__) + static_cast<int>(type) + highlighted + pressed);
+ }
+
+protected:
+ QImage *createImage(const QMatrix &matrix) const
+ {
+ if (type == TextButton::SIDEBAR || type == TextButton::PANEL)
+ return createRoundButtonBackground(matrix);
+ else
+ return createArrowBackground(matrix);
+ }
+
+ QImage *createRoundButtonBackground(const QMatrix &matrix) const
+ {
+ QRect scaledRect;
+ scaledRect = matrix.mapRect(QRect(0, 0, this->logicalSize.width(), this->logicalSize.height()));
+
+ QImage *image = new QImage(scaledRect.width(), scaledRect.height(), QImage::Format_ARGB32_Premultiplied);
+ image->fill(QColor(0, 0, 0, 0).rgba());
+ QPainter painter(image);
+ painter.setRenderHint(QPainter::SmoothPixmapTransform);
+ painter.setRenderHint(QPainter::Antialiasing);
+ painter.setPen(Qt::NoPen);
+
+ if (Colors::useEightBitPalette){
+ painter.setPen(QColor(120, 120, 120));
+ if (this->pressed)
+ painter.setBrush(QColor(60, 60, 60));
+ else if (this->highlighted)
+ painter.setBrush(QColor(100, 100, 100));
+ else
+ painter.setBrush(QColor(80, 80, 80));
+ }
+ else {
+ QLinearGradient outlinebrush(0, 0, 0, scaledRect.height());
+ QLinearGradient brush(0, 0, 0, scaledRect.height());
+
+ brush.setSpread(QLinearGradient::PadSpread);
+ QColor highlight(255, 255, 255, 70);
+ QColor shadow(0, 0, 0, 70);
+ QColor sunken(220, 220, 220, 30);
+ QColor normal1(255, 255, 245, 60);
+ QColor normal2(255, 255, 235, 10);
+
+ if (this->type == TextButton::PANEL){
+ normal1 = QColor(200, 170, 160, 50);
+ normal2 = QColor(50, 10, 0, 50);
+ }
+
+ if (pressed) {
+ outlinebrush.setColorAt(0.0f, shadow);
+ outlinebrush.setColorAt(1.0f, highlight);
+ brush.setColorAt(0.0f, sunken);
+ painter.setPen(Qt::NoPen);
+ } else {
+ outlinebrush.setColorAt(1.0f, shadow);
+ outlinebrush.setColorAt(0.0f, highlight);
+ brush.setColorAt(0.0f, normal1);
+ if (!this->highlighted)
+ brush.setColorAt(1.0f, normal2);
+ painter.setPen(QPen(outlinebrush, 1));
+ }
+ painter.setBrush(brush);
+ }
+
+ if (this->type == TextButton::PANEL)
+ painter.drawRect(0, 0, scaledRect.width(), scaledRect.height());
+ else
+ painter.drawRoundedRect(0, 0, scaledRect.width(), scaledRect.height(), 10, 90, Qt::RelativeSize);
+ return image;
+ }
+
+ QImage *createArrowBackground(const QMatrix &matrix) const
+ {
+ QRect scaledRect;
+ scaledRect = matrix.mapRect(QRect(0, 0, this->logicalSize.width(), this->logicalSize.height()));
+
+ QImage *image = new QImage(scaledRect.width(), scaledRect.height(), QImage::Format_ARGB32_Premultiplied);
+ image->fill(QColor(0, 0, 0, 0).rgba());
+ QPainter painter(image);
+ painter.setRenderHint(QPainter::SmoothPixmapTransform);
+ painter.setRenderHint(QPainter::Antialiasing);
+ painter.setPen(Qt::NoPen);
+
+ if (Colors::useEightBitPalette){
+ painter.setPen(QColor(120, 120, 120));
+ if (this->pressed)
+ painter.setBrush(QColor(60, 60, 60));
+ else if (this->highlighted)
+ painter.setBrush(QColor(100, 100, 100));
+ else
+ painter.setBrush(QColor(80, 80, 80));
+ }
+ else {
+ QLinearGradient outlinebrush(0, 0, 0, scaledRect.height());
+ QLinearGradient brush(0, 0, 0, scaledRect.height());
+
+ brush.setSpread(QLinearGradient::PadSpread);
+ QColor highlight(255, 255, 255, 70);
+ QColor shadow(0, 0, 0, 70);
+ QColor sunken(220, 220, 220, 30);
+ QColor normal1 = QColor(200, 170, 160, 50);
+ QColor normal2 = QColor(50, 10, 0, 50);
+
+ if (pressed) {
+ outlinebrush.setColorAt(0.0f, shadow);
+ outlinebrush.setColorAt(1.0f, highlight);
+ brush.setColorAt(0.0f, sunken);
+ painter.setPen(Qt::NoPen);
+ } else {
+ outlinebrush.setColorAt(1.0f, shadow);
+ outlinebrush.setColorAt(0.0f, highlight);
+ brush.setColorAt(0.0f, normal1);
+ if (!this->highlighted)
+ brush.setColorAt(1.0f, normal2);
+ painter.setPen(QPen(outlinebrush, 1));
+ }
+ painter.setBrush(brush);
+ }
+
+ painter.drawRect(0, 0, scaledRect.width(), scaledRect.height());
+
+ float xOff = scaledRect.width() / 2;
+ float yOff = scaledRect.height() / 2;
+ float sizex = 3.0f * matrix.m11();
+ float sizey = 1.5f * matrix.m22();
+ if (this->type == TextButton::UP)
+ sizey *= -1;
+ QPainterPath path;
+ path.moveTo(xOff, yOff + (5 * sizey));
+ path.lineTo(xOff - (4 * sizex), yOff - (3 * sizey));
+ path.lineTo(xOff + (4 * sizex), yOff - (3 * sizey));
+ path.lineTo(xOff, yOff + (5 * sizey));
+ painter.drawPath(path);
+
+ return image;
+ }
+
+};
+
+TextButton::TextButton(const QString &text, ALIGNMENT align, int userCode,
+ QGraphicsScene *scene, QGraphicsItem *parent, BUTTONTYPE type)
+ : DemoItem(scene, parent)
+{
+ this->menuString = text;
+ this->buttonLabel = text;
+ this->alignment = align;
+ this->buttonType = type;
+ this->userCode = userCode;
+ this->bgOn = 0;
+ this->bgOff = 0;
+ this->bgHighlight = 0;
+ this->bgDisabled = 0;
+ this->state = OFF;
+
+ this->setAcceptsHoverEvents(true);
+ this->setCursor(Qt::PointingHandCursor);
+
+ // Calculate button size:
+ const int w = 180;
+ const int h = 19;
+ if (type == SIDEBAR || type == PANEL)
+ this->logicalSize = QSize(w, h);
+ else
+ this->logicalSize = QSize(int((w / 2.0f) - 5), int(h * 1.5f));
+}
+
+void TextButton::setMenuString(const QString &menu)
+{
+ this->menuString = menu;
+}
+
+void TextButton::prepare()
+{
+ if (!this->prepared){
+ this->prepared = true;
+ this->setupHoverText();
+ this->setupScanItem();
+ this->setupButtonBg();
+ }
+}
+
+TextButton::~TextButton()
+{
+ if (this->prepared){
+ if (Colors::useButtonBalls)
+ delete this->scanAnim;
+ }
+}
+
+QRectF TextButton::boundingRect() const
+{
+ return QRectF(0, 0, this->logicalSize.width(), this->logicalSize.height());
+};
+
+void TextButton::setupHoverText()
+{
+ if (this->buttonLabel.isEmpty())
+ return;
+
+ DemoTextItem *textItem = new DemoTextItem(this->buttonLabel, Colors::buttonFont(), Colors::buttonText, -1, this->scene(), this);
+ textItem->setZValue(zValue() + 2);
+ textItem->setPos(16, 0);
+}
+
+void TextButton::setupScanItem()
+{
+ if (Colors::useButtonBalls){
+ ScanItem *scanItem = new ScanItem(0, this);
+ scanItem->setZValue(zValue() + 1);
+
+ this->scanAnim = new DemoItemAnimation(scanItem);
+ this->scanAnim->timeline->setLoopCount(1);
+
+ float x = 1;
+ float y = 1.5f;
+ float stop = BUTTON_WIDTH - scanItem->boundingRect().width() - x;
+ if (this->alignment == LEFT){
+ this->scanAnim->setDuration(2500);
+ this->scanAnim->setPosAt(0.0, QPointF(x, y));
+ this->scanAnim->setPosAt(0.5, QPointF(x, y));
+ this->scanAnim->setPosAt(0.7, QPointF(stop, y));
+ this->scanAnim->setPosAt(1.0, QPointF(x, y));
+ scanItem->setPos(QPointF(x, y));
+ }
+ else {
+ this->scanAnim->setPosAt(0.0, QPointF(stop, y));
+ this->scanAnim->setPosAt(0.5, QPointF(x, y));
+ this->scanAnim->setPosAt(1.0, QPointF(stop, y));
+ scanItem->setPos(QPointF(stop, y));
+ }
+ }
+}
+
+void TextButton::setState(STATE state)
+{
+ this->state = state;
+ this->bgOn->setRecursiveVisible(state == ON);
+ this->bgOff->setRecursiveVisible(state == OFF);
+ this->bgHighlight->setRecursiveVisible(state == HIGHLIGHT);
+ this->bgDisabled->setRecursiveVisible(state == DISABLED);
+ this->setCursor(state == DISABLED ? Qt::ArrowCursor : Qt::PointingHandCursor);
+
+}
+
+void TextButton::setupButtonBg()
+{
+ this->bgOn = new ButtonBackground(this->buttonType, true, true, this->logicalSize, this->scene(), this);
+ this->bgOff = new ButtonBackground(this->buttonType, false, false, this->logicalSize, this->scene(), this);
+ this->bgHighlight = new ButtonBackground(this->buttonType, true, false, this->logicalSize, this->scene(), this);
+ this->bgDisabled = new ButtonBackground(this->buttonType, true, true, this->logicalSize, this->scene(), this);
+ this->setState(OFF);
+}
+
+void TextButton::hoverEnterEvent(QGraphicsSceneHoverEvent *)
+{
+ if (this->locked || this->state == DISABLED)
+ return;
+
+ if (this->state == OFF){
+ this->setState(HIGHLIGHT);
+
+ if (Colors::noAnimations && Colors::useButtonBalls){
+ // wait a bit in the beginning
+ // to enhance the effect. Have to this here
+ // so that the adaption can be dynamic
+ this->scanAnim->setDuration(1000);
+ this->scanAnim->setPosAt(0.2, this->scanAnim->posAt(0));
+ }
+
+ if (MenuManager::instance()->window->fpsMedian > 10
+ || Colors::noAdapt
+ || Colors::noTimerUpdate){
+ if (Colors::useButtonBalls)
+ this->scanAnim->play(true, true);
+ }
+ }
+}
+
+void TextButton::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
+{
+ Q_UNUSED(event);
+ if (this->state == DISABLED)
+ return;
+
+ this->setState(OFF);
+
+ if (Colors::noAnimations && Colors::useButtonBalls)
+ this->scanAnim->stop();
+}
+
+void TextButton::mousePressEvent(QGraphicsSceneMouseEvent *)
+{
+ if (this->state == DISABLED)
+ return;
+
+ if (this->state == HIGHLIGHT || this->state == OFF)
+ this->setState(ON);
+}
+
+void TextButton::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
+{
+ if (this->state == ON){
+ this->setState(OFF);
+ if (!this->locked && this->boundingRect().contains(event->pos())){
+ MenuManager::instance()->itemSelected(this->userCode, this->menuString);
+ }
+ }
+}
+
+void TextButton::animationStarted(int)
+{
+ if (this->state == DISABLED)
+ return;
+ this->setState(OFF);
+}
+
+
+
diff --git a/demos/qtdemo/textbutton.h b/demos/qtdemo/textbutton.h
new file mode 100644
index 0000000..b7c91fb
--- /dev/null
+++ b/demos/qtdemo/textbutton.h
@@ -0,0 +1,100 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef TEXT_BUTTON_H
+#define TEXT_BUTTON_H
+
+#include <QtGui>
+#include "demoitem.h"
+#include "demotextitem.h"
+#include "scanitem.h"
+
+class DemoItemAnimation;
+class ButtonBackground;
+
+class TextButton : public DemoItem
+{
+public:
+ enum ALIGNMENT {LEFT, RIGHT};
+ enum BUTTONTYPE {SIDEBAR, PANEL, UP, DOWN};
+ enum STATE {ON, OFF, HIGHLIGHT, DISABLED};
+
+ TextButton(const QString &text, ALIGNMENT align = LEFT, int userCode = 0,
+ QGraphicsScene *scene = 0, QGraphicsItem *parent = 0, BUTTONTYPE color = SIDEBAR);
+ virtual ~TextButton();
+
+ // overidden methods:
+ virtual QRectF boundingRect() const;
+ virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0){};
+ virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
+ virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
+ virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
+ virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
+
+ void animationStarted(int id = 0);
+ void prepare();
+ void setState(STATE state);
+ void setMenuString(const QString &menu);
+ void setDisabled(bool disabled);
+
+private:
+ void setupButtonBg();
+ void setupScanItem();
+ void setupHoverText();
+
+ DemoItemAnimation *scanAnim;
+ ButtonBackground *bgOn;
+ ButtonBackground *bgOff;
+ ButtonBackground *bgHighlight;
+ ButtonBackground *bgDisabled;
+
+ BUTTONTYPE buttonType;
+ ALIGNMENT alignment;
+ QString buttonLabel;
+ QString menuString;
+ int userCode;
+ QSize logicalSize;
+
+ STATE state;
+};
+
+#endif // TEXT_BUTTON_H
+
diff --git a/demos/qtdemo/xml/examples.xml b/demos/qtdemo/xml/examples.xml
new file mode 100644
index 0000000..df2d93b
--- /dev/null
+++ b/demos/qtdemo/xml/examples.xml
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<categories name="Qt Examples and Demos">
+ <demos dirname="." docname="demos" name="Demonstrations">
+ <example filename="affine" name="Affine Transformations" />
+ <example filename="arthurplugin" name="Arthur Plugin" executable="false" />
+ <example filename="composition" name="Composition Modes" />
+ <example filename="gradients" name="Gradients" />
+ <example filename="pathstroke" name="Path Stroking" />
+ <example filename="deform" name="Vector Deformation" />
+ <example filename="books" name="Books" />
+ <example filename="mainwindow" name="Main Window" />
+ <example filename="spreadsheet" name="Spreadsheet" />
+ <example filename="sqlbrowser" name="SQL Browser" />
+ <example filename="textedit" name="Text Edit" />
+ <example filename="chip" name="40000 Chips" />
+ <example filename="embeddeddialogs" name="Embedded Dialogs" />
+ <example filename="interview" name="Interview" />
+ <example filename="browser" name="Browser" />
+ <example filename="mediaplayer" name="Media Player" />
+ <example filename="boxes" name="Boxes" />
+ </demos>
+ <category dirname="qtconcurrent" name="Concurrent Programming">
+ <example filename="map" name="Map" executable="false" />
+ <example filename="progressdialog" name="Progress Dialog" />
+ <example filename="runfunction" name="Run Function" executable="false"/>
+ <example filename="wordcount" name="Word Count" executable="false" />
+ </category>
+ <category dirname="designer" name="Qt Designer">
+ <example filename="calculatorbuilder" name="Calculator Builder" />
+ <example filename="calculatorform" name="Calculator Form" />
+ <example filename="containerextension" name="Container Extension" executable="false"/>
+ <example filename="customwidgetplugin" name="Custom Widget Plugin" executable="false" />
+ <example filename="taskmenuextension" name="Task Menu Extension" executable="false" />
+ <example filename="worldtimeclockbuilder" name="World Time Clock Builder" />
+ <example filename="worldtimeclockplugin" name="World Time Clock Plugin" executable="false"/>
+ </category>
+ <category dirname="desktop" name="Desktop">
+ <example filename="systray" name="System Tray" image="systemtray-example.png"/>
+ <example filename="screenshot" name="Screenshot" />
+ </category>
+ <category dirname="dialogs" name="Dialogs">
+ <example filename="configdialog" name="Configuration Dialog" />
+ <example filename="extension" name="Extension Dialog" />
+ <example filename="findfiles" name="Find Files Dialog" />
+ <example filename="standarddialogs" name="Standard Dialogs" />
+ <example filename="tabdialog" name="Tab Dialog" />
+ <example filename="trivialwizard" name="Trivial Wizard" image="trivialwizard-example-introduction.png"/>
+ <example filename="licensewizard" name="License Wizard" />
+ <example filename="classwizard" name="Class Wizard" />
+ </category>
+ <category dirname="draganddrop" name="Drag and Drop">
+ <example filename="draggableicons" name="Draggable Icons" />
+ <example filename="draggabletext" name="Draggable Text" />
+ <example filename="dropsite" name="Drop Site" />
+ <example filename="fridgemagnets" name="Fridge Magnets" />
+ <example filename="puzzle" name="Puzzle" image="draganddroppuzzle-example.png"/>
+ </category>
+ <category dirname="graphicsview" name="Graphics View">
+ <example filename="elasticnodes" name="Elastic Nodes" />
+ <example filename="collidingmice" name="Colliding Mice" />
+ <example filename="diagramscene" name="Diagram Scene" />
+ <example filename="dragdroprobot" name="Drag and Drop Robot" />
+ <example filename="portedcanvas" name="Ported Canvas" />
+ <example filename="portedasteroids" name="Ported Asteroids" />
+ <example filename="padnavigator" name="Pad Navigator Example" />
+ </category>
+ <category dirname="ipc" name="IPC">
+ <example filename="sharedmemory" name="Shared Memory" image="sharedmemory-example_1.png"/>
+ <example filename="localfortuneclient" name="Local Fortune Client" image="localfortuneclient-example.png"/>
+ <example filename="localfortuneserver" name="Local Fortune Server" image="localfortuneserver-example.png"/>
+ </category>
+ <category dirname="itemviews" name="Item Views">
+ <example filename="addressbook" name="Address Book" />
+ <example filename="basicsortfiltermodel" name="Basic Sort/Filter Model" />
+ <example filename="chart" name="Chart" />
+ <example filename="customsortfiltermodel" name="Custom Sort/Filter Model" />
+ <example filename="coloreditorfactory" name="Color Editor Factory" image="coloreditorfactoryimage.png"/>
+ <example filename="combowidgetmapper" name="Combo Widget Mapper" />
+ <example filename="dirview" name="Directory View" />
+ <example filename="fetchmore" name="Fetch More" />
+ <example filename="pixelator" name="Pixelator" />
+ <example filename="puzzle" name="Puzzle " image="itemviewspuzzle-example.png"/>
+ <example filename="simpledommodel" name="Simple DOM Model" />
+ <example filename="simpletreemodel" name="Simple Tree Model" />
+ <example filename="simplewidgetmapper" name="Simple Widget Mapper" />
+ <example filename="spinboxdelegate" name="Spin Box Delegate" />
+ <example filename="stardelegate" name="Star Delegate" />
+ </category>
+ <category dirname="layouts" name="Layouts">
+ <example filename="basiclayouts" name="Basic Layouts" />
+ <example filename="borderlayout" name="Border Layout" />
+ <example filename="dynamiclayouts" name="Dynamic Layouts" />
+ <example filename="flowlayout" name="Flow Layout" />
+ </category>
+ <category dirname="linguist" name="Qt Linguist">
+ <example filename="arrowpad" name="Arrow Pad" image="linguist-arrowpad_en.png"/>
+ <example filename="hellotr" name="Hello World" image="linguist-hellotr_en.png"/>
+ <example filename="trollprint" name="Troll Print" image="linguist-trollprint_10_en.png"/>
+ </category>
+ <category dirname="mainwindows" name="Main Windows">
+ <example filename="application" name="Application" />
+ <example filename="dockwidgets" name="Dock Widgets" />
+ <example filename="mdi" name="MDI" />
+ <example filename="sdi" name="SDI" />
+ <example filename="menus" name="Menus" />
+ <example filename="recentfiles" name="Recent Files" />
+ </category>
+ <category dirname="network" name="Networking">
+ <example filename="blockingfortuneclient" name="Blocking Fortune Client" />
+ <example filename="broadcastreceiver" name="Broadcast Receiver" />
+ <example filename="broadcastsender" name="Broadcast Sender" />
+ <example filename="network-chat" name="Network Chat Client" />
+ <example filename="fortuneclient" name="Fortune Client" />
+ <example filename="fortuneserver" name="Fortune Server" />
+ <example filename="ftp" changedirectory="false" name="FTP Client" />
+ <example filename="http" changedirectory="false" name="HTTP Client" />
+ <example filename="loopback" name="Loopback" />
+ <example filename="threadedfortuneserver" name="Threaded Fort. Server" />
+ <example filename="torrent" name="Torrent Client" />
+ <example filename="securesocketclient" name="Secure Socket Client" />
+ </category>
+ <category dirname="opengl" name="OpenGL">
+ <example filename="2dpainting" name="2D Painting" />
+ <example filename="framebufferobject" name="Framebuffer Object" />
+ <example filename="framebufferobject2" name="Framebuffer Object 2" />
+ <example filename="grabber" name="Grabber" />
+ <example filename="hellogl" name="Hello GL" />
+ <example filename="overpainting" name="Overpainting" />
+ <example filename="pbuffers" name="Pixel Buffers" />
+ <example filename="pbuffers2" name="Pixel Buffers 2" />
+ <example filename="samplebuffers" name="Sample Buffers" />
+ <example filename="textures" name="Textures" />
+ </category>
+ <category dirname="painting" name="Painting">
+ <example filename="basicdrawing" name="Basic Drawing" />
+ <example filename="concentriccircles" name="Concentric Circles" />
+ <example filename="fontsampler" name="Font Sampler" />
+ <example filename="imagecomposition" name="Image Composition" />
+ <example filename="painterpaths" name="Painter Paths" />
+ <example filename="svgviewer" name="SVG Viewer" />
+ <example filename="transformations" name="Transformations" />
+ </category>
+ <category dirname="phonon" name="Phonon">
+ <example filename="musicplayer" name="Music Player" />
+ </category>
+ <category dirname="richtext" name="Rich Text">
+ <example filename="calendar" name="Calendar" />
+ <example filename="orderform" name="Order Form" />
+ <example filename="syntaxhighlighter" name="Syntax Highlighter" />
+ <example filename="textobject" name="Text Object" />
+ </category>
+ <category dirname="script" name="QtScript">
+ <example filename="calculator" name="Calculator" />
+ <example filename="context2d" name="Context2D" />
+ <example filename="defaultprototypes" name="Default Prototypes" />
+ <example filename="helloscript" name="Hello Script" image="t1.png"/>
+ <example filename="qstetrix" name="QSTetrix" image="tetrix-example.png" />
+ </category>
+ <category dirname="sql" name="SQL">
+ <example filename="cachedtable" name="Cached Table" />
+ <example filename="drilldown" name="Drill Down" />
+ <example filename="querymodel" name="Query Model" />
+ <example filename="relationaltablemodel" name="Relational Table Model" />
+ <example filename="tablemodel" name="Table Model" />
+ <example filename="masterdetail" name="Music Archive" />
+ <example filename="sqlwidgetmapper" name="SQL Widget Mapper" />
+ </category>
+ <category dirname="threads" name="Threading">
+ <example filename="mandelbrot" name="Mandelbrot" />
+ </category>
+ <category dirname="tools" name="Tools">
+ <example filename="codecs" name="Codecs" />
+ <example filename="completer" name="Completer" />
+ <example filename="customcompleter" name="Custom Completer" />
+ <example filename="i18n" name="Internationalization" />
+ <example filename="plugandpaint" name="Plug and Paint" />
+ <example filename="regexp" name="Regular Expressions" />
+ <example filename="settingseditor" name="Settings Editor" />
+ <example filename="treemodelcompleter" name="Tree Model Completer" />
+ <example filename="undoframework" name="Undo Framework"/>
+ </category>
+ <category dirname="tutorials/addressbook" name="Address Book Tutorial">
+ <example filename="part1" name="Part 1" image="addressbook-tutorial-part1-screenshot.png" />
+ <example filename="part2" name="Part 2" image="addressbook-tutorial-part2-add-contact.png" />
+ <example filename="part3" name="Part 3" image="addressbook-tutorial-part3-screenshot.png" />
+ <example filename="part4" name="Part 4" image="addressbook-tutorial-screenshot.png" />
+ <example filename="part5" name="Part 5" image="addressbook-tutorial-part5-screenshot.png" />
+ <example filename="part6" name="Part 6" image="addressbook-tutorial-part6-screenshot.png" />
+ <example filename="part7" name="Part 7" image="addressbook-tutorial-part7-screenshot.png" />
+ </category>
+ <category dirname="widgets" name="Widgets">
+ <example filename="analogclock" name="Analog Clock" />
+ <example filename="calculator" name="Calculator " />
+ <example filename="calendarwidget" name="Calendar Widget" />
+ <example filename="charactermap" name="Character Map" />
+ <example filename="codeeditor" name="Code Editor" />
+ <example filename="digitalclock" name="Digital Clock" />
+ <example filename="groupbox" name="Group Box" />
+ <example filename="icons" name="Icons" />
+ <example filename="imageviewer" name="Image Viewer" />
+ <example filename="lineedits" name="Line Edits" />
+ <example filename="movie" name="Movie Player" />
+ <example filename="scribble" name="Scribble" />
+ <example filename="shapedclock" name="Shaped Clock" />
+ <example filename="sliders" name="Sliders" />
+ <example filename="spinboxes" name="Spin Boxes" />
+ <example filename="styles" name="Styles" image="styles-enabledwood.png"/>
+ <example filename="stylesheet" name="Style Sheet" image="stylesheet-coffee-plastique.png"/>
+ <example filename="tablet" name="Tablet" />
+ <example filename="tetrix" name="Tetrix " />
+ <example filename="tooltips" name="Tool Tips" />
+ <example filename="wiggly" name="Wiggly" />
+ <example filename="windowflags" name="Window Flags" />
+ </category>
+ <category dirname="xml" name="XML">
+ <example filename="saxbookmarks" name="SAX Bookmarks" />
+ <example filename="dombookmarks" name="DOM Bookmarks" />
+ <example filename="rsslisting" name="RSS-Listing" />
+ <example filename="streambookmarks" name="QXmlStream Bookmarks" image="xmlstreamexample-screenshot.png"/>
+ </category>
+ <category dirname="xmlpatterns" name="XML Patterns">
+ <example filename="recipes" name="Recipes" />
+ <example filename="qobjectxmlmodel" name="QObjectXmlModel" />
+ <example filename="filetree" name="File Tree" />
+ <example filename="trafficinfo" name="Traffic Info" />
+ </category>
+</categories>
diff --git a/demos/shared/arthurstyle.cpp b/demos/shared/arthurstyle.cpp
new file mode 100644
index 0000000..846d2f3
--- /dev/null
+++ b/demos/shared/arthurstyle.cpp
@@ -0,0 +1,452 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "arthurstyle.h"
+#include "arthurwidgets.h"
+#include <QLayout>
+#include <QPainter>
+#include <QPainterPath>
+#include <QPixmapCache>
+#include <QRadioButton>
+#include <QString>
+#include <QStyleOption>
+#include <QtDebug>
+
+QPixmap cached(const QString &img)
+{
+ if (QPixmap *p = QPixmapCache::find(img))
+ return *p;
+
+ QPixmap pm;
+ pm = QPixmap::fromImage(QImage(img), Qt::OrderedDither | Qt::OrderedAlphaDither);
+ if (pm.isNull())
+ return QPixmap();
+
+ QPixmapCache::insert(img, pm);
+ return pm;
+}
+
+
+ArthurStyle::ArthurStyle()
+ : QWindowsStyle()
+{
+ Q_INIT_RESOURCE(shared);
+}
+
+
+void ArthurStyle::drawHoverRect(QPainter *painter, const QRect &r) const
+{
+ qreal h = r.height();
+ qreal h2 = r.height() / qreal(2);
+ QPainterPath path;
+ path.addRect(r.x() + h2, r.y() + 0, r.width() - h2 * 2, r.height());
+ path.addEllipse(r.x(), r.y(), h, h);
+ path.addEllipse(r.x() + r.width() - h, r.y(), h, h);
+ path.setFillRule(Qt::WindingFill);
+ painter->setPen(Qt::NoPen);
+ painter->setBrush(QColor(191, 215, 191));
+ painter->setRenderHint(QPainter::Antialiasing);
+ painter->drawPath(path);
+}
+
+
+void ArthurStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const
+{
+
+ Q_ASSERT(option);
+ switch (element) {
+ case PE_FrameFocusRect:
+ break;
+
+ case PE_IndicatorRadioButton:
+ if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
+ bool hover = (button->state & State_Enabled) && (button->state & State_MouseOver);
+ painter->save();
+ QPixmap radio;
+ if (hover)
+ drawHoverRect(painter, widget->rect());
+
+ if (button->state & State_Sunken)
+ radio = cached(":res/images/radiobutton-on.png");
+ else if (button->state & State_On)
+ radio = cached(":res/images/radiobutton_on.png");
+ else
+ radio = cached(":res/images/radiobutton_off.png");
+ painter->drawPixmap(button->rect.topLeft(), radio);
+
+ painter->restore();
+ }
+ break;
+
+ case PE_PanelButtonCommand:
+ if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
+ bool hover = (button->state & State_Enabled) && (button->state & State_MouseOver);
+
+ painter->save();
+ const QPushButton *pushButton = qobject_cast<const QPushButton *>(widget);
+ Q_ASSERT(pushButton);
+ QWidget *parent = pushButton->parentWidget();
+ if (parent && qobject_cast<QGroupBox *>(parent)) {
+ QLinearGradient lg(0, 0, 0, parent->height());
+ lg.setColorAt(0, QColor(224,224,224));
+ lg.setColorAt(1, QColor(255,255,255));
+ painter->setPen(Qt::NoPen);
+ painter->setBrush(lg);
+ painter->setBrushOrigin(-widget->mapToParent(QPoint(0,0)));
+ painter->drawRect(button->rect);
+ painter->setBrushOrigin(0,0);
+ }
+
+ bool down = (button->state & State_Sunken) || (button->state & State_On);
+
+ QPixmap left, right, mid;
+ if (down) {
+ left = cached(":res/images/button_pressed_cap_left.png");
+ right = cached(":res/images/button_pressed_cap_right.png");
+ mid = cached(":res/images/button_pressed_stretch.png");
+ } else {
+ left = cached(":res/images/button_normal_cap_left.png");
+ right = cached(":res/images/button_normal_cap_right.png");
+ mid = cached(":res/images/button_normal_stretch.png");
+ }
+ painter->drawPixmap(button->rect.topLeft(), left);
+ painter->drawTiledPixmap(QRect(button->rect.x() + left.width(),
+ button->rect.y(),
+ button->rect.width() - left.width() - right.width(),
+ left.height()),
+ mid);
+ painter->drawPixmap(button->rect.x() + button->rect.width() - right.width(),
+ button->rect.y(),
+ right);
+ if (hover)
+ painter->fillRect(widget->rect().adjusted(3,5,-3,-5), QColor(31,127,31,63));
+ painter->restore();
+ }
+ break;
+
+ case PE_FrameGroupBox:
+ if (const QStyleOptionFrameV2 *group
+ = qstyleoption_cast<const QStyleOptionFrameV2 *>(option)) {
+ const QRect &r = group->rect;
+
+ painter->save();
+ int radius = 14;
+ int radius2 = radius*2;
+ QPainterPath clipPath;
+ clipPath.moveTo(radius, 0);
+ clipPath.arcTo(r.right() - radius2, 0, radius2, radius2, 90, -90);
+ clipPath.arcTo(r.right() - radius2, r.bottom() - radius2, radius2, radius2, 0, -90);
+ clipPath.arcTo(r.left(), r.bottom() - radius2, radius2, radius2, 270, -90);
+ clipPath.arcTo(r.left(), r.top(), radius2, radius2, 180, -90);
+ painter->setClipPath(clipPath);
+ QPixmap titleStretch = cached(":res/images/title_stretch.png");
+ QPixmap topLeft = cached(":res/images/groupframe_topleft.png");
+ QPixmap topRight = cached(":res/images/groupframe_topright.png");
+ QPixmap bottomLeft = cached(":res/images/groupframe_bottom_left.png");
+ QPixmap bottomRight = cached(":res/images/groupframe_bottom_right.png");
+ QPixmap leftStretch = cached(":res/images/groupframe_left_stretch.png");
+ QPixmap topStretch = cached(":res/images/groupframe_top_stretch.png");
+ QPixmap rightStretch = cached(":res/images/groupframe_right_stretch.png");
+ QPixmap bottomStretch = cached(":res/images/groupframe_bottom_stretch.png");
+ QLinearGradient lg(0, 0, 0, r.height());
+ lg.setColorAt(0, QColor(224,224,224));
+ lg.setColorAt(1, QColor(255,255,255));
+ painter->setPen(Qt::NoPen);
+ painter->setBrush(lg);
+ painter->drawRect(r.adjusted(0, titleStretch.height()/2, 0, 0));
+ painter->setClipping(false);
+
+ int topFrameOffset = titleStretch.height()/2 - 2;
+ painter->drawPixmap(r.topLeft() + QPoint(0, topFrameOffset), topLeft);
+ painter->drawPixmap(r.topRight() - QPoint(topRight.width()-1, 0)
+ + QPoint(0, topFrameOffset), topRight);
+ painter->drawPixmap(r.bottomLeft() - QPoint(0, bottomLeft.height()-1), bottomLeft);
+ painter->drawPixmap(r.bottomRight() - QPoint(bottomRight.width()-1,
+ bottomRight.height()-1), bottomRight);
+
+ QRect left = r;
+ left.setY(r.y() + topLeft.height() + topFrameOffset);
+ left.setWidth(leftStretch.width());
+ left.setHeight(r.height() - topLeft.height() - bottomLeft.height() - topFrameOffset);
+ painter->drawTiledPixmap(left, leftStretch);
+
+ QRect top = r;
+ top.setX(r.x() + topLeft.width());
+ top.setY(r.y() + topFrameOffset);
+ top.setWidth(r.width() - topLeft.width() - topRight.width());
+ top.setHeight(topLeft.height());
+ painter->drawTiledPixmap(top, topStretch);
+
+ QRect right = r;
+ right.setX(r.right() - rightStretch.width()+1);
+ right.setY(r.y() + topRight.height() + topFrameOffset);
+ right.setWidth(rightStretch.width());
+ right.setHeight(r.height() - topRight.height()
+ - bottomRight.height() - topFrameOffset);
+ painter->drawTiledPixmap(right, rightStretch);
+
+ QRect bottom = r;
+ bottom.setX(r.x() + bottomLeft.width());
+ bottom.setY(r.bottom() - bottomStretch.height()+1);
+ bottom.setWidth(r.width() - bottomLeft.width() - bottomRight.width());
+ bottom.setHeight(bottomLeft.height());
+ painter->drawTiledPixmap(bottom, bottomStretch);
+ painter->restore();
+ }
+ break;
+
+ default:
+ QWindowsStyle::drawPrimitive(element, option, painter, widget);
+ break;
+ }
+ return;
+}
+
+
+void ArthurStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ switch (control) {
+ case CC_Slider:
+ if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
+ QRect groove = subControlRect(CC_Slider, option, SC_SliderGroove, widget);
+ QRect handle = subControlRect(CC_Slider, option, SC_SliderHandle, widget);
+
+ painter->save();
+
+ bool hover = (slider->state & State_Enabled) && (slider->state & State_MouseOver);
+ if (hover) {
+ QRect moderated = widget->rect().adjusted(0, 4, 0, -4);
+ drawHoverRect(painter, moderated);
+ }
+
+ if ((option->subControls & SC_SliderGroove) && groove.isValid()) {
+ QPixmap grv = cached(":res/images/slider_bar.png");
+ painter->drawPixmap(QRect(groove.x() + 5, groove.y(),
+ groove.width() - 10, grv.height()),
+ grv);
+ }
+ if ((option->subControls & SC_SliderHandle) && handle.isValid()) {
+ QPixmap hndl = cached(":res/images/slider_thumb_on.png");
+ painter->drawPixmap(handle.topLeft(), hndl);
+ }
+
+ painter->restore();
+ }
+ break;
+ case CC_GroupBox:
+ if (const QStyleOptionGroupBox *groupBox
+ = qstyleoption_cast<const QStyleOptionGroupBox *>(option)) {
+ QStyleOptionGroupBox groupBoxCopy(*groupBox);
+ groupBoxCopy.subControls &= ~SC_GroupBoxLabel;
+ QWindowsStyle::drawComplexControl(control, &groupBoxCopy, painter, widget);
+
+ if (groupBox->subControls & SC_GroupBoxLabel) {
+ const QRect &r = groupBox->rect;
+ QPixmap titleLeft = cached(":res/images/title_cap_left.png");
+ QPixmap titleRight = cached(":res/images/title_cap_right.png");
+ QPixmap titleStretch = cached(":res/images/title_stretch.png");
+ int txt_width = groupBox->fontMetrics.width(groupBox->text) + 20;
+ painter->drawPixmap(r.center().x() - txt_width/2, 0, titleLeft);
+ QRect tileRect = subControlRect(control, groupBox, SC_GroupBoxLabel, widget);
+ painter->drawTiledPixmap(tileRect, titleStretch);
+ painter->drawPixmap(tileRect.x() + tileRect.width(), 0, titleRight);
+ int opacity = 31;
+ painter->setPen(QColor(0, 0, 0, opacity));
+ painter->drawText(tileRect.translated(0, 1),
+ Qt::AlignVCenter | Qt::AlignHCenter, groupBox->text);
+ painter->drawText(tileRect.translated(2, 1),
+ Qt::AlignVCenter | Qt::AlignHCenter, groupBox->text);
+ painter->setPen(QColor(0, 0, 0, opacity * 2));
+ painter->drawText(tileRect.translated(1, 1),
+ Qt::AlignVCenter | Qt::AlignHCenter, groupBox->text);
+ painter->setPen(Qt::white);
+ painter->drawText(tileRect, Qt::AlignVCenter | Qt::AlignHCenter, groupBox->text);
+ }
+ }
+ break;
+ default:
+ QWindowsStyle::drawComplexControl(control, option, painter, widget);
+ break;
+ }
+ return;
+}
+
+QRect ArthurStyle::subControlRect(ComplexControl control, const QStyleOptionComplex *option,
+ SubControl subControl, const QWidget *widget) const
+{
+ QRect rect;
+
+ switch (control) {
+ default:
+ rect = QWindowsStyle::subControlRect(control, option, subControl, widget);
+ break;
+ case CC_GroupBox:
+ if (const QStyleOptionGroupBox *group
+ = qstyleoption_cast<const QStyleOptionGroupBox *>(option)) {
+ switch (subControl) {
+ default:
+ rect = QWindowsStyle::subControlRect(control, option, subControl, widget);
+ break;
+ case SC_GroupBoxContents:
+ rect = QWindowsStyle::subControlRect(control, option, subControl, widget);
+ rect.adjust(0, -8, 0, 0);
+ break;
+ case SC_GroupBoxFrame:
+ rect = group->rect;
+ break;
+ case SC_GroupBoxLabel:
+ QPixmap titleLeft = cached(":res/images/title_cap_left.png");
+ QPixmap titleRight = cached(":res/images/title_cap_right.png");
+ QPixmap titleStretch = cached(":res/images/title_stretch.png");
+ int txt_width = group->fontMetrics.width(group->text) + 20;
+ rect = QRect(group->rect.center().x() - txt_width/2 + titleLeft.width(), 0,
+ txt_width - titleLeft.width() - titleRight.width(),
+ titleStretch.height());
+ break;
+ }
+ }
+ break;
+ }
+
+ if (control == CC_Slider && subControl == SC_SliderHandle) {
+ rect.setWidth(13);
+ rect.setHeight(27);
+ } else if (control == CC_Slider && subControl == SC_SliderGroove) {
+ rect.setHeight(9);
+ rect.moveTop(27/2 - 9/2);
+ }
+ return rect;
+}
+
+QSize ArthurStyle::sizeFromContents(ContentsType type, const QStyleOption *option,
+ const QSize &size, const QWidget *widget) const
+{
+ QSize newSize = QWindowsStyle::sizeFromContents(type, option, size, widget);
+
+
+ switch (type) {
+ case CT_RadioButton:
+ newSize += QSize(20, 0);
+ break;
+
+ case CT_PushButton:
+ newSize.setHeight(26);
+ break;
+
+ case CT_Slider:
+ newSize.setHeight(27);
+ break;
+
+ default:
+ break;
+ }
+
+ return newSize;
+}
+
+int ArthurStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt, const QWidget *widget) const
+{
+ if (pm == PM_SliderLength)
+ return 13;
+ return QWindowsStyle::pixelMetric(pm, opt, widget);
+}
+
+void ArthurStyle::polish(QWidget *widget)
+{
+ if (widget->layout() && qobject_cast<QGroupBox *>(widget)) {
+ if (qFindChildren<QGroupBox *>(widget).size() == 0) {
+ widget->layout()->setSpacing(0);
+ widget->layout()->setMargin(12);
+ } else {
+ widget->layout()->setMargin(13);
+ }
+ }
+
+ if (qobject_cast<QPushButton *>(widget)
+ || qobject_cast<QRadioButton *>(widget)
+ || qobject_cast<QSlider *>(widget)) {
+ widget->setAttribute(Qt::WA_Hover);
+ }
+
+ QPalette pal = widget->palette();
+ if (widget->isWindow()) {
+ pal.setColor(QPalette::Background, QColor(241, 241, 241));
+ widget->setPalette(pal);
+ }
+
+}
+
+void ArthurStyle::unpolish(QWidget *widget)
+{
+ if (qobject_cast<QPushButton *>(widget)
+ || qobject_cast<QRadioButton *>(widget)
+ || qobject_cast<QSlider *>(widget)) {
+ widget->setAttribute(Qt::WA_Hover, false);
+ }
+}
+
+void ArthurStyle::polish(QPalette &palette)
+{
+ palette.setColor(QPalette::Background, QColor(241, 241, 241));
+}
+
+QRect ArthurStyle::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const
+{
+ QRect r;
+ switch(element) {
+ case SE_RadioButtonClickRect:
+ r = widget->rect();
+ break;
+ case SE_RadioButtonContents:
+ r = widget->rect().adjusted(20, 0, 0, 0);
+ break;
+ default:
+ r = QWindowsStyle::subElementRect(element, option, widget);
+ break;
+ }
+
+ if (qobject_cast<const QRadioButton*>(widget))
+ r = r.adjusted(5, 0, -5, 0);
+
+ return r;
+}
diff --git a/demos/shared/arthurstyle.h b/demos/shared/arthurstyle.h
new file mode 100644
index 0000000..ec79361
--- /dev/null
+++ b/demos/shared/arthurstyle.h
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef ARTHURSTYLE_H
+#define ARTHURSTYLE_H
+
+#include <QWindowsStyle>
+
+QT_USE_NAMESPACE
+
+class ArthurStyle : public QWindowsStyle
+{
+public:
+ ArthurStyle();
+
+ void drawHoverRect(QPainter *painter, const QRect &rect) const;
+
+ void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget = 0) const;
+// void drawControl(ControlElement element, const QStyleOption *option,
+// QPainter *painter, const QWidget *widget) const;
+ void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option,
+ QPainter *painter, const QWidget *widget) const;
+ QSize sizeFromContents(ContentsType type, const QStyleOption *option,
+ const QSize &size, const QWidget *widget) const;
+
+ QRect subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const;
+ QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt,
+ SubControl sc, const QWidget *widget) const;
+
+// SubControl hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option,
+// const QPoint &pos, const QWidget *widget = 0) const;
+
+ int pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const;
+
+ void polish(QPalette &palette);
+ void polish(QWidget *widget);
+ void unpolish(QWidget *widget);
+};
+
+#endif
diff --git a/demos/shared/arthurwidgets.cpp b/demos/shared/arthurwidgets.cpp
new file mode 100644
index 0000000..f9eed99
--- /dev/null
+++ b/demos/shared/arthurwidgets.cpp
@@ -0,0 +1,371 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "arthurwidgets.h"
+#include <QApplication>
+#include <QPainter>
+#include <QPainterPath>
+#include <QPixmapCache>
+#include <QtEvents>
+#include <QTextDocument>
+#include <QAbstractTextDocumentLayout>
+#include <QFile>
+#include <QTextBrowser>
+#include <QBoxLayout>
+
+#include <private/qpixmapdata_p.h>
+
+extern QPixmap cached(const QString &img);
+
+ArthurFrame::ArthurFrame(QWidget *parent)
+ : QWidget(parent)
+ , m_prefer_image(false)
+{
+#ifdef QT_OPENGL_SUPPORT
+ glw = 0;
+ m_use_opengl = false;
+ QGLFormat f = QGLFormat::defaultFormat();
+ f.setSampleBuffers(true);
+ f.setStencil(true);
+ f.setAlpha(true);
+ f.setAlphaBufferSize(8);
+ QGLFormat::setDefaultFormat(f);
+#endif
+ m_document = 0;
+ m_show_doc = false;
+
+ m_tile = QPixmap(128, 128);
+ m_tile.fill(Qt::white);
+ QPainter pt(&m_tile);
+ QColor color(230, 230, 230);
+ pt.fillRect(0, 0, 64, 64, color);
+ pt.fillRect(64, 64, 64, 64, color);
+ pt.end();
+
+// QPalette pal = palette();
+// pal.setBrush(backgroundRole(), m_tile);
+// setPalette(pal);
+
+#ifdef Q_WS_X11
+ QPixmap xRenderPixmap(1, 1);
+ m_prefer_image = xRenderPixmap.pixmapData()->classId() == QPixmapData::X11Class && !xRenderPixmap.x11PictureHandle();
+#endif
+}
+
+
+#ifdef QT_OPENGL_SUPPORT
+void ArthurFrame::enableOpenGL(bool use_opengl)
+{
+ m_use_opengl = use_opengl;
+
+ if (!glw) {
+ glw = new GLWidget(this);
+ glw->setAutoFillBackground(false);
+ glw->disableAutoBufferSwap();
+ QApplication::postEvent(this, new QResizeEvent(size(), size()));
+ }
+
+ if (use_opengl) {
+ glw->show();
+ } else {
+ glw->hide();
+ }
+
+ update();
+}
+#endif
+
+void ArthurFrame::paintEvent(QPaintEvent *e)
+{
+#ifdef Q_WS_QWS
+ static QPixmap *static_image = 0;
+#else
+ static QImage *static_image = 0;
+#endif
+ QPainter painter;
+ if (preferImage()
+#ifdef QT_OPENGL_SUPPORT
+ && !m_use_opengl
+#endif
+ ) {
+ if (!static_image || static_image->size() != size()) {
+ delete static_image;
+#ifdef Q_WS_QWS
+ static_image = new QPixmap(size());
+#else
+ static_image = new QImage(size(), QImage::Format_RGB32);
+#endif
+ }
+ painter.begin(static_image);
+
+ int o = 10;
+
+ QBrush bg = palette().brush(QPalette::Background);
+ painter.fillRect(0, 0, o, o, bg);
+ painter.fillRect(width() - o, 0, o, o, bg);
+ painter.fillRect(0, height() - o, o, o, bg);
+ painter.fillRect(width() - o, height() - o, o, o, bg);
+ } else {
+#ifdef QT_OPENGL_SUPPORT
+ if (m_use_opengl) {
+ painter.begin(glw);
+ painter.fillRect(QRectF(0, 0, glw->width(), glw->height()), palette().color(backgroundRole()));
+ } else {
+ painter.begin(this);
+ }
+#else
+ painter.begin(this);
+#endif
+ }
+
+ painter.setClipRect(e->rect());
+
+ painter.setRenderHint(QPainter::Antialiasing);
+
+ QPainterPath clipPath;
+
+ QRect r = rect();
+ qreal left = r.x() + 1;
+ qreal top = r.y() + 1;
+ qreal right = r.right();
+ qreal bottom = r.bottom();
+ qreal radius2 = 8 * 2;
+
+ clipPath.moveTo(right - radius2, top);
+ clipPath.arcTo(right - radius2, top, radius2, radius2, 90, -90);
+ clipPath.arcTo(right - radius2, bottom - radius2, radius2, radius2, 0, -90);
+ clipPath.arcTo(left, bottom - radius2, radius2, radius2, 270, -90);
+ clipPath.arcTo(left, top, radius2, radius2, 180, -90);
+ clipPath.closeSubpath();
+
+ painter.save();
+ painter.setClipPath(clipPath, Qt::IntersectClip);
+
+ painter.drawTiledPixmap(rect(), m_tile);
+
+ // client painting
+
+ paint(&painter);
+
+ painter.restore();
+
+ painter.save();
+ if (m_show_doc)
+ paintDescription(&painter);
+ painter.restore();
+
+ int level = 180;
+ painter.setPen(QPen(QColor(level, level, level), 2));
+ painter.setBrush(Qt::NoBrush);
+ painter.drawPath(clipPath);
+
+ if (preferImage()
+#ifdef QT_OPENGL_SUPPORT
+ && !m_use_opengl
+#endif
+ ) {
+ painter.end();
+ painter.begin(this);
+#ifdef Q_WS_QWS
+ painter.drawPixmap(e->rect(), *static_image, e->rect());
+#else
+ painter.drawImage(e->rect(), *static_image, e->rect());
+#endif
+ }
+
+#ifdef QT_OPENGL_SUPPORT
+ if (m_use_opengl && (inherits("PathDeformRenderer") || inherits("PathStrokeRenderer") || inherits("CompositionRenderer") || m_show_doc))
+ glw->swapBuffers();
+#endif
+}
+
+void ArthurFrame::resizeEvent(QResizeEvent *e)
+{
+#ifdef QT_OPENGL_SUPPORT
+ if (glw)
+ glw->setGeometry(0, 0, e->size().width()-1, e->size().height()-1);
+#endif
+ QWidget::resizeEvent(e);
+}
+
+void ArthurFrame::setDescriptionEnabled(bool enabled)
+{
+ if (m_show_doc != enabled) {
+ m_show_doc = enabled;
+ emit descriptionEnabledChanged(m_show_doc);
+ update();
+ }
+}
+
+void ArthurFrame::loadDescription(const QString &fileName)
+{
+ QFile textFile(fileName);
+ QString text;
+ if (!textFile.open(QFile::ReadOnly))
+ text = QString("Unable to load resource file: '%1'").arg(fileName);
+ else
+ text = textFile.readAll();
+ setDescription(text);
+}
+
+
+void ArthurFrame::setDescription(const QString &text)
+{
+ m_document = new QTextDocument(this);
+ m_document->setHtml(text);
+}
+
+void ArthurFrame::paintDescription(QPainter *painter)
+{
+ if (!m_document)
+ return;
+
+ int pageWidth = qMax(width() - 100, 100);
+ int pageHeight = qMax(height() - 100, 100);
+ if (pageWidth != m_document->pageSize().width()) {
+ m_document->setPageSize(QSize(pageWidth, pageHeight));
+ }
+
+ QRect textRect(width() / 2 - pageWidth / 2,
+ height() / 2 - pageHeight / 2,
+ pageWidth,
+ pageHeight);
+ int pad = 10;
+ QRect clearRect = textRect.adjusted(-pad, -pad, pad, pad);
+ painter->setPen(Qt::NoPen);
+ painter->setBrush(QColor(0, 0, 0, 63));
+ int shade = 10;
+ painter->drawRect(clearRect.x() + clearRect.width() + 1,
+ clearRect.y() + shade,
+ shade,
+ clearRect.height() + 1);
+ painter->drawRect(clearRect.x() + shade,
+ clearRect.y() + clearRect.height() + 1,
+ clearRect.width() - shade + 1,
+ shade);
+
+ painter->setRenderHint(QPainter::Antialiasing, false);
+ painter->setBrush(QColor(255, 255, 255, 220));
+ painter->setPen(Qt::black);
+ painter->drawRect(clearRect);
+
+ painter->setClipRegion(textRect, Qt::IntersectClip);
+ painter->translate(textRect.topLeft());
+
+ QAbstractTextDocumentLayout::PaintContext ctx;
+
+ QLinearGradient g(0, 0, 0, textRect.height());
+ g.setColorAt(0, Qt::black);
+ g.setColorAt(0.9, Qt::black);
+ g.setColorAt(1, Qt::transparent);
+
+ QPalette pal = palette();
+ pal.setBrush(QPalette::Text, g);
+
+ ctx.palette = pal;
+ ctx.clip = QRect(0, 0, textRect.width(), textRect.height());
+ m_document->documentLayout()->draw(painter, ctx);
+}
+
+void ArthurFrame::loadSourceFile(const QString &sourceFile)
+{
+ m_sourceFileName = sourceFile;
+}
+
+void ArthurFrame::showSource()
+{
+ // Check for existing source
+ if (qFindChild<QTextBrowser *>(this))
+ return;
+
+ QString contents;
+ if (m_sourceFileName.isEmpty()) {
+ contents = QString("No source for widget: '%1'").arg(objectName());
+ } else {
+ QFile f(m_sourceFileName);
+ if (!f.open(QFile::ReadOnly))
+ contents = QString("Could not open file: '%1'").arg(m_sourceFileName);
+ else
+ contents = f.readAll();
+ }
+
+ contents.replace('&', "&amp;");
+ contents.replace('<', "&lt;");
+ contents.replace('>', "&gt;");
+
+ QStringList keywords;
+ keywords << "for " << "if " << "switch " << " int " << "#include " << "const"
+ << "void " << "uint " << "case " << "double " << "#define " << "static"
+ << "new" << "this";
+
+ foreach (QString keyword, keywords)
+ contents.replace(keyword, QLatin1String("<font color=olive>") + keyword + QLatin1String("</font>"));
+ contents.replace("(int ", "(<font color=olive><b>int </b></font>");
+
+ QStringList ppKeywords;
+ ppKeywords << "#ifdef" << "#ifndef" << "#if" << "#endif" << "#else";
+
+ foreach (QString keyword, ppKeywords)
+ contents.replace(keyword, QLatin1String("<font color=navy>") + keyword + QLatin1String("</font>"));
+
+ contents.replace(QRegExp("(\\d\\d?)"), QLatin1String("<font color=navy>\\1</font>"));
+
+ QRegExp commentRe("(//.+)\\n");
+ commentRe.setMinimal(true);
+ contents.replace(commentRe, QLatin1String("<font color=red>\\1</font>\n"));
+
+ QRegExp stringLiteralRe("(\".+\")");
+ stringLiteralRe.setMinimal(true);
+ contents.replace(stringLiteralRe, QLatin1String("<font color=green>\\1</font>"));
+
+ QString html = contents;
+ html.prepend("<html><pre>");
+ html.append("</pre></html>");
+
+ QTextBrowser *sourceViewer = new QTextBrowser(0);
+ sourceViewer->setWindowTitle("Source: " + m_sourceFileName.mid(5));
+ sourceViewer->setParent(this, Qt::Dialog);
+ sourceViewer->setAttribute(Qt::WA_DeleteOnClose);
+ sourceViewer->setLineWrapMode(QTextEdit::NoWrap);
+ sourceViewer->setHtml(html);
+ sourceViewer->resize(600, 600);
+ sourceViewer->show();
+}
diff --git a/demos/shared/arthurwidgets.h b/demos/shared/arthurwidgets.h
new file mode 100644
index 0000000..4d55b61
--- /dev/null
+++ b/demos/shared/arthurwidgets.h
@@ -0,0 +1,118 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef ARTHURWIDGETS_H
+#define ARTHURWIDGETS_H
+
+#include "arthurstyle.h"
+#include <QBitmap>
+#include <QPushButton>
+#include <QGroupBox>
+
+#if defined(QT_OPENGL_SUPPORT)
+#include <QGLWidget>
+class GLWidget : public QGLWidget
+{
+public:
+ GLWidget(QWidget *parent)
+ : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) {}
+ void disableAutoBufferSwap() { setAutoBufferSwap(false); }
+ void paintEvent(QPaintEvent *) { parentWidget()->update(); }
+};
+#endif
+
+QT_FORWARD_DECLARE_CLASS(QTextDocument)
+QT_FORWARD_DECLARE_CLASS(QTextEdit)
+QT_FORWARD_DECLARE_CLASS(QVBoxLayout)
+
+class ArthurFrame : public QWidget
+{
+ Q_OBJECT
+public:
+ ArthurFrame(QWidget *parent);
+ virtual void paint(QPainter *) {}
+
+
+ void paintDescription(QPainter *p);
+
+ void loadDescription(const QString &filename);
+ void setDescription(const QString &htmlDesc);
+
+ void loadSourceFile(const QString &fileName);
+
+ bool preferImage() const { return m_prefer_image; }
+
+#if defined(QT_OPENGL_SUPPORT)
+ QGLWidget *glWidget() const { return glw; }
+#endif
+
+public slots:
+ void setPreferImage(bool pi) { m_prefer_image = pi; }
+ void setDescriptionEnabled(bool enabled);
+ void showSource();
+
+#if defined(QT_OPENGL_SUPPORT)
+ void enableOpenGL(bool use_opengl);
+ bool usesOpenGL() { return m_use_opengl; }
+#endif
+
+signals:
+ void descriptionEnabledChanged(bool);
+
+protected:
+ void paintEvent(QPaintEvent *);
+ void resizeEvent(QResizeEvent *);
+
+#if defined(QT_OPENGL_SUPPORT)
+ GLWidget *glw;
+ bool m_use_opengl;
+#endif
+ QPixmap m_tile;
+
+ bool m_show_doc;
+ bool m_prefer_image;
+ QTextDocument *m_document;
+
+ QString m_sourceFileName;
+
+};
+
+#endif
diff --git a/demos/shared/hoverpoints.cpp b/demos/shared/hoverpoints.cpp
new file mode 100644
index 0000000..70062f6
--- /dev/null
+++ b/demos/shared/hoverpoints.cpp
@@ -0,0 +1,333 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifdef QT_OPENGL_SUPPORT
+#include <QGLWidget>
+#endif
+
+#include "arthurwidgets.h"
+#include "hoverpoints.h"
+
+#define printf
+
+HoverPoints::HoverPoints(QWidget *widget, PointShape shape)
+ : QObject(widget)
+{
+ m_widget = widget;
+ widget->installEventFilter(this);
+
+ m_connectionType = CurveConnection;
+ m_sortType = NoSort;
+ m_shape = shape;
+ m_pointPen = QPen(QColor(255, 255, 255, 191), 1);
+ m_connectionPen = QPen(QColor(255, 255, 255, 127), 2);
+ m_pointBrush = QBrush(QColor(191, 191, 191, 127));
+ m_pointSize = QSize(11, 11);
+ m_currentIndex = -1;
+ m_editable = true;
+ m_enabled = true;
+
+ connect(this, SIGNAL(pointsChanged(const QPolygonF &)),
+ m_widget, SLOT(update()));
+}
+
+
+void HoverPoints::setEnabled(bool enabled)
+{
+ if (m_enabled != enabled) {
+ m_enabled = enabled;
+ m_widget->update();
+ }
+}
+
+
+bool HoverPoints::eventFilter(QObject *object, QEvent *event)
+{
+ if (object == m_widget && m_enabled) {
+ switch (event->type()) {
+
+ case QEvent::MouseButtonPress:
+ {
+ QMouseEvent *me = (QMouseEvent *) event;
+
+ QPointF clickPos = me->pos();
+ int index = -1;
+ for (int i=0; i<m_points.size(); ++i) {
+ QPainterPath path;
+ if (m_shape == CircleShape)
+ path.addEllipse(pointBoundingRect(i));
+ else
+ path.addRect(pointBoundingRect(i));
+
+ if (path.contains(clickPos)) {
+ index = i;
+ break;
+ }
+ }
+
+ if (me->button() == Qt::LeftButton) {
+ if (index == -1) {
+ if (!m_editable)
+ return false;
+ int pos = 0;
+ // Insert sort for x or y
+ if (m_sortType == XSort) {
+ for (int i=0; i<m_points.size(); ++i)
+ if (m_points.at(i).x() > clickPos.x()) {
+ pos = i;
+ break;
+ }
+ } else if (m_sortType == YSort) {
+ for (int i=0; i<m_points.size(); ++i)
+ if (m_points.at(i).y() > clickPos.y()) {
+ pos = i;
+ break;
+ }
+ }
+
+ m_points.insert(pos, clickPos);
+ m_locks.insert(pos, 0);
+ m_currentIndex = pos;
+ firePointChange();
+ } else {
+ m_currentIndex = index;
+ }
+ return true;
+
+ } else if (me->button() == Qt::RightButton) {
+ if (index >= 0 && m_editable) {
+ if (m_locks[index] == 0) {
+ m_locks.remove(index);
+ m_points.remove(index);
+ }
+ firePointChange();
+ return true;
+ }
+ }
+
+ }
+ break;
+
+ case QEvent::MouseButtonRelease:
+ m_currentIndex = -1;
+ break;
+
+ case QEvent::MouseMove:
+ if (m_currentIndex >= 0)
+ movePoint(m_currentIndex, ((QMouseEvent *)event)->pos());
+ break;
+
+ case QEvent::Resize:
+ {
+ QResizeEvent *e = (QResizeEvent *) event;
+ if (e->oldSize().width() == 0 || e->oldSize().height() == 0)
+ break;
+ qreal stretch_x = e->size().width() / qreal(e->oldSize().width());
+ qreal stretch_y = e->size().height() / qreal(e->oldSize().height());
+ for (int i=0; i<m_points.size(); ++i) {
+ QPointF p = m_points[i];
+ movePoint(i, QPointF(p.x() * stretch_x, p.y() * stretch_y), false);
+ }
+
+ firePointChange();
+ break;
+ }
+
+ case QEvent::Paint:
+ {
+ QWidget *that_widget = m_widget;
+ m_widget = 0;
+ QApplication::sendEvent(object, event);
+ m_widget = that_widget;
+ paintPoints();
+#ifdef QT_OPENGL_SUPPORT
+ ArthurFrame *af = qobject_cast<ArthurFrame *>(that_widget);
+ if (af && af->usesOpenGL())
+ af->glWidget()->swapBuffers();
+#endif
+ return true;
+ }
+ default:
+ break;
+ }
+ }
+
+ return false;
+}
+
+
+void HoverPoints::paintPoints()
+{
+ QPainter p;
+#ifdef QT_OPENGL_SUPPORT
+ ArthurFrame *af = qobject_cast<ArthurFrame *>(m_widget);
+ if (af && af->usesOpenGL())
+ p.begin(af->glWidget());
+ else
+ p.begin(m_widget);
+#else
+ p.begin(m_widget);
+#endif
+
+ p.setRenderHint(QPainter::Antialiasing);
+
+ if (m_connectionPen.style() != Qt::NoPen && m_connectionType != NoConnection) {
+ p.setPen(m_connectionPen);
+
+ if (m_connectionType == CurveConnection) {
+ QPainterPath path;
+ path.moveTo(m_points.at(0));
+ for (int i=1; i<m_points.size(); ++i) {
+ QPointF p1 = m_points.at(i-1);
+ QPointF p2 = m_points.at(i);
+ qreal distance = p2.x() - p1.x();
+
+ path.cubicTo(p1.x() + distance / 2, p1.y(),
+ p1.x() + distance / 2, p2.y(),
+ p2.x(), p2.y());
+ }
+ p.drawPath(path);
+ } else {
+ p.drawPolyline(m_points);
+ }
+ }
+
+ p.setPen(m_pointPen);
+ p.setBrush(m_pointBrush);
+
+ for (int i=0; i<m_points.size(); ++i) {
+ QRectF bounds = pointBoundingRect(i);
+ if (m_shape == CircleShape)
+ p.drawEllipse(bounds);
+ else
+ p.drawRect(bounds);
+ }
+}
+
+static QPointF bound_point(const QPointF &point, const QRectF &bounds, int lock)
+{
+ QPointF p = point;
+
+ qreal left = bounds.left();
+ qreal right = bounds.right();
+ qreal top = bounds.top();
+ qreal bottom = bounds.bottom();
+
+ if (p.x() < left || (lock & HoverPoints::LockToLeft)) p.setX(left);
+ else if (p.x() > right || (lock & HoverPoints::LockToRight)) p.setX(right);
+
+ if (p.y() < top || (lock & HoverPoints::LockToTop)) p.setY(top);
+ else if (p.y() > bottom || (lock & HoverPoints::LockToBottom)) p.setY(bottom);
+
+ return p;
+}
+
+void HoverPoints::setPoints(const QPolygonF &points)
+{
+ m_points.clear();
+ for (int i=0; i<points.size(); ++i)
+ m_points << bound_point(points.at(i), boundingRect(), 0);
+
+ m_locks.clear();
+ if (m_points.size() > 0) {
+ m_locks.resize(m_points.size());
+
+ m_locks.fill(0);
+ }
+}
+
+
+void HoverPoints::movePoint(int index, const QPointF &point, bool emitUpdate)
+{
+ m_points[index] = bound_point(point, boundingRect(), m_locks.at(index));
+ if (emitUpdate)
+ firePointChange();
+}
+
+
+inline static bool x_less_than(const QPointF &p1, const QPointF &p2)
+{
+ return p1.x() < p2.x();
+}
+
+
+inline static bool y_less_than(const QPointF &p1, const QPointF &p2)
+{
+ return p1.y() < p2.y();
+}
+
+void HoverPoints::firePointChange()
+{
+// printf("HoverPoints::firePointChange(), current=%d\n", m_currentIndex);
+
+ if (m_sortType != NoSort) {
+
+ QPointF oldCurrent;
+ if (m_currentIndex != -1) {
+ oldCurrent = m_points[m_currentIndex];
+ }
+
+ if (m_sortType == XSort)
+ qSort(m_points.begin(), m_points.end(), x_less_than);
+ else if (m_sortType == YSort)
+ qSort(m_points.begin(), m_points.end(), y_less_than);
+
+ // Compensate for changed order...
+ if (m_currentIndex != -1) {
+ for (int i=0; i<m_points.size(); ++i) {
+ if (m_points[i] == oldCurrent) {
+ m_currentIndex = i;
+ break;
+ }
+ }
+ }
+
+// printf(" - firePointChange(), current=%d\n", m_currentIndex);
+
+ }
+
+// for (int i=0; i<m_points.size(); ++i) {
+// printf(" - point(%2d)=[%.2f, %.2f], lock=%d\n",
+// i, m_points.at(i).x(), m_points.at(i).y(), m_locks.at(i));
+// }
+
+ emit pointsChanged(m_points);
+}
diff --git a/demos/shared/hoverpoints.h b/demos/shared/hoverpoints.h
new file mode 100644
index 0000000..cf8742d
--- /dev/null
+++ b/demos/shared/hoverpoints.h
@@ -0,0 +1,160 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef HOVERPOINTS_H
+#define HOVERPOINTS_H
+
+#include <QtGui>
+
+QT_FORWARD_DECLARE_CLASS(QBypassWidget)
+
+class HoverPoints : public QObject
+{
+ Q_OBJECT
+public:
+ enum PointShape {
+ CircleShape,
+ RectangleShape
+ };
+
+ enum LockType {
+ LockToLeft = 0x01,
+ LockToRight = 0x02,
+ LockToTop = 0x04,
+ LockToBottom = 0x08
+ };
+
+ enum SortType {
+ NoSort,
+ XSort,
+ YSort
+ };
+
+ enum ConnectionType {
+ NoConnection,
+ LineConnection,
+ CurveConnection
+ };
+
+ HoverPoints(QWidget *widget, PointShape shape);
+
+ bool eventFilter(QObject *object, QEvent *event);
+
+ void paintPoints();
+
+ inline QRectF boundingRect() const;
+ void setBoundingRect(const QRectF &boundingRect) { m_bounds = boundingRect; }
+
+ QPolygonF points() const { return m_points; }
+ void setPoints(const QPolygonF &points);
+
+ QSizeF pointSize() const { return m_pointSize; }
+ void setPointSize(const QSizeF &size) { m_pointSize = size; }
+
+ SortType sortType() const { return m_sortType; }
+ void setSortType(SortType sortType) { m_sortType = sortType; }
+
+ ConnectionType connectionType() const { return m_connectionType; }
+ void setConnectionType(ConnectionType connectionType) { m_connectionType = connectionType; }
+
+ void setConnectionPen(const QPen &pen) { m_connectionPen = pen; }
+ void setShapePen(const QPen &pen) { m_pointPen = pen; }
+ void setShapeBrush(const QBrush &brush) { m_pointBrush = brush; }
+
+ void setPointLock(int pos, LockType lock) { m_locks[pos] = lock; }
+
+ void setEditable(bool editable) { m_editable = editable; }
+ bool editable() const { return m_editable; }
+
+public slots:
+ void setEnabled(bool enabled);
+ void setDisabled(bool disabled) { setEnabled(!disabled); }
+
+signals:
+ void pointsChanged(const QPolygonF &points);
+
+public:
+ void firePointChange();
+
+private:
+ inline QRectF pointBoundingRect(int i) const;
+ void movePoint(int i, const QPointF &newPos, bool emitChange = true);
+
+ QWidget *m_widget;
+
+ QPolygonF m_points;
+ QRectF m_bounds;
+ PointShape m_shape;
+ SortType m_sortType;
+ ConnectionType m_connectionType;
+
+ QVector<uint> m_locks;
+
+ QSizeF m_pointSize;
+ int m_currentIndex;
+ bool m_editable;
+ bool m_enabled;
+
+ QPen m_pointPen;
+ QBrush m_pointBrush;
+ QPen m_connectionPen;
+};
+
+
+inline QRectF HoverPoints::pointBoundingRect(int i) const
+{
+ QPointF p = m_points.at(i);
+ qreal w = m_pointSize.width();
+ qreal h = m_pointSize.height();
+ qreal x = p.x() - w / 2;
+ qreal y = p.y() - h / 2;
+ return QRectF(x, y, w, h);
+}
+
+inline QRectF HoverPoints::boundingRect() const
+{
+ if (m_bounds.isEmpty())
+ return m_widget->rect();
+ else
+ return m_bounds;
+}
+
+#endif // HOVERPOINTS_H
diff --git a/demos/shared/images/bg_pattern.png b/demos/shared/images/bg_pattern.png
new file mode 100644
index 0000000..ee67026
--- /dev/null
+++ b/demos/shared/images/bg_pattern.png
Binary files differ
diff --git a/demos/shared/images/button_normal_cap_left.png b/demos/shared/images/button_normal_cap_left.png
new file mode 100644
index 0000000..db31dd9
--- /dev/null
+++ b/demos/shared/images/button_normal_cap_left.png
Binary files differ
diff --git a/demos/shared/images/button_normal_cap_right.png b/demos/shared/images/button_normal_cap_right.png
new file mode 100644
index 0000000..38ead1c
--- /dev/null
+++ b/demos/shared/images/button_normal_cap_right.png
Binary files differ
diff --git a/demos/shared/images/button_normal_stretch.png b/demos/shared/images/button_normal_stretch.png
new file mode 100644
index 0000000..87abe67
--- /dev/null
+++ b/demos/shared/images/button_normal_stretch.png
Binary files differ
diff --git a/demos/shared/images/button_pressed_cap_left.png b/demos/shared/images/button_pressed_cap_left.png
new file mode 100644
index 0000000..66bfc13
--- /dev/null
+++ b/demos/shared/images/button_pressed_cap_left.png
Binary files differ
diff --git a/demos/shared/images/button_pressed_cap_right.png b/demos/shared/images/button_pressed_cap_right.png
new file mode 100644
index 0000000..3d4cfe2
--- /dev/null
+++ b/demos/shared/images/button_pressed_cap_right.png
Binary files differ
diff --git a/demos/shared/images/button_pressed_stretch.png b/demos/shared/images/button_pressed_stretch.png
new file mode 100644
index 0000000..4dd4ad1
--- /dev/null
+++ b/demos/shared/images/button_pressed_stretch.png
Binary files differ
diff --git a/demos/shared/images/curve_thing_edit-6.png b/demos/shared/images/curve_thing_edit-6.png
new file mode 100644
index 0000000..034b474
--- /dev/null
+++ b/demos/shared/images/curve_thing_edit-6.png
Binary files differ
diff --git a/demos/shared/images/frame_bottom.png b/demos/shared/images/frame_bottom.png
new file mode 100644
index 0000000..889b40d
--- /dev/null
+++ b/demos/shared/images/frame_bottom.png
Binary files differ
diff --git a/demos/shared/images/frame_bottomleft.png b/demos/shared/images/frame_bottomleft.png
new file mode 100644
index 0000000..0b3023f
--- /dev/null
+++ b/demos/shared/images/frame_bottomleft.png
Binary files differ
diff --git a/demos/shared/images/frame_bottomright.png b/demos/shared/images/frame_bottomright.png
new file mode 100644
index 0000000..0021e35
--- /dev/null
+++ b/demos/shared/images/frame_bottomright.png
Binary files differ
diff --git a/demos/shared/images/frame_left.png b/demos/shared/images/frame_left.png
new file mode 100644
index 0000000..40f331c
--- /dev/null
+++ b/demos/shared/images/frame_left.png
Binary files differ
diff --git a/demos/shared/images/frame_right.png b/demos/shared/images/frame_right.png
new file mode 100644
index 0000000..023af8c
--- /dev/null
+++ b/demos/shared/images/frame_right.png
Binary files differ
diff --git a/demos/shared/images/frame_top.png b/demos/shared/images/frame_top.png
new file mode 100644
index 0000000..001f3a7
--- /dev/null
+++ b/demos/shared/images/frame_top.png
Binary files differ
diff --git a/demos/shared/images/frame_topleft.png b/demos/shared/images/frame_topleft.png
new file mode 100644
index 0000000..58c68d4
--- /dev/null
+++ b/demos/shared/images/frame_topleft.png
Binary files differ
diff --git a/demos/shared/images/frame_topright.png b/demos/shared/images/frame_topright.png
new file mode 100644
index 0000000..6a7e8d3
--- /dev/null
+++ b/demos/shared/images/frame_topright.png
Binary files differ
diff --git a/demos/shared/images/groupframe_bottom_left.png b/demos/shared/images/groupframe_bottom_left.png
new file mode 100644
index 0000000..af2fe06
--- /dev/null
+++ b/demos/shared/images/groupframe_bottom_left.png
Binary files differ
diff --git a/demos/shared/images/groupframe_bottom_right.png b/demos/shared/images/groupframe_bottom_right.png
new file mode 100644
index 0000000..fdf2e97
--- /dev/null
+++ b/demos/shared/images/groupframe_bottom_right.png
Binary files differ
diff --git a/demos/shared/images/groupframe_bottom_stretch.png b/demos/shared/images/groupframe_bottom_stretch.png
new file mode 100644
index 0000000..f47b67d
--- /dev/null
+++ b/demos/shared/images/groupframe_bottom_stretch.png
Binary files differ
diff --git a/demos/shared/images/groupframe_left_stretch.png b/demos/shared/images/groupframe_left_stretch.png
new file mode 100644
index 0000000..c122f46
--- /dev/null
+++ b/demos/shared/images/groupframe_left_stretch.png
Binary files differ
diff --git a/demos/shared/images/groupframe_right_stretch.png b/demos/shared/images/groupframe_right_stretch.png
new file mode 100644
index 0000000..1056b78
--- /dev/null
+++ b/demos/shared/images/groupframe_right_stretch.png
Binary files differ
diff --git a/demos/shared/images/groupframe_top_stretch.png b/demos/shared/images/groupframe_top_stretch.png
new file mode 100644
index 0000000..5746ef9
--- /dev/null
+++ b/demos/shared/images/groupframe_top_stretch.png
Binary files differ
diff --git a/demos/shared/images/groupframe_topleft.png b/demos/shared/images/groupframe_topleft.png
new file mode 100644
index 0000000..98d9cd9
--- /dev/null
+++ b/demos/shared/images/groupframe_topleft.png
Binary files differ
diff --git a/demos/shared/images/groupframe_topright.png b/demos/shared/images/groupframe_topright.png
new file mode 100644
index 0000000..1a0a328
--- /dev/null
+++ b/demos/shared/images/groupframe_topright.png
Binary files differ
diff --git a/demos/shared/images/line_dash_dot.png b/demos/shared/images/line_dash_dot.png
new file mode 100644
index 0000000..1c61442
--- /dev/null
+++ b/demos/shared/images/line_dash_dot.png
Binary files differ
diff --git a/demos/shared/images/line_dash_dot_dot.png b/demos/shared/images/line_dash_dot_dot.png
new file mode 100644
index 0000000..0d9bb97
--- /dev/null
+++ b/demos/shared/images/line_dash_dot_dot.png
Binary files differ
diff --git a/demos/shared/images/line_dashed.png b/demos/shared/images/line_dashed.png
new file mode 100644
index 0000000..d5bc7ea
--- /dev/null
+++ b/demos/shared/images/line_dashed.png
Binary files differ
diff --git a/demos/shared/images/line_dotted.png b/demos/shared/images/line_dotted.png
new file mode 100644
index 0000000..a2f9a35
--- /dev/null
+++ b/demos/shared/images/line_dotted.png
Binary files differ
diff --git a/demos/shared/images/line_solid.png b/demos/shared/images/line_solid.png
new file mode 100644
index 0000000..60ef3f9
--- /dev/null
+++ b/demos/shared/images/line_solid.png
Binary files differ
diff --git a/demos/shared/images/radiobutton-off.png b/demos/shared/images/radiobutton-off.png
new file mode 100644
index 0000000..af1753a
--- /dev/null
+++ b/demos/shared/images/radiobutton-off.png
Binary files differ
diff --git a/demos/shared/images/radiobutton-on.png b/demos/shared/images/radiobutton-on.png
new file mode 100644
index 0000000..f875838
--- /dev/null
+++ b/demos/shared/images/radiobutton-on.png
Binary files differ
diff --git a/demos/shared/images/radiobutton_off.png b/demos/shared/images/radiobutton_off.png
new file mode 100644
index 0000000..400906e
--- /dev/null
+++ b/demos/shared/images/radiobutton_off.png
Binary files differ
diff --git a/demos/shared/images/radiobutton_on.png b/demos/shared/images/radiobutton_on.png
new file mode 100644
index 0000000..50a049e
--- /dev/null
+++ b/demos/shared/images/radiobutton_on.png
Binary files differ
diff --git a/demos/shared/images/slider_bar.png b/demos/shared/images/slider_bar.png
new file mode 100644
index 0000000..1b3d62c
--- /dev/null
+++ b/demos/shared/images/slider_bar.png
Binary files differ
diff --git a/demos/shared/images/slider_thumb_off.png b/demos/shared/images/slider_thumb_off.png
new file mode 100644
index 0000000..d7f141d
--- /dev/null
+++ b/demos/shared/images/slider_thumb_off.png
Binary files differ
diff --git a/demos/shared/images/slider_thumb_on.png b/demos/shared/images/slider_thumb_on.png
new file mode 100644
index 0000000..8e1f510
--- /dev/null
+++ b/demos/shared/images/slider_thumb_on.png
Binary files differ
diff --git a/demos/shared/images/title_cap_left.png b/demos/shared/images/title_cap_left.png
new file mode 100644
index 0000000..2d47507
--- /dev/null
+++ b/demos/shared/images/title_cap_left.png
Binary files differ
diff --git a/demos/shared/images/title_cap_right.png b/demos/shared/images/title_cap_right.png
new file mode 100644
index 0000000..dc3ff85
--- /dev/null
+++ b/demos/shared/images/title_cap_right.png
Binary files differ
diff --git a/demos/shared/images/title_stretch.png b/demos/shared/images/title_stretch.png
new file mode 100644
index 0000000..1104334
--- /dev/null
+++ b/demos/shared/images/title_stretch.png
Binary files differ
diff --git a/demos/shared/shared.pri b/demos/shared/shared.pri
new file mode 100644
index 0000000..b551595
--- /dev/null
+++ b/demos/shared/shared.pri
@@ -0,0 +1,20 @@
+INCLUDEPATH += $$SHARED_FOLDER
+
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+contains(CONFIG, debug_and_release_target) {
+ CONFIG(debug, debug|release) {
+ LIBS+=-L$$SHARED_FOLDER/debug
+ } else {
+ LIBS+=-L$$SHARED_FOLDER/release
+ }
+} else {
+ LIBS += -L$$SHARED_FOLDER
+}
+
+hpux-acc*:LIBS += $$SHARED_FOLDER/libdemo_shared.a
+hpuxi-acc*:LIBS += $$SHARED_FOLDER/libdemo_shared.a
+!hpuxi-acc*:!hpux-acc*:LIBS += -ldemo_shared
+
diff --git a/demos/shared/shared.pro b/demos/shared/shared.pro
new file mode 100644
index 0000000..cabce25
--- /dev/null
+++ b/demos/shared/shared.pro
@@ -0,0 +1,33 @@
+TEMPLATE = lib
+CONFIG += static
+
+contains(QT_CONFIG, opengl)|contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles2) {
+ DEFINES += QT_OPENGL_SUPPORT
+ QT += opengl
+}
+
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+TARGET = demo_shared
+
+SOURCES += \
+ arthurstyle.cpp\
+ arthurwidgets.cpp \
+ hoverpoints.cpp
+
+HEADERS += \
+ arthurstyle.h \
+ arthurwidgets.h \
+ hoverpoints.h
+
+RESOURCES += shared.qrc
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/shared
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.pri images
+sources.path = $$[QT_INSTALL_DEMOS]/shared
+INSTALLS += sources
+!cross_compile:INSTALLS += target
+
diff --git a/demos/shared/shared.qrc b/demos/shared/shared.qrc
new file mode 100644
index 0000000..17336ec
--- /dev/null
+++ b/demos/shared/shared.qrc
@@ -0,0 +1,39 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/res">
+ <file>images/button_normal_cap_left.png</file>
+ <file>images/button_normal_cap_right.png</file>
+ <file>images/button_normal_stretch.png</file>
+ <file>images/button_pressed_cap_left.png</file>
+ <file>images/button_pressed_cap_right.png</file>
+ <file>images/button_pressed_stretch.png</file>
+ <file>images/radiobutton-on.png</file>
+ <file>images/radiobutton_on.png</file>
+ <file>images/radiobutton_off.png</file>
+ <file>images/slider_bar.png</file>
+ <file>images/slider_thumb_on.png</file>
+ <file>images/groupframe_topleft.png</file>
+ <file>images/groupframe_topright.png</file>
+ <file>images/groupframe_bottom_left.png</file>
+ <file>images/groupframe_bottom_right.png</file>
+ <file>images/groupframe_top_stretch.png</file>
+ <file>images/groupframe_bottom_stretch.png</file>
+ <file>images/groupframe_left_stretch.png</file>
+ <file>images/groupframe_right_stretch.png</file>
+ <file>images/frame_topleft.png</file>
+ <file>images/frame_topright.png</file>
+ <file>images/frame_bottomleft.png</file>
+ <file>images/frame_bottomright.png</file>
+ <file>images/frame_left.png</file>
+ <file>images/frame_top.png</file>
+ <file>images/frame_right.png</file>
+ <file>images/frame_bottom.png</file>
+ <file>images/title_cap_left.png</file>
+ <file>images/title_cap_right.png</file>
+ <file>images/title_stretch.png</file>
+ <file>images/line_dash_dot.png</file>
+ <file>images/line_dotted.png</file>
+ <file>images/line_dashed.png</file>
+ <file>images/line_solid.png</file>
+ <file>images/line_dash_dot_dot.png</file>
+</qresource>
+</RCC>
diff --git a/demos/spreadsheet/images/interview.png b/demos/spreadsheet/images/interview.png
new file mode 100644
index 0000000..0c3d690
--- /dev/null
+++ b/demos/spreadsheet/images/interview.png
Binary files differ
diff --git a/demos/spreadsheet/main.cpp b/demos/spreadsheet/main.cpp
new file mode 100644
index 0000000..7a71641
--- /dev/null
+++ b/demos/spreadsheet/main.cpp
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui/QApplication>
+#include "spreadsheet.h"
+
+int main(int argc, char** argv) {
+ Q_INIT_RESOURCE(spreadsheet);
+ QApplication app(argc, argv);
+ SpreadSheet sheet(10, 6);
+ sheet.setWindowIcon(QPixmap(":/images/interview.png"));
+ sheet.resize(640, 420);
+ sheet.show();
+ return app.exec();
+}
+
+
diff --git a/demos/spreadsheet/printview.cpp b/demos/spreadsheet/printview.cpp
new file mode 100644
index 0000000..76c4ae8
--- /dev/null
+++ b/demos/spreadsheet/printview.cpp
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "printview.h"
+#include <QPrinter>
+#include <QStyleOptionViewItem>
+
+PrintView::PrintView()
+{
+ setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+}
+
+void PrintView::print(QPrinter *printer)
+{
+#ifndef QT_NO_PRINTER
+ resize(printer->width(), printer->height());
+ render(printer);
+#endif
+}
+
diff --git a/demos/spreadsheet/printview.h b/demos/spreadsheet/printview.h
new file mode 100644
index 0000000..3f2b918
--- /dev/null
+++ b/demos/spreadsheet/printview.h
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef PRINTVIEW_H
+#define PRINTVIEW_H
+
+#include <QTableView>
+
+class PrintView : public QTableView
+{
+ Q_OBJECT
+
+public:
+ PrintView();
+
+public Q_SLOTS:
+ void print(QPrinter *printer);
+};
+
+#endif // PRINTVIEW_H
+
+
diff --git a/demos/spreadsheet/spreadsheet.cpp b/demos/spreadsheet/spreadsheet.cpp
new file mode 100644
index 0000000..742855e
--- /dev/null
+++ b/demos/spreadsheet/spreadsheet.cpp
@@ -0,0 +1,631 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+#include "spreadsheet.h"
+#include "spreadsheetdelegate.h"
+#include "spreadsheetitem.h"
+#include "printview.h"
+
+SpreadSheet::SpreadSheet(int rows, int cols, QWidget *parent)
+ : QMainWindow(parent)
+{
+ addToolBar(toolBar = new QToolBar());
+ formulaInput = new QLineEdit();
+
+ cellLabel = new QLabel(toolBar);
+ cellLabel->setMinimumSize(80, 0);
+
+ toolBar->addWidget(cellLabel);
+ toolBar->addWidget(formulaInput);
+
+ table = new QTableWidget(rows, cols, this);
+ for (int c = 0; c < cols; ++c) {
+ QString character(QChar('A' + c));
+ table->setHorizontalHeaderItem(c, new QTableWidgetItem(character));
+ }
+
+ table->setItemPrototype(table->item(rows -1, cols - 1));
+ table->setItemDelegate(new SpreadSheetDelegate());
+
+ createActions();
+ updateColor(0);
+ setupMenuBar();
+ setupContents();
+ setCentralWidget(table);
+
+ statusBar();
+ connect(table, SIGNAL(currentItemChanged(QTableWidgetItem*, QTableWidgetItem*)),
+ this, SLOT(updateStatus(QTableWidgetItem*)));
+ connect(table, SIGNAL(currentItemChanged(QTableWidgetItem*, QTableWidgetItem*)),
+ this, SLOT(updateColor(QTableWidgetItem*)));
+ connect(table, SIGNAL(currentItemChanged(QTableWidgetItem*,QTableWidgetItem*)),
+ this, SLOT(updateLineEdit(QTableWidgetItem*)));
+ connect(table, SIGNAL(itemChanged(QTableWidgetItem*)),
+ this, SLOT(updateStatus(QTableWidgetItem*)));
+ connect(formulaInput, SIGNAL(returnPressed()), this, SLOT(returnPressed()));
+ connect(table, SIGNAL(itemChanged(QTableWidgetItem*)),
+ this, SLOT(updateLineEdit(QTableWidgetItem*)));
+
+ setWindowTitle(tr("Spreadsheet"));
+}
+
+void SpreadSheet::createActions()
+{
+ cell_sumAction = new QAction(tr("Sum"), this);
+ connect(cell_sumAction, SIGNAL(triggered()), this, SLOT(actionSum()));
+
+ cell_addAction = new QAction(tr("&Add"), this);
+ cell_addAction->setShortcut(Qt::CTRL | Qt::Key_Plus);
+ connect(cell_addAction, SIGNAL(triggered()), this, SLOT(actionAdd()));
+
+ cell_subAction = new QAction(tr("&Subtract"), this);
+ cell_subAction->setShortcut(Qt::CTRL | Qt::Key_Minus);
+ connect(cell_subAction, SIGNAL(triggered()), this, SLOT(actionSubtract()));
+
+ cell_mulAction = new QAction(tr("&Multiply"), this);
+ cell_mulAction->setShortcut(Qt::CTRL | Qt::Key_multiply);
+ connect(cell_mulAction, SIGNAL(triggered()), this, SLOT(actionMultiply()));
+
+ cell_divAction = new QAction(tr("&Divide"), this);
+ cell_divAction->setShortcut(Qt::CTRL | Qt::Key_division);
+ connect(cell_divAction, SIGNAL(triggered()), this, SLOT(actionDivide()));
+
+ fontAction = new QAction(tr("Font..."), this);
+ fontAction->setShortcut(Qt::CTRL | Qt::Key_F);
+ connect(fontAction, SIGNAL(triggered()), this, SLOT(selectFont()));
+
+ colorAction = new QAction(QPixmap(16, 16), tr("Background &Color..."), this);
+ connect(colorAction, SIGNAL(triggered()), this, SLOT(selectColor()));
+
+ clearAction = new QAction(tr("Clear"), this);
+ clearAction->setShortcut(Qt::Key_Delete);
+ connect(clearAction, SIGNAL(triggered()), this, SLOT(clear()));
+
+ aboutSpreadSheet = new QAction(tr("About Spreadsheet"), this);
+ connect(aboutSpreadSheet, SIGNAL(triggered()), this, SLOT(showAbout()));
+
+ exitAction = new QAction(tr("E&xit"), this);
+ connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
+
+ printAction = new QAction(tr("&Print"), this);
+ connect(printAction, SIGNAL(triggered()), this, SLOT(print()));
+
+ firstSeparator = new QAction(this);
+ firstSeparator->setSeparator(true);
+
+ secondSeparator = new QAction(this);
+ secondSeparator->setSeparator(true);
+}
+
+void SpreadSheet::setupMenuBar()
+{
+ QMenu *fileMenu = menuBar()->addMenu(tr("&File"));
+ fileMenu->addAction(printAction);
+ fileMenu->addAction(exitAction);
+
+ QMenu *cellMenu = menuBar()->addMenu(tr("&Cell"));
+ cellMenu->addAction(cell_addAction);
+ cellMenu->addAction(cell_subAction);
+ cellMenu->addAction(cell_mulAction);
+ cellMenu->addAction(cell_divAction);
+ cellMenu->addAction(cell_sumAction);
+ cellMenu->addSeparator();
+ cellMenu->addAction(colorAction);
+ cellMenu->addAction(fontAction);
+
+ menuBar()->addSeparator();
+
+ QMenu *aboutMenu = menuBar()->addMenu(tr("&Help"));
+ aboutMenu->addAction(aboutSpreadSheet);
+}
+
+void SpreadSheet::updateStatus(QTableWidgetItem *item)
+{
+ if (item && item == table->currentItem()) {
+ statusBar()->showMessage(item->data(Qt::StatusTipRole).toString(),
+ 1000);
+ cellLabel->setText(tr("Cell: (%1)").arg(encode_pos(table->row(item),
+ table->column(item))));
+ }
+}
+
+void SpreadSheet::updateColor(QTableWidgetItem *item)
+{
+ QPixmap pix(16, 16);
+ QColor col;
+ if (item)
+ col = item->backgroundColor();
+ if (!col.isValid())
+ col = palette().base().color();
+
+ QPainter pt(&pix);
+ pt.fillRect(0, 0, 16, 16, col);
+
+ QColor lighter = col.light();
+ pt.setPen(lighter);
+ QPoint lightFrame[] = { QPoint(0, 15), QPoint(0, 0), QPoint(15, 0) };
+ pt.drawPolyline(lightFrame, 3);
+
+ pt.setPen(col.dark());
+ QPoint darkFrame[] = { QPoint(1, 15), QPoint(15, 15), QPoint(15, 1) };
+ pt.drawPolyline(darkFrame, 3);
+
+ pt.end();
+
+ colorAction->setIcon(pix);
+}
+
+void SpreadSheet::updateLineEdit(QTableWidgetItem *item)
+{
+ if (item != table->currentItem())
+ return;
+ if (item)
+ formulaInput->setText(item->data(Qt::EditRole).toString());
+ else
+ formulaInput->clear();
+}
+
+void SpreadSheet::returnPressed()
+{
+ QString text = formulaInput->text();
+ int row = table->currentRow();
+ int col = table->currentColumn();
+ QTableWidgetItem *item = table->item(row, col);
+ if (!item)
+ table->setItem(row, col, new SpreadSheetItem(text));
+ else
+ item->setData(Qt::EditRole, text);
+ table->viewport()->update();
+}
+
+void SpreadSheet::selectColor()
+{
+ QTableWidgetItem *item = table->currentItem();
+ QColor col = item ? item->backgroundColor() : table->palette().base().color();
+ col = QColorDialog::getColor(col, this);
+ if (!col.isValid())
+ return;
+
+ QList<QTableWidgetItem*> selected = table->selectedItems();
+ if (selected.count() == 0)
+ return;
+
+ foreach(QTableWidgetItem *i, selected)
+ if (i)
+ i->setBackgroundColor(col);
+
+ updateColor(table->currentItem());
+}
+
+void SpreadSheet::selectFont()
+{
+ QList<QTableWidgetItem*> selected = table->selectedItems();
+ if (selected.count() == 0)
+ return;
+
+ bool ok = false;
+ QFont fnt = QFontDialog::getFont(&ok, font(), this);
+
+ if (!ok)
+ return;
+ foreach(QTableWidgetItem *i, selected)
+ if (i)
+ i->setFont(fnt);
+}
+
+bool SpreadSheet::runInputDialog(const QString &title,
+ const QString &c1Text,
+ const QString &c2Text,
+ const QString &opText,
+ const QString &outText,
+ QString *cell1, QString *cell2, QString *outCell)
+{
+ QStringList rows, cols;
+ for (int c = 0; c < table->columnCount(); ++c)
+ cols << QChar('A' + c);
+ for (int r = 0; r < table->rowCount(); ++r)
+ rows << QString::number(1 + r);
+
+ QDialog addDialog(this);
+ addDialog.setWindowTitle(title);
+
+ QGroupBox group(title, &addDialog);
+ group.setMinimumSize(250, 100);
+
+ QLabel cell1Label(c1Text, &group);
+ QComboBox cell1RowInput(&group);
+ int c1Row, c1Col;
+ decode_pos(*cell1, &c1Row, &c1Col);
+ cell1RowInput.addItems(rows);
+ cell1RowInput.setCurrentIndex(c1Row);
+
+ QComboBox cell1ColInput(&group);
+ cell1ColInput.addItems(cols);
+ cell1ColInput.setCurrentIndex(c1Col);
+
+ QLabel operatorLabel(opText, &group);
+ operatorLabel.setAlignment(Qt::AlignHCenter);
+
+ QLabel cell2Label(c2Text, &group);
+ QComboBox cell2RowInput(&group);
+ int c2Row, c2Col;
+ decode_pos(*cell2, &c2Row, &c2Col);
+ cell2RowInput.addItems(rows);
+ cell2RowInput.setCurrentIndex(c2Row);
+ QComboBox cell2ColInput(&group);
+ cell2ColInput.addItems(cols);
+ cell2ColInput.setCurrentIndex(c2Col);
+
+ QLabel equalsLabel("=", &group);
+ equalsLabel.setAlignment(Qt::AlignHCenter);
+
+ QLabel outLabel(outText, &group);
+ QComboBox outRowInput(&group);
+ int outRow, outCol;
+ decode_pos(*outCell, &outRow, &outCol);
+ outRowInput.addItems(rows);
+ outRowInput.setCurrentIndex(outRow);
+ QComboBox outColInput(&group);
+ outColInput.addItems(cols);
+ outColInput.setCurrentIndex(outCol);
+
+ QPushButton cancelButton(tr("Cancel"), &addDialog);
+ connect(&cancelButton, SIGNAL(clicked()), &addDialog, SLOT(reject()));
+
+ QPushButton okButton(tr("OK"), &addDialog);
+ okButton.setDefault(true);
+ connect(&okButton, SIGNAL(clicked()), &addDialog, SLOT(accept()));
+
+ QHBoxLayout *buttonsLayout = new QHBoxLayout;
+ buttonsLayout->addStretch(1);
+ buttonsLayout->addWidget(&okButton);
+ buttonsLayout->addSpacing(10);
+ buttonsLayout->addWidget(&cancelButton);
+
+ QVBoxLayout *dialogLayout = new QVBoxLayout(&addDialog);
+ dialogLayout->addWidget(&group);
+ dialogLayout->addStretch(1);
+ dialogLayout->addItem(buttonsLayout);
+
+ QHBoxLayout *cell1Layout = new QHBoxLayout;
+ cell1Layout->addWidget(&cell1Label);
+ cell1Layout->addSpacing(10);
+ cell1Layout->addWidget(&cell1ColInput);
+ cell1Layout->addSpacing(10);
+ cell1Layout->addWidget(&cell1RowInput);
+
+ QHBoxLayout *cell2Layout = new QHBoxLayout;
+ cell2Layout->addWidget(&cell2Label);
+ cell2Layout->addSpacing(10);
+ cell2Layout->addWidget(&cell2ColInput);
+ cell2Layout->addSpacing(10);
+ cell2Layout->addWidget(&cell2RowInput);
+
+ QHBoxLayout *outLayout = new QHBoxLayout;
+ outLayout->addWidget(&outLabel);
+ outLayout->addSpacing(10);
+ outLayout->addWidget(&outColInput);
+ outLayout->addSpacing(10);
+ outLayout->addWidget(&outRowInput);
+
+ QVBoxLayout *vLayout = new QVBoxLayout(&group);
+ vLayout->addItem(cell1Layout);
+ vLayout->addWidget(&operatorLabel);
+ vLayout->addItem(cell2Layout);
+ vLayout->addWidget(&equalsLabel);
+ vLayout->addStretch(1);
+ vLayout->addItem(outLayout);
+
+ if (addDialog.exec()) {
+ *cell1 = cell1ColInput.currentText() + cell1RowInput.currentText();
+ *cell2 = cell2ColInput.currentText() + cell2RowInput.currentText();
+ *outCell = outColInput.currentText() + outRowInput.currentText();
+ return true;
+ }
+
+ return false;
+}
+
+void SpreadSheet::actionSum()
+{
+ int row_first = 0;
+ int row_last = 0;
+ int row_cur = 0;
+
+ int col_first = 0;
+ int col_last = 0;
+ int col_cur = 0;
+
+ QList<QTableWidgetItem*> selected = table->selectedItems();
+
+ if (!selected.isEmpty()) {
+ QTableWidgetItem *first = selected.first();
+ QTableWidgetItem *last = selected.last();
+ row_first = table->row(first);
+ row_last = table->row(last);
+ col_first = table->column(first);
+ col_last = table->column(last);
+ }
+
+ QTableWidgetItem *current = table->currentItem();
+
+ if (current) {
+ row_cur = table->row(current);
+ col_cur = table->column(current);
+ }
+
+ QString cell1 = encode_pos(row_first, col_first);
+ QString cell2 = encode_pos(row_last, col_last);
+ QString out = encode_pos(row_cur, col_cur);
+
+ if (runInputDialog(tr("Sum cells"), tr("First cell:"), tr("Last cell:"),
+ QString("%1").arg(QChar(0x03a3)), tr("Output to:"),
+ &cell1, &cell2, &out)) {
+ int row, col;
+ decode_pos(out, &row, &col);
+ table->item(row, col)->setText(tr("sum %1 %2").arg(cell1, cell2));
+ }
+}
+
+void SpreadSheet::actionMath_helper(const QString &title, const QString &op)
+{
+ QString cell1 = "C1";
+ QString cell2 = "C2";
+ QString out = "C3";
+
+ QTableWidgetItem *current = table->currentItem();
+ if (current)
+ out = encode_pos(table->currentRow(), table->currentColumn());
+
+ if (runInputDialog(title, tr("Cell 1"), tr("Cell 2"), op, tr("Output to:"),
+ &cell1, &cell2, &out)) {
+ int row, col;
+ decode_pos(out, &row, &col);
+ table->item(row, col)->setText(tr("%1, %2, %3").arg(op, cell1, cell2));
+ }
+}
+
+void SpreadSheet::actionAdd()
+{
+ actionMath_helper(tr("Addition"), "+");
+}
+
+void SpreadSheet::actionSubtract()
+{
+ actionMath_helper(tr("Subtraction"), "-");
+}
+
+void SpreadSheet::actionMultiply()
+{
+ actionMath_helper(tr("Multiplication"), "*");
+}
+void SpreadSheet::actionDivide()
+{
+ actionMath_helper(tr("Division"), "/");
+}
+
+void SpreadSheet::clear()
+{
+ foreach (QTableWidgetItem *i, table->selectedItems())
+ i->setText("");
+}
+
+void SpreadSheet::setupContextMenu()
+{
+ addAction(cell_addAction);
+ addAction(cell_subAction);
+ addAction(cell_mulAction);
+ addAction(cell_divAction);
+ addAction(cell_sumAction);
+ addAction(firstSeparator);
+ addAction(colorAction);
+ addAction(fontAction);
+ addAction(secondSeparator);
+ addAction(clearAction);
+ setContextMenuPolicy(Qt::ActionsContextMenu);
+}
+
+void SpreadSheet::setupContents()
+{
+ QColor titleBackground(Qt::lightGray);
+ QFont titleFont = table->font();
+ titleFont.setBold(true);
+
+ // column 0
+ table->setItem(0, 0, new SpreadSheetItem("Item"));
+ table->item(0, 0)->setBackgroundColor(titleBackground);
+ table->item(0, 0)->setToolTip("This column shows the purchased item/service");
+ table->item(0, 0)->setFont(titleFont);
+
+ table->setItem(1, 0, new SpreadSheetItem("AirportBus"));
+ table->setItem(2, 0, new SpreadSheetItem("Flight (Munich)"));
+ table->setItem(3, 0, new SpreadSheetItem("Lunch"));
+ table->setItem(4, 0, new SpreadSheetItem("Flight (LA)"));
+ table->setItem(5, 0, new SpreadSheetItem("Taxi"));
+ table->setItem(6, 0, new SpreadSheetItem("Diinner"));
+ table->setItem(7, 0, new SpreadSheetItem("Hotel"));
+ table->setItem(8, 0, new SpreadSheetItem("Flight (Oslo)"));
+ table->setItem(9, 0, new SpreadSheetItem("Total:"));
+
+ table->item(9, 0)->setFont(titleFont);
+ table->item(9, 0)->setBackgroundColor(Qt::lightGray);
+
+ // column 1
+ table->setItem(0, 1, new SpreadSheetItem("Date"));
+ table->item(0, 1)->setBackgroundColor(titleBackground);
+ table->item(0, 1)->setToolTip("This column shows the purchase date, double click to change");
+ table->item(0, 1)->setFont(titleFont);
+
+ table->setItem(1, 1, new SpreadSheetItem("15/6/2006"));
+ table->setItem(2, 1, new SpreadSheetItem("15/6/2006"));
+ table->setItem(3, 1, new SpreadSheetItem("15/6/2006"));
+ table->setItem(4, 1, new SpreadSheetItem("21/5/2006"));
+ table->setItem(5, 1, new SpreadSheetItem("16/6/2006"));
+ table->setItem(6, 1, new SpreadSheetItem("16/6/2006"));
+ table->setItem(7, 1, new SpreadSheetItem("16/6/2006"));
+ table->setItem(8, 1, new SpreadSheetItem("18/6/2006"));
+
+ table->setItem(9, 1, new SpreadSheetItem());
+ table->item(9, 1)->setBackgroundColor(Qt::lightGray);
+
+ // column 2
+ table->setItem(0, 2, new SpreadSheetItem("Price"));
+ table->item(0, 2)->setBackgroundColor(titleBackground);
+ table->item(0, 2)->setToolTip("This collumn shows the price of the purchase");
+ table->item(0, 2)->setFont(titleFont);
+
+ table->setItem(1, 2, new SpreadSheetItem("150"));
+ table->setItem(2, 2, new SpreadSheetItem("2350"));
+ table->setItem(3, 2, new SpreadSheetItem("-14"));
+ table->setItem(4, 2, new SpreadSheetItem("980"));
+ table->setItem(5, 2, new SpreadSheetItem("5"));
+ table->setItem(6, 2, new SpreadSheetItem("120"));
+ table->setItem(7, 2, new SpreadSheetItem("300"));
+ table->setItem(8, 2, new SpreadSheetItem("1240"));
+
+ table->setItem(9, 2, new SpreadSheetItem());
+
+ // column 3
+ table->setItem(0, 3, new SpreadSheetItem("Currency"));
+ table->item(0, 3)->setBackgroundColor(titleBackground);
+ table->item(0, 3)->setToolTip("This column shows the currency");
+ table->item(0, 3)->setFont(titleFont);
+
+ table->setItem(1, 3, new SpreadSheetItem("NOK"));
+ table->setItem(2, 3, new SpreadSheetItem("NOK"));
+ table->setItem(3, 3, new SpreadSheetItem("EUR"));
+ table->setItem(4, 3, new SpreadSheetItem("EUR"));
+ table->setItem(5, 3, new SpreadSheetItem("USD"));
+ table->setItem(6, 3, new SpreadSheetItem("USD"));
+ table->setItem(7, 3, new SpreadSheetItem("USD"));
+ table->setItem(8, 3, new SpreadSheetItem("USD"));
+
+ table->setItem(9, 3, new SpreadSheetItem());
+ table->item(9,3)->setBackgroundColor(Qt::lightGray);
+
+ // column 4
+ table->setItem(0, 4, new SpreadSheetItem("Ex. Rate"));
+ table->item(0, 4)->setBackgroundColor(titleBackground);
+ table->item(0, 4)->setToolTip("This column shows the exchange rate to NOK");
+ table->item(0, 4)->setFont(titleFont);
+
+ table->setItem(1, 4, new SpreadSheetItem("1"));
+ table->setItem(2, 4, new SpreadSheetItem("1"));
+ table->setItem(3, 4, new SpreadSheetItem("8"));
+ table->setItem(4, 4, new SpreadSheetItem("8"));
+ table->setItem(5, 4, new SpreadSheetItem("7"));
+ table->setItem(6, 4, new SpreadSheetItem("7"));
+ table->setItem(7, 4, new SpreadSheetItem("7"));
+ table->setItem(8, 4, new SpreadSheetItem("7"));
+
+ table->setItem(9, 4, new SpreadSheetItem());
+ table->item(9,4)->setBackgroundColor(Qt::lightGray);
+
+ // column 5
+ table->setItem(0, 5, new SpreadSheetItem("NOK"));
+ table->item(0, 5)->setBackgroundColor(titleBackground);
+ table->item(0, 5)->setToolTip("This column shows the expenses in NOK");
+ table->item(0, 5)->setFont(titleFont);
+
+ table->setItem(1, 5, new SpreadSheetItem("* C2 E2"));
+ table->setItem(2, 5, new SpreadSheetItem("* C3 E3"));
+ table->setItem(3, 5, new SpreadSheetItem("* C4 E4"));
+ table->setItem(4, 5, new SpreadSheetItem("* C5 E5"));
+ table->setItem(5, 5, new SpreadSheetItem("* C6 E6"));
+ table->setItem(6, 5, new SpreadSheetItem("* C7 E7"));
+ table->setItem(7, 5, new SpreadSheetItem("* C8 E8"));
+ table->setItem(8, 5, new SpreadSheetItem("* C9 E9"));
+
+ table->setItem(9, 5, new SpreadSheetItem("sum F2 F9"));
+ table->item(9,5)->setBackgroundColor(Qt::lightGray);
+}
+
+const char *htmlText =
+"<HTML>"
+"<p><b>This demo shows use of <c>QTableWidget</c> with custom handling for"
+" individual cells.</b></p>"
+"<p>Using a customized table item we make it possible to have dynamic"
+" output in different cells. The content that is implemented for this"
+" particular demo is:"
+"<ul>"
+"<li>Adding two cells.</li>"
+"<li>Subtracting one cell from another.</li>"
+"<li>Multiplying two cells.</li>"
+"<li>Dividing one cell with another.</li>"
+"<li>Summing the contents of an arbitrary number of cells.</li>"
+"</HTML>";
+
+void SpreadSheet::showAbout()
+{
+ QMessageBox::about(this, "About Spreadsheet", htmlText);
+}
+
+void decode_pos(const QString &pos, int *row, int *col)
+{
+ if (pos.isEmpty()) {
+ *col = -1;
+ *row = -1;
+ } else {
+ *col = pos.at(0).toLatin1() - 'A';
+ *row = pos.right(pos.size() - 1).toInt() - 1;
+ }
+}
+
+QString encode_pos(int row, int col)
+{
+ return QString(col + 'A') + QString::number(row + 1);
+}
+
+
+void SpreadSheet::print()
+{
+#ifndef QT_NO_PRINTER
+ QPrinter printer(QPrinter::ScreenResolution);
+ QPrintPreviewDialog dlg(&printer);
+ PrintView view;
+ view.setModel(table->model());
+ connect(&dlg, SIGNAL(paintRequested(QPrinter *)),
+ &view, SLOT(print(QPrinter *)));
+ dlg.exec();
+#endif
+}
+
diff --git a/demos/spreadsheet/spreadsheet.h b/demos/spreadsheet/spreadsheet.h
new file mode 100644
index 0000000..944433d
--- /dev/null
+++ b/demos/spreadsheet/spreadsheet.h
@@ -0,0 +1,124 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SPREADSHEET_H
+#define SPREADSHEET_H
+
+#include <QMainWindow>
+
+QT_BEGIN_NAMESPACE
+class QAction;
+class QLabel;
+class QLineEdit;
+class QToolBar;
+class QTableWidgetItem;
+class QTableWidget;
+QT_END_NAMESPACE
+
+class SpreadSheet : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+
+ SpreadSheet(int rows, int cols, QWidget *parent = 0);
+
+public slots:
+ void updateStatus(QTableWidgetItem *item);
+ void updateColor(QTableWidgetItem *item);
+ void updateLineEdit(QTableWidgetItem *item);
+ void returnPressed();
+ void selectColor();
+ void selectFont();
+ void clear();
+ void showAbout();
+
+ void print();
+
+ void actionSum();
+ void actionSubtract();
+ void actionAdd();
+ void actionMultiply();
+ void actionDivide();
+
+protected:
+ void setupContextMenu();
+ void setupContents();
+
+ void setupMenuBar();
+ void createActions();
+
+ void actionMath_helper(const QString &title, const QString &op);
+ bool runInputDialog(const QString &title,
+ const QString &c1Text,
+ const QString &c2Text,
+ const QString &opText,
+ const QString &outText,
+ QString *cell1, QString *cell2, QString *outCell);
+private:
+ QToolBar *toolBar;
+ QAction *colorAction;
+ QAction *fontAction;
+ QAction *firstSeparator;
+ QAction *cell_sumAction;
+ QAction *cell_addAction;
+ QAction *cell_subAction;
+ QAction *cell_mulAction;
+ QAction *cell_divAction;
+ QAction *secondSeparator;
+ QAction *clearAction;
+ QAction *aboutSpreadSheet;
+ QAction *exitAction;
+
+ QAction *printAction;
+
+ QLabel *cellLabel;
+ QTableWidget *table;
+ QLineEdit *formulaInput;
+
+};
+
+void decode_pos(const QString &pos, int *row, int *col);
+QString encode_pos(int row, int col);
+
+
+#endif // SPREADSHEET_H
+
diff --git a/demos/spreadsheet/spreadsheet.pro b/demos/spreadsheet/spreadsheet.pro
new file mode 100644
index 0000000..b62f244
--- /dev/null
+++ b/demos/spreadsheet/spreadsheet.pro
@@ -0,0 +1,33 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Thu Mar 5 14:39:33 2009
+######################################################################
+
+TEMPLATE = app
+TARGET =
+DEPENDPATH += .
+INCLUDEPATH += .
+
+CONFIG += qt warn_on
+#unix:contains(QT_CONFIG, dbus):QT += dbus
+
+# Input
+HEADERS += printview.h spreadsheet.h spreadsheetdelegate.h spreadsheetitem.h
+SOURCES += main.cpp \
+ printview.cpp \
+ spreadsheet.cpp \
+ spreadsheetdelegate.cpp \
+ spreadsheetitem.cpp
+RESOURCES += spreadsheet.qrc
+
+
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/spreadsheet
+sources.files = $$SOURCES $$RESOURCES *.pro images
+sources.path = $$[QT_INSTALL_DEMOS]/spreadsheet
+INSTALLS += target sources
+
diff --git a/demos/spreadsheet/spreadsheet.qrc b/demos/spreadsheet/spreadsheet.qrc
new file mode 100644
index 0000000..13f496d
--- /dev/null
+++ b/demos/spreadsheet/spreadsheet.qrc
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/">
+ <file>images/interview.png</file>
+</qresource>
+</RCC>
diff --git a/demos/spreadsheet/spreadsheetdelegate.cpp b/demos/spreadsheet/spreadsheetdelegate.cpp
new file mode 100644
index 0000000..465c92f
--- /dev/null
+++ b/demos/spreadsheet/spreadsheetdelegate.cpp
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "spreadsheetdelegate.h"
+#include <QtGui>
+
+SpreadSheetDelegate::SpreadSheetDelegate(QObject *parent)
+ : QItemDelegate(parent) {}
+
+QWidget *SpreadSheetDelegate::createEditor(QWidget *parent,
+ const QStyleOptionViewItem &,
+ const QModelIndex &index) const
+{
+ if (index.column() == 1) {
+ QDateTimeEdit *editor = new QDateTimeEdit(parent);
+ editor->setDisplayFormat("dd/M/yyy");
+ editor->setCalendarPopup(true);
+ return editor;
+ }
+
+ QLineEdit *editor = new QLineEdit(parent);
+
+ // create a completer with the strings in the column as model
+ QStringList allStrings;
+ for (int i = 1; i<index.model()->rowCount(); i++) {
+ QString strItem(index.model()->data(index.sibling(i, index.column()),
+ Qt::EditRole).toString());
+
+ if (!allStrings.contains(strItem))
+ allStrings.append(strItem);
+ }
+
+ QCompleter *autoComplete = new QCompleter(allStrings);
+ editor->setCompleter(autoComplete);
+ connect(editor, SIGNAL(editingFinished()),
+ this, SLOT(commitAndCloseEditor()));
+ return editor;
+}
+
+void SpreadSheetDelegate::commitAndCloseEditor()
+{
+ QLineEdit *editor = qobject_cast<QLineEdit *>(sender());
+ emit commitData(editor);
+ emit closeEditor(editor);
+}
+
+void SpreadSheetDelegate::setEditorData(QWidget *editor,
+ const QModelIndex &index) const
+{
+ QLineEdit *edit = qobject_cast<QLineEdit*>(editor);
+ if (edit) {
+ edit->setText(index.model()->data(index, Qt::EditRole).toString());
+ } else {
+ QDateTimeEdit *dateEditor = qobject_cast<QDateTimeEdit *>(editor);
+ if (dateEditor) {
+ dateEditor->setDate(QDate::fromString(
+ index.model()->data(index, Qt::EditRole).toString(),
+ "d/M/yy"));
+ }
+ }
+}
+
+void SpreadSheetDelegate::setModelData(QWidget *editor,
+ QAbstractItemModel *model, const QModelIndex &index) const
+{
+ QLineEdit *edit = qobject_cast<QLineEdit *>(editor);
+ if (edit) {
+ model->setData(index, edit->text());
+ } else {
+ QDateTimeEdit *dateEditor = qobject_cast<QDateTimeEdit *>(editor);
+ if (dateEditor) {
+ model->setData(index, dateEditor->date().toString("dd/M/yyy"));
+ }
+ }
+}
+
diff --git a/demos/spreadsheet/spreadsheetdelegate.h b/demos/spreadsheet/spreadsheetdelegate.h
new file mode 100644
index 0000000..3b7b9ac
--- /dev/null
+++ b/demos/spreadsheet/spreadsheetdelegate.h
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SPREADSHEETDELEGATE_H
+#define SPREADSHEETDELEGATE_H
+
+#include <QItemDelegate>
+#include "spreadsheet.h"
+
+class SpreadSheetDelegate : public QItemDelegate
+{
+ Q_OBJECT
+
+public:
+ SpreadSheetDelegate(QObject *parent = 0);
+ QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &,
+ const QModelIndex &index) const;
+ void setEditorData(QWidget *editor, const QModelIndex &index) const;
+ void setModelData(QWidget *editor, QAbstractItemModel *model,
+ const QModelIndex &index) const;
+
+private slots:
+ void commitAndCloseEditor();
+};
+
+#endif // SPREADSHEETDELEGATE_H
+
diff --git a/demos/spreadsheet/spreadsheetitem.cpp b/demos/spreadsheet/spreadsheetitem.cpp
new file mode 100644
index 0000000..8f94b87
--- /dev/null
+++ b/demos/spreadsheet/spreadsheetitem.cpp
@@ -0,0 +1,167 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "spreadsheetitem.h"
+
+SpreadSheetItem::SpreadSheetItem()
+ : QTableWidgetItem(), isResolving(false)
+{
+}
+
+SpreadSheetItem::SpreadSheetItem(const QString &text)
+ : QTableWidgetItem(text), isResolving(false)
+{
+}
+
+QTableWidgetItem *SpreadSheetItem::clone() const
+{
+ SpreadSheetItem *item = new SpreadSheetItem();
+ *item = *this;
+ return item;
+}
+
+QVariant SpreadSheetItem::data(int role) const
+{
+ if (role == Qt::EditRole || role == Qt::StatusTipRole)
+ return formula();
+
+ if (role == Qt::DisplayRole)
+ return display();
+
+ QString t = display().toString();
+ bool isNumber = false;
+ int number = t.toInt(&isNumber);
+
+ if (role == Qt::TextColorRole) {
+ if (!isNumber)
+ return qVariantFromValue(QColor(Qt::black));
+ else if (number < 0)
+ return qVariantFromValue(QColor(Qt::red));
+ return qVariantFromValue(QColor(Qt::blue));
+ }
+
+ if (role == Qt::TextAlignmentRole)
+ if (!t.isEmpty() && (t.at(0).isNumber() || t.at(0) == '-'))
+ return (int)(Qt::AlignRight | Qt::AlignVCenter);
+
+ return QTableWidgetItem::data(role);
+ }
+
+void SpreadSheetItem::setData(int role, const QVariant &value)
+{
+ QTableWidgetItem::setData(role, value);
+ if (tableWidget())
+ tableWidget()->viewport()->update();
+}
+
+QVariant SpreadSheetItem::display() const
+{
+ // avoid circular dependencies
+ if (isResolving)
+ return QVariant();
+
+ isResolving = true;
+ QVariant result = computeFormula(formula(), tableWidget(), this);
+ isResolving = false;
+ return result;
+}
+
+QVariant SpreadSheetItem::computeFormula(const QString &formula,
+ const QTableWidget *widget,
+ const QTableWidgetItem *self)
+{
+ // check if the s tring is actually a formula or not
+ QStringList list = formula.split(' ');
+ if (list.isEmpty() || !widget)
+ return formula; // it is a normal string
+
+ QString op = list.value(0).toLower();
+
+ int firstRow = -1;
+ int firstCol = -1;
+ int secondRow = -1;
+ int secondCol = -1;
+
+ if (list.count() > 1)
+ decode_pos(list.value(1), &firstRow, &firstCol);
+
+ if (list.count() > 2)
+ decode_pos(list.value(2), &secondRow, &secondCol);
+
+ const QTableWidgetItem *start = widget->item(firstRow, firstCol);
+ const QTableWidgetItem *end = widget->item(secondRow, secondCol);
+
+ int firstVal = start ? start->text().toInt() : 0;
+ int secondVal = end ? end->text().toInt() : 0;
+
+ QVariant result;
+ if (op == "sum") {
+ int sum = 0;
+ for (int r = firstRow; r <= secondRow; ++r) {
+ for (int c = firstCol; c <= secondCol; ++c) {
+ const QTableWidgetItem *tableItem = widget->item(r, c);
+ if (tableItem && tableItem != self)
+ sum += tableItem->text().toInt();
+ }
+ }
+
+ result = sum;
+ } else if (op == "+") {
+ result = (firstVal + secondVal);
+ } else if (op == "-") {
+ result = (firstVal - secondVal);
+ } else if (op == "*") {
+ result = (firstVal * secondVal);
+ } else if (op == "/") {
+ if (secondVal == 0)
+ result = QString("nan");
+ else
+ result = (firstVal / secondVal);
+ } else if (op == "=") {
+ if (start)
+ result = start->text();
+ } else {
+ result = formula;
+ }
+
+ return result;
+}
+
diff --git a/demos/spreadsheet/spreadsheetitem.h b/demos/spreadsheet/spreadsheetitem.h
new file mode 100644
index 0000000..5996d73
--- /dev/null
+++ b/demos/spreadsheet/spreadsheetitem.h
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SPREADSHEETITEM_H
+#define SPREADSHEETITEM_H
+
+#include <QTableWidgetItem>
+#include <QtGui>
+#include "spreadsheet.h"
+
+class SpreadSheetItem : public QTableWidgetItem
+{
+public:
+ SpreadSheetItem();
+ SpreadSheetItem(const QString &text);
+
+ QTableWidgetItem *clone() const;
+
+ QVariant data(int role) const;
+ void setData(int role, const QVariant &value);
+ QVariant display() const;
+
+ inline QString formula() const
+ { return QTableWidgetItem::data(Qt::DisplayRole).toString(); }
+
+ static QVariant computeFormula(const QString &formula,
+ const QTableWidget *widget,
+ const QTableWidgetItem *self = 0);
+
+private:
+ mutable bool isResolving;
+};
+
+#endif // SPREADSHEETITEM_H
+
diff --git a/demos/sqlbrowser/browser.cpp b/demos/sqlbrowser/browser.cpp
new file mode 100644
index 0000000..f7b24db
--- /dev/null
+++ b/demos/sqlbrowser/browser.cpp
@@ -0,0 +1,247 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "browser.h"
+#include "qsqlconnectiondialog.h"
+
+#include <QtGui>
+#include <QtSql>
+
+Browser::Browser(QWidget *parent)
+ : QWidget(parent)
+{
+ setupUi(this);
+
+ table->addAction(insertRowAction);
+ table->addAction(deleteRowAction);
+
+ if (QSqlDatabase::drivers().isEmpty())
+ QMessageBox::information(this, tr("No database drivers found"),
+ tr("This demo requires at least one Qt database driver. "
+ "Please check the documentation how to build the "
+ "Qt SQL plugins."));
+
+ emit statusMessage(tr("Ready."));
+}
+
+Browser::~Browser()
+{
+}
+
+void Browser::exec()
+{
+ QSqlQueryModel *model = new QSqlQueryModel(table);
+ model->setQuery(QSqlQuery(sqlEdit->toPlainText(), connectionWidget->currentDatabase()));
+ table->setModel(model);
+
+ if (model->lastError().type() != QSqlError::NoError)
+ emit statusMessage(model->lastError().text());
+ else if (model->query().isSelect())
+ emit statusMessage(tr("Query OK."));
+ else
+ emit statusMessage(tr("Query OK, number of affected rows: %1").arg(
+ model->query().numRowsAffected()));
+
+ updateActions();
+}
+
+QSqlError Browser::addConnection(const QString &driver, const QString &dbName, const QString &host,
+ const QString &user, const QString &passwd, int port)
+{
+ static int cCount = 0;
+
+ QSqlError err;
+ QSqlDatabase db = QSqlDatabase::addDatabase(driver, QString("Browser%1").arg(++cCount));
+ db.setDatabaseName(dbName);
+ db.setHostName(host);
+ db.setPort(port);
+ if (!db.open(user, passwd)) {
+ err = db.lastError();
+ db = QSqlDatabase();
+ QSqlDatabase::removeDatabase(QString("Browser%1").arg(cCount));
+ }
+ connectionWidget->refresh();
+
+ return err;
+}
+
+void Browser::addConnection()
+{
+ QSqlConnectionDialog dialog(this);
+ if (dialog.exec() != QDialog::Accepted)
+ return;
+
+ if (dialog.useInMemoryDatabase()) {
+ QSqlDatabase::database("in_mem_db", false).close();
+ QSqlDatabase::removeDatabase("in_mem_db");
+ QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "in_mem_db");
+ db.setDatabaseName(":memory:");
+ if (!db.open())
+ QMessageBox::warning(this, tr("Unable to open database"), tr("An error occurred while "
+ "opening the connection: ") + db.lastError().text());
+ QSqlQuery q("", db);
+ q.exec("drop table Movies");
+ q.exec("drop table Names");
+ q.exec("create table Movies (id integer primary key, Title varchar, Director varchar, Rating number)");
+ q.exec("insert into Movies values (0, 'Metropolis', 'Fritz Lang', '8.4')");
+ q.exec("insert into Movies values (1, 'Nosferatu, eine Symphonie des Grauens', 'F.W. Murnau', '8.1')");
+ q.exec("insert into Movies values (2, 'Bis ans Ende der Welt', 'Wim Wenders', '6.5')");
+ q.exec("insert into Movies values (3, 'Hardware', 'Richard Stanley', '5.2')");
+ q.exec("insert into Movies values (4, 'Mitchell', 'Andrew V. McLaglen', '2.1')");
+ q.exec("create table Names (id integer primary key, Firstname varchar, Lastname varchar, City varchar)");
+ q.exec("insert into Names values (0, 'Sala', 'Palmer', 'Morristown')");
+ q.exec("insert into Names values (1, 'Christopher', 'Walker', 'Morristown')");
+ q.exec("insert into Names values (2, 'Donald', 'Duck', 'Andeby')");
+ q.exec("insert into Names values (3, 'Buck', 'Rogers', 'Paris')");
+ q.exec("insert into Names values (4, 'Sherlock', 'Holmes', 'London')");
+ connectionWidget->refresh();
+ } else {
+ QSqlError err = addConnection(dialog.driverName(), dialog.databaseName(), dialog.hostName(),
+ dialog.userName(), dialog.password(), dialog.port());
+ if (err.type() != QSqlError::NoError)
+ QMessageBox::warning(this, tr("Unable to open database"), tr("An error occurred while "
+ "opening the connection: ") + err.text());
+ }
+}
+
+void Browser::showTable(const QString &t)
+{
+ QSqlTableModel *model = new QSqlTableModel(table, connectionWidget->currentDatabase());
+ model->setEditStrategy(QSqlTableModel::OnRowChange);
+ model->setTable(t);
+ model->select();
+ if (model->lastError().type() != QSqlError::NoError)
+ emit statusMessage(model->lastError().text());
+ table->setModel(model);
+ table->setEditTriggers(QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed);
+
+ connect(table->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),
+ this, SLOT(currentChanged()));
+ updateActions();
+}
+
+void Browser::showMetaData(const QString &t)
+{
+ QSqlRecord rec = connectionWidget->currentDatabase().record(t);
+ QStandardItemModel *model = new QStandardItemModel(table);
+
+ model->insertRows(0, rec.count());
+ model->insertColumns(0, 7);
+
+ model->setHeaderData(0, Qt::Horizontal, "Fieldname");
+ model->setHeaderData(1, Qt::Horizontal, "Type");
+ model->setHeaderData(2, Qt::Horizontal, "Length");
+ model->setHeaderData(3, Qt::Horizontal, "Precision");
+ model->setHeaderData(4, Qt::Horizontal, "Required");
+ model->setHeaderData(5, Qt::Horizontal, "AutoValue");
+ model->setHeaderData(6, Qt::Horizontal, "DefaultValue");
+
+
+ for (int i = 0; i < rec.count(); ++i) {
+ QSqlField fld = rec.field(i);
+ model->setData(model->index(i, 0), fld.name());
+ model->setData(model->index(i, 1), fld.typeID() == -1
+ ? QString(QVariant::typeToName(fld.type()))
+ : QString("%1 (%2)").arg(QVariant::typeToName(fld.type())).arg(fld.typeID()));
+ model->setData(model->index(i, 2), fld.length());
+ model->setData(model->index(i, 3), fld.precision());
+ model->setData(model->index(i, 4), fld.requiredStatus() == -1 ? QVariant("?")
+ : QVariant(bool(fld.requiredStatus())));
+ model->setData(model->index(i, 5), fld.isAutoValue());
+ model->setData(model->index(i, 6), fld.defaultValue());
+ }
+
+ table->setModel(model);
+ table->setEditTriggers(QAbstractItemView::NoEditTriggers);
+
+ updateActions();
+}
+
+void Browser::insertRow()
+{
+ QSqlTableModel *model = qobject_cast<QSqlTableModel *>(table->model());
+ if (!model)
+ return;
+
+ QModelIndex insertIndex = table->currentIndex();
+ int row = insertIndex.row() == -1 ? 0 : insertIndex.row();
+ model->insertRow(row);
+ insertIndex = model->index(row, 0);
+ table->setCurrentIndex(insertIndex);
+ table->edit(insertIndex);
+}
+
+void Browser::deleteRow()
+{
+ QSqlTableModel *model = qobject_cast<QSqlTableModel *>(table->model());
+ if (!model)
+ return;
+
+ model->setEditStrategy(QSqlTableModel::OnManualSubmit);
+
+ QModelIndexList currentSelection = table->selectionModel()->selectedIndexes();
+ for (int i = 0; i < currentSelection.count(); ++i) {
+ if (currentSelection.at(i).column() != 0)
+ continue;
+ model->removeRow(currentSelection.at(i).row());
+ }
+
+ model->submitAll();
+ model->setEditStrategy(QSqlTableModel::OnRowChange);
+
+ updateActions();
+}
+
+void Browser::updateActions()
+{
+ bool enableIns = qobject_cast<QSqlTableModel *>(table->model());
+ bool enableDel = enableIns && table->currentIndex().isValid();
+
+ insertRowAction->setEnabled(enableIns);
+ deleteRowAction->setEnabled(enableDel);
+}
+
+void Browser::about()
+{
+ QMessageBox::about(this, tr("About"), tr("The SQL Browser demonstration "
+ "show how a data browser can be used to visualize the results of SQL"
+ "statements on a live database"));
+}
diff --git a/demos/sqlbrowser/browser.h b/demos/sqlbrowser/browser.h
new file mode 100644
index 0000000..787675b
--- /dev/null
+++ b/demos/sqlbrowser/browser.h
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef BROWSER_H
+#define BROWSER_H
+
+#include <QWidget>
+#include "ui_browserwidget.h"
+
+class ConnectionWidget;
+QT_FORWARD_DECLARE_CLASS(QTableView)
+QT_FORWARD_DECLARE_CLASS(QPushButton)
+QT_FORWARD_DECLARE_CLASS(QTextEdit)
+QT_FORWARD_DECLARE_CLASS(QSqlError)
+
+class Browser: public QWidget, private Ui::Browser
+{
+ Q_OBJECT
+public:
+ Browser(QWidget *parent = 0);
+ virtual ~Browser();
+
+ QSqlError addConnection(const QString &driver, const QString &dbName, const QString &host,
+ const QString &user, const QString &passwd, int port = -1);
+
+ void insertRow();
+ void deleteRow();
+ void updateActions();
+
+public slots:
+ void exec();
+ void showTable(const QString &table);
+ void showMetaData(const QString &table);
+ void addConnection();
+ void currentChanged() { updateActions(); }
+ void about();
+
+ void on_insertRowAction_triggered()
+ { insertRow(); }
+ void on_deleteRowAction_triggered()
+ { deleteRow(); }
+ void on_connectionWidget_tableActivated(const QString &table)
+ { showTable(table); }
+ void on_connectionWidget_metaDataRequested(const QString &table)
+ { showMetaData(table); }
+ void on_submitButton_clicked()
+ {
+ exec();
+ sqlEdit->setFocus();
+ }
+ void on_clearButton_clicked()
+ {
+ sqlEdit->clear();
+ sqlEdit->setFocus();
+ }
+
+signals:
+ void statusMessage(const QString &message);
+};
+
+#endif
diff --git a/demos/sqlbrowser/browserwidget.ui b/demos/sqlbrowser/browserwidget.ui
new file mode 100644
index 0000000..20946f0
--- /dev/null
+++ b/demos/sqlbrowser/browserwidget.ui
@@ -0,0 +1,199 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>Browser</class>
+ <widget class="QWidget" name="Browser" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>765</width>
+ <height>515</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Qt SQL Browser</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>8</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QSplitter" name="splitter_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="ConnectionWidget" name="connectionWidget" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>13</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QTableView" name="table" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>2</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="contextMenuPolicy" >
+ <enum>Qt::ActionsContextMenu</enum>
+ </property>
+ <property name="selectionBehavior" >
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>180</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>SQL Query</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QTextEdit" name="sqlEdit" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="baseSize" >
+ <size>
+ <width>0</width>
+ <height>120</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>1</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="clearButton" >
+ <property name="text" >
+ <string>&amp;Clear</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="submitButton" >
+ <property name="text" >
+ <string>&amp;Submit</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ <action name="insertRowAction" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>&amp;Insert Row</string>
+ </property>
+ <property name="statusTip" >
+ <string>Inserts a new Row</string>
+ </property>
+ </action>
+ <action name="deleteRowAction" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>&amp;Delete Row</string>
+ </property>
+ <property name="statusTip" >
+ <string>Deletes the current Row</string>
+ </property>
+ </action>
+ </widget>
+ <pixmapfunction></pixmapfunction>
+ <customwidgets>
+ <customwidget>
+ <class>ConnectionWidget</class>
+ <extends>QTreeView</extends>
+ <header>connectionwidget.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>sqlEdit</tabstop>
+ <tabstop>clearButton</tabstop>
+ <tabstop>submitButton</tabstop>
+ <tabstop>connectionWidget</tabstop>
+ <tabstop>table</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/demos/sqlbrowser/connectionwidget.cpp b/demos/sqlbrowser/connectionwidget.cpp
new file mode 100644
index 0000000..7df28ac
--- /dev/null
+++ b/demos/sqlbrowser/connectionwidget.cpp
@@ -0,0 +1,165 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "connectionwidget.h"
+
+#include <QtGui>
+#include <QtSql>
+
+ConnectionWidget::ConnectionWidget(QWidget *parent)
+ : QWidget(parent)
+{
+ QVBoxLayout *layout = new QVBoxLayout(this);
+ tree = new QTreeWidget(this);
+ tree->setObjectName(QLatin1String("tree"));
+ tree->setHeaderLabels(QStringList(tr("database")));
+ tree->header()->setResizeMode(QHeaderView::Stretch);
+ QAction *refreshAction = new QAction(tr("Refresh"), tree);
+ metaDataAction = new QAction(tr("Show Schema"), tree);
+ connect(refreshAction, SIGNAL(triggered()), SLOT(refresh()));
+ connect(metaDataAction, SIGNAL(triggered()), SLOT(showMetaData()));
+ tree->addAction(refreshAction);
+ tree->addAction(metaDataAction);
+ tree->setContextMenuPolicy(Qt::ActionsContextMenu);
+
+ layout->addWidget(tree);
+
+ QMetaObject::connectSlotsByName(this);
+}
+
+ConnectionWidget::~ConnectionWidget()
+{
+}
+
+static QString qDBCaption(const QSqlDatabase &db)
+{
+ QString nm = db.driverName();
+ nm.append(QLatin1Char(':'));
+ if (!db.userName().isEmpty())
+ nm.append(db.userName()).append(QLatin1Char('@'));
+ nm.append(db.databaseName());
+ return nm;
+}
+
+void ConnectionWidget::refresh()
+{
+ tree->clear();
+ QStringList connectionNames = QSqlDatabase::connectionNames();
+
+ bool gotActiveDb = false;
+ for (int i = 0; i < connectionNames.count(); ++i) {
+ QTreeWidgetItem *root = new QTreeWidgetItem(tree);
+ QSqlDatabase db = QSqlDatabase::database(connectionNames.at(i), false);
+ root->setText(0, qDBCaption(db));
+ if (connectionNames.at(i) == activeDb) {
+ gotActiveDb = true;
+ setActive(root);
+ }
+ if (db.isOpen()) {
+ QStringList tables = db.tables();
+ for (int t = 0; t < tables.count(); ++t) {
+ QTreeWidgetItem *table = new QTreeWidgetItem(root);
+ table->setText(0, tables.at(t));
+ }
+ }
+ }
+ if (!gotActiveDb) {
+ activeDb = connectionNames.value(0);
+ setActive(tree->topLevelItem(0));
+ }
+
+ tree->doItemsLayout(); // HACK
+}
+
+QSqlDatabase ConnectionWidget::currentDatabase() const
+{
+ return QSqlDatabase::database(activeDb);
+}
+
+static void qSetBold(QTreeWidgetItem *item, bool bold)
+{
+ QFont font = item->font(0);
+ font.setBold(bold);
+ item->setFont(0, font);
+}
+
+void ConnectionWidget::setActive(QTreeWidgetItem *item)
+{
+ for (int i = 0; i < tree->topLevelItemCount(); ++i) {
+ if (tree->topLevelItem(i)->font(0).bold())
+ qSetBold(tree->topLevelItem(i), false);
+ }
+
+ if (!item)
+ return;
+
+ qSetBold(item, true);
+ activeDb = QSqlDatabase::connectionNames().value(tree->indexOfTopLevelItem(item));
+}
+
+void ConnectionWidget::on_tree_itemActivated(QTreeWidgetItem *item, int /* column */)
+{
+
+ if (!item)
+ return;
+
+ if (!item->parent()) {
+ setActive(item);
+ } else {
+ setActive(item->parent());
+ emit tableActivated(item->text(0));
+ }
+}
+
+void ConnectionWidget::showMetaData()
+{
+ QTreeWidgetItem *cItem = tree->currentItem();
+ if (!cItem || !cItem->parent())
+ return;
+ setActive(cItem->parent());
+ emit metaDataRequested(cItem->text(0));
+}
+
+void ConnectionWidget::on_tree_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *)
+{
+ metaDataAction->setEnabled(current && current->parent());
+}
+
diff --git a/demos/sqlbrowser/connectionwidget.h b/demos/sqlbrowser/connectionwidget.h
new file mode 100644
index 0000000..5c48414
--- /dev/null
+++ b/demos/sqlbrowser/connectionwidget.h
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef CONNECTIONWIDGET_H
+#define CONNECTIONWIDGET_H
+
+#include <QWidget>
+
+QT_FORWARD_DECLARE_CLASS(QTreeWidget)
+QT_FORWARD_DECLARE_CLASS(QTreeWidgetItem)
+QT_FORWARD_DECLARE_CLASS(QSqlDatabase)
+QT_FORWARD_DECLARE_CLASS(QMenu)
+
+class ConnectionWidget: public QWidget
+{
+ Q_OBJECT
+public:
+ ConnectionWidget(QWidget *parent = 0);
+ virtual ~ConnectionWidget();
+
+ QSqlDatabase currentDatabase() const;
+
+signals:
+ void tableActivated(const QString &table);
+ void metaDataRequested(const QString &tableName);
+
+public slots:
+ void refresh();
+ void showMetaData();
+ void on_tree_itemActivated(QTreeWidgetItem *item, int column);
+ void on_tree_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
+
+private:
+ void setActive(QTreeWidgetItem *);
+
+ QTreeWidget *tree;
+ QAction *metaDataAction;
+ QString activeDb;
+};
+
+#endif
diff --git a/demos/sqlbrowser/main.cpp b/demos/sqlbrowser/main.cpp
new file mode 100644
index 0000000..b7b7fe5
--- /dev/null
+++ b/demos/sqlbrowser/main.cpp
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "browser.h"
+
+#include <QtCore>
+#include <QtGui>
+#include <QtSql>
+
+void addConnectionsFromCommandline(const QStringList &args, Browser *browser)
+{
+ for (int i = 1; i < args.count(); ++i) {
+ QUrl url(args.at(i), QUrl::TolerantMode);
+ if (!url.isValid()) {
+ qWarning("Invalid URL: %s", qPrintable(args.at(i)));
+ continue;
+ }
+ QSqlError err = browser->addConnection(url.scheme(), url.path().mid(1), url.host(),
+ url.userName(), url.password(), url.port(-1));
+ if (err.type() != QSqlError::NoError)
+ qDebug() << "Unable to open connection:" << err;
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+
+ QMainWindow mainWin;
+ mainWin.setWindowTitle(QObject::tr("Qt SQL Browser"));
+
+ Browser browser(&mainWin);
+ mainWin.setCentralWidget(&browser);
+
+ QMenu *fileMenu = mainWin.menuBar()->addMenu(QObject::tr("&File"));
+ fileMenu->addAction(QObject::tr("Add &Connection..."), &browser, SLOT(addConnection()));
+ fileMenu->addSeparator();
+ fileMenu->addAction(QObject::tr("&Quit"), &app, SLOT(quit()));
+
+ QMenu *helpMenu = mainWin.menuBar()->addMenu(QObject::tr("&Help"));
+ helpMenu->addAction(QObject::tr("About"), &browser, SLOT(about()));
+ helpMenu->addAction(QObject::tr("About Qt"), qApp, SLOT(aboutQt()));
+
+ QObject::connect(&browser, SIGNAL(statusMessage(QString)),
+ mainWin.statusBar(), SLOT(showMessage(QString)));
+
+ addConnectionsFromCommandline(app.arguments(), &browser);
+ mainWin.show();
+ if (QSqlDatabase::connectionNames().isEmpty())
+ QMetaObject::invokeMethod(&browser, "addConnection", Qt::QueuedConnection);
+
+ return app.exec();
+}
diff --git a/demos/sqlbrowser/qsqlconnectiondialog.cpp b/demos/sqlbrowser/qsqlconnectiondialog.cpp
new file mode 100644
index 0000000..a2e3c89
--- /dev/null
+++ b/demos/sqlbrowser/qsqlconnectiondialog.cpp
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qsqlconnectiondialog.h"
+#include "ui_qsqlconnectiondialog.h"
+
+#include <QSqlDatabase>
+
+QSqlConnectionDialog::QSqlConnectionDialog(QWidget *parent)
+ : QDialog(parent)
+{
+ ui.setupUi(this);
+
+ QStringList drivers = QSqlDatabase::drivers();
+
+ // remove compat names
+ drivers.removeAll("QMYSQL3");
+ drivers.removeAll("QOCI8");
+ drivers.removeAll("QODBC3");
+ drivers.removeAll("QPSQL7");
+ drivers.removeAll("QTDS7");
+
+ if (!drivers.contains("QSQLITE"))
+ ui.dbCheckBox->setEnabled(false);
+
+ ui.comboDriver->addItems(drivers);
+}
+
+QSqlConnectionDialog::~QSqlConnectionDialog()
+{
+}
+
+QString QSqlConnectionDialog::driverName() const
+{
+ return ui.comboDriver->currentText();
+}
+
+QString QSqlConnectionDialog::databaseName() const
+{
+ return ui.editDatabase->text();
+}
+
+QString QSqlConnectionDialog::userName() const
+{
+ return ui.editUsername->text();
+}
+
+QString QSqlConnectionDialog::password() const
+{
+ return ui.editPassword->text();
+}
+
+QString QSqlConnectionDialog::hostName() const
+{
+ return ui.editHostname->text();
+}
+
+int QSqlConnectionDialog::port() const
+{
+ return ui.portSpinBox->value();
+}
+
+bool QSqlConnectionDialog::useInMemoryDatabase() const
+{
+ return ui.dbCheckBox->isChecked();
+}
+
+void QSqlConnectionDialog::on_okButton_clicked()
+{
+ if (ui.comboDriver->currentText().isEmpty()) {
+ QMessageBox::information(this, tr("No database driver selected"),
+ tr("Please select a database driver"));
+ ui.comboDriver->setFocus();
+ } else {
+ accept();
+ }
+}
diff --git a/demos/sqlbrowser/qsqlconnectiondialog.h b/demos/sqlbrowser/qsqlconnectiondialog.h
new file mode 100644
index 0000000..d5f3456
--- /dev/null
+++ b/demos/sqlbrowser/qsqlconnectiondialog.h
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QSQLCONNECTIONDIALOG_H
+#define QSQLCONNECTIONDIALOG_H
+
+#include <QDialog>
+#include <QMessageBox>
+
+#include "ui_qsqlconnectiondialog.h"
+
+class QSqlConnectionDialog: public QDialog
+{
+ Q_OBJECT
+public:
+ QSqlConnectionDialog(QWidget *parent = 0);
+ ~QSqlConnectionDialog();
+
+ QString driverName() const;
+ QString databaseName() const;
+ QString userName() const;
+ QString password() const;
+ QString hostName() const;
+ int port() const;
+ bool useInMemoryDatabase() const;
+
+private slots:
+ void on_okButton_clicked();
+ void on_cancelButton_clicked() { reject(); }
+ void on_dbCheckBox_clicked() { ui.connGroupBox->setEnabled(!ui.dbCheckBox->isChecked()); }
+
+private:
+ Ui::QSqlConnectionDialogUi ui;
+};
+
+#endif
diff --git a/demos/sqlbrowser/qsqlconnectiondialog.ui b/demos/sqlbrowser/qsqlconnectiondialog.ui
new file mode 100644
index 0000000..91a8700
--- /dev/null
+++ b/demos/sqlbrowser/qsqlconnectiondialog.ui
@@ -0,0 +1,224 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>QSqlConnectionDialogUi</class>
+ <widget class="QDialog" name="QSqlConnectionDialogUi" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>315</width>
+ <height>302</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Connect...</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>8</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="connGroupBox" >
+ <property name="title" >
+ <string>Connection settings</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>8</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QComboBox" name="comboDriver" />
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="textLabel4" >
+ <property name="text" >
+ <string>&amp;Username:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>editUsername</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="textLabel2" >
+ <property name="text" >
+ <string>D&amp;river</string>
+ </property>
+ <property name="buddy" >
+ <cstring>comboDriver</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLineEdit" name="editDatabase" />
+ </item>
+ <item row="5" column="1" >
+ <widget class="QSpinBox" name="portSpinBox" >
+ <property name="specialValueText" >
+ <string>Default</string>
+ </property>
+ <property name="maximum" >
+ <number>65535</number>
+ </property>
+ <property name="minimum" >
+ <number>-1</number>
+ </property>
+ <property name="value" >
+ <number>-1</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="textLabel3" >
+ <property name="text" >
+ <string>Database Name:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>editDatabase</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QLineEdit" name="editPassword" >
+ <property name="echoMode" >
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QLineEdit" name="editUsername" />
+ </item>
+ <item row="4" column="1" >
+ <widget class="QLineEdit" name="editHostname" />
+ </item>
+ <item row="4" column="0" >
+ <widget class="QLabel" name="textLabel5" >
+ <property name="text" >
+ <string>&amp;Hostname:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>editHostname</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" >
+ <widget class="QLabel" name="textLabel5_2" >
+ <property name="text" >
+ <string>P&amp;ort:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>portSpinBox</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="textLabel4_2" >
+ <property name="text" >
+ <string>&amp;Password:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>editPassword</cstring>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="dbCheckBox" >
+ <property name="text" >
+ <string>Us&amp;e predefined in-memory database</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>&amp;OK</string>
+ </property>
+ <property name="default" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>&amp;Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <pixmapfunction></pixmapfunction>
+ <tabstops>
+ <tabstop>comboDriver</tabstop>
+ <tabstop>editDatabase</tabstop>
+ <tabstop>editUsername</tabstop>
+ <tabstop>editPassword</tabstop>
+ <tabstop>editHostname</tabstop>
+ <tabstop>portSpinBox</tabstop>
+ <tabstop>dbCheckBox</tabstop>
+ <tabstop>okButton</tabstop>
+ <tabstop>cancelButton</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/demos/sqlbrowser/sqlbrowser.pro b/demos/sqlbrowser/sqlbrowser.pro
new file mode 100644
index 0000000..920e8a0
--- /dev/null
+++ b/demos/sqlbrowser/sqlbrowser.pro
@@ -0,0 +1,23 @@
+TEMPLATE = app
+TARGET = sqlbrowser
+
+QT += sql
+
+HEADERS = browser.h connectionwidget.h qsqlconnectiondialog.h
+SOURCES = main.cpp browser.cpp connectionwidget.cpp qsqlconnectiondialog.cpp
+
+FORMS = browserwidget.ui qsqlconnectiondialog.ui
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/sqlbrowser
+sources.files = $$SOURCES $$HEADERS $$FORMS *.pro
+sources.path = $$[QT_INSTALL_DEMOS]/sqlbrowser
+INSTALLS += target sources
+
+wince*: {
+ DEPLOYMENT_PLUGIN += qsqlite
+}
diff --git a/demos/textedit/example.html b/demos/textedit/example.html
new file mode 100644
index 0000000..19b5520
--- /dev/null
+++ b/demos/textedit/example.html
@@ -0,0 +1,79 @@
+<html><head><meta name="qrichtext" content="1" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>QTextEdit Demonstration</title><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;">
+<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:20pt; font-weight:600;">QTextEdit</span></p>
+<p align="justify" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">The QTextEdit widget is an advanced editor that supports formatted rich text. It can be used to display HTML and other rich document formats. Internally, QTextEdit uses the QTextDocument class to describe both the high-level structure of each document and the low-level formatting of paragraphs.</span></p>
+<p align="justify" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;">If you are viewing this document in the <span style=" font-style:italic;">textedit</span> demo, you can edit this document to explore Qt's rich text editing features. We have included some comments in each of the following sections to encourage you to experiment. </p>
+<p style=" margin-top:16px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:18pt; font-weight:600;"><span style=" font-size:16pt;">Font and Paragraph Styles</span></p>
+<p align="justify" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">QTextEdit supports </span><span style=" font-size:11pt; font-weight:600;">bold</span><span style=" font-size:11pt;">, </span><span style=" font-size:11pt; font-style:italic;">italic</span><span style=" font-size:11pt;">, and </span><span style=" font-size:11pt; text-decoration: underline;">underlined</span><span style=" font-size:11pt;"> font styles, and can display </span><span style=" font-size:11pt; font-weight:600; color:#00007f;">multicolored</span><span style=" font-size:11pt;"> </span><span style=" font-size:11pt; font-weight:600; color:#aa0000;">text</span><span style=" font-size:11pt;">. Font families such as </span><span style=" font-family:'Times'; font-size:11pt; font-weight:600;">Times New Roman</span><span style=" font-size:11pt;"> and </span><span style=" font-family:'Courier'; font-size:11pt; font-weight:600;">Courier</span><span style=" font-size:11pt;"> can also be used directly. </span><span style=" font-size:11pt; font-style:italic;">If you place the cursor in a region of styled text, the controls in the tool bars will change to reflect the current style.</span></p>
+<p align="justify" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;">Paragraphs can be formatted so that the text is left-aligned, right-aligned, centered, or fully justified.</p>
+<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><span style=" font-style:italic;">Try changing the alignment of some text and resize the editor to see how the text layout changes.</span> </p>
+<p align="justify" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:16pt; font-weight:600;">Lists</span></p>
+<p align="justify" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:16pt; font-weight:600;"><span style=" font-size:11pt; font-weight:400;">Different kinds of lists can be included in rich text documents. Standard bullet lists can be nested, using different symbols for each level of the list: </span></p>
+<ul style="-qt-list-indent: 1;"><li style=" font-size:11pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Disc symbols are typically used for top-level list items. </li></ul>
+<ul type=circle style="-qt-list-indent: 2;"><li style=" font-size:11pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Circle symbols can be used to distinguish between items in lower-level lists.</li></ul>
+<ul type=square style="-qt-list-indent: 3;"><li style=" font-size:11pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Square symbols provide a reasonable alternative to discs and circles. </li></ul>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;">Ordered lists can be created that can be used for tables of contents. Different characters can be used to enumerate items, and we can use both Roman and Arabic numerals in the same list structure: </p>
+<ol style="-qt-list-indent: 1;"><li style=" font-size:11pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Introduction</li>
+<li style=" font-size:11pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Qt Tools </li></ol>
+<ol type=a style="-qt-list-indent: 2;"><li style=" font-size:11pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Qt Assistant</li>
+<li style=" font-size:11pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Qt Designer</li>
+<ol type=A style="-qt-list-indent: 3;"><li style=" font-size:11pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Form Editor</li>
+<li style=" font-size:11pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Component Architecture</li></ol>
+<li style=" font-size:11pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Qt Linguist</li></ol>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;">The list will automatically be renumbered if you add or remove items. <span style=" font-style:italic;">Try adding new sections to the above list or removing existing item to see the numbers change.</span> </p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"></p>
+<p style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><span style=" font-size:16pt; font-weight:600;">Images</span></p>
+<p style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:16pt; font-weight:600;"><span style=" font-size:11pt; font-weight:400;">Inline images are treated like ordinary ranges of characters in the text editor, so they flow with the surrounding text. Images can also be selected in the same way as text, making it easy to cut, copy, and paste them. </span></p>
+<p align="justify" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><img src=":/images/logo32.png" /><span style=" font-style:italic;"> Try to select this image by clicking and dragging over it with the mouse, or use the text cursor to select it by holding down Shift and using the arrow keys. You can then cut or copy it, and pasting it into different parts of this document.</span></p>
+<p align="justify" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><span style=" font-size:16pt; font-weight:600;">Tables</span></p>
+<p align="justify" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:16pt; font-weight:600;"><span style=" font-size:11pt; font-weight:400;">QTextEdit can arrange and format tables, supporting features such as row and column spans, text formatting within cells, and size constraints for columns. </span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"></p>
+<table border="1" align="center" width="90%" cellspacing="0" cellpadding="4">
+<tr>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> </p></td>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Development Tools </span></p></td>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Programming Techniques </span></p></td>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Graphical User Interfaces </span></p></td></tr>
+<tr>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">9:00 - 11:00 </span></p></td>
+<td colspan="3">
+<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Introduction to <span style=" font-style:italic;">Qt </span></p></td></tr>
+<tr>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">11:00 - 13:00 </span></p></td>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Using <span style=" font-style:italic;">qmake</span> </p></td>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Object-oriented Programming </p></td>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Layouts in <span style=" font-style:italic;">Qt</span> </p></td></tr>
+<tr>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">13:00 - 15:00 </span></p></td>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Qt Designer</span> Tutorial </p></td>
+<td rowspan="2">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Extreme Programming </p></td>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Writing Custom Styles </p></td></tr>
+<tr>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">15:00 - 17:00 </span></p></td>
+<td>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Qt Linguist</span> and Internationalization </p></td>
+<td></td></tr></table>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"></p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt; font-style:italic;">Try adding text to the cells in the table and experiment with the alignment of the paragraphs.</p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><span style=" font-size:16pt; font-weight:600;">Hyperlinks</span></p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">QTextEdit is designed to support hyperlinks between documents, and this feature is used extensively in </span><span style=" font-size:11pt; font-style:italic;">Qt Assistant</span><span style=" font-size:11pt;">. Hyperlinks are automatically created when an HTML file is imported into an editor. Since the rich text framework supports hyperlinks natively, they can also be created programatically.</span></p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><span style=" font-size:16pt; font-weight:600;">Undo and Redo</span></p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;">Full support for undo and redo operations is built into QTextEdit and the underlying rich text framework. Operations on a document can be packaged together to make editing a more comfortable experience for the user.</p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><span style=" font-style:italic;">Try making changes to this document and press Ctrl+Z to undo them. You can always recover the original contents of the document.</span> </p></body></html>
diff --git a/demos/textedit/images/logo32.png b/demos/textedit/images/logo32.png
new file mode 100644
index 0000000..5f91e98
--- /dev/null
+++ b/demos/textedit/images/logo32.png
Binary files differ
diff --git a/demos/textedit/images/mac/editcopy.png b/demos/textedit/images/mac/editcopy.png
new file mode 100644
index 0000000..f551364
--- /dev/null
+++ b/demos/textedit/images/mac/editcopy.png
Binary files differ
diff --git a/demos/textedit/images/mac/editcut.png b/demos/textedit/images/mac/editcut.png
new file mode 100644
index 0000000..a784fd5
--- /dev/null
+++ b/demos/textedit/images/mac/editcut.png
Binary files differ
diff --git a/demos/textedit/images/mac/editpaste.png b/demos/textedit/images/mac/editpaste.png
new file mode 100644
index 0000000..64c0b2d
--- /dev/null
+++ b/demos/textedit/images/mac/editpaste.png
Binary files differ
diff --git a/demos/textedit/images/mac/editredo.png b/demos/textedit/images/mac/editredo.png
new file mode 100644
index 0000000..8875bf2
--- /dev/null
+++ b/demos/textedit/images/mac/editredo.png
Binary files differ
diff --git a/demos/textedit/images/mac/editundo.png b/demos/textedit/images/mac/editundo.png
new file mode 100644
index 0000000..a3bd5e0
--- /dev/null
+++ b/demos/textedit/images/mac/editundo.png
Binary files differ
diff --git a/demos/textedit/images/mac/exportpdf.png b/demos/textedit/images/mac/exportpdf.png
new file mode 100644
index 0000000..ebb44e6
--- /dev/null
+++ b/demos/textedit/images/mac/exportpdf.png
Binary files differ
diff --git a/demos/textedit/images/mac/filenew.png b/demos/textedit/images/mac/filenew.png
new file mode 100644
index 0000000..d3882c7
--- /dev/null
+++ b/demos/textedit/images/mac/filenew.png
Binary files differ
diff --git a/demos/textedit/images/mac/fileopen.png b/demos/textedit/images/mac/fileopen.png
new file mode 100644
index 0000000..fc06c5e
--- /dev/null
+++ b/demos/textedit/images/mac/fileopen.png
Binary files differ
diff --git a/demos/textedit/images/mac/fileprint.png b/demos/textedit/images/mac/fileprint.png
new file mode 100644
index 0000000..10ca56c
--- /dev/null
+++ b/demos/textedit/images/mac/fileprint.png
Binary files differ
diff --git a/demos/textedit/images/mac/filesave.png b/demos/textedit/images/mac/filesave.png
new file mode 100644
index 0000000..b41ecf5
--- /dev/null
+++ b/demos/textedit/images/mac/filesave.png
Binary files differ
diff --git a/demos/textedit/images/mac/textbold.png b/demos/textedit/images/mac/textbold.png
new file mode 100644
index 0000000..38400bd
--- /dev/null
+++ b/demos/textedit/images/mac/textbold.png
Binary files differ
diff --git a/demos/textedit/images/mac/textcenter.png b/demos/textedit/images/mac/textcenter.png
new file mode 100644
index 0000000..2ef5b2e
--- /dev/null
+++ b/demos/textedit/images/mac/textcenter.png
Binary files differ
diff --git a/demos/textedit/images/mac/textitalic.png b/demos/textedit/images/mac/textitalic.png
new file mode 100644
index 0000000..0170ee2
--- /dev/null
+++ b/demos/textedit/images/mac/textitalic.png
Binary files differ
diff --git a/demos/textedit/images/mac/textjustify.png b/demos/textedit/images/mac/textjustify.png
new file mode 100644
index 0000000..39cd6c1
--- /dev/null
+++ b/demos/textedit/images/mac/textjustify.png
Binary files differ
diff --git a/demos/textedit/images/mac/textleft.png b/demos/textedit/images/mac/textleft.png
new file mode 100644
index 0000000..83a66d5
--- /dev/null
+++ b/demos/textedit/images/mac/textleft.png
Binary files differ
diff --git a/demos/textedit/images/mac/textright.png b/demos/textedit/images/mac/textright.png
new file mode 100644
index 0000000..e7c0464
--- /dev/null
+++ b/demos/textedit/images/mac/textright.png
Binary files differ
diff --git a/demos/textedit/images/mac/textunder.png b/demos/textedit/images/mac/textunder.png
new file mode 100644
index 0000000..968bac5
--- /dev/null
+++ b/demos/textedit/images/mac/textunder.png
Binary files differ
diff --git a/demos/textedit/images/mac/zoomin.png b/demos/textedit/images/mac/zoomin.png
new file mode 100644
index 0000000..d46f5af
--- /dev/null
+++ b/demos/textedit/images/mac/zoomin.png
Binary files differ
diff --git a/demos/textedit/images/mac/zoomout.png b/demos/textedit/images/mac/zoomout.png
new file mode 100644
index 0000000..4632656
--- /dev/null
+++ b/demos/textedit/images/mac/zoomout.png
Binary files differ
diff --git a/demos/textedit/images/win/editcopy.png b/demos/textedit/images/win/editcopy.png
new file mode 100644
index 0000000..1121b47
--- /dev/null
+++ b/demos/textedit/images/win/editcopy.png
Binary files differ
diff --git a/demos/textedit/images/win/editcut.png b/demos/textedit/images/win/editcut.png
new file mode 100644
index 0000000..38e55f7
--- /dev/null
+++ b/demos/textedit/images/win/editcut.png
Binary files differ
diff --git a/demos/textedit/images/win/editpaste.png b/demos/textedit/images/win/editpaste.png
new file mode 100644
index 0000000..ffab15a
--- /dev/null
+++ b/demos/textedit/images/win/editpaste.png
Binary files differ
diff --git a/demos/textedit/images/win/editredo.png b/demos/textedit/images/win/editredo.png
new file mode 100644
index 0000000..9d679fe
--- /dev/null
+++ b/demos/textedit/images/win/editredo.png
Binary files differ
diff --git a/demos/textedit/images/win/editundo.png b/demos/textedit/images/win/editundo.png
new file mode 100644
index 0000000..eee23d2
--- /dev/null
+++ b/demos/textedit/images/win/editundo.png
Binary files differ
diff --git a/demos/textedit/images/win/exportpdf.png b/demos/textedit/images/win/exportpdf.png
new file mode 100644
index 0000000..eef5132
--- /dev/null
+++ b/demos/textedit/images/win/exportpdf.png
Binary files differ
diff --git a/demos/textedit/images/win/filenew.png b/demos/textedit/images/win/filenew.png
new file mode 100644
index 0000000..af5d122
--- /dev/null
+++ b/demos/textedit/images/win/filenew.png
Binary files differ
diff --git a/demos/textedit/images/win/fileopen.png b/demos/textedit/images/win/fileopen.png
new file mode 100644
index 0000000..fc6f17e
--- /dev/null
+++ b/demos/textedit/images/win/fileopen.png
Binary files differ
diff --git a/demos/textedit/images/win/fileprint.png b/demos/textedit/images/win/fileprint.png
new file mode 100644
index 0000000..ba7c02d
--- /dev/null
+++ b/demos/textedit/images/win/fileprint.png
Binary files differ
diff --git a/demos/textedit/images/win/filesave.png b/demos/textedit/images/win/filesave.png
new file mode 100644
index 0000000..8feec99
--- /dev/null
+++ b/demos/textedit/images/win/filesave.png
Binary files differ
diff --git a/demos/textedit/images/win/textbold.png b/demos/textedit/images/win/textbold.png
new file mode 100644
index 0000000..9cbc713
--- /dev/null
+++ b/demos/textedit/images/win/textbold.png
Binary files differ
diff --git a/demos/textedit/images/win/textcenter.png b/demos/textedit/images/win/textcenter.png
new file mode 100644
index 0000000..11efb4b
--- /dev/null
+++ b/demos/textedit/images/win/textcenter.png
Binary files differ
diff --git a/demos/textedit/images/win/textitalic.png b/demos/textedit/images/win/textitalic.png
new file mode 100644
index 0000000..b30ce14
--- /dev/null
+++ b/demos/textedit/images/win/textitalic.png
Binary files differ
diff --git a/demos/textedit/images/win/textjustify.png b/demos/textedit/images/win/textjustify.png
new file mode 100644
index 0000000..9de0c88
--- /dev/null
+++ b/demos/textedit/images/win/textjustify.png
Binary files differ
diff --git a/demos/textedit/images/win/textleft.png b/demos/textedit/images/win/textleft.png
new file mode 100644
index 0000000..16f80bc
--- /dev/null
+++ b/demos/textedit/images/win/textleft.png
Binary files differ
diff --git a/demos/textedit/images/win/textright.png b/demos/textedit/images/win/textright.png
new file mode 100644
index 0000000..16872df
--- /dev/null
+++ b/demos/textedit/images/win/textright.png
Binary files differ
diff --git a/demos/textedit/images/win/textunder.png b/demos/textedit/images/win/textunder.png
new file mode 100644
index 0000000..c72eff5
--- /dev/null
+++ b/demos/textedit/images/win/textunder.png
Binary files differ
diff --git a/demos/textedit/images/win/zoomin.png b/demos/textedit/images/win/zoomin.png
new file mode 100644
index 0000000..2e586fc
--- /dev/null
+++ b/demos/textedit/images/win/zoomin.png
Binary files differ
diff --git a/demos/textedit/images/win/zoomout.png b/demos/textedit/images/win/zoomout.png
new file mode 100644
index 0000000..a736d39
--- /dev/null
+++ b/demos/textedit/images/win/zoomout.png
Binary files differ
diff --git a/demos/textedit/main.cpp b/demos/textedit/main.cpp
new file mode 100644
index 0000000..fa38ecb
--- /dev/null
+++ b/demos/textedit/main.cpp
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "textedit.h"
+#include <QApplication>
+
+int main( int argc, char ** argv )
+{
+ Q_INIT_RESOURCE(textedit);
+
+ QApplication a( argc, argv );
+ TextEdit mw;
+ mw.resize( 700, 800 );
+ mw.show();
+ return a.exec();
+}
diff --git a/demos/textedit/textedit.cpp b/demos/textedit/textedit.cpp
new file mode 100644
index 0000000..128cd6a
--- /dev/null
+++ b/demos/textedit/textedit.cpp
@@ -0,0 +1,688 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "textedit.h"
+
+#include <QAction>
+#include <QApplication>
+#include <QClipboard>
+#include <QColorDialog>
+#include <QComboBox>
+#include <QFontComboBox>
+#include <QFile>
+#include <QFileDialog>
+#include <QFileInfo>
+#include <QFontDatabase>
+#include <QMenu>
+#include <QMenuBar>
+#include <QPrintDialog>
+#include <QPrinter>
+#include <QTextCodec>
+#include <QTextEdit>
+#include <QToolBar>
+#include <QTextCursor>
+#include <QTextDocumentWriter>
+#include <QTextList>
+#include <QtDebug>
+#include <QCloseEvent>
+#include <QMessageBox>
+#include <QPrintPreviewDialog>
+
+#ifdef Q_WS_MAC
+const QString rsrcPath = ":/images/mac";
+#else
+const QString rsrcPath = ":/images/win";
+#endif
+
+TextEdit::TextEdit(QWidget *parent)
+ : QMainWindow(parent)
+{
+ setupFileActions();
+ setupEditActions();
+ setupTextActions();
+
+ {
+ QMenu *helpMenu = new QMenu(tr("Help"), this);
+ menuBar()->addMenu(helpMenu);
+ helpMenu->addAction(tr("About"), this, SLOT(about()));
+ helpMenu->addAction(tr("About &Qt"), qApp, SLOT(aboutQt()));
+ }
+
+ textEdit = new QTextEdit(this);
+ connect(textEdit, SIGNAL(currentCharFormatChanged(const QTextCharFormat &)),
+ this, SLOT(currentCharFormatChanged(const QTextCharFormat &)));
+ connect(textEdit, SIGNAL(cursorPositionChanged()),
+ this, SLOT(cursorPositionChanged()));
+
+ setCentralWidget(textEdit);
+ textEdit->setFocus();
+ setCurrentFileName(QString());
+
+ fontChanged(textEdit->font());
+ colorChanged(textEdit->textColor());
+ alignmentChanged(textEdit->alignment());
+
+ connect(textEdit->document(), SIGNAL(modificationChanged(bool)),
+ actionSave, SLOT(setEnabled(bool)));
+ connect(textEdit->document(), SIGNAL(modificationChanged(bool)),
+ this, SLOT(setWindowModified(bool)));
+ connect(textEdit->document(), SIGNAL(undoAvailable(bool)),
+ actionUndo, SLOT(setEnabled(bool)));
+ connect(textEdit->document(), SIGNAL(redoAvailable(bool)),
+ actionRedo, SLOT(setEnabled(bool)));
+
+ setWindowModified(textEdit->document()->isModified());
+ actionSave->setEnabled(textEdit->document()->isModified());
+ actionUndo->setEnabled(textEdit->document()->isUndoAvailable());
+ actionRedo->setEnabled(textEdit->document()->isRedoAvailable());
+
+ connect(actionUndo, SIGNAL(triggered()), textEdit, SLOT(undo()));
+ connect(actionRedo, SIGNAL(triggered()), textEdit, SLOT(redo()));
+
+ actionCut->setEnabled(false);
+ actionCopy->setEnabled(false);
+
+ connect(actionCut, SIGNAL(triggered()), textEdit, SLOT(cut()));
+ connect(actionCopy, SIGNAL(triggered()), textEdit, SLOT(copy()));
+ connect(actionPaste, SIGNAL(triggered()), textEdit, SLOT(paste()));
+
+ connect(textEdit, SIGNAL(copyAvailable(bool)), actionCut, SLOT(setEnabled(bool)));
+ connect(textEdit, SIGNAL(copyAvailable(bool)), actionCopy, SLOT(setEnabled(bool)));
+
+ connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardDataChanged()));
+
+ QString initialFile = ":/example.html";
+ const QStringList args = QCoreApplication::arguments();
+ if (args.count() == 2)
+ initialFile = args.at(1);
+
+ if (!load(initialFile))
+ fileNew();
+}
+
+void TextEdit::closeEvent(QCloseEvent *e)
+{
+ if (maybeSave())
+ e->accept();
+ else
+ e->ignore();
+}
+
+void TextEdit::setupFileActions()
+{
+ QToolBar *tb = new QToolBar(this);
+ tb->setWindowTitle(tr("File Actions"));
+ addToolBar(tb);
+
+ QMenu *menu = new QMenu(tr("&File"), this);
+ menuBar()->addMenu(menu);
+
+ QAction *a;
+
+ a = new QAction(QIcon(rsrcPath + "/filenew.png"), tr("&New"), this);
+ a->setShortcut(QKeySequence::New);
+ connect(a, SIGNAL(triggered()), this, SLOT(fileNew()));
+ tb->addAction(a);
+ menu->addAction(a);
+
+ a = new QAction(QIcon(rsrcPath + "/fileopen.png"), tr("&Open..."), this);
+ a->setShortcut(QKeySequence::Open);
+ connect(a, SIGNAL(triggered()), this, SLOT(fileOpen()));
+ tb->addAction(a);
+ menu->addAction(a);
+
+ menu->addSeparator();
+
+ actionSave = a = new QAction(QIcon(rsrcPath + "/filesave.png"), tr("&Save"), this);
+ a->setShortcut(QKeySequence::Save);
+ connect(a, SIGNAL(triggered()), this, SLOT(fileSave()));
+ a->setEnabled(false);
+ tb->addAction(a);
+ menu->addAction(a);
+
+ a = new QAction(tr("Save &As..."), this);
+ connect(a, SIGNAL(triggered()), this, SLOT(fileSaveAs()));
+ menu->addAction(a);
+ menu->addSeparator();
+
+#ifndef QT_NO_PRINTER
+ a = new QAction(QIcon(rsrcPath + "/fileprint.png"), tr("&Print..."), this);
+ a->setShortcut(QKeySequence::Print);
+ connect(a, SIGNAL(triggered()), this, SLOT(filePrint()));
+ tb->addAction(a);
+ menu->addAction(a);
+
+ a = new QAction(QIcon(rsrcPath + "/fileprint.png"), tr("Print Preview..."), this);
+ connect(a, SIGNAL(triggered()), this, SLOT(filePrintPreview()));
+ menu->addAction(a);
+
+ a = new QAction(QIcon(rsrcPath + "/exportpdf.png"), tr("&Export PDF..."), this);
+ a->setShortcut(Qt::CTRL + Qt::Key_D);
+ connect(a, SIGNAL(triggered()), this, SLOT(filePrintPdf()));
+ tb->addAction(a);
+ menu->addAction(a);
+
+ menu->addSeparator();
+#endif
+
+ a = new QAction(tr("&Quit"), this);
+ a->setShortcut(Qt::CTRL + Qt::Key_Q);
+ connect(a, SIGNAL(triggered()), this, SLOT(close()));
+ menu->addAction(a);
+}
+
+void TextEdit::setupEditActions()
+{
+ QToolBar *tb = new QToolBar(this);
+ tb->setWindowTitle(tr("Edit Actions"));
+ addToolBar(tb);
+
+ QMenu *menu = new QMenu(tr("&Edit"), this);
+ menuBar()->addMenu(menu);
+
+ QAction *a;
+ a = actionUndo = new QAction(QIcon(rsrcPath + "/editundo.png"), tr("&Undo"), this);
+ a->setShortcut(QKeySequence::Undo);
+ tb->addAction(a);
+ menu->addAction(a);
+ a = actionRedo = new QAction(QIcon(rsrcPath + "/editredo.png"), tr("&Redo"), this);
+ a->setShortcut(QKeySequence::Redo);
+ tb->addAction(a);
+ menu->addAction(a);
+ menu->addSeparator();
+ a = actionCut = new QAction(QIcon(rsrcPath + "/editcut.png"), tr("Cu&t"), this);
+ a->setShortcut(QKeySequence::Cut);
+ tb->addAction(a);
+ menu->addAction(a);
+ a = actionCopy = new QAction(QIcon(rsrcPath + "/editcopy.png"), tr("&Copy"), this);
+ a->setShortcut(QKeySequence::Copy);
+ tb->addAction(a);
+ menu->addAction(a);
+ a = actionPaste = new QAction(QIcon(rsrcPath + "/editpaste.png"), tr("&Paste"), this);
+ a->setShortcut(QKeySequence::Paste);
+ tb->addAction(a);
+ menu->addAction(a);
+ actionPaste->setEnabled(!QApplication::clipboard()->text().isEmpty());
+}
+
+void TextEdit::setupTextActions()
+{
+ QToolBar *tb = new QToolBar(this);
+ tb->setWindowTitle(tr("Format Actions"));
+ addToolBar(tb);
+
+ QMenu *menu = new QMenu(tr("F&ormat"), this);
+ menuBar()->addMenu(menu);
+
+ actionTextBold = new QAction(QIcon(rsrcPath + "/textbold.png"), tr("&Bold"), this);
+ actionTextBold->setShortcut(Qt::CTRL + Qt::Key_B);
+ QFont bold;
+ bold.setBold(true);
+ actionTextBold->setFont(bold);
+ connect(actionTextBold, SIGNAL(triggered()), this, SLOT(textBold()));
+ tb->addAction(actionTextBold);
+ menu->addAction(actionTextBold);
+ actionTextBold->setCheckable(true);
+
+ actionTextItalic = new QAction(QIcon(rsrcPath + "/textitalic.png"), tr("&Italic"), this);
+ actionTextItalic->setShortcut(Qt::CTRL + Qt::Key_I);
+ QFont italic;
+ italic.setItalic(true);
+ actionTextItalic->setFont(italic);
+ connect(actionTextItalic, SIGNAL(triggered()), this, SLOT(textItalic()));
+ tb->addAction(actionTextItalic);
+ menu->addAction(actionTextItalic);
+ actionTextItalic->setCheckable(true);
+
+ actionTextUnderline = new QAction(QIcon(rsrcPath + "/textunder.png"), tr("&Underline"), this);
+ actionTextUnderline->setShortcut(Qt::CTRL + Qt::Key_U);
+ QFont underline;
+ underline.setUnderline(true);
+ actionTextUnderline->setFont(underline);
+ connect(actionTextUnderline, SIGNAL(triggered()), this, SLOT(textUnderline()));
+ tb->addAction(actionTextUnderline);
+ menu->addAction(actionTextUnderline);
+ actionTextUnderline->setCheckable(true);
+
+ menu->addSeparator();
+
+ QActionGroup *grp = new QActionGroup(this);
+ connect(grp, SIGNAL(triggered(QAction *)), this, SLOT(textAlign(QAction *)));
+
+ // Make sure the alignLeft is always left of the alignRight
+ if (QApplication::isLeftToRight()) {
+ actionAlignLeft = new QAction(QIcon(rsrcPath + "/textleft.png"), tr("&Left"), grp);
+ actionAlignCenter = new QAction(QIcon(rsrcPath + "/textcenter.png"), tr("C&enter"), grp);
+ actionAlignRight = new QAction(QIcon(rsrcPath + "/textright.png"), tr("&Right"), grp);
+ } else {
+ actionAlignRight = new QAction(QIcon(rsrcPath + "/textright.png"), tr("&Right"), grp);
+ actionAlignCenter = new QAction(QIcon(rsrcPath + "/textcenter.png"), tr("C&enter"), grp);
+ actionAlignLeft = new QAction(QIcon(rsrcPath + "/textleft.png"), tr("&Left"), grp);
+ }
+ actionAlignJustify = new QAction(QIcon(rsrcPath + "/textjustify.png"), tr("&Justify"), grp);
+
+ actionAlignLeft->setShortcut(Qt::CTRL + Qt::Key_L);
+ actionAlignLeft->setCheckable(true);
+ actionAlignCenter->setShortcut(Qt::CTRL + Qt::Key_E);
+ actionAlignCenter->setCheckable(true);
+ actionAlignRight->setShortcut(Qt::CTRL + Qt::Key_R);
+ actionAlignRight->setCheckable(true);
+ actionAlignJustify->setShortcut(Qt::CTRL + Qt::Key_J);
+ actionAlignJustify->setCheckable(true);
+
+ tb->addActions(grp->actions());
+ menu->addActions(grp->actions());
+
+ menu->addSeparator();
+
+ QPixmap pix(16, 16);
+ pix.fill(Qt::black);
+ actionTextColor = new QAction(pix, tr("&Color..."), this);
+ connect(actionTextColor, SIGNAL(triggered()), this, SLOT(textColor()));
+ tb->addAction(actionTextColor);
+ menu->addAction(actionTextColor);
+
+
+ tb = new QToolBar(this);
+ tb->setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea);
+ tb->setWindowTitle(tr("Format Actions"));
+ addToolBarBreak(Qt::TopToolBarArea);
+ addToolBar(tb);
+
+ comboStyle = new QComboBox(tb);
+ tb->addWidget(comboStyle);
+ comboStyle->addItem("Standard");
+ comboStyle->addItem("Bullet List (Disc)");
+ comboStyle->addItem("Bullet List (Circle)");
+ comboStyle->addItem("Bullet List (Square)");
+ comboStyle->addItem("Ordered List (Decimal)");
+ comboStyle->addItem("Ordered List (Alpha lower)");
+ comboStyle->addItem("Ordered List (Alpha upper)");
+ connect(comboStyle, SIGNAL(activated(int)),
+ this, SLOT(textStyle(int)));
+
+ comboFont = new QFontComboBox(tb);
+ tb->addWidget(comboFont);
+ connect(comboFont, SIGNAL(activated(const QString &)),
+ this, SLOT(textFamily(const QString &)));
+
+ comboSize = new QComboBox(tb);
+ comboSize->setObjectName("comboSize");
+ tb->addWidget(comboSize);
+ comboSize->setEditable(true);
+
+ QFontDatabase db;
+ foreach(int size, db.standardSizes())
+ comboSize->addItem(QString::number(size));
+
+ connect(comboSize, SIGNAL(activated(const QString &)),
+ this, SLOT(textSize(const QString &)));
+ comboSize->setCurrentIndex(comboSize->findText(QString::number(QApplication::font()
+ .pointSize())));
+}
+
+bool TextEdit::load(const QString &f)
+{
+ if (!QFile::exists(f))
+ return false;
+ QFile file(f);
+ if (!file.open(QFile::ReadOnly))
+ return false;
+
+ QByteArray data = file.readAll();
+ QTextCodec *codec = Qt::codecForHtml(data);
+ QString str = codec->toUnicode(data);
+ if (Qt::mightBeRichText(str)) {
+ textEdit->setHtml(str);
+ } else {
+ str = QString::fromLocal8Bit(data);
+ textEdit->setPlainText(str);
+ }
+
+ setCurrentFileName(f);
+ return true;
+}
+
+bool TextEdit::maybeSave()
+{
+ if (!textEdit->document()->isModified())
+ return true;
+ if (fileName.startsWith(QLatin1String(":/")))
+ return true;
+ QMessageBox::StandardButton ret;
+ ret = QMessageBox::warning(this, tr("Application"),
+ tr("The document has been modified.\n"
+ "Do you want to save your changes?"),
+ QMessageBox::Save | QMessageBox::Discard
+ | QMessageBox::Cancel);
+ if (ret == QMessageBox::Save)
+ return fileSave();
+ else if (ret == QMessageBox::Cancel)
+ return false;
+ return true;
+}
+
+void TextEdit::setCurrentFileName(const QString &fileName)
+{
+ this->fileName = fileName;
+ textEdit->document()->setModified(false);
+
+ QString shownName;
+ if (fileName.isEmpty())
+ shownName = "untitled.txt";
+ else
+ shownName = QFileInfo(fileName).fileName();
+
+ setWindowTitle(tr("%1[*] - %2").arg(shownName).arg(tr("Rich Text")));
+ setWindowModified(false);
+}
+
+void TextEdit::fileNew()
+{
+ if (maybeSave()) {
+ textEdit->clear();
+ setCurrentFileName(QString());
+ }
+}
+
+void TextEdit::fileOpen()
+{
+ QString fn = QFileDialog::getOpenFileName(this, tr("Open File..."),
+ QString(), tr("HTML-Files (*.htm *.html);;All Files (*)"));
+ if (!fn.isEmpty())
+ load(fn);
+}
+
+bool TextEdit::fileSave()
+{
+ if (fileName.isEmpty())
+ return fileSaveAs();
+
+ QTextDocumentWriter writer(fileName);
+ bool success = writer.write(textEdit->document());
+ if (success)
+ textEdit->document()->setModified(false);
+ return success;
+}
+
+bool TextEdit::fileSaveAs()
+{
+ QString fn = QFileDialog::getSaveFileName(this, tr("Save as..."),
+ QString(), tr("ODF files (*.odt);;HTML-Files (*.htm *.html);;All Files (*)"));
+ if (fn.isEmpty())
+ return false;
+ if (! (fn.endsWith(".odt", Qt::CaseInsensitive) || fn.endsWith(".htm", Qt::CaseInsensitive) || fn.endsWith(".html", Qt::CaseInsensitive)) )
+ fn += ".odt"; // default
+ setCurrentFileName(fn);
+ return fileSave();
+}
+
+void TextEdit::filePrint()
+{
+#ifndef QT_NO_PRINTER
+ QPrinter printer(QPrinter::HighResolution);
+ QPrintDialog *dlg = new QPrintDialog(&printer, this);
+ if (textEdit->textCursor().hasSelection())
+ dlg->addEnabledOption(QAbstractPrintDialog::PrintSelection);
+ dlg->setWindowTitle(tr("Print Document"));
+ if (dlg->exec() == QDialog::Accepted) {
+ textEdit->print(&printer);
+ }
+ delete dlg;
+#endif
+}
+
+void TextEdit::filePrintPreview()
+{
+#ifndef QT_NO_PRINTER
+ QPrinter printer(QPrinter::HighResolution);
+ QPrintPreviewDialog preview(&printer, this);
+ connect(&preview, SIGNAL(paintRequested(QPrinter *)), SLOT(printPreview(QPrinter *)));
+ preview.exec();
+#endif
+}
+
+void TextEdit::printPreview(QPrinter *printer)
+{
+#ifdef QT_NO_PRINTER
+ Q_UNUSED(printer);
+#else
+ textEdit->print(printer);
+#endif
+}
+
+
+void TextEdit::filePrintPdf()
+{
+#ifndef QT_NO_PRINTER
+//! [0]
+ QString fileName = QFileDialog::getSaveFileName(this, "Export PDF",
+ QString(), "*.pdf");
+ if (!fileName.isEmpty()) {
+ if (QFileInfo(fileName).suffix().isEmpty())
+ fileName.append(".pdf");
+ QPrinter printer(QPrinter::HighResolution);
+ printer.setOutputFormat(QPrinter::PdfFormat);
+ printer.setOutputFileName(fileName);
+ textEdit->document()->print(&printer);
+ }
+//! [0]
+#endif
+}
+
+void TextEdit::textBold()
+{
+ QTextCharFormat fmt;
+ fmt.setFontWeight(actionTextBold->isChecked() ? QFont::Bold : QFont::Normal);
+ mergeFormatOnWordOrSelection(fmt);
+}
+
+void TextEdit::textUnderline()
+{
+ QTextCharFormat fmt;
+ fmt.setFontUnderline(actionTextUnderline->isChecked());
+ mergeFormatOnWordOrSelection(fmt);
+}
+
+void TextEdit::textItalic()
+{
+ QTextCharFormat fmt;
+ fmt.setFontItalic(actionTextItalic->isChecked());
+ mergeFormatOnWordOrSelection(fmt);
+}
+
+void TextEdit::textFamily(const QString &f)
+{
+ QTextCharFormat fmt;
+ fmt.setFontFamily(f);
+ mergeFormatOnWordOrSelection(fmt);
+}
+
+void TextEdit::textSize(const QString &p)
+{
+ qreal pointSize = p.toFloat();
+ if (p.toFloat() > 0) {
+ QTextCharFormat fmt;
+ fmt.setFontPointSize(pointSize);
+ mergeFormatOnWordOrSelection(fmt);
+ }
+}
+
+void TextEdit::textStyle(int styleIndex)
+{
+ QTextCursor cursor = textEdit->textCursor();
+
+ if (styleIndex != 0) {
+ QTextListFormat::Style style = QTextListFormat::ListDisc;
+
+ switch (styleIndex) {
+ default:
+ case 1:
+ style = QTextListFormat::ListDisc;
+ break;
+ case 2:
+ style = QTextListFormat::ListCircle;
+ break;
+ case 3:
+ style = QTextListFormat::ListSquare;
+ break;
+ case 4:
+ style = QTextListFormat::ListDecimal;
+ break;
+ case 5:
+ style = QTextListFormat::ListLowerAlpha;
+ break;
+ case 6:
+ style = QTextListFormat::ListUpperAlpha;
+ break;
+ }
+
+ cursor.beginEditBlock();
+
+ QTextBlockFormat blockFmt = cursor.blockFormat();
+
+ QTextListFormat listFmt;
+
+ if (cursor.currentList()) {
+ listFmt = cursor.currentList()->format();
+ } else {
+ listFmt.setIndent(blockFmt.indent() + 1);
+ blockFmt.setIndent(0);
+ cursor.setBlockFormat(blockFmt);
+ }
+
+ listFmt.setStyle(style);
+
+ cursor.createList(listFmt);
+
+ cursor.endEditBlock();
+ } else {
+ // ####
+ QTextBlockFormat bfmt;
+ bfmt.setObjectIndex(-1);
+ cursor.mergeBlockFormat(bfmt);
+ }
+}
+
+void TextEdit::textColor()
+{
+ QColor col = QColorDialog::getColor(textEdit->textColor(), this);
+ if (!col.isValid())
+ return;
+ QTextCharFormat fmt;
+ fmt.setForeground(col);
+ mergeFormatOnWordOrSelection(fmt);
+ colorChanged(col);
+}
+
+void TextEdit::textAlign(QAction *a)
+{
+ if (a == actionAlignLeft)
+ textEdit->setAlignment(Qt::AlignLeft | Qt::AlignAbsolute);
+ else if (a == actionAlignCenter)
+ textEdit->setAlignment(Qt::AlignHCenter);
+ else if (a == actionAlignRight)
+ textEdit->setAlignment(Qt::AlignRight | Qt::AlignAbsolute);
+ else if (a == actionAlignJustify)
+ textEdit->setAlignment(Qt::AlignJustify);
+}
+
+void TextEdit::currentCharFormatChanged(const QTextCharFormat &format)
+{
+ fontChanged(format.font());
+ colorChanged(format.foreground().color());
+}
+
+void TextEdit::cursorPositionChanged()
+{
+ alignmentChanged(textEdit->alignment());
+}
+
+void TextEdit::clipboardDataChanged()
+{
+ actionPaste->setEnabled(!QApplication::clipboard()->text().isEmpty());
+}
+
+void TextEdit::about()
+{
+ QMessageBox::about(this, tr("About"), tr("This example demonstrates Qt's "
+ "rich text editing facilities in action, providing an example "
+ "document for you to experiment with."));
+}
+
+void TextEdit::mergeFormatOnWordOrSelection(const QTextCharFormat &format)
+{
+ QTextCursor cursor = textEdit->textCursor();
+ if (!cursor.hasSelection())
+ cursor.select(QTextCursor::WordUnderCursor);
+ cursor.mergeCharFormat(format);
+ textEdit->mergeCurrentCharFormat(format);
+}
+
+void TextEdit::fontChanged(const QFont &f)
+{
+ comboFont->setCurrentIndex(comboFont->findText(QFontInfo(f).family()));
+ comboSize->setCurrentIndex(comboSize->findText(QString::number(f.pointSize())));
+ actionTextBold->setChecked(f.bold());
+ actionTextItalic->setChecked(f.italic());
+ actionTextUnderline->setChecked(f.underline());
+}
+
+void TextEdit::colorChanged(const QColor &c)
+{
+ QPixmap pix(16, 16);
+ pix.fill(c);
+ actionTextColor->setIcon(pix);
+}
+
+void TextEdit::alignmentChanged(Qt::Alignment a)
+{
+ if (a & Qt::AlignLeft) {
+ actionAlignLeft->setChecked(true);
+ } else if (a & Qt::AlignHCenter) {
+ actionAlignCenter->setChecked(true);
+ } else if (a & Qt::AlignRight) {
+ actionAlignRight->setChecked(true);
+ } else if (a & Qt::AlignJustify) {
+ actionAlignJustify->setChecked(true);
+ }
+}
+
diff --git a/demos/textedit/textedit.doc b/demos/textedit/textedit.doc
new file mode 100644
index 0000000..53279b9
--- /dev/null
+++ b/demos/textedit/textedit.doc
@@ -0,0 +1,18 @@
+/*! \page textedit-example.html
+
+ \ingroup examples
+ \title Text Edit Example
+
+ This example displays a text editor with the user interface written
+ in pure C++.
+
+ A similar example which uses \link designer-manual.book Qt
+ Designer\endlink to produce the user interface is in the \link
+ designer-manual.book Qt Designer manual\endlink.
+
+
+ See \c{$QTDIR/examples/textedit} for the source code.
+
+*/
+
+
diff --git a/demos/textedit/textedit.h b/demos/textedit/textedit.h
new file mode 100644
index 0000000..1fb09f9
--- /dev/null
+++ b/demos/textedit/textedit.h
@@ -0,0 +1,129 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef TEXTEDIT_H
+#define TEXTEDIT_H
+
+#include <QMainWindow>
+#include <QMap>
+#include <QPointer>
+
+QT_FORWARD_DECLARE_CLASS(QAction)
+QT_FORWARD_DECLARE_CLASS(QComboBox)
+QT_FORWARD_DECLARE_CLASS(QFontComboBox)
+QT_FORWARD_DECLARE_CLASS(QTextEdit)
+QT_FORWARD_DECLARE_CLASS(QTextCharFormat)
+QT_FORWARD_DECLARE_CLASS(QMenu)
+
+class TextEdit : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ TextEdit(QWidget *parent = 0);
+
+protected:
+ virtual void closeEvent(QCloseEvent *e);
+
+private:
+ void setupFileActions();
+ void setupEditActions();
+ void setupTextActions();
+ bool load(const QString &f);
+ bool maybeSave();
+ void setCurrentFileName(const QString &fileName);
+
+private slots:
+ void fileNew();
+ void fileOpen();
+ bool fileSave();
+ bool fileSaveAs();
+ void filePrint();
+ void filePrintPreview();
+ void filePrintPdf();
+
+ void textBold();
+ void textUnderline();
+ void textItalic();
+ void textFamily(const QString &f);
+ void textSize(const QString &p);
+ void textStyle(int styleIndex);
+ void textColor();
+ void textAlign(QAction *a);
+
+ void currentCharFormatChanged(const QTextCharFormat &format);
+ void cursorPositionChanged();
+
+ void clipboardDataChanged();
+ void about();
+ void printPreview(QPrinter *);
+
+private:
+ void mergeFormatOnWordOrSelection(const QTextCharFormat &format);
+ void fontChanged(const QFont &f);
+ void colorChanged(const QColor &c);
+ void alignmentChanged(Qt::Alignment a);
+
+ QAction *actionSave,
+ *actionTextBold,
+ *actionTextUnderline,
+ *actionTextItalic,
+ *actionTextColor,
+ *actionAlignLeft,
+ *actionAlignCenter,
+ *actionAlignRight,
+ *actionAlignJustify,
+ *actionUndo,
+ *actionRedo,
+ *actionCut,
+ *actionCopy,
+ *actionPaste;
+
+ QComboBox *comboStyle;
+ QFontComboBox *comboFont;
+ QComboBox *comboSize;
+
+ QToolBar *tb;
+ QString fileName;
+ QTextEdit *textEdit;
+};
+
+#endif
diff --git a/demos/textedit/textedit.pro b/demos/textedit/textedit.pro
new file mode 100644
index 0000000..1ef4256
--- /dev/null
+++ b/demos/textedit/textedit.pro
@@ -0,0 +1,21 @@
+TEMPLATE = app
+TARGET = textedit
+
+CONFIG += qt warn_on
+
+HEADERS = textedit.h
+SOURCES = textedit.cpp \
+ main.cpp
+
+RESOURCES += textedit.qrc
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/textedit
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html *.doc images
+sources.path = $$[QT_INSTALL_DEMOS]/textedit
+INSTALLS += target sources
+
diff --git a/demos/textedit/textedit.qrc b/demos/textedit/textedit.qrc
new file mode 100644
index 0000000..7d6efd7
--- /dev/null
+++ b/demos/textedit/textedit.qrc
@@ -0,0 +1,44 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/">
+ <file>images/logo32.png</file>
+ <file>images/mac/editcopy.png</file>
+ <file>images/mac/editcut.png</file>
+ <file>images/mac/editpaste.png</file>
+ <file>images/mac/editredo.png</file>
+ <file>images/mac/editundo.png</file>
+ <file>images/mac/exportpdf.png</file>
+ <file>images/mac/filenew.png</file>
+ <file>images/mac/fileopen.png</file>
+ <file>images/mac/fileprint.png</file>
+ <file>images/mac/filesave.png</file>
+ <file>images/mac/textbold.png</file>
+ <file>images/mac/textcenter.png</file>
+ <file>images/mac/textitalic.png</file>
+ <file>images/mac/textjustify.png</file>
+ <file>images/mac/textleft.png</file>
+ <file>images/mac/textright.png</file>
+ <file>images/mac/textunder.png</file>
+ <file>images/mac/zoomin.png</file>
+ <file>images/mac/zoomout.png</file>
+ <file>images/win/editcopy.png</file>
+ <file>images/win/editcut.png</file>
+ <file>images/win/editpaste.png</file>
+ <file>images/win/editredo.png</file>
+ <file>images/win/editundo.png</file>
+ <file>images/win/exportpdf.png</file>
+ <file>images/win/filenew.png</file>
+ <file>images/win/fileopen.png</file>
+ <file>images/win/fileprint.png</file>
+ <file>images/win/filesave.png</file>
+ <file>images/win/textbold.png</file>
+ <file>images/win/textcenter.png</file>
+ <file>images/win/textitalic.png</file>
+ <file>images/win/textjustify.png</file>
+ <file>images/win/textleft.png</file>
+ <file>images/win/textright.png</file>
+ <file>images/win/textunder.png</file>
+ <file>images/win/zoomin.png</file>
+ <file>images/win/zoomout.png</file>
+ <file>example.html</file>
+</qresource>
+</RCC>
diff --git a/demos/undo/commands.cpp b/demos/undo/commands.cpp
new file mode 100644
index 0000000..4802e34
--- /dev/null
+++ b/demos/undo/commands.cpp
@@ -0,0 +1,180 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "commands.h"
+
+static const int setShapeRectCommandId = 1;
+static const int setShapeColorCommandId = 2;
+
+/******************************************************************************
+** AddShapeCommand
+*/
+
+AddShapeCommand::AddShapeCommand(Document *doc, const Shape &shape, QUndoCommand *parent)
+ : QUndoCommand(parent)
+{
+ m_doc = doc;
+ m_shape = shape;
+}
+
+void AddShapeCommand::undo()
+{
+ m_doc->deleteShape(m_shapeName);
+}
+
+void AddShapeCommand::redo()
+{
+ // A shape only gets a name when it is inserted into a document
+ m_shapeName = m_doc->addShape(m_shape);
+ setText(QObject::tr("Add %1").arg(m_shapeName));
+}
+
+/******************************************************************************
+** RemoveShapeCommand
+*/
+
+RemoveShapeCommand::RemoveShapeCommand(Document *doc, const QString &shapeName,
+ QUndoCommand *parent)
+ : QUndoCommand(parent)
+{
+ setText(QObject::tr("Remove %1").arg(shapeName));
+ m_doc = doc;
+ m_shape = doc->shape(shapeName);
+ m_shapeName = shapeName;
+}
+
+void RemoveShapeCommand::undo()
+{
+ m_shapeName = m_doc->addShape(m_shape);
+}
+
+void RemoveShapeCommand::redo()
+{
+ m_doc->deleteShape(m_shapeName);
+}
+
+/******************************************************************************
+** SetShapeColorCommand
+*/
+
+SetShapeColorCommand::SetShapeColorCommand(Document *doc, const QString &shapeName,
+ const QColor &color, QUndoCommand *parent)
+ : QUndoCommand(parent)
+{
+ setText(QObject::tr("Set %1's color").arg(shapeName));
+
+ m_doc = doc;
+ m_shapeName = shapeName;
+ m_oldColor = doc->shape(shapeName).color();
+ m_newColor = color;
+}
+
+void SetShapeColorCommand::undo()
+{
+ m_doc->setShapeColor(m_shapeName, m_oldColor);
+}
+
+void SetShapeColorCommand::redo()
+{
+ m_doc->setShapeColor(m_shapeName, m_newColor);
+}
+
+bool SetShapeColorCommand::mergeWith(const QUndoCommand *command)
+{
+ if (command->id() != setShapeColorCommandId)
+ return false;
+
+ const SetShapeColorCommand *other = static_cast<const SetShapeColorCommand*>(command);
+ if (m_shapeName != other->m_shapeName)
+ return false;
+
+ m_newColor = other->m_newColor;
+ return true;
+}
+
+int SetShapeColorCommand::id() const
+{
+ return setShapeColorCommandId;
+}
+
+/******************************************************************************
+** SetShapeRectCommand
+*/
+
+SetShapeRectCommand::SetShapeRectCommand(Document *doc, const QString &shapeName,
+ const QRect &rect, QUndoCommand *parent)
+ : QUndoCommand(parent)
+{
+ setText(QObject::tr("Change %1's geometry").arg(shapeName));
+
+ m_doc = doc;
+ m_shapeName = shapeName;
+ m_oldRect = doc->shape(shapeName).rect();
+ m_newRect = rect;
+}
+
+void SetShapeRectCommand::undo()
+{
+ m_doc->setShapeRect(m_shapeName, m_oldRect);
+}
+
+void SetShapeRectCommand::redo()
+{
+ m_doc->setShapeRect(m_shapeName, m_newRect);
+}
+
+bool SetShapeRectCommand::mergeWith(const QUndoCommand *command)
+{
+ if (command->id() != setShapeRectCommandId)
+ return false;
+
+ const SetShapeRectCommand *other = static_cast<const SetShapeRectCommand*>(command);
+ if (m_shapeName != other->m_shapeName)
+ return false;
+
+ m_newRect = other->m_newRect;
+ return true;
+}
+
+int SetShapeRectCommand::id() const
+{
+ return setShapeRectCommandId;
+}
diff --git a/demos/undo/commands.h b/demos/undo/commands.h
new file mode 100644
index 0000000..f98cb6d
--- /dev/null
+++ b/demos/undo/commands.h
@@ -0,0 +1,112 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef COMMANDS_H
+#define COMMANDS_H
+
+#include <QUndoCommand>
+#include "document.h"
+
+class AddShapeCommand : public QUndoCommand
+{
+public:
+ AddShapeCommand(Document *doc, const Shape &shape, QUndoCommand *parent = 0);
+ void undo();
+ void redo();
+
+private:
+ Document *m_doc;
+ Shape m_shape;
+ QString m_shapeName;
+};
+
+class RemoveShapeCommand : public QUndoCommand
+{
+public:
+ RemoveShapeCommand(Document *doc, const QString &shapeName, QUndoCommand *parent = 0);
+ void undo();
+ void redo();
+
+private:
+ Document *m_doc;
+ Shape m_shape;
+ QString m_shapeName;
+};
+
+class SetShapeColorCommand : public QUndoCommand
+{
+public:
+ SetShapeColorCommand(Document *doc, const QString &shapeName, const QColor &color,
+ QUndoCommand *parent = 0);
+
+ void undo();
+ void redo();
+
+ bool mergeWith(const QUndoCommand *command);
+ int id() const;
+
+private:
+ Document *m_doc;
+ QString m_shapeName;
+ QColor m_oldColor;
+ QColor m_newColor;
+};
+
+class SetShapeRectCommand : public QUndoCommand
+{
+public:
+ SetShapeRectCommand(Document *doc, const QString &shapeName, const QRect &rect,
+ QUndoCommand *parent = 0);
+
+ void undo();
+ void redo();
+
+ bool mergeWith(const QUndoCommand *command);
+ int id() const;
+
+private:
+ Document *m_doc;
+ QString m_shapeName;
+ QRect m_oldRect;
+ QRect m_newRect;
+};
+
+#endif // COMMANDS_H
diff --git a/demos/undo/document.cpp b/demos/undo/document.cpp
new file mode 100644
index 0000000..df435fd
--- /dev/null
+++ b/demos/undo/document.cpp
@@ -0,0 +1,445 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <qevent.h>
+#include <QPainter>
+#include <QTextStream>
+#include <QUndoStack>
+#include "document.h"
+#include "commands.h"
+
+static const int resizeHandleWidth = 6;
+
+/******************************************************************************
+** Shape
+*/
+
+const QSize Shape::minSize(80, 50);
+
+Shape::Shape(Type type, const QColor &color, const QRect &rect)
+ : m_type(type), m_rect(rect), m_color(color)
+{
+}
+
+Shape::Type Shape::type() const
+{
+ return m_type;
+}
+
+QRect Shape::rect() const
+{
+ return m_rect;
+}
+
+QColor Shape::color() const
+{
+ return m_color;
+}
+
+QString Shape::name() const
+{
+ return m_name;
+}
+
+QRect Shape::resizeHandle() const
+{
+ QPoint br = m_rect.bottomRight();
+ return QRect(br - QPoint(resizeHandleWidth, resizeHandleWidth), br);
+}
+
+QString Shape::typeToString(Type type)
+{
+ QString result;
+
+ switch (type) {
+ case Rectangle:
+ result = QLatin1String("Rectangle");
+ break;
+ case Circle:
+ result = QLatin1String("Circle");
+ break;
+ case Triangle:
+ result = QLatin1String("Triangle");
+ break;
+ }
+
+ return result;
+}
+
+Shape::Type Shape::stringToType(const QString &s, bool *ok)
+{
+ if (ok != 0)
+ *ok = true;
+
+ if (s == QLatin1String("Rectangle"))
+ return Rectangle;
+ if (s == QLatin1String("Circle"))
+ return Circle;
+ if (s == QLatin1String("Triangle"))
+ return Triangle;
+
+ if (ok != 0)
+ *ok = false;
+ return Rectangle;
+}
+
+/******************************************************************************
+** Document
+*/
+
+Document::Document(QWidget *parent)
+ : QWidget(parent), m_currentIndex(-1), m_mousePressIndex(-1), m_resizeHandlePressed(false)
+{
+ m_undoStack = new QUndoStack(this);
+
+ setAutoFillBackground(true);
+ setBackgroundRole(QPalette::Base);
+
+ QPalette pal = palette();
+ pal.setBrush(QPalette::Base, QPixmap(":/icons/background.png"));
+ pal.setColor(QPalette::HighlightedText, Qt::red);
+ setPalette(pal);
+}
+
+QString Document::addShape(const Shape &shape)
+{
+ QString name = Shape::typeToString(shape.type());
+ name = uniqueName(name);
+
+ m_shapeList.append(shape);
+ m_shapeList[m_shapeList.count() - 1].m_name = name;
+ setCurrentShape(m_shapeList.count() - 1);
+
+ return name;
+}
+
+void Document::deleteShape(const QString &shapeName)
+{
+ int index = indexOf(shapeName);
+ if (index == -1)
+ return;
+
+ update(m_shapeList.at(index).rect());
+
+ m_shapeList.removeAt(index);
+
+ if (index <= m_currentIndex) {
+ m_currentIndex = -1;
+ if (index == m_shapeList.count())
+ --index;
+ setCurrentShape(index);
+ }
+}
+
+Shape Document::shape(const QString &shapeName) const
+{
+ int index = indexOf(shapeName);
+ if (index == -1)
+ return Shape();
+ return m_shapeList.at(index);
+}
+
+void Document::setShapeRect(const QString &shapeName, const QRect &rect)
+{
+ int index = indexOf(shapeName);
+ if (index == -1)
+ return;
+
+ Shape &shape = m_shapeList[index];
+
+ update(shape.rect());
+ update(rect);
+
+ shape.m_rect = rect;
+}
+
+void Document::setShapeColor(const QString &shapeName, const QColor &color)
+{
+
+ int index = indexOf(shapeName);
+ if (index == -1)
+ return;
+
+ Shape &shape = m_shapeList[index];
+ shape.m_color = color;
+
+ update(shape.rect());
+}
+
+QUndoStack *Document::undoStack() const
+{
+ return m_undoStack;
+}
+
+bool Document::load(QTextStream &stream)
+{
+ m_shapeList.clear();
+
+ while (!stream.atEnd()) {
+ QString shapeType, shapeName, colorName;
+ int left, top, width, height;
+ stream >> shapeType >> shapeName >> colorName >> left >> top >> width >> height;
+ if (stream.status() != QTextStream::Ok)
+ return false;
+ bool ok;
+ Shape::Type type = Shape::stringToType(shapeType, &ok);
+ if (!ok)
+ return false;
+ QColor color(colorName);
+ if (!color.isValid())
+ return false;
+
+ Shape shape(type);
+ shape.m_name = shapeName;
+ shape.m_color = color;
+ shape.m_rect = QRect(left, top, width, height);
+
+ m_shapeList.append(shape);
+ }
+
+ m_currentIndex = m_shapeList.isEmpty() ? -1 : 0;
+
+ return true;
+}
+
+void Document::save(QTextStream &stream)
+{
+ for (int i = 0; i < m_shapeList.count(); ++i) {
+ const Shape &shape = m_shapeList.at(i);
+ QRect r = shape.rect();
+ stream << Shape::typeToString(shape.type()) << QLatin1Char(' ')
+ << shape.name() << QLatin1Char(' ')
+ << shape.color().name() << QLatin1Char(' ')
+ << r.left() << QLatin1Char(' ')
+ << r.top() << QLatin1Char(' ')
+ << r.width() << QLatin1Char(' ')
+ << r.height();
+ if (i != m_shapeList.count() - 1)
+ stream << QLatin1Char('\n');
+ }
+ m_undoStack->setClean();
+}
+
+QString Document::fileName() const
+{
+ return m_fileName;
+}
+
+void Document::setFileName(const QString &fileName)
+{
+ m_fileName = fileName;
+}
+
+int Document::indexAt(const QPoint &pos) const
+{
+ for (int i = m_shapeList.count() - 1; i >= 0; --i) {
+ if (m_shapeList.at(i).rect().contains(pos))
+ return i;
+ }
+ return -1;
+}
+
+void Document::mousePressEvent(QMouseEvent *event)
+{
+ event->accept();
+ int index = indexAt(event->pos());;
+ if (index != -1) {
+ setCurrentShape(index);
+
+ const Shape &shape = m_shapeList.at(index);
+ m_resizeHandlePressed = shape.resizeHandle().contains(event->pos());
+
+ if (m_resizeHandlePressed)
+ m_mousePressOffset = shape.rect().bottomRight() - event->pos();
+ else
+ m_mousePressOffset = event->pos() - shape.rect().topLeft();
+ }
+ m_mousePressIndex = index;
+}
+
+void Document::mouseReleaseEvent(QMouseEvent *event)
+{
+ event->accept();
+ m_mousePressIndex = -1;
+}
+
+void Document::mouseMoveEvent(QMouseEvent *event)
+{
+ event->accept();
+
+ if (m_mousePressIndex == -1)
+ return;
+
+ const Shape &shape = m_shapeList.at(m_mousePressIndex);
+
+ QRect rect;
+ if (m_resizeHandlePressed) {
+ rect = QRect(shape.rect().topLeft(), event->pos() + m_mousePressOffset);
+ } else {
+ rect = shape.rect();
+ rect.moveTopLeft(event->pos() - m_mousePressOffset);
+ }
+
+ QSize size = rect.size().expandedTo(Shape::minSize);
+ rect.setSize(size);
+
+ m_undoStack->push(new SetShapeRectCommand(this, shape.name(), rect));
+}
+
+static QGradient gradient(const QColor &color, const QRect &rect)
+{
+ QColor c = color;
+ c.setAlpha(160);
+ QLinearGradient result(rect.topLeft(), rect.bottomRight());
+ result.setColorAt(0, c.dark(150));
+ result.setColorAt(0.5, c.light(200));
+ result.setColorAt(1, c.dark(150));
+ return result;
+}
+
+static QPolygon triangle(const QRect &rect)
+{
+ QPolygon result(3);
+ result.setPoint(0, rect.center().x(), rect.top());
+ result.setPoint(1, rect.right(), rect.bottom());
+ result.setPoint(2, rect.left(), rect.bottom());
+ return result;
+}
+
+void Document::paintEvent(QPaintEvent *event)
+{
+ QRegion paintRegion = event->region();
+ QPainter painter(this);
+ QPalette pal = palette();
+
+ for (int i = 0; i < m_shapeList.count(); ++i) {
+ const Shape &shape = m_shapeList.at(i);
+
+ if (!paintRegion.contains(shape.rect()))
+ continue;
+
+ QPen pen = pal.text().color();
+ pen.setWidth(i == m_currentIndex ? 2 : 1);
+ painter.setPen(pen);
+ painter.setBrush(gradient(shape.color(), shape.rect()));
+
+ QRect rect = shape.rect();
+ rect.adjust(1, 1, -resizeHandleWidth/2, -resizeHandleWidth/2);
+
+ // paint the shape
+ switch (shape.type()) {
+ case Shape::Rectangle:
+ painter.drawRect(rect);
+ break;
+ case Shape::Circle:
+ painter.setRenderHint(QPainter::Antialiasing);
+ painter.drawEllipse(rect);
+ painter.setRenderHint(QPainter::Antialiasing, false);
+ break;
+ case Shape::Triangle:
+ painter.setRenderHint(QPainter::Antialiasing);
+ painter.drawPolygon(triangle(rect));
+ painter.setRenderHint(QPainter::Antialiasing, false);
+ break;
+ }
+
+ // paint the resize handle
+ painter.setPen(pal.text().color());
+ painter.setBrush(Qt::white);
+ painter.drawRect(shape.resizeHandle().adjusted(0, 0, -1, -1));
+
+ // paint the shape name
+ painter.setBrush(pal.text());
+ if (shape.type() == Shape::Triangle)
+ rect.adjust(0, rect.height()/2, 0, 0);
+ painter.drawText(rect, Qt::AlignCenter, shape.name());
+ }
+}
+
+void Document::setCurrentShape(int index)
+{
+ QString currentName;
+
+ if (m_currentIndex != -1)
+ update(m_shapeList.at(m_currentIndex).rect());
+
+ m_currentIndex = index;
+
+ if (m_currentIndex != -1) {
+ const Shape &current = m_shapeList.at(m_currentIndex);
+ update(current.rect());
+ currentName = current.name();
+ }
+
+ emit currentShapeChanged(currentName);
+}
+
+int Document::indexOf(const QString &shapeName) const
+{
+ for (int i = 0; i < m_shapeList.count(); ++i) {
+ if (m_shapeList.at(i).name() == shapeName)
+ return i;
+ }
+ return -1;
+}
+
+QString Document::uniqueName(const QString &name) const
+{
+ QString unique;
+
+ for (int i = 0; ; ++i) {
+ unique = name;
+ if (i > 0)
+ unique += QString::number(i);
+ if (indexOf(unique) == -1)
+ break;
+ }
+
+ return unique;
+}
+
+QString Document::currentShapeName() const
+{
+ if (m_currentIndex == -1)
+ return QString();
+ return m_shapeList.at(m_currentIndex).name();
+}
+
diff --git a/demos/undo/document.h b/demos/undo/document.h
new file mode 100644
index 0000000..0b12ad0
--- /dev/null
+++ b/demos/undo/document.h
@@ -0,0 +1,125 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DOCUMENT_H
+#define DOCUMENT_H
+
+#include <QWidget>
+
+QT_FORWARD_DECLARE_CLASS(QUndoStack)
+QT_FORWARD_DECLARE_CLASS(QTextStream)
+
+class Shape
+{
+public:
+ enum Type { Rectangle, Circle, Triangle };
+
+ Shape(Type type = Rectangle, const QColor &color = Qt::red, const QRect &rect = QRect());
+
+ Type type() const;
+ QString name() const;
+ QRect rect() const;
+ QRect resizeHandle() const;
+ QColor color() const;
+
+ static QString typeToString(Type type);
+ static Type stringToType(const QString &s, bool *ok = 0);
+
+ static const QSize minSize;
+
+private:
+ Type m_type;
+ QRect m_rect;
+ QColor m_color;
+ QString m_name;
+
+ friend class Document;
+};
+
+class Document : public QWidget
+{
+ Q_OBJECT
+
+public:
+ Document(QWidget *parent = 0);
+
+ QString addShape(const Shape &shape);
+ void deleteShape(const QString &shapeName);
+ Shape shape(const QString &shapeName) const;
+ QString currentShapeName() const;
+
+ void setShapeRect(const QString &shapeName, const QRect &rect);
+ void setShapeColor(const QString &shapeName, const QColor &color);
+
+ bool load(QTextStream &stream);
+ void save(QTextStream &stream);
+
+ QString fileName() const;
+ void setFileName(const QString &fileName);
+
+ QUndoStack *undoStack() const;
+
+signals:
+ void currentShapeChanged(const QString &shapeName);
+
+protected:
+ void paintEvent(QPaintEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+
+private:
+ void setCurrentShape(int index);
+ int indexOf(const QString &shapeName) const;
+ int indexAt(const QPoint &pos) const;
+ QString uniqueName(const QString &name) const;
+
+ QList<Shape> m_shapeList;
+ int m_currentIndex;
+ int m_mousePressIndex;
+ QPoint m_mousePressOffset;
+ bool m_resizeHandlePressed;
+ QString m_fileName;
+
+ QUndoStack *m_undoStack;
+};
+
+#endif // DOCUMENT_H
diff --git a/demos/undo/icons/background.png b/demos/undo/icons/background.png
new file mode 100644
index 0000000..3bc5ed8
--- /dev/null
+++ b/demos/undo/icons/background.png
Binary files differ
diff --git a/demos/undo/icons/blue.png b/demos/undo/icons/blue.png
new file mode 100644
index 0000000..4e181bb
--- /dev/null
+++ b/demos/undo/icons/blue.png
Binary files differ
diff --git a/demos/undo/icons/circle.png b/demos/undo/icons/circle.png
new file mode 100644
index 0000000..ed16c6e
--- /dev/null
+++ b/demos/undo/icons/circle.png
Binary files differ
diff --git a/demos/undo/icons/exit.png b/demos/undo/icons/exit.png
new file mode 100644
index 0000000..539cb2e
--- /dev/null
+++ b/demos/undo/icons/exit.png
Binary files differ
diff --git a/demos/undo/icons/fileclose.png b/demos/undo/icons/fileclose.png
new file mode 100644
index 0000000..c5483d1
--- /dev/null
+++ b/demos/undo/icons/fileclose.png
Binary files differ
diff --git a/demos/undo/icons/filenew.png b/demos/undo/icons/filenew.png
new file mode 100644
index 0000000..57e57e3
--- /dev/null
+++ b/demos/undo/icons/filenew.png
Binary files differ
diff --git a/demos/undo/icons/fileopen.png b/demos/undo/icons/fileopen.png
new file mode 100644
index 0000000..33e0d63
--- /dev/null
+++ b/demos/undo/icons/fileopen.png
Binary files differ
diff --git a/demos/undo/icons/filesave.png b/demos/undo/icons/filesave.png
new file mode 100644
index 0000000..57fd5e2
--- /dev/null
+++ b/demos/undo/icons/filesave.png
Binary files differ
diff --git a/demos/undo/icons/green.png b/demos/undo/icons/green.png
new file mode 100644
index 0000000..e2e7cc9
--- /dev/null
+++ b/demos/undo/icons/green.png
Binary files differ
diff --git a/demos/undo/icons/ok.png b/demos/undo/icons/ok.png
new file mode 100644
index 0000000..e355ea9
--- /dev/null
+++ b/demos/undo/icons/ok.png
Binary files differ
diff --git a/demos/undo/icons/rectangle.png b/demos/undo/icons/rectangle.png
new file mode 100644
index 0000000..3a7d979
--- /dev/null
+++ b/demos/undo/icons/rectangle.png
Binary files differ
diff --git a/demos/undo/icons/red.png b/demos/undo/icons/red.png
new file mode 100644
index 0000000..58c3e72
--- /dev/null
+++ b/demos/undo/icons/red.png
Binary files differ
diff --git a/demos/undo/icons/redo.png b/demos/undo/icons/redo.png
new file mode 100644
index 0000000..5591517
--- /dev/null
+++ b/demos/undo/icons/redo.png
Binary files differ
diff --git a/demos/undo/icons/remove.png b/demos/undo/icons/remove.png
new file mode 100644
index 0000000..7a7b048
--- /dev/null
+++ b/demos/undo/icons/remove.png
Binary files differ
diff --git a/demos/undo/icons/triangle.png b/demos/undo/icons/triangle.png
new file mode 100644
index 0000000..2969131
--- /dev/null
+++ b/demos/undo/icons/triangle.png
Binary files differ
diff --git a/demos/undo/icons/undo.png b/demos/undo/icons/undo.png
new file mode 100644
index 0000000..8cf63a8
--- /dev/null
+++ b/demos/undo/icons/undo.png
Binary files differ
diff --git a/demos/undo/main.cpp b/demos/undo/main.cpp
new file mode 100644
index 0000000..f36a6e8
--- /dev/null
+++ b/demos/undo/main.cpp
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QApplication>
+#include "mainwindow.h"
+
+int main(int argc, char **argv)
+{
+ Q_INIT_RESOURCE(undo);
+
+ QApplication app(argc, argv);
+
+ MainWindow win;
+ win.resize(800, 600);
+ win.show();
+
+ return app.exec();
+};
diff --git a/demos/undo/mainwindow.cpp b/demos/undo/mainwindow.cpp
new file mode 100644
index 0000000..409fd14
--- /dev/null
+++ b/demos/undo/mainwindow.cpp
@@ -0,0 +1,446 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QUndoGroup>
+#include <QUndoStack>
+#include <QFileDialog>
+#include <QMessageBox>
+#include <QTextStream>
+#include <QToolButton>
+#include "document.h"
+#include "mainwindow.h"
+#include "commands.h"
+
+MainWindow::MainWindow(QWidget *parent)
+ : QMainWindow(parent)
+{
+ setupUi(this);
+
+ QWidget *w = documentTabs->widget(0);
+ documentTabs->removeTab(0);
+ delete w;
+
+ connect(actionOpen, SIGNAL(triggered()), this, SLOT(openDocument()));
+ connect(actionClose, SIGNAL(triggered()), this, SLOT(closeDocument()));
+ connect(actionNew, SIGNAL(triggered()), this, SLOT(newDocument()));
+ connect(actionSave, SIGNAL(triggered()), this, SLOT(saveDocument()));
+ connect(actionExit, SIGNAL(triggered()), this, SLOT(close()));
+ connect(actionRed, SIGNAL(triggered()), this, SLOT(setShapeColor()));
+ connect(actionGreen, SIGNAL(triggered()), this, SLOT(setShapeColor()));
+ connect(actionBlue, SIGNAL(triggered()), this, SLOT(setShapeColor()));
+ connect(actionAddCircle, SIGNAL(triggered()), this, SLOT(addShape()));
+ connect(actionAddRectangle, SIGNAL(triggered()), this, SLOT(addShape()));
+ connect(actionAddTriangle, SIGNAL(triggered()), this, SLOT(addShape()));
+ connect(actionRemoveShape, SIGNAL(triggered()), this, SLOT(removeShape()));
+ connect(actionAddRobot, SIGNAL(triggered()), this, SLOT(addRobot()));
+ connect(actionAddSnowman, SIGNAL(triggered()), this, SLOT(addSnowman()));
+ connect(actionAbout, SIGNAL(triggered()), this, SLOT(about()));
+ connect(actionAboutQt, SIGNAL(triggered()), this, SLOT(aboutQt()));
+
+ connect(undoLimit, SIGNAL(valueChanged(int)), this, SLOT(updateActions()));
+ connect(documentTabs, SIGNAL(currentChanged(int)), this, SLOT(updateActions()));
+
+ actionOpen->setShortcut(QString("Ctrl+O"));
+ actionClose->setShortcut(QString("Ctrl+W"));
+ actionNew->setShortcut(QString("Ctrl+N"));
+ actionSave->setShortcut(QString("Ctrl+S"));
+ actionExit->setShortcut(QString("Ctrl+Q"));
+ actionRemoveShape->setShortcut(QString("Del"));
+ actionRed->setShortcut(QString("Alt+R"));
+ actionGreen->setShortcut(QString("Alt+G"));
+ actionBlue->setShortcut(QString("Alt+B"));
+ actionAddCircle->setShortcut(QString("Alt+C"));
+ actionAddRectangle->setShortcut(QString("Alt+L"));
+ actionAddTriangle->setShortcut(QString("Alt+T"));
+
+ m_undoGroup = new QUndoGroup(this);
+ undoView->setGroup(m_undoGroup);
+ undoView->setCleanIcon(QIcon(":/icons/ok.png"));
+
+ QAction *undoAction = m_undoGroup->createUndoAction(this);
+ QAction *redoAction = m_undoGroup->createRedoAction(this);
+ undoAction->setIcon(QIcon(":/icons/undo.png"));
+ redoAction->setIcon(QIcon(":/icons/redo.png"));
+ menuShape->insertAction(menuShape->actions().at(0), undoAction);
+ menuShape->insertAction(undoAction, redoAction);
+
+ toolBar->addAction(undoAction);
+ toolBar->addAction(redoAction);
+
+ newDocument();
+ updateActions();
+};
+
+void MainWindow::updateActions()
+{
+ Document *doc = currentDocument();
+ m_undoGroup->setActiveStack(doc == 0 ? 0 : doc->undoStack());
+ QString shapeName = doc == 0 ? QString() : doc->currentShapeName();
+
+ actionAddRobot->setEnabled(doc != 0);
+ actionAddSnowman->setEnabled(doc != 0);
+ actionAddCircle->setEnabled(doc != 0);
+ actionAddRectangle->setEnabled(doc != 0);
+ actionAddTriangle->setEnabled(doc != 0);
+ actionClose->setEnabled(doc != 0);
+ actionSave->setEnabled(doc != 0 && !doc->undoStack()->isClean());
+ undoLimit->setEnabled(doc != 0 && doc->undoStack()->count() == 0);
+
+ if (shapeName.isEmpty()) {
+ actionRed->setEnabled(false);
+ actionGreen->setEnabled(false);
+ actionBlue->setEnabled(false);
+ actionRemoveShape->setEnabled(false);
+ } else {
+ Shape shape = doc->shape(shapeName);
+ actionRed->setEnabled(shape.color() != Qt::red);
+ actionGreen->setEnabled(shape.color() != Qt::green);
+ actionBlue->setEnabled(shape.color() != Qt::blue);
+ actionRemoveShape->setEnabled(true);
+ }
+
+ if (doc != 0) {
+ int index = documentTabs->indexOf(doc);
+ Q_ASSERT(index != -1);
+ static const QIcon unsavedIcon(":/icons/filesave.png");
+ documentTabs->setTabIcon(index, doc->undoStack()->isClean() ? QIcon() : unsavedIcon);
+
+ if (doc->undoStack()->count() == 0)
+ doc->undoStack()->setUndoLimit(undoLimit->value());
+ }
+}
+
+void MainWindow::openDocument()
+{
+ QString fileName = QFileDialog::getOpenFileName(this);
+ if (fileName.isEmpty())
+ return;
+
+ QFile file(fileName);
+ if (!file.open(QIODevice::ReadOnly)) {
+ QMessageBox::warning(this,
+ tr("File error"),
+ tr("Failed to open\n%1").arg(fileName));
+ return;
+ }
+ QTextStream stream(&file);
+
+ Document *doc = new Document();
+ if (!doc->load(stream)) {
+ QMessageBox::warning(this,
+ tr("Parse error"),
+ tr("Failed to parse\n%1").arg(fileName));
+ delete doc;
+ return;
+ }
+
+ doc->setFileName(fileName);
+ addDocument(doc);
+}
+
+QString MainWindow::fixedWindowTitle(const Document *doc) const
+{
+ QString title = doc->fileName();
+
+ if (title.isEmpty())
+ title = tr("Unnamed");
+ else
+ title = QFileInfo(title).fileName();
+
+ QString result;
+
+ for (int i = 0; ; ++i) {
+ result = title;
+ if (i > 0)
+ result += QString::number(i);
+
+ bool unique = true;
+ for (int j = 0; j < documentTabs->count(); ++j) {
+ const QWidget *widget = documentTabs->widget(j);
+ if (widget == doc)
+ continue;
+ if (result == documentTabs->tabText(j)) {
+ unique = false;
+ break;
+ }
+ }
+
+ if (unique)
+ break;
+ }
+
+ return result;
+}
+
+void MainWindow::addDocument(Document *doc)
+{
+ if (documentTabs->indexOf(doc) != -1)
+ return;
+ m_undoGroup->addStack(doc->undoStack());
+ documentTabs->addTab(doc, fixedWindowTitle(doc));
+ connect(doc, SIGNAL(currentShapeChanged(QString)), this, SLOT(updateActions()));
+ connect(doc->undoStack(), SIGNAL(indexChanged(int)), this, SLOT(updateActions()));
+ connect(doc->undoStack(), SIGNAL(cleanChanged(bool)), this, SLOT(updateActions()));
+
+ setCurrentDocument(doc);
+}
+
+void MainWindow::setCurrentDocument(Document *doc)
+{
+ documentTabs->setCurrentWidget(doc);
+}
+
+Document *MainWindow::currentDocument() const
+{
+ return qobject_cast<Document*>(documentTabs->currentWidget());
+}
+
+void MainWindow::removeDocument(Document *doc)
+{
+ int index = documentTabs->indexOf(doc);
+ if (index == -1)
+ return;
+
+ documentTabs->removeTab(index);
+ m_undoGroup->removeStack(doc->undoStack());
+ disconnect(doc, SIGNAL(currentShapeChanged(QString)), this, SLOT(updateActions()));
+ disconnect(doc->undoStack(), SIGNAL(indexChanged(int)), this, SLOT(updateActions()));
+ disconnect(doc->undoStack(), SIGNAL(cleanChanged(bool)), this, SLOT(updateActions()));
+
+ if (documentTabs->count() == 0) {
+ newDocument();
+ updateActions();
+ }
+}
+
+void MainWindow::saveDocument()
+{
+ Document *doc = currentDocument();
+ if (doc == 0)
+ return;
+
+ for (;;) {
+ QString fileName = doc->fileName();
+
+ if (fileName.isEmpty())
+ fileName = QFileDialog::getSaveFileName(this);
+ if (fileName.isEmpty())
+ break;
+
+ QFile file(fileName);
+ if (!file.open(QIODevice::WriteOnly)) {
+ QMessageBox::warning(this,
+ tr("File error"),
+ tr("Failed to open\n%1").arg(fileName));
+ doc->setFileName(QString());
+ } else {
+ QTextStream stream(&file);
+ doc->save(stream);
+ doc->setFileName(fileName);
+
+ int index = documentTabs->indexOf(doc);
+ Q_ASSERT(index != -1);
+ documentTabs->setTabText(index, fixedWindowTitle(doc));
+
+ break;
+ }
+ }
+}
+
+void MainWindow::closeDocument()
+{
+ Document *doc = currentDocument();
+ if (doc == 0)
+ return;
+
+ if (!doc->undoStack()->isClean()) {
+ int button
+ = QMessageBox::warning(this,
+ tr("Unsaved changes"),
+ tr("Would you like to save this document?"),
+ QMessageBox::Yes, QMessageBox::No);
+ if (button == QMessageBox::Yes)
+ saveDocument();
+ }
+
+ removeDocument(doc);
+ delete doc;
+}
+
+void MainWindow::newDocument()
+{
+ addDocument(new Document());
+}
+
+static QColor randomColor()
+{
+ int r = (int) (3.0*(rand()/(RAND_MAX + 1.0)));
+ switch (r) {
+ case 0:
+ return Qt::red;
+ case 1:
+ return Qt::green;
+ default:
+ break;
+ }
+ return Qt::blue;
+}
+
+static QRect randomRect(const QSize &s)
+{
+ QSize min = Shape::minSize;
+
+ int left = (int) ((0.0 + s.width() - min.width())*(rand()/(RAND_MAX + 1.0)));
+ int top = (int) ((0.0 + s.height() - min.height())*(rand()/(RAND_MAX + 1.0)));
+ int width = (int) ((0.0 + s.width() - left - min.width())*(rand()/(RAND_MAX + 1.0))) + min.width();
+ int height = (int) ((0.0 + s.height() - top - min.height())*(rand()/(RAND_MAX + 1.0))) + min.height();
+
+ return QRect(left, top, width, height);
+}
+
+void MainWindow::addShape()
+{
+ Document *doc = currentDocument();
+ if (doc == 0)
+ return;
+
+ Shape::Type type;
+
+ if (sender() == actionAddCircle)
+ type = Shape::Circle;
+ else if (sender() == actionAddRectangle)
+ type = Shape::Rectangle;
+ else if (sender() == actionAddTriangle)
+ type = Shape::Triangle;
+ else return;
+
+ Shape newShape(type, randomColor(), randomRect(doc->size()));
+ doc->undoStack()->push(new AddShapeCommand(doc, newShape));
+}
+
+void MainWindow::removeShape()
+{
+ Document *doc = currentDocument();
+ if (doc == 0)
+ return;
+
+ QString shapeName = doc->currentShapeName();
+ if (shapeName.isEmpty())
+ return;
+
+ doc->undoStack()->push(new RemoveShapeCommand(doc, shapeName));
+}
+
+void MainWindow::setShapeColor()
+{
+ Document *doc = currentDocument();
+ if (doc == 0)
+ return;
+
+ QString shapeName = doc->currentShapeName();
+ if (shapeName.isEmpty())
+ return;
+
+ QColor color;
+
+ if (sender() == actionRed)
+ color = Qt::red;
+ else if (sender() == actionGreen)
+ color = Qt::green;
+ else if (sender() == actionBlue)
+ color = Qt::blue;
+ else
+ return;
+
+ if (color == doc->shape(shapeName).color())
+ return;
+
+ doc->undoStack()->push(new SetShapeColorCommand(doc, shapeName, color));
+}
+
+void MainWindow::addSnowman()
+{
+ Document *doc = currentDocument();
+ if (doc == 0)
+ return;
+
+ // Create a macro command using beginMacro() and endMacro()
+
+ doc->undoStack()->beginMacro(tr("Add snowman"));
+ doc->undoStack()->push(new AddShapeCommand(doc,
+ Shape(Shape::Circle, Qt::blue, QRect(51, 30, 97, 95))));
+ doc->undoStack()->push(new AddShapeCommand(doc,
+ Shape(Shape::Circle, Qt::blue, QRect(27, 123, 150, 133))));
+ doc->undoStack()->push(new AddShapeCommand(doc,
+ Shape(Shape::Circle, Qt::blue, QRect(11, 253, 188, 146))));
+ doc->undoStack()->endMacro();
+}
+
+void MainWindow::addRobot()
+{
+ Document *doc = currentDocument();
+ if (doc == 0)
+ return;
+
+ // Compose a macro command by explicitly adding children to a parent command
+
+ QUndoCommand *parent = new QUndoCommand(tr("Add robot"));
+
+ new AddShapeCommand(doc, Shape(Shape::Rectangle, Qt::green, QRect(115, 15, 81, 70)), parent);
+ new AddShapeCommand(doc, Shape(Shape::Rectangle, Qt::green, QRect(82, 89, 148, 188)), parent);
+ new AddShapeCommand(doc, Shape(Shape::Rectangle, Qt::green, QRect(76, 280, 80, 165)), parent);
+ new AddShapeCommand(doc, Shape(Shape::Rectangle, Qt::green, QRect(163, 280, 80, 164)), parent);
+ new AddShapeCommand(doc, Shape(Shape::Circle, Qt::blue, QRect(116, 25, 80, 50)), parent);
+ new AddShapeCommand(doc, Shape(Shape::Rectangle, Qt::green, QRect(232, 92, 80, 127)), parent);
+ new AddShapeCommand(doc, Shape(Shape::Rectangle, Qt::green, QRect(2, 92, 80, 125)), parent);
+
+ doc->undoStack()->push(parent);
+}
+
+void MainWindow::about()
+{
+ QMessageBox::about(this, tr("About Undo"), tr("The Undo demonstration shows how to use the Qt Undo framework."));
+}
+
+void MainWindow::aboutQt()
+{
+ QMessageBox::aboutQt(this, tr("About Qt"));
+}
diff --git a/demos/undo/mainwindow.h b/demos/undo/mainwindow.h
new file mode 100644
index 0000000..5340e94
--- /dev/null
+++ b/demos/undo/mainwindow.h
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+#include "ui_mainwindow.h"
+
+class Document;
+
+class MainWindow : public QMainWindow, public Ui::MainWindow
+{
+ Q_OBJECT
+
+public:
+ MainWindow(QWidget *parent = 0);
+
+ void addDocument(Document *doc);
+ void removeDocument(Document *doc);
+ void setCurrentDocument(Document *doc);
+ Document *currentDocument() const;
+
+public slots:
+ void openDocument();
+ void saveDocument();
+ void closeDocument();
+ void newDocument();
+
+ void addShape();
+ void removeShape();
+ void setShapeColor();
+
+ void addSnowman();
+ void addRobot();
+
+ void about();
+ void aboutQt();
+
+private slots:
+ void updateActions();
+
+private:
+ QUndoGroup *m_undoGroup;
+
+ QString fixedWindowTitle(const Document *doc) const;
+};
+
+#endif // MAINWINDOW_H
diff --git a/demos/undo/mainwindow.ui b/demos/undo/mainwindow.ui
new file mode 100644
index 0000000..91a0b43
--- /dev/null
+++ b/demos/undo/mainwindow.ui
@@ -0,0 +1,322 @@
+<ui version="4.0" >
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>567</width>
+ <height>600</height>
+ </rect>
+ </property>
+ <property name="iconSize" >
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ <widget class="QWidget" name="centralwidget" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QTabWidget" name="documentTabs" >
+ <property name="currentIndex" >
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="tab" >
+ <attribute name="title" >
+ <string>Tab 1</string>
+ </attribute>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menubar" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>567</width>
+ <height>27</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuFile" >
+ <property name="title" >
+ <string>File</string>
+ </property>
+ <addaction name="actionNew" />
+ <addaction name="actionOpen" />
+ <addaction name="actionSave" />
+ <addaction name="actionClose" />
+ <addaction name="separator" />
+ <addaction name="actionExit" />
+ </widget>
+ <widget class="QMenu" name="menuShape" >
+ <property name="title" >
+ <string>Edit</string>
+ </property>
+ <widget class="QMenu" name="menuMacros" >
+ <property name="title" >
+ <string>Macros</string>
+ </property>
+ <addaction name="actionAddRobot" />
+ <addaction name="actionAddSnowman" />
+ </widget>
+ <addaction name="separator" />
+ <addaction name="actionAddCircle" />
+ <addaction name="actionAddRectangle" />
+ <addaction name="actionAddTriangle" />
+ <addaction name="actionRemoveShape" />
+ <addaction name="separator" />
+ <addaction name="actionRed" />
+ <addaction name="actionGreen" />
+ <addaction name="actionBlue" />
+ <addaction name="separator" />
+ <addaction name="menuMacros" />
+ </widget>
+ <widget class="QMenu" name="menuHelp" >
+ <property name="title" >
+ <string>Help</string>
+ </property>
+ <addaction name="actionAbout" />
+ <addaction name="actionAboutQt" />
+ </widget>
+ <addaction name="menuFile" />
+ <addaction name="menuShape" />
+ <addaction name="menuHelp" />
+ </widget>
+ <widget class="QStatusBar" name="statusbar" />
+ <widget class="QToolBar" name="toolBar" >
+ <property name="windowTitle" >
+ <string>File actions</string>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <attribute name="toolBarArea" >
+ <enum>TopToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak" >
+ <bool>false</bool>
+ </attribute>
+ <addaction name="actionNew" />
+ <addaction name="actionOpen" />
+ <addaction name="actionSave" />
+ <addaction name="actionClose" />
+ <addaction name="separator" />
+ </widget>
+ <widget class="QToolBar" name="shapeToolBar" >
+ <property name="windowTitle" >
+ <string>Shape actions</string>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <attribute name="toolBarArea" >
+ <enum>LeftToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak" >
+ <bool>false</bool>
+ </attribute>
+ <addaction name="actionAddRectangle" />
+ <addaction name="actionAddCircle" />
+ <addaction name="actionAddTriangle" />
+ <addaction name="actionRemoveShape" />
+ <addaction name="separator" />
+ <addaction name="actionRed" />
+ <addaction name="actionGreen" />
+ <addaction name="actionBlue" />
+ </widget>
+ <widget class="QDockWidget" name="dockWidget" >
+ <property name="windowTitle" >
+ <string>Undo Stack</string>
+ </property>
+ <attribute name="dockWidgetArea" >
+ <number>2</number>
+ </attribute>
+ <widget class="QWidget" name="dockWidgetContents" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>4</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Undo limit</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="undoLimit" />
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QUndoView" name="undoView" >
+ <property name="alternatingRowColors" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <action name="actionOpen" >
+ <property name="icon" >
+ <iconset resource="undo.qrc" >:/icons/fileopen.png</iconset>
+ </property>
+ <property name="text" >
+ <string>&amp;Open</string>
+ </property>
+ </action>
+ <action name="actionClose" >
+ <property name="icon" >
+ <iconset resource="undo.qrc" >:/icons/fileclose.png</iconset>
+ </property>
+ <property name="text" >
+ <string>&amp;Close</string>
+ </property>
+ </action>
+ <action name="actionNew" >
+ <property name="icon" >
+ <iconset resource="undo.qrc" >:/icons/filenew.png</iconset>
+ </property>
+ <property name="text" >
+ <string>&amp;New</string>
+ </property>
+ </action>
+ <action name="actionSave" >
+ <property name="icon" >
+ <iconset resource="undo.qrc" >:/icons/filesave.png</iconset>
+ </property>
+ <property name="text" >
+ <string>&amp;Save</string>
+ </property>
+ </action>
+ <action name="actionExit" >
+ <property name="icon" >
+ <iconset resource="undo.qrc" >:/icons/exit.png</iconset>
+ </property>
+ <property name="text" >
+ <string>E&amp;xit</string>
+ </property>
+ </action>
+ <action name="actionRed" >
+ <property name="icon" >
+ <iconset resource="undo.qrc" >:/icons/red.png</iconset>
+ </property>
+ <property name="text" >
+ <string>Red</string>
+ </property>
+ </action>
+ <action name="actionGreen" >
+ <property name="icon" >
+ <iconset resource="undo.qrc" >:/icons/green.png</iconset>
+ </property>
+ <property name="text" >
+ <string>Green</string>
+ </property>
+ </action>
+ <action name="actionBlue" >
+ <property name="icon" >
+ <iconset resource="undo.qrc" >:/icons/blue.png</iconset>
+ </property>
+ <property name="text" >
+ <string>Blue</string>
+ </property>
+ </action>
+ <action name="actionAddRectangle" >
+ <property name="icon" >
+ <iconset resource="undo.qrc" >:/icons/rectangle.png</iconset>
+ </property>
+ <property name="text" >
+ <string>Add Rectangle</string>
+ </property>
+ </action>
+ <action name="actionAddCircle" >
+ <property name="icon" >
+ <iconset resource="undo.qrc" >:/icons/circle.png</iconset>
+ </property>
+ <property name="text" >
+ <string>Add Circle</string>
+ </property>
+ </action>
+ <action name="actionRemoveShape" >
+ <property name="icon" >
+ <iconset resource="undo.qrc" >:/icons/remove.png</iconset>
+ </property>
+ <property name="text" >
+ <string>Remove Shape</string>
+ </property>
+ </action>
+ <action name="actionAddRobot" >
+ <property name="text" >
+ <string>Add robot</string>
+ </property>
+ </action>
+ <action name="actionAddSnowman" >
+ <property name="text" >
+ <string>Add snowan</string>
+ </property>
+ </action>
+ <action name="actionAddTriangle" >
+ <property name="icon" >
+ <iconset resource="undo.qrc" >:/icons/triangle.png</iconset>
+ </property>
+ <property name="text" >
+ <string>addTriangle</string>
+ </property>
+ </action>
+ <action name="actionAbout" >
+ <property name="text" >
+ <string>About</string>
+ </property>
+ </action>
+ <action name="actionAboutQt" >
+ <property name="text" >
+ <string>About Qt</string>
+ </property>
+ </action>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>QUndoView</class>
+ <extends>QListView</extends>
+ <header>qundoview.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources>
+ <include location="undo.qrc" />
+ </resources>
+ <connections/>
+</ui>
diff --git a/demos/undo/undo.pro b/demos/undo/undo.pro
new file mode 100644
index 0000000..e26d07c
--- /dev/null
+++ b/demos/undo/undo.pro
@@ -0,0 +1,17 @@
+SOURCES += main.cpp mainwindow.cpp commands.cpp document.cpp
+HEADERS += mainwindow.h commands.h document.h
+FORMS += mainwindow.ui
+
+build_all:!build_pass {
+ CONFIG -= build_all
+ CONFIG += release
+}
+
+RESOURCES += undo.qrc
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/undo
+sources.files = $$SOURCES $$HEADERS *.pro icons $$RESOURCES $$FORMS
+sources.path = $$[QT_INSTALL_DEMOS]/undo
+INSTALLS += target sources
+
diff --git a/demos/undo/undo.qrc b/demos/undo/undo.qrc
new file mode 100644
index 0000000..65619b8
--- /dev/null
+++ b/demos/undo/undo.qrc
@@ -0,0 +1,20 @@
+<RCC>
+ <qresource prefix="/" >
+ <file>icons/background.png</file>
+ <file>icons/blue.png</file>
+ <file>icons/circle.png</file>
+ <file>icons/exit.png</file>
+ <file>icons/fileclose.png</file>
+ <file>icons/filenew.png</file>
+ <file>icons/fileopen.png</file>
+ <file>icons/filesave.png</file>
+ <file>icons/green.png</file>
+ <file>icons/ok.png</file>
+ <file>icons/rectangle.png</file>
+ <file>icons/red.png</file>
+ <file>icons/redo.png</file>
+ <file>icons/remove.png</file>
+ <file>icons/triangle.png</file>
+ <file>icons/undo.png</file>
+ </qresource>
+</RCC>
diff --git a/dist/README b/dist/README
new file mode 100644
index 0000000..110be1c
--- /dev/null
+++ b/dist/README
@@ -0,0 +1,134 @@
+This is Qt version %VERSION%.
+
+Qt is a comprehensive cross-platform C++ application framework. Qt 4
+introduces new features and many improvements over the 3.x series. See
+http://doc.trolltech.com/latest/qt4-intro.html for details.
+
+The Qt 4.x series is not binary compatible or source compatible with
+the 3.x series. For more information on porting from Qt 3 to Qt 4, see
+http://doc.trolltech.com/latest/porting4.html.
+
+
+INSTALLING Qt
+
+On Windows and Mac OS X, if you want to install the precompiled binary
+packages, simply launch the package and follow the instructions in the
+installation wizard.
+
+On Mac OS X, the binary package requires Mac OS X 10.4.x (Tiger) or
+later and GCC 4.0.1 to develop applications. Its applications will run
+on Mac OS X 10.3.9 and above.
+
+If you have a source package (a .tar.gz, .tar.bz2, or .zip file),
+follow the instructions in the INSTALL file.
+
+
+DEMOS AND EXAMPLES
+
+Once Qt is installed, we suggest that you take a look at the demos and
+examples to see Qt in action. Run the Qt Examples and Demos either by
+typing 'qtdemo' on the command line or through the desktop's Start
+menu. On Mac OS X, you can find it in /Developers/Applications/Qt.
+
+
+REFERENCE DOCUMENTATION
+
+The Qt reference documentation is available locally in Qt's doc/html
+directory. You can use Qt Assistant to view it; to launch Assistant,
+type 'assistant' on the command line or use the Start menu. On Mac OS
+X, you can find it in /Developer/Applications/Qt. The latest
+documentation is available at http://doc.trolltech.com/.
+
+
+SUPPORTED PLATFORMS
+
+For this release, the following platforms have been tested:
+
+ win32-g++ (mingw)
+ win32-msvc
+ win32-msvc2003
+ win32-msvc2005
+ win32-msvc2008
+
+ aix-xlc
+ aix-xlc-64
+ hpux-acc
+ hpux-acc-64
+ hpux-acc-o64
+ hpux-g++
+ hpux-g++-64
+ hpuxi-acc-32
+ hpuxi-acc-64
+ linux-g++
+ linux-icc
+ linux-icc-32
+ linux-icc-64
+ solaris-cc
+ solaris-cc-64
+ solaris-g++
+ solaris-g++-64
+
+ macx-g++
+ macx-g++42
+
+ qws/linux-x86-g++
+ qws/linux-arm-g++
+
+ wince50standard-armv4i-msvc2005
+ wince50standard-armv4i-msvc2008
+ wince50standard-mipsii-msvc2005
+ wince50standard-mipsii-msvc2008
+ wince50standard-x86-msvc2005
+ wince50standard-x86-msvc2008
+ wincewm50pocket-msvc2005
+ wincewm50pocket-msvc2008
+ wincewm50smart-msvc2005
+ wincewm50smart-msvc2008
+ wincewm60professional-msvc2005
+ wincewm60professional-msvc2008
+ wincewm60standard-msvc2005
+ wincewm60standard-msvc2008
+
+For a complete list of supported platforms, see
+http://www.qtsoftware.com/developer/supported-platforms/supported-platforms/
+
+For a description of Qt's platform support policy, see
+http://www.qtsoftware.com/support-services/support/platform-support-policy
+
+
+COMMERCIAL EDITIONS
+
+Desktop Edition licensees can use all the modules provided with their
+Qt package.
+
+GUI Framework licensees may only use the classes contained in
+the QtCore, QtGui (except QGraphicsView), QtTest, QtDBus and
+Qt3Support modules.
+
+For a full listing of the contents of each module, please refer to
+http://doc.trolltech.com/4.4/modules.html.
+
+
+HOW TO REPORT A BUG
+
+If you think you have found a bug in Qt, we would like to hear about
+it so that we can fix it. Before reporting a bug, please check
+http://qtsoftware.com/developer/faqs/ and
+http://qtsoftware.com/products/appdev/platform/platforms/ to see if the to see if
+the issue is already known.
+
+Always include the following information in your bug report: the name
+and version number of your compiler; the name and version number of
+your operating system; the version of Qt you are using, and what
+configure options it was compiled with.
+
+If the problem you are reporting is only visible at run-time, try to
+create a small test program that shows the problem when run. Often,
+such a program can be created with some minor changes to one of the
+many example programs in Qt's examples directory. Please submit the
+bug report using the Task Tracker on the Trolltech website:
+
+http://qtsoftware.com/developer/task-tracker
+
+
+Qt is a trademark of Nokia Corporation and/or its subsidiary(-ies).
diff --git a/dist/changes-0.92 b/dist/changes-0.92
new file mode 100644
index 0000000..1226d65
--- /dev/null
+++ b/dist/changes-0.92
@@ -0,0 +1,101 @@
+Here is a list of changes in Qt from 0.91 to 0.92. Also look out
+for a few new classes; QPrinter, QFileDialog, QDir and QFileInfo.
+
+
+QApplication:
+-------------
+ Use setMainWidget( x ), not exec( x ).
+
+QString:
+--------
+ upper(), lower(), stripWhiteSpace() and simplifyWhiteSpace() etc.
+ do NOT modify the string, instead they return a new string.
+
+QList and QVector:
+------------------
+ Changed argument in QList::toVector() from reference to pointer
+ Changed argument in QVector::toList() from reference to pointer
+ Removed QVector::apply()
+ Removed QList::apply()
+
+QPainter:
+---------
+ pen(), brush() and font() no longer returns references.
+ You cannot do this any longer:
+ QPainter p;
+ ...
+ p.pen().setColor( red );
+ p.brush().setStyle( NoBrush );
+ Instead, set a new pen or brush:
+ p.setPen( red );
+ p.setBrush( NoBrush );
+ This enables us to do better optimization, particularly for complex
+ programs.
+
+QFile, QFileInfo (new):
+-----------------------
+ Removed QFile::setFileName,
+ QFile::isRegular => QFileInfo::isFile
+ QFile::isDirectory => QFileInfo::isDir
+ QFile::isSymLink => QFileInfo::isSymLink
+
+Q2DMatrix/QWMatrix:
+---------
+ Q2DMatrix has been replaced with QWMatrix (qwmatrix.h)
+
+QPixmap:
+--------
+ enableImageCache() renamed to setOptimization().
+ Optimization is now default ON. See doc for other optimization functions.
+
+QImage:
+-------
+ scanline() => scanLine()
+
+QLineEdit/QLCDNumber:
+---------------------
+ signal textChanged( char * ) => textChanged( const char * );
+ slot display( char * ) => display( const char * )
+
+QCursor:
+--------
+ hourGlassCursor => waitCursor
+
+QButton and friends:
+--------------------
+ QIconButton removed, setPixmap() added to QButton to replace QIconButton
+
+QTableWidget:
+-------------
+ Renamed to QTableView (qtablevw.h)
+ Using int to identify rows and columns, not long.
+
+QRangeControl:
+--------------
+ Using int values, not long.
+
+QScrollBar:
+-----------
+ Using int values, not long.
+
+QListBox:
+---------
+ removed setStrList(), use clear(); insertStrList( ... , 0 ); instead
+
+QColor:
+-------
+ setRGB => setRgb
+ getRGB => rgb
+ setHSV => setHsv
+ getHSV => hsv
+
+QFontMetrics and QFontInfo:
+---------------------------
+ Get font metrics from QWidget::fontMetrics() and QPainter::fontMetrics().
+ Get font info from QWidget::fontInfo() and QPainter::fontInfo().
+ The QFontMetrics(QFont) constructor no longer works.
+ We had to do these changes to support printing and Windows.
+
+
+There are more changes, left out because we consider them minor and
+uninteresting or because we forgot to mention them. :)
diff --git a/dist/changes-0.93 b/dist/changes-0.93
new file mode 100644
index 0000000..892395b
--- /dev/null
+++ b/dist/changes-0.93
@@ -0,0 +1,74 @@
+Here is a list of (major) changes in Qt from 0.92 to 0.93.
+
+Bug-fixes, optimizations and much improved documentation, of course.
+
+There are not many changes in the API interface.
+Here's a list of the most important changes.
+
+
+QApplication:
+-------
+ setCursor(), restoreCursor() now uses a stack of cursors.
+ quit() is now a slot.
+ exit() replaces the old static quit() function.
+
+
+QColor:
+-------
+ New constructor that makes you set an RGB or HSV color directly,
+ like this: QColor(320, 255, 240, QColor::Hsv)
+
+
+QObject:
+--------
+ Has now a timerEvent(), which was moved from QWidget.
+ Compatible with old code.
+
+
+QPainter:
+---------
+ GC caching (internal optimization) makes drawing very fast.
+
+ drawShade* obsolete, moved to qdrawutl.h and renamed to qDrawShade*
+ - These are now global functions that take QPainter * and QColorGroup
+ - Added qDrawWinPanel and qDrawWinButton for Windows 95 look
+ - Added qDrawPlainRect
+
+
+QPixmap:
+-------
+ New fill() function that fills the pixmap with the background color
+ OR background pixmap of a widget.
+
+
+QRect:
+------
+ fixup() renamed to normalize(), returns a new QRect.
+
+
+QWidget:
+-------
+ New function setCaption(), setIcon() and setIconText(), moved from QWindow.
+
+
+New classes:
+------------
+ QSocketNotifier, makes it possible to write async socket code.
+
+
+New global functions:
+---------------------
+ qInstallMsgHandler() and qRound(), in qglobal.h.
+
+
+moc:
+----
+ Supports templates.
+
+
+Documentation:
+--------------
+ A tutorial.
+ Template classes (QArray, QList etc.) are documented.
+ Many more links in the examples.
+ Postscript documentation (around 400 pages).
diff --git a/dist/changes-0.94 b/dist/changes-0.94
new file mode 100644
index 0000000..5353e12
--- /dev/null
+++ b/dist/changes-0.94
@@ -0,0 +1,33 @@
+Here is a list of (major) changes in Qt from 0.93 to 0.94.
+
+Bug-fixes, optimizations and much improved documentation, of course.
+
+There are not many changes in the API interface.
+
+
+QTextStream:
+------------
+ eos() renamed to eof() for iostream compatibility.
+ operator>> for double, float, char*, QString are implemented
+ get() and getline() added.
+
+
+QDataStream:
+------------
+ eos() renamed to eof() for iostream compatibility.
+
+
+QPixmap:
+--------
+ Support for transparency: setMask(QBitmap) and bitBlt.
+
+
+QImage:
+-------
+ Scanline data is aligned on a 32 bit boundary (it used to be 8
+ bits). Conversion to and from QPixmap is now faster.
+
+
+Documentation:
+--------------
+ More documentation fixes.
diff --git a/dist/changes-0.95 b/dist/changes-0.95
new file mode 100644
index 0000000..205a476
--- /dev/null
+++ b/dist/changes-0.95
@@ -0,0 +1,54 @@
+Here is a list of (major) changes in Qt from 0.93 to 0.95.
+
+Bug-fixes, optimizations and much improved documentation, of course.
+
+There are few changes in the API (Qt header files).
+
+
+QPixmap:
+--------
+ Can draw transparent pixmaps. Call QPixmap::setMask(QBitmap) to
+ set a mask.
+
+
+QPainter:
+---------
+ Unified transformation. setWindow() and setViewport() now use
+ the same code as setWorldXForm() etc.
+ Internal xform routines have been optimized.
+
+
+QButton:
+--------
+ isUp() is obsolete, use !isDown() instead.
+ isOff() is obsolete, use !isOn() instead.
+ switchOn() is obsolete, use setOn(TRUE) instead.
+ switchOff() is obsolete, use setOn(FALSE) instead.
+
+
+QPushButton:
+------------
+ A push button can now be a toggle button.
+
+
+QWidget:
+--------
+ isActive() was never used and is now obsolete.
+
+
+QTextStream:
+------------
+ eos() renamed to eof() for iostream compatibility.
+ operator>> for double, float, char*, QString are implemented
+ get() and getline() added.
+
+
+QDataStream:
+------------
+ eos() renamed to eof() for iostream compatibility.
+
+
+QImage:
+-------
+ Scanline data is aligned on a 32 bit boundary (it used to be 8
+ bits). Conversion to and from QPixmap is now faster.
diff --git a/dist/changes-0.96 b/dist/changes-0.96
new file mode 100644
index 0000000..52555d1
--- /dev/null
+++ b/dist/changes-0.96
@@ -0,0 +1,263 @@
+Here is a list of (major) changes in Qt from 0.95 to 0.96.
+
+Bug-fixes, optimizations and improved documentation, of course.
+QClipboard is new.
+
+There are some changes in the API (Qt header files). Some functions have
+been renamed or the arguments have changed. The old versions of these
+functions have been obsoleted. A call to an obsoleted function will by
+default generate a runtime warning the first time it is called, but it
+will be executed correctly. If you really need to ship code fast, you can
+turn off the runtime obsolescence warnings by calling
+qSuppressObsoleteWarnings().
+
+Obsoleted functions will disappear in a future release. To get
+compile-time errors for each use of an obsoleted function, compile your
+code with -DTEST_OBSOLETE. You should recompile without this option when
+you have upgraded your code (otherwise, you may get linking errors).
+Note: it is probably not a good idea to compile the Qt library with
+-DTEST_OBSOLETE, it may cause problems if you try to link or run
+programs that use obsoleted functions.
+
+For new users: obsoleted functions are no longer documented, in fact they
+are not even visible in the documentation.
+
+*************** Changes that might affect runtime behavior *****************
+
+QFileInfo:
+----------
+ size() returns uint(previousy int), 0 if the size cannot be fetched (was -1).
+ Use isFile() to check.
+
+
+QPopupMenu
+------------
+ When a popup menu is a submenu (directly or as a subsub...menu) of a
+ menu bar(QMenuBar), the menu bar will now always emit the activated() or
+ highlighted() signal when a submenu emits these signals. This fix might
+ have undesired effects if you previously have worked around it by
+ connecting to signals both in menu bar and its submenus.
+
+*************** Changes that might generate compile errors *****************
+************** when compiling old code *****************
+
+QDataStream:
+-----------
+ Serialization of int and uint is no longer supported. Use INT32 and
+ UINT32 instead. This had to be changed in order to run Qt on 64-bit
+ architectures.
+
+
+QImage:
+-------
+ 24-bpp pixel format no longer supported, use 32-bpp instead.
+
+ This means that you have to use uint* instead of uchar* when accessing
+ pixel values. You cannot use the uchar* pointer directly, because the
+ pixel format depends on the byte order on the underlying platform. Use
+ qRgb() and friends (qcolor.h) to access the pixels.
+
+
+QWidget:
+--------
+ setMouseTracking() does not return bool. Call hasMouseTracking() to
+ determine the mouse tracking state. (This only affects code that
+ actually uses the return value.)
+
+ (There are other changes in QWidget, see below)
+
+
+*************** Type changes that might generate warnings: *****************
+
+
+QCache/QIntCache:
+-----------------
+ Using int/uint instead of long/ulong.
+
+
+QDate/QTime/QDateTime:
+----------------------
+ Using int/uint instead of long/ulong (MS-DOS required long).
+
+
+QIODevice/QBuffer/QFile:
+------------------------
+ Using int/uint instead of long/ulong.
+
+
+QKeyEvent:
+----------
+ ascii() now returns int (previously uchar).
+
+
+QTableView:
+------------
+ uint used instead of ulong (tableFlags() etc.)
+
+
+QTextStream:
+------------
+ int used instead of long (flags() etc.)
+
+
+***************** Obsoleted functions **********************
+
+QAccel:
+-------
+ enable(), disable() and isDisabled() are obsolete.
+ Use setEnabled(TRUE/FALSE) and !isEnabled() instead.
+ isItemDisabled(), enableItem(), disableItem() are obsolete.
+ Use !isItemEnabled(), setItemEnabled(TRUE/FALSE) instead.
+
+
+QApplication:
+-------------
+ cursor(), setCursor() and restoreCursor() obsoleted.
+ Use overrideCursor(), setOverrideCursor() and restoreOverrideCursor()
+ instead.
+
+
+QBitmap:
+--------
+ Constructor takes "const uchar *bits" instead of "const char *"
+ because of sign problems (uchar = unsigned char). Old constructors are
+ obsolete.
+
+
+QButton:
+--------
+ toggleButton() is obsolete, renamed to isToggleButton().
+
+
+QColor:
+-------
+ The functions QRED, QGREEN, QBLUE, QRGB, QGRAY obsolete.
+ Instead, use qRed, qGreen, qBlue, qRgb, qGray.
+
+
+QComboBox:
+----------
+ setStrList() obsolete, use clear() + insertStrList() instead.
+ string() obsolete, use text() instead.
+
+
+QLCDNumber:
+----------
+ longValue() is obsolete, use intValue() instead.
+
+
+QListbox:
+---------
+ The macro LBI_String is obsolete, use LBI_text instead.
+ string() obsolete, use text() instead.
+ stringCopy() and setStringCopy() are obsolete.
+
+
+QMenuData:
+----------
+ string() obsolete, use text() instead.
+ isItemDisabled(), enableItem(), disableItem() are obsolete.
+ Use !isItemEnabled(), setItemEnabled(TRUE/FALSE) instead.
+ checkItem() and uncheckItem() are obsolete.
+ Use setItemChecked(TRUE/FALSE) instead.
+
+
+QPainter:
+---------
+
+ drawBezier() is obsolete, general Bezier curves are rarely used and
+ cost too much. Qt will only support drawQuadBezier() (four-point
+ Bezier) in the future.
+
+QPointArray:
+-----------
+ move() is obsolete, use translate() instead.
+ bezier() is obsolete, general Bezier curves are rarely used and
+ cost too much. Qt will only support quadBezier() (four-point
+ Bezier) in the future.
+
+
+
+QRect:
+------
+ move() is obsolete, use moveBy() instead.
+ setTopLeft(), setTopRight(), setBottomLeft(), setBottomRight() and
+ setCenter() is obsolete, use moveTopLeft(), moveTopRight(),
+ moveBottomLeft(), moveBottomRight() and moveCenter() instead.
+
+
+QRegion:
+-------
+ move() is obsolete, use translate() instead.
+
+
+QSocketNotifier:
+----------------
+ enabled() is obsolete. Use isEnabled() instead.
+
+
+QWidget:
+--------
+ enable(), disable() and isDisabled() are obsolete.
+ Use setEnabled(TRUE/FALSE) and !isEnabled() instead.
+
+ setMinimumSize(), setMaximumSize(), minimumSize(), maximumSize() are obsolete
+ use setMinSize(), setMaxSize(), minSize(), maxSize() instead.
+
+ enableUpdates() obsolete, use isUpdatesEnabled()/setUpdatesEnabled().
+
+ id() is obsolete, it has been renamed to winId().
+
+***************** All other changes from 0.95 to 0.96 **********************
+
+moc
+----------
+ Gives a warning if no output is generated.
+
+
+qglobal.h:
+----------
+ INT32 and UINT32 typedefs changed to work with DEC Alpha.
+
+
+QApplication:
+-------------
+ clipboard() is new.
+
+
+QButtonGroup:
+-------------
+ Exclusive group setting added (isExclusive and setExclusive).
+ find() is new.
+
+
+QColor:
+-------
+ New type QRgb (uint), used for RGB triplet.
+
+
+QLineEdit:
+----------
+ You can now mark text, and copy and paste to/from the clipboard.
+
+
+QPaintDevice:
+---------
+ The bitblt function now takes an ignoreMask parameter. It has a default
+ value, so no old code will be broken.
+
+QPrinter:
+------------
+ fixed minor bugs in handling of polygons and beziers.
+
+
+QWidget:
+--------
+ New protected virtual functions styleChange(), backgroundColorChange(),
+ backgroundPixmapChange(), paletteChange() and fontChange().
+ These functions are called from setStyle(), setBackgroundColor() etc.
+ You can reimplement them to if you need to know when widget properties
+ changed and to optimize updates.
+
+ The destroyed() signal has been moved to QObject.
+
diff --git a/dist/changes-0.98 b/dist/changes-0.98
new file mode 100644
index 0000000..a36abeb
--- /dev/null
+++ b/dist/changes-0.98
@@ -0,0 +1,98 @@
+Here is a list of (major) changes in Qt from 0.96 to 0.98.
+As usual, we fixed some bugs and improved the documentation.
+
+
+*************** Changes that might affect runtime behavior *****************
+
+QWidget:
+--------
+ setMinimumSize() and setMaximumSize() now force the widget to
+ a legal size. resize() and setGeometry() obey the widget's
+ minimum/maximum size.
+
+ The default behaviour of QWidget::closeEvent is now to hide the widget,
+ not to delete it as before (which was potentially dangerous). This means
+ that if you have a top level widget and the user closes it via the close
+ box, it will now hide itself if you have not reimplemented closeEvent().
+ See the QWidget::closeEvent() and QCloseEvent documentation for details.
+
+ (There are other changes in QWidget, see below)
+
+
+*************** Changes that might generate compile errors *****************
+************** when compiling old code *****************
+
+Disabled copy constructors and operators=
+-----------------------------------------
+ Copy constructors and operators= are disabled in the classes that cannot
+ be copied (this includes all classes that inherit from QObject). This
+ will let the compiler find bugs in your code, you'll get compile time
+ errors where you most probably would have gotten core dumps before.
+ This change has been done in the following classes:
+
+ QAccel QApplication QBuffer QButton QButtonGroup QCheckBox QClipboard
+ QComboBox QConnection QDataStream QDialog QFile QFileDialog QFrame
+ QGroupBox QIODevice QImageIO QLCDNumber QLabel QLineEdit QListBox
+ QMenuBar QMenuData QMenuItem QMessageBox QMetaObject QObject
+ QPSPrinter QPaintDevice QPainter QPicture QPopupMenu QPrintDialog
+ QPrinter QPushButton QRadioButton QRangeControl QScrollBar QSignal
+ QSocketNotifier QTableView QTextStream QTimer QWidget QWindow
+
+ The other classes all have sensible copy constructors and operators=.
+
+QDate:
+------
+ These were protected, now private:
+ static const char *monthNames[];
+ static const char *weekdayNames[];
+ uint jd;
+
+QListBox:
+---------
+ The internals of QListBox are completely reworked. Definition of custom
+ QListBoxItems is now much easier. This is *not* compatible with the old
+ way of defining custom QLBItems. See the QListBoxItem documentation for
+ details.
+
+QTime:
+------
+ This was protected, now private:
+ uint ds;
+
+*************** Type changes that might generate warnings: *****************
+
+none
+
+***************** Obsoleted functions **********************
+
+none
+
+***************** All other changes from 0.96 to 0.98 **********************
+
+moc:
+----
+ Moc previously gave a syntax error when the word "class" was found
+ in a string outside a class declaration. This bug has now been
+ fixed.
+
+ More moc arguments, check the manpage for details.
+
+QFont:
+------
+ Two new convenience functions; bold() and setBold().
+
+QLabel:
+-------
+ setMargin() and margin() are new. setMargin() specifies a minimum margin
+ when the label contents are justified.
+
+QWidget:
+--------
+ You can specify a custom widget frame for top level widgets, including
+ no frame at all. See the widget constructor doc. for details.
+
+ Qt now has enter and leave events. Reimplement the virtual functions
+ void enterEvent( QEvent * ) and void leaveEvent( QEvent * ) to receive
+ events when the mouse cursor leaves or enters the visible part of the
+ widget.
+
diff --git a/dist/changes-0.99 b/dist/changes-0.99
new file mode 100644
index 0000000..80be555
--- /dev/null
+++ b/dist/changes-0.99
@@ -0,0 +1,60 @@
+Here is a list of user-visible changes in Qt from 0.98 to 0.99.
+As usual, we fixed some bugs and improved the documentation.
+
+Qt 0.99 includes makefiles for Linux, Solaris, SunOS, FreeBSD, OSF/1,
+Irix, BSD/OS, SCO and HP-UX.
+
+
+*************** Changes that might affect runtime behavior *****************
+
+none
+
+*************** Changes that might generate compile errors *****************
+************** when compiling old code *****************
+
+QVector:
+--------
+
+Removed operator const type**().
+
+*************** Type changes that might generate warnings: *****************
+
+none
+
+***************** Obsoleted functions **********************
+
+none
+
+***************** All other changes from 0.98 to 0.99 **********************
+
+QApplication:
+-------------
+Added beep() to make a sound.
+
+
+QFileInfo
+---------
+Added readLink() to return the name of the file a symlink points to,
+fixed bug in isSymlink().
+
+
+QPrinter:
+---------
+The X11 version now supports landscape printing and different paper sizes.
+
+
+QTableView:
+-----------
+The functions horizontalScrollBar and verticalScrollBar gives access
+to the internal scroll bars so you can connect to their signals.
+
+
+QWidget:
+--------
+Added sizeHint virtual function which is implemented in subclasses to
+return a recommended size.
+
+Added new function setFixedSize() to set both the minimum and maximum sizes
+at the same time.
+
+Added clearFocus() function to take keyboard focus from the widget.
diff --git a/dist/changes-1.0 b/dist/changes-1.0
new file mode 100644
index 0000000..cf9f7a1
--- /dev/null
+++ b/dist/changes-1.0
@@ -0,0 +1,62 @@
+Here is a list of user-visible changes in Qt from 0.99 to 1.0.
+As usual, we fixed some bugs and improved the documentation.
+
+
+****************************************************************************
+* Changes that might affect runtime behavior *
+****************************************************************************
+
+QComboBox:
+----------
+The combo box is resized to the largest item when automatic resizing
+is enabled. In 0.99 it resized itself to the current item.
+
+
+
+****************************************************************************
+* Changes that might generate compile errors *
+* when compiling old code *
+****************************************************************************
+
+none
+
+
+
+****************************************************************************
+* Type changes that might generate warnings: *
+****************************************************************************
+
+none
+
+
+
+****************************************************************************
+* Obsoleted functions *
+****************************************************************************
+
+All pre-1.0 obsoleted functions are now removed.
+
+
+
+****************************************************************************
+* All other changes from 0.99 to 1.0 *
+****************************************************************************
+
+QBitmap:
+--------
+Added constructor that takes a file name. Loads an image from file.
+
+
+QDialog:
+--------
+QDialog inherits QWidget instead of QWindow.
+
+
+QPixmap:
+--------
+Added constructor that takes a file name. Loads an image from file.
+
+
+QTimer:
+-------
+Added static function singleShot(). Convenient function.
diff --git a/dist/changes-1.1 b/dist/changes-1.1
new file mode 100644
index 0000000..ff9d2a7
--- /dev/null
+++ b/dist/changes-1.1
@@ -0,0 +1,110 @@
+Here is a list of user-visible changes in Qt from 1.0 to 1.1. As
+usual, we fixed some bugs, made some more speedups, and improved the
+documentation.
+
+
+****************************************************************************
+* Changes that might affect runtime behavior *
+****************************************************************************
+
+We've added keyboard interface to more widgets, and changed the
+default focus policy radically. For example, by default you can TAB
+to button, but it does not grab focus when you click it. The new
+QWidget::setFocusPolicy() function can be used to change focus policy
+for all widgets.
+
+The font matching algorithm has been tweaked in order to provide more
+predictable fonts in more cases. For some users (such as those with a
+75dpi X server and only 100dpi fonts installed) it may change the
+output of some programs.
+
+sizeHint() and hence default size has been tweaked for some widgets;
+QMenuBar and QPushButton in particular.
+
+
+****************************************************************************
+* Changes that might generate compile errors *
+* when compiling old code *
+****************************************************************************
+
+We've renamed "declare" in qgeneric.h to Q_DECLARE due to naming
+conflicts. Though we try to provide backward compatibility, there may
+be problems for a few programs.
+
+
+****************************************************************************
+* Type changes that might generate warnings: *
+****************************************************************************
+
+none
+
+
+****************************************************************************
+* Obsoleted functions *
+****************************************************************************
+
+none
+
+
+****************************************************************************
+* New classes *
+****************************************************************************
+
+QTabDialog (and QTabBar) provide a tabbed dialog. examples/pref shows
+simple usage of QTabDialog.
+
+QMultiLineEditor is the long-awaited multi-line editor.
+
+QGridLayout provides grid-like geometry management for any widget,
+with flexible row/column elasticity, minimum and maximum sizes.
+
+QBoxLayout provides more complex and powerful geometry management:
+boxes and widgets stacked inside other boxes, and finally a top-level
+box connected to a widget.
+
+QToolTip provides tool tips for any widget.
+
+
+****************************************************************************
+* Other changes from 1.0 to 1.1 *
+****************************************************************************
+
+Added QApplication::setColorMode() and colorMode().
+
+Added QColor::setAllocContext() and friends; these functions enable
+applications to allocate discardable colors and then discard them.
+
+Removed some GNU-make features from the makefiles.
+
+Added a QPalette constructor to construct an entire palette from a single
+background color, for convenience.
+
+moc output now has a version number #define.
+
+AIX support added. IRIX and NetBSD fixed.
+
+Rewrote a couple of functions to work around compiler bugs, or
+purify/boundschecker overzealousness.
+
+Fixed that ugly man-page SYNOPSIS bug.
+
+Added the static function QMessageBox::query().
+
+QRect::unite() now produces the desired results if exactly one of the
+rectangles is invalid.
+
+QObject::parent() is now public.
+
+QPainter::drawWinFocusRect() draws a Windows 95-style focus rectangle.
+(A focus rectangle can not be drawn using ordinary Windows drawing
+functions.)
+
+QApplication::processEvents() added to cater for long-running
+computations; it processes one round of window system events and
+timers and then returns.
+
+QComboBox has been extended to provide an editable combo box and Motif
+2.x compatible look and feel.
+
+We've also added a host of new workarounds for bugs in Borland C++,
+Microsoft VC++, DEC CXX and HP CC.
diff --git a/dist/changes-1.2 b/dist/changes-1.2
new file mode 100644
index 0000000..d4d2c2c
--- /dev/null
+++ b/dist/changes-1.2
@@ -0,0 +1,119 @@
+Here is a list of user-visible changes in Qt from 1.1 to 1.2. As
+usual, we fixed some bugs, made some more speedups, and improved the
+documentation.
+
+
+****************************************************************************
+* Changes that might affect runtime behavior *
+****************************************************************************
+
+QGridLayout::addWidget() and addMultiCellWidget(): The align parameter
+is now interpreted correctly. (Previously up/down and right/left were
+reversed.) If you have worked around this bug, your widgets may now be
+incorrectly aligned.
+
+QWidget: Every widget is now guaranteed move and resize events. The
+event is deferred until the first show(). This may cause problems in
+rare cases involving event filters.
+
+****************************************************************************
+* Changes that might generate compile errors *
+* when compiling old code *
+****************************************************************************
+
+none
+
+****************************************************************************
+* Type changes that might generate warnings: *
+****************************************************************************
+
+none
+
+****************************************************************************
+* Deprecated functions *
+****************************************************************************
+
+QApplication::setColorMode() and colorMode() will be obsoleted. Use
+setColorSpec() and colorSpec() instead.
+
+qchecksum() will be obsoleted. Please use qChecksum() instead.
+
+****************************************************************************
+* New classes *
+****************************************************************************
+
+QSlider is a widget to input values from a range. If you have been
+using a standalone QScrollBar, you will probably want to switch to a
+QSlider.
+
+OpenGL/Mesa support: QGLWidget, QGLContext and QGLFormat. To use these
+classes you need to build the Qt/OpenGL library (qgl) in qt/opengl/src.
+
+****************************************************************************
+* Other changes from 1.1 to 1.2 *
+****************************************************************************
+
+QApplication::setColorSpec() can specify private colormaps or
+non-default visuals
+
+New function QButton::setAutoRepeat().
+
+QComboBox: New function currentText(), two new insertion policies:
+AfterCurrent and BeforeCurrent.
+
+QCursor: added new global cursor blankCursor.
+
+QFont::key(), new function for caching.
+
+QFontMetrics::QFontMetrics( const QFont& ) new constructor gives
+fontmetrics directly for a font. This is much faster than using
+QWidget::fontMetrics() or QPainter::fontmetrics().
+
+QImage: image load/save functions:
+ QImage( const char *filename )
+ imageFormat(), load(), loadFromData(), save()
+ operator>>(), operator<<()
+ XPM support, QImage( const *xpm[] )
+ Alpha channel support:
+ hasAlphaBuffer(), setAlphaBuffer()
+ createAlphaMask(),
+ Automatic mask generaton: createHeuristicMask()
+ Filling the entire image: fill()
+
+QLCDNumber now supports filled segments:
+ setSegmentStyle(), segmentStyle()
+
+QLabel now supports accellerated labels:
+ setBuddy(), buddy() and a new constructor.
+
+QLineEdit new functions:
+ show/hide frame: setFrame(), frame()
+ password entry mode: setEchoMode(), echoMode()
+
+QMouseEvent: x() and y() convenience functions.
+
+QPainter: new constructor QPainter( const QPaintDevice* ) does automatic
+begin() and end(). New function flush().
+
+QPixmap new functions:
+ serialNumber() for caching purposes.
+ selfMask() QPixmap( const char *xpm[] )
+ createHeuristicMask()
+
+QPopupMenu: Added functions to enable checkmarks:
+ setCheckable(), isCheckable()
+
+QScrollBar: sizeHint() implemented.
+
+QTabBar now supports keyboard input. New function currentTab().
+
+QTabDialog: new function setOKButton().
+
+Added support for XFree86 on OS/2.
+
+New examples:
+ examples/tooltip demonstrates dynamic tooltips
+ examples/table demonstrates QTableView
+ examples/hello is a different program
+
+examples/xshape has been removed.
diff --git a/dist/changes-1.30 b/dist/changes-1.30
new file mode 100644
index 0000000..255d89c
--- /dev/null
+++ b/dist/changes-1.30
@@ -0,0 +1,278 @@
+Here is a list of user-visible changes in Qt from 1.2 to 1.30. As
+usual, we fixed some bugs, made some more speedups, and improved the
+documentation.
+
+Keyboard accelerators and traversal are significantly improved.
+
+Two new extensions included with Qt 1.30. They are not part of the library:
+
+Netscape plugin support. You can now write portable Netscape plugins
+using Qt. See the qt/extensions/nsplugin directory in the distribution.
+
+The ImageIO extension library gives a framework for adding new image
+formats, including PNG and JPEG in this release. See the qt/extensions/imageio
+directory in the distribution.
+
+The OpenGL extension for Qt now resides in qt/extensions.
+
+
+****************************************************************************
+* New classes *
+****************************************************************************
+
+* QProgressBar displays a progress bar.
+
+* QProgressDialog uses QProgressBar to give the user feedback during long
+ operations, as well as a means of aborting.
+
+* QMovie supports animated GIFs and incremental loading of images.
+
+* QHBoxLayout and QVBoxLayout are convenience classes giving a simpler
+ interface to QBoxLayout.
+
+* QValidator provides a mechanism for validating input.
+
+
+****************************************************************************
+* Enhancements from 1.2 to 1.30 *
+****************************************************************************
+
+QFont now supports charsets latin1 through latin9.
+
+New command-line arguments: -style motif and -style windows are
+accepted, as well as -style=motif and -style=windows, -visual, -ncols,
+-cmap.
+
+QMultiLineEdit is usable for much bigger documents than in 1.2
+
+More sizeHint() functions added, some existing ones tweaked.
+
+Many widgets have improved look and feel, particularly changes to
+Windows GUI style to match Windows more closely.
+
+Improved Postscript output.
+
+Color handling has been improved; better 32-to-8 conversion; Qt
+prefers to use Macintosh/Netscape color cube in 8-bit mode; more and
+better dithering support.
+
+GIF and PPM support.
+
+QMessageBox has a number of new static functions to replace the
+venerable message(): information(), warning(), critical() and about().
+
+QPopupMenu can now display icon and text in the same item.
+
+QPopupMenu::exec() to pop up a synchronous popup menu.
+
+QListBox now supports multi selection.
+
+QWidget::setBackgroundMode() gives a powerful way of managing widget
+backgrounds, to reduce flicker.
+
+QWidget::setIcon() now works under both X11 and Windows.
+
+The file dialog now remembers the previously selected directory.
+
+QApplication::setWinStyleHighlightColor() sets the highlight color in
+windows style.
+
+QApplication::setDoubleClickInterval() sets the double click timeout
+
+The layout example is new and more informative.
+
+There is a new openGL example; extension/opengl/examples/box/ shows
+how to control an openGL widget using Qt user interface components.
+
+
+****************************************************************************
+* Changes that might affect runtime behavior *
+****************************************************************************
+
+Tab/Shift-Tab handling has been improved a lot; this means that
+widgets which couldn't get keyboard focus before now can.
+
+Some widgets (buttons, tab bars, tab dialogs) semi-automatically set
+up keyboard accelerators. ( setText("E&xit") will give Alt-X as an
+accelerator.) In some very rare cases, this will cause changes of
+behaviour.
+
+The QColor::light() function now works, and anything which relied on
+its buggy behaviour might be a little darker than expected until changed,
+usually just recompiling (the default argument has also changed).
+
+The colors used have been tuned a bit; pixmaps that "know" the RGB
+values of colorGroup().background() and the like will look just a tiny
+bit wrong.
+
+QApplication calls setlocale to the local environment, except for
+LC_NUMERIC which is set to the C locale. This means that input/output
+of floating point numbers will always use '.' as the decimal separator,
+while all other locale dependant operations will use the default locale.
+
+
+****************************************************************************
+* Changes that might generate compile errors *
+* when compiling old code *
+****************************************************************************
+
+none
+
+****************************************************************************
+* Type changes that might generate warnings: *
+****************************************************************************
+
+none
+
+****************************************************************************
+* Deprecated functions *
+****************************************************************************
+
+QApplication::setColorMode()
+ - see QApplication::setColorSpec(int)
+QRegion::xor()
+ - see QRegion::eor()
+QMessageBox::message()
+ - see QMessageBox::information/warning/critical
+QMultiLineEdit::getCursorPosition()
+ - see QMultiLineEdit::cursorPosition()
+QTabDialog::setOKButton()
+ - see QTabDialog::setOkButton()
+
+****************************************************************************
+* New public/protected functions added to existing classes *
+****************************************************************************
+
+QAccel::repairEventFilter()
+QApplication::activeModalWidget()
+QApplication::activePopupWidget()
+QApplication::allWidgets()
+QApplication::doubleClickInterval()
+QApplication::hasGlobalMouseTracking()
+QApplication::processEvents(int)
+QApplication::processOneEvent()
+QApplication::setDoubleClickInterval(int)
+QApplication::setGlobalMouseTracking(bool)
+QApplication::setWinStyleHighlightColor(QColor const &)
+QApplication::winStyleHighlightColor()
+QApplication::x11ProcessEvent(_XEvent *)
+QBoxLayout::className() const
+QButton::accel() const
+QButton::animateClick()
+QButton::enabledChange(bool)
+QButton::setAccel(int)
+QComboBox::clearValidator()
+QComboBox::setStyle(GUIStyle)
+QComboBox::setValidator(QValidator *)
+QComboBox::validator() const
+QDir::convertSeparators(char const *)
+QFrame::sizeHint() const
+QGridLayout::addColSpacing(int, int)
+QGridLayout::addRowSpacing(int, int)
+QGridLayout::className() const
+QImage::convertDepth(int, int) const
+QImage::create(QSize const &, int, int, QImage::Endian)
+QImage::createAlphaMask(int) const
+QImage::inputFormats()
+QImage::outputFormats()
+QImage::pixel(int, int) const
+QImage::pixelIndex(int, int) const
+QImage::setPixel(int, int, unsigned int)
+QImage::valid(int, int) const
+QImageIO::inputFormats()
+QImageIO::outputFormats()
+QLabel::movie() const
+QLabel::setMovie(QMovie const &)
+QLayout::className() const
+QLineEdit::clearValidator()
+QLineEdit::setValidator(QValidator *)
+QLineEdit::sizeHint() const
+QLineEdit::validator() const
+QListBox::clearSelection()
+QListBox::focusOutEvent(QFocusEvent *)
+QListBox::highlighted(char const *)
+QListBox::isMultiSelection() const
+QListBox::isSelected(int) const
+QListBox::selected(char const *)
+QListBox::selectionChanged()
+QListBox::setMultiSelection(bool)
+QListBox::setSelected(int, bool)
+QListBox::toggleCurrentItem()
+QMenuBar::heightForWidth(int) const
+QMenuBar::leaveEvent(QEvent *)
+QMenuBar::separator() const
+QMenuBar::setSeparator(QMenuBar::Separator)
+QMenuData::changeItem(QPixmap const &, char const *, int)
+QMenuData::insertItem(QPixmap const &, char const *, QObject const *, char const *, int)
+QMenuData::insertItem(QPixmap const &, char const *, QPopupMenu *, int, int)
+QMenuData::insertItem(QPixmap const &, char const *, int, int)
+QMessageBox::about(QWidget *, char const *, char const *)
+QMessageBox::aboutQt(QWidget *, char const *)
+QMessageBox::buttonText(int) const
+QMessageBox::critical(QWidget *, char const *, char const *, char const *, char const *, char const *, int, int)
+QMessageBox::critical(QWidget *, char const *, char const *, int, int, int)
+QMessageBox::icon() const
+QMessageBox::iconPixmap() const
+QMessageBox::information(QWidget *, char const *, char const *, char const *, char const *, char const *, int, int)
+QMessageBox::information(QWidget *, char const *, char const *, int, int, int)
+QMessageBox::setButtonText(int, char const *)
+QMessageBox::setIcon(QMessageBox::Icon)
+QMessageBox::setIconPixmap(QPixmap const &)
+QMessageBox::setStyle(GUIStyle)
+QMessageBox::standardIcon(QMessageBox::Icon, GUIStyle)
+QMessageBox::warning(QWidget *, char const *, char const *, char const *, char const *, char const *, int, int)
+QMessageBox::warning(QWidget *, char const *, char const *, int, int, int)
+QMultiLineEdit::cursorPoint() const
+QMultiLineEdit::cursorPosition(int *, int *) const
+QMultiLineEdit::getMarkedRegion(int *, int *, int *, int *) const
+QPainter::drawPoints(QPointArray const &, int, int)
+QPainter::drawWinFocusRect( int, int, int, int, const QColor & )
+QPalette::detach()
+QPicture::data() const
+QPicture::isNull() const
+QPicture::setData(char const *, unsigned int)
+QPicture::size() const
+QPixmap::convertFromImage(QImage const &, int)
+QPixmap::load(char const *, char const *, int)
+QPixmap::loadFromData(unsigned char const *, unsigned int, char const *, int)
+QPopupMenu::exec()
+QPopupMenu::setActiveItem(int)
+QRegion::eor(QRegion const &) const
+QSize::transpose()
+QTabBar::setCurrentTab(QTab *)
+QTabBar::setCurrentTab(int)
+QTabBar::setShape(QTabBar::Shape)
+QTabBar::shape() const
+QTabBar::tab(int)
+QTabBar::tabList()
+QTabDialog::addTab(QWidget *, QTab *)
+QTabDialog::hasOkButton() const
+QTabDialog::selected(char const *)
+QTabDialog::setTabBar(QTabBar *)
+QTabDialog::showPage(QWidget *)
+QTabDialog::styleChange(GUIStyle)
+QTabDialog::tabBar() const
+QTabDialog::tabLabel(QWidget *)
+QTableView::minViewX() const
+QTableView::minViewY() const
+QTableView::updateTableSize()
+QToolTip::font()
+QToolTip::palette()
+QToolTip::setFont(QFont const &)
+QToolTip::setPalette(QPalette const &)
+QWidget::backgroundMode() const
+QWidget::create(unsigned int, bool, bool)
+QWidget::destroy(bool, bool)
+QWidget::focusProxy() const
+QWidget::focusWidget() const
+QWidget::isVisibleToTLW() const
+QWidget::setBackgroundMode(QWidget::BackgroundMode)
+QWidget::setFixedHeight(int)
+QWidget::setFixedWidth(int)
+QWidget::setFocusProxy(QWidget *)
+QWidget::setMaximumHeight(int)
+QWidget::setMaximumWidth(int)
+QWidget::setMinimumHeight(int)
+QWidget::setMinimumWidth(int)
+QWidget::setTabOrder(QWidget *, QWidget *)
+QWidget::update(QRect const &)
diff --git a/dist/changes-1.31 b/dist/changes-1.31
new file mode 100644
index 0000000..b6b2d65
--- /dev/null
+++ b/dist/changes-1.31
@@ -0,0 +1,34 @@
+1.31 is a bug-fix release of Qt and only contains minor changes compared
+to Qt 1.30
+
+Here is a list of the bug-fixes made in Qt from 1.30 to 1.31.
+
+Changing the font of a QButton, QPushButton, QCheckBox or QRadioButton now
+works correctly.
+
+QRadiobutton: Correct toggling in a QButtonGroup when activated by an
+ accelerator.
+
+QPopupMenu: Items updated correctly when activated by an accelerator.
+
+QProgressBar: Base color is no longer fixed to white.
+
+QProgressDialog: setLabel() and setCancelButton() now ensure that a given
+ widget is shown and is a child of QProgressDialog.
+
+QWidget: setEnabled( FALSE ) now moves focus correctly.
+
+QLineEdit and
+QMultiLineEdit: In keyPressEvent() backspace no longer inserts an
+ unprintable character with some rare keyboard layouts.
+
+QMenubar: Mouse presses on items without any popup menu are now
+ always recognized.
+
+Changes to fix compile problems under IRIX.
+
+Changes to fix compile problems on some versions of AIX.
+
+Changes to fix compile problems with aCC on HP-UX.
+
+Minor documentation fixes.
diff --git a/dist/changes-1.39-19980327 b/dist/changes-1.39-19980327
new file mode 100644
index 0000000..3c5843d
--- /dev/null
+++ b/dist/changes-1.39-19980327
@@ -0,0 +1,963 @@
+src/widgets/qlabel.cpp 2.21 agulbra +9 -5
+
+ new sizeHint(); "yes\nyes" is as tall as "Yes\nYes"
+
+
+src/tools/qstrlist.h 2.7 hanord +10 -9 (1997/10/16)
+
+ Fixed STL crash reported by ust@egd.igd.fhg.de
+
+
+src/kernel/qregion.cpp 2.5 agulbra +3 -3 (1997/10/19)
+src/kernel/qregion.h 2.6 agulbra +2 -2
+
+ USL C++ understands xor
+
+
+src/kernel/qkeycode.h 2.5 hanord +13 -2 (1997/10/22)
+
+ Added function keys F25..F35 for X only
+
+
+src/widgets/qpushbt.cpp 2.33 hanord +5 -9
+
+ Always clear button background in Windows style
+
+
+src/widgets/qpushbt.cpp 2.32 hanord +8 -8
+
+ Fixed background color for windows style
+
+
+src/kernel/qcur_win.cpp 2.5 hanord +15 -5
+
+ Fix the cursor bug on Win95
+
+
+src/kernel/qobject.cpp 2.36 eiriken +3 -3
+src/kernel/qwid_win.cpp 2.39 eiriken +19 -17
+
+ Fixed bugs in setMaximumSize and setMinimumSize
+
+
+src/widgets/qlabel.cpp 2.23 agulbra +11 -2
+src/widgets/qlabel.h 2.5 agulbra +2 -1
+
+ add clear()
+
+
+src/kernel/qapp.cpp 2.38 eiriken +8 -2 (1997/10/31)
+
+ Added warning in QApplication::palette() if called before a QApplication
+ is created.
+
+
+src/kernel/qcolor.h 2.8 hanord +6 -7
+
+ Fixed the color== operator
+
+
+src/kernel/qcol_win.cpp 2.16 hanord +13 -41
+src/kernel/qcolor.cpp 2.12 hanord +118 -36
+src/kernel/qcolor.h 2.7 hanord +7 -6
+
+ Moved platform independent functions into qcolor.cpp
+ Optimized setNamedColor for #RRGGBB style color names.
+ Doc warns that RGB bit format may change in the future.
+ setRgb(QRgb) optimized.
+ Added static class member color_init (not a global file variable)
+
+
+src/kernel/qapp_win.cpp 2.64 hanord +67 -50
+
+ Detects the Windows version using GetVersionEx.
+ Moved the timer function to the appropriate section.
+
+
+src/kernel/qclb_x11.cpp 2.4 agulbra +6 -5
+
+ call XInternAtoms() once instead of XInternAtom N times. should
+ improve start-up time by about 3-5 times the ping time to the server.
+
+
+src/widgets/qlistbox.h 2.12 agulbra +2 -1 (1997/11/09)
+
+ don't let down-arrow set the current item to be half-visible
+
+
+src/kernel/qpainter.cpp 2.17 hanord +61 -5 (1997/11/12)
+src/kernel/qpainter.h 2.12 hanord +2 -1
+
+ Added new begin() which takes a paint device and a widget to copy pen, font
+ etc. from.
+ Fixed inverted dense pattern on Windows.
+
+
+src/widgets/qslider.cpp 2.45 paul +3 -2
+
+ fixing bug when setting value in constructor followed by resetting value
+ to zero.
+
+
+src/kernel/qimage.cpp 2.65.2.1 agulbra +4 -4
+
+ avoid segfaults for image handlers where either read or
+ write is 0. enables gif image handlers.
+
+
+src/qt.pro 2.6 agulbra +4 -2 (1997/11/20)
+src/kernel/qdragobject.cpp 2.1 agulbra initial checkin
+src/kernel/qdragobject.h 2.1 agulbra initial checkin
+src/kernel/qevent.h 2.6 agulbra +59 -2
+src/widgets/qlined.cpp 2.54 agulbra +92 -3
+src/widgets/qlined.h 2.19 agulbra +3 -1
+
+ QDragObject and related goodies. not ready for prime time, but hey!
+
+
+src/widgets/qcombo.cpp 2.68 agulbra +52 -2
+src/widgets/qcombo.h 2.20 agulbra +5 -1
+
+ new function setListBox() - allows custom combos like the ones in ACT
+
+
+src/kernel/qapp_win.cpp 2.65 warwick +4 -3
+src/kernel/qwid_win.cpp 2.43 warwick +51 -19
+
+ Reimplement QWidget::recreate(), using almost same code as X11 version.
+
+
+src/kernel/qptr_win.cpp 2.21.2.1 hanord +8 -8 (1997/11/25)
+
+ Fixed bad dense patterns
+
+
+src/widgets/qchkbox.cpp 2.17 warwick +16 -7 (1997/11/28)
+src/widgets/qradiobt.cpp 2.21 warwick +18 -7
+
+ Check pixmap in sizeHint()
+
+
+src/kernel/qpainter.h 2.14 hanord +3 -1 (1997/12/02)
+
+ Added xForm and xFormDev with index,npoints arguments
+
+
+src/kernel/qpainter.cpp 2.19 hanord +399 -2
+src/kernel/qptr_x11.cpp 2.31 hanord +45 -333
+
+ Moved platform-independent xForm functions into qpainter.cpp.
+ Fixed bugs in drawPoints, drawPolyline, drawLineSegments and
+ drawPolygon where index > 0 or npoints < array size.
+ Added xForm(pointarray,index,size) and similar xFormDev().
+ Now Purify should shut up.
+ Removed some tests for cpen.style() != NoPen. Makes some code
+ somewhat slower, but makes QPainter more consistent.
+
+
+src/kernel/qptd_x11.cpp 2.9 hanord +11 -3
+src/kernel/qptr_x11.cpp 2.30 hanord +11 -5
+
+ Set graphics exposures to FALSE except when bitBlt from widget to widget
+
+
+src/kernel/qpm_win.cpp 2.29 hanord +12 -12
+
+ When converting an image to a pixmap, don't create a new pixmap unless
+ the depth or dimension changes.
+
+
+src/widgets/qlined.cpp 2.56 agulbra +64 -41
+src/widgets/qlined.h 2.21 agulbra +6 -3
+
+ various small fixes, mostly to draw correctly. added setFont() and
+ setEnabled() to update correctly, I guess we need setStyle() and
+ setPalette() too.
+
+
+src/dialogs/qmsgbox.cpp 2.40 warwick +8 -6 (1997/12/08)
+
+ Correct layout for text smaller than icon.
+
+
+src/widgets/qprogbar.cpp 2.15 warwick +22 -8
+
+ Ensure display is up-to-date when a progress bar is re-used.
+
+
+src/kernel/qptr_x11.cpp 2.32 warwick +4 -2
+
+ Fix out-of-bounds clipping.
+
+
+src/kernel/qapp_win.cpp 2.67 hanord +23 -8
+
+ Get the app name even for console applications (when WinMain isn't called)
+
+
+src/kernel/qasyncimageio.cpp 1.23 warwick +57 -26
+src/kernel/qasyncimageio.h 1.12 warwick +2 -1
+
+ Handle nasty GIFs.
+
+
+src/widgets/qspinbox.cpp 2.24 aavit +170 -25 (1997/12/09)
+src/widgets/qspinbox.h 2.14 aavit +17 -8
+
+ Improved QSpinbox - now easier to subclass; and "Auto" choice added.
+
+
+src/tools/qregexp.cpp 2.6 hanord +15 -12
+
+ Fixed serious bug: regular expression with characters > 127 now works.
+
+
+src/kernel/qprn_x11.cpp 2.6 warwick +3 -3
+
+ QPrinter::newPage() previous always returned FALSE. Fixed.
+
+
+src/widgets/qscrbar.cpp 2.30 agulbra +6 -6
+
+ be a bit kinder and gentler about the hot zone in windows style. the
+ old limit (30 pixels to either side of the bar) was too tight
+
+
+src/kernel/qapp_win.cpp 2.68 hanord +6 -3 (1997/12/15)
+
+ Fixed the modal loop problem related to synch popups with signals
+
+
+src/widgets/qlined.cpp 2.57 agulbra +8 -8 (1998/01/05)
+
+ don't allow paste from ****'ed line edits
+
+
+src/kernel/qasyncimageio.cpp 1.25 warwick +14 -6 (1998/01/06)
+
+ Be more forgiving about broken GIF - as forgiving as netscape
+
+
+src/kernel/qasyncimageio.cpp 1.24 warwick +5 -2
+
+ Protection against more broken GIFs.
+
+
+extensions/xt/doc.conf 1.1 warwick initial checkin (1998/01/07)
+extensions/xt/doc/annotated.doc 1.1 warwick initial checkin
+extensions/xt/doc/classes.doc 1.1 warwick initial checkin
+extensions/xt/doc/examples.doc 1.1 warwick initial checkin
+extensions/xt/doc/index.doc 1.1 warwick initial checkin
+extensions/xt/examples/mainlyMotif/editor.cpp 1.1 warwick initial checkin
+extensions/xt/examples/mainlyMotif/editor.pro 1.1 warwick initial checkin
+extensions/xt/examples/mainlyQt/editor.cpp 1.1 warwick initial checkin
+extensions/xt/examples/mainlyQt/editor.pro 1.1 warwick initial checkin
+extensions/xt/examples/mainlyXt/editor.cpp 1.1 warwick initial checkin
+extensions/xt/examples/mainlyXt/editor.pro 1.1 warwick initial checkin
+extensions/xt/src/qxt.cpp 1.1 warwick initial checkin
+extensions/xt/src/qxt.h 1.1 warwick initial checkin
+extensions/xt/src/qxt.pro 1.1 warwick initial checkin
+
+ Qt Xt/Motif Extension, examples, docs.
+
+
+src/kernel/qevent.cpp 2.7 paul +48 -9 (1998/01/08)
+src/kernel/qevent.h 2.9 paul +17 -1
+src/kernel/qgmanagr.cpp 2.22 paul +97 -10
+src/kernel/qgmanagr.h 2.7 paul +3 -1
+src/kernel/qlayout.cpp 2.27 paul +2 -23
+src/kernel/qwid_win.cpp 2.44 paul +19 -3
+src/kernel/qwidget.cpp 2.85 paul +10 -2
+
+ New events ChildInserted, ChildRemoved and LayoutHint. Not tested on Windows.
+ Use new events in GM.
+
+
+src/qt.pro 2.11 paul +2 -0
+src/widgets/qsplitter.cpp 1.1 paul initial checkin
+src/widgets/qsplitter.h 1.1 paul initial checkin
+
+ New widget QSplitter
+
+
+src/kernel/qpntarry.cpp 2.12 warwick +4 -4
+
+ Fix quad bezier for small curves
+
+
+src/kernel/qwidget.cpp 2.87 agulbra +71 -16
+src/kernel/qwidget.h 2.38 agulbra +5 -2
+src/kernel/qwindefs.h 2.20 agulbra +2 -1
+
+ added setAutoMinimumSize(). fixed a couple of documentation errors.
+
+
+src/kernel/qwid_win.cpp 2.45 warwick +4 -3 (1998/01/13)
+
+ Fix case of recreate(0,...) on tlw.
+
+
+src/widgets/qbutton.cpp 2.40.2.1 agulbra +7 -7
+
+ paint correctly when there is a background color
+
+
+src/widgets/qlined.cpp 2.58 paul +18 -8 (1998/01/14)
+
+ Correct cursor when end(). Better blinking
+
+
+src/dialogs/qtabdlg.cpp 2.36 agulbra +172 -213
+src/dialogs/qtabdlg.h 2.17 agulbra +2 -1
+src/kernel/qgmanagr.cpp 2.23 agulbra +22 -21
+src/widgets/qtabbar.cpp 2.30 agulbra +12 -15
+src/widgets/qwidgetstack.cpp 2.1 agulbra initial checkin
+src/widgets/qwidgetstack.h 2.1 agulbra initial checkin
+
+ The new class QWidgetStack encapsulates a bunch of widgets of the same
+ size, where the one on top of the stack is visible. It provides slots
+ to raise any of the widgets to the top of the stack and so on.
+
+ QTabDialog now uses QWidgetStack. A couple of hacks went away, and it
+ now uses QBoxLayout to manage its children. Some more minor changes
+ are desirable here.
+
+ QTabBar now uses autoMinimumSize() appropriately, and is closer to the
+ new Windows look and feel (ie. it lost the bold stuff). QTabDialog is
+ adapted accordingly.
+
+ QGManager now has a one-line VERY INEFFICENT fix that SORELY NEEDS
+ OPTIMIZATION to make layout hint events propagate outwards correctly.
+ There's about twenty hashes on the relevant line. This change is the
+ whole point of the check-in: Most things that use QWidgetStack will
+ really need this fix. Paul, optimize it, please?
+
+
+src/kernel/qobject.cpp 2.42 agulbra +13 -2
+
+ show geometry and visibility too in dumpObjectTree()
+
+
+src/qt.pro 2.12 agulbra +10 -0
+src/widgets/qmainwindow.cpp 2.1 agulbra initial checkin
+src/widgets/qmainwindow.h 2.1 agulbra initial checkin
+src/widgets/qstatusbar.cpp 2.1 agulbra initial checkin
+src/widgets/qstatusbar.h 2.1 agulbra initial checkin
+src/widgets/qtoolbar.cpp 2.1 agulbra initial checkin
+src/widgets/qtoolbar.h 2.1 agulbra initial checkin
+src/widgets/qtoolbutton.cpp 2.1 agulbra initial checkin
+src/widgets/qtoolbutton.h 2.1 agulbra initial checkin
+
+ several new classes. very rough and ready, but they're good enough to
+ talk about and play with.
+
+
+src/widgets/qframe.cpp 2.11 paul +33 -5
+src/widgets/qframe.h 2.4 paul +8 -2
+
+ New function setMargin()
+
+
+examples/showimg/showimg.cpp 2.18 warwick +25 -6 (1998/01/21)
+examples/showimg/showimg.h 2.6 warwick +3 -1
+src/kernel/qimage.h 2.22 warwick +5 -1
+
+ QImage::smoothScale(int with, int height)
+
+
+src/widgets/qpopmenu.h 2.10 agulbra +3 -2
+
+ new signal aboutToShow(), like the one in QTabDialog.
+
+
+src/tools/qstring.cpp 2.16 warwick +44 -3 (1998/01/23)
+
+ Make QString implicitly shared. Activates in Qt 2.00.
+ Try enabling this protection next time you have some weird bug.
+
+
+src/kernel/qclb_x11.cpp 2.6 hanord +155 -46
+
+ INCR paste works.
+
+
+src/qt.pro 2.13 agulbra +2 -0
+src/widgets/qwhatsthis.cpp 2.1 agulbra initial checkin
+src/widgets/qwhatsthis.h 2.1 agulbra initial checkin
+
+ what's this?
+ it's not perfect, but it definitely is nice.
+
+
+extensions/imageio/src/qpngio.cpp 1.6 warwick +9 -4 (1998/01/27)
+
+ Don't set alpha if not necessary.
+
+
+src/kernel/qpm_win.cpp 2.31 hanord +5 -11
+
+ Preserves mask when converting an image to a pixmap
+
+
+src/kernel/qapp.cpp 2.42 agulbra +7 -7
+
+ corrected dark shadow colour - has been too dark since warwick fixed
+ QColor::dark().
+
+
+src/kernel/qprn_win.cpp 2.6 hanord +11 -5
+
+ Printing now works on DeskJet 890c (StretchDIBits didn't work)
+ We now do StretchBlt.
+
+
+src/widgets/qpopmenu.h 2.12 warwick +2 -1 (1998/02/06)
+
+ Allow position in QPopupMenu::exec(...)
+
+
+src/kernel/qpntarry.cpp 2.13 warwick +14 -15
+
+ QPointArray::makeArc() now works with negative "alen" angle.
+ - QPainter::drawArc() uses this for arcs under transformation.
+
+
+src/widgets/qbttngrp.cpp 2.8 aavit +34 -10
+src/widgets/qbttngrp.h 2.3 aavit +2 -1
+
+ bugfix: Untoggling of other buttons in an exclusive group
+ if a button was set with setChecked() did not work.
+
+
+src/widgets/qslider.cpp 2.47 agulbra +15 -28
+
+ made valueChanged() work correctly with middle-button dragging when
+ !tracking(). simplified the mouse state machine a little.
+
+
+src/tools/qdir.cpp 2.16 hanord +4 -8 (1998/02/11)
+src/tools/qfile.cpp 2.13 hanord +36 -2
+src/tools/qfile.h 2.3 hanord +4 -1
+
+ Added QFile::remove() which removes a file
+
+
+src/widgets/qlined.cpp 2.60 agulbra +12 -2 (1998/02/19)
+src/widgets/qlined.h 2.23 agulbra +5 -3
+
+ add clear(), make setText() and insert() public
+
+
+src/widgets/qlistview.cpp 2.52 agulbra +33 -2
+src/widgets/qlistview.h 2.25 agulbra +3 -1
+
+ added a sizeHint()
+
+
+src/tools/qdir.cpp 2.17 agulbra +4 -4
+src/tools/qfileinf.cpp 2.7 agulbra +5 -4
+
+ do what the docs say for absFilePath() (ie. no /usr/../usr/bin/ls names)
+
+
+src/widgets/qtablevw.cpp 2.41 agulbra +31 -23
+
+ scrollLast*Cell and clipToCell could not be combined. now they can.
+
+
+src/widgets/qframe.cpp 2.13 warwick +4 -4 (1998/02/20)
+
+ Fix Box and H/VLine frames with margin() != 0.
+
+
+src/qt.pro 2.15 warwick +2 -0
+src/widgets/qlabelled.cpp 1.1 warwick initial checkin
+src/widgets/qlabelled.h 1.1 warwick initial checkin
+
+ QLabelled widget (experimental)
+
+
+src/kernel/qapp.cpp 2.45 agulbra +28 -13
+src/kernel/qapp_win.cpp 2.73 agulbra +14 -13
+
+ deliver mouse events to application-wide event filters even if the
+ receiver object is disabled. this allows tooltips to work for
+ disabled widgets.
+
+
+src/widgets/qcombo.h 2.23 agulbra +3 -2
+
+ make eventFilter() public. this may break binary compatibility on
+ msvc++, if anyone's built a dll yet.
+
+
+src/widgets/qradiobt.cpp 2.23 agulbra +7 -17
+
+ support exclusive button group behaviour even when one of the buttons
+ is not a QRadioButton.
+
+
+src/qt.pro 2.16 paul +6 -0
+src/widgets/qgrid.cpp 1.1 paul initial checkin
+src/widgets/qgrid.h 1.1 paul initial checkin
+src/widgets/qhbox.cpp 1.1 paul initial checkin
+src/widgets/qhbox.h 1.1 paul initial checkin
+src/widgets/qvbox.cpp 1.1 paul initial checkin
+src/widgets/qvbox.h 1.1 paul initial checkin
+
+ New layout widgets
+
+
+src/tools/qdstream.h 2.4 warwick +2 -2
+
+ QDataStream::eof() now returns TRUE if no device is set (as documented).
+
+
+src/tools/qfile.cpp 2.14 warwick +36 -19
+src/tools/qiodev.cpp 2.8 warwick +8 -5
+
+ Test the file in QFile::open(FILE*) to see if it is seekable (not a
+ char device, fifo, or socket), rather than assuming stdin/out/err are not.
+ Set type to Sequential for such files, not default Direct.
+
+ Don't use feof(fh) to mean at()==size(). QFile::atEnd() now works the
+ same as QIODevice and QBuffer.
+
+ setStatus(IO_ReadError) in appropriate places (wasn't ever set for files).
+ Reading EOF is considered an error in the QIODevice model (see QBuffer).
+
+
+src/kernel/qasyncimageio.cpp 1.26 warwick +37 -30
+src/kernel/qasyncimageio.h 1.13 warwick +2 -2
+
+ Work for even weirder GIFs.
+
+
+src/tools/qfile.cpp 2.16 agulbra +5 -4 (1998/02/25)
+
+ -1 in case of error...
+
+
+src/qt.pro 2.17 paul +2 -0
+src/widgets/qbuttonrow.cpp 1.1 paul initial checkin
+src/widgets/qbuttonrow.h 1.1 paul initial checkin
+
+ New layout widget
+
+
+examples/aclock/GNUmakefile 2.1 hanord initial checkin
+examples/aclock/Makefile 2.2 hanord +6 -53
+examples/aclock/aclock.pro 1.4 hanord +6 -6
+examples/application/GNUmakefile 1.1 hanord initial checkin
+examples/application/application.pro 1.2 hanord +6 -6
+examples/biff/GNUmakefile 2.1 hanord initial checkin
+examples/biff/Makefile 2.2 hanord +6 -54
+examples/biff/biff.pro 1.4 hanord +6 -6
+examples/connect/GNUmakefile 2.1 hanord initial checkin
+examples/connect/Makefile 2.2 hanord +6 -46
+examples/connect/connect.pro 1.4 hanord +5 -5
+examples/cursor/GNUmakefile 2.1 hanord initial checkin
+examples/cursor/Makefile 2.2 hanord +6 -46
+examples/cursor/cursor.pro 1.4 hanord +5 -5
+examples/dclock/GNUmakefile 2.1 hanord initial checkin
+examples/dclock/Makefile 2.2 hanord +6 -54
+examples/dclock/dclock.pro 1.4 hanord +6 -6
+examples/desktop/GNUmakefile 2.1 hanord initial checkin
+examples/desktop/Makefile 2.2 hanord +6 -46
+examples/desktop/desktop.pro 1.4 hanord +5 -5
+examples/dirview/GNUmakefile 1.1 hanord initial checkin
+examples/drawdemo/GNUmakefile 2.1 hanord initial checkin
+examples/drawdemo/Makefile 2.2 hanord +6 -52
+examples/drawdemo/drawdemo.pro 1.4 hanord +5 -5
+examples/forever/GNUmakefile 2.1 hanord initial checkin
+examples/forever/Makefile 2.3 hanord +6 -42
+examples/forever/forever.pro 1.4 hanord +5 -5
+examples/hello/GNUmakefile 2.1 hanord initial checkin
+examples/hello/Makefile 2.8 hanord +6 -61
+examples/hello/hello.pro 1.5 hanord +6 -5
+examples/layout/GNUmakefile 1.1 hanord initial checkin
+examples/layout/Makefile 1.11 hanord +7 -50
+examples/layout/layout.pro 1.5 hanord +5 -4
+examples/life/GNUmakefile 2.1 hanord initial checkin
+examples/life/Makefile 2.2 hanord +6 -57
+examples/life/life.pro 2.3 hanord +8 -8
+examples/menu/GNUmakefile 2.1 hanord initial checkin
+examples/menu/Makefile 2.4 hanord +6 -55
+examples/menu/menu.pro 2.3 hanord +5 -5
+examples/movies/GNUmakefile 1.1 hanord initial checkin
+examples/movies/Makefile 1.11 hanord +6 -50
+examples/movies/movies.pro 1.4 hanord +5 -5
+examples/network/GNUmakefile 1.1 hanord initial checkin
+examples/network/Makefile 1.7 hanord +6 -82
+examples/picture/GNUmakefile 2.1 hanord initial checkin
+examples/picture/Makefile 2.2 hanord +6 -49
+examples/picture/picture.pro 1.2 hanord +6 -3
+examples/pref/GNUmakefile 1.1 hanord initial checkin
+examples/pref/Makefile 1.4 hanord +6 -53
+examples/pref/pref.pro 1.4 hanord +6 -6
+examples/progress/GNUmakefile 1.1 hanord initial checkin
+examples/progress/Makefile 1.9 hanord +6 -47
+examples/progress/progress.pro 1.3 hanord +5 -5
+examples/qmag/GNUmakefile 2.1 hanord initial checkin
+examples/qmag/Makefile 2.2 hanord +6 -52
+examples/qmag/qmag.pro 2.3 hanord +5 -5
+examples/qwerty/GNUmakefile 1.1 hanord initial checkin
+examples/qwerty/Makefile 1.6 hanord +5 -66
+examples/qwerty/qwerty.pro 1.4 hanord +6 -6
+examples/scrollview/GNUmakefile 1.1 hanord initial checkin
+examples/scrollview/Makefile 1.4 hanord +6 -56
+examples/scrollview/scrollview.pro 1.3 hanord +5 -5
+examples/sheet/GNUmakefile 2.1 hanord initial checkin
+examples/sheet/Makefile 2.3 hanord +6 -59
+examples/showimg/GNUmakefile 2.1 hanord initial checkin
+examples/showimg/Makefile 2.12 hanord +6 -58
+examples/showimg/showimg.pro 2.7 hanord +6 -9
+examples/table/GNUmakefile 1.1 hanord initial checkin
+examples/table/Makefile 1.5 hanord +5 -67
+examples/table/table.pro 1.4 hanord +6 -6
+examples/tetrix/GNUmakefile 2.1 hanord initial checkin
+examples/tetrix/Makefile 2.5 hanord +6 -70
+examples/tetrix/tetrix.pro 2.4 hanord +14 -14
+examples/tictac/GNUmakefile 2.1 hanord initial checkin
+examples/tictac/Makefile 2.2 hanord +6 -54
+examples/tictac/tictac.pro 2.3 hanord +6 -6
+examples/timestmp/GNUmakefile 2.1 hanord initial checkin
+examples/timestmp/Makefile 2.2 hanord +6 -46
+examples/tooltip/GNUmakefile 1.1 hanord initial checkin
+examples/tooltip/Makefile 1.3 hanord +6 -53
+examples/tooltip/tooltip.pro 1.3 hanord +6 -6
+examples/validator/GNUmakefile 1.1 hanord initial checkin
+examples/validator/Makefile 1.3 hanord +6 -38
+examples/widgets/GNUmakefile 2.1 hanord initial checkin
+examples/widgets/Makefile 2.4 hanord +6 -67
+examples/widgets/widgets.pro 2.3 hanord +5 -9
+examples/xform/GNUmakefile 2.1 hanord initial checkin
+examples/xform/Makefile 2.4 hanord +6 -52
+examples/xform/xform.pro 2.3 hanord +6 -5
+src/GNUmakefile 2.1 hanord initial checkin
+src/Makefile 2.22 hanord +6 -156
+
+ New makefile system
+
+
+src/widgets/qframe.cpp 2.14 agulbra +6 -6
+
+ no reason to call drawContents() in [HV]Line mode
+
+
+src/kernel/qfont.cpp 2.18 warwick +3 -2
+src/kernel/qfontdta.h 2.8 warwick +2 -1
+src/kernel/qfontmet.h 2.6 warwick +9 -3
+src/kernel/qpainter.cpp 2.20 warwick +564 -2
+src/kernel/qpainter.h 2.16 warwick +2 -1
+src/kernel/qptr_x11.cpp 2.34 warwick +2 -546
+
+ QPainter::drawText(...tf...) now takes into account the left and
+ right bearings of the font. The bounding rectangle of text may now
+ be slightly larger (particularly italic text). QFontMetrics has
+ the additional functionality allowing this.
+
+
+src/kernel/qaccel.cpp 2.8 agulbra +70 -2 (1998/02/28)
+
+ added common accelerator keys for later inclusion into docs
+
+
+src/kernel/qfont.cpp 2.21 warwick +110 -2 (1998/03/01)
+src/kernel/qfontmet.h 2.8 warwick +7 -1
+src/kernel/qpainter.cpp 2.22 warwick +43 -26
+src/kernel/qpainter.h 2.17 warwick +5 -1
+src/widgets/qchkbox.cpp 2.18 warwick +23 -29
+src/widgets/qpushbt.cpp 2.35 warwick +5 -5
+src/widgets/qradiobt.cpp 2.24 warwick +24 -29
+
+ QFontMetrics::size() and QFontMetrics::boundingRect() with all the
+ functionality of QPainter::boundingRect() - code now shared.
+
+ Use QFontMetrics::size() in button size hints, thus allowing multi-line
+ button labels. Position checkbox/radiobutton top-left.
+
+
+src/kernel/qpm_x11.cpp 2.30 eiriken +78 -3 (1998/03/02)
+
+ Fix convertToImage() for pixmaps with other than 8-bit-per-channel.
+
+
+src/kernel/qpixmap.cpp 2.24 hanord +7 -33
+src/kernel/qpixmap.h 2.16 hanord +21 -2
+src/kernel/qpm_win.cpp 2.32 hanord +110 -51
+src/kernel/qpm_x11.cpp 2.31 hanord +165 -84
+src/kernel/qptd_win.cpp 2.7 hanord +102 -29
+src/kernel/qptd_x11.cpp 2.10 hanord +41 -11
+
+ Implemented masked bitBlt for Windows 95.
+ Added QPixmap::setOptimization() which replaces the old optimize function.
+ E.g. setOptimization(QPixmap::BestOptim) to get much faster masked bitBlts.
+ Removed the dirty system, instead delete cached data whenever the pixmap
+ is changed.
+
+
+src/kernel/qprinter.h 2.3 eiriken +6 -1
+src/kernel/qprn_win.cpp 2.7 eiriken +17 -7
+src/kernel/qprn_x11.cpp 2.7 eiriken +10 -5
+src/kernel/qpsprn.cpp 2.9 eiriken +8 -10
+
+ Take display vs. font resolution into account for printer font metrics.
+
+
+src/kernel/qpshdr.txt 2.3 agulbra +91 -3
+src/kernel/qpsprn.cpp 2.10 agulbra +644 -88
+
+ added iso-8859-1 support
+
+ also added better font support. try to print palatino, and the printer
+ goes "hm, is palatino installed? if not, perhaps garamond is installed?
+ if not, is times installed? if not, well, courier MUST work".
+
+ finally, if I understand the postscript book correctly I think I made
+ two-font postscript text output a little faster. the code now attempts
+ to use variables for fonts and call findfont/makefont just once per font
+ change per page.
+
+ this code is not perfect. the hacky stuff that does font substitution
+ needs tweaking, and at present the code believes that all the world is
+ iso-8859-1. will fix that.
+
+ postscript is fun.
+
+
+src/widgets/qmenudta.cpp 2.10 warwick +4 -4
+
+ Fix this->changeItem(this->pixmap(), "crashme")
+
+
+src/kernel/qapp_win.cpp 2.74 agulbra +7 -2 (1998/03/10)
+
+ Set WState_Visible correctly when the window is (de)iconified.
+
+
+src/kernel/qdrawutl.cpp 2.16 warwick +5 -3 (1998/03/11)
+src/kernel/qpmcache.cpp 2.3 warwick +77 -5
+src/kernel/qpmcache.h 2.3 warwick +3 -1
+src/kernel/qptr_x11.cpp 2.36 warwick +5 -3
+src/tools/qgcache.cpp 2.5 warwick +10 -2
+
+ Fix extremely-unlikely-to-be-triggered undeleted cached pixmaps.
+ Provide safer QPixmapCache find() and insert().
+
+
+src/widgets/qbutton.h 2.14 agulbra +3 -2 (1998/03/12)
+
+ add toggle()
+
+
+src/tools/qregexp.cpp 2.7 agulbra +23 -18
+
+ implement [] in wildcard mode
+
+
+src/kernel/qobject.cpp 2.44 agulbra +29 -11
+src/kernel/qobject.h 2.9 agulbra +5 -1
+src/widgets/qbuttonrow.cpp 1.3 agulbra +8 -6
+src/widgets/qframe.cpp 2.16 agulbra +4 -4
+src/widgets/qheader.cpp 2.30 agulbra +6 -4
+src/widgets/qlcdnum.cpp 2.9 agulbra +7 -5
+src/widgets/qmainwindow.cpp 2.9 agulbra +4 -3
+src/widgets/qscrbar.cpp 2.33 agulbra +14 -14
+src/widgets/qslider.cpp 2.48 agulbra +4 -4
+src/widgets/qtablevw.cpp 2.42 agulbra +10 -8
+src/widgets/qtoolbar.cpp 2.10 agulbra +4 -4
+
+ provide QObject::name( const char * defaultName ).
+
+ use name( "unnamed" ) in all the debug() calls, to avoid segfaults
+ where printf() won't handle null pointers.
+
+
+src/tools/qstring.cpp 2.18 agulbra +5 -9
+
+ toDouble() of a null string now sets ok to FALSE
+
+
+src/widgets/qcombo.cpp 2.73 agulbra +54 -49
+src/widgets/qcombo.h 2.25 agulbra +3 -1
+
+ tweaked size hint for toolbar use. provide functions to change the
+ line-edit without changint the combo's contents.
+
+
+src/kernel/qapp_win.cpp 2.78 warwick +13 -2
+
+ Don't let Windows beep on WM_SYSCHAR events.
+ Beep on unaccepted accelerations.
+
+
+src/kernel/qpainter.cpp 2.29 hanord +96 -17
+src/kernel/qptr_x11.cpp 2.40 hanord +2 -70
+
+ Fixed QPainter::drawPixmap() bug (mono bitmaps with self-masks)
+ Moved platform indep. code to qpainter.cpp
+ Put back CtorBegin
+
+
+src/widgets/qbttngrp.cpp 2.9 agulbra +14 -2
+src/widgets/qbttngrp.h 2.5 agulbra +3 -1
+
+ added setButton() - very useful when you want to force one member of
+ an exclusive button group to on but not keep around pointers to
+ umpteen radio buttons.
+
+
+src/kernel/qprinter.cpp 2.5 agulbra +31 -6
+src/kernel/qprinter.h 2.5 agulbra +6 -2
+
+ added setPageOrder()
+
+
+src/kernel/qobject.cpp 2.45 agulbra +18 -2
+
+ give better warnings in case of connect() mismatches.
+
+
+src/dialogs/qprndlg.cpp 2.4 agulbra +258 -112
+src/dialogs/qprndlg.h 2.5 agulbra +9 -2
+
+ it's finished. please have a look. and please do debug. I don't
+ know about any bugs now, but I'm sure there are some.
+
+
+src/widgets/qcombo.cpp 2.75 agulbra +15 -6
+
+ magic hack to make combos usable in dialogs. (QDialog breaks the
+ combo Enter key press.)
+
+
+src/dialogs/qprndlg.cpp 2.3 agulbra +543 -187
+src/dialogs/qprndlg.h 2.4 agulbra +24 -10
+src/kernel/qprn_x11.cpp 2.8 agulbra +4 -2
+
+ new better-looking print dialog and a new static function to configure
+ a QPrinter (replaces QPrinter::setup() - kernel/* should not use
+ dialogs/*).
+
+ noteworthy points:
+
+ - the new static function appears to write over something it
+ shouldn't. I don't see why, but it does seem to cause crashes
+ later on. the old function works. I'm committing so I can run
+ purify on solaris.
+ - the dialog lacks accelerators.
+ - I haven't put in solaris /etc/lp/ support yet. should be fairly
+ easy, but I haven't done it.
+ - the layout will benefit from Warwick's alternative space
+ distribution
+ - the awful message in qprndlg.h is gone gone gone.
+
+
+src/dialogs/qprndlg.cpp 2.5 agulbra +119 -23 (1998/03/15)
+
+ /etc/lp support
+
+
+src/widgets/qcombo.cpp 2.76 agulbra +2 -3
+
+ don't ignore key events, just don't accept them.
+
+
+src/kernel/qapp.cpp 2.48 agulbra +3 -2
+src/kernel/qfont.cpp 2.27 agulbra +11 -5
+
+ look at $LANG and try to pick an application font that suits $LANG.
+ the application font used is 12-point helvetica. if the locale isn't
+ in the list I built from XFree86's locale.alias, I assume 8859-1 is
+ okay.
+
+ copy character set from defFont in the relevant QFont constructor.
+
+ this code assumes that helvetica includes the appropriate character
+ set.
+
+
+examples/qmag/qmag.cpp 2.13 warwick +39 -2
+
+ Crazy hard-disk chewing MultiSave option. Great when you want to make
+ animated GIFs for your web pages.
+
+
+src/dialogs/qprndlg.cpp 2.8 warwick +4 -4
+src/kernel/qsize.cpp 2.6 warwick +9 -3
+src/kernel/qsize.h 2.6 warwick +9 -3
+
+ Add QSize::expandedTo(), and boundedTo().
+
+
+src/kernel/qwidget.cpp 2.92 agulbra +7 -6
+
+ remove the widget's willingness to accept focus-in events very early
+ in the destructor
+
+
+src/tools/qgdict.cpp 2.11 warwick +56 -11 (1998/03/17)
+src/tools/qgdict.h 2.3 warwick +3 -1
+
+ Add QDict::resize(int).
+
+
+src/widgets/qlined.cpp 2.64 agulbra +46 -9
+src/widgets/qlined.h 2.25 agulbra +6 -2
+
+ add setSelection() and setCursorPosition()
+
+
+src/widgets/qcombo.cpp 2.77 agulbra +86 -11
+src/widgets/qcombo.h 2.26 agulbra +4 -1
+
+ setAutoCompletion() - works really nicely.
+
+
+src/kernel/qiconset.cpp 2.1 agulbra initial checkin
+src/kernel/qiconset.h 2.1 agulbra initial checkin
+
+ QIconSet first checking. QIconSet is neat: You give it one or more
+ icons, and it completes the set so you get large and small disabled,
+ active and normal icons. QToolButton uses it, QMenuData will soon.
+
+
+src/kernel/qpainter.cpp 2.31 agulbra +18 -2
+src/kernel/qpainter.h 2.22 agulbra +2 -1
+
+ added drawImage() by request of eng. did NOT implement the QPrinter
+ shortcut he asked for.
+
+
+src/kernel/qapp.cpp 2.49 warwick +10 -6 (1998/03/19)
+
+ Ensure mouserelease goes to widget that got mousepress.
+ Document -ncols better.
+
+
+examples/qdir/GNUmakefile 1.1 warwick initial checkin
+examples/qdir/Makefile 1.1 warwick initial checkin
+examples/qdir/qdir.cpp 1.1 warwick initial checkin
+
+ Tests QFileDialog features.
+
+
+extensions/nsplugin/src/qnp.cpp 1.18 warwick +4 -1
+
+ Work for multi-visual displays.
+
+
+extensions/opengl/examples/box/.cvsignore 1.2 aavit +0 -1
+extensions/opengl/examples/box/glbox.cpp 1.4 aavit +15 -6
+extensions/opengl/examples/box/glbox.h 1.5 aavit +2 -1
+extensions/opengl/examples/gear/gear.cpp 1.5 aavit +26 -35
+extensions/opengl/src/qgl.cpp 1.18 aavit +127 -41
+extensions/opengl/src/qgl.h 1.8 aavit +80 -77
+
+ New features in OpenGL extension:
+ 1) virtual initalizeGL() method in QGLWidget; facilitates easier GL initialization.
+ 2) Added support for using shared OpenGL display lists
+ 3) Added sharedbox example showing this feature.
+
+
diff --git a/dist/changes-1.39-19980406 b/dist/changes-1.39-19980406
new file mode 100644
index 0000000..63b3dbb
--- /dev/null
+++ b/dist/changes-1.39-19980406
@@ -0,0 +1,286 @@
+src/kernel/qpainter.cpp 2.127 agulbra +37 -6 (1998/03/30)
+
+ sort of parse $LANG
+
+
+src/kernel/qpainter.cpp 2.35 warwick +5 -4 (1998/03/30)
+
+ Fix TAB expansion in QPainter::drawText (and hence QMultiLineEdit).
+
+
+src/widgets/qlined.cpp 2.68 agulbra +3 -3
+
+ didn't repaint cursor properly when moving the cursor leftwards
+
+
+src/kernel/qfnt_x11.cpp 2.34 warwick +20 -13 (1998/03/31)
+
+ Some fonts don't have per_char information.
+
+
+src/kernel/qrgn_win.cpp 2.6 hanord +11 -9 (1998/04/01)
+
+ Bug fixes for the new getRects and boundingRect functions
+
+
+src/kernel/qregion.h 2.8 hanord +4 -1
+src/kernel/qrgn_win.cpp 2.5 hanord +42 -2
+src/kernel/qrgn_x11.cpp 2.5 hanord +50 -2
+
+ New QRegion functions:
+ boundingRect() returns the bounding rectangle of the region
+ getRects() returns an array of the rectangles that make up the region
+
+
+src/widgets/qmainwindow.cpp 2.13 agulbra +46 -3 (1998/04/02)
+src/widgets/qmainwindow.h 2.9 agulbra +9 -4
+src/widgets/qtoolbar.cpp 2.15 agulbra +20 -5
+src/widgets/qtoolbar.h 2.7 agulbra +5 -2
+src/widgets/qtoolbutton.cpp 2.20 agulbra +25 -17
+
+ button pixmap size change support
+
+
+src/kernel/qiconset.cpp 2.5 agulbra +18 -4
+src/kernel/qiconset.h 2.3 agulbra +4 -3
+src/widgets/qpushbt.cpp 2.37 agulbra +62 -3
+src/widgets/qpushbt.h 2.7 agulbra +5 -1
+src/widgets/qtoolbutton.cpp 2.19 agulbra +31 -5
+src/widgets/qtoolbutton.h 2.4 agulbra +6 -2
+
+ new functionality, menu buttons
+
+
+src/kernel/qgmanagr.cpp 2.30 paul +18 -2
+src/kernel/qgmanagr.h 2.11 paul +3 -2
+src/widgets/qhbox.cpp 1.9 paul +53 -2
+src/widgets/qhbox.h 1.6 paul +6 -1
+
+ pack() added, addStretch() now work
+
+
+src/kernel/qpainter.cpp 2.37 warwick +36 -8 (1998/04/03)
+src/kernel/qpainter.h 2.23 warwick +11 -1
+
+ Add more QPainter::drawImage calls (but still not implement QPrinter stuff)
+
+
+src/widgets/qmainwindow.cpp 2.14 warwick +4 -4
+src/widgets/qmainwindow.h 2.10 warwick +2 -2
+
+ Allow WFlags to QMainWindow.
+
+
+src/kernel/qregion.cpp 2.7 warwick +4 -2
+src/kernel/qrgn_x11.cpp 2.6 warwick +4 -3
+
+ Disable BOP
+
+
+src/widgets/qscrollview.cpp 2.23 warwick +7 -5
+src/widgets/qscrollview.h 2.13 warwick +2 -2
+
+ Emit signal earlier.
+
+
+src/widgets/qscrollview.cpp 2.22 warwick +34 -16
+src/widgets/qscrollview.h 2.12 warwick +3 -1
+
+ Low level hook for painting on existing painter.
+ Direct position set function.
+
+
+src/kernel/qimage.cpp 2.80 warwick +64 -6
+
+ Optimize a very common case.
+
+
+examples/showimg/showimg.cpp 2.21 warwick +67 -9
+examples/showimg/showimg.h 2.8 warwick +7 -0
+
+ Use new QImage bitBlt
+
+
+src/dialogs/qprndlg.cpp 2.15 agulbra +35 -2
+src/dialogs/qprndlg.h 2.8 agulbra +2 -1
+src/kernel/qprinter.cpp 2.7 agulbra +53 -8
+src/kernel/qprinter.h 2.6 agulbra +6 -2
+
+ added QPrinter::ColorMode and corresponding stuff in the printer
+ dialog.
+
+
+src/kernel/qimage.cpp 2.79 warwick +183 -3
+src/kernel/qimage.h 2.25 warwick +16 -1
+src/kernel/qpaintd.h 2.6 warwick +5 -1
+src/kernel/qpainter.cpp 2.36 warwick +12 -2
+src/kernel/qpixmap.h 2.19 warwick +3 -1
+
+ bitBlt for QImages
+ - copy image subarea to position in paintdevice or an image
+
+
+src/kernel/qgmanagr.cpp 2.31 paul +89 -25
+
+ handle empty layouts in a slightly better way
+
+
+src/dialogs/qprndlg.cpp 2.17 agulbra +14 -5
+
+ move focus intelligently when the users clicks 'print to file' or
+ 'print to printer'
+
+
+src/dialogs/qfiledlg.cpp 2.51 agulbra +64 -4
+src/dialogs/qfiledlg.h 2.13 agulbra +5 -1
+
+ new function, addWidgets(). very limited extensibility, designed so
+ that it's easier to reimplement it as syntax sugar if/when we put in a
+ proper extension method.
+
+
+src/dialogs/qprndlg.cpp 2.16 agulbra +7 -12
+
+ no A3
+
+
+src/dialogs/qfiledlg.cpp 2.52 agulbra +11 -7
+
+ save a little memory, be a little bug-free
+
+
+src/widgets/qcombo.cpp 2.81 agulbra +24 -19
+
+ use 1-pixel frame around lineedit in motif style.
+
+
+src/widgets/qmainwindow.cpp 2.15 agulbra +82 -14
+src/widgets/qmainwindow.h 2.11 agulbra +7 -4
+src/widgets/qtoolbar.cpp 2.16 agulbra +46 -11
+src/widgets/qtoolbar.h 2.8 agulbra +8 -2
+src/widgets/qtoolbutton.cpp 2.21 agulbra +4 -4
+
+ various improvements in look&feel, stretchable space, stretchable widgets
+
+
+src/kernel/qpainter.cpp 2.38 hanord +72 -64 (1998/04/04)
+src/kernel/qpainter.h 2.24 hanord +14 -4
+src/kernel/qptr_x11.cpp 2.43 hanord +115 -2
+
+ Added QPainter::drawTiledPixmap, not for Windows yet
+
+
+src/kernel/qpainter.cpp 2.39 hanord +6 -2
+src/kernel/qpainter.h 2.25 hanord +8 -2
+src/kernel/qptr_x11.cpp 2.44 hanord +5 -6
+
+ Added overloaded drawTiledPixmap( const QRect &r, const QPixmap &pm )
+
+
+src/widgets/qlistview.cpp 2.87 warwick +5 -5
+src/widgets/qscrollview.cpp 2.25 warwick +266 -96
+src/widgets/qscrollview.h 2.15 warwick +19 -5
+
+ Allow arbitrary child objects positioned at int coords in QScrollView.
+
+
+src/widgets/qlistview.cpp 2.86 warwick +5 -5
+src/widgets/qscrollview.cpp 2.24 warwick +35 -11
+src/widgets/qscrollview.h 2.14 warwick +3 -2
+
+ Fix refresh problen in QScrollView.
+
+
+examples/widgets/widgets.cpp 2.39 warwick +4 -0
+
+ Show bug in recreate
+
+
+examples/scrollview/scrollview.cpp 1.8 warwick +49 -5
+
+ Test new arbitrary-number-of-children code.
+
+
+src/qt.pro 2.20 warwick +2 -0
+
+ fix dependencies
+
+
+src/widgets/qstatusbar.cpp 2.4 agulbra +4 -2
+
+ less flicker
+
+
+src/widgets/qmainwindow.cpp 2.16 agulbra +10 -18
+src/widgets/qtoolbar.cpp 2.17 agulbra +6 -5
+
+ move motif style away from what the OSF probably would have done,
+ closer towards what Netscape and Microsoft has done.
+
+
+src/kernel/qptr_x11.cpp 2.45 hanord +8 -11
+
+ tilepixmap optimized for the common case (no mask)
+
+src/widgets/qmenudta.cpp 2.13 eiriken +101 -2 (1998/04/05)
+src/widgets/qmenudta.h 2.10 eiriken +12 -1
+
+ Added new insertItem functions
+
+
+src/widgets/qmlined.cpp 2.89 eiriken +14 -1
+src/widgets/qmlined.h 2.33 eiriken +3 -1
+
+ Added setFixedVisibleLines
+
+
+src/widgets/qscrollview.cpp 2.29 warwick +10 -4
+src/widgets/qscrollview.h 2.17 warwick +2 -1
+
+ Fix child deletion.
+
+
+src/widgets/qscrollview.cpp 2.32 warwick +2 -2
+src/widgets/qtoolbutton.cpp 2.22 warwick +12 -2
+
+ Focus indication in toolbutton.
+
+
+src/kernel/qfocusdata.h 2.1 warwick initial checkin
+src/kernel/qwidget.cpp 2.97 warwick +24 -15
+src/kernel/qwidget.h 2.47 warwick +4 -2
+src/widgets/qscrollview.cpp 2.31 warwick +59 -7
+src/widgets/qscrollview.h 2.18 warwick +3 -1
+
+ Focus traversal among QScrollView children.
+
+
+examples/scrollview/scrollview.cpp 1.9 warwick +19 -20
+src/widgets/qlistview.cpp 2.88 warwick +18 -18
+src/widgets/qscrollview.cpp 2.27 warwick +38 -61
+src/widgets/qscrollview.h 2.16 warwick +2 -1
+
+ Negate position sense.
+
+
+src/dialogs/qprndlg.cpp 2.18 hanord +4 -3
+src/kernel/qprn_x11.cpp 2.9 hanord +4 -4
+
+ QPrinter::setup() uses the QPrintDialog::getPrinterSetup() function
+
+
+src/kernel/qptr_win.cpp 2.31 hanord +108 -2
+
+ Tiled pixmap implemented, but no optimization yet
+
+src/widgets/qlined.cpp 2.69 agulbra +21 -3
+
+ handle double-click correctly
+ handle c-k
+
+src/widgets/qlistview.cpp 2.90 eiriken +17 -2 (1998/04/06)
+src/widgets/qlistview.h 2.42 eiriken +2 -1
+src/widgets/qstatusbar.cpp 2.5 eiriken +8 -7
+
+ Added rightButtonPressed signal and removed the resizer
+
diff --git a/dist/changes-1.39-19980414 b/dist/changes-1.39-19980414
new file mode 100644
index 0000000..11e9b37
--- /dev/null
+++ b/dist/changes-1.39-19980414
@@ -0,0 +1,173 @@
+examples/qdir/qdir.cpp 1.2 warwick +4 -3 (1998/04/06)
+
+ better captions
+
+
+src/widgets/qscrollview.cpp 2.34 warwick +11 -1
+
+ clean up in destructor code.
+
+
+src/widgets/qlined.cpp 2.70 agulbra +6 -4
+
+ don't start drags just now
+
+
+examples/scrollview/scrollview.cpp 1.10 warwick +2 -2
+
+ make it Big
+
+
+src/kernel/qapp_x11.cpp 2.127 agulbra +37 -6
+src/kernel/qfont.h 2.9 agulbra +3 -2
+
+ sort of parse $LANG
+
+
+examples/application/main.cpp 1.2 warwick +3 -2
+
+ use setMainWidget
+
+
+extensions/opengl/src/qgl.pro 1.8 warwick +1 -1 (1998/04/08)
+
+ Building libqgl doesn't need -lqgl
+
+
+src/dialogs/qfiledlg.cpp 2.54 agulbra +74 -21
+src/dialogs/qfiledlg.h 2.14 agulbra +5 -3
+
+ allow setting of initial file name when using statics.
+
+src/dialogs/qfiledlg.cpp 2.55 agulbra +11 -11
+
+ allow setting thename of a nonexistent file as initial default in
+ getSaveFileName()
+
+
+src/kernel/qpsprn.cpp 2.13 agulbra +4 -4
+
+ avoid at-least-a-warning-at-most-an-UMR.
+
+
+src/moc/moc.pro 1.9 warwick +1 -1
+
+ include qt include
+
+
+extensions/opengl/src/qgl.pro 1.9 warwick +1 -1
+
+ more -lqgl
+
+
+src/tools/qglobal.h 2.48 agulbra +4 -1
+
+ openbsd
+
+
+src/widgets/qsplitter.h 1.7 agulbra +3 -3
+
+ remove semicolon after Q_OBJECT
+
+
+src/dialogs/qfiledlg.cpp 2.53 agulbra +15 -3
+
+ say "Readable, writable" and so on instead of ASHR (shades of MS-DOS)
+
+
+src/widgets/qlcdnum.cpp 2.11 agulbra +17 -2
+src/widgets/qlcdnum.h 2.7 agulbra +3 -1
+
+ sizeHint(). decent minimum size using the golden mean.
+
+
+src/moc/GNUmakefile 2.4 warwick +11 -3
+src/moc/moc.pro 1.8 warwick +1 -1
+src/moc/moc.t 1.11 warwick +1 -1
+src/moc/moc.t 1.10 warwick +1 -1
+
+ yacc flags
+
+
+src/kernel/qpainter.cpp 2.40 warwick +4 -4 (1998/04/09)
+src/widgets/qmlined.cpp 2.90 warwick +4 -2
+src/widgets/qscrollview.cpp 2.35 warwick +39 -33
+
+ Fixed cursor position in QMultiLineEdit.
+ Fixed focus navigation in QScrollView.
+
+
+src/widgets/qscrollview.cpp 2.36 agulbra +8 -3
+
+ be a little more careful about event processing - removeChild() was
+ called from QScrollViewData destructor and didn't like that.
+
+
+src/kernel/qprn_x11.cpp 2.10 agulbra +62 -77
+src/kernel/qpsprn.cpp 2.14 agulbra +1525 -157
+src/kernel/qpsprn.h 2.5 agulbra +17 -9
+
+ added support for character encodings other than iso 8859-1. the
+ header is computed dynamically; the fonts and encodings used on the
+ first few pages are put in the header, any other fonts and encodings
+ are added to the output stream as necessary. removed the need for a
+ temporary file. rewrote the font name cache so two QPSPrinter objects
+ printing at the same time won't conflict. put back in the header size
+ compression.
+
+
+src/widgets/qcombo.cpp 2.82 warwick +3 -3 (1998/04/13)
+
+ Correct sizeHint.
+
+
+src/widgets/qscrollview.cpp 2.37 warwick +22 -18
+src/widgets/qscrollview.h 2.19 warwick +1 -2
+
+ Improve focus tabbing.
+
+
+src/kernel/qwidget.cpp 2.98 warwick +60 -16
+src/kernel/qwidget.h 2.48 warwick +3 -1
+
+ Inherit *parents* palette, not application palette *** CHANGED BEHAVIOUR ***
+ Generalize isEnabledToTLW and isVisibleToTLW
+
+
+src/widgets/qtablevw.cpp 2.44 warwick +8 -28
+
+ Propagate palette changes to scrollbars.
+ Combine common code.
+
+
+src/widgets/qlistview.cpp 2.91 warwick +24 -6
+src/widgets/qlistview.h 2.43 warwick +5 -3
+
+ Provide parent() of list view item.
+
+
+src/widgets/qlistbox.cpp 2.61 warwick +45 -3
+src/widgets/qlistbox.h 2.15 warwick +6 -2
+
+ Update maxItemWidth on font change.
+ Add sizeHint()
+
+src/kernel/qregion.cpp 2.8 hanord +84 -51 (1998/04/14)
+src/kernel/qregion.h 2.9 hanord +12 -3
+src/kernel/qrgn_win.cpp 2.11 hanord +39 -25
+src/kernel/qrgn_x11.cpp 2.11 hanord +48 -29
+
+ Removed the internal (and slow) byte array.
+ Uses the region rectangles for saving complex regions.
+
+
+src/widgets/qchkbox.cpp 2.20 warwick +5 -4
+src/widgets/qradiobt.cpp 2.25 warwick +9 -4
+
+ Small sizeHint when no text or pixmap.
+
+
+src/kernel/qptr_win.cpp 2.32 agulbra +5 -2
+src/kernel/qptr_x11.cpp 2.46 agulbra +5 -2
+
+ clip properly in drawPixmap().
diff --git a/dist/changes-1.39-19980506 b/dist/changes-1.39-19980506
new file mode 100644
index 0000000..35d9ed0
--- /dev/null
+++ b/dist/changes-1.39-19980506
@@ -0,0 +1,555 @@
+doc/classes.doc 1.5 warwick +3 -3
+
+ 4 columns, not 3.
+
+
+doc/headers.doc 1.5 warwick +4 -2
+
+ Multicolumns.
+
+
+doc/moc.doc 2.11 eiriken +11 -4
+
+ Corrected nested classes bug
+
+
+examples/application/application.cpp 1.4 agulbra +2 -3
+
+ updated for new qtoolbar api
+
+
+examples/scrollview/scrollview.cpp 1.11 warwick +25 -9
+
+ Use older style.
+
+
+extensions/opengl/examples/sharedbox/GNUmakefile 1.1 hanord initial checkin
+extensions/opengl/examples/sharedbox/Makefile 1.2 hanord +6 -90
+
+ new makefiles
+
+
+extensions/opengl/examples/sharedbox/sharedbox.pro 1.2 hanord +1 -1
+
+ Added "opengl" to CONFIG
+
+
+src/dialogs/qfiledlg.cpp 2.56 paul +3 -3
+
+ make it compile on windows
+
+
+src/dialogs/qfiledlg.cpp 2.57 warwick +6 -5
+
+ Implement "initial selection" for Win-specific calls.
+
+
+src/dialogs/qfiledlg.cpp 2.58 agulbra +21 -2
+
+ insert the root drives in the paths combo
+
+
+src/dialogs/qfiledlg.cpp 2.59 agulbra +11 -11
+
+ alight size stuff correctly
+ list all drives under windows
+
+ there's an aborted attempt at handling double-click in multi-column
+ view in there, too. I'll think about it and complete it asap.
+
+
+src/dialogs/qfiledlg.cpp 2.60 agulbra +21 -8
+
+ draw the icons again.
+
+
+src/dialogs/qfiledlg.cpp 2.61 agulbra +23 -6
+
+ output date and time in a better format. handle column width better.
+
+
+src/dialogs/qfiledlg.cpp 2.62 agulbra +190 -23
+src/dialogs/qfiledlg.h 2.15 agulbra +20 -1
+
+ more polish. in this round:
+ - correct handling of double-click and arrow keys in the multi-column
+ list (partly done using an evil hack, see mouseDoubleClickEvent())
+ - the ability to install file type icons (the default draws a
+ directory icon, nothing else)
+ - correct enter handling in the paths and types combo boxes
+ - correct tab order
+
+
+src/dialogs/qfiledlg.cpp 2.63 agulbra +21 -26
+
+ setEnabled( cd up button )
+ tweak accessibility texts
+
+
+src/dialogs/qfiledlg.cpp 2.64 hanord +3 -3
+
+ Adds cast to avoid compiling problem for MSVC++
+
+
+src/dialogs/qfiledlg.cpp 2.65 agulbra +29 -7
+
+ experimental filename completion. hacky and a little buggy in certain
+ odd and harmless cases.
+
+
+src/dialogs/qfiledlg.h 2.16 agulbra +4 -5
+
+ remove unnecessary friend declaration
+
+
+src/dialogs/qprndlg.cpp 2.19 agulbra +3 -3
+
+ work around broken gcc warning
+
+
+src/kernel/qapp_win.cpp 2.84 warwick +5 -2
+
+ Work-around focus problem with recreate.
+
+
+src/kernel/qapp_win.cpp 2.85 warwick +5 -4
+
+ Robustness.
+
+
+src/kernel/qapp_x11.cpp 2.128 warwick +9 -9
+src/kernel/qclb_x11.cpp 2.9 warwick +4 -4
+src/kernel/qcol_x11.cpp 2.26 warwick +13 -12
+src/kernel/qimage.cpp 2.83 warwick +11 -10
+src/kernel/qnpsupport.cpp 2.7 warwick +3 -3
+src/kernel/qpm_x11.cpp 2.33 warwick +12 -12
+src/kernel/qpsprn.cpp 2.16 warwick +3 -3
+src/kernel/qrgn_x11.cpp 2.12 warwick +3 -3
+src/kernel/qt_xdnd.cpp 2.7 warwick +5 -5
+src/kernel/qwid_x11.cpp 2.89 warwick +21 -19
+src/tools/qdatetm.cpp 2.12 warwick +4 -4
+
+ Avoid warnings.
+
+
+src/kernel/qapp_x11.cpp 2.130 warwick +3 -3
+
+ strcasecmp -> qstricmp
+
+
+src/kernel/qapp_x11.cpp 2.131 agulbra +14 -3
+src/kernel/qclipbrd.cpp 2.7 agulbra +2 -6
+src/kernel/qdnd_win.cpp 2.3 agulbra +23 -1
+src/kernel/qdnd_x11.cpp 2.3 agulbra +84 -8
+src/kernel/qdragobject.cpp 2.11 agulbra +24 -23
+src/kernel/qdragobject.h 2.7 agulbra +6 -3
+
+ some more stuff works
+
+
+src/kernel/qapp_x11.cpp 2.132 eiriken +4 -3
+src/kernel/qcol_x11.cpp 2.27 eiriken +6 -4
+src/kernel/qimage.cpp 2.84 eiriken +11 -7
+src/kernel/qmetaobj.cpp 2.7 eiriken +6 -4
+src/kernel/qmovie.cpp 1.31 eiriken +8 -5
+src/kernel/qpm_x11.cpp 2.34 eiriken +6 -4
+src/kernel/qwid_win.cpp 2.52 eiriken +4 -4
+src/kernel/qwid_x11.cpp 2.91 eiriken +4 -4
+src/kernel/qwidget.cpp 2.101 eiriken +6 -4
+
+ Check for delete[] 0 to avoid purify warnings.
+
+
+src/kernel/qclb_x11.cpp 2.8 hanord +5 -2
+
+ Debugging code commented out
+
+
+src/kernel/qclipbrd.h 2.4 agulbra +2 -1
+src/kernel/qfocusdata.h 2.2 agulbra +2 -2
+src/widgets/qlistview.h 2.45 agulbra +3 -3
+src/widgets/qsplitter.h 1.8 agulbra +2 -2
+
+ "friend class", not "friend"
+
+
+src/kernel/qdnd_win.cpp 2.2 agulbra +2 -2
+src/kernel/qdnd_x11.cpp 2.2 agulbra +3 -3
+src/kernel/qevent.h 2.13 agulbra +2 -2
+
+ return a proper object for the drag data, not a reference to a
+ probably-deleted object.
+
+
+src/kernel/qdnd_x11.cpp 2.4 agulbra +24 -18
+src/kernel/qdragobject.h 2.8 agulbra +1 -2
+
+ another little bit.
+
+
+src/kernel/qdnd_x11.cpp 2.5 agulbra +6 -24
+
+ drop some of the debugging messages
+
+
+src/kernel/qevent.cpp 2.13 aavit +9 -6
+
+ Doc.
+
+
+src/kernel/qfnt_win.cpp 2.26 warwick +4 -4
+
+ Typo. Will fix (unreported) strange problems with some fonts on Windows.
+
+
+src/kernel/qgmanagr.cpp 2.32 warwick +26 -22
+
+ Flatten.
+
+
+src/kernel/qimage.cpp 2.82 warwick +6 -3
+src/widgets/qlistbox.cpp 2.62 warwick +14 -2
+src/widgets/qlistview.cpp 2.98 warwick +4 -4
+src/widgets/qscrollview.cpp 2.41 warwick +5 -5
+
+ docs
+
+
+src/kernel/qpaintdc.h 2.5 eiriken +4 -2
+src/kernel/qpainter.cpp 2.44 eiriken +38 -11
+src/kernel/qprn_win.cpp 2.8 eiriken +31 -13
+src/kernel/qpsprn.cpp 2.18 eiriken +46 -30
+src/kernel/qpsprn.h 2.6 eiriken +4 -1
+src/kernel/qptr_win.cpp 2.34 eiriken +4 -2
+src/kernel/qregion.h 2.10 eiriken +2 -1
+
+ drawImage support in QPrinter
+
+
+src/kernel/qpainter.cpp 2.41 warwick +17 -2
+
+ Fix OpaqueMode in drawText(...QRect...).
+
+
+src/kernel/qpainter.cpp 2.42 warwick +5 -9
+
+ fix.
+
+
+src/kernel/qpainter.cpp 2.43 warwick +2 -12
+
+ Revert drawText semantics changed.
+
+
+src/kernel/qpainter.cpp 2.45 hanord +6 -2
+src/kernel/qprn_win.cpp 2.9 hanord +5 -4
+
+ Fixed Windows-specific typos, now compiles
+
+
+src/kernel/qprn_x11.cpp 2.11 agulbra +14 -6
+
+ avoid getdtablesize(), and set FD_CLOEXEC on just the X connection
+ instead of on all open files.
+
+
+src/kernel/qpsprn.cpp 2.15 agulbra +6 -6
+
+ mention the defining rfc for koi8-r
+
+
+src/kernel/qpsprn.cpp 2.17 warwick +438 -428
+
+ Avoid a HUGE C string, save some memory.
+
+
+src/kernel/qptd_x11.cpp 2.12 warwick +4 -4
+
+ Restore speed of normal-optimized pixmaps to Qt 1.3x height.
+
+
+src/kernel/qptd_x11.cpp 2.13 hanord +7 -9
+
+ Warwick's change ACK'd
+
+
+src/kernel/qptr_win.cpp 2.32 agulbra +5 -2
+src/kernel/qptr_x11.cpp 2.46 agulbra +5 -2
+
+ clip properly in drawPixmap().
+
+
+src/kernel/qptr_x11.cpp 2.47 eiriken +21 -17
+
+ Fixed infinite loop bug in internal function drawTile and
+ renamed variables to make the code readable.
+
+
+src/kernel/qregion.cpp 2.8 hanord +84 -51
+src/kernel/qregion.h 2.9 hanord +12 -3
+src/kernel/qrgn_win.cpp 2.11 hanord +39 -25
+src/kernel/qrgn_x11.cpp 2.11 hanord +48 -29
+
+ Removed the internal (and slow) byte array.
+ Uses the region rectangles for saving complex regions.
+
+
+src/kernel/qregion.cpp 2.9 warwick +14 -2
+
+ Implement missing function.
+
+
+src/kernel/qsignalmapper.cpp 1.2 warwick +2 -2
+src/kernel/qsignalmapper.h 1.2 warwick +2 -2
+
+ fix function name
+
+
+src/kernel/qsignalmapper.cpp 1.3 warwick +2 -2
+src/widgets/qtablevw.cpp 2.45 warwick +3 -3
+
+ oops
+
+
+src/kernel/qwid_win.cpp 2.51 agulbra +7 -2
+
+ if recreating a widget with no children that accept focus, and which
+ does not accept focus itself, to be a top-level widget, set up a focus
+ chain. hopefully this will fix a focus bug on windows.
+
+
+src/kernel/qwidget.cpp 2.100 agulbra +4 -4
+src/kernel/qwidget.cpp 2.99 agulbra +9 -7
+
+ try a little harder to make QWidget::focusWidget() return something.
+ this should make focus in top-level widgets created by recreate()
+ behave like in top-level widgets created by new.
+
+
+src/moc/moc.1 2.6 eiriken +20 -5
+
+ Corrected nested classes bug.
+
+
+src/moc/moc.y 2.21 eiriken +3 -5
+
+ Removed warning "unexpected ':'" in nested classes.
+
+
+src/qt.pro 2.21 warwick +2 -1
+
+ Dependencies under Windows.
+
+
+src/qt.pro 2.23 warwick +2 -0
+src/kernel/qsignalmapper.cpp 1.1 warwick initial checkin
+src/kernel/qsignalmapper.h 1.1 warwick initial checkin
+
+ QSignalMapper - like a button group superclass.
+
+
+src/tools/qdir.cpp 2.19 agulbra +36 -4
+src/tools/qdir.h 2.7 agulbra +3 -1
+
+ added new QDir::drives()
+
+ this breaks windows horribly, because I simply couldn't remember the
+ function call to use there. haavard, add a few lines of code in the
+ morning, will you?
+
+
+src/tools/qdir.cpp 2.20 agulbra +18 -10
+
+ implement drives() for windows. now to test.
+
+
+src/tools/qfile.cpp 2.20 warwick +10 -10
+
+ Casts from off_t to int.
+
+
+src/tools/qglobal.h 2.49 warwick +4 -1
+
+ GNU Hurd
+
+
+src/tools/qglobal.h 2.50 warwick +4 -1
+
+ DG Unix
+
+
+src/tools/qtstream.cpp 2.12 warwick +14 -4
+src/widgets/qscrollview.cpp 2.42 warwick +7 -1
+
+ doc
+
+
+src/widgets/qchkbox.cpp 2.20 warwick +5 -4
+src/widgets/qradiobt.cpp 2.25 warwick +9 -4
+
+ Small sizeHint when no text or pixmap.
+
+
+src/widgets/qcombo.cpp 2.83 agulbra +10 -2
+
+ make sure highlighted() is emitted whenever current changes, as per
+ val gough's bug report.
+
+
+src/widgets/qframe.cpp 2.17 agulbra +13 -2
+
+ added a hack to make kscd binaries keep working. put in a nice
+ #if QT_VERSION >= 200 so the hack won't stay too long.
+
+
+src/widgets/qlabel.cpp 2.28 warwick +6 -3
+
+ Flicker-free when no background.
+
+
+src/widgets/qlined.cpp 2.71 warwick +3 -3
+
+ Efficiency.
+
+
+src/widgets/qlined.cpp 2.73 agulbra +2 -10
+
+ disable some buggy code
+
+
+src/widgets/qlined.h 2.26 agulbra +5 -4
+
+ make validateAndSet() public. It's not a trvial function, but it
+ appears that event filters can reasonably want to use it.
+
+
+src/widgets/qlistview.cpp 2.100 agulbra +30 -28
+
+ slightly better pixmap support
+
+
+src/widgets/qlistview.cpp 2.101 agulbra +27 -9
+
+ added an evil hack to make sizeHint() return more realistic values
+ before the automagic column resizing magic has done its job.
+
+
+src/widgets/qlistview.cpp 2.102 agulbra +3 -3
+
+ the list view is now the viewport's focus proxy, rather than the other
+ way around.
+
+
+src/widgets/qlistview.cpp 2.103 agulbra +6 -7
+
+ fixed some logical/actual confusion.
+
+
+src/widgets/qlistview.cpp 2.92 agulbra +22 -13
+
+ hamdle quick drags correctly, as per dimitri van heesch's bug report.
+
+
+src/widgets/qlistview.cpp 2.93 warwick +3 -3
+src/widgets/qlistview.h 2.46 warwick +2 -2
+
+ paintBranches is non-const
+
+
+src/widgets/qlistview.cpp 2.94 warwick +6 -7
+
+ Remove unnecessary initial repaints.
+
+
+src/widgets/qlistview.cpp 2.95 agulbra +16 -12
+
+ try to draw a little more efficiently by using OpaqueMode, and by
+ never inserting list view items into the repaint dict twice. exposes
+ a QPainter::drawText() bug.
+
+
+src/widgets/qlistview.cpp 2.96 agulbra +178 -53
+src/widgets/qlistview.h 2.47 agulbra +13 -5
+
+ added column alignment (worked first try) and real pixmap support
+ (untested - I try not to push my luck)
+
+
+src/widgets/qlistview.cpp 2.97 agulbra +13 -11
+
+ draw focus rectangle in the correct place
+
+
+src/widgets/qlistview.cpp 2.99 warwick +9 -12
+
+ Revert change that required drawText semantics changed.
+
+
+src/widgets/qlistview.h 2.44 agulbra +2 -1
+
+ avoid hiding text(int) with text() in qchecklistitem
+
+
+src/widgets/qmainwindow.cpp 2.17 agulbra +35 -34
+src/widgets/qmainwindow.h 2.12 agulbra +4 -3
+
+ handle children being deleted
+
+
+src/widgets/qmenubar.cpp 2.48 warwick +9 -3
+src/widgets/qpopmenu.cpp 2.67 warwick +4 -2
+
+ Accept keys so they don't propagate.
+
+
+src/widgets/qmenubar.cpp 2.49 warwick +2 -5
+src/widgets/qpopmenu.cpp 2.68 warwick +2 -4
+
+ undo accept()
+
+
+src/widgets/qmenubar.cpp 2.50 agulbra +3 -4
+
+ remove unused variable
+
+
+src/widgets/qpopmenu.cpp 2.70 agulbra +13 -16
+src/widgets/qpopmenu.cpp 2.69 agulbra +10 -3
+
+ minor tweak of right/left submenu position algorithm
+
+
+src/widgets/qpopmenu.cpp 2.71 warwick +5 -2
+
+ Add a reminder.
+
+
+src/widgets/qscrollview.cpp 2.39 warwick +86 -67
+
+ Docs.
+ Remove over-optimization.
+
+
+src/widgets/qscrollview.cpp 2.40 warwick +3 -3
+
+ Simplify.
+
+
+src/widgets/qscrollview.cpp 2.43 warwick +45 -12
+
+ Propagate mouse events.
+
+
+src/widgets/qscrollview.h 2.20 warwick +6 -1
+
+ Propagate mouse evetns.
+
+
+src/widgets/qtoolbutton.cpp 2.23 warwick +4 -3
+
+ Make receiver/slot optional.
+
+
+src/widgets/qvalidator.cpp 2.18 agulbra +19 -6
+
+ validate number of decimals. amy watson.
diff --git a/dist/changes-1.39-19980529 b/dist/changes-1.39-19980529
new file mode 100644
index 0000000..6c40f61
--- /dev/null
+++ b/dist/changes-1.39-19980529
@@ -0,0 +1,232 @@
+
+src/dialogs/qfiledlg.cpp 2.67 aavit +24 -1
+
+ Fixed non-modality bug in GetOpen/SaveFileName on Windows.
+
+
+src/dialogs/qprndlg.cpp 2.21 agulbra +14 -11
+
+ avoid double-delete of invisible QButtonGroup objects
+
+
+src/dialogs/qprndlg.cpp 2.22 eiriken +4 -3
+src/tools/qregexp.cpp 2.9 eiriken +4 -3
+src/widgets/qheader.cpp 2.36 eiriken +5 -3
+src/widgets/qmenubar.cpp 2.51 eiriken +6 -4
+src/widgets/qwhatsthis.cpp 2.12 eiriken +3 -3
+
+ More tests before delete [] to avoid purify warnings.
+
+
+src/kernel/qapp_win.cpp 2.86 agulbra +10 -19
+src/kernel/qapp_x11.cpp 2.134 agulbra +35 -44
+
+ move the pending-events iterator to the next event before dispatching
+ the current one. prevents recursion if enter_loop() is called within
+ the event handler.
+
+
+src/kernel/qapp_x11.cpp 2.133 warwick +12 -4
+src/kernel/qevent.h 2.16 warwick +27 -1
+src/kernel/qwidget.cpp 2.103 warwick +9 -2
+
+ Provide Event_Hide and Event_Show.
+
+
+src/kernel/qasyncimageio.cpp 1.31 warwick +32 -16
+src/kernel/qasyncimageio.h 1.16 warwick +7 -1
+src/kernel/qasyncio.cpp 1.8 warwick +3 -2
+src/kernel/qimage.cpp 2.88 warwick +11 -2
+src/kernel/qpainter.cpp 2.47 warwick +10 -4
+
+ QAsyncImageIO classes are now public.
+
+
+src/kernel/qdragobject.cpp 2.12 agulbra +10 -4
+
+ stop the drag when appropriate
+
+
+src/kernel/qevent.cpp 2.14 agulbra +24 -2
+src/kernel/qevent.h 2.15 agulbra +2 -1
+
+ added new convenience function provides( const char * mimeType )
+
+
+src/kernel/qevent.h 2.14 agulbra +2 -2
+
+ return a real QByteArray
+
+
+src/kernel/qpainter.cpp 2.48 warwick +4 -4
+
+ Fix bitBlt with negative width/height.
+
+
+src/kernel/qpicture.cpp 2.4 eiriken +13 -2
+
+ Added support for drawImage()
+
+
+src/kernel/qprn_x11.cpp 2.12 agulbra +18 -10
+
+ close open files before exec'ing lpr.
+
+
+src/kernel/qpsprn.cpp 2.20 eiriken +100 -24
+src/kernel/qpsprn.h 2.7 eiriken +3 -2
+src/kernel/qptr_x11.cpp 2.48 eiriken +4 -3
+src/kernel/qrgn_x11.cpp 2.13 eiriken +3 -3
+
+ QPrinter now supports clipping of any arbitrary region.
+ The catch is that resolution is 72 dpi.
+
+ Fixed bug in save()/restore() over page boundaries
+
+
+src/kernel/qpsprn.cpp 2.23 agulbra +6 -3
+
+ setPen() immediately before drawPoly(most things) did not work. now
+ it does.
+
+
+src/kernel/qptr_x11.cpp 2.49 warwick +13 -2
+
+ Probably fix aix-g++ internal compiler error.
+
+
+src/kernel/qregion.cpp 2.10 eiriken +7 -5
+src/kernel/qregion.h 2.11 eiriken +2 -3
+
+ Rename getRects() to rects()
+
+
+src/kernel/qregion.cpp 2.12 hanord +18 -56
+
+ New region serializing code, writes only raw rectangles.
+ In Qt pre 2.0, we write a sort of recursive structure for backward
+ compatibility. It's large and inefficient. In Qt 2.0, we start using
+ a much slimmer structure and the reading code for this has already
+ been added for Qt 1.40. I.e. Qt 1.3x programs won't be able to read
+ regions serialized with Qt 2.x.
+
+
+src/kernel/qregion.h 2.12 hanord +2 -7
+src/kernel/qrgn_win.cpp 2.13 hanord +12 -44
+src/kernel/qrgn_x11.cpp 2.15 hanord +15 -50
+
+ Simplified the implementation, now it works with rects only,
+
+
+src/kernel/qwid_win.cpp 2.53 agulbra +4 -3
+src/kernel/qwid_x11.cpp 2.92 agulbra +4 -3
+
+ update() with w == 0 || h == 0 is a no-op, so exit quickly
+
+
+src/kernel/qwid_win.cpp 2.54 agulbra +6 -2
+src/kernel/qwid_x11.cpp 2.93 agulbra +8 -2
+src/kernel/qwidget.cpp 2.104 agulbra +3 -10
+src/widgets/qmainwindow.cpp 2.20 agulbra +16 -6
+
+ make isVisible() return TRUE during showEvent(), to match
+ e.g. resizeEvent(). make QMainWindow fix its geometry when toolbars
+ are hidden and shown.
+
+
+src/kernel/qwidget.h 2.49 agulbra +2 -6
+
+ removed autoMinimumSize
+
+
+src/widgets/qbttngrp.cpp 2.10 agulbra +3 -3
+
+ don't delete buttons in the list
+
+
+src/widgets/qbuttonrow.cpp 1.6 paul +1 -1
+src/widgets/qbuttonrow.h 1.4 paul +1 -1
+src/widgets/qgrid.cpp 1.9 paul +1 -1
+src/widgets/qgrid.h 1.7 paul +1 -1
+src/widgets/qhbox.cpp 1.10 paul +1 -1
+src/widgets/qhbox.h 1.7 paul +1 -1
+src/widgets/qlabelled.cpp 1.5 paul +1 -1
+src/widgets/qlabelled.h 1.4 paul +1 -1
+src/widgets/qvbox.cpp 1.5 paul +1 -1
+src/widgets/qvbox.h 1.5 paul +1 -1
+
+ removing the layout widgets from the library, moved to examples/layouts
+
+
+src/widgets/qheader.cpp 2.38 paul +121 -62
+src/widgets/qheader.h 2.18 paul +6 -11
+
+ Implemented setClickEnabled, setResizeEnabled and setMovingEnabled
+
+
+src/widgets/qlined.cpp 2.74 aavit +8 -5
+src/widgets/qspinbox.cpp 2.30 aavit +52 -19
+src/widgets/qspinbox.h 2.17 aavit +3 -1
+
+ lineedit: better sizehint()
+ spinbox: added valuechanged( const char* ) signal
+
+
+src/widgets/qlined.cpp 2.75 agulbra +11 -6
+
+ start drags when appropriate
+ fold multi-line paste to one line instead of truncating to the \n
+
+
+src/widgets/qlistview.cpp 2.109 agulbra +17 -12
+src/widgets/qlistview.h 2.48 agulbra +4 -4
+
+ addColumn() return the column number
+
+
+src/widgets/qmainwindow.cpp 2.18 warwick +18 -2
+src/widgets/qmainwindow.h 2.13 warwick +2 -1
+
+ Show/Hide event filters
+
+
+src/widgets/qmainwindow.cpp 2.19 agulbra +19 -17
+src/widgets/qmainwindow.h 2.14 agulbra +11 -11
+
+ make set* private as they're not really meaningful any more.
+
+src/widgets/qmainwindow.cpp 2.22 agulbra +17 -1
+
+ be slightly more clever about autodetecting menu and status bar.
+
+
+src/widgets/qscrollview.cpp 2.45 warwick +8 -4
+
+ Only enable WPaintClever in viewport if specifically requested.
+
+
+src/widgets/qstatusbar.cpp 2.8 agulbra +9 -4
+
+ make sure the status bar is tall enough for text, even when there's
+ nothing in it.
+
+
+src/widgets/qtablevw.cpp 2.46 agulbra +4 -4
+
+ last{Row,Col}Visible() could return >= num{Row,Col}s. no more.
+
+
+src/kernel/qapp_x11.cpp 2.137 eiriken +5 -2
+
+ Fixed bug when there are no events in the X queue and there are posted
+ events. The posted events will now be handled.
+
+
+src/kernel/qwidget.cpp 2.106 eiriken +5 -2
+
+ Fixed bug in destruction of main widget. The application now
+ actually quits.
+
+src/kernel/qapp.cpp 2.55 hanord +8 -4
+
+ The QApplication contructor now accepts argc=0 and argv=0.
diff --git a/dist/changes-1.39-19980611 b/dist/changes-1.39-19980611
new file mode 100644
index 0000000..d99b636
--- /dev/null
+++ b/dist/changes-1.39-19980611
@@ -0,0 +1,194 @@
+doc/binary.doc 1.2 warwick +23 -26
+
+ Include margins into header graphic
+
+
+doc/examples.doc 2.15 agulbra +19 -2
+examples/dirview/dirview.cpp 1.8 agulbra +2 -2
+src/widgets/qlistview.cpp 2.112 agulbra +163 -28
+src/widgets/qlistview.h 2.49 agulbra +4 -4
+
+ rename children() to childCount()
+ add two images to the docs
+ update dirview and add it to the docs
+
+
+src/dialogs/qfiledlg.cpp 2.68 hanord +8 -12
+
+ Rewrote setFilter to use QString and mid() - simpler code.
+ Borland C++ complained about modifying const char *.
+
+
+src/dialogs/qfiledlg.cpp 2.69 agulbra +9 -7
+src/dialogs/qmsgbox.cpp 2.48 agulbra +3 -1
+src/dialogs/qprndlg.cpp 2.26 agulbra +213 -2
+src/widgets/qwidgetstack.cpp 2.6 agulbra +8 -3
+
+ Call setPalettePropagation() and setFontPropagation() in the
+ initialization. Note that QWidgetStack now defaults to use
+ AllChildren.
+
+
+src/dialogs/qmsgbox.cpp 2.47 hanord +3 -3
+
+ icon widget gets widget name "icon" (previously none)
+ buttons get widget names button1, button2 (previously space before number)
+
+
+src/dialogs/qprndlg.cpp 2.24 agulbra +163 -7
+
+ parse /etc/lp/member and /etc/printers.conf. we still probably don't
+ detect the printers on irix and digital unix (except through sheer
+ good luck - I suppose there is a chance that digital or sgi might
+ choose to be compatible with something).
+
+
+src/dialogs/qprndlg.cpp 2.25 agulbra +10 -10
+
+ one more minor cleanup.
+
+ looks like the code we have works on both irix and digital unix.
+
+
+src/kernel/qapp_win.cpp 2.88 hanord +2 -3
+
+ Posted event fix
+
+
+src/kernel/qapp_win.cpp 2.89 agulbra +2 -2
+src/kernel/qapp_x11.cpp 2.138 agulbra +3 -3
+
+ don't delete events destined for other objects in target-specific
+ sendPostedEvents()
+
+
+src/kernel/qasyncimageio.cpp 1.33 warwick +42 -42
+src/kernel/qasyncimageio.h 1.17 warwick +15 -15
+
+ New names.
+
+
+src/kernel/qdnd_x11.cpp 2.14 agulbra +8 -5
+src/kernel/qdragobject.cpp 2.14 agulbra +21 -9
+
+ right cursor
+
+
+src/kernel/qdnd_x11.cpp 2.15 agulbra +6 -9
+
+ comment out old debug messages; delete some
+
+
+src/kernel/qdragobject.cpp 2.15 agulbra +4 -6
+
+ ignore totally unexpected events
+
+
+src/kernel/qfnt_win.cpp 2.28 agulbra +4 -4
+src/kernel/qfont.cpp 2.34 agulbra +2 -4
+
+ be slightly more robust about setting the character encoding to the
+ defFont's.
+
+
+src/kernel/qfont.cpp 2.31 agulbra +115 -63
+
+ overhauled class documentation; man function descriptions probably
+ also need an overhaul.
+
+
+src/kernel/qfont.cpp 2.32 agulbra +56 -65
+
+ fixed some typos; removed some misleading text from the function
+ descriptions.
+
+
+src/kernel/qgmanagr.cpp 2.34 paul +22 -66
+
+ Rolled back "empty layout" change, since it broke existing code.
+
+
+src/kernel/qiconset.cpp 2.9 paul +16 -8
+
+ Handle mask better when generating disabled pixmaps
+
+
+src/kernel/qprn_x11.cpp 2.14 agulbra +12 -1
+
+ if the application hasn't specified a non-default print program, try
+ HARD to find a decent lpr or lp.
+
+
+src/kernel/qpsprn.cpp 2.25 agulbra +12 -7
+
+ discussed the "sometimes cannot print to /usr/bin/lpr even though
+ every other program works perfectly" bug with the code.
+
+ also shrunk the output by a few bytes by removing extraneous newlines
+ and one comment.
+
+
+src/tools/qdatetm.cpp 2.14 agulbra +19 -5
+
+ QDateTime::addSecs() used to not work across midnight or backwards.
+
+
+src/tools/qglobal.h 2.51 agulbra +4 -2
+
+ detect unixware 7; detect bool on more irix stuff
+
+
+src/widgets/qbttngrp.cpp 2.12 agulbra +5 -1
+
+ mention the existence of set*Propagation()
+
+
+src/widgets/qbutton.cpp 2.60 agulbra +16 -17
+src/widgets/qbutton.h 2.16 agulbra +3 -2
+
+ make setDown() public; this breaks binary compatibility on MSVC++
+
+ The way to start a context menu on press used to be to make a
+ synthetic QMouseEvent indicating a release, and sendEvent() that.
+ not terribly nice.
+
+
+src/widgets/qheader.cpp 2.41 paul +6 -1
+
+ Fix "Index out of range" bug.
+
+
+src/widgets/qlined.cpp 2.78 agulbra +3 -6
+
+ when pasting multi-line stuff, fold to one line.
+
+
+src/widgets/qlined.cpp 2.79 paul +2 -2
+
+ Fix "index out of range" bug when typing past maxLength.
+
+
+src/widgets/qpopmenu.cpp 2.75 aavit +2 -2
+
+ minimal improvement of checkmark look in windows style.
+
+
+src/widgets/qsplitter.cpp 1.13 agulbra +12 -12
+
+ more doc; mention setFixed()
+
+
+src/widgets/qtoolbar.cpp 2.21 agulbra +46 -12
+
+ paint a tool bar handle in motif style too
+
+
+src/widgets/qtoolbar.cpp 2.22 paul +3 -2
+
+ Don't override max/min sizes for children
+
+
+src/widgets/qtoolbutton.cpp 2.27 agulbra +24 -22
+
+ handle text label correctly; check for null pointer; minor doc
+ improvements
diff --git a/dist/changes-1.39-19980616 b/dist/changes-1.39-19980616
new file mode 100644
index 0000000..831dd87
--- /dev/null
+++ b/dist/changes-1.39-19980616
@@ -0,0 +1,810 @@
+doc/metaobjects.doc 2.9 warwick +3 -3
+doc/tutorial.doc 2.13 warwick +4 -4
+examples/aclock/aclock.h 2.3 warwick +2 -2
+examples/aclock/main.cpp 2.3 warwick +2 -2
+examples/application/application.cpp 1.12 warwick +8 -8
+examples/application/main.cpp 1.6 warwick +2 -2
+examples/biff/biff.cpp 2.3 warwick +2 -2
+examples/biff/biff.h 2.3 warwick +2 -2
+examples/biff/main.cpp 2.3 warwick +2 -2
+examples/connect/connect.cpp 2.5 warwick +2 -2
+examples/cursor/cursor.cpp 2.3 warwick +2 -2
+examples/dclock/dclock.cpp 2.4 warwick +2 -2
+examples/dclock/dclock.h 2.3 warwick +2 -2
+examples/dclock/main.cpp 2.3 warwick +2 -2
+examples/desktop/desktop.cpp 2.4 warwick +2 -2
+examples/dirview/dirview.cpp 1.9 warwick +2 -2
+examples/dirview/main.cpp 1.7 warwick +2 -2
+examples/drawdemo/drawdemo.cpp 2.7 warwick +5 -5
+examples/forever/forever.cpp 2.4 warwick +2 -2
+examples/hello/hello.cpp 2.5 warwick +2 -2
+examples/hello/main.cpp 2.6 warwick +2 -2
+examples/layout/layout.cpp 1.6 warwick +6 -6
+examples/layouts/layouts.cpp 1.5 warwick +6 -6
+examples/layouts/qtbuttonrow.cpp 1.4 warwick +4 -3
+examples/layouts/qthbox.cpp 1.4 warwick +2 -2
+examples/life/life.cpp 2.5 warwick +4 -4
+examples/life/lifedlg.cpp 2.8 warwick +5 -5
+examples/life/main.cpp 2.3 warwick +2 -2
+examples/menu/menu.cpp 2.15 warwick +4 -4
+examples/movies/main.cpp 1.11 warwick +4 -4
+examples/network/connection.cpp 1.7 warwick +2 -2
+examples/network/finger.cpp 1.7 warwick +6 -6
+examples/network/prime.cpp 1.6 warwick +5 -5
+examples/network/primed.cpp 1.8 warwick +4 -4
+examples/network/primespeed.cpp 1.5 warwick +5 -5
+examples/network/server.cpp 1.8 warwick +2 -2
+examples/network/share.cpp 1.6 warwick +4 -4
+examples/picture/picture.cpp 1.6 warwick +3 -3
+examples/pref/main.cpp 1.7 warwick +2 -2
+examples/pref/pref.cpp 1.20 warwick +5 -5
+examples/progress/progress.cpp 1.13 warwick +4 -4
+examples/qdir/qdir.cpp 1.6 warwick +3 -3
+examples/qmag/qmag.cpp 2.16 warwick +5 -5
+examples/qwerty/main.cpp 1.6 warwick +2 -2
+examples/qwerty/qwerty.cpp 1.11 warwick +7 -7
+examples/qwerty/qwerty.h 1.8 warwick +2 -2
+examples/scrollview/scrollview.cpp 1.15 warwick +6 -6
+examples/sheet/main.cpp 2.5 warwick +2 -2
+examples/sheet/sheet.cpp 2.5 warwick +2 -2
+examples/sheet/sheetdlg.cpp 2.5 warwick +2 -2
+examples/sheet/sheetdlg.h 2.3 warwick +2 -2
+examples/sheet/table.cpp 2.4 warwick +2 -2
+examples/sheet/table.h 2.4 warwick +3 -3
+examples/showimg/main.cpp 2.18 warwick +2 -2
+examples/showimg/showimg.cpp 2.24 warwick +5 -5
+examples/table/main.cpp 1.4 warwick +3 -3
+examples/table/table.h 1.5 warwick +2 -2
+examples/tetrix/qdragapp.cpp 2.3 warwick +5 -4
+examples/tetrix/qdragapp.h 2.3 warwick +2 -2
+examples/tetrix/qtetrix.cpp 2.7 warwick +3 -3
+examples/tetrix/qtetrix.h 2.4 warwick +3 -3
+examples/tictac/main.cpp 2.3 warwick +2 -2
+examples/tictac/tictac.cpp 2.8 warwick +6 -6
+examples/tictac/tictac.h 2.3 warwick +2 -2
+examples/timestmp/timestmp.cpp 2.4 warwick +3 -3
+examples/tooltip/main.cpp 1.5 warwick +2 -2
+examples/tooltip/tooltip.cpp 1.6 warwick +2 -2
+examples/validator/main.cpp 1.5 warwick +2 -2
+examples/validator/motor.cpp 1.9 warwick +3 -3
+examples/validator/vw.cpp 1.8 warwick +4 -4
+examples/widgets/widgets.cpp 2.43 warwick +13 -13
+examples/xform/xform.cpp 2.9 warwick +8 -8
+extensions/imageio/src/qjpegio.cpp 1.5 warwick +2 -2
+extensions/imageio/src/qpngio.cpp 1.7 warwick +2 -2
+extensions/nsplugin/examples/grapher/grapher.cpp 1.10 warwick +3 -3
+extensions/nsplugin/examples/qtimage/qtimage.cpp 1.6 warwick +2 -2
+extensions/nsplugin/examples/trivial/trivial.cpp 1.7 warwick +1 -1
+extensions/nsplugin/src/qnp.cpp 1.19 warwick +9 -9
+extensions/opengl/examples/box/globjwin.cpp 1.4 warwick +4 -4
+extensions/opengl/examples/box/main.cpp 1.4 warwick +1 -1
+extensions/opengl/examples/gear/gear.cpp 1.6 warwick +1 -1
+extensions/opengl/examples/sharedbox/globjwin.cpp 1.2 warwick +4 -4
+extensions/opengl/examples/sharedbox/main.cpp 1.2 warwick +1 -1
+extensions/xt/examples/mainlyMotif/editor.cpp 1.3 warwick +2 -2
+extensions/xt/examples/mainlyQt/editor.cpp 1.2 warwick +2 -2
+extensions/xt/examples/mainlyXt/editor.cpp 1.2 warwick +2 -2
+extensions/xt/src/qxt.cpp 1.3 warwick +6 -6
+extensions/xt/src/qxt.h 1.2 warwick +2 -2
+src/qt.pro 2.26 warwick +110 -110
+src/qtinternal.pro 2.7 warwick +5 -5
+src/dialogs/qfiledialog.cpp 2.71 warwick +12 -12
+src/dialogs/qfiledialog.h 2.18 warwick +4 -4
+src/dialogs/qfiledlg.cpp 2.71 warwick +1 -1
+src/dialogs/qfiledlg.h 2.18 warwick +2 -146
+src/dialogs/qfontdialog.cpp 2.13 warwick +7 -7
+src/dialogs/qmessagebox.cpp 2.49 warwick +5 -5
+src/dialogs/qmessagebox.h 2.26 warwick +4 -4
+src/dialogs/qmsgbox.cpp 2.49 warwick +1 -1
+src/dialogs/qmsgbox.h 2.26 warwick +1 -132
+src/dialogs/qprintdialog.cpp 2.28 warwick +10 -10
+src/dialogs/qprintdialog.h 2.9 warwick +4 -4
+src/dialogs/qprndlg.cpp 2.28 warwick +1 -1
+src/dialogs/qprndlg.h 2.9 warwick +2 -63
+src/dialogs/qprogdlg.cpp 2.27 warwick +1 -1
+src/dialogs/qprogdlg.h 2.14 warwick +2 -75
+src/dialogs/qprogressdialog.cpp 2.27 warwick +6 -6
+src/dialogs/qprogressdialog.h 2.14 warwick +6 -6
+src/dialogs/qtabdialog.cpp 2.41 warwick +7 -6
+src/dialogs/qtabdialog.h 2.19 warwick +4 -4
+src/dialogs/qtabdlg.cpp 2.41 warwick +1 -1
+src/dialogs/qtabdlg.h 2.19 warwick +1 -84
+src/kernel/qaccel.cpp 2.13 warwick +2 -2
+src/kernel/qapp.cpp 2.57 warwick +1 -1
+src/kernel/qapp.h 2.27 warwick +1 -205
+src/kernel/qapp_os2.cpp 2.5 warwick +4 -3
+src/kernel/qapp_win.cpp 2.90 warwick +1 -1
+src/kernel/qapp_x11.cpp 2.141 warwick +1 -1
+src/kernel/qapplication.cpp 2.57 warwick +13 -11
+src/kernel/qapplication.h 2.27 warwick +5 -5
+src/kernel/qapplication_win.cpp 2.90 warwick +9 -7
+src/kernel/qapplication_x11.cpp 2.141 warwick +13 -11
+src/kernel/qasyncio.cpp 1.9 warwick +2 -2
+src/kernel/qclb_win.cpp 2.7 warwick +1 -1
+src/kernel/qclb_x11.cpp 2.13 warwick +1 -1
+src/kernel/qclipboard.cpp 2.9 warwick +4 -4
+src/kernel/qclipboard.h 2.5 warwick +4 -4
+src/kernel/qclipboard_win.cpp 2.7 warwick +4 -4
+src/kernel/qclipboard_x11.cpp 2.13 warwick +5 -5
+src/kernel/qclipbrd.cpp 2.9 warwick +1 -1
+src/kernel/qclipbrd.h 2.5 warwick +2 -55
+src/kernel/qcol_win.cpp 2.18 warwick +1 -1
+src/kernel/qcol_x11.cpp 2.31 warwick +1 -1
+src/kernel/qcolor.cpp 2.15 warwick +2 -2
+src/kernel/qcolor.h 2.10 warwick +2 -2
+src/kernel/qcolor_win.cpp 2.18 warwick +2 -2
+src/kernel/qcolor_x11.cpp 2.31 warwick +4 -4
+src/kernel/qconnect.cpp 2.5 warwick +1 -1
+src/kernel/qconnect.h 2.5 warwick +2 -46
+src/kernel/qconnection.cpp 2.5 warwick +3 -3
+src/kernel/qconnection.h 2.5 warwick +4 -4
+src/kernel/qcur_os2.cpp 2.3 warwick +2 -2
+src/kernel/qcur_win.cpp 2.7 warwick +1 -1
+src/kernel/qcur_x11.cpp 2.11 warwick +1 -1
+src/kernel/qcursor.cpp 2.8 warwick +2 -2
+src/kernel/qcursor_win.cpp 2.7 warwick +3 -3
+src/kernel/qcursor_x11.cpp 2.11 warwick +3 -3
+src/kernel/qdialog.cpp 2.19 warwick +5 -4
+src/kernel/qdnd_win.cpp 2.6 warwick +2 -2
+src/kernel/qdnd_x11.cpp 2.18 warwick +8 -7
+src/kernel/qdragobject.cpp 2.17 warwick +4 -3
+src/kernel/qdrawutil.cpp 2.18 warwick +3 -3
+src/kernel/qdrawutil.h 2.7 warwick +4 -4
+src/kernel/qdrawutl.cpp 2.18 warwick +1 -1
+src/kernel/qdrawutl.h 2.7 warwick +2 -91
+src/kernel/qevent.h 2.17 warwick +2 -2
+src/kernel/qfnt_win.cpp 2.30 warwick +1 -1
+src/kernel/qfnt_x11.cpp 2.39 warwick +1 -1
+src/kernel/qfont.cpp 2.35 warwick +11 -11
+src/kernel/qfont.h 2.10 warwick +2 -2
+src/kernel/qfont_win.cpp 2.30 warwick +5 -5
+src/kernel/qfont_x11.cpp 2.39 warwick +2 -2
+src/kernel/qfontdata.h 2.11 warwick +4 -4
+src/kernel/qfontdta.h 2.11 warwick +2 -65
+src/kernel/qfontinf.h 2.7 warwick +1 -79
+src/kernel/qfontinfo.h 2.7 warwick +4 -4
+src/kernel/qfontmet.h 2.14 warwick +1 -95
+src/kernel/qfontmetrics.h 2.14 warwick +4 -4
+src/kernel/qgmanager.cpp 2.36 warwick +5 -5
+src/kernel/qgmanager.h 2.13 warwick +4 -4
+src/kernel/qgmanagr.cpp 2.36 warwick +1 -1
+src/kernel/qgmanagr.h 2.13 warwick +2 -84
+src/kernel/qiconset.cpp 2.10 warwick +2 -2
+src/kernel/qimage.cpp 2.91 warwick +3 -3
+src/kernel/qlayout.h 2.18 warwick +2 -2
+src/kernel/qmetaobj.cpp 2.9 warwick +1 -1
+src/kernel/qmetaobj.h 2.4 warwick +2 -66
+src/kernel/qmetaobject.cpp 2.9 warwick +5 -4
+src/kernel/qmetaobject.h 2.4 warwick +5 -5
+src/kernel/qmovie.cpp 1.33 warwick +3 -3
+src/kernel/qmutex.h 1.5 warwick +2 -2
+src/kernel/qnpsupport.cpp 2.11 warwick +6 -6
+src/kernel/qobjcoll.h 2.6 warwick +1 -1
+src/kernel/qobjdefs.h 2.4 warwick +1 -78
+src/kernel/qobject.cpp 2.51 warwick +5 -4
+src/kernel/qobject.h 2.10 warwick +2 -2
+src/kernel/qobjectdefs.h 2.4 warwick +4 -4
+src/kernel/qobjectdict.h 2.1 warwick initial checkin
+src/kernel/qobjectlist.h 2.1 warwick initial checkin
+src/kernel/qpaintd.h 2.7 warwick +1 -170
+src/kernel/qpaintdc.h 2.6 warwick +2 -97
+src/kernel/qpaintdevice.h 2.7 warwick +6 -6
+src/kernel/qpaintdevice_win.cpp 2.10 warwick +5 -5
+src/kernel/qpaintdevice_x11.cpp 2.15 warwick +6 -6
+src/kernel/qpaintdevicedefs.h 2.6 warwick +5 -5
+src/kernel/qpaintdevicemetrics.cpp 2.4 warwick +3 -3
+src/kernel/qpaintdevicemetrics.h 2.3 warwick +7 -7
+src/kernel/qpainter.cpp 2.53 warwick +7 -7
+src/kernel/qpainter.h 2.26 warwick +5 -5
+src/kernel/qpainter_win.cpp 2.37 warwick +5 -5
+src/kernel/qpainter_x11.cpp 2.52 warwick +4 -4
+src/kernel/qpalette.cpp 2.18 warwick +2 -2
+src/kernel/qpalette.h 2.14 warwick +2 -2
+src/kernel/qpdevmet.cpp 2.4 warwick +1 -1
+src/kernel/qpdevmet.h 2.3 warwick +2 -37
+src/kernel/qpic_win.cpp 2.3 warwick +1 -1
+src/kernel/qpic_x11.cpp 2.3 warwick +1 -1
+src/kernel/qpicture.cpp 2.6 warwick +3 -3
+src/kernel/qpicture.h 2.5 warwick +2 -2
+src/kernel/qpixmap.cpp 2.26 warwick +2 -2
+src/kernel/qpixmap.h 2.20 warwick +2 -2
+src/kernel/qpixmap_win.cpp 2.35 warwick +3 -3
+src/kernel/qpixmap_x11.cpp 2.37 warwick +3 -3
+src/kernel/qpixmapcache.cpp 2.7 warwick +3 -3
+src/kernel/qpixmapcache.h 2.4 warwick +4 -4
+src/kernel/qpm_win.cpp 2.35 warwick +1 -1
+src/kernel/qpm_x11.cpp 2.37 warwick +1 -1
+src/kernel/qpmcache.cpp 2.7 warwick +1 -1
+src/kernel/qpmcache.h 2.4 warwick +2 -31
+src/kernel/qpntarry.cpp 2.16 warwick +1 -1
+src/kernel/qpntarry.h 2.7 warwick +1 -155
+src/kernel/qpoint.cpp 2.4 warwick +3 -3
+src/kernel/qpoint.h 2.3 warwick +2 -2
+src/kernel/qpointarray.cpp 2.16 warwick +6 -6
+src/kernel/qpointarray.h 2.7 warwick +4 -4
+src/kernel/qprinter.cpp 2.9 warwick +3 -3
+src/kernel/qprinter.h 2.7 warwick +2 -2
+src/kernel/qprinter_win.cpp 2.11 warwick +2 -2
+src/kernel/qprinter_x11.cpp 2.16 warwick +6 -6
+src/kernel/qprn_win.cpp 2.11 warwick +1 -1
+src/kernel/qprn_x11.cpp 2.16 warwick +1 -1
+src/kernel/qpsprinter.cpp 2.26 warwick +4 -4
+src/kernel/qpsprinter.h 2.8 warwick +5 -5
+src/kernel/qpsprn.cpp 2.26 warwick +1 -1
+src/kernel/qpsprn.h 2.8 warwick +2 -70
+src/kernel/qptd_os2.cpp 2.3 warwick +2 -2
+src/kernel/qptd_win.cpp 2.10 warwick +1 -1
+src/kernel/qptd_x11.cpp 2.15 warwick +1 -1
+src/kernel/qptr_os2.cpp 2.4 warwick +2 -2
+src/kernel/qptr_win.cpp 2.37 warwick +1 -1
+src/kernel/qptr_x11.cpp 2.52 warwick +1 -1
+src/kernel/qrect.cpp 2.8 warwick +3 -3
+src/kernel/qregion.cpp 2.14 warwick +3 -3
+src/kernel/qregion_win.cpp 2.15 warwick +2 -2
+src/kernel/qregion_x11.cpp 2.16 warwick +2 -2
+src/kernel/qrgn_os2.cpp 2.4 warwick +2 -2
+src/kernel/qrgn_win.cpp 2.15 warwick +1 -1
+src/kernel/qrgn_x11.cpp 2.16 warwick +1 -1
+src/kernel/qsemimodal.cpp 2.6 warwick +2 -2
+src/kernel/qsignal.cpp 2.5 warwick +2 -2
+src/kernel/qsize.cpp 2.9 warwick +3 -3
+src/kernel/qsocketnotifier.cpp 2.7 warwick +3 -3
+src/kernel/qsocketnotifier.h 2.4 warwick +4 -4
+src/kernel/qsocknot.cpp 2.7 warwick +1 -1
+src/kernel/qsocknot.h 2.4 warwick +2 -60
+src/kernel/qt_x11.cpp 2.4 warwick +1 -1
+src/kernel/qthread.h 1.5 warwick +2 -2
+src/kernel/qtimer.cpp 2.9 warwick +4 -3
+src/kernel/qwid_os2.cpp 2.6 warwick +3 -2
+src/kernel/qwid_win.cpp 2.56 warwick +1 -1
+src/kernel/qwid_x11.cpp 2.96 warwick +1 -1
+src/kernel/qwidcoll.h 2.5 warwick +1 -1
+src/kernel/qwidget.cpp 2.111 warwick +10 -8
+src/kernel/qwidget.h 2.50 warwick +5 -5
+src/kernel/qwidget_win.cpp 2.56 warwick +11 -9
+src/kernel/qwidget_x11.cpp 2.96 warwick +10 -8
+src/kernel/qwidgetintdict.h 2.1 warwick initial checkin
+src/kernel/qwidgetlist.h 2.1 warwick initial checkin
+src/kernel/qwindefs.h 2.23 warwick +1 -313
+src/kernel/qwindowdefs.h 2.23 warwick +5 -5
+src/kernel/qwmatrix.cpp 2.5 warwick +3 -3
+src/kernel/qwmatrix.h 2.3 warwick +3 -3
+src/moc/GNUmakefile 2.5 warwick +13 -13
+src/moc/Makefile 2.10 warwick +42 -42
+src/moc/moc.pro 1.10 warwick +4 -4
+src/moc/moc.y 2.23 warwick +5 -5
+src/tools/qbitarray.cpp 2.7 warwick +5 -5
+src/tools/qbitarray.h 2.5 warwick +4 -4
+src/tools/qbitarry.cpp 2.7 warwick +1 -1
+src/tools/qbitarry.h 2.5 warwick +2 -134
+src/tools/qbuffer.h 2.5 warwick +2 -2
+src/tools/qcollect.cpp 2.5 warwick +1 -1
+src/tools/qcollect.h 2.3 warwick +2 -46
+src/tools/qcollection.cpp 2.5 warwick +3 -3
+src/tools/qcollection.h 2.3 warwick +4 -4
+src/tools/qdatastream.cpp 2.14 warwick +3 -3
+src/tools/qdatastream.h 2.6 warwick +5 -5
+src/tools/qdatetime.cpp 2.15 warwick +6 -6
+src/tools/qdatetime.h 2.4 warwick +4 -4
+src/tools/qdatetm.cpp 2.15 warwick +1 -1
+src/tools/qdatetm.h 2.4 warwick +2 -180
+src/tools/qdir.cpp 2.22 warwick +3 -3
+src/tools/qdir.h 2.8 warwick +2 -2
+src/tools/qdstream.cpp 2.14 warwick +1 -1
+src/tools/qdstream.h 2.6 warwick +2 -117
+src/tools/qfile.cpp 2.22 warwick +2 -2
+src/tools/qfile.h 2.5 warwick +2 -2
+src/tools/qfiledef.h 2.8 warwick +3 -153
+src/tools/qfiledefs.h 2.8 warwick +2 -2
+src/tools/qfileinf.cpp 2.11 warwick +1 -1
+src/tools/qfileinf.h 2.3 warwick +2 -96
+src/tools/qfileinfo.cpp 2.11 warwick +6 -6
+src/tools/qfileinfo.h 2.3 warwick +5 -5
+src/tools/qgcache.h 2.3 warwick +2 -2
+src/tools/qgdict.cpp 2.16 warwick +2 -2
+src/tools/qgdict.h 2.5 warwick +2 -2
+src/tools/qglist.cpp 2.5 warwick +2 -2
+src/tools/qglist.h 2.3 warwick +2 -2
+src/tools/qglobal.cpp 2.15 warwick +2 -2
+src/tools/qglobal.h 2.52 warwick +2 -2
+src/tools/qgvector.cpp 2.7 warwick +2 -2
+src/tools/qgvector.h 2.3 warwick +2 -2
+src/tools/qintcach.h 2.3 warwick +1 -168
+src/tools/qintcache.h 2.3 warwick +4 -4
+src/tools/qiodev.cpp 2.11 warwick +1 -1
+src/tools/qiodev.h 2.5 warwick +2 -128
+src/tools/qiodevice.cpp 2.11 warwick +3 -3
+src/tools/qiodevice.h 2.5 warwick +4 -4
+src/tools/qstring.cpp 2.21 warwick +2 -2
+src/tools/qstrlist.h 2.11 warwick +2 -2
+src/tools/qstrvec.h 2.4 warwick +2 -2
+src/tools/qtextstream.cpp 2.15 warwick +4 -4
+src/tools/qtextstream.h 2.7 warwick +5 -5
+src/tools/qtstream.cpp 2.15 warwick +1 -1
+src/tools/qtstream.h 2.7 warwick +2 -216
+src/widgets/qbttngrp.cpp 2.13 warwick +1 -1
+src/widgets/qbttngrp.h 2.6 warwick +2 -61
+src/widgets/qbutton.cpp 2.61 warwick +3 -3
+src/widgets/qbutton.h 2.17 warwick +2 -2
+src/widgets/qbuttongroup.cpp 2.13 warwick +3 -3
+src/widgets/qbuttongroup.h 2.6 warwick +5 -5
+src/widgets/qcheckbox.cpp 2.23 warwick +5 -5
+src/widgets/qcheckbox.h 2.6 warwick +4 -4
+src/widgets/qchkbox.cpp 2.23 warwick +1 -1
+src/widgets/qchkbox.h 2.6 warwick +2 -47
+src/widgets/qcombo.cpp 2.87 warwick +1 -1
+src/widgets/qcombo.h 2.27 warwick +2 -132
+src/widgets/qcombobox.cpp 2.87 warwick +8 -8
+src/widgets/qcombobox.h 2.27 warwick +3 -3
+src/widgets/qframe.cpp 2.19 warwick +2 -2
+src/widgets/qgroupbox.cpp 2.12 warwick +3 -3
+src/widgets/qgroupbox.h 2.4 warwick +4 -4
+src/widgets/qgrpbox.cpp 2.12 warwick +1 -1
+src/widgets/qgrpbox.h 2.4 warwick +2 -46
+src/widgets/qheader.cpp 2.45 warwick +3 -3
+src/widgets/qheader.h 2.19 warwick +2 -2
+src/widgets/qlabel.cpp 2.32 warwick +2 -2
+src/widgets/qlcdnum.cpp 2.13 warwick +1 -1
+src/widgets/qlcdnum.h 2.8 warwick +2 -95
+src/widgets/qlcdnumber.cpp 2.13 warwick +4 -4
+src/widgets/qlcdnumber.h 2.8 warwick +5 -5
+src/widgets/qlined.cpp 2.81 warwick +1 -1
+src/widgets/qlined.h 2.28 warwick +2 -138
+src/widgets/qlineedit.cpp 2.81 warwick +7 -7
+src/widgets/qlineedit.h 2.28 warwick +4 -4
+src/widgets/qlistbox.cpp 2.69 warwick +4 -4
+src/widgets/qlistbox.h 2.16 warwick +2 -2
+src/widgets/qlistview.cpp 2.117 warwick +3 -3
+src/widgets/qmainwindow.cpp 2.27 warwick +4 -3
+src/widgets/qmenubar.cpp 2.54 warwick +3 -3
+src/widgets/qmenubar.h 2.11 warwick +2 -2
+src/widgets/qmenudata.cpp 2.16 warwick +5 -5
+src/widgets/qmenudata.h 2.11 warwick +4 -4
+src/widgets/qmenudta.cpp 2.16 warwick +1 -1
+src/widgets/qmenudta.h 2.11 warwick +1 -182
+src/widgets/qmlined.cpp 2.93 warwick +1 -1
+src/widgets/qmlined.h 2.36 warwick +2 -189
+src/widgets/qmultilined.cpp 2.93 warwick +6 -6
+src/widgets/qmultilined.h 2.36 warwick +5 -5
+src/widgets/qpopmenu.cpp 2.78 warwick +1 -1
+src/widgets/qpopmenu.h 2.14 warwick +2 -110
+src/widgets/qpopupmenu.cpp 2.78 warwick +6 -6
+src/widgets/qpopupmenu.h 2.14 warwick +6 -6
+src/widgets/qprogbar.cpp 2.19 warwick +1 -1
+src/widgets/qprogbar.h 2.9 warwick +2 -65
+src/widgets/qprogressbar.cpp 2.19 warwick +5 -5
+src/widgets/qprogressbar.h 2.9 warwick +4 -4
+src/widgets/qpushbt.cpp 2.41 warwick +1 -1
+src/widgets/qpushbt.h 2.8 warwick +2 -70
+src/widgets/qpushbutton.cpp 2.41 warwick +6 -6
+src/widgets/qpushbutton.h 2.8 warwick +4 -4
+src/widgets/qradiobt.cpp 2.28 warwick +1 -1
+src/widgets/qradiobt.h 2.8 warwick +2 -55
+src/widgets/qradiobutton.cpp 2.28 warwick +6 -6
+src/widgets/qradiobutton.h 2.8 warwick +4 -4
+src/widgets/qrangecontrol.cpp 2.6 warwick +3 -3
+src/widgets/qrangecontrol.h 2.3 warwick +4 -4
+src/widgets/qrangect.cpp 2.6 warwick +1 -1
+src/widgets/qrangect.h 2.3 warwick +2 -76
+src/widgets/qscrbar.cpp 2.38 warwick +1 -1
+src/widgets/qscrbar.h 2.6 warwick +2 -115
+src/widgets/qscrollbar.cpp 2.38 warwick +3 -3
+src/widgets/qscrollbar.h 2.6 warwick +6 -6
+src/widgets/qscrollview.cpp 2.46 warwick +5 -4
+src/widgets/qscrollview.h 2.21 warwick +2 -2
+src/widgets/qslider.cpp 2.52 warwick +2 -2
+src/widgets/qslider.h 2.23 warwick +2 -2
+src/widgets/qspinbox.cpp 2.35 warwick +3 -3
+src/widgets/qspinbox.h 2.20 warwick +2 -2
+src/widgets/qsplitter.cpp 1.16 warwick +2 -2
+src/widgets/qstatusbar.cpp 2.14 warwick +3 -3
+src/widgets/qtableview.cpp 2.49 warwick +5 -5
+src/widgets/qtableview.h 2.10 warwick +4 -4
+src/widgets/qtablevw.cpp 2.49 warwick +1 -1
+src/widgets/qtablevw.h 2.10 warwick +2 -241
+src/widgets/qtoolbar.cpp 2.23 warwick +5 -4
+src/widgets/qtoolbutton.cpp 2.28 warwick +3 -3
+src/widgets/qtooltip.cpp 2.47 warwick +4 -4
+src/widgets/qwellarray.cpp 1.4 warwick +4 -3
+src/widgets/qwellarray.h 1.5 warwick +2 -2
+src/widgets/qwhatsthis.cpp 2.15 warwick +3 -3
+src/widgets/qwidgetstack.cpp 2.7 warwick +3 -2
+tutorial/t1/main.cpp 2.1 warwick +2 -2
+tutorial/t10/lcdrange.cpp 2.1 warwick +2 -2
+tutorial/t10/main.cpp 2.3 warwick +4 -4
+tutorial/t11/lcdrange.cpp 2.1 warwick +2 -2
+tutorial/t11/main.cpp 2.3 warwick +4 -4
+tutorial/t12/cannon.cpp 2.3 warwick +1 -1
+tutorial/t12/lcdrange.cpp 2.1 warwick +2 -2
+tutorial/t12/main.cpp 2.3 warwick +4 -4
+tutorial/t13/cannon.cpp 2.3 warwick +1 -1
+tutorial/t13/gamebrd.cpp 2.1 warwick +3 -3
+tutorial/t13/lcdrange.cpp 2.1 warwick +2 -2
+tutorial/t13/main.cpp 2.3 warwick +1 -1
+tutorial/t14/cannon.cpp 2.3 warwick +1 -1
+tutorial/t14/gamebrd.cpp 2.2 warwick +3 -3
+tutorial/t14/lcdrange.cpp 2.1 warwick +2 -2
+tutorial/t14/main.cpp 2.3 warwick +1 -1
+tutorial/t2/main.cpp 2.1 warwick +2 -2
+tutorial/t3/main.cpp 2.1 warwick +2 -2
+tutorial/t4/main.cpp 2.1 warwick +2 -2
+tutorial/t5/main.cpp 2.1 warwick +4 -4
+tutorial/t6/main.cpp 2.1 warwick +4 -4
+tutorial/t7/lcdrange.cpp 2.1 warwick +2 -2
+tutorial/t7/main.cpp 2.1 warwick +4 -4
+tutorial/t8/lcdrange.cpp 2.1 warwick +2 -2
+tutorial/t8/main.cpp 2.1 warwick +4 -4
+tutorial/t9/lcdrange.cpp 2.1 warwick +2 -2
+tutorial/t9/main.cpp 2.3 warwick +4 -4
+
+ The Big Renaming of '98
+
+
+doc/tutorial.doc 2.14 agulbra +4 -4
+
+ new header files
+
+
+examples/validator/motor.cpp 1.8 agulbra +2 -71
+examples/validator/motor.h 1.7 agulbra +2 -29
+examples/validator/vw.cpp 1.7 agulbra +11 -11
+examples/validator/vw.h 1.4 agulbra +3 -3
+
+ some fixes for current QSpinBox
+
+
+extensions/nsplugin/src/qnp.pro 1.2 warwick +1 -1
+
+ tmake workaround
+
+
+src/dialogs/qfiledialog.cpp 2.70 agulbra +46 -1
+src/dialogs/qfiledialog.h 2.17 agulbra +3 -1
+src/dialogs/qfiledlg.cpp 2.70 agulbra +46 -1
+src/dialogs/qfiledlg.h 2.17 agulbra +3 -1
+
+ support multile file types
+
+
+src/dialogs/qfiledlg.h 2.19 warwick +0 -0
+src/dialogs/qmsgbox.h 2.27 warwick +0 -0
+src/dialogs/qprndlg.h 2.10 warwick +0 -0
+src/dialogs/qprogdlg.h 2.15 warwick +0 -0
+src/dialogs/qtabdlg.h 2.20 warwick +0 -0
+src/kernel/qapp.h 2.28 warwick +0 -0
+src/kernel/qclipbrd.h 2.6 warwick +0 -0
+src/kernel/qconnect.h 2.6 warwick +0 -0
+src/kernel/qdrawutl.h 2.8 warwick +0 -0
+src/kernel/qfontdta.h 2.12 warwick +0 -0
+src/kernel/qfontinf.h 2.8 warwick +0 -0
+src/kernel/qfontmet.h 2.15 warwick +0 -0
+src/kernel/qgmanagr.h 2.14 warwick +0 -0
+src/kernel/qmetaobj.h 2.5 warwick +0 -0
+src/kernel/qobjdefs.h 2.5 warwick +0 -0
+src/kernel/qpaintd.h 2.8 warwick +0 -0
+src/kernel/qpaintdc.h 2.7 warwick +0 -0
+src/kernel/qpdevmet.h 2.4 warwick +0 -0
+src/kernel/qpmcache.h 2.5 warwick +0 -0
+src/kernel/qpntarry.h 2.8 warwick +0 -0
+src/kernel/qpsprn.h 2.9 warwick +0 -0
+src/kernel/qsocknot.h 2.5 warwick +0 -0
+src/kernel/qwindefs.h 2.24 warwick +0 -0
+src/tools/qbitarry.h 2.6 warwick +0 -0
+src/tools/qcollect.h 2.4 warwick +0 -0
+src/tools/qdatetm.h 2.5 warwick +0 -0
+src/tools/qdstream.h 2.7 warwick +0 -0
+src/tools/qfiledef.h 2.9 warwick +0 -0
+src/tools/qfileinf.h 2.4 warwick +0 -0
+src/tools/qintcach.h 2.4 warwick +0 -0
+src/tools/qiodev.h 2.6 warwick +0 -0
+src/tools/qtstream.h 2.8 warwick +0 -0
+src/widgets/qbttngrp.h 2.7 warwick +0 -0
+src/widgets/qchkbox.h 2.7 warwick +0 -0
+src/widgets/qcombo.h 2.28 warwick +0 -0
+src/widgets/qgrpbox.h 2.5 warwick +0 -0
+src/widgets/qlcdnum.h 2.9 warwick +0 -0
+src/widgets/qlined.h 2.29 warwick +0 -0
+src/widgets/qmenudta.h 2.12 warwick +0 -0
+src/widgets/qmlined.h 2.37 warwick +0 -0
+src/widgets/qpopmenu.h 2.15 warwick +0 -0
+src/widgets/qprogbar.h 2.10 warwick +0 -0
+src/widgets/qpushbt.h 2.9 warwick +0 -0
+src/widgets/qradiobt.h 2.9 warwick +0 -0
+src/widgets/qrangect.h 2.4 warwick +0 -0
+src/widgets/qscrbar.h 2.7 warwick +0 -0
+src/widgets/qtablevw.h 2.11 warwick +0 -0
+
+ Move compatibility files out of the way.
+
+
+src/dialogs/qprintdialog.cpp 2.27 agulbra +67 -1
+src/dialogs/qprndlg.cpp 2.27 agulbra +67 -1
+
+ val's irix 6.3 printer discovery code
+
+
+src/kernel/qapp.cpp 2.56 agulbra +14 -6
+src/kernel/qapplication.cpp 2.56 agulbra +14 -6
+src/kernel/qasyncimageio.cpp 1.34 agulbra +53 -15
+src/kernel/qregion.cpp 2.13 agulbra +1 -8
+src/kernel/qregion.h 2.13 agulbra +1 -4
+src/widgets/qheader.cpp 2.44 agulbra +4 -5
+
+ Reginald Stadlbauer's alpha's egcs said to do this. it doesn't like
+ static objects with non-default constructors.
+
+
+src/kernel/qapp_os2.cpp 2.6 warwick +1 -1
+src/kernel/qcol_os2.cpp 2.4 warwick +1 -1
+src/kernel/qcur_os2.cpp 2.4 warwick +1 -1
+src/kernel/qfnt_os2.cpp 2.3 warwick +1 -1
+src/kernel/qpic_os2.cpp 2.3 warwick +1 -1
+src/kernel/qpm_os2.cpp 2.3 warwick +1 -1
+src/kernel/qptd_os2.cpp 2.4 warwick +1 -1
+src/kernel/qptr_os2.cpp 2.5 warwick +1 -1
+src/kernel/qrgn_os2.cpp 2.5 warwick +1 -1
+src/kernel/qwid_os2.cpp 2.7 warwick +1 -1
+
+ Remove OS2 code.
+
+
+src/kernel/qapp_x11.cpp 2.139 hanord +2 -4
+src/kernel/qapplication_x11.cpp 2.139 hanord +2 -4
+
+ Fixed keyboard release event bug when the key press was done outside the
+ window (Morten Eriksen bug report).
+
+
+src/kernel/qapp_x11.cpp 2.140 warwick +5 -5
+src/kernel/qapplication_x11.cpp 2.140 warwick +5 -5
+src/kernel/qfnt_x11.cpp 2.37 warwick +9 -23
+src/kernel/qfont_x11.cpp 2.37 warwick +9 -23
+src/kernel/qimage.cpp 2.90 warwick +13 -13
+src/kernel/qnpsupport.cpp 2.10 warwick +2 -1
+src/kernel/qwidget.cpp 2.109 warwick +17 -16
+
+ Fix pointer-to-int casts that 64-bit compiler don't like.
+
+
+src/kernel/qcol_x11.cpp 2.30 hanord +2 -2
+src/kernel/qcolor_x11.cpp 2.30 hanord +2 -2
+src/widgets/qheader.cpp 2.42 hanord +2 -2
+
+ Don't do big changes in 1.40, wait until 1.49
+
+
+src/kernel/qdialog.cpp 2.18 warwick +20 -4
+
+ Stay on-screen when centering relative to parent. This code should
+ be shared.
+
+
+src/kernel/qdnd_x11.cpp 2.15 agulbra +6 -9
+
+ comment out old debug messages; delete some
+
+
+src/kernel/qdnd_x11.cpp 2.16 agulbra +8 -5
+
+ workaround for gcc/alpha brokenness.
+
+
+src/kernel/qdnd_x11.cpp 2.17 warwick +9 -9
+src/kernel/qpainter.cpp 2.52 warwick +14 -11
+src/kernel/qwid_x11.cpp 2.95 warwick +2 -2
+src/kernel/qwidget_x11.cpp 2.95 warwick +2 -2
+src/widgets/qwellarray.cpp 1.3 warwick +10 -1
+src/widgets/qwellarray.h 1.4 warwick +2 -1
+
+ Avoid HPUX warnings.
+
+
+src/kernel/qdragobject.cpp 2.15 agulbra +4 -6
+
+ ignore totally unexpected events
+
+
+src/kernel/qdragobject.cpp 2.16 agulbra +2 -2
+
+ stop warning
+
+
+src/kernel/qfnt_win.cpp 2.29 warwick +3 -3
+src/kernel/qfnt_x11.cpp 2.38 warwick +4 -4
+src/kernel/qfont_win.cpp 2.29 warwick +3 -3
+src/kernel/qfont_x11.cpp 2.38 warwick +4 -4
+
+ Fix width(char) for signed characters.
+
+
+src/kernel/qgmanager.cpp 2.35 paul +48 -20
+src/kernel/qgmanager.h 2.12 paul +3 -1
+src/kernel/qgmanagr.cpp 2.35 paul +48 -20
+src/kernel/qgmanagr.h 2.12 paul +3 -1
+src/kernel/qlayout.cpp 2.32 paul +36 -22
+
+ Better debug output.
+
+
+src/kernel/qimage.cpp 2.92 warwick +3 -3
+src/kernel/qlayout.cpp 2.34 agulbra +10 -25
+src/kernel/qpainter.cpp 2.50 agulbra +6 -12
+src/tools/qregexp.cpp 2.11 agulbra +3 -3
+src/widgets/qstatusbar.cpp 2.12 agulbra +4 -4
+
+ doc
+
+
+src/kernel/qlayout.cpp 2.31 agulbra +75 -24
+src/widgets/qlistview.cpp 2.114 agulbra +7 -2
+
+ some docs
+
+
+src/kernel/qlayout.cpp 2.33 agulbra +183 -34
+src/widgets/qlistview.cpp 2.115 agulbra +93 -22
+src/widgets/qlistview.h 2.50 agulbra +4 -1
+src/widgets/qwhatsthis.cpp 2.14 agulbra +152 -29
+
+ doc, doc, doc. this round pushes qt over 3250 documented functions.
+ the next milestone is five megs of html doc (sixty-odd k left).
+
+
+src/kernel/qobjcoll.h 2.7 warwick +4 -20
+src/kernel/qwidcoll.h 2.6 warwick +3 -14
+
+ Broken in rename.
+
+
+src/kernel/qobjcoll.h 2.8 warwick +1 -1
+src/kernel/qwidcoll.h 2.7 warwick +1 -1
+
+ Moved.
+
+
+src/kernel/qpainter.cpp 2.51 warwick +2 -2
+
+ Improve robustness.
+
+
+src/kernel/qprinter_x11.cpp 2.15 agulbra +2 -1
+src/kernel/qprn_x11.cpp 2.15 agulbra +2 -1
+
+ #include <errno.h>; necessary for some unixes
+
+
+src/kernel/qwidget.cpp 2.110 agulbra +2 -2
+
+ make tab focus change work (at all!) in dialogs
+
+
+src/tools/qfileinf.cpp 2.10 agulbra +17 -8
+src/tools/qfileinfo.cpp 2.10 agulbra +17 -8
+
+ double the speed of isSymLink() (and hence the file dialog's repaint)
+ in one easy change.
+
+
+src/tools/qgdict.cpp 2.15 warwick +2 -2
+
+ 64-bit pointer to long fix.
+
+
+src/tools/qstring.cpp 2.20 warwick +2 -2
+
+ Obscure safety improvement.
+
+
+src/widgets/qcombo.cpp 2.86 agulbra +2 -2
+src/widgets/qcombobox.cpp 2.86 agulbra +2 -2
+src/widgets/qlabel.cpp 2.31 agulbra +2 -2
+
+ fix logic to decide when to locate the listbox above the combo itself
+ instead of below.
+
+
+src/widgets/qheader.cpp 2.43 agulbra +2 -3
+
+ remove a "this should not happen" debug() because that situation
+ should happen. can happen, anyway.
+
+
+src/widgets/qlined.cpp 2.80 warwick +24 -6
+src/widgets/qlined.h 2.27 warwick +2 -1
+src/widgets/qlineedit.cpp 2.80 warwick +24 -6
+src/widgets/qlineedit.h 2.27 warwick +2 -1
+src/widgets/qmlined.cpp 2.92 warwick +36 -7
+src/widgets/qmlined.h 2.35 warwick +2 -1
+src/widgets/qmultilined.cpp 2.92 warwick +36 -7
+src/widgets/qmultilined.h 2.35 warwick +2 -1
+
+ Make WindowsStyle under X11 still meet the X11 user's expectations
+ regarding auto-copy, while allowing the highlight-and-paste action
+ familiar to Windows users. A compromise.
+
+ Also make qmlined more similar to qlined.
+
+
+src/widgets/qlistbox.cpp 2.68 warwick +2 -2
+
+ Use maximumSize() correctly.
+ (fixes kdisplay background problem)
+
+
+src/widgets/qlistview.cpp 2.116 agulbra +25 -12
+
+ tweak mouse state machine a little. make it harder to select a
+ non-selectable item. doc fixes.
+
+
+src/widgets/qmainwindow.cpp 2.25 agulbra +3 -5
+src/widgets/qmainwindow.cpp 2.24 agulbra +245 -26
+src/widgets/qmainwindow.h 2.15 agulbra +2 -1
+
+ if a dock contained only hidden toolbars, layout would be wrong.
+ also contains ifdef-ed out broken docking code.
+
+
+src/widgets/qmainwindow.cpp 2.26 warwick +3 -1
+src/widgets/qsplitter.cpp 1.15 warwick +3 -1
+src/widgets/qstatusbar.cpp 2.13 warwick +3 -1
+
+ New documentation images.
+
+
+src/widgets/qmainwindow.h 2.16 agulbra +2 -3
+
+ setRightJustification is now a slot
+
+
+src/widgets/qmenudata.cpp 2.15 warwick +4 -2
+src/widgets/qmenudta.cpp 2.15 warwick +4 -2
+
+ Warning about setCheckable in setItemChecked.
+
+
+src/widgets/qpopmenu.cpp 2.76 warwick +4 -9
+src/widgets/qpopupmenu.cpp 2.76 warwick +4 -9
+
+ Fix "need more than one off-menu click to cancel" bug.
+ Make Escape only pop down one popup (as per Windows and Motif).
+
+
+src/widgets/qpopmenu.cpp 2.77 warwick +4 -2
+src/widgets/qpopupmenu.cpp 2.77 warwick +4 -2
+
+ Correct drop-down-on-no-selection behaviour.
+
+
+src/widgets/qspinbox.cpp 2.33 agulbra +5 -7
+
+ minor changes; this really need to take the validator into
+ consideration when the user has typed but I can't fix that now.
+
+
+src/widgets/qspinbox.cpp 2.34 agulbra +18 -3
+src/widgets/qspinbox.h 2.19 agulbra +3 -1
+
+ handle setEnabled() correctly
+
+
+src/widgets/qsplitter.cpp 1.14 paul +10 -10
+
+ Fixed off-by-one error
+
+
+src/widgets/qtabbar.h 2.11 agulbra +2 -1
+
+ one variable wasn't initialized. initialize it.
+
+
+src/widgets/qtooltip.cpp 2.46 agulbra +3 -3
+
+ stay up for ten seconds, not four.
+
+
+src/widgets/qvalidator.cpp 2.20 agulbra +7 -4
+
+ "-" is a valid state for both validator; allows typing of -42 in the
+ natural way if -42 is valid.
+
diff --git a/dist/changes-1.39-19980623 b/dist/changes-1.39-19980623
new file mode 100644
index 0000000..0a40bf9
--- /dev/null
+++ b/dist/changes-1.39-19980623
@@ -0,0 +1,545 @@
+doc/annotated.doc 1.5 warwick +6 -3
+
+ Try new tabled annotated list.
+
+
+doc/tutorial.doc 2.14 agulbra +4 -4
+
+ new header files
+
+
+examples/application/application.cpp 1.13 warwick +2 -2
+examples/layout/layout.cpp 1.7 warwick +2 -2
+examples/network/finger.cpp 1.8 warwick +2 -2
+examples/pref/pref.cpp 1.21 warwick +2 -2
+examples/qwerty/qwerty.h 1.9 warwick +2 -2
+examples/scrollview/scrollview.cpp 1.16 warwick +2 -2
+examples/widgets/widgets.cpp 2.44 warwick +2 -2
+src/widgets/qmultilinedit.cpp 2.94 warwick +2 -2
+
+ Rename fix - "qmultilinedit.h" not "qmultilined.h"
+
+
+examples/application/application.cpp 1.14 agulbra +32 -18
+
+ use QWhatsThis
+
+
+examples/application/application.cpp 1.15 warwick +7 -6
+examples/application/application.h 1.5 warwick +2 -1
+
+ Use persistent QPrinter.
+
+
+examples/dragdrop/.cvsignore 1.1 warwick initial checkin
+examples/dragdrop/dragdrop.pro 1.1 warwick initial checkin
+examples/dragdrop/main.cpp 1.6 warwick +20 -7
+src/qt.pro 2.28 warwick +3 -3
+
+ upd
+
+
+examples/dragdrop/GNUmakefile 1.1 warwick initial checkin
+examples/dragdrop/Makefile 1.1 warwick initial checkin
+examples/dragdrop/main.cpp 1.2 warwick +2 -1
+
+ Quit.
+
+
+examples/dragdrop/dropsite.cpp 1.1 agulbra initial checkin
+examples/dragdrop/dropsite.h 1.1 agulbra initial checkin
+examples/dragdrop/main.cpp 1.1 agulbra initial checkin
+
+ kind of like simple.c, except not 2000 lines
+
+
+examples/dragdrop/dropsite.cpp 1.2 warwick +22 -3
+examples/dragdrop/main.cpp 1.3 warwick +3 -3
+
+ Fixes, more debug options.
+
+
+examples/dragdrop/dropsite.cpp 1.3 warwick +36 -34
+examples/dragdrop/main.cpp 1.4 warwick +2 -2
+
+ Better feedback, more examples.
+
+
+examples/dragdrop/dropsite.cpp 1.4 warwick +5 -3
+
+ Visualize DragLeave events.
+
+
+examples/dragdrop/dropsite.cpp 1.5 warwick +15 -43
+examples/dragdrop/dropsite.h 1.2 warwick +1 -7
+examples/dragdrop/main.cpp 1.5 warwick +2 -10
+
+ Remove format choice - QImageDragObject deals with that.
+
+
+examples/dragdrop/dropsite.cpp 1.6 warwick +4 -5
+src/kernel/qdragobject.cpp 2.25 warwick +11 -6
+src/kernel/qdragobject.h 2.12 warwick +3 -2
+
+ Set MIME format in QStoredDragObject constructor.
+
+
+examples/dragdrop/dropsite.cpp 1.7 warwick +10 -3
+examples/dragdrop/dropsite.h 1.3 warwick +2 -1
+
+ Use Event_DragEnter
+
+
+examples/movies/main.cpp 1.12 warwick +4 -4
+
+ Warnings, robustness.
+
+
+examples/showimg/.cvsignore 2.1 warwick +5 -0
+
+ Ignore images
+
+
+extensions/nsplugin/examples/Makefile 1.1 warwick initial checkin
+extensions/xt/doc.conf 1.4 warwick +1 -1
+
+ Oddsnends
+
+
+extensions/nsplugin/src/qnp.cpp 1.20 warwick +19 -20
+
+ show() not required now.
+
+
+extensions/nsplugin/src/qnp.pro 1.2 warwick +1 -1
+
+ tmake workaround
+
+
+src/compat/qmlined.h 1.2 warwick +1 -1
+
+ edit not ed
+
+
+src/compat/qobjcoll.h 1.1 warwick initial checkin
+src/compat/qwidcoll.h 1.1 warwick initial checkin
+src/kernel/qobjcoll.h 2.8 warwick +1 -1
+src/kernel/qwidcoll.h 2.7 warwick +1 -1
+
+ Moved.
+
+
+src/dialogs/qfiledialog.cpp 2.72 agulbra +79 -54
+
+ avoid one more static
+
+
+src/dialogs/qfiledialog.cpp 2.73 agulbra +3 -3
+
+ use the right column width in multi-column mode
+
+
+src/dialogs/qfiledialog.cpp 2.74 agulbra +1 -2
+
+ commit -without- debug feature
+
+
+src/dialogs/qfiledialog.cpp 2.75 agulbra +22 -8
+
+ handle "type name of directory then press enter" case by switching to
+ that directory
+
+
+src/dialogs/qfiledialog.cpp 2.76 agulbra +10 -7
+
+ minor tweak to make the ok button change less often
+
+
+src/dialogs/qfiledialog.cpp 2.77 agulbra +2 -2
+
+ slightly better row height in the multi-column view
+
+
+src/kernel/qapp.cpp 2.56 agulbra +14 -6
+src/kernel/qapplication.cpp 2.56 agulbra +14 -6
+src/kernel/qasyncimageio.cpp 1.34 agulbra +53 -15
+src/kernel/qregion.cpp 2.13 agulbra +1 -8
+src/kernel/qregion.h 2.13 agulbra +1 -4
+src/widgets/qheader.cpp 2.44 agulbra +4 -5
+
+ Reginald Stadlbauer's alpha's egcs said to do this. it doesn't like
+ static objects with non-default constructors.
+
+
+src/kernel/qapplication_win.cpp 2.91 warwick +10 -1
+src/kernel/qdnd_x11.cpp 2.20 warwick +1 -7
+src/kernel/qdragobject.h 2.9 warwick +1 -4
+src/kernel/qwidget.cpp 2.112 warwick +4 -11
+src/kernel/qwidget_win.cpp 2.57 warwick +20 -3
+src/kernel/qwidget_x11.cpp 2.97 warwick +12 -4
+src/kernel/qwindowdefs.h 2.24 warwick +5 -1
+
+ Drag&dropery.
+
+
+src/kernel/qapplication_win.cpp 2.93 warwick +4 -2
+src/kernel/qdnd_win.cpp 2.10 warwick +483 -135
+src/kernel/qdnd_x11.cpp 2.24 warwick +21 -1
+src/kernel/qdragobject.cpp 2.18 warwick +5 -5
+src/kernel/qevent.cpp 2.17 warwick +1 -21
+src/kernel/qimage.cpp 2.93 warwick +73 -34
+src/kernel/qwidget_win.cpp 2.59 warwick +4 -3
+
+ Windows Drap & Drop.
+
+
+src/kernel/qasyncimageio.cpp 1.35 agulbra +2 -2
+
+ make cleanup() static
+
+
+src/kernel/qasyncimageio.cpp 1.37 warwick +4 -2
+src/kernel/qasyncimageio.cpp 1.36 warwick +30 -7
+src/kernel/qdragobject.cpp 2.22 warwick +7 -5
+src/kernel/qimage.cpp 2.96 warwick +4 -1
+src/kernel/qimage.cpp 2.95 agulbra +8 -9
+src/kernel/qimage.cpp 2.92 warwick +3 -3
+src/tools/qdir.cpp 2.24 agulbra +7 -1
+
+ doc
+
+
+src/kernel/qclipboard_x11.cpp 2.14 agulbra +26 -20
+
+ avoid statics that are troublesome on the alpha
+
+
+src/kernel/qdialog.cpp 2.20 agulbra +39 -18
+
+ frameGeometry() is normally not meaningful before show(), so I
+ switched to a different way of ensuring that the dialog's default
+ position is entirely on-screen. may not work perfectly with
+ Enlightenment :)
+
+
+src/kernel/qdnd_win.cpp 2.11 warwick +5 -1
+src/kernel/qdnd_x11.cpp 2.25 warwick +56 -1
+src/kernel/qdragobject.cpp 2.19 warwick +8 -59
+
+ Move QDragManager::eventFilter code to X11-specifics.
+
+
+src/kernel/qdnd_win.cpp 2.12 warwick +44 -31
+
+ Follow DnD API changes.
+ Add leave event.
+
+
+src/kernel/qdnd_win.cpp 2.13 warwick +8 -3
+src/kernel/qevent.h 2.19 warwick +15 -5
+
+ DragEnter events and final DragLeave to DropEvent targets.
+
+
+src/kernel/qdnd_win.cpp 2.14 warwick +2 -6
+
+ spacing
+
+
+src/kernel/qdnd_win.cpp 2.7 warwick +989 -12
+
+ First inclusion from tests/olednd code.
+
+
+src/kernel/qdnd_win.cpp 2.9 warwick +162 -98
+
+ DND.
+
+
+src/kernel/qdnd_x11.cpp 2.17 warwick +9 -9
+src/kernel/qpainter.cpp 2.52 warwick +14 -11
+src/kernel/qwid_x11.cpp 2.95 warwick +2 -2
+src/kernel/qwidget_x11.cpp 2.95 warwick +2 -2
+src/widgets/qwellarray.cpp 1.3 warwick +10 -1
+src/widgets/qwellarray.h 1.4 warwick +2 -1
+
+ Avoid HPUX warnings.
+
+
+src/kernel/qdnd_x11.cpp 2.19 agulbra +29 -25
+
+ egcs/alpha workarounds.
+
+
+src/kernel/qdnd_x11.cpp 2.22 agulbra +2 -2
+src/kernel/qwidget_x11.cpp 2.98 agulbra +2 -2
+
+ don't segfault on first registerDropType()
+
+
+src/kernel/qdnd_x11.cpp 2.23 paul +5 -3
+
+ Ignore windows without clients.
+
+
+src/kernel/qdnd_x11.cpp 2.26 warwick +18 -1
+src/kernel/qdragobject.cpp 2.20 warwick +1 -16
+
+ Move DND cursor into X11-specifics.
+
+
+src/kernel/qdnd_x11.cpp 2.27 warwick +16 -10
+src/kernel/qdragobject.cpp 2.23 warwick +130 -71
+src/kernel/qdragobject.h 2.11 warwick +14 -25
+
+ Multi-format QDragObject API.
+
+
+src/kernel/qdnd_x11.cpp 2.28 agulbra +47 -18
+
+ updated to match windows version
+
+
+src/kernel/qdragobject.cpp 2.21 warwick +99 -14
+src/kernel/qdragobject.h 2.10 warwick +45 -3
+
+ QImageDragObject
+ Mark out problem areas for fixing.
+
+
+src/kernel/qdragobject.cpp 2.24 agulbra +2 -2
+src/kernel/qlayout.cpp 2.35 agulbra +3 -3
+src/kernel/qpixmapcache.cpp 2.8 agulbra +2 -1
+src/tools/qgcache.cpp 2.7 agulbra +12 -8
+src/widgets/qpushbutton.cpp 2.43 agulbra +3 -3
+
+ speling
+
+
+src/kernel/qdragobject.cpp 2.26 warwick +9 -17
+src/kernel/qdragobject.h 2.13 warwick +3 -4
+
+ Simplify QStoredDragObject.
+
+
+src/kernel/qevent.h 2.20 agulbra +9 -3
+
+ added no-answer-necessary rectangle to drag move event
+
+
+src/kernel/qfocusdata.h 2.3 warwick +11 -3
+src/widgets/qscrollview.cpp 2.48 warwick +12 -7
+src/widgets/qscrollview.cpp 2.47 warwick +6 -4
+
+ Focus wrapping.
+
+
+src/kernel/qfont.cpp 2.36 agulbra +19 -7
+
+ more alpha/egcs/linux workarounds
+
+
+src/kernel/qfont_x11.cpp 2.40 warwick +3 -3
+
+ Go gray.
+
+
+src/kernel/qimage.cpp 2.94 warwick +22 -1
+src/kernel/qimage.h 2.28 warwick +2 -1
+src/kernel/qpixmap.cpp 2.27 warwick +24 -1
+src/kernel/qpixmap.h 2.21 warwick +5 -2
+
+ Convenient input from QByteArray.
+
+
+src/kernel/qimage.cpp 2.97 warwick +2 -2
+src/kernel/qpixmap.cpp 2.28 warwick +2 -2
+
+ Fix.
+
+
+src/kernel/qmovie.cpp 1.34 warwick +11 -2
+
+ Code to be added and tested later.
+
+
+src/kernel/qmovie.cpp 1.35 warwick +5 -9
+src/kernel/qmovie.h 1.11 warwick +3 -2
+
+ Provide QDataSource source to QMovie.
+
+
+src/kernel/qobjcoll.h 2.7 warwick +4 -20
+src/kernel/qwidcoll.h 2.6 warwick +3 -14
+
+ Broken in rename.
+
+
+src/kernel/qprinter_x11.cpp 2.17 agulbra +4 -3
+
+ roll back to 1.33 version
+
+
+src/kernel/qwidget.cpp 2.113 paul +3 -2
+
+ Send queued-up childEvents before the first resize event
+
+
+src/kernel/qwidget.h 2.51 warwick +3 -1
+
+ Separate sys-dep extra data create/delete.
+
+
+src/qt.pro 2.27 warwick +1 -0
+src/dialogs/qfiledlg.cpp 2.72 warwick +2 -1
+src/kernel/qapplication_win.cpp 2.92 warwick +4 -4
+src/kernel/qdnd_win.cpp 2.8 warwick +115 -505
+src/kernel/qdnd_x11.cpp 2.21 warwick +2 -2
+src/kernel/qevent.h 2.18 warwick +2 -2
+src/kernel/qwidget_win.cpp 2.58 warwick +3 -1
+
+ Drag&Dropery.
+
+
+src/qt.pro 2.29 warwick +2 -0
+src/kernel/qfocusdata.cpp 2.1 warwick initial checkin
+src/kernel/qfocusdata.h 2.4 warwick +6 -12
+src/kernel/qwidget.cpp 2.114 warwick +3 -1
+src/widgets/qscrollview.cpp 2.49 warwick +5 -8
+
+ Make QFocusData clean and public.
+
+
+src/tools/qdir.cpp 2.23 agulbra +2 -2
+
+ avoid a static. saves some memory.
+
+
+src/tools/qglobal.cpp 2.16 agulbra +6 -4
+
+ void statics
+
+
+src/widgets/qbutton.cpp 2.62 agulbra +5 -9
+
+ emit toggled() and clicked() even if this is a toggle button and will
+ not toggle off.
+
+
+src/widgets/qbutton.cpp 2.63 agulbra +4 -4
+
+ correct toggling-when-in-group behaviour
+
+
+src/widgets/qheader.cpp 2.46 paul +4 -4
+
+ Fix off by one error that caused "index out of range".
+
+
+src/widgets/qlistview.cpp 2.118 agulbra +19 -12
+
+ much faster scrolling in unsorted mode; use about half as much memory
+ per item; free the items properly
+
+
+src/widgets/qlistview.cpp 2.119 agulbra +2 -2
+
+ unsort/sort correctly
+
+
+src/widgets/qlistview.cpp 2.120 agulbra +3 -3
+
+ finalize QListViewItem in the right way
+
+
+src/widgets/qlistview.cpp 2.121 agulbra +35 -17
+
+ cut memory usage by another fifty per cent in the common case. QLVI
+ now uses 150-200 bytes of memory, down from ~800 last week.
+
+ default to the correct height (including itemMargin()).
+
+ change itemMargin default to one pixel, from two.
+
+ use itemMargin both on the left and on the right edge of each column.
+
+ ensure that children are sorted correctly in QLV::firstChild(), as
+ they are in QLVI::firstChild().
+
+
+src/widgets/qlistview.h 2.51 agulbra +2 -2
+
+ make setItemMargin() virtual. who put in a non-virtual setter
+ function?
+
+
+src/widgets/qmenudata.cpp 2.17 agulbra +8 -6
+
+ DWIM: call setCheckable() in setItemChecked() if necessary
+
+
+src/widgets/qmultilinedit.h 2.37 warwick +3 -3
+
+ EDIT, not ED.
+
+
+src/widgets/qpopupmenu.cpp 2.79 warwick +2 -4
+
+ Roll-back my menu-stays-up "fix".
+
+
+src/widgets/qpopupmenu.cpp 2.80 warwick +7 -2
+
+ Worse but better fix for allow both popup and pulldown/pushup menus.
+
+
+src/widgets/qpushbutton.cpp 2.42 agulbra +16 -57
+
+ use alternative (windows-like) motif indication of default button
+ status, rather than the nextstep/xforms/gtk-like indication.
+
+
+src/widgets/qsplitter.cpp 1.17 paul +6 -5
+src/widgets/qsplitter.h 1.9 paul +3 -2
+
+ Changed QSplitter::setFixed() to start counting at 0 instead of 1.
+
+ *** WILL BREAK OLD CODE ***
+
+ Also introduced FirstWidget and SecondWidget enum values to make setFixed()
+ calls more readable.
+
+
+src/widgets/qsplitter.cpp 1.18 paul +160 -141
+src/widgets/qsplitter.h 1.10 paul +16 -17
+
+ Reworked QSplitter API. Splitter now detects its children, addFirstWidget etc
+ disappears.
+ *** WILL BREAK OLD CODE ***
+
+
+src/widgets/qtooltip.cpp 2.48 agulbra +4 -4
+
+ tweak periods a bit
+
+
+src/widgets/qtooltip.cpp 2.49 agulbra +4 -3
+
+ paranoia fix: don't let buggy programs introduce an infinte loop by
+ calling tip() with the "wrong" rectangle.
+
+
+src/widgets/qwidgetstack.cpp 2.8 agulbra +4 -1
+src/widgets/qwidgetstack.h 2.5 agulbra +5 -1
+
+ aboutToShow()
+
+
+src/widgets/qwidgetstack.cpp 2.9 agulbra +69 -12
+src/widgets/qwidgetstack.h 2.6 agulbra +4 -2
+
+ added decent docs.
+ added a visibleWidget() access function
+ added an aboutToShow() signal.
+ fixed "value of NaN" bug (0 vs. -1)
+
diff --git a/dist/changes-1.39-19980625 b/dist/changes-1.39-19980625
new file mode 100644
index 0000000..c71578f
--- /dev/null
+++ b/dist/changes-1.39-19980625
@@ -0,0 +1,119 @@
+
+examples/application/application.cpp 1.14 agulbra +32 -18
+
+ use QWhatsThis
+
+
+examples/application/application.cpp 1.15 warwick +7 -6
+examples/application/application.h 1.5 warwick +2 -1
+
+ Use persistent QPrinter.
+
+
+examples/dragdrop/dropsite.cpp 1.8 warwick +44 -24
+
+ Improved usage #1.
+
+
+examples/dragdrop/dropsite.cpp 1.9 warwick +36 -81
+examples/dragdrop/dropsite.h 1.4 warwick +7 -9
+src/qt.pro 2.30 warwick +2 -0
+src/kernel/qclipboard_x11.cpp 2.15 warwick +10 -8
+src/kernel/qdnd_win.cpp 2.15 warwick +1 -18
+src/kernel/qdnd_x11.cpp 2.33 warwick +62 -67
+src/kernel/qdragobject.cpp 2.29 warwick +73 -27
+src/kernel/qdragobject.h 2.16 warwick +18 -12
+src/kernel/qdropsite.cpp 2.1 warwick initial checkin
+src/kernel/qdropsite.h 2.1 warwick initial checkin
+src/kernel/qwidget.h 2.52 warwick +3 -2
+src/kernel/qwidget_win.cpp 2.60 warwick +17 -7
+src/kernel/qwidget_x11.cpp 2.99 warwick +22 -12
+src/kernel/qwindowdefs.h 2.25 warwick +7 -3
+src/widgets/qlineedit.cpp 2.85 warwick +3 -3
+
+ Don't declare MIME types for drop sites in advance, just enable drops.
+
+
+examples/examples.pro 2.9 agulbra +1 -0
+
+ add dragdrop to examples makefile
+
+
+examples/movies/main.cpp 1.13 agulbra +9 -2
+
+ add use of setFilters().
+
+
+examples/splitter/splitter.cpp 1.1 paul initial checkin
+examples/splitter/splitter.pro 1.1 paul initial checkin
+
+ Simple QSplitter example
+
+
+src/dialogs/qprintdialog.cpp 2.29 warwick +57 -60
+
+ Fixed QPrinter->QPrintDialog state-transfer bugs.
+
+
+src/kernel/qapplication_x11.cpp 2.142 agulbra +7 -12
+src/kernel/qdnd_x11.cpp 2.37 agulbra +22 -23
+src/kernel/qdragobject.cpp 2.32 agulbra +5 -25
+src/kernel/qdragobject.h 2.19 agulbra +1 -4
+
+ Completely reworked drag'n'drop.
+
+
+src/kernel/qimage.cpp 2.99 agulbra +7 -6
+src/kernel/qimage.cpp 2.98 agulbra +18 -14
+src/kernel/qmovie.cpp 1.38 agulbra +8 -7
+src/kernel/qmovie.cpp 1.37 agulbra +12 -3
+
+ discuss patent issues
+
+
+src/widgets/qlineedit.cpp 2.82 agulbra +2 -3
+
+ reject drags that don't provide text/plain
+
+
+src/widgets/qlistview.cpp 2.122 warwick +3 -3
+
+ Fix multiple-calls-to-setText() unreported bug.
+
+
+src/widgets/qlistview.cpp 2.123 paul +16 -21
+src/widgets/qlistview.h 2.52 paul +2 -2
+
+ Make setPixmap() override default pixmap
+
+
+src/widgets/qlistview.cpp 2.124 agulbra +16 -17
+
+ adjust drawing of focus rectangle for trees
+
+
+src/widgets/qlistview.cpp 2.126 agulbra +1 -2
+src/widgets/qlistview.cpp 2.125 agulbra +6 -2
+
+ try even harder to not sort unless sorting is actually requested.
+
+
+src/widgets/qmultilinedit.cpp 2.95 agulbra +4 -4
+
+ doc correction
+
+
+src/widgets/qsplitter.cpp 1.19 paul +48 -45
+
+ fixing odds and ends after the API change
+
+
+src/widgets/qsplitter.cpp 1.23 warwick +5 -4
+
+ Position internalsplitter in middle of mouse when dragging.
+
+
+src/widgets/qsplitter.cpp 1.24 warwick +48 -45
+
+ Make bitmaps correspond to splitter dimensions.
+
diff --git a/dist/changes-1.39-19980706 b/dist/changes-1.39-19980706
new file mode 100644
index 0000000..80e814a
--- /dev/null
+++ b/dist/changes-1.39-19980706
@@ -0,0 +1,320 @@
+doc/indices.doc 2.17 agulbra +4 -4
+doc/misc.doc 2.29 agulbra +4 -4
+doc/qcache.doc 2.4 agulbra +598 -304
+doc/qdict.doc 2.5 agulbra +4 -3
+
+ documented QCache/QIntCache and the iterators, fixed some types
+
+
+doc/indices.doc 2.18 agulbra +7 -7
+extensions/imageio/doc/index.doc 1.6 agulbra +3 -3
+extensions/nsplugin/doc/annotated.doc 1.2 agulbra +2 -2
+extensions/nsplugin/doc/classes.doc 1.2 agulbra +2 -2
+extensions/opengl/src/qgl.cpp 1.20 agulbra +5 -6
+extensions/xt/doc/annotated.doc 1.2 agulbra +2 -2
+extensions/xt/doc/classes.doc 1.2 agulbra +2 -2
+src/tools/qtextstream.cpp 2.16 agulbra +1 -2
+
+ finished merge of qt/extensions documentation in one directory.
+
+
+doc/indices.doc 2.20 aavit +3 -3
+doc/qcache.doc 2.8 aavit +9 -1
+examples/application/application.cpp 1.16 aavit +17 -17
+examples/widgets/widgets.cpp 2.45 aavit +29 -5
+extensions/nsplugin/src/qnp.cpp 1.22 aavit +5 -5
+extensions/opengl/doc.conf 1.14 aavit +7 -0
+extensions/opengl/src/qgl.cpp 1.23 aavit +4 -4
+extensions/xt/doc/index.doc 1.4 aavit +18 -8
+extensions/xt/src/qxt.cpp 1.5 aavit +3 -3
+src/dialogs/qmessagebox.cpp 2.50 aavit +5 -5
+
+ Improved doc of extensions.
+
+
+doc/qcache.doc 2.9 aavit +47 -8
+
+ Documented the remaining functions in qcache et al.
+
+
+examples/dragdrop/dropsite.cpp 1.12 paul +76 -22
+examples/dragdrop/dropsite.h 1.5 paul +14 -2
+examples/dragdrop/main.cpp 1.7 paul +8 -3
+
+ How to make your own dragobject class
+
+
+examples/dragdrop/dropsite.cpp 1.9 warwick +36 -81
+examples/dragdrop/dropsite.h 1.4 warwick +7 -9
+src/qt.pro 2.30 warwick +2 -0
+src/kernel/qclipboard_x11.cpp 2.15 warwick +10 -8
+src/kernel/qdnd_win.cpp 2.15 warwick +1 -18
+src/kernel/qdnd_x11.cpp 2.33 warwick +62 -67
+src/kernel/qdragobject.cpp 2.29 warwick +73 -27
+src/kernel/qdragobject.h 2.16 warwick +18 -12
+src/kernel/qdropsite.cpp 2.1 warwick initial checkin
+src/kernel/qdropsite.h 2.1 warwick initial checkin
+src/kernel/qwidget.h 2.52 warwick +3 -2
+src/kernel/qwidget_win.cpp 2.60 warwick +17 -7
+src/kernel/qwidget_x11.cpp 2.99 warwick +22 -12
+src/kernel/qwindowdefs.h 2.25 warwick +7 -3
+src/widgets/qlineedit.cpp 2.85 warwick +3 -3
+
+ Don't declare MIME types for drop sites in advance, just enable drops.
+
+
+examples/examples.pro 2.10 hanord +1 -0
+
+ Added splitter
+
+
+examples/examples.pro 2.9 agulbra +1 -0
+
+ add dragdrop to examples makefile
+
+
+examples/layouts/layouts.cpp 1.6 aavit +2 -3
+
+ return value from main to avoid compiler warning
+
+
+extensions/nsplugin/src/qnp.cpp 1.21 agulbra +34 -24
+extensions/opengl/src/qgl.cpp 1.22 agulbra +7 -1
+extensions/xt/src/qxt.cpp 1.4 agulbra +6 -2
+
+ use new \extension in qdoc
+
+
+src/dialogs/qprintdialog.cpp 2.30 aavit +2 -2
+src/widgets/qspinbox.cpp 2.36 aavit +22 -29
+src/widgets/qspinbox.h 2.21 aavit +1 -3
+
+ spinbox: better looking in windows mode (more like win32)
+
+
+src/kernel/qapplication_x11.cpp 2.142 agulbra +7 -12
+src/kernel/qdnd_x11.cpp 2.37 agulbra +22 -23
+src/kernel/qdragobject.cpp 2.32 agulbra +5 -25
+src/kernel/qdragobject.h 2.19 agulbra +1 -4
+
+ protect another little bit against the other application crashing
+
+
+src/kernel/qclipboard_x11.cpp 2.16 agulbra +2 -2
+
+ avoid double delete in certain cases. would cause segfault.
+
+
+src/kernel/qdnd_win.cpp 2.16 warwick +98 -59
+src/kernel/qdropsite.cpp 2.2 warwick +3 -3
+src/kernel/qwidget_win.cpp 2.61 warwick +1 -2
+
+ Update for X11 changes.
+
+
+src/kernel/qdnd_win.cpp 2.17 warwick +22 -5
+src/kernel/qdnd_x11.cpp 2.36 warwick +5 -3
+src/kernel/qdragobject.cpp 2.30 warwick +63 -7
+src/kernel/qdragobject.h 2.17 warwick +10 -3
+
+ Renaming; make space in API for Copy vs. Move
+
+
+src/kernel/qdnd_x11.cpp 2.32 agulbra +13 -12
+src/kernel/qdnd_x11.cpp 2.31 agulbra +33 -8
+
+ support accept/ignore rectangles properly.
+
+
+src/kernel/qdnd_x11.cpp 2.34 agulbra +7 -2
+src/widgets/qlineedit.cpp 2.86 agulbra +13 -13
+
+ isAccepted() of one drag enter/move is the default state for the next
+ (until the target changes).
+
+
+src/kernel/qdnd_x11.cpp 2.35 warwick +20 -13
+
+ Fix lost-leaves.
+
+
+src/kernel/qdnd_x11.cpp 2.38 agulbra +23 -22
+
+ always give the right cursor
+
+
+src/kernel/qdnd_x11.cpp 2.39 hanord +2 -2
+
+ Patch from Bernd Unger to compile on irix-n64
+
+
+src/kernel/qdnd_x11.cpp 2.40 hanord +5 -5
+src/widgets/qheader.cpp 2.47 hanord +5 -5
+src/widgets/qstatusbar.cpp 2.15 hanord +12 -12
+src/widgets/qtoolbar.cpp 2.24 hanord +14 -15
+src/widgets/qtoolbutton.cpp 2.29 hanord +4 -4
+src/widgets/qwellarray.cpp 1.5 hanord +8 -10
+
+ Removed Sun CC warnings. All these warnings come from use of local
+ variables inside member functions clashing with private variable names
+ in the class. I think this is a correct warning, because if somebody
+ wants to access a private variable from a member function where it's
+ already used as a local variable, he will be somewhat confused.
+
+
+src/kernel/qdragobject.cpp 2.34 hanord +3 -2
+
+ Avoid array-bounds error when copying text
+
+
+src/kernel/qdragobject.cpp 2.35 hanord +15 -18
+src/kernel/qdragobject.h 2.20 hanord +7 -7
+
+ QStoredDrag::setEncodedData takes a const byte array.
+ parent changed to dragSource everywhere.
+
+
+src/kernel/qimage.cpp 2.102 agulbra +9 -5
+src/kernel/qpixmap.cpp 2.31 agulbra +22 -32
+
+ mention the QPixmap/QImage differences prominently. other minor doc
+ changes.
+
+
+src/kernel/qimage.cpp 2.99 agulbra +7 -6
+src/kernel/qimage.cpp 2.98 agulbra +18 -14
+src/kernel/qmovie.cpp 1.38 agulbra +8 -7
+src/kernel/qmovie.cpp 1.37 agulbra +12 -3
+
+ warn about unisys $#@! and about possible removal of gif support in a
+ future version of qt.
+
+
+src/kernel/qpainter_win.cpp 2.38 hanord +2 -3
+src/kernel/qpainter_x11.cpp 2.53 hanord +2 -3
+
+ Fixed UMR in drawText to external device. Could be serious and crash.
+
+
+src/kernel/qprinter_x11.cpp 2.18 agulbra +38 -11
+
+ OS/2 fixes from miyata.
+
+
+src/kernel/qpsprinter.cpp 2.28 agulbra +67 -19
+
+ oops. we broke kmail by not supporting QFont::AnyCharSet at all.
+ fixed.
+
+ also contains two other fixes that I'd delayed committing: use
+ colorimage only where available, else image. produce 78-character
+ lines, not lines of several thousand characters.
+
+
+src/kernel/qpsprinter.cpp 2.29 agulbra +49 -28
+
+ make the dicts slightly bigger so more level 1 printers are happy.
+ avoid a memory leak in drawPixmap().
+
+
+src/kernel/qwidget.cpp 2.116 hanord +2 -2
+
+ Does destroy() AFTER deleteExtra(), because deleteExtra() calls
+ deleteSysExtra() which unregisters OLE stuff on Windows (and needs the Win
+ ID).
+
+
+src/moc/moc.1 2.7 hanord +11 -3
+src/moc/moc.l 2.3 hanord +57 -7
+src/moc/moc.y 2.24 hanord +22 -12
+
+ Warwick's support for #ifdef and #ifndef added
+
+
+src/qt.pro 2.33 hanord +8 -7
+
+ Changed DEPENDPATH to relative, makes makefiles movable.
+ Sorted a couple of filenames.
+
+
+src/qt.pro 2.34 hanord +1 -1
+
+ Changed version number to 1.40
+
+
+src/tools/qglobal.h 2.53 agulbra +3 -3
+
+ 1.40. yes it's true.
+
+
+src/tools/qglobal.h 2.55 agulbra +3 -3
+
+ make one final snapshot
+
+
+src/widgets/qbuttongroup.cpp 2.14 agulbra +3 -3
+
+ roll back my "don't delete twice" fix: it was a "don't delete once"
+ fix, in fact. oops.
+
+
+src/widgets/qheader.cpp 2.49 agulbra +2 -1
+
+ memory leak gone
+
+
+src/widgets/qlabel.cpp 2.34 agulbra +6 -9
+
+ respect buddy's focus policy and other accessibility.
+
+
+src/widgets/qlineedit.cpp 2.83 agulbra +4 -4
+
+ use enter event and accept drops in the entire rectangle.
+
+
+src/widgets/qlineedit.cpp 2.84 agulbra +8 -1
+
+ ...and the drop should happen in the right place. oooh, this is so
+ polished :)
+
+
+src/widgets/qlineedit.cpp 2.88 agulbra +2 -2
+
+ avoid memory leak when dragging out of qle
+
+
+src/widgets/qlineedit.cpp 2.89 agulbra +5 -1
+
+ #ifdef out dnd support. it works on x11, not quite on windows.
+ besides, having QLineEdit work differently from typical windows
+ widgets and cannot be changed is a bad policy.
+
+
+src/widgets/qlistview.cpp 2.129 agulbra +3 -2
+
+ don't accept() enter/return key presses. qdialog.
+
+
+src/widgets/qlistview.cpp 2.130 agulbra +8 -9
+
+ avoid a couple of memory leaks
+
+
+src/widgets/qprogressbar.cpp 2.21 aavit +10 -1
+src/widgets/qtableview.cpp 2.51 aavit +2 -2
+
+ Progressbar: allow changing of guistyle before show(). Should really
+ implement styleChanged(); in 2.0.
+ Tableview: Avoid infinite loop.
+
+
+src/widgets/qspinbox.cpp 2.38 aavit +2 -2
+src/widgets/qwidgetstack.cpp 2.11 aavit +13 -9
+
+ Widgetstack: be robust when got no children. spinbox: comment
+
+
+src/widgets/qsplitter.cpp 1.24 warwick +48 -45
+
+ Make bitmaps correspond to splitter dimensions.
diff --git a/dist/changes-1.40 b/dist/changes-1.40
new file mode 100644
index 0000000..1f5f986
--- /dev/null
+++ b/dist/changes-1.40
@@ -0,0 +1,291 @@
+Here is a list of user-visible changes in Qt from 1.33 to 1.40.
+
+Qt 1.40 supports drag and drop, with a simple, platform independent
+API. There are eleven new widget classes in 1.40. Asynchronous I/O
+support is now in the official Qt API.
+
+Since Qt no longer supports any platforms that only supports 8.3
+format file names, the file names of the Qt source and include files
+have been made simpler. #include <qcombobox.h> instead of qcombo.h,
+etc. The old names are still present for compatibility.
+
+The new Qt Xt/Motif Extension allows Qt widgets and applications to
+coexist with old Xt/Motif-based applications and widgets.
+
+There are more than one hundred new functions added to existing
+classes and, as usual, we fixed some bugs, made some more speedups,
+and improved the documentation.
+
+
+****************************************************************************
+* New classes *
+****************************************************************************
+
+* New widgets
+
+ QHeader - Table header
+ QListView - Multicolun listview/treeview
+ QMainWindow - Application main window
+ QScrollView - Scrolling area (successor of QwViewPort)
+ QSpinBox - Spin button
+ QSplitter - Paned window
+ QStatusBar - Status bar
+ QToolBar - Container for tool buttons (and other widgets)
+ QToolButton - Fancy push button with auto-raise
+ QWhatsThis - Light weight help system
+ QWidgetStack - Stack of widgets
+
+* Support classes
+
+ QFileIconProvider - Provides icons for the file dialog
+ QIconSet - Set of icons for different states
+ QListViewItem - Content of a QListView
+ QCheckListItem - Checkable list view item
+
+* Drag and drop related classes
+
+ QDragObject
+ QStoredDrag
+ QTextDrag
+ QImageDrag
+ QDragManager
+ QDropSite
+
+* Asynchronous I/O
+
+ QAsyncIO
+ QDataPump
+ QDataSink
+ QDataSource
+ QDataStream
+ QIODeviceSource
+ QImageConsumer
+ QImageDecoder
+ QImageFormat
+ QImageFormatType
+
+
+* New Events
+
+ QShowEvent
+ QHideEvent
+ QDragMoveEvent
+ QDragEnterEvent
+ QDragResponseEvent
+ QDragLeaveEvent
+ QDropEvent
+ QChildEvent
+
+
+
+****************************************************************************
+* Enhancements from 1.33 to 1.40 *
+****************************************************************************
+
+The file and print dialogs are far better.
+
+Layouts will now automatically readjust if child widgets change
+maximum/minimum sizes, or are deleted.
+
+QFont now supports KOI8R
+
+The reference documentation of the extensions is now integrated with
+the main reference documentation in the qt/html directory.
+
+****************************************************************************
+* Changes that might affect runtime behavior *
+****************************************************************************
+
+None known.
+
+
+****************************************************************************
+* Changes that might generate compile errors *
+* when compiling old code *
+****************************************************************************
+
+none
+
+****************************************************************************
+* Type changes that might generate warnings: *
+****************************************************************************
+
+none
+
+****************************************************************************
+* Deprecated functions *
+****************************************************************************
+Old function: Replaced by:
+------------- -----------
+QPixmap::isOptimized QPixmap::optimization
+QPixmap::optimize QPixmap::setOptimization
+QPixmap::isGloballyOptimized QPixmap::defaultOptimization
+QPixmap::optimizeGlobally QPixmap::setDefaultOptimization
+
+
+****************************************************************************
+* New global functions
+****************************************************************************
+
+ bitBlt( QImage* dst, int dx, int dy, const QImage* src,
+ int, int, int, int, int conversion_flags );
+
+ bitBlt( QPaintDevice *dst, int, int, const QImage* src,
+ int, int, int, int, int conversion_flags );
+
+****************************************************************************
+* New public/protected functions added to existing classes *
+****************************************************************************
+
+QApplication::sendPostedEvents( QObject *receiver, int event_type ) [static]
+
+QButton::setDown()
+QButton::toggle()
+
+QButtonGroup::setButton( int id )
+QButtonGroup::buttonToggled( bool on )
+
+QComboBox::setListBox( QListBox * )
+QComboBox::listBox()
+
+QComboBox::setAutoCompletion( bool )
+QComboBox::autoCompletion()
+
+QComboBox::clearEdit()
+QComboBox::setEditText( const char * )
+
+QDict::resize()
+
+QDir::drives() [static]
+QDir::remove()
+
+QFileDialog::getExistingDirectory() [static]
+QFileDialog::setIconProvider() [static]
+QFileDialog::iconProvider() [static]
+QFileDialog::setSelection( const char* )
+QFileDialog::setMode( Mode )
+QFileDialog::mode()
+QFileDialog::setFilter( const char * )
+QFileDialog::setFilters( const char ** )
+QFileDialog::setFilters( const QStrList & )
+QFileDialog::addWidgets( QLabel *, QWidget *, QPushButton * ) [protected]
+
+QFont::isCopyOf( const QFont & )
+
+QFontMetrics::minLeftBearing()
+QFontMetrics::minRightBearing()
+QFontMetrics::inFont(char)
+QFontMetrics::leftBearing(char)
+QFontMetrics::rightBearing(char)
+QFontMetrics::boundingRect( int x, int y, int w, int h, int flags,
+ const char *str, int, int, int *, char ** )
+QFontMetrics::size( int flags, char *str, int, int, int *, char ** )
+
+QFrame::margin()
+QFrame::setMargin( int )
+
+QGManager::unFreeze()
+QGManager::remove( QWidget *w )
+QGManager::setName( QChain *, const char * )
+
+QGridLayout::numRows()
+QGridLayout::numCols()
+QGridLayout::expand( int rows, int cols )
+
+
+QImage::copy(int x, int y, int w, int h, int conversion_flags=0)
+QImage::copy(QRect&)
+QImage::allGray()
+QImage::isGrayscale()
+QImage::convertDepthWithPalette( int, QRgb* p, int pc, int cf=0 )
+QImage::smoothScale(int width, int height)
+QImage::loadFromData( QByteArray data, const char *format=0 )
+
+QIntDict::resize()
+
+QLabel::clear()
+
+QLCDNumber::sizeHint() const
+
+QLineEdit::setEnabled( bool )
+QLineEdit::setFont( const QFont & )
+QLineEdit::setSelection( int, int )
+QLineEdit::setCursorPosition( int )
+QLineEdit::cursorPosition() const
+QLineEdit::validateAndSet( const char *, int, int, int )
+QLineEdit::insert( const char * )
+QLineEdit::clear()
+QLineEdit::repaintArea( int, int ) [protected]
+
+QListBox::setFixedVisibleLines( int lines )
+QListBox::sizeHint()
+QListBox::ensureCurrentVisible( int )
+
+QMenuData::insertItem( const char *text,
+ const QObject *receiver, const char *member,
+ int accel, int id, int index = -1 )
+QMenuData::insertItem( const QPixmap &pixmap,
+ const QObject *receiver, const char *member,
+ int accel, int id, int index = -1 )
+QMenuData::insertItem( const QPixmap &pixmap, const char *text,
+ const QObject *receiver, const char *member,
+ int accel, int id, int index = -1 )
+QMenuData::findItem( int id, QMenuData ** parent )
+
+
+QMovie::QMovie(QDataSource*, int bufsize=1024)
+
+QMultiLineEdit::setFixedVisibleLines( int lines )
+
+QObject::tr( const char * )
+QObject::name( const char * defaultName )
+
+QPainter::QPainter( const QPaintDevice *, const QWidget * )
+QPainter::begin( const QPaintDevice *, const QWidget * )
+QPainter::xForm( const QPointArray &, int index, int npoints )
+QPainter::xFormDev( const QPointArray &, int index, int npoints )
+QPainter::drawImage()
+QPainter::drawTiledPixmap()
+QPainter::drawPicture( const QPicture & )
+
+QPalette::isCopyOf( const QPalette & )
+
+QPixmap::loadFromData( QByteArray data,
+ const char *,
+ int )
+QPixmap::optimization()
+QPixmap::setOptimization( Optimization )
+QPixmap::defaultOptimization()
+QPixmap::setDefaultOptimization( Optimization )
+
+QPopupMenu::exec( const QPoint &, int )
+QPopupMenu::aboutToShow()
+
+QPrinter::setPageOrder( PageOrder )
+QPrinter::pageOrder()
+QPrinter::setColorMode( ColorMode )
+QPrinter::colorMode()
+
+QPtrDict::resize()
+
+QPushButton::setIsMenuButton( bool )
+QPushButton::isMenuButton()
+
+QRegion::QRegion( int x, int y, int w, int h, RegionType = Rectangle )
+QRegion::boundingRect()
+QRegion::rects()
+
+QSize::expandedTo()
+QSize::boundedTo()
+
+QWidget::isEnabledTo(QWidget*)
+QWidget::isEnabledToTLW()
+QWidget::fontPropagation()
+QWidget::setFontPropagation( PropagationMode )
+QWidget::palettePropagation()
+QWidget::setPalettePropagation( PropagationMode )
+QWidget::isVisibleTo(QWidget*)
+QWidget::setAcceptDrops( bool on )
+QWidget::acceptDrops()
+QWidget::focusData() [protected]
+
diff --git a/dist/changes-1.41 b/dist/changes-1.41
new file mode 100644
index 0000000..31ccc55
--- /dev/null
+++ b/dist/changes-1.41
@@ -0,0 +1,76 @@
+Here is a list of user-visible changes in Qt from 1.40 to 1.41
+
+QT is now available as a DLL on Windows.
+
+Many bugfixes have been added. The Windows keys are supported on X11,
+and the file dialog has been improved a little.
+
+Drag and drop has been considerably improved, both on Windows and X11.
+
+QPrinter now knows many more paper sizes.
+
+It now possible to create masked (nonrectangular) widgets.
+
+QScrollBar now supports insanely big ranges.
+
+QSlider now supports page step as well as line step.
+
+****************************************************************************
+* New classes *
+****************************************************************************
+
+None.
+
+****************************************************************************
+* Enhancements from 1.33 to 1.40 *
+****************************************************************************
+
+
+****************************************************************************
+* Changes that might affect runtime behavior *
+****************************************************************************
+
+None.
+
+
+****************************************************************************
+* Changes that might generate compile errors *
+* when compiling old code *
+****************************************************************************
+
+None
+
+****************************************************************************
+* Type changes that might generate warnings: *
+****************************************************************************
+
+None
+
+****************************************************************************
+* Deprecated functions *
+****************************************************************************
+
+None.
+
+
+****************************************************************************
+* New global functions *
+****************************************************************************
+
+None.
+
+****************************************************************************
+* New public/protected functions added to existing classes *
+****************************************************************************
+
+QFileDialog::getOpenFileNames()
+QProgressDialog::setMinimumDuration( int )
+QProgressDialog::minimumDuration() const
+QMouseEvent::globalPos() const
+QMouseEvent::globalX() const
+QMouseEvent::globalY() const
+QFont::rawName() const
+QWidget::setMask(const QRegion& region)
+QWidget::setMask(QBitmap bitmap)
+QWidget::clearMask()
+QListView/QListViewItem: Various functions to create children in specified order
diff --git a/dist/changes-1.42 b/dist/changes-1.42
new file mode 100644
index 0000000..7e47a53
--- /dev/null
+++ b/dist/changes-1.42
@@ -0,0 +1,71 @@
+Here is a list of user-visible changes in Qt from 1.41 to 1.42. The
+usual bugfixes have been added.
+
+****************************************************************************
+* New classes *
+****************************************************************************
+
+None.
+
+****************************************************************************
+* Enhancements from 1.41 to 1.42 *
+****************************************************************************
+
+The Windows version now builds as a DLL.
+
+The file dialog has various UI tweaks.
+
+More sanity checks have been added.
+
+On X11, the postscript output from a few programs will be much smaller
+than it used to be.
+
+Windows 98 is now treated as a separate version of Windows, like NT
+and Windows 95.
+
+The keyboard interface of buttons groups/dialogs has been improved.
+
+QMultiLineEdit avoids flicker in some cicumstances where it would
+flicker up to now.
+
+****************************************************************************
+* Changes that might affect runtime behavior *
+****************************************************************************
+
+QKeyEvent now behaves as documented: isAccepted() is TRUE by default
+where it would sometimes default to FALSE. Some dialogs may depend on
+the bug. The most likely symptom of such buggy dialogs is that the
+Enter/Return key does not work, and the most likely fix for such bugs
+is to insert "e->ignore();" at the start of keyPressEvent(QKeyEvent*e)
+in such dialogs.
+
+****************************************************************************
+* Changes that might generate compile errors *
+* when compiling old code *
+****************************************************************************
+
+None
+
+****************************************************************************
+* Type changes that might generate warnings: *
+****************************************************************************
+
+None
+
+****************************************************************************
+* Deprecated functions *
+****************************************************************************
+
+None.
+
+
+****************************************************************************
+* New global functions *
+****************************************************************************
+
+None.
+
+****************************************************************************
+* New public/protected functions added to existing classes *
+****************************************************************************
+
diff --git a/dist/changes-2.0.1 b/dist/changes-2.0.1
new file mode 100644
index 0000000..4a224bf
--- /dev/null
+++ b/dist/changes-2.0.1
@@ -0,0 +1,101 @@
+Changes in Qt 2.0.1
+-------------------
+
+Qt 2.0.1 is a bugfix release, forward and backward compatible with Qt 2.0.
+While all changes are behind the API, some bugfixes may cause differences
+in runtime behaviour - such fixes are marked in yellow with a "*".
+
+
+General improvements
+--------------------
+
+PNG/IO Fix crash on empty images.
+
+QAccel Fix accelerators using Shift with other metakeys.
+
+QFileInfo Fix for AIX/gcc.
+
+QFontDatabase Fix centered text for extreme-bearing fonts.
+
+QHeader Resizing cells of horizontal header is now more flicker-free.
+
+*QLayout Fix deletion of child layouts. Let minimumSize() override
+Fixed sizePolicy().
+
+QLcdNumber Reduced flicker.
+
+QLineEdit Home etc. now clear selection even if the cursor doesn't move.
+
+QListBox Draw focus rect correctly. Fix keyboard navigation.
+
+QListView Make resizing flicker-free. No selection on release.
+
+QMainWindow Fix crash in addToolBar().
+
+QMap Work on more compilers.
+
+QMenuBar Less flicker.
+
+QPainter Fix QFontMetrics::width(QChar). Speedup drawText/boundingRect.
+
+*QScrollView Put the scrollbars inside the frame in WindowsStyle.
+
+QSplitter Fix bug where a handle could be moved past the next.
+
+QString Fix QString::replace(QRegExp(),...). Speed ups. Fix fill()
+with zero length crash.
+
+QTL AIX fixes.
+
+QTextBrowser Fixed type=detail popup.
+
+*QTextCodec Use the defacto KOI8 standard if no charset specified for
+ru_ locale.
+
+QValueList AIX, aCC fixes.
+
+msg2qm More robust.
+
+
+
+Windows-specific fixes
+----------------------
+
+QApplication Fix Key_Enter (was always Key_Return). Fix numeric
+accelerators.
+
+QFontDatabase Fix italic fonts in Window font dialog.
+
+*QMime Use CRLF with text clip/dnd on Windows.
+
+QPainter Avoid failure when painting pixmap xformed into nothing.
+Improved drawing of scaled fonts on win95/98.
+
+*QPixmap Fix mask on QPixmap::convertToImage().
+
+QPrinter Fix setup() on Win95/98.
+
+QToolTip Use system settings for tool tips on Windows.
+
+*QWidget Fix QWidget::scroll(rect) for non-topleft rectangles.
+
+
+X11-specific fixes
+------------------
+
+DnD Fix Escape during DnD.
+
+*QApplication Generate MouseMove event on XCrossingEvent. Support more
+XIM servers (eg. VJE Delta). Use 11pt font as default rather than 12pt
+on larger than 95DPI displays.
+
+*QFont Correct DPI for fontsets (as for regular fonts). Prefer unscaled
+(ie. perfect-match bitmaps) over scaled fonts.
+
+*QPaintDevice Round DPI.
+
+QWidget QWidget::showMaximized() works on X11 now. Fixed ReparentNotify
+handling.
+
+Xt extension Fixes.
+
diff --git a/dist/changes-2.00 b/dist/changes-2.00
new file mode 100644
index 0000000..1dcfea7
--- /dev/null
+++ b/dist/changes-2.00
@@ -0,0 +1,151 @@
+Qt 2.0 introduces a wide range of major new features as well as
+substantial improvements over the 1.x series. The documentation has
+been significally extended and improved.
+
+This file will only give an overview of the main changes since version
+1.44. A complete list would simply be too large to be useful. For
+more detail see the online documentation which is included in this
+distribution, and also available on http://doc.trolltech.com/
+
+The Qt version 2.x series is not binary compatible with the 1.x
+series. This means programs compiled with Qt version 1.x must be
+recompiled to work with Qt 2.0.
+
+Qt 2.0 is mostly, but not completely, source compatible with Qt 1.x.
+See the document "Porting from Qt 1.x to Qt 2.0" in the Online
+Reference Documentation for information on how to port an existing Qt
+1.x-based program to Qt 2.0. Note in particular the automatic porting
+script included - it does a lot of the work for you.
+
+As for 1.x, the API and functionality of Qt is completely portable
+between Microsoft Windows and X11. And between Windows 95, 98 and NT:
+Unlike most toolkits, Qt lets a single executable work on all three.
+
+****************************************************************************
+* New major features *
+****************************************************************************
+
+
+* Support for international software development:
+ QTranslator and the QObject::tr() function
+ QTextCodec (and subclasses)
+ QString is now a 16-bit Unicode string with good support for
+ legacy 8-bit interoperation. (The old 8-bit string class
+ from Qt 1.x has been renamed to QCString.)
+ QChar - a Unicode character
+
+* Rich Text
+ QTextView - formatted text and images
+ QTextBrowser - navigate formatted text and images
+ QStyleSheet - define your own XML formatting tags
+ QSimpleRichText - display rich text anywhere
+
+* Convenient and powerful new collection classes:
+ QMap<Key,Type> - QDict with arbitrary keys
+ QValueList<Type> - QList of types other than pointers
+ QStringList - QValueList<QString> with helper functions
+
+* Dialogs
+ QColorDialog - user picks a color
+ QFontDialog - user picks a font
+ QWizard - framework for leading users through steps
+
+* Layout
+ QGrid/QHBox/QVBox - grid and boxes of widgets automatically assembled
+ QHGroupBox/QVGroupBox - easy framed groups of widgets
+ QSizePolicy - a widget's abilities to change size in different ways
+
+* Custom layouts
+ New, much simpler and more powerful API for creating custom layouts
+
+* PNG Support
+ PNG support is now included in the core library
+
+* Support for generalized configurable GUI styles:
+ QStyle and subclasses
+
+* Session management
+ QSessionManager - saving state when the system shuts down
+
+* Extended coordinate system
+ QPoint, QPointArray, QSize and QRect now have 32-bit coordinates
+
+* Cleaner namespace
+ Global functions, enums and macros now either start with a 'q' or
+ have been moved into the new namespace class "Qt"
+
+****************************************************************************
+* List of removed classes *
+****************************************************************************
+
+* QGManager
+ Use the new custom layout API.
+
+* QPointVal, QPointData
+ Use QPoint.
+
+* QUrlDrag
+ Changed to QUriDrag
+
+* QWindow
+ Use QWidget
+
+****************************************************************************
+* List of new classes *
+****************************************************************************
+
+* QCDEStyle
+* QChar
+* QColorDialog
+* QCommonStyle
+* QConstString
+* QCString
+* QDragEnterEvent
+* QDragLeaveEvent
+* QDropSite
+* QFontDialog
+* QGLayoutIterator
+* QGrid
+* QHBox
+* QHButtonGroup
+* QHGroupBox
+* QHideEvent
+* QLayoutItem
+* QLayoutIterator
+* QMimeSource
+* QMimeSourceFactory
+* QMotifStyle
+* QPlatinumStyle
+* QSessionManager
+* QShowEvent
+* QSimpleRichText
+* QSizeGrip
+* QSizePolicy
+* QSortedList
+* QSpacerItem
+* QStringList
+* QStyle
+* QStyleSheet
+* QStyleSheetItem
+* Qt
+* QTab
+* QTabWidget
+* QTextBrowser
+* QTextCodec
+* QTextDecoder
+* QTextEncoder
+* QTextIStream
+* QTextOStream
+* QTextView
+* QTranslator
+* QUriDrag
+* QVBox
+* QVButtonGroup
+* QVGroupBox
+* QWheelEvent
+* QWidgetItem
+* QWindowsStyle
+* QWizard
+
+For details, see e.g http://doc.trolltech.com/qcdestyle.html (or any
+other class name, lowercased).
diff --git a/dist/changes-2.00beta1 b/dist/changes-2.00beta1
new file mode 100644
index 0000000..5dccbad
--- /dev/null
+++ b/dist/changes-2.00beta1
@@ -0,0 +1,61 @@
+
+The Qt version 2.x series is not binary compatible with the 1.x
+series. This means programs compiled with Qt version 1.x must be
+recompiled to work with Qt 2.0.
+
+Qt 2.0 is mostly, but not completely, source compatible with Qt 1.x.
+See the document "Porting from Qt 1.x to Qt 2.0" in the Online
+Reference Documentation for information on how to port an existing
+Qt 1.x-based program to Qt 2.0.
+
+
+****************************************************************************
+* New classes *
+****************************************************************************
+
+
+* Support for generalized configrable styles:
+
+ QStyle and subclasses
+
+* Support for international software development:
+
+ QTranslator and the QObject::tr() function
+ QTextCodec (and subclasses)
+ QString - a Unicode string
+ QChar - a Unicode character
+
+* Convenient and powerful new collection classes:
+ QMap<Key,Type> - QDict with arbitrary keys
+ QValueList<Type> - QList of types other than pointers
+ QStringList - QValueList<QString> with helper functions
+
+* Dialogs
+ QColorDialog - user picks a color
+ QFontDialog - user picks a font
+ QWizard - framework for leading users through steps
+
+* Layout
+ QGrid/QHBox/QVBox - grid and boxes of widgets automatically assembled
+ QHGroupBox/QVGroupBox - easy framed groups of widgets
+
+* PNG Support
+ PNG support is always compiled into Qt
+
+* Rich Text
+ QTextView - formatted text and images
+ QTextBrowser - navigate formatted text and images
+ QStyleSheet - define your own XML formatting tags
+ QSimpleRichText - display rixh text anywhere
+
+* Session management
+ QSessionManager - safe state when system shuts down
+
+
+****************************************************************************
+* Major changes in existing classes *
+****************************************************************************
+
+QString is now 16-bit Unicode.
+
+QPoint, QPointArray, QSize and QRect now have 32-bit coordinates. \ No newline at end of file
diff --git a/dist/changes-2.00beta2 b/dist/changes-2.00beta2
new file mode 100644
index 0000000..943c368
--- /dev/null
+++ b/dist/changes-2.00beta2
@@ -0,0 +1,85 @@
+Qt 2.0 Beta2 is not binary compatible with Beta1, this means that any
+programs linked with Beta1 must be recompiled.
+
+The most important fixes since Beta 1:
+
+configure
+ Fixed the libzlib typo.
+ Added -lflags argument.
+
+Platforms
+ Fixes for Borland C++, Solaris and AIX
+
+QFileDialog
+ Several user interface improvements
+
+QPrinter
+ Plain text printing works again.
+ Multiple page printing fixed.
+
+QWidget
+ New widget flag WStyle_Dialog
+
+
+Major changes since 1.4x:
+
+The Qt version 2.x series is not binary compatible with the 1.x
+series. This means programs compiled with Qt version 1.x must be
+recompiled to work with Qt 2.0.
+
+Qt 2.0 is mostly, but not completely, source compatible with Qt 1.x.
+See the document "Porting from Qt 1.x to Qt 2.0" in the Online
+Reference Documentation for information on how to port an existing
+Qt 1.x-based program to Qt 2.0.
+
+
+****************************************************************************
+* New classes *
+****************************************************************************
+
+
+* Support for generalized configrable styles:
+
+ QStyle and subclasses
+
+* Support for international software development:
+
+ QTranslator and the QObject::tr() function
+ QTextCodec (and subclasses)
+ QString - a Unicode string
+ QChar - a Unicode character
+
+* Convenient and powerful new collection classes:
+ QMap<Key,Type> - QDict with arbitrary keys
+ QValueList<Type> - QList of types other than pointers
+ QStringList - QValueList<QString> with helper functions
+
+* Dialogs
+ QColorDialog - user picks a color
+ QFontDialog - user picks a font
+ QWizard - framework for leading users through steps
+
+* Layout
+ QGrid/QHBox/QVBox - grid and boxes of widgets automatically assembled
+ QHGroupBox/QVGroupBox - easy framed groups of widgets
+
+* PNG Support
+ PNG support is always compiled into Qt
+
+* Rich Text
+ QTextView - formatted text and images
+ QTextBrowser - navigate formatted text and images
+ QStyleSheet - define your own XML formatting tags
+ QSimpleRichText - display rixh text anywhere
+
+* Session management
+ QSessionManager - safe state when system shuts down
+
+
+****************************************************************************
+* Major changes in existing classes *
+****************************************************************************
+
+QString is now 16-bit Unicode.
+
+QPoint, QPointArray, QSize and QRect now have 32-bit coordinates. \ No newline at end of file
diff --git a/dist/changes-2.00beta3 b/dist/changes-2.00beta3
new file mode 100644
index 0000000..08f222a
--- /dev/null
+++ b/dist/changes-2.00beta3
@@ -0,0 +1,35 @@
+Qt 2.0 Beta3 is not binary compatible with Beta2, this means that any
+programs linked with Beta2 must be recompiled.
+
+The most important fixes since Beta 2:
+
+platforms
+ 64-bits, FreeBSD and gcc 2.7 fixes
+
+QLayoutIterator/QGLayoutIterator
+ The custom layout API has been changed: void removeCurrent()
+ has been replaced by QLayoutItem* takeCurrent().
+
+QLabel
+ The functions setMargin() and margin() have been renamed to
+ setIndent() and indent, to avoid collision with QFrame::setMargin().
+
+QAccel
+ Non-latin1 accelerators are now supported.
+
+QTranslator/findtr/msg2qm/mergetr
+ All reported bugs fixed and improvements made.
+
+Rich Text
+ Many improvements and fixes such as supressed warnings in the
+ QBrowser example. Support for logical font sizes.
+
+QApplication
+ lastWindowClosed() now works with virtual desktops. Desktop settings
+ on Windows improved.
+
+QScrollView / QMultiLineEdit
+ Speedups with a new widget flag: WNorthWestGravity.
+
+QPopupMenu / QMenuBar
+ Speedups, less flicker.
diff --git a/dist/changes-2.1.0 b/dist/changes-2.1.0
new file mode 100644
index 0000000..a0794cf
--- /dev/null
+++ b/dist/changes-2.1.0
@@ -0,0 +1,314 @@
+Qt 2.1 introduces new features as well as many improvements over the
+2.0.x series. This file will only give an overview of the main changes
+since version 2.0.2. A complete list would simply be too large to be
+useful. For more detail see the online documentation which is included
+in this distribution, and also available on
+http://doc.trolltech.com/
+
+The Qt version 2.1 series is binary compatible with the 2.0.x
+series - applications compiled for 2.0 will continue to run with 2.1.
+
+As with previous Qt releases, the API and functionality of Qt is
+completely portable between Microsoft Windows and X11. It is also portable
+between Windows 95, 98 and NT; unlike most toolkits, Qt lets a single
+executable work on all three.
+
+****************************************************************************
+* Overview *
+****************************************************************************
+
+As usual, large sections of the documentation have been revised and
+lots of new documentation has been added.
+
+Much work went into existing classes, based on all the feedback we got
+from our users. A warm thank you to you all at this point, we honestly
+hope to satisfy most of your wishes with the new release.
+
+Among the things that got a lot of polishing is the new geometry
+management system that was introduced with the 2.x series. Some
+classes, such as QBoxLayout, have been rewritten and many size hints
+and size policies were optimized. As usual with newly introduced
+systems, the occasional bug has been fixed as well. As a result,
+layout in Qt-2.1 is not only nicer but also faster.
+
+Big parts of the file dialog have been rewritten. It is now
+synchronized in terms of features with the common Windows dialog,
+including fancy drag'n'drop and in-place renaming. You can customize
+both parts of the dialog, the front-end with info and preview widgets,
+the back-end with different network protocols (see the QFileDialog and
+QNetworkProtocol documentation for details).
+
+Especially interesting for dynamic Qt applications is the newly
+introduced property system. Many interesting things, from scripting up
+to graphical user interface builders, become easier. The technology
+requires a new macro Q_PROPERTY and a new revision of Qt's meta object
+compiler (moc). See the Qt documentation for details.
+
+Due to strong customer demand, we added a cross-platform way to easily
+implement multi-document interfaces (known as 'MDI'). The widget is
+called QWorkspace and makes this task trivial.
+
+On X11, text dropping from Motif drag'n'drop applications has been
+added, to make your Qt applications inter-operable with those Motif
+applications that survived Y2K.
+
+The rich text system, first introduced in Qt-2.0, has been
+revised. Apart from great speed improvements, it now supports HTML
+tables as well as floating images.
+
+QMultiLineEdit, the text input field in Qt, got the missing word wrap
+functionality. It's probably the last big extension we will add to
+that widget. In Qt 3.0, it will be replaced by a fancier, faster and
+more powerful QTextEdit widget that also deals with different colors
+and fonts in a way similar to the existing QTextView.
+
+Qt follows the respective GUI style guides even more closely. This
+includes honoring desktop settings, and keyboard shortcuts such as
+Ctrl-Z/Y for undo/redo in line edit and multi-line edit
+controls. Dialog handling for both modal and non-modal dialogs has
+been improved to follow the platform conventions precisely.
+
+With QIconView, we added a powerful new visualization widget similar
+to QListView and QListBox. It contains optinally labelled pixmap items
+that the user can select, drag around, rename, delete and more.
+
+Compared to the previous release, we have managed to reduce overall
+memory consumption while improving execution speed and features.
+
+Below is a list of the major new features in existing classes as well
+as short descriptions of all new classes and the changes in some of
+the extensions shipped with Qt.
+
+
+****************************************************************************
+* New major features in existing classes *
+****************************************************************************
+
+QApplication - new function wakeUpGuiThread() to simplify using threads
+ with Qt.
+
+QArray - added sorting and binary search.
+
+QColor - custom color support added. qRgb(r,g,b) helper function
+ now sets an opaque alpha value instead of a transparent
+ one.
+
+QComboBox - support for text items with icons.
+
+QFileDialog - many new features including fancy drag'n'drop
+ and in-place renaming.
+ Methods like setInfoPreviewWidget()and
+ setContentsPreviewWidget() make it easy to customize
+ the dialog extensively. With QUrlOperator and the
+ QNetworkProtocol abstraction, the dialog can operate
+ transparently by various different network protocols,
+ such as HTTP and FTP (see the Network Extension).
+
+QFocusEvent - carries a reason() for the event. Possible reasons are
+ Mouse, Tab, ActiveWindow, ShortCut and other. The
+ addition makes line edit controls behave properly.
+
+QHeader - added optional visual sort indicator. Revisited API that
+ operates on sections only (solves the 'logical' vs. 'actual'
+ index confusion). A reworked 'table' example shows how
+ to use QHeader in combination with a scrollview to create
+ a simple spreadsheet.
+
+QListBox - many signals and functions added for convenience and
+ greater flexibility.
+
+QListView - various selections modes similar to QListBox, many
+ new functions and signals added for convenience and
+ greater flexibility.
+
+QMainWindow - implemented draggable and hidable toolbars. A menubar
+ can be made draggable by simply putting it in a toolbar.
+
+QMetaObject - Parts of the API made public. The meta object allows
+ applications to access information about an object's
+ properties as well as its signals and slots.
+
+QMultiLineEdit - added different word wrap modes: WidgetWidth,
+ FixedPixelWidth and FixedColumnWidth.
+
+QObject - property access functions property() and setProperty().
+
+QPen - added adjustable cap and join styles.
+
+QPopupMenu - added support for tear-off menus, custom items
+ and widget items.
+ A new function setItemParameter() makes it possible
+ to distinguish between several menu items connected to
+ one single slot.
+
+QPrinter - Now allows printing to the default printer without doing
+ setup() first.
+
+QProgressDialog - auto-reset and auto-close modes.
+
+QPushButton - added a menu button mode with setPopup().
+
+QScrollView - support for auto-scrolling on drag move events (drag
+ auto scroll mode).
+
+QSignal - optional additional integer parameter for the emitted
+ signal.
+
+QSimpleRichText - added adjustSize() function that implements a clever
+ size hint. Vertical break support for printing. inText()
+ hit test.
+
+QSpinBox - different button symbols, currently UpDownArrows and
+ PlusMinus.
+
+QSplitter - supports three resize modes now, Stretch, KeepSize
+ and FollowSizeHint.
+
+QString - new functions setUnicode(), setUnicodeCodes(), setLatin1(),
+ startsWith() and endsWith()
+
+QStringList - new functions fromStrList(), split(), join() and grep().
+
+QStyle - some extensions for menu button indicators, default
+ button indicators, variable scrollbar extends and toolbar
+ handles.
+
+QStyleSheet - a couple of tags added to the default sheet, such as
+ U, NOBR, HEAD, DL, DT, DD and table support (TABLE, TR,
+ TD, TH). Many attributes added to existing tags.
+
+QTextView - basic table support. Contents is selectable, selections
+ can be pasted/dragged into other widgets.
+
+QToolBar - stretchable depending on the orientation (setHorizontalStretchable()
+ and setVerticalStretchable(). Added orientationChanged() signal.
+
+QToolButton - added optional delayed menu with setPopup() and
+ setPopupDelay(). Auto-raise behaviour adjustable.
+
+QWidget - new widget flag WStyle_ContextHelp that adds a
+ context-help button to the window titlebar. The
+ button triggers "What's This?"-help. The flag works
+ with MS-Windows and future versions of X11 desktops
+ such as KDE-2.0.
+
+ - New function showFullScreen().
+
+ - Enabling and disabling with setEnabled() propagates to
+ children.
+
+ - Changed isVisible(). It now returns whether a widget
+ is mapped up to the toplevel widget (the previous
+ implementation only returned isVisibleTo(parentWidget()).
+
+ - New property 'backgroundOrigin' that lets a widget draw
+ its background relatively to its parent widget's coordinate
+ system. This makes pseudo-transparency possible, without
+ the overhead of a real widget mask.
+
+
+****************************************************************************
+* New clases *
+****************************************************************************
+
+QCustomMenuItem - an abstract base class for custom menu items in
+ popup menus.
+
+QFontDataBase - provides information about the available fonts. Not really
+ a new class (it was used internally for the QFontDialog),
+ but for the first time public API.
+
+QGuardedPtr - a template class that provides guarded pointers to
+ QObjects.
+
+QIconView - a sophisticated new widget similar to QListView and
+ QListBox. An iconview contains optinally labelled pixmap
+ items that the user can select, drag around, rename, delete
+ and more. The widget is highly optimized for speed and
+ large amounts of icons.
+
+QInputDialog - a convenience dialog to get some simple input values from
+ the user.
+
+QMetaProperty - stores meta data about properties. Part of the meta
+ object system.
+
+QNetworkProtocol- base class for network protocols, provides
+ a common API for network protocols.
+
+QUrl/
+QUrlOperator - provides an easy way to work with URLs.
+
+QVariant - a tagged union for the most common Qt data types.
+
+QValueStack - a value-based stack container.
+
+QWorkspace - provides a workspace that can contain decorated
+ windows as opposed to frameless child widgets.
+ QWorkspace makes it easy to implement a multi-document
+ interface (MDI).
+
+QBig5Codec - provides support for the Big5 Chinese encoding.
+
+
+****************************************************************************
+* Changes which may affect runtime behaviour *
+****************************************************************************
+
+QDataStream / QPicture
+ To accomodate for improved functionality, the stream serialization format
+ of QString and QPen has changed in Qt 2.1. The format version
+ number has been increased to 3. Compatibility has been kept, so
+ applications built with this version of Qt are automatically able to read
+ QDataStream and QPicture data generated by earlier Qt 2.x versions. But if
+ your application needs to generate data that must be readable by
+ applications that are compiled with earlier versions of Qt, you must use
+ QDataStream::setVersion() (if the data contains QString or QPen objects).
+ See the documentation of this function for further discussion.
+
+QPainter::drawPolygon()
+ An outline is no longer drawn in the brush color if NoPen is specified.
+ This matches the behaviour on Windows and ensures that the area
+ painted in this case is the same pixels defined by a QRegion made
+ from the polygon. To get the old behaviour, you can call
+ painter.setPen(painter.brush()) prior to painting, which will also
+ work on Windows.
+
+QPushButton::sizeHint()
+ The size hint of auto-default push buttons has been slightly
+ increased in order to reserve space for a default button indicator
+ frame. This is necessary for a proper Motif or Platinum emulation. If
+ this change destroys your geometry management, a auto-default button
+ is probably not what you wanted anyway. Simply call
+ setAutoDefault(FALSE) on these push buttons to get the old behaviour.
+
+QWidget
+ Font and palette propagation has changed totally (from "almost
+ brain-dead" to working). In practice, the only changes we've seen are
+ to the better.
+
+QColor
+ qRgb(r,g,b) now sets a default opaque alpha value of 0xff instead of
+ a transparent 0x00 alpha value formerly. Use qRgb(r,g,b,a) if you do
+ need a transparent alpha value.
+
+QPalette
+ It turned out that the old normal/active/disabled set of color groups
+ didn't work very well, except in the simplest hello-world examples,
+ that it couldn't be fixed without nasty hacks, and that during five
+ years nobody had discovered the bugs. So, we've dropped our broken
+ attempt at Tcl/Tk L&F compatibility, and added support for Windows
+ 2000 and Macintosh L&F compatibility instead. The Macintosh and
+ Windows 2000 looks differentiate between the window with focus and
+ other windows. Qt calls the color groups QPalette::active() and
+ QPalette::inactive() respectively.
+
+QGridLayout/QBoxLayout
+ setMargin() now also works on child layouts. As a result of this
+ change, the geometry() of a layout now includes margin(). This may
+ effect programs that use QLayout::geometry().
+
+QToolButton
+ The now adjustable auto-raise behaviour defaults to TRUE only when
+ a button is used inside a QToolBar. That's usually what you want. If not,
+ call setAutoRaise(FALSE).
diff --git a/dist/changes-2.1.1 b/dist/changes-2.1.1
new file mode 100644
index 0000000..bb653fe
--- /dev/null
+++ b/dist/changes-2.1.1
@@ -0,0 +1,71 @@
+
+Qt 2.1.1 is a bugfix release. It keeps both forward and backward
+compatibility (source and binary) with Qt 2.1.
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+- Many documentation improvements
+
+- Various compilation problems relating to particular versions of xlC,
+MipsPRO, Solaris, Japanese Windows, old X11 libraries, and gcc 2.7.2
+fixed
+
+- 64bit HP build targets added
+
+- Qt OpenGL Extension updated; see details in qt/extensions/opengl/CHANGES
+
+- As usual, many minor bugfixes, too small to be mentioned here.
+
+
+****************************************************************************
+* Specific *
+****************************************************************************
+
+QToolbar: fix of layout-saving when moving out of dock
+
+QAccel: Support for non-alphanumeric keys
+
+QPrinter: Better tolerance for PS interpreter peculiarities
+
+QPainter: drawText() with rasterOp on Windows
+
+QIconView: Drawing fixes
+
+QDate: Ensure invalid status when created with invalid values
+
+Motif Dnd: Fix possible crash
+
+QWorkSpace: Proper minimize/maximize activation
+
+QListBox: Optimization: better performance for lists with thousands of
+ elements. Selection problem fixed.
+
+QFont: Fontset matching fix for X11
+
+QMultiLineEdit: Wordwrap/selection workaround
+
+QTabBar: Refresh layout after style change. Optimization.
+
+QTimer: Zero-timers on Windows speedup
+
+QFileDialog: Correct caption on Windows
+
+QComboBox: Accept only left button. Do proper font propagation.
+
+QMenuBar: Accept only left button
+
+QDialog: Modal dialogs after QApplication::exec() returns
+
+QWidget: Optimization: fewer server round-trips
+
+QCheckBox: Fixed mask drawing
+
+QSpinBox: Accept '-' key, for negative values
+
+Dnd: Allow disabling on X11
+
+QFontDatabase: Use QApplication's charset as default,
+ and fixed garbage on Win2000
diff --git a/dist/changes-2.2.0 b/dist/changes-2.2.0
new file mode 100644
index 0000000..d5444a8
--- /dev/null
+++ b/dist/changes-2.2.0
@@ -0,0 +1,223 @@
+
+Qt 2.2 introduces new features as well as many improvements over the
+2.1.x series. This file will only give an overview of the main changes
+since version 2.1. A complete list would simply be too large to be
+useful. For more detail see the online documentation which is
+included in this distribution, and also available on
+http://doc.trolltech.com/
+
+The Qt version 2.2 series is binary compatible with the 2.1.x and
+2.0.x series - applications compiled for 2.0 or 2.1 will continue to
+run with 2.2.
+
+As with previous Qt releases, the API and functionality of Qt is
+completely portable between Microsoft Windows and X11. It is also
+portable between Windows 95, 98, NT and 2000.
+
+****************************************************************************
+* Overview *
+****************************************************************************
+
+The greatest new feature in the 2.2 release is the Qt Designer, a
+visual GUI design tool. It makes it possible to cut down on
+development time even further through WYSIWYG dialog design. The
+designer makes use of improved runtime flexibility and a revised
+property system. Please see $QTDIR/doc/html/designer.html for a
+feature overview.
+
+Qt 2.2 integrates now fully on MS-Windows 2000. This includes fade
+and scroll effects for popup windows and title bar gradients for MDI
+document windows in the MDI module. As with all Qt features, we
+provide the same visual effects on Unix/X11.
+
+Two new classes QAction and QActionGroup make it much easier to
+create sophisticated main windows for today's applications. A QAction
+abstracts a user interface action that can appear both in menus and
+tool bars. An action group makes it easier to deal with groups of
+actions. It allows to add, remove or activate its children with a
+single call and provides "one of many" semantics for toggle
+actions. Changing an action's properties, for example using
+setEnabled(),setOn() or setText(), immediately shows up in all
+representations.
+
+Few people consider the original OSF Motif style the most elegant or
+flashy GUI style. Therefore several attempts have been made to come up
+with a slightly improved Motif-ish look and feel. One of them is the
+thinner CDE style, that was supported by Qt since version 2.0. In the
+2.2 release, we now added support for SGI's very own Motif version on
+IRIX workstations. With its more elegant bevelling of 3D elements and
+mouse-under highlight effects, it is quite appealing. For Linux users,
+we added a Motif plus style, that resembles the bevelling used by the
+GIMP toolkit (GTK+). Optionally, this style also does hovering
+highlight on buttons.
+
+Last but not least we added support for multi-threaded
+applications. The classes involved are QThread to start threads,
+QMutex to serialize them and QCondition to signal the occurrence of
+events between threads ("condition variables").
+
+Another major change was done regarding distribution. In order to
+address the steady growth of functionality in the Qt library, we
+split the source code into distinct modules that can be compiled
+in (or left out) separately. This also makes it possible for us to
+keep the cost of entry into the commercial Qt world as low as possible.
+
+The modules available in Qt 2.2 are:
+
+- Tools: platform-independent Non-GUI API for I/O, encodings, containers,
+ strings, time & date, and regular expressions.
+
+- Kernel: platform-independent GUI API, a complete window-system API.
+
+- Widgets: portable GUI controls.
+
+- Dialogs: ready-made common dialogs for selection of colors, files,
+ printers, fonts, and basic types, plus a wizard framework, message
+ boxes and progress indicator.
+
+- OpenGL 3D Graphics: integration of OpenGL with Qt, making it very
+ easy to use OpenGL rendering in a Qt application.
+
+- Network: advanced socket and server-socket handling plus
+ asynchronous DNS lookup.
+
+- Canvas: a highly optimized 2D graphic area.
+
+- Table: a flexible and editable table widget
+
+- IconView: a powerful visualization widget similar to QListView and
+ QListBox. It contains optionally labelled pixmap items that the user
+ can select, drag around, rename, delete and more.
+
+- XML: a well-formed XML parser with SAX interface plus an
+ implementation of the DOM Level1
+
+- Workspace: a workspace window that can contain decorated document
+ windows for Multi Document Interfaces (MDI).
+
+
+Network, Canvas, Table and XML are entirely new modules.
+
+Below is a list of the major new features in existing classes as well
+as short descriptions of all new classes.
+
+
+****************************************************************************
+* New major features in existing classes *
+****************************************************************************
+
+QApplication: - "global strut", an adjustable minimum size for interactable
+ control elements like the entries in a listbox, useful for
+ touch-screens. Popup window effects ( setEffectEnabled() )
+ and more threading support ( guiThreadTaken(), lock(),
+ unlock(), locked() ).
+
+QCheckBox: - "tristate" is now a property.
+
+QClipboard: - text() supports subtypes.
+
+QComboBox: - "editable" is now a property that is changeable at runtime
+
+QDialog: - support for extensible dialogs ("More...") with
+ setExtension() and setOrientation(). Optional size grip.
+
+QFont: - new functions styleStrategy() and setStyleHint()
+
+QIconSet: - new constructor that takes both a small and a large pixmap
+
+QKeyEvent: - numeric keypad keys now set a Keypad flag
+
+QLabel: - support for scaled pixmap contents, "pixmap" as property
+
+QLayout: - improved flexibility with setEnabled(), access to the
+ laid out menu bar with menuBar().
+
+QListView: - "showSortIndicator" as property. New function
+ QListViewItem::moveItem() to simplify drag and drop.
+
+QMovie: - new functions pushSpace(), pushData(), frameImage()
+
+QMultiLineEdit: - new functions pasteSubType() and copyAvailable()
+
+QObject: - new function normalizeSignalSlot(), tr() now supports a comment.
+
+QPicture: - streaming to and from QDataStream
+
+QPopupMenu: - new signal aboutToHide()
+
+QRegExp: - new functions setPattern() and find()
+
+QRegion: - new function setRects()
+
+QScrollView: - new property "staticBackground" to define a pixmap
+ background that does not scroll with the contents.
+
+QStatusBar: - "sizeGripEnabled" as property
+
+QStyle: - themable menu bars with drawMenuBarItem(). New functions
+ buttonMargin(), toolBarHandleExtent(), sliderThickness()
+
+QTabWidget: - new functions currentPageIndex(), setCurrentPage(), new
+ signal currentChanged(). Similar extensions to QTabBar
+ and QTabDialog
+
+QTranslator: - new algorithmen for faster lookup. No more risk of
+ "hash collisions" when many translators are loaded.
+
+QVariant: - new subtype QSizePolicy. Necessary for QWidget's
+ new sizePolicy property.
+
+QWidget: - new properties "sizePolicy", "ownPalette", "ownFont",
+ "ownCursor" and "hidden". The size policy is now adjustable
+ at runtime with setSizePolicy(). Added convenience slot
+ setDisabled(). Fast geometry mapping functions mapTo() and
+ mapFrom(). On X11, support for a new background mode
+ X11ParentRelative.
+
+QWizard: - runtime changable titles with setTitle(), new signal
+ selected()
+
+QWorkspace: - support for more widget flags like WType_Tool. Titlebar
+ blending effects on MS-Windows 98/2000.
+
+
+****************************************************************************
+* New classes *
+****************************************************************************
+
+QAction - Abstracts a user interface action that can appear both in
+ menus and tool bars. Changing an action's properties, for
+ example using setEnabled(),setOn() or setText(),
+ immediately shows up in all representations.
+
+QActionGroup - Combines actions to a group. An action group makes it easier
+ to deal with groups of actions. It allows to add, remove or
+ activate its children with a single call and provides
+ "one of many" semantics for toggle actions.
+
+QDial - A rounded rangecontrol (like a speedometer or
+ potentiometer). Both API- and UI-wise the dial is very
+ similar to a QSlider.
+
+QDom - [XML Module] DOM Level 1 Tree
+
+QMotifPlusStyle - This class implements a Motif-ish look and feel with more
+ sophisticated bevelling as used by the GIMP toolkit (GTK+)
+ for Unix/X11.
+
+QMutex: - Provides access serialization between threads.
+
+QSemaphore: - A robust integer semaphore. Another way of thread
+ serialization.
+
+QThread - Baseclass for platform-independent threads.
+
+QWaitCondition - Provides signalling of the occurrence of events between
+ threads ("condition variables")
+
+QCanvas - [Canvas Module] a highly optimized 2D graphic area.
+
+QTable - [Table Module] a flexible and editable table widget
+
+QXML - [XML Module] XML parser with SAX interface
+
diff --git a/dist/changes-2.2.1 b/dist/changes-2.2.1
new file mode 100644
index 0000000..1df0851
--- /dev/null
+++ b/dist/changes-2.2.1
@@ -0,0 +1,160 @@
+
+Qt 2.2.1 is a maintainance release. It keeps backward binary compatibility
+with Qt 2.1 and both forward and backward source compatibility with Qt 2.2.x.
+
+Qt 2.2.0 had a binary compatibility problem with the following:
+
+ bool QRect::contains( const QRect &r, bool proper=FALSE ) const
+
+Qt 2.2.1 corrects this. Programs compiled with 2.1.x now continue
+running with 2.2.1. Programs compiled with versions other than 2.2.0
+may not run with 2.2.0, so upgrading to 2.2.1 is additionally important.
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+- Various compilation problems on particular platforms fixed
+
+- Many improvments in QThread. More platforms supported
+ (e.g. HPUX 11.x), uses native threads on Solaris rather than
+ compatibility posix threads
+
+- A few newly discovered memory leaks and free memory reads fixed
+
+- As usual, many minor bugfixes, too small to be mentioned here.
+
+
+****************************************************************************
+* Designer *
+****************************************************************************
+
+- in KDE mode: don't show all KDE widgets in the toolbars, since we do
+ not have icons for them (yet). They are accessible through the menu
+ structure, though.
+
+- Introduced concept of a global /etc/designerrc and a templatePath
+ for the sake of Linux Standard Base (LSB) and the way Linux
+ ditributors like to package the Qt Free Edition.
+
+- Support for tab names in a QTabWidget, and page names in a QWizard.
+
+- Support for button IDs in a button group, makes it possible to utilize
+ one single slot for all buttons in a group.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+QClipboard: X11 only: fixed occasional crashes, possibly corrupted
+ list of provided types and hangups of several seconds under
+ certain circumstances.
+
+QFileDialog: Fixed update when renaming a file to an existing file
+ Unix only: Reset error status after attempting to read an
+ empty file
+ Fixed magical resetting of the "Open" label
+ Fixed duplicate entries in the history combobox
+
+QFont: Fixes for Hewbrew, Arabic and Thai encodings
+ Added support for Ukrainian encodings
+ X11 only: loading fonts for a locale other than the
+ current now possible (allows displaying japanese characters
+ in a latin1 application without relying on the existence of
+ a unicode font)
+
+QHeader: removing labels fixed, important for QTable and QListView
+
+QIconView: drawing problem with missleading font metrices and
+ bounding rectangles fixed
+
+QInputDialog,
+QMessageBox: use the main widget's or parent's icon if available
+
+QLayout: synchronize the behaviour of sublayouts and subwidgets with
+ layouts.
+
+QLineEdit: Update cursor position if QValidator::fixup() truncates the
+ string
+
+QMainWindow: Fixed calculated minimum size. Sometimes, the minimum width
+ of the central widget was disregarded.
+
+QMenuBar: Sizing fixed for frameless menubars in toolbars in
+ Motif-based styles
+
+QMotifPlusStyle: correct drawing of triangular tabs
+
+QMovie: keep frameImage() during EndOfMovie signal
+
+QDom: add comments when reading a xml file into the dom
+
+QPrinter: MS-Windows only: Fixed invalidation when setup dialog was
+ cancelled
+
+QSgiStyle: Small drawing problem with QTabBar fixed.
+ Fixed drawing of special prefix in menu items
+
+QSizePolicy: setHeightForWidth() was broken, works now
+
+QTextCodec: significant speedups for latin1 conversion
+
+QTextStream: small speed improvements for readLine()
+ Added codec for ukrainian (koi8-u) encoding
+
+QWheelEvent: Support for the MSH_MOUSEWHEEL extension on MS-Windows 95
+
+QWidget: X11 only: Fixed possible mouse lock-ups when re-entering
+ the event loop on mouse events for widgets of type
+ WType_Popup.
+ X11 only: set input context when setting the active
+ window
+ X11 only: when dialogs were closed, the main window looked
+ like it lost focus with some window managers. This has been
+ fixed now.
+
+QWidgetStack: potential flicker issue fixed
+
+QWorkspace: normalize minimized children when they get focus
+ removed occasional flashing (e.g. when maximizing child
+ windows)
+ Look and feel adjustments to emulate MS-Windows even
+ closer
+ Documented that the active window can be 0 if there is no
+ active window
+ Slightly modifed the button decorations to be more general
+ and less KDE2 specific
+
+
+****************************************************************************
+* Changes that might affect runtime behavior *
+****************************************************************************
+
+QLayout:
+
+We synchronized the behaviour of sublayouts and subwidgets with
+layouts. This shows great effect in the designer, were you usually
+operate on container subwidgets in the design phase, but get a
+complete layout in the preview mode or the generated code. For
+example, the influence of a spacer item on a sublayout's size policy
+has been reduced. The modifications may slightly affect the layout of
+some dialogs.
+
+
+****************************************************************************
+* Qt/Embedded-specific changes *
+****************************************************************************
+
+- Rotated displays & fonts
+- QCOP, a simple interprocess messaging system
+- Threading support
+- Auto-detected mouse
+- VGA16 support
+- Improved thick lines
+- Optimize some double-painting
+- Allow setting of custom 8bpp colors: QApplication::qwsSetCustomColors()
+- Fix masked widget drawing and clicking
+- Fix mouse grabbing for popups
+
+
diff --git a/dist/changes-2.2.2 b/dist/changes-2.2.2
new file mode 100644
index 0000000..5f271fe
--- /dev/null
+++ b/dist/changes-2.2.2
@@ -0,0 +1,154 @@
+
+Qt 2.2.2 is a bugfix release. It keeps both forward and backward
+compatibility (source and binary) with Qt 2.2.1
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+OpenGL: More Problems with the auto-detection of OpenGL
+ libraries have been fixed.
+
+
+****************************************************************************
+* Designer *
+****************************************************************************
+
+uic: Added workaround for the QListView::Manual vs.
+ QScrollView::Manual enumeration clash.
+ Fixed backslashes inside strings.
+ Obeys user defined layout names.
+
+RC2UI: Converts Microsoft Dialog Resources (.rc) to
+ Qt Designer Dialog Userinterface Description Files (.ui).
+ You find it in $QTDIR/tools/designer/integration/rc2ui.
+ See the README file there.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+QAction: Fixed possible crash in removeFrom().
+
+QApplication: X11 only: Add possibility to input text in more than
+ one encoding.
+
+QCanvas: Deletes items at canvas destruction time. Without a
+ canvas, items are not deletable anyway as they need to
+ access their canvas during destruction.
+ Some performance optimizations.
+
+QCanvasItem: More accurate rectangle collision detection.
+
+QClipboard: X11 only: 64bit cleanness when transferring data
+ with format==32 using dnd/clipboard.
+
+QColorDialog: MS-Windows only: Tries harder to use a nice icon.
+
+QDialog: Keypard-Enter triggers default button.
+
+QFile: Unix only: Safe access to files in the proc filesystem.
+
+QFileDialog: Fixed reentrancy problem when used with qFtp.
+ MS-Windows only: Tries harder to use a nice icon.
+
+QFontCache: Fixed possible crash in the rare case that the font
+ cache runs over.
+
+QGLWidget: MS-Windows only: Fix for GL context switching.
+
+QIconView: Fixed possible crash.
+
+QImage: Increased number of colors when writing XPM files from
+ 64^2 to 64^4.
+ Fixed 16-bit pixel().
+
+QImageIO: MS-Windows only: exported qInitJpegIO function.
+ Fixed crash with libpng 1.0.8.
+ Fixed huge memory leak with PNG files.
+
+QLCDNumber: Sensible precision when displaying doubles.
+
+QLineEdit: Accepts text drops other than text/plain.
+ Fixed psosible crash when deleting a line edit while its
+ context menu is visible.
+
+QListView: Less flicker. Improved performance on insertItem().
+
+QMainWindow: Deletes its layout first on destruction time to avoid
+ possible crashes with subclasses.
+
+QMotifPlusStyle:Tuned drawing of tabs.
+
+QPainter: Fixed rounded rectangle drawing with rotation and
+ viewport transformation turned on.
+ Ignores '\r' in drawText.
+
+QPopupMenu: Ensure to emit the aboutToShow() signal only once
+ for submenus.
+
+QPrinter: Unix only: Fixed output for when printing some but not all pages
+ of multi-page output.
+ Unix only: Fixed an infinite loop in the image compression
+ algorithm for some images.
+ Unix only: Added MIBs for 8859-13, -14 and -15.
+ MS-Windows only: Fixed system print dialog for Win9x.
+
+QPrintDialog: MS-Windows only: Tries harder to use a nice icon.
+
+QProgressBar: Fixed drawing problem with really large progress ranges.
+
+QPushButton: Implemented "flat" property as advertised.
+
+QPrinter: MS-Windows only: Keep the current printer name.
+
+QRichText: Fixed line breaking for asian scripts. Support for
+ chinese punctuation.
+ Obeys <font color="..."> tags inside links.
+
+QString: Allows 'G' in sprintf.
+
+QTextCodec: Recognizes "he" and "he_IL" as 8859-8 locales.
+ Added latin4 locales.
+ Improved Thai support.
+ X11 only: fixed crashes when LANG=ko.
+ Improved conversion performance.
+
+QWidget: X11 only: fixed a crash in case XmbTextListToTextProperty
+ fails for a certain locale.
+ Visiblity fix when reparenting a widget to 0.
+ X11 only: Improved transient placement for embedded
+ windows.
+ X11 only: Maintains XDND state when reparented.
+ X11 only: No more crashes in setActiveWindow() with
+ or without XIM support.
+ X11 only: small ICCCM compatibility issue with subsequent
+ hide and show fixed.
+
+QWorkspace: Tab-focus remains inside a document window.
+ Fixed problem with menubars inside document windows.
+ Obeys initial child geometry.
+ Uses the children's size hint when cascading.
+
+QXmlInputSource:Fix for stream devices that do not support
+ direct access.
+
+****************************************************************************
+* Third party *
+****************************************************************************
+
+None
+
+****************************************************************************
+* Changes that might affect runtime behavior *
+****************************************************************************
+
+None
+
+****************************************************************************
+* Qt/Embedded-specific changes *
+****************************************************************************
+
+ - Drawing speed-ups, especially rectangles, alpha blitting, horizontal lines.
+ - More control of qconfig.h
diff --git a/dist/changes-3.0.0 b/dist/changes-3.0.0
new file mode 100644
index 0000000..1f6ad5b
--- /dev/null
+++ b/dist/changes-3.0.0
@@ -0,0 +1,720 @@
+Qt 3.0 adds a wide range of major new features as well as substantial
+improvements over the Qt 2.x series. Some internals have undergone
+major redesign and new classes and methods have been added.
+
+The Qt version 3.x series is not binary compatible with the 2.x
+series. This means programs compiled with Qt version 2.x must be
+recompiled to work with Qt 3.0.
+
+In addition to the traditional Qt platforms Linux, Unix and the
+various flavours of MS-Windows. Qt 3.0 for the first time introduces a
+native port to MacOS X. Like all Qt versions, Qt/Mac is source
+compatible with the other editions and follows closely the platform's
+native look and feel guidelines.
+
+We have tried to keep the API of Qt 3.0 as compatible as possible with
+the Qt 2.x series. For most applications, only minor changes will be
+needed to compile and run them successfully using Qt 3.0.
+
+One of the major new features that has been added in the 3.0 release
+is a module allowing you to easily work with databases. The API is
+platform independent and database neutral. This module is seamlessly
+integrated into Qt Designer, greatly simplifying the process of
+building database applications and using data aware widgets.
+
+Other major new features include a plugin architecture to extend Qt's
+functionality, for styles, text encodings, image formats and database
+drivers. The Unicode support of Qt 2.x has been greatly enhanced, it
+now includes full support for scripts written from right to left
+(e.g. Arabic and Hebrew) and also provides improved support for Asian
+languages.
+
+Many new classes have been added to the Qt Library. Amongst them are
+classes that provide a docking architecture (QDockArea/QDockWindow), a
+powerful rich text editor (QTextEdit), a class to store and access
+application settings (QSettings) and a class to create and communicate
+with processes (QProcess).
+
+Apart from the changes in the library itself a lot has been done to
+make the development of Qt applications with Qt 3.0 even easier than
+before. Two new applications have been added: Qt Linguist is a tool to
+help you translate your application into different languages; Qt
+Assistant is an easy to use help browser for the Qt documentation that
+supports bookmarks and can search by keyword.
+
+Another change concerns the Qt build system, which has been reworked
+to make it a lot easier to port Qt to new platforms. You can use this
+platform independent build system - called qmake - for your own
+applications.
+
+And last but not least we hope you will enjoy the revisited and widely
+extended documentation.
+
+
+Qt/Embedded
+----------
+
+Qt/Embedded 3.0 provides the same features as Qt 3.0, but currently
+lacks some of the memory optimizations and fine-tuning capabilities of
+Qt/Embedded 2.3.x. We will add these in the upcoming maintainance
+releases.
+
+If you develop a new product based on Qt/Embedded, we recommend
+switching to 3.0 because of the greatly improved functionality.
+However, if you are planning a release within the next two months and
+require memory optimizations not available with Qt/Embedded 3.0, we
+suggest using Qt/Embedded 2.3.x.
+
+
+The Qt Library
+========================================
+
+A large number of new features has been added to Qt 3.0. The following
+list gives an overview of the most important new and changed aspects
+of the Qt library.
+
+
+Database support
+----------------
+
+One of the major new features in Qt 3.0 is the SQL module that
+provides cross-platform access to SQL databases, making database
+application programming with Qt seamless and portable. The API, built
+with standard SQL, is database-neutral and software development is
+independent of the underlying database.
+
+A collection of tightly focused C++ classes are provided to give the
+programmer direct access to SQL databases. Developers can send raw SQL
+to the database server or have the Qt SQL classes generate SQL queries
+automatically. Drivers for Oracle, PostgreSQL, MySQL and ODBC are
+available and writing new drivers is straightforward.
+
+Tying the results of SQL queries to GUI components is fully supported
+by Qt's SQL widgets. These classes include a tabular data widget
+(for spreadsheet-like data presentation with in-place editing), a
+form-based data browser (which provides data navigation and edit
+functions) and a form-based data viewer (which provides read-only
+forms). This framework can be extended by using custom field editors,
+allowing for example, a data table to use custom widgets for in-place
+editing. The SQL module fully supports Qt's signals/slots mechanism,
+making it easy for developers to include their own data validation and
+auditing code.
+
+Qt Designer fully supports Qt's SQL module. All SQL widgets can be
+laid out within Qt Designer, and relationships can be established
+between controls visually. Many interactions can be defined purely in
+terms of Qt's signals/slots mechanism directly in Qt Designer.
+
+
+Explicit linking and plugins
+-------------------------
+
+The QLibrary class provides a platform independent wrapper for runtime
+loading of shared libraries.
+
+Specialized classes that make it possible to extend Qt's functionality
+with plugins: QStylePlugin for user interface styles, QTextCodecPlugin
+for text encodings, QImageFormatPlugin for image formats and
+QSqlDriverPlugin for database drivers.
+
+It is possible to remove unused components from the Qt library, and
+easy to extend any application with 3rd party styles, database drivers
+or text codecs.
+
+Qt Designer supports custom widgets in plugins, and will use the
+widgets both when designing and previewing forms (QWidgetPlugin).
+
+
+Rich text engine and editor
+---------------------------
+
+The rich text engine originally introduced in Qt 2.0 has been further
+optimized and extended to support editing. It allows editing formatted
+text with different fonts, colors, paragraph styles, tables and
+images. The editor supports different word wrap modes, command-based
+undo/redo, multiple selections, drag and drop, and many other
+features. The engine is highly optimized for proccesing and displaying
+large documents quickly and efficiently.
+
+
+Unicode
+-------
+
+Apart from the rich text engine, another new feature of Qt 3.0 that
+relates to text handling is the greatly improved Unicode support. Qt
+3.0 includes an implementation of the bidirectional algorithm (BiDi)
+as defined in the Unicode standard and a shaping engine for Arabic,
+which gives full native language support to Arabic and Hebrew speaking
+people. At the same time the support for Asian languages has been
+greatly enhanced.
+
+The support is almost transparent for the developer using Qt to
+develop their applications. This means that developers who developed
+applications using Qt 2.x will automatically gain the full support for
+these languages when switching to Qt 3.0. Developers can rely on their
+application to work for people using writing systems different from
+Latin1, without having to worry about the complexities involved with
+these scripts, as Qt takes care of this automatically.
+
+
+Docked and Floating Windows
+---------------------------
+
+Qt 3.0 introduces the concept of dock windows and dock areas. Dock
+windows are widgets, that can be attached to, and detached from, dock
+areas. The most common kind of dock window is a tool bar. Any number of
+dock windows may be placed in a dock area. A main window can have dock
+areas, for example, QMainWindow provides four dock areas (top, left,
+bottom, right) by default. The user can freely move dock windows and
+place them at a convenient place in a dock area, or drag them out of
+the application and have them float freely as top level windows in
+their own right. Dock windows can also be minimized or hidden.
+
+For developers, dock windows behave just like ordinary widgets. QToolbar
+for example is now a specialized subclass of a dock window. The API
+of QMainWindow and QToolBar is source compatible with Qt 2.x, so
+existing code which uses these classes will continue to work.
+
+
+Regular Expressions
+-------------------
+
+Qt has always provided regular expression support, but that support
+was pretty much limited to what was required in common GUI control
+elements such as file dialogs. Qt 3.0 introduces a new regular
+expression engine that supports most of Perl's regex features and is
+Unicode based. The most useful additions are support for parentheses
+(capturing and non-capturing) and backreferences.
+
+
+Storing application settings
+----------------------------
+
+Most programs will need to store some settings between runs, for
+example, user selected fonts, colors and other preferences, or a list
+of recently used files. The new QSettings class provides a platform
+independent way to achieve this goal. The API makes it easy to store
+and retrieve most of the basic data types used in Qt (such as basic
+C++ types, strings, lists, colors, etc). The class uses the registry
+on the Windows platform and traditional resource files on Unix.
+
+
+Creating and controlling other processes
+----------------------------------------
+
+QProcess is a class that allows you to start other programs from
+within a Qt application in a platform independent manner. It gives you
+full control over the started program. For example you can redirect
+the input and output of console applications.
+
+
+Accessibility
+---------------
+
+Accessibility means making software usable and accessible to a wide
+range of users, including those with disabilities. In Qt 3.0, most
+widgets provide accessibility information for assistive tools that can
+be used by a wide range of disabled users. Qt standard widgets like
+buttons or range controls are fully supported. Support for complex
+widgets, like e.g. QListView, is in development. Existing applications
+that make use of standard widgets will become accessible just by using
+Qt 3.0.
+
+Qt uses the Active Accessibility infrastructure on Windows, and needs
+the MSAA SDK, which is part of most platform SDKs. With improving
+standardization of accessibility on other platforms, Qt will support
+assistive technologies on other systems too.
+
+
+XML Improvements
+----------------
+
+The XML framework introduced in Qt 2.2 has been vastly improved. Qt
+2.2 already supported level 1 of the Document Object Model (DOM), a
+W3C standard for accessing and modifying XML documents. Qt 3.0 has
+added support for DOM Level 2 and XML namespaces.
+
+The XML parser has been extended to allow incremental parsing of XML
+documents. This allows you to start parsing the document directly
+after the first parts of the data have arrived, and to continue
+whenever new data is available. This is especially useful if the XML
+document is read from a slow source, e.g. over the network, as it
+allows the application to start working on the data at a very early
+stage.
+
+
+SVG support
+-----------
+
+SVG is a W3C standard for "Scalable Vector Graphics". Qt 3.0's SVG
+support means that QPicture can optionally generate and import static
+SVG documents. All the SVG features that have an equivalent in
+QPainter are supported.
+
+
+Multihead support
+-----------------
+
+Many professional applications, such as DTP and CAD software, are able
+to display data on two or more monitors. In Qt 3.0 the QDesktopWidget
+class provides the application with runtime information about the
+number and geometry of the desktops on the different monitors and such
+allows applications to efficiently use a multi-monitor setup.
+
+The virtual desktop of Windows 98 and 2000 is supported, as well as
+the traditional multi-screen and the newer Xinerama multihead setups
+on X11.
+
+
+X11 specific enhancements
+-------------------------
+
+Qt 3.0 now complies with the NET WM Specification, recently adopted
+by KDE 2.0. This allows easy integration and proper execution with
+desktop environments that support the NET WM specification.
+
+The font handling on X11 has undergone major changes. QFont no longer
+has a one-to-one relation with window system fonts. QFont is now a
+logical font that can load multiple window system fonts to simplify
+Unicode text display. This completely removes the burden of
+changing/setting fonts for a specific locale/language from the
+programmer. For end-users, any font can be used in any locale. For
+example, a user in Norway will be able to see Korean text without
+having to set their locale to Korean.
+
+Qt 3.0 also supports the new render extension recently added to
+XFree86. This adds support for anti-aliased text and pixmaps with
+alpha channel (semi transparency) on the systems that support the
+rendering extension (at the moment XFree 4.0.3 and later).
+
+
+Printing
+--------
+
+Printing support has been enhanced on all platforms. The QPrinter
+class now supports setting a virtual resolution for the painting
+process. This makes WYSIWYG printing trivial, and also allows you to
+take full advantage of the high resolution of a printer when painting
+on it.
+
+The postscript driver built into Qt and used on Unix has been greatly
+enhanced. It supports the embedding of true/open type and type1 fonts
+into the document, and can correctly handle and display Unicode.
+Support for fonts built into the printer has been enhanced and Qt now
+knows about the most common printer fonts used for Asian languages.
+
+
+Networking
+-----------
+
+A new class QHttp provides a simple interface for HTTP downloads and
+uploads.
+
+
+Compatibility with the Standard Template Library (STL)
+------------------------------------------------------
+
+Support for the C++ Standard Template Library has been added to the Qt
+Template Library (QTL). The QTL classes now contain appropriate copy
+constructors and typedefs so that they can be freely mixed with other
+STL containers and algorithms. In addition, new member functions have
+been added to QTL template classes which correspond to STL-style
+naming conventions (e.g., push_back()).
+
+
+Qt Designer
+========================================
+
+Qt Designer was a pure dialog editor in Qt 2.2 but has now been
+extended to provide the full functionality of a GUI design tool.
+
+This includes the ability to lay out main windows with menus and
+toolbars. Actions can be edited within Qt Designer and then plugged
+into toolbars and menu bars via drag and drop. Splitters can now be
+used in a way similar to layouts to group widgets horizontally or
+vertically.
+
+In Qt 2.2, many of the dialogs created by Qt Designer had to be
+subclassed to implement functionality beyond the predefined signal and
+slot connections. Whilst the subclassing approach is still fully
+supported, Qt Designer now offers an alternative: a plugin for editing
+code. The editor offers features such as syntax highlighting,
+completion, parentheses matching and incremental search.
+
+The functionality of Qt Designer can now be extended via plugins.
+Using Qt Designer's interface or by implementing one of the provided
+interfaces in a plugin, a two way communication between plugin and Qt
+Designer can be established. This functionality is used to implement
+plugins for custom widgets, so that they can be used as real widgets
+inside the designer.
+
+Basic support for project management has been added. This allows you
+to read and edit *.pro files, add and remove files to/from the project
+and do some global operations on the project. You can now open the
+project file and have one-click access to all the *.ui forms in the
+project.
+
+In addition to generating code via uic, Qt Designer now supports the
+dynamic creation of widgets directly from XML user interface
+description files (*.ui files) at runtime. This eliminates the need of
+recompiling your application when the GUI changes, and could be used
+to enable your customers to do their own customizations. Technically,
+the feature is provided by a new class, QWidgetFactory in the
+UI-library.
+
+
+Qt Linguist
+========================================
+
+Qt Linguist is a GUI utility to support translating the user-visible
+text in applications written with Qt. It comes with two command-line
+tools: lupdate and lrelease.
+
+Translation of a Qt application is a three-step process:
+
+ 1) Run lupdate to extract user-visible text from the C++ source
+ code of the Qt application, resulting in a translation source file
+ (a *.ts file).
+ 2) Provide translations for the source texts in the *.ts file using
+ Qt Linguist.
+ 3) Run lrelease to obtain a light-weight message file (a *.qm file)
+ from the *.ts file, which provides very fast lookup for released
+ applications.
+
+Qt Linguist is a tool suitable for use by translators. Each
+user-visible (source) text is characterized by the text itself, a
+context (usually the name of the C++ class containing the text), and
+an optional comment to help the translator. The C++ class name will
+usually be the name of the relevant dialog, and the comment will often
+contain instructions that describe how to navigate to the relevant
+dialog.
+
+You can create phrase books for Qt Linguist to provide common
+translations to help ensure consistency and to speed up the
+translation process. Whenever a translator navigates to a new text to
+translate, Qt Linguist uses an intelligent algorithm to provide a list
+of possible translations: the list is composed of relevant text from
+any open phrase books and also from identical or similar text that has
+already been translated.
+
+Once a translation is complete it can be marked as "done"; such
+translations are included in the *.qm file. Text that has not been
+"done" is included in the *.qm file in its original form. Although Qt
+Linguist is a GUI application with dock windows and mouse control,
+toolbars, etc., it has a full set of keyboard shortcuts to make
+translation as fast and efficient as possible.
+
+When the Qt application that you're developing evolves (e.g. from
+version 1.0 to version 1.1), the utility lupdate merges the source
+texts from the new version with the previous translation source file,
+reusing existing translations. In some typical cases, lupdate may
+suggest translations. These translations are marked as unfinished, so
+you can easily find and check them.
+
+
+Qt Assistant
+========================================
+
+Due to the positive feedback we received about the help system built
+into Qt Designer, we decided to offer this part as a separate
+application called Qt Assistant. Qt Assistant can be used to browse
+the Qt class documentation as well as the manuals for Qt Designer and
+Qt Linguist. It offers index searching, a contents overview, bookmarks
+history and incremental search. Qt Assistant is used by both Qt
+Designer and Qt Linguist for browsing their help documentation.
+
+
+qmake
+========================================
+
+qmake is a cross-platform make utility that makes it possible to build
+the Qt library and Qt-based applications on various target platforms
+from one single project description. It is the C++ successor of
+'tmake' which required Perl.
+
+qmake offers additional functionallity that is difficult to reproduce
+in tmake. Trolltech uses qmake in its build system for Qt and related
+products and we have released it as free software.
+
+
+
+Detailed changes
+=============
+
+Qt 3.0 went through 6 beta releases. These are the detailed changes
+since Beta 6 only. For other changes, please see the changes notes
+of the respective beta releases.
+
+
+Qt 3.0 final is not binary compatible with Beta6; any programs linked
+against Beta6 must be recompiled.
+
+Below you will find a description of general changes in the Qt
+Library, Qt Designer and Qt Assistant. Followed by a detailed list of
+changes in the API.
+
+****************************************************************************
+* General *
+****************************************************************************
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QApplication
+ make sure we process deferred deletes before leaving the event
+ loop. This fixes some ocassions of memory leaks on exit.
+ win32: some improvements for modality and dockwindow handling
+ x11 only: read non-gui QSettings when running without GUI.
+
+
+- QCheckListItem
+ Make the checkboxes respect the AlignCenter flag. Also make
+ the boxes look better in case they are not placed in the first
+ column.
+
+- QComboBox
+ if we have a currentItem and then we set the combobox to be
+ editable then set the text in the lineedit to be of the
+ current item.
+
+- QCommonStyle
+ QToolButton: spacing between a toolbutton's icon and its label.
+ QProgressBar: text color fixed.
+
+- QCursor
+ added the What's This? cursor to the collection.
+
+- QDataTable
+ fixed broken context menus.
+
+- QDate
+ fixed addMonth() overflow.
+
+- QDesktopWidget
+ win32 only: works now also for cases where the card handles
+ multiple monitors and GetSystemMetrics returns a single screen
+ only.
+
+- QDomAttr
+ fixed a memory leak in setNodeValue()
+
+- QDomNodeMap
+ added count() as a Qt-style alias for length()
+
+- QDragObject
+ default to the middle of the pixmap as a hot spot, this looks
+ nicer.
+
+- QFileDialog (internal dialog)
+ make viewMode() return the correct value even after the dialog
+ is finished. Fixed getOpenFileName and getSaveFileName for
+ non-existant directories. Make sure that when it's in
+ directory mode that the filters reflect this, and change the
+ label from file name to directory.
+ win32 only: Improved modality when using the native file
+ dialog.
+
+- QFont
+ x11 only: speed up fontloading with even more clever
+ caching. Make sure we can match scaled bitmap fonts by
+ default. Do not load a backup font for a script that is not
+ default. Make sure the pixel size is correct, even for fonts
+ that are unavailable. Try even harder to find a fontname that
+ is not understood. Some RENDER performance optimizations.
+
+- QFontDialog
+ make sure the content is set up correctly when initializing
+ the dialog.
+
+- QGLWidget
+ IRIX only: fixed reparent/resize bug, QGLContext::setContext()
+ is incredibly sensitive on different X servers.
+
+- QHeader
+ fixed missing updates on height resp. width changes like the
+ occur when changing the application font.
+
+- QIconView
+ fixed updates of non-auto-arranged views.
+
+- QImage
+ no gamma correction by default.
+ x11 only: some alignment issue with the alpha masked fixed.
+
+- QIODevice
+ fixed return value of QIODevice::readLine() for sequential
+ access.
+
+- QKeyEvent
+ win32 only: generate Direction_R/L events for bidirectional
+ input.
+
+- QLabel
+ handle setPixmap( *pixmap() ) gracefully. Apply the WordBreak
+ alignment flag to both plaintext and richtext. Improved alignment of
+ richtext labels. Removed some sizepolicy magic, QLabel now
+ works fine with Preferred/Preferred in all modes.
+
+- QLineEdit
+ fixed a crash when doing undo and a validator is set. Emit
+ textChanged() also if the text changed because of undo or redo.
+
+- QListBox
+ fixed RMB context-menu offset.
+
+- QListView
+ do not start renaming an item is CTRL or SHIFT is
+ pressed. Start renaming on mouse release, not mouse press, so
+ click + click + move on the same item does not start a rename
+ operation.
+
+- QMainWindow
+ show dock-menu also when clicking on the menubar.
+
+- QPainter
+ win32 only: improved printing performance through printer font
+ caching.
+ boundingRect(): ignore 0-width in the constrain rectangle.
+
+- QPicture
+ added overload for load() that takes a QIODevice.
+
+- QPrintDialog (internal dialog)
+ fixed enabling of the first page and last page labels.
+
+- QPrinter
+ win32 only: make setColorMode() work, some unicode fixes. Make
+ collate the default. Enable the collate checkbox without
+ losing the page selection if you want to print multiple
+ pages. Make the collateCopies property work that it knows
+ checks/unchecks the collate checkbox in the printing
+ dialog. Make settings also work when the print dialog is not
+ shown at all.
+
+- QProcess
+ added a new communication mode that duplicates stderr to
+ stdout (i.e. the equivalent of the shell's 2>&1).
+
+- QPSPrinter (unix)
+ fixed collate.
+
+- QRangeControl
+ simplified code.
+
+- QRichText
+ Propagate WhiteSpaceMode to subitems with
+ WhiteSpaceModeNormal. Hide DisplayModeNone
+ items without additional newline. Fixed links inside non-left
+ aligned tables. Fixed some bidi layout problems. Fixed last
+ line layout in right-aligned paragraphs. For plain text,
+ always use the palette's text color.
+
+- QScrollView
+ safer destruction.
+
+- QSettings
+ win32 only: fixed a dead lock situation when writing
+ to LOCAL_MACHINE, but reading from CURRENT_USER.
+
+- QSGIStyle
+ fixed drawing of checkable menu items.
+
+- QSimpleRichText
+ use the specified default font.
+
+- QSlider
+ optimized drawing in the new style engine.
+
+- QString
+ QString::replace() with a regular expression requires a
+ QRegExp object, passing a plain string will cause a compile
+ error.
+
+- QStyleSheet
+ additional parameter 'whitespacemode' for
+ QStyleSheet::convertFromPlainText(). Support for superscript
+ ('sup') and subscript ( 'sub' ).
+
+- QTabBar
+ react properly on runtime font changes, less flicker.
+
+- QTable
+ take the pixmap of a header section into account when
+ adjusting the size.
+
+- QTabWidget
+ use the embedded tabbar as focus proxy.
+
+- QThread
+ win32 only: possible crash with the thread dictionary fixed.
+
+- QValidator
+ In Q{Int,Double}Validator, consider '-' as Invalid rather than
+ Intermediate if bottom() >= 0.
+
+- QWidget
+ made showFullScreen() multihead aware.
+ win32 only: Better size and position restoring when switching
+ between fullscreen, maximized and minimized.
+ x11 only: improvements to XIM, overthespot works correctly
+ now.
+
+- QWorkspace
+ smarter placement of the minimize button when there is no
+ maximize button. Make titlebars of tool windows a bit smaller.
+ Improved styleability. Do not maximize a widget that has a
+ maximum size that is smaller than the workspace.
+
+
+
+****************************************************************************
+* Other *
+****************************************************************************
+
+- moc
+ fixed generation of uncompilable code in conjunction with
+ Q_ENUMS and signal/slots.
+
+- unicode
+ allow keyboard switching of paragraph directionality.
+
+- installation
+ install $QTDIR/doc/html/ instead of $QTDIR/doc/
+ install Qt Designer templates as well.
+
+- improved build on
+ HP-UX with cc.
+ Solaris 8 with gcc 3.0.1.
+ AIX with xlC and aCC.
+
+- inputmethods
+ x11 only: do not reset the input context on focus changes.
+
+- uic
+ smaller improvements, handle additional form signals.
+
+- Qt Designer
+ make it possible to add new signals to a form without
+ subclassing. Minor fixes.
+
+- Qt Assistant
+ fixed Shift-LMB selection bug. Fixed new window and window
+ restoration on restart.
+
+- Qt Linguist
+ change fourth parameter of QApplication::translate() from bool
+ to enum type. This affects MOC (new revision) and lupdate (new
+ syntax to parse). Change Qt Linguist's XML file format (.ts)
+ to be consistent with QApplication:<defaultcodec> (rather than
+ <codec>) to match QApp::defaultCodec(); encoding="UTF-8"
+ (rather than utf8="true") to match QApp::translate(). Fixed
+ window decoration on restart. Use 'finished', 'unfinished' and
+ 'unresolved' instead of the (!), (?) symbols on printouts.
+
+- QMsDev
+ merge "Add UIC" and "New Dialog". Better user interface and
+ general cleanup. Wwrite (and merge) qmake pro file with active
+ project. Load qmake pro files into Visual Studio.
+
+
diff --git a/dist/changes-3.0.0-beta1 b/dist/changes-3.0.0-beta1
new file mode 100644
index 0000000..2c73e77
--- /dev/null
+++ b/dist/changes-3.0.0-beta1
@@ -0,0 +1,1239 @@
+Qt 3.0 adds a lot of new features and improvements over the Qt 2.x
+series. Some internals have undergone major redesign and new classes
+and methods have been added.
+
+We have tried to keep the API of Qt 3.0 as compatible as possible with
+the Qt 2.x series. For most applications only minor changes will be
+needed to compile and run them successfully using Qt 3.0.
+
+One of the major new features that has been added in the 3.0 release
+is a module allowing you to easily work with databases. The API is
+platform independent and database neutral. This module is seamlessly
+integrated into Qt Designer, greatly simplifying the process of
+building database applications and using data aware widgets.
+
+Other major new features include a component architecture allowing you
+to build cross platform components, 'plugins' with Qt. You can use
+your own and third party plugins your own applications. The Unicode
+support of Qt 2.x has been greatly enhanced, it now includes full
+support for scripts written from right to left (e.g. Arabic and
+Hebrew) and also provides improved support for Asian languages.
+
+Many new classes have been added to the Qt Library. Amongst them are
+classes that provide a docking architecture (QDockArea/QDockWindow), a
+powerful rich text editor (QTextEdit), a class to store and access
+application settings (QSettings) and a class to create and communicate
+with processes (QProcess).
+
+Apart from the changes in the library itself a lot has been done to
+make the development of Qt applications with Qt 3.0 even easier than
+before. Two new applications have been added: Qt Linguist is a tool to
+help you translate your application into different languages; Qt
+Assistant is an easy to use help browser for the Qt documentation that
+supports bookmarks and can search by keyword.
+
+Another change concerns the Qt build system, which has been reworked
+to make it a lot easier to port Qt to new platforms. You can use this
+platform independent build system for your own applications.
+
+
+The Qt Library
+========================================
+
+A large number of new features has been added to Qt 3.0. The following
+list gives an overview of the most important new and changed aspects
+of the Qt library. A full list of every new method follows the
+overview.
+
+
+Database support
+----------------
+
+One of the major new features in Qt 3.0 is the SQL module that
+provides cross-platform access to SQL databases, making database
+application programming with Qt seamless and portable. The API, built
+with standard SQL, is database-neutral and software development is
+independent of the underlying database.
+
+A collection of tightly focused C++ classes are provided to give the
+programmer direct access to SQL databases. Developers can send raw SQL
+to the database server or have the Qt SQL classes generate SQL queries
+automatically. Drivers for Oracle, PostgreSQL, MySQL and ODBC are
+available and writing new drivers is straightforward.
+
+Tying the results of SQL queries to GUI components is fully supported
+by Qt's SQL widgets. These classes include a tabular data widget
+(for spreadsheet-like data presentation with in-place editing), a
+form-based data browser (which provides data navigation and edit
+functions) and a form-based data viewer (which provides read-only
+forms). This framework can be extended by using custom field editors,
+allowing for example, a data table to use custom widgets for in-place
+editing. The SQL module fully supports Qt's signal/slots mechanism,
+making it easy for developers to include their own data validation and
+auditing code.
+
+Qt Designer fully supports Qt's SQL module. All SQL widgets can be
+laid out within Qt Designer, and relationships can be established
+between controls visually. Many interactions can be defined purely in
+terms of Qt's signals/slots mechanism directly in Qt Designer.
+
+
+Component model - plugins
+-------------------------
+
+The QLibrary class provides a platform independent wrapper for runtime
+loading of shared libraries. Access to the shared libraries uses a
+COM-like interface. QPluginManager makes it trivial to implement
+plugin support in applications. The Qt library is able to load
+additional styles, database drivers and text codecs from plugins which
+implement the relevant interfaces, e.g. QStyleFactoryInterface,
+QSqlDriverInterface or QTextCodecInterface. It is possible to remove
+unused components from the Qt library, and easy to extend any
+application with 3rd party styles, database drivers or text codecs.
+
+Qt Designer supports custom widgets in plugins, and will use the
+widgets both when designing and previewing forms.
+
+QComponentFactory makes it easy to register any kind of component in a
+global database (e.g. the Windows Registry) and to use any registered
+component.
+
+
+Rich text engine and editor
+---------------------------
+
+The rich text engine originally introduced in Qt 2.0 has been further
+optimized and extended to support editing. It allows editing formatted
+text with different fonts, colors, paragraph styles, tables and
+images. The editor supports different word wrap modes, command-based
+undo/redo, multiple selections, drag and drop, and many other
+features. The engine is highly optimized for proccesing and displaying
+large documents quickly and efficiently.
+
+
+Unicode
+-------
+
+Apart from the rich text engine, another new feature of Qt 3.0 that
+relates to text handling is the greatly improved Unicode support. Qt
+3.0 includes an implementation of the bidirectional algorithm (BiDi)
+as defined in the Unicode standard and a shaping engine for Arabic,
+which gives full native language support to Arabic and Hebrew speaking
+people. At the same time the support for Asian languages has been
+greatly enhanced.
+
+The support is almost transparent for the developer using Qt to
+develop their applications. This means that developers who developed
+applications using Qt 2.x will automatically gain the full support for
+these languages when switching to Qt 3.0. Developers can rely on their
+application to work for people using writing systems different from
+Latin1, without having to worry about the complexities involved with
+these scripts, as Qt takes care of this automatically.
+
+
+Docked and Floating Windows
+---------------------------
+
+Qt 3.0 introduces the concept of Dock Windows and Dock Areas. Dock
+windows are widgets, that can be attached to, and detached from, dock
+areas. The commonest kind of dock window is a tool bar. Any number of
+dock windows may be placed in a dock area. A main window can have dock
+areas, for example, QMainWindow provides four dock areas (top, left,
+bottom, right) by default. The user can freely move dock windows and
+place them at a convenient place in a dock area, or drag them out of
+the application and have them float freely as top level windows in
+their own right. Dock windows can also be minimized or hidden.
+
+For developers, dock windows behave just like ordinary widgets. QToolbar
+for example is now a specialized subclass of a dock window. The API
+of QMainWindow and QToolBar is source compatible with Qt 2.x, so
+existing code which uses these classes will continue to work.
+
+
+Regular Expressions
+-------------------
+
+Qt has always provided regular expression support, but that support
+was pretty much limited to what was required in common GUI control
+elements such as file dialogs. Qt 3.0 introduces a new regular
+expression engine that supports most of Perl's regex features and is
+Unicode based. The most useful additions are support for parentheses
+(capturing and non-capturing) and backreferences.
+
+
+Storing application settings
+----------------------------
+
+Most programs will need to store some settings between runs, for
+example, user selected fonts, colors and other preferences, or a list
+of recently used files. The new QSettings class provides a platform
+independent way to achieve this goal. The API makes it easy to store
+and retrieve most of the basic data types used in Qt (such as basic
+C++ types, strings, lists, colors, etc). The class uses the registry
+on the Windows platform and traditional resource files on Unix.
+
+
+Creating and controlling other processes
+----------------------------------------
+
+QProcess is a class that allows you to start other programs from
+within a Qt application in a platform independent manner. It gives you
+full control over the started program, for example you can redirect
+the input and output of console applications.
+
+
+Accessibility (not part of the beta1 release)
+---------------------------------------------
+
+Accessibility means making software usable and accessible to a wide
+range of users, including those with disabilities. In Qt 3.0, most
+widgets provide accessibility information for assistive tools that can
+be used by a wide range of disabled users. Qt standard widgets like
+buttons or range controls are fully supported. Support for complex
+widgets, like e.g. QListView, is in development. Existing applications
+that make use of standard widgets will become accessible just by using
+Qt 3.0.
+
+Qt uses the Active Accessibility infrastructure on Windows, and needs
+the MSAA SDK, which is part of most platform SDKs. With improving
+standardization of accessibility on other platforms, Qt will support
+assistive technologies on other systems, too.
+
+The accessibility API in Qt is not yet stable, which is why we decided
+not to make it a part of the beta1 release.
+
+
+XML Improvements
+----------------
+
+The XML framework introduced in Qt 2.2 has been vastly improved. Qt
+2.2 already supported level 1 of the Document Object Model (DOM), a
+W3C standard for accessing and modifying XML documents. Qt 3.0 has
+added support for DOM Level 2 and XML namespaces.
+
+The XML parser has been extended to allow incremental parsing of XML
+documents. This allows you to start parsing the document directly
+after the first parts of the data have arrived, and to continue
+whenever new data is available. This is especially useful if the XML
+document is read from a slow source, e.g. over the network, as it
+allows the application to start working on the data at a very early
+stage.
+
+
+SVG support
+-----------
+
+SVG is a W3C standard for "Scalable Vector Graphics". Qt 3.0's SVG
+support means that QPicture can optionally generate and import static
+SVG documents. All the SVG features that have an equivalent in
+QPainter are supported.
+
+
+Multihead support
+-----------------
+
+Many professional applications, such as DTP and CAD software, are able
+to display data on two or more monitors. In Qt 3.0 the QDesktopWidget
+class provides the application with runtime information about the
+number and geometry of the desktops on the different monitors and such
+allows applications to efficiently use a multi-monitor setup.
+
+The virtual desktop of Windows 98 and 2000 is supported, as well as
+the traditional multi-screen and the newer Xinerama multihead setups
+on X11.
+
+
+X11 specific enhancements
+-------------------------
+
+Qt 3.0 now complies with the NET WM Specification, recently adopted
+by KDE 2.0. This allows easy integration and proper execution with
+desktop environments that support the NET WM specification.
+
+The font handling on X11 has undergone major changes. QFont no longer
+has a one-to-one relation with window system fonts. QFont is now a
+logical font that can load multiple window system fonts to simplify
+Unicode text display. This completely removes the burden of
+changing/setting fonts for a specific locale/language from the
+programmer. For end-users, any font can be used in any locale. For
+example, a user in Norway will be able to see Korean text without
+having to set their locale to Korean.
+
+Qt 3.0 also supports the new render extension recently added to
+XFree86. This adds support for anti aliased text and pixmaps with
+alpha channel (semi transparency) on the systems that support the
+rendering extension (at the moment XFree 4.0.3 and later).
+
+
+Printing
+--------
+
+Printing support has been enhanced on all platforms. The QPrinter
+class now supports setting a virtual resolution for the painting
+process. This makes WYSIWYG printing trivial, and also allows you to
+take full advantage of the high resolution of a printer when painting
+on it.
+
+The postscript driver built into Qt and used on Unix has been greatly
+enhanced. It supports the embedding of true/open type and type1 fonts
+into the document, and can correctly handle and display Unicode.
+Support for fonts built into the printer has been enhanced and Qt now
+knows about the most common printer fonts used for Asian languages.
+
+
+QHttp
+-----
+
+This class provides a simple interface for HTTP downloads and uploads.
+
+
+Compatibility with the Standard Template Library (STL)
+------------------------------------------------------
+
+Support for the C++ Standard Template Library has been added to the Qt
+Template Library (QTL). The QTL classes now contain appropriate copy
+constructors and typedefs so that they can be freely mixed with other
+STL containers and algorithms. In addition, new member functions have
+been added to QTL template classes which correspond to STL-style
+naming conventions (e.g., push_back()).
+
+
+Qt Designer
+========================================
+
+Qt Designer was a pure dialog editor in Qt 2.2 but has now been
+extended to provide the full functionality of a GUI design tool.
+
+This includes the ability to lay out main windows with menus and
+toolbars. Actions can be edited within Qt Designer and then plugged
+into toolbars and menu bars via drag and drop. Splitters can now be
+used in a way similar to layouts to group widgets horizontally or
+vertically.
+
+In Qt 2.2, many of the dialogs created by Qt Designer had to be
+subclassed to implement functionality beyond the predefined signal and
+slot connections. Whilst the subclassing approach is still fully supported,
+Qt Designer now offers an alternative: a plugin for editing
+slots. The editor offers features such as syntax highlighting,
+completion, parentheses matching and incremental search.
+
+The functionality of Qt Designer can now be extended via plugins.
+Using Qt Designer's interface or by implementing one of the provided
+interfaces in a plugin, a two way communication between plugin and Qt
+Designer can be established. This functionality is used to implement
+plugins for custom widgets, so that they can be used as real widgets
+inside the designer.
+
+Basic support for project management has been added. This allows you
+to read and edit *.pro files, add and remove files to/from the project
+and do some global operations on the project. You can now open the
+project file and have one-click access to all the *.ui forms in the
+project.
+
+In addition to generating code via uic, Qt Designer now supports the
+dynamic creation of widgets directly from XML user interface
+description files (*.ui files) at runtime. This eliminates the need of
+recompiling your application when the GUI changes, and could be used
+to enable your customers to do their own customizations. Technically,
+the feature is provided by a new class, QWidgetFactory in the
+QResource library.
+
+
+Qt Linguist
+========================================
+
+Qt Linguist is a GUI utility to support translating the user-visible
+text in applications written with Qt. It comes with two command-line
+tools: lupdate and lrelease.
+
+Translation of a Qt application is a three-step process:
+
+ 1) Run lupdate to extract user-visible text from the C++ source
+ code of the Qt application, resulting in a translation source file
+ (a *.ts file).
+ 2) Provide translations for the source texts in the *.ts file using
+ Qt Linguist.
+ 3) Run lrelease to obtain a light-weight message file (a *.qm file)
+ from the *.ts file, which provides very fast lookup for released
+ applications.
+
+Qt Linguist is a tool suitable for use by translators. Each
+user-visible (source) text is characterized by the text itself, a
+context (usually the name of the C++ class containing the text), and
+an optional comment to help the translator. The C++ class name will
+usually be the name of the relevant dialog, and the comment will often
+contain instructions that describe how to navigate to the relevant
+dialog.
+
+You can create phrase books for Qt Linguist to provide common
+translations to help ensure consistency and to speed up the
+translation process. Whenever a translator navigates to a new text to
+translate, Qt Linguist uses an intelligent algorithm to provide a list
+of possible translations: the list is composed of relevant text from
+any open phrase books and also from identical or similar text that has
+already been translated.
+
+Once a translation is complete it can be marked as "done"; such
+translations are included in the *.qm file. Text that has not been
+"done" is included in the *.qm file in its original form. Although Qt
+Linguist is a GUI application with dock windows and mouse control,
+toolbars, etc., it has a full set of keyboard shortcuts to make
+translation as fast and efficient as possible.
+
+When the Qt application that you're developing evolves (e.g. from
+version 1.0 to version 1.1), the utility lupdate merges the source
+texts from the new version with the previous translation source file,
+reusing existing translations. In some typical cases, lupdate may
+suggest translations. These translations are marked as unfinished, so
+you can easily find and check them.
+
+
+Qt Assistant
+========================================
+
+Due to the positive feedback we received about the help system built
+into Qt Designer, we decided to offer this part as a separate
+application called Qt Assistant. Qt Assistant can be used to browse
+the Qt class documentation as well as the manuals for Qt Designer and
+Qt Linguist. It offers index searching, a contents overview, bookmarks
+history and incremental search. Qt Assistant is used by both Qt
+Designer and Qt Linguist for browsing their help documentation.
+
+
+QMake
+========================================
+
+To ease portability we now provide the qmake utility to replace tmake.
+QMake is a C++ version of tmake which offers additional functionallity
+that is difficult to reproduce in tmake. Trolltech uses qmake in its
+build system for Qt and related products and we have released it as
+free software.
+
+
+Qt Functions
+========================================
+
+QAction
+-------
+
+All new functions:
+ void addedTo( QWidget *actionWidget, QWidget *container );
+ void addedTo( int index, QPopupMenu *menu );
+
+QActionGroup
+------------
+
+New mode "uses drop down", where members are shown in a separate
+subwidget such as a combobox or a submenu (enable with
+setUsesDropDown(TRUE) )
+
+All new functions:
+ void add(QAction*);
+ void addSeparator();
+ void addedTo( QWidget *actionWidget, QWidget *container, QAction *a );
+ void addedTo( int index, QPopupMenu *menu, QAction *a );
+ void setUsesDropDown( bool enable );
+ bool usesDropDown() const;
+
+
+QApplication
+------------
+
+Added the setStyle(const QString&) overload that takes the name of the
+style as its argument. This loads a style plugin via a QStyleFactory.
+
+desktop() now returns a QDesktopWidget that provides access to
+multi-head information. Prior to 3.0, it returned a normal QWidget.
+
+New functions to define the library search path for plugins
+(setLibraryPaths, ...).
+
+New functions to define reverse layout for bidirectional languages
+(setReverseLayout, ...).
+
+All new functions:
+ bool hasPendingEvents()
+
+ void setLibraryPaths(const QStringList &);
+ QStringList libraryPaths();
+ void addLibraryPath(const QString &);
+ void removeLibraryPath(const QString &);
+
+ void setReverseLayout( bool b );
+ bool reverseLayout();
+ int horizontalAlignment( int align );
+
+
+
+QClipboard
+----------
+
+On systems that support it, for example X11, QClipboard now
+differentiates between the primary selection and the data in the clipboard.
+
+All new functions:
+ bool supportsSelection() const;
+ bool ownsClipboard() const;
+ void setSelectionMode(bool enable);
+ bool selectionModeEnabled() const;
+New signals:
+ void selectionChanged()
+
+
+
+QCursor
+-------
+
+Now inherits Qt namespace. Enum values like ArrowCursor,
+UpArrowCursor, CrossCursor etc. are now part of that namespace.
+
+
+QDataStream
+-----------
+
+Added missing operators for Q_LONG and Q_ULONG
+
+
+QDateTime / QDate / QTime
+-------------------------
+
+More sophisticated toString() function that takes a DateFormat, where
+DateFormat can be either TextDate (the default), ISODate (ISO 8601) or
+LocalDate (locale dependent).
+
+All new functions:
+ QDate addMonths( int months ) const;
+ QDate addYears( int years ) const;
+ QDate fromString( const QString& s, Qt::DateFormat f = Qt::TextDate );
+ static QString shortMonthName( int month );
+ static QString longMonthName( int month );
+ static QString shortDayName( int weekday );
+ static QString longDayName( int weekday );
+ static void setShortMonthNames( const QStringList& names );
+ static void setLongMonthNames( const QStringList& names );
+ static void setShortDayNames( const QStringList& names );
+ static void setLongDayNames( const QStringList& names );
+
+QDialog
+-------
+
+Merged with QSemiModal. Calling show() on a modal dialog will return
+immediately, not enter a local event loop. Showing a modal dialog in
+its own event loop is achieved using exec().
+
+exec() is now a public slot.
+
+Usability: For widgets supporting What's This help, QDialog
+automatically offers a context menu containing a "What's This?" entry.
+
+
+QEvent
+------
+
+Mouse events are now propagated up to the toplevel widget if no widget
+accepts them and no event filter filters them out. In previous Qt
+versions, only key events were propagated.
+
+All events carry a flag 'spontaneous' to determine whether the even
+came from the outside or was generated by code within the
+applications. Previously, only show and hide events had this flag.
+
+Enter/Leave event generation has been fixed. Previously, a widget
+received a leave event when the mouse pointer entered one of its
+children. This was both unnatural and contradictive to the
+documentation.
+
+QWheelevent now carries an orientation to differentiate between
+horizontal and vertical wheels.
+
+QFocusEvent: new reason 'Backtab' (previously only 'Tab' was
+available). This makes it possible to discover from what direction on
+the tab-focus chain the widget was entered.
+
+New events: QContextMenuEvent, QIMEvent
+
+
+QFile
+-----
+
+Ported from int to Q_LONG to prepare for large file sizes on 64 bit
+systems.
+
+Filter handling made more flexible.
+
+
+QFileDialog
+-----------
+
+All new Functions:
+ void setSelectedFilter( const QString& );
+ void setSelectedFilter( int );
+New signals:
+ void filesSelected( const QStringList& );
+ void filterSelected( const QString& );
+
+If you try to specify an invalid file when using getOpenFileName(s), an error message
+will appear and the file will not be accepted. In 2.x, this function behaved differently
+because users were using getOpenFileName(s) as a Save File Dialog; you should use
+getSaveFileName() when you require a Save File Dialog.
+
+
+QCanvas Module
+--------------
+
+ New classes:
+ QCanvasSpline - a multi-bezier spline
+
+ QCanvasItemList
+ void update();
+
+ QCanvas:
+ QRect rect() const;
+ void setUnchanged( const QRect& area );
+ void drawArea(const QRect&, QPainter* p, bool double_buffer);
+ void drawViewArea( QCanvasView* view, QPainter* p, const QRect& r, bool dbuf );
+ QRect changeBounds(const QRect& inarea);
+
+ QCanvasView:
+ const QWMatrix &worldMatrix() const;
+ const QWMatrix &inverseWorldMatrix() const;
+ void setWorldMatrix( const QWMatrix & );
+ QCanvasSprite:
+ int leftEdge() const;
+ int topEdge() const;
+ int rightEdge() const;
+ int bottomEdge() const;
+ int leftEdge(int nx) const;
+ int topEdge(int ny) const;
+ int rightEdge(int nx) const;
+ int bottomEdge(int ny) const;
+
+QCanvasSprite can now be set to animate its frames without the need to
+subclass.
+
+
+QFont, QFontDatabase, QFontInfo, QFontMetrics
+---------------------------------------------
+
+The QFont::CharSet enum has been removed and replaced with the
+QFont::Script enum. With this change, a QFont is not associated with a
+specific character set. Instead, QFont uses Unicode Scripts for
+loading fonts. On platforms where most fonts do not use the Unicode
+encoding (currently only X11), multiple locale and character-set
+dependent fonts can be loaded for the individual Unicode Scripts.
+
+Another new feature of QFont is a much more flexible substitution
+mechanism. Each family can have a list of appropriate substitutes. The
+font substitution feature allows you to specify a list of substitute
+fonts. Substitute fonts are used when a font cannot be loaded, or if
+the specified font doesn't have a particular character (X11 only).
+
+For example (on X11), you select the font Lucida, which doesn't have
+Korean characters. For Korean text, you want to use the Mincho font
+family. By adding Mincho to the list, any Korean characters not found
+in Lucida will be used from Mincho. Because the font substitutions are
+lists, you can also select multiple families, such as Song Ti (for use
+with Chinese text).
+
+QFontInfo and QFontMetrics had small API changes related to the
+disappearance of QFont::CharSet. In terms of functionality, the
+behavior of these classes is unchanged.
+
+QFontDatabase had several API cleanups related to the disappearance of
+QFont::CharSet. Most QFontDatabase member functions take one less
+argument, yet compatibility functions still exist to keep old source
+code working.
+
+Family and style names returned from QFontDatabase are now processed
+and formatted in a way that is suitable for display to users. Family
+and foundry names are capitalized and foundry names are enclosed in
+square brackets after the family name. For example, the Helvetica
+font family might have 3 different foundries: Adobe, Cronyx and
+Phaisarn. In 2.x, QFontDatabase listed them like this:
+
+ adobe-helvetica
+ cronyx-helvetica
+ phaisarn-helvetica
+
+Starting with 3.0, QFontDatabase lists them like this:
+
+ Helvetica [Adobe]
+ Helvetica [Cronyx]
+ Helvetica [Phaisarn]
+
+
+QFrame
+------
+
+Two new frame shapes for more sophisticated style features:
+MenuBarPanel and ToolBarPanel.
+
+
+QGrid
+-----
+
+The member type
+
+ enum Direction { Horizontal, Vertical };
+
+has been eliminated, as it is redundant: use Qt::Orientation instead.
+Old code referring to QGrid::Horizontal or QGrid::Vertical will still
+work, as QGrid counts Qt among its ancestors.
+
+
+QGroupBox
+---------
+
+More functionality of the built-in layout is exposed:
+
+ int insideMargin() const;
+ int insideSpacing() const;
+ void setInsideMargin( int m );
+ void setInsideSpacing( int s );
+
+
+QHeader
+-------
+
+New property: bool stretching
+
+New functions:
+ bool isStretchEnabled( int section );
+ void setStretchEnabled( bool b, int section );
+
+
+QIconSet
+--------
+
+In addition to the mode - which can be either Normal, Disabled or
+Active - QIconSet now supports different pixmaps for a state, i.e. On
+or Off. The functions pixmap() and setPixmap() have been extended
+accordingly.
+
+The default constructor no longer initializes the iconset to
+contain a null pixmap. QIconSet::isNull() returns TRUE for un-
+initialized iconsets, and pixmap() still returns a null pixmap for
+pixmaps that couldn't be generated.
+
+
+QIconView
+---------
+
+Extended findItem() to support ComparisonFlags. Support for
+soft-hyphens when doing word wrap.
+
+New signal:
+ contextMenuRequested( QIconViewItem*, const QPoint& pos);
+
+
+QIconViewItem
+-------------
+
+Added support for explicit rtti.
+
+New function:
+ int rtti() const;
+
+
+
+QListBox
+--------
+
+Extended findItem() to support ComparisonFlags.
+
+New signal:
+ void contextMenu( QListBoxItem *, const QPoint & );
+
+
+QListBoxItem
+------------
+
+Added support for explicit rtti.
+
+New function:
+ int rtti() const;
+
+
+
+QListView
+---------
+
+It was never really hard to implement drag and drop with QListView,
+but since many applications demand this functionality today, we
+decided to add it to the listview itself.
+
+In addition, in-place editing and per-item tooltips have been added.
+Extended findItem() to support ComparisonFlags
+
+New properties:
+ bool showToolTips
+ ResizeMode resizeMode
+
+New signals:
+ contextMenuRequested( QIconViewItem*, const QPoint& pos);
+ void dropped( QDropEvent *e );
+ void itemRenamed( QListViewItem *item, int col, const QString & );
+ void itemRenamed( QListViewItem *item, int col );
+
+New functions:
+ void setResizeMode( ResizeMode m );
+ ResizeMode resizeMode() const;
+ QDragObject *dragObject();
+ void startDrag();
+ void startRename();
+
+
+QListViewItem
+-------------
+
+Added support for explicit rtti.
+
+New functions:
+ void setDragEnabled( bool allow );
+ void setDropEnabled( bool allow );
+ bool dragEnabled() const;
+ bool dropEnabled() const;
+ bool acceptDrop( const QMimeSource *mime ) const;
+ void setVisible( bool b );
+ bool isVisible() const;
+ void setRenameEnabled( int col, bool b );
+ bool renameEnabled( int col ) const;
+ void startRename( int col );
+ void setEnabled( bool b );
+ bool isEnabled() const;
+ int rtti() const;
+
+ void dropped( QDropEvent *e );
+ void dragEntered();
+ void dragLeft();
+ void okRename( int col );
+ void cancelRename( int col );
+
+
+QLabel
+------
+
+In addition to text, rich text, pixmaps and movies, QLabel can now
+display QPicture vector graphics.
+
+New functions:
+
+ QPicture *picture() const;
+ void setPicture( const QPicture & );
+
+
+QLineEdit
+---------
+
+New property: bool dragEnabled
+
+New signal:
+ contextMenuRequested( QIconViewItem*, const QPoint& pos);
+
+New functions:
+ void cursorForward( bool mark, int steps = 1 );
+ void cursorBackward( bool mark, int steps = 1 );
+ void cursorWordForward( bool mark );
+ void cursorWordBackward( bool mark );
+ bool dragEnabled();
+ void setDragEnabled( bool b );
+
+
+QMainWindow
+-----------
+
+Added a dock window architecture. Previous versions of QMainWindow
+could only deal with toolbars, now they handle generalized dock
+windows. QToolBar inherits QDockWindow.
+
+
+New property:
+ bool dockWindowsMovable;
+
+New signals:
+ void dockWindowPositionChanged( QDockWindow * );
+
+New functions:
+ void setDockEnabled( Dock dock, bool enable );
+ bool isDockEnabled( Dock dock ) const;
+ bool isDockEnabled( QDockArea *area ) const;
+ void setDockEnabled( QDockWindow *tb, Dock dock, bool enable );
+ bool isDockEnabled( QDockWindow *tb, Dock dock ) const;
+ bool isDockEnabled( QDockWindow *tb, QDockArea *area ) const;
+
+ void addDockWindow( QDockWindow *, Dock = Top, bool newLine = FALSE );
+ void addDockWindow( QDockWindow *, const QString &label, Dock = Top, bool newLine = FALSE );
+ void moveDockWindow( QDockWindow *, Dock = Top );
+ void moveDockWindow( QDockWindow *, Dock, bool nl, int index, int extraOffset = -1 );
+ void removeDockWindow( QDockWindow * );
+
+ QDockArea *dockingArea( const QPoint &p );
+ QDockArea *leftDock() const;
+ QDockArea *rightDock() const;
+ QDockArea *topDock() const;
+ QDockArea *bottomDock() const;
+
+ bool isCustomizable() const;
+ bool appropriate( QDockWindow *dw ) const;
+ QPopupMenu *createDockWindowMenu( DockWindows dockWindows = AllDockWindows ) const;
+
+ bool showDockMenu( const QPoint &globalPos );
+
+
+QMetaObject
+-----------
+
+###TODO
+
+
+QMimeSourceFactory
+------------------
+
+New static functions:
+ QMimeSourceFactory* takeDefaultFactory();
+ static void addFactory( QMimeSourceFactory *f );
+
+
+QNetworkProtocol
+----------------
+
+Spelling fix in Error::ErrListChildren enum.
+
+
+QRegExp
+-------
+
+QRegExp now has a more complete regular expression engine similar to
+Perl's, with full Unicode and backreference support.
+
+New functions:
+ bool minimal() const;
+ void setMinimal( bool minimal );
+ bool exactMatch( const QString& str );
+ bool exactMatch( const QString& str ) const;
+ int search( const QString& str, int start = 0 );
+ int search( const QString& str, int start = 0 ) const;
+ int searchRev( const QString& str, int start = -1 );
+ int searchRev( const QString& str, int start = -1 ) const;
+ int matchedLength();
+ QStringList capturedTexts();
+ QString cap( int nth = 0 );
+ int pos( int nth = 0 );
+
+
+QSessionManager
+---------------
+
+Renamed the misnamed setProperty() overloads to setManagerProperty()
+to resolve the conflict with the now virtual QObject::setProperty().
+
+
+QString
+-------
+
+New functions:
+ bool endsWith( const QString & );
+ int similarityWith( const QString & );
+
+### TODO
+
+QStyle
+------
+
+### TODO
+
+QTabBar
+-------
+
+The extended QTabWidget support in Qt Designer made two more
+functions handy to have:
+ QTab * tabAt( int ) const;
+ int indexOf( int ) const;
+
+
+
+QToolBar
+--------
+
+Inherits QDockWindow now, previously only QWidget.
+
+
+QToolButton
+-----------
+
+New property:
+ QIconSet iconSet
+
+New functions:
+ QIconSet iconSet() const;
+ virtual void setIconSet( const QIconSet & );
+
+QWidget
+-------
+
+New functions:
+
+ const QColor & eraseColor() const;
+ virtual void setEraseColor( const QColor & );
+ const QPixmap * erasePixmap() const;
+ virtual void setErasePixmap( const QPixmap & );
+
+
+
+QWizard
+-------
+
+New property: QString titleFont
+
+New functions:
+ QFont titleFont() const;
+ void setTitleFont( const QFont & );
+ int indexOf( QWidget* ) const;
+
+
+QWMatrix
+--------
+
+New function:
+ bool isIdentity() const;
+
+
+QGL Module
+----------
+
+QGLWidget
+New functions:
+ QGLFormat requestedFormat() const;
+ QImage grabFrameBuffer( bool withAlpha = FALSE );
+
+
+QWorkspace Module
+-----------------
+
+A new property scrollBarsEnabled makes it possible to add on-demand
+scrollbars to the workspace. We define this property in Qt Designer to
+make designing forms larger than the available space on the desktop
+more comfortable.
+
+New property:
+ bool scrollBarsEnabled
+
+
+QXML Module
+-----------
+Many new functions have been added:
+ QDomImplementation
+ QDomDocumentType createDocumentType( const QString& qName, const QString& publicId, const QString& systemId );
+ QDomDocument createDocument( const QString& nsURI, const QString& qName, const QDomDocumentType& doctype );
+ QDomNode
+ QDomNode insertBefore( const QDomNode& newChild, const QDomNode& refChild );
+ QDomNode insertAfter( const QDomNode& newChild, const QDomNode& refChild );
+ QDomNode replaceChild( const QDomNode& newChild, const QDomNode& oldChild );
+ QDomNode removeChild( const QDomNode& oldChild );
+ QDomNode appendChild( const QDomNode& newChild );
+ bool hasChildNodes() const;
+ QDomNode cloneNode( bool deep = TRUE ) const;
+ void normalize();
+ bool isSupported( const QString& feature, const QString& version ) const;
+ QString namespaceURI() const;
+ QString localName() const;
+ bool hasAttributes() const;
+ QDomDocument
+ bool setContent( const QCString& text, bool namespaceProcessing=FALSE );
+ bool setContent( const QByteArray& text, bool namespaceProcessing=FALSE );
+ bool setContent( const QString& text, bool namespaceProcessing=FALSE );
+ bool setContent( QIODevice* dev, bool namespaceProcessing=FALSE );
+ QDomNamedNodeMap
+ QDomNode namedItemNS( const QString& nsURI, const QString& localName ) const;
+ QDomNode setNamedItemNS( const QDomNode& newNode );
+ QDomNode removeNamedItemNS( const QString& nsURI, const QString& localName );
+
+ QDomElement
+ QString attributeNS( const QString nsURI, const QString& localName, const QString& defValue ) const;
+ void setAttributeNS( const QString nsURI, const QString& qName, const QString& value );
+ void setAttributeNS( const QString nsURI, const QString& qName, int value );
+ void setAttributeNS( const QString nsURI, const QString& qName, uint value );
+ void setAttributeNS( const QString nsURI, const QString& qName, double value );
+ void removeAttributeNS( const QString& nsURI, const QString& localName );
+ QDomAttr attributeNodeNS( const QString& nsURI, const QString& localName );
+ QDomAttr setAttributeNodeNS( const QDomAttr& newAttr );
+ QDomNodeList elementsByTagNameNS( const QString& nsURI, const QString& localName ) const;
+ bool hasAttributeNS( const QString& nsURI, const QString& localName ) const;
+
+
+ QXmlAttributes
+ void clear();
+ void append( const QString &qName, const QString &uri, const QString &localPart, const QString &value );
+
+ QXmlInputSource:
+ void setData( const QByteArray& dat );
+ void fetchData();
+ QString data();
+ QChar next();
+ void reset();
+ QString fromRawData( const QByteArray &data, bool beginning = FALSE );
+
+ QXmlSimpleReader:
+ bool parse( const QXmlInputSource& input, bool incremental );
+ bool parseContinue();
+
+ QXmlEntityResolver:
+ bool startEntity( const QString& name );
+ bool endEntity( const QString& name );
+
+
+
+New classes
+-----------
+
+QAquaStyle (only on MacOS X)
+QCleanupHandler
+QComponentFactory
+QComponentFactoryInterface
+QComponentServerInterface
+QContextMenuEvent
+QDesktopWidget
+QDockArea
+QDockWindow
+QErrorMessage
+QFeatureListInterface
+QHttp [network]
+QInterfaceListInterface
+QInterfacePtr
+QIMEvent
+QLibrary
+QLibraryInterface
+QStyleFactory
+QStyleInterface
+QTextCodecInterface
+QUnknownInterface
+QUuid
+QRegExpValidator
+QTextEdit
+
+
+Renamed Classes
+---------------
+
+QArray has been renamed QMemArray
+QCollection has been renamed QPtrCollection
+QList has been renamed QPtrList
+QListIterator has been renamed QPtrListIterator
+QQueue has been renamed QPtrQueue
+QStack has been renamed QPtrStack
+QVector has been renamed QPtrVector
+
+The include file names have changed accordingly (e.g., <qmemarray.h>).
+
+
+New Modules
+-----------
+
+SQL
+ QDataBrowser
+ QDataTable
+ QDataView
+ QDateTimeEdit
+ QEditFactory
+
+
+Obsolete classes
+----------------
+
+ QSemiModal, use QDialog instead.
+ QMultiLineEdit, use QTextEdit instead.
+ QTableView, use QScrollView or QTable instead.
+ QAsyncIO, QDataSink, QDataSource, QDataPump and QIODeviceSource
+
+
+Obsolete functions
+------------------
+ QActionGroup::insert( QAction * ), use QActionGroup::add( QAction* ) instead.
+ QApplication::setWinStyleHighlightColor( const QColor &c ), use setPalette() instead
+ QApplication::winStyleHighlightColor(), use palette() instead
+ QDir::encodedEntryList( int filterSpec, int sortSpec ), use QDir::entryList() instead
+ QDir::encodedEntryList( const QString &nameFilter, int filterSpec, int sortSpec ), use QDir::entryList() instead
+ QMainWindow::addToolBar( QDockWindow *, Dock = Top, bool newLine = FALSE );
+ QMainWindow::addToolBar( QDockWindow *, const QString &label, Dock = Top, bool newLine = FALSE );
+ QMainWindow::moveToolBar( QDockWindow *, Dock = Top );
+ QMainWindow::moveToolBar( QDockWindow *, Dock, bool nl, int index, int extraOffset = -1 );
+ QMainWindow::removeToolBar( QDockWindow * );
+ QMainWindow::toolBarsMovable() const;
+ QMainWindow::toolBars( Dock dock ) const;
+ QMainWindow::lineUpToolBars( bool keepNewLines = FALSE );
+ QRegExp::match( const QString& str, int index = 0, int *len = 0,
+ bool indexIsStart = TRUE );
+ QToolButton::setOnIconSet( const QIconSet & )
+ QToolButton::setOffIconSet( const QIconSet & )
+ QToolButton::onIconSet() const
+ QToolButton::offIconSet() const
+ QToolButton::setIconSet( const QIconSet & set, bool on )
+ QToolButton::iconSet( bool on ) const
+ QXmlInputSource::QXmlInputSource( QFile& file ), use QXmlInputSource( QIODevice *dev ) instead.
+ QXmlInputSource::QXmlInputSource( QTextStream& stream ), use QXmlInputSource( QIODevice *dev ) instead.
+
+Removed functions:
+ QWidget::setFontPropagation
+ QWidget::setPalettePropagation
+ QMenuBar::setActItem
+ QMenuBar::setWindowsAltMode
+ QCheckListItem::paintBranches
+ QString::visual
+ QString::basicDirection
+ QRegExp::find( const QString& str, int index ) const; - has been renamed QRegExp::search()
+ QFont::charSet() const, not needed anymore
+ QFont::setCharSet( QFont::CharSet ), not needed anymore
+ QPushButton::upButton(), not relevant anymore
+ QPushButton::downButton(), not relevant anymore
+ QSpinBox::upButton(), not relevant anymore
+ QSpinBox::downButton(), not relevant anymore
+
+
+Removed preprocessor directives
+-------------------------------
+
+ qcstring.h no longer contains the following defines:
+
+ #define strlen qstrlen
+ #define strcpy qstrcpy
+ #define strcmp qstrcmp
+ #define strncmp qstrncmp
+ #define stricmp qstricmp
+ #define strnicmp qstrnicmp
+
+ These directives were meant to automagically replace calls to the
+ above listed standard C functions with the equivalent Qt wrappers.
+ The latter pre-check the input parameters for null pointers as those
+ might cause crashes on some platforms.
+
+ Although convenient, this trick turned out to sometimes conflict with
+ third-party code, or, simply be nullified by standard system and
+ library headers depending on version and include order.
+
+ The name of some debugging macro variables has been changed.
+
+ DEBUG becomes QT_DEBUG
+ NO_DEBUG becomes QT_NO_DEBUG
+ NO_CHECK becomes QT_NO_CHECK
+ CHECK_STATE becomes QT_CHECK_STATE
+ CHECK_RANGE becomes QT_CHECK_RANGE
+ CHECK_NULL becomes QT_CHECK_NULL
+ CHECK_MATH becomes QT_CHECK_MATH
+
+ The name of some other debugging macro functions has also been changed
+ but source compatibility should not be affected if the macro variable
+ QT_CLEAN_NAMESPACE is not defined:
+
+ ASSERT becomes Q_ASSERT
+ CHECK_PTR becomes Q_CHECK_PTR
+
+ For the record these undocumented macro variables that are not part of
+ the API have been changed:
+
+ _OS_*_ becomes Q_OS_*
+ _WS_*_ becomes Q_WS_*
+ _CC_*_ becomes Q_CC_*
+
+
+[Qt 3.0]
+
diff --git a/dist/changes-3.0.0-beta2 b/dist/changes-3.0.0-beta2
new file mode 100644
index 0000000..0d55b12
--- /dev/null
+++ b/dist/changes-3.0.0-beta2
@@ -0,0 +1,363 @@
+Qt 3.0 Beta2 is not binary compatible with Beta1, this means that any
+programs linked with Beta1 must be recompiled.
+
+Below you'll find a description of general changes in the Qt Library
+and Qt Designer followed by a detailed list of changes in the
+programming API.
+
+
+The Qt Library
+========================================
+
+Wacom Tablet Support
+--------------------
+
+Support for Wacom brand tablets has been introduced on Irix and
+Windows. These devices generate a QTabletEvent that can be handled by
+QWidget::tabletEvent(). The QTabletEvent holds information about
+pressure, X and Y tilt, and which device is being used (e.g. stylus or
+eraser). Note: at present, there are known issues with the Windows
+version.
+
+Documentation
+-------------
+
+Overall enhancements including fixed typos and the addition of several
+images and code examples.
+
+QStyle (and derived classes)
+----------------------------
+
+The style API has been completely rewritten in Qt 3.0. The main reason
+for doing this was because it was getting inconsistent, hard to
+maintain and extend. Most of the old 2.x functions have been replaced
+by a small set of more general functions. The new API is:
+
+ - much more consistent
+ - less work have to be done to create custom styles
+ - easier to extend and maintain binary compatibility
+
+The old API relied upon a host of virtual functions that were
+re-implemented in the different styles. These functions were used to
+draw parts of, or entire widgets. The new API uses a small set of more
+general functions. Enumerated values are passed as parameters to these
+functions to specify which parts of a control or widget is to be drawn
+(e.g drawPrimitive( PE_ArrowUp, ...)).
+
+To create custom styles with the new API, simply subclass from the
+preferred base style and re-implement the function that draws the part
+of the widget you want to change. If you for example want to change
+the look of the arrows that are used in QWindowsStyle, subclass from
+it and re-implement the drawPrimitive() function. Your drawPrimitive()
+function may look something like this:
+
+void QMyStyle::drawPrimitive( PrimitiveElement pe, ... )
+{
+ switch( pe ) {
+ case PE_ArrowUp:
+ // draw up arrow
+ break;
+ case PE_ArrowDown:
+ // draw down arrow
+ break;
+ default:
+ // let the base class handle the rest of the drawing
+ QWindowsStyle::drawPrimitive( ... );
+ break;
+ }
+}
+
+For more information about the new style API, please read the QStyle
+documentation.
+
+
+Qt Designer
+========================================
+
+ - Improved indentation algorithm for the code editor.
+ - Allow multiple code editors to be open. This makes copy and paste
+ much easier.
+
+
+Qt Functions
+========================================
+
+QCanvas
+-------
+
+ - QCanvas does not react on windowActivationChange() anymore.
+ - 64 bit cleanup.
+
+QChar
+-----
+
+ - The Unicode character is stored host ordered now. Main advantage is
+ that you can directly cast a QChar array to an array of unsigned shorts.
+
+QCom
+----
+
+ - Introduced QS_OK, QS_FALSE, QE_NOINTERFACE, QE_INVALIDARG and
+ QE_NOIMPL as possible QRESULT return values.
+
+QDate, QTime and QDateTime
+--------------------------
+
+ - New function for outputting free form strings and new DateFormat
+ enum Qt::LocalDate.
+
+New functions:
+ QString toString( const QString& format );
+
+QDir
+----
+
+ - entryInfoList() returns 0 for non-existing directories on Windows
+ as the documentation claims and the Unix version already does.
+ - On Windows, QDir tries a more failsafe way to determine the home
+ directory.
+
+QDom
+----
+
+ - QDomNode::hasChildNodes() now works as documented.
+ - QDomDocument::toString() includes now namespaces in its output.
+ - QDomDocument::QDomDocument() constructor now allows adding children
+ to the document.
+
+QFileDialog
+-----------
+
+ - Various fixes in file type filter and handling of file names and
+ directories.
+
+QEvent
+------
+
+ - New event type DeferredDelete. See QObject changes below.
+
+QGL
+---
+
+ - Fix for Irix in respect of installing colormaps.
+ - Swapped arguments of QGLColormap::setEntries() in order to be able
+ to use a meaningful default argument.
+
+New class:
+ QGLColormap - class for manipulating colormaps in GL index mode.
+
+QGridView
+---------
+
+A new class that provides an abstract base for fixed-size grids.
+
+QIconSet
+--------
+
+New function:
+ void clearGenerated();
+
+QImage
+------
+
+ - Handlers for image formats can be dynamically loaded as a plug-in by
+ using the QImageFormatInterface.
+
+QLabel
+------
+
+ - setIndent() behaves like documented.
+
+QLineEdit
+---------
+
+New function:
+ int characterAt( int xpos, QChar *chr ) const;
+
+QLibrary
+--------
+
+Enabled plug-in loading with static Qt library (Windows).
+
+QMovie
+------
+
+ - Does pixmap caching now. Reduces load e.g. on the X Server in the
+ case of animated gifs.
+
+QObject
+-------
+
+ - Added a deferredDelete() function that will cause the object to
+ delete itself once the event loop is entered again.
+
+ - A second type of destroyed signal - one that passes a pointer to
+ the destroyed object as a parameter - will be emitted in QObject's
+ destructor.
+
+New signal:
+ void destroyed( QObject* obj );
+
+New slot:
+ void deferredDelete();
+
+QPainter
+--------
+
+ - So far clipping had always been done in the device coordinate
+ system. The newly introduced ClipMode allows clipping regions to be
+ set via setClipRect() and setClipRegion() in painter coordinates.
+
+New enum:
+ enum ClipMode { ClipDevice, ClipPainter };
+
+Extended functions:
+ QRegion clipRegion( ClipMode = ClipDevice ) const;
+ void setClipRect( const QRect &, ClipMode = ClipDevice )
+ void setClipRect( int x, int y, int w, int h, ClipMode = ClipDevice );
+ void setClipRegion( const QRegion &, ClipMode = ClipDevice );
+
+QPrintDialog
+------------
+
+ - Allow overriding the default print dialog. This way it's possible
+ to better cope with the variety of existing print systems (API not
+ finalized, yet).
+ - The dialog reads current QPrinter on every invocation now.
+
+New functions:
+ static void setGlobalPrintDialog( QPrintDialog * );
+ virtual bool setupPrinters ( QListView *printers );
+
+QPrinter
+--------
+
+ - X11 version only: Introduced Qt settings switch 'embedFonts' that
+ allows disabling font embedding to reduce size of PostScript output.
+
+QProcess
+--------
+
+ - Added function to retrieve the pid (Unix) or PROCESS_INFORMATION
+ (Windows) from a running process.
+ - Extra parameter for environment settings in start() and launch()
+ functions.
+
+New/extended functions:
+ PID processIdentifier();
+ virtual bool start( QStringList *env=0 );
+ virtual bool launch( const QString& buf, QStringList *env=0 );
+ virtual bool launch( const QByteArray& buf, QStringList *env=0 );
+
+New signal:
+ void launchFinished();
+
+QServerSocket
+-------------
+
+ - Set the SO_REUSEADDR option so that the server can be restarted.
+
+QSocket
+-------
+
+ - Make deletion of QSocket instances safe if it is in response to a
+ signal emitted by the object itself.
+
+SocketDevice
+------------
+
+ - Optional boolean parameter to be able to distinguish between
+ timeout and connection closed by peer when waitForMore() returns.
+
+Extended functions:
+ int waitForMore( int msecs, bool *timeout=0 ) const;
+
+QStyleSheet
+-----------
+
+ - Added helper function that escapes HTML meta-characters.
+
+New function:
+ QString escape( const QString& plain);
+
+QSql
+----
+
+ - The source of the SQL driver plug-ins have been moved to
+ $QTDIR/plugins/src/sqldrivers/.
+ - The postgres driver checks the version number of the server. So there is
+ no need for different drivers: QPSQL6 no longer exists -- use QPSQL7
+ instead.
+ - Postgres driver supports now 3 PostgreSQL back ends: 6.x, 7.0.x and 7.1.x
+ - Better handling of errors coming from the database.
+ - SQL driver for Microsoft SQL Server and Sybase Adaptive Server (TDS).
+ - Added caching for forward-only cursors.
+ - Avoid crashes on the unloading of SQL plugins that occurred on some
+ platforms.
+ - QSqlResults can be forward only to improve performance
+ (QSqlResult::setForwardOnly()).
+ - QSqlDatabase passes the port number to the SQL driver.
+
+QTable
+------
+
+ - No longer calls processEvents() in columnWidthChanged() and
+ rowHeightChanged() in order to avoid any side effects.
+ - Ensure that mousePressEvent doesn't emit contextMenuRequested(),
+ unless it is called from the contextMenu event handler.
+ - For more useful subclassing the new functions listed below have
+ been added.
+
+New functions:
+ bool isEditing() const;
+ EditMode editMode() const;
+ int currEditRow() const;
+ int currEditCol() const;
+
+QTextCodec
+----------
+
+ - Fixes for characters in the 0x80..0xff range.
+
+QTextEdit
+---------
+
+ - The rich text engine has seen many internal improvements and
+ additions to the QTextEdit class.
+
+New functions:
+ virtual void scrollToBottom();
+ virtual void removeSelection( int selNum = 0 );
+ virtual bool getParagraphFormat(...);
+ virtual void insertParagraph( const QString &text, int para );
+ virtual void removeParagraph( int para );
+ virtual void insertAt( const QString &text, int para, int index );
+ QRect paragraphRect( int para ) const;
+ int paragraphAt( const QPoint &pos ) const;
+ int charAt( const QPoint &pos, int *para ) const;
+
+QUrlOperator
+------------
+
+ - More precise error messages.
+
+QWidget
+-------
+
+ - Added a read-only property containing the widget's background brush.
+
+New function:
+ virtual const QBrush& backgroundBrush() const;
+
+QWMatrix
+--------
+
+ - New functions for mapping of geometric elements via matrix
+ multiplication semantics.
+
+New functions:
+ QRect mapRect( const QRect & );
+ QPoint operator * (const QPoint & ) const;
+ QRegion operator * (const QRect & ) const;
+ QRegion operator * (const QRegion & ) const;
+ QPointArray operator * ( const QPointArray &a ) const;
diff --git a/dist/changes-3.0.0-beta3 b/dist/changes-3.0.0-beta3
new file mode 100644
index 0000000..cc49e6e
--- /dev/null
+++ b/dist/changes-3.0.0-beta3
@@ -0,0 +1,278 @@
+Qt 3.0 Beta3 is not binary compatible with Beta2, this means that any
+programs linked with Beta2 must be recompiled.
+
+Below you'll find a description of general changes in the Qt Library
+and Qt Designer followed by a detailed list of changes in the
+programming API.
+
+
+The Qt Library
+========================================
+
+Documentation
+-------------
+
+Overall enhancements include fixed typos, corrected grammar and
+spelling, and the addition of several images and code examples. Most
+classes now have useful detailed descriptions. Documentation accuracy
+and usability has been generally improved.
+
+Styles
+------
+
+In Qt 3.0.0 Beta2, only the Windows and Motif styles were implemented with
+the new style API. Now the missing styles (MotifPlus, Platinum, SGI and
+CDE) are included.
+
+MNG
+---
+
+Updated the libmng that is shipped with Qt to version 1.0.2.
+
+Wacom Tablet Support
+--------------------
+
+Fixes for Windows to solve the problem of creating a context for every
+widget and the problem of opening the dialog and losing the ability to use
+the tablet afterwards.
+
+
+Qt Designer
+========================================
+
+ - Added the ability to sort the property editor either by category
+ (default and old behaviour) or alphabetically.
+
+ - Added the option "-nofwd" to uic which supresses the generation of
+ forward declarations for custom classes in the generated output.
+
+- The way how custom slots and editing these slots directly in the Qt
+ Designer is handled has been changed. Originally the code for these
+ slots was saved into the .ui XML file together with the user
+ interface description and the uic did put this code into the
+ generated source files.
+ Now, if code of custom slots is edited directly in the Qt Designer,
+ additionally to the <filename>.ui of a form, a <filename>.ui.h file
+ is created. The code is written into this source file now instead
+ of the .ui file.
+ This way the code of custom slots can be also easily edited outside
+ the Qt Designer without subclassing, and it is possible to edit it
+ both, in the Qt Designer and outside the Qt Designer without
+ conflicts, as this is a plain text C++ file.
+ Uic now automatically includes this source file into the generated
+ sources (if it exists) and, in this case, does not create empty
+ stubs for the custom slots in the generated sources anymore. So
+ this code file has not to be added to the project Makefile. If the
+ source file does not exist, uic falls back to the old behavior and
+ creates the empty stubs in the generated source.
+ If a user does not want to subclass to implement the custom slots,
+ but also does not want to edit the code of the custom slots in the
+ Qt Designer, it is possible to always create the <formname>.ui.h
+ for a form (even if it was not edited in the Qt Designer) and edit
+ that file in a seperate editor. This feature can be configured in
+ the project settings dialog.
+ This way, the old approach of subclassing keeps working (and all
+ old .ui files keep working without any change). Also, for users of
+ the previous Qt 3.0 Beta versions, Qt Designer can still read the
+ .ui files which contain code. So also .ui files created with Qt 3.0
+ Beta versions of the Qt Designer keep working without any change.
+ Details about the possible concepts which can be used to add code
+ to a form created by the Qt Designer (subclassing and uic +
+ <filename>.ui.h) and related information about project management
+ can be found in the chapter about new features in Qt Designer 3.0
+ in the Qt Designer manual.
+
+
+Qt Functions
+========================================
+
+QApplication
+------------
+
+ - flush() no longer calls sendPostedEvents(), as this might be unsafe
+ under certain circumstances.
+
+QDataTable
+----------
+
+ - Now uses the new row selection mode of QTable.
+
+QDomDocument
+------------
+
+ - Fixed the toString() function to work properly with namespaces.
+ - In Qt 3.0.0 Beta2, there was a workaround for Microsoft's XML parser,
+ so that the toString() function did not output a doctype that consists
+ only of the name. This workaround is semantically wrong; it was
+ reverted.
+
+QDateEdit
+---------
+
+ - Fixed wrong default size policy and missing size hint.
+ - Improved focus and tab handling.
+
+QEffects
+--------
+
+ - Tooltips and popup menus scroll and fade again
+
+QTable
+------
+
+ - Fixed right mouse button handling.
+ - Implemented row selection modes. This implied adding the new enum values
+ SingleRow and MultiRow to the enum SelectionMode.
+ - Doubleclick clears selections completely now.
+ - Allow different focus styles, namely FollowStyle (draw it as the style
+ tells you) and SpreadSheet (draw it as it is done in common spreadsheet
+ programs).
+
+New functions:
+ virtual void setFocusStyle( FocusStyle fs );
+ FocusStyle focusStyle() const;
+ virtual QRect cellRect( int row, int col ) const;
+
+QTimeEdit
+---------
+
+ - Fixed wrong default size policy and missing size hint.
+ - Improved focus and tab handling.
+
+QTextEdit
+---------
+
+ - QTextCursor is an internal class, so the signal
+ cursorPositionChanged(QTextCursor*) is only of limited use. Added a
+ more useful signal in addition.
+
+ - Overrides accelerators for all shortcuts used to edit text.
+
+New signal:
+ void cursorPositionChanged( int para, int pos );
+
+QLineEdit
+---------
+
+ - Overrides accelerators for all shortcuts used to edit text.
+
+QLibrary
+--------
+
+ - Static overload for resolve as a convenience function.
+
+New function:
+ static void *resolve( const QString &filename, const char * );
+
+QListView
+---------
+
+ - A bug that was introduced in Qt 3.0.0 beta 2 made listviews with
+ lots of items very slow. This problem has been fixed.
+
+QProcess
+--------
+
+ - exitStatus() did not work for negative values on Unix. This is fixed
+ now.
+ - Fixed problems on Unixware.
+
+QRichtext
+---------
+
+ - Fixed searching backwards.
+ - Fixed some BIDI text-rendering problems.
+
+QSound
+------
+
+ - Simplified the API to allow easier extension.
+
+New functions:
+ bool isAvailable();
+ int loops() const;
+ int loopsRemaining() const;
+ void setLoops(int);
+ QString fileName() const;
+ bool isFinished() const;
+
+New slot:
+ void stop();
+
+Removed function:
+ bool available();
+
+QSpinBox
+--------
+
+ - Spin box arrows were not updated correctly when the widget was
+ disabled/enabled. This problem is fixed now.
+ - Improved handling of the case when a spinbox accepts a value: now it
+ also accepts it if the spinbox loses focus or is hidden.
+
+QSqlCursor
+----------
+
+ - Add functions to set the generated flag. This is used to avoid the
+ generation of malformed SQL statements.
+
+New functions:
+ void setGenerated( const QString& name, bool generated );
+ void setGenerated( int i, bool generated );
+
+QSqlDriver
+----------
+
+ - Add new function hasFeature( QSqlDriver::DriverFeature ) const which
+ allows you to query whether the driver supports features like SQL
+ transactions or Binary Large Object fields. The functions
+ hasQuerySizeSupport(), canEditBinaryFields() and hasTransactionSupport()
+ are therefore obsolete and have been removed.
+
+New function:
+ bool hasFeature( QSqlDriver::DriverFeature ) const;
+
+Removed functions:
+ bool hasQuerySizeSupport() const;
+ bool canEditBinaryFields() const;
+ bool hasTransactionSupport() const;
+
+QSqlField
+---------
+
+ - The bool argument of setNull() was removed since it does not make sense
+ to set a field to non null.
+
+QTabWidget
+----------
+
+ - Use the functions below to add tool tips to the individual tabs in a
+ QTabWidget.
+
+New functions:
+ void removeTabToolTip( QWidget * w );
+ void setTabToolTip( QWidget * w, const QString & tip );
+ QString tabToolTip( QWidget * w ) const;
+
+QTabBar
+-------
+
+ - Use the functions below to add tool tips to the individual tabs in a
+ QTabBar.
+
+New functions:
+ void removeToolTip( int id );
+ void setToolTip( int id, const QString & tip );
+ QString toolTip( int id ) const;
+
+QTextStream
+-----------
+
+ - The global functions setw(), setfill() and setprecison() were deleted
+ since they conflict with the std classes. If you need the functionality,
+ use qSetW(), qSetFill() and qSetPrecision() instead.
+
+Removed functions:
+ QTSManip setw( int w )
+ QTSManip setfill( int f )
+ QTSManip setprecision( int p )
diff --git a/dist/changes-3.0.0-beta4 b/dist/changes-3.0.0-beta4
new file mode 100644
index 0000000..a3f44a5
--- /dev/null
+++ b/dist/changes-3.0.0-beta4
@@ -0,0 +1,688 @@
+Qt 3.0 Beta4 is not binary compatible with Beta3; any programs linked
+against Beta3 must be recompiled.
+
+Below you will find a description of general changes in the Qt
+Library and Qt Designer followed by a detailed list of changes in the
+API.
+
+
+The Qt Library
+========================================
+
+Documentation
+-------------
+
+The extensive revision of the documentation is almost complete.
+We have added new navigation options, including a shorter list
+of classes entitled Main Classes.
+
+Translations
+------------
+
+Qt now includes French and German translations of the Qt library, as
+well as a template for translating Qt. These files are found in the
+translations directory of Qt, in both .ts and .qm formats.
+
+Style Fixes
+-----------
+
+Qt 3.0.0 beta2 introduced a new QStyle API. This new API has changed
+between beta3 and beta4. These changes will affect both widget
+writers and style writers. The QStyle entry below explains what has
+changed.
+
+Beta4 also introduces some fixes for bugs introduced during the port
+to the new API in various widgets, notably QComboBox and QSlider.
+
+LiveConnect Plugin
+------------------
+
+A few bugs were fixed in the LiveConnect Plugin so that the grapher
+example works again on Windows.
+
+
+Qt Designer
+========================================
+
+ - General usability improvements and bug fixes, and improved file
+ and project handling.
+ - Updated designer manual to cover the .ui.h mechanism.
+ - New auto-indentation algorithm in the code editor.
+
+
+Qt Assistant
+========================================
+
+ - Added a Settings dialog and made more features customizable.
+ - Sessions are now saved and restored.
+ - A brief introduction to using Qt Assistant is now included.
+
+
+Qt Linguist
+========================================
+
+ - Phrase books are now provided in tools/linguist/phrasebooks.
+ - Added support for Qt Designer's .ui.h mechanism to lupdate.
+ - Support for a larger subset of .pro file syntax in lupdate and
+ lrelease.
+
+
+Qt Functions
+========================================
+
+QApplication
+------------
+
+ - Ignore drag-and-drop events for disabled widgets.
+ - Always send ChildRemoved events, even if no ChildInserted event
+ was sent.
+ - Mouse events for popup menus are now sent to event filters.
+
+QCanvasItem
+-----------
+
+ - The functions visible(), selected() and active() have been renamed
+ setVisible(), setSelected() and setActive().
+
+New functions:
+ bool isVisible() const;
+ bool isSelected() const;
+ bool isActive() const;
+
+Removed functions:
+ bool visible() const;
+ bool selected() const;
+ bool active() const;
+
+QCanvasText
+-----------
+
+ - Fixed alignment flags.
+
+QChar
+-----
+
+New function:
+ bool isSymbol() const;
+
+QCheckBox
+---------
+
+ - Fixed a bug in pixmap caching which could result in using the
+ wrong pixmap.
+
+QCheckListItem
+--------------
+
+ - After a mouse click, the list view ignores the following double
+ click as in Windows XP.
+
+QClipboard
+----------
+
+ - Made clipboard operations faster on X11.
+
+QColorDialog
+------------
+
+ - Never show scrollbars in the color array.
+
+QComboBox
+---------
+
+ - Comboboxes are now drawn correctly in all styles.
+ - Fixed bug with auto completion. There was undefined behavior with
+ non-editable comboboxes when changing focus.
+
+New function:
+ virtual void setCurrentText( const QString& );
+
+New property:
+ QString currentText
+
+QDataBrowser
+------------
+
+ - The setCursor() function is obsolete and will be removed for Qt 3
+ release due to the incompatibility with some compilers. Use
+ setSqlCursor() instead.
+
+QDataTable
+----------
+
+ - Dates and times in tables can now be displayed in different
+ display formats.
+ - The setCursor() function is obsolete and will be removed for Qt 3
+ release due to the incompatibility with some compilers. Use
+ setSqlCursor() instead.
+
+QDateEdit
+---------
+
+ - The default separator and the day-month-year order respect the
+ user's settings.
+ - Pressing the separator key now skips to the next section.
+ - Fixed a usability flaw related to some months being longer than
+ others.
+
+New functions:
+ QString separator() const;
+ virtual void setSeparator( const QString& s );
+
+QDateTime
+---------
+
+ - Always initialize the tm struct completely. This fixes a problem
+ on some versions of Unix.
+
+QDir
+----
+
+ - QDir::homeDirectory() now always returns an existing directory on
+ Windows.
+
+QDockWindows
+------------
+
+ - Fixed dockwindows created in non-dock areas.
+ - Fixed constructor if InDock and the parent is a QMainWindow.
+
+QDom...
+-------
+
+ - Fixes in the conversion of the DOM tree to a string.
+
+QDomNodeList
+------------
+
+ - Fixed a crash.
+
+QFileDialog
+-----------
+
+ - Select contents of the line edit at startup (if any) so that the
+ user can overwrite the provided file name right away.
+
+QFileInfo
+---------
+
+ - In adition to lastModified() and lastRead(), provide created().
+
+New function:
+ QDateTime created() const;
+
+QFont
+-----
+
+ - Provide more correct font metrics under X11.
+ - Worked around X11 limits on length of strings to draw and on
+ coordinate sizes.
+ - Fixed sone point vs. pixel size issues under X11.
+ - Added PreferAntialias and NoAntialias flags to StyleStrategy enum
+ type.
+
+QFtp
+----
+
+ - Fixed a QSocket bug that made QFtp crash if the connection was
+ refused.
+ - Fixed operationRename() and operationRemove().
+ - Set the right state when finished.
+
+QGIFFormat
+----------
+
+ - Support GIF files with broken logical screen size.
+
+QHeader
+-------
+
+ - Added support for '\n' in header labels.
+ - Improved placement of icon.
+
+QHttp
+-----
+
+ - If the status code of the reply is an error code, it is now also
+ reflected in the status of the network operation. The error
+ handling in general was improved.
+
+QImageIO
+--------
+
+ - Allow gamma correction to be set programmatically.
+
+New functions:
+ void setGamma( float gamma );
+ float gamma() const;
+
+QKeyEvent
+---------
+
+ - Worked around an X11 bug in isAutoRepeat().
+
+QKeySequence
+------------
+
+A new class that encapsulates a key sequence as used by accelerators.
+
+QLabel
+------
+
+ - Made the WordBreak alignment property work with rich text labels
+ in addition to plain text labels.
+
+QLayout
+-------
+
+ - Fixed crashes with deleting widgets managed by the layout.
+ - Fixed problems with reparenting widgets managed by the layout.
+ - Respect maximumHeight() of items in heightForWidth().
+
+QLibrary
+--------
+
+ - Plugins now return the version number, threading model and debug
+ vs. release mode of the Qt library used in ucm_initialize(). If
+ there is any kind of incompatibility, cancel the loading.
+
+QLineEdit
+---------
+
+ - Update the "edited" flag and the accessibility data better than
+ before.
+ - Fixed setMaxLength().
+ - Fixed context menu problem on Windows.
+
+New functions:
+ bool isUndoAvailable() const;
+ bool isRedoAvailable() const;
+
+QListViewItem
+-------------
+
+ - Fixed setVisible(TRUE) which triggered an update too soon.
+
+QMenuBar
+--------
+
+ - Cancel alt-activation of menubar on mouse press/release.
+ - On wheel events, all popup menus are now closed instead of hidden.
+ Hiding popup menus confused QMenuBar.
+
+QObject
+-------
+
+ - Have QObject dispatch events to customEvents().
+
+QPainter
+--------
+
+ - Renamed the enum type ClipMode to CoordinateMode. The enum values
+ ClipDevice and ClipPainter are now called CoordDevice and
+ CoordPainter.
+ - Fixed escaping of ampersand character, so "&&", "&&&", etc., now
+ work as they did in Qt 2.x.
+
+New functions:
+ void drawPixmap( const QRect& r, const QPixmap& pm );
+ void drawImage( const QRect& r, const QImage& img );
+
+QPicture
+--------
+
+ - Respect the size of a loaded SVG document.
+ - Solved a replay-transformed-picture problem.
+ - Fixed format version number.
+
+QPluginManager
+--------------
+
+ - Fixed crash when loading a plugin fails.
+
+QPopupMenu
+----------
+
+ - Custom menu items that are separators now see their size hint
+ respected.
+ - Fixed crash when drawing an empty popup menu.
+
+QPrinter
+--------
+
+ - Better printing in different resolutions under both Windows and
+ X11.
+ - Support for collation under Windows and X11.
+ - Correct bounding rectangles for texts in all printer modes.
+ - Fixed pixmap printing on Windows.
+ - Fixed PostScript font names for fonts with foundries.
+ - Support for PostScript printing of scaled images.
+
+New functions:
+ bool collateCopiesEnabled() const;
+ void setCollateCopiesEnabled( bool enable ) const;
+ bool collateCopies() const;
+ void setCollateCopies( bool on );
+ int winPageSize() const; /* Windows only */
+
+QProcess
+--------
+
+ - The function hangUp() was renamed to tryTerminate() to make the
+ purpose more clear. Furthermore, under Unix, the signal that is
+ sent was changed from SIGHUP to SIGTERM.
+ - The function kill() and the function tryTerminate() (formerly
+ hangUp()) were made slots.
+
+New slots:
+ void tryTerminate();
+ void kill();
+
+Removed functions:
+ void hangUp();
+ void kill();
+
+QProgressBar
+------------
+
+ - Draw the progress bar correctly with respect to the properties
+ "percentageVisible", "indicatorFollowsStyle" and
+ "centerIndicator".
+
+QPtrVector
+----------
+
+ - Support null items without triggering an assert.
+
+QPushButton
+-----------
+
+ - Fixed the sizeHint() of buttons with an icon.
+
+QRegExp
+-------
+
+ - Fixed a subtle bug in regular expressions mixing anchors and
+ alternation.
+
+QRegion
+-------
+
+ - Don't crash when creating a QRegion from an empty point array.
+
+QRichText
+---------
+
+ - Improved alignment support, including nested alignments.
+ - Improved table margin support.
+ - Improved page break algorithm.
+ - Do not eat '\n' in preformatted items.
+ - Do not draw the internal trailing space at the end of a paragraph.
+ - Fixed link underlining in table cells and other subdocuments.
+ - Use larger vertical margin between paragraphs.
+ - Display paragraph spacing even when printing.
+ - Support vertical table cell alignment.
+ - Fix for floating items and table cell size calculation.
+ - Improved allignment handling.
+ - Offset fixes for tabs.
+ - Better <div> support.
+ - Fixed <br> tag.
+ - Fix for the <center> tag and centering tables.
+ - Fixed &nbsp; and <nobr>.
+ - Fixed off-by-one bug in gotoWordLeft() and gotoWordRight().
+ - Better positioning of super- and subscripts.
+ - Faster printing of large tables by using a clipping rectangle.
+ - Improved high-resolution printing.
+ - Correct sizes for images when printing.
+ - Fixed list painting when printing.
+ - Use right background for printing.
+
+QScrollBar
+----------
+
+ - Made setValue() a slot.
+
+New slot:
+ void setValue( int );
+
+Removed function:
+ void setValue( int );
+
+QSettings
+---------
+
+ - Added support for QStringLists without requiring a distinct
+ separator.
+ - Added support for null strings, empty lists and null strings in
+ lists.
+ - Fixed bug with values ending with a backslash.
+ - On Unix, don't overwrite files if the user doesn't have permission.
+
+QSimpleRichText
+---------------
+
+ - Implemented vertical breaks and floating elememts.
+ - Fixed bug with borders and clipping in printing.
+ - Fixed bug in adjustSize() cache.
+
+QSizePolicy
+-----------
+
+ - Stretch factors were added to QSizePolicy.
+ - Added a new size policy: Ignored.
+
+New functions:
+ uint horStretch() const;
+ uint verStretch() const;
+ void setHorStretch( uchar sf );
+ void setVerStretch( uchar sf );
+
+QSpinBox
+--------
+
+New slot:
+ virtual void selectAll();
+
+QSqlDatabase
+------------
+
+ - QSqlDatabase now provides access to meta-data. Meta-data is stored
+ in two new classes, QSqlFieldInfo and QSqlRecordInfo. See the
+ class documentation for details.
+
+New Functions:
+ QSqlRecordInfo recordInfo ( const QString & tablename ) const
+ QSqlRecordInfo recordInfo ( const QSqlQuery & query ) const
+
+
+QSqlFieldInfo
+-------------
+
+A new class that stores meta data associated with a SQL field.
+
+QSqlRecordInfo
+--------------
+
+A new class that is keeping a set of QSqlFieldInfo objects.
+
+QStatusBar
+----------
+
+ - Don't cut off the bottom line of the border of the status bar.
+ - Respect maximumHeight() of items in the status bar.
+
+QString
+-------
+
+ - QString now provides section(), a function that parses simple
+ fields.
+ - The function similarityWith() has been removed from the API. If
+ you need it, write to qt-bugs@trolltech.com.
+
+New functions:
+ QString section( QChar sep, int start, int end,
+ int flags = SectionDefault ) const;
+ QString section( char sep, int start, int end = 0xffffffff,
+ int flags = SectionDefault ) const;
+ QString section( const char *substr, int start, int end = 0xffffffff,
+ int flags = SectionDefault ) const;
+ QString section( QString substr, int start, int end = 0xffffffff,
+ int flags = SectionDefault ) const;
+ QString section( const QRegExp &regxp, int start, int end = 0xffffffff,
+ int flags = SectionDefault ) const;
+
+Removed function:
+ int similarityWith( const QString& target ) const;
+
+QStyle
+------
+
+ - Changed "void **" technique to QStyleOption technique. This
+ affects the interface of most of the QStyle member functions.
+ Please read the QStyle class documentation for details.
+
+QStyleOption
+------------
+
+A new class that encapsulates extra data sent to the style API.
+
+QTabBar
+-------
+
+ - The accelerators are now working correctly after changing a tab.
+
+QTable
+------
+
+ - Fixed crash related to popup menu and cell edition.
+ - Fixed not-drawing hidden cells.
+
+QTextCodec
+----------
+
+ - Added MIME names for codecs.
+ - Improved locale detection.
+ - Fixed the ISO 8859-6.8x (Arabic) font encoding.
+
+New function:
+ const char *mimeName() const;
+
+QTextStream
+-----------
+
+ - Fixed bug with stateful QTextEncoders.
+
+QTextEdit
+---------
+
+ - Respect disabling updates.
+ - Fixed link underlining in table cells and other subdocuments.
+ - Draw cursor on focus in.
+ - Emit cursorPositionChanged() where it previously was missing.
+ - Fixed sync().
+
+New functions:
+ bool isUndoAvailable() const;
+ bool isRedoAvailable() const;
+ bool isUndoRedoEnabled() const;
+ virtual void setUndoRedoEnabled( bool enabled ) const;
+
+New property:
+ bool undoRedoEnabled
+
+QThread
+-------
+
+ - Fixed QThread::sleep() on Unix.
+
+QTime
+-----
+
+ - fromString() with format Qt::ISODate now recognizes milliseconds
+ if they are specified.
+ - Make elapsed() a const function.
+
+QTimeEdit
+---------
+
+ - The default time separator respects the user's settings.
+ - Pressing the separator key now skips to the next section.
+
+New functions:
+ QString separator() const;
+ virtual void setSeparator( const QString& s );
+
+QTooltip
+--------
+
+ - Hide active tooltips when the user switches to another application.
+ - Fixed tooltips with Windows effects enabled.
+
+QUrl
+----
+
+ - Fixed password encoding.
+
+New function:
+ bool hasPort() const;
+
+QValidator
+----------
+
+ - Let QValidator, QIntValidator, QDoubleValidator and
+ QRegExpValidator have QObject parents rather than only QWidget
+ parents.
+
+QVariant
+--------
+
+ - Added QBitArray support.
+ - The QDateTime type now supports asDate() and asTime().
+ - The QByteArray type now supports toString().
+
+New functions:
+ QVariant( const QBitArray& );
+ const QBitArray toBitArray() const;
+ QBitArray& asBitArray();
+
+QWhatsThis
+----------
+
+ - Added support for hyperlinks in "What's This?" help windows.
+
+QWidget
+-------
+
+ - Fixed crashes related to LayoutHint events.
+
+QWizard
+-------
+
+ - Made removePage() behave as documented.
+ - Fixed back() so that it skips irrelevant pages like next().
+
+QWorkspace
+----------
+
+ - Make sure that the widget state is set before the first titlebar
+ painting is triggered.
+ - Use the right pixmap for titlebar.
+ - Respects widget flags better for titlebars in QCommonStyle.
+ - Fixed move and resize in the system menu bar of workspace
+ children.
+
+QXml
+----
+
+ - Made the "prefix" xmlns map to the namespace name
+ http://www.w3.org/2000/xmlns/.
+ - Fixed default namespaces.
+
+QXmlAttributes
+--------------
+
+ - Added count() as equivalent to length() to be consistent with Qt
+ conventions.
+
+New function:
+ int count() const;
diff --git a/dist/changes-3.0.0-beta5 b/dist/changes-3.0.0-beta5
new file mode 100644
index 0000000..174a1b3
--- /dev/null
+++ b/dist/changes-3.0.0-beta5
@@ -0,0 +1,316 @@
+Qt 3.0 beta 5 is not binary compatible with beta 4; any programs
+linked against beta 4 must be recompiled.
+
+Below you will find a description of general changes in the Qt
+Library and Qt Designer followed by a detailed list of changes in the
+API.
+
+
+The Qt Library
+========================================
+
+Documentation
+-------------
+
+The extensive revision of Qt classes' documentation is complete. The
+front page of the Qt documentation (index.html) has been redesigned
+to provide better access to other documentation than class
+documentation.
+
+OpenGL Module
+-------------
+
+Qt beta 5 provides some fixes which will make rendering GL widgets to
+pixmaps work on a wider range of X servers.
+
+QDateTimeEdit
+-------------
+
+The QDateTimeEdit, QDateEdit and QTimeEdit widgets have been moved
+from the SQL module to the Qt core widget set. All users of Qt can
+now use these widgets.
+
+
+Qt Designer
+========================================
+
+ - Some bugs related to the .ui.h feature were fixed.
+
+ - The generation of code related to QSqlCursor has been fixed.
+
+ - When removing a slot implementation from the Qt Designer
+ interface, do not accidentally remove a preceding comment.
+
+ - Improved the C++ code indenter in the editor for some C++
+ constructs, including try-catch blocks.
+
+
+Qt Linguist
+========================================
+
+ - Fixed problem with loading phrase books containing non-ASCII
+ characters.
+
+
+Qt Classes
+========================================
+
+QApplication
+------------
+
+ - Fixed a clipboard bug related to drag-and-drop on X11.
+
+QColorDialog
+------------
+
+ - Fixed repaint problem.
+
+QComboBox
+---------
+
+ - Never inserts empty strings in the list.
+ - Use the drop-down listbox's size hint in the combobox if the
+ listbox has been set manually.
+
+QComponentInterface
+-------------------
+
+ - This class has been renamed QComponentInformationInterface.
+
+QComponentServerInterface
+-------------------------
+
+ - This class has been renamed QComponentRegistrationInterface.
+
+QDataBrowser
+------------
+
+ - The setCursor() function is obsolete and has been removed due to
+ problems with some compilers. Use setSqlCursor() instead.
+
+QDataTable
+----------
+
+ - Fixed a rare crash when the database is deleted while its popup is
+ still open.
+ - Made setColumnWidth() a public slot like in the base class.
+ - The setCursor() function is obsolete and has been removed due to
+ problems with some compilers. Use setSqlCursor() instead.
+
+QDateTimeEdit
+-------------
+
+ - Fixed the minimumSizeHint() for better behavior in a layout.
+
+QDom
+----
+
+ - Added a sanity check.
+
+QFileDialog
+-----------
+
+ - Fixed a crash in MotifPlus style.
+ - Use the existing file-icon provider rather than the default
+ Windows one if one is set.
+
+QFont
+-----
+
+ - Fixed background color for more than 8 bits per channel.
+ - Added the font's pixel size to the value returned by key().
+
+QFtp
+----
+
+ - Correcty sets the default password to "anonymous".
+
+QGL
+---
+
+ - Added robustness on X11 for invalid pixmap parameters.
+
+QImage
+------
+
+ - Fixed loading of BGR BMP files.
+ - Changed the signature of the constructor to accept "const char *
+ const *" objects without a cast.
+
+QLatin1Codec
+------------
+
+ - Provide the missing mimeName().
+
+QLibrary
+--------
+
+ - Construct Unix-specific filenames correctly.
+
+QLineEdit
+---------
+
+ - Fixed offset for right-aligned text.
+
+QListView
+---------
+
+ - Fixed a bug with in-place renaming.
+
+QMime
+-----
+
+ - Fixed infinite loop when searching for a mime-source.
+
+QMutex
+------
+
+ - Unlock the Qt library mutex when enter_loop() is called the first
+ time, rather than when exec() is called. A programmer might call
+ QDialog::exec() and never QApplication::exec(), and then she will
+ wait for the mutex.
+
+QPixmap
+-------
+
+ - Do transformations correctly on big-endian systems.
+
+QPrinter
+--------
+
+ - Respect the PRINTER environment variable on X11, as stated in the
+ documentation.
+ - Work around a display-context bug on Windows 95 and 98.
+
+QProcess
+--------
+
+New functions:
+ void clearArguments();
+ int communication() const;
+ void setCommunication( int c );
+
+QProgressBar
+------------
+
+ - Fixed bug in repainting when a background pixmap is set.
+
+QPtrList
+--------
+
+ - Reverted a semantics change introduced in beta 4 when deleting the
+ current item.
+
+QRegExp
+-------
+
+ - Fixed matchedLength() when used with exactMatch(). This bug
+ affected QRegExpValidator.
+
+QRichText
+---------
+
+ - Added support for "color" attribute in <hr> tag.
+ - Fixed selectedText().
+
+QSqlCursor
+----------
+
+ - Don't generate calculated fields.
+
+QStatusBar
+----------
+
+ - Made addWidget() and removeWidget() virtual.
+
+QSpinBox
+--------
+
+ - Fixed the minimumSizeHint() for better behavior in a layout.
+
+QStyle
+------
+
+ - Allow separator custom menu items to use a different size than
+ specified by the style.
+
+Qt
+--
+
+ - Renamed Qt::Top, Qt::Bottom, Qt::Left, Qt::Right to Qt::DockTop,
+ Qt::DockBottom, Qt::DockLeft, Qt::DockRight.
+
+QTable
+------
+
+ - Fixed currentChanged() and valueChanged() emits.
+
+QTextEdit
+---------
+
+ - Moved eventFilter() from the public slots section to the public
+ section of the class definition.
+ - Reformat after changing tab-stop size.
+ - Implemented undo for clear().
+
+New function:
+ void zoomTo( int size );
+
+QTextIStream
+------------
+
+ - Fixed QTextIStream with a QString.
+
+QToolBar
+--------
+
+ - Fall back to text property in extension popup if no pixmap label
+ has been set.
+ - Made mainWindow() const.
+
+QToolButton
+-----------
+
+ - Fixed the minimumSizeHint() for better behavior in a layout.
+
+QToolTip
+--------
+
+ - Fixed the transparent tooltip effect a la Windows 2000.
+
+QUrl
+----
+
+ - Fixed the return value of QUrl::dirPath() on Windows.
+ - Set ref to nothing when merging URLs.
+
+QUrlOperator
+------------
+
+ - Added a default parameter for single copy to specify the "to" file
+ name and not just the file path.
+
+New function:
+ QPtrList<QNetworkOperation> copy( const QString& from,
+ const QString& to, bool move, bool toPath );
+
+QValueList
+----------
+
+ - Added a return value to remove(), as stated in the documentation.
+
+QWidget
+-------
+
+ - Fixed a bug in QPainter on X11 that caused a crash when paint
+ events were dispatched from other paint events.
+ - Fixed showMaximized() and deferred map handling.
+ - When specifying WDestructiveClose as a widget flag,
+ QWidget::close() does not immediately delete the widget anymore, but
+ calles QObject::deferredDelete()
+
+
+QWorkspace
+----------
+
+ - Fixed cascade().
diff --git a/dist/changes-3.0.0-beta6 b/dist/changes-3.0.0-beta6
new file mode 100644
index 0000000..dbed175
--- /dev/null
+++ b/dist/changes-3.0.0-beta6
@@ -0,0 +1,272 @@
+Qt 3.0 Beta6 is not binary compatible with Beta5; any programs linked
+against Beta5 must be recompiled.
+
+Below you will find a description of general changes in the Qt
+Library, Qt Designer and Qt Assistant. Followed by a detailed list of
+changes in the API.
+
+
+The Qt Library
+========================================
+
+QCom postponed
+--------------
+
+Previous Qt 3.0 betas introduced a module called QCom that provides a
+COM-like component system. The feedback we received on this module
+during the 3.0 beta phase has been mixed. Many users think this module
+lacks the intuitiveness and compactness that they have learned to
+expect from a Qt API. Therefore, we have made the difficult decision
+to withdraw the QCom API from the Qt 3.0 release. We will continue to
+develop this API until it is evolved enough for our customers, and
+will include the improved version in a later release.
+
+We apologize for any inconvenience the QCom API change has
+caused. This decision was made as part of our ongoing efforts to
+maintain the soundness and quality of Qt.
+
+Please note that the new plugin functionality in 3.0 will still be
+provided. This includes using custom widgets in Qt Designer, as well
+as runtime addition of styles, codecs, SQL drivers, and image format
+handlers. This functionality is now available through a substantially
+simplified API.
+
+Also also note that it will still be convenient to add custom plugin
+capabilities to Qt 3.0 applications, since the new QLibrary class will
+still be available. This class takes care of the low-level,
+platform-dependent issues regarding loading of DLLs and obtaining
+pointers to the functions exported by the DLLs.
+
+
+Qt Designer
+========================================
+
+ - Improvements to the Designer reference manual.
+
+ - Improved the C++ code indenter in the editor for numbers and
+ handling of parenthesis.
+
+
+Qt Assistant
+========================================
+
+ - Added a context menu with common commands.
+
+ - Allow multiple windows to be opened and added the common shortcut
+ that Shift+Click on a link opens the link in a new window.
+
+
+Qt Functions
+========================================
+
+QAccel
+------
+
+ - Try harder to ensure that accelerators continue to work when a top
+ level widget is reparented into another window.
+
+QColor
+-----
+
+ - X11 only: better heuristic to decide if you use black or white when a
+ color could not be allocated.
+ - win32 only: improve color allocation on 8bit displays, e.g. when
+ using a terminal server.
+
+QComboBox
+---------
+
+ - Added a new function to be able to set a custom line edit.
+
+New function:
+ virtual void setLineEdit( QLineEdit *edit );
+
+QCString
+--------
+
+ - Implemented a dummy out-of-line destructor for QCString to help the
+ compiler to optimize the number of conflicts as the location of a vtable
+ is now known.
+
+QCursor
+-------
+
+ - win32 only: Added a constructor that takes a platform specific handle.
+
+New function:
+ QCursor( HCURSOR ); (win32 only)
+
+QDateTime and QDateTimeEdit
+---------------------------
+
+ - win32 only: better handling of localization settings.
+
+QDockWindow
+-----------
+
+ - Remeber last size of an undocked window, so when it is docked and
+ undocked again, use this size again.
+
+QDom
+----
+
+ - Fixed an infinite loop in QDomDocument::toString().
+
+QFileDialog
+-----------
+
+ - Improved handling of "~" to make it work as a directory.
+
+QFileInfo
+---------
+
+ - win32 only: permissions respects the read-only attribute now.
+
+QIconView
+---------
+
+ - Added a function to find out whether an item in a view is currently
+ being renamed.
+ - Fixed a crash.
+
+New function:
+ bool isRenaming() const;
+
+QInputDialog
+------------
+
+ - Improved the handling of double input formats.
+
+QListView
+---------
+
+ - Added a function to find out whether an item in a view is currently
+ being renamed.
+ - Fixed a possible infinite loop.
+ - Improved spacing handling for columns that can show a sort indicator.
+
+New function:
+ bool isRenaming() const;
+
+QMainWindow
+-----------
+
+ - Make menuAboutToShow() protected to allow customized dock menus.
+ - Fixed spacing problem for menu bars.
+
+QMap
+----
+
+ - Fixed infinite looping in count( const Key& k ).
+
+QObject
+-------
+
+ - The slot deferredDelete() was renamed to deleteLater() to be more
+ intuitive. Code that used deferredDelete() has to be adjusted for the
+ new name.
+
+New function:
+ void deleteLater();
+
+QPainter
+--------
+
+ - Fixed bounding rectangle when printing richtext.
+ - Restore brush origin in QPainter::restore().
+
+QPixmap
+-------
+
+ - X11 with render extension only: better support for alpha blending:
+ - QPixmap::xForm() keeps now the alpha channel information
+ - alpha channel information is kept when copying QPixamps
+ - alpha blending works with QMovie
+ - tiling pixmaps with alpha channel works now
+
+QPrinter
+--------
+
+ - Unix only: fixed dashed line drawing when using high resolution
+ printing.
+ - Better printing detection on Irix.
+
+QRadioButton
+------------
+
+ - Fixed focus problem for radio buttons in a button group.
+
+QSqlCursor
+----------
+
+ - Fixed primeInsert() to work if the primary key of the edit buffer has
+ changed.
+ - Changing primary index keys now also works if the cursor's position
+ moved in the meantime.
+
+QStyle
+------
+
+ - Added a base value (CC_CustomBase) for custom defined primitives,
+ controls, etc. -- this allows custom widgets to use the new style
+ engine.
+ - Fixed spacing problem for custom menu items.
+ - Improved the look of the Motif plus and the SGI style.
+
+QTable
+------
+
+ - Fixed a crash when drag source is the current table editor widget.
+ - Fixed a bug that prevented having different colors in different cells.
+
+QTabletEvent
+------------
+
+ - Improved Watcom tablet support to allow multiple devices to be used.
+
+QTextEdit
+---------
+
+ - Better handling for font sizes in the font tag.
+ - Parse the qt tag again.
+ - Fixed text() for read-only documents.
+ - Improved right mouse button menu handling.
+ - New function to pass the position to the createPopupMenu() function for
+ improved flexibility.
+
+New function:
+ virtual QPopupMenu *createPopupMenu( const QPoint& pos );
+
+QThread
+-------
+
+ - Unix only: Make sure that the seconds and nano-seconds in the sleep
+ functions are within the limits.
+
+QUrlInfo
+--------
+
+ - Added the concept of invalid QUrlInfo objects. This is useful in
+ conjunction with QUrlOperator::info().
+
+New function:
+ bool isValid() const;
+
+QWizard
+-------
+
+ - Set the previous pages nextEnabled to TRUE if we add a page to the end
+ of a wizard.
+
+QWMatrix
+--------
+
+ - mapRect() returns always a valid QRect now.
+
+QWorkspace
+----------
+
+ - Update the titlebar when toggling shaded/non-shaded.
+ - Update the titlebar to be deactivated when the application's activation
+ status changes.
+ - Improve placement of document windows.
diff --git a/dist/changes-3.0.1 b/dist/changes-3.0.1
new file mode 100644
index 0000000..26fb022
--- /dev/null
+++ b/dist/changes-3.0.1
@@ -0,0 +1,540 @@
+Qt 3.0.1 is a bugfix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.0.0
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+- Style Engine fixes
+ Qt 3.0 introduced a new and more flexibile style engine. This
+ release should fix most of the small visual flaws that the new
+ styles introduced. It also greatly improves appearance in
+ right-to-left mode.
+
+- MS-Windows XP
+ This is the first release to fully support Windows XP,
+ including the new themable GUI styles.
+ The Windows XP style can only be built as a plugin, which requires
+ Qt to be configured as a shared library. To build the plugin
+ you must install a Microsoft Platform SDK for October 2001
+ or later. Your INCLUDE and LIB environment variables must
+ point to the respective directories in the SDK installation.
+
+- Reverse (right-to-left) layouts
+ Many classes have improved support for right-to-left layouts.
+
+- Compile fixes
+ Solaris 7 Intel, g++ version 2.8.1.
+
+- Documentation updates
+ Some new and improved diagrams and minor textual revisions.
+
+- Mac only: Drag'n'drop
+ Mac only: QDropEvents can decode HFS flavors.
+
+- X11 only: Multi-head (multi-screen) improvements
+ Support for different TrueColor depths on each head (screen).
+ Drag'n'drop support across multiple screens. Tooltips always
+ stay on the correct screen. Improved OpenGL support on
+ multiple screens. Qt 3.1 will support different color depths
+ on every screen (e.g. one TrueColor screen, one 8-bit
+ PseudoColor and one 8-bit GreyScale).
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QAction
+ Fixed a memory leak in conjunction with action accelerators.
+ Turn toggle actions off when toggling is turned off with
+ setToggleAction(FALSE);
+
+- QApplication
+ Shared double buffers are cleaned up on destruction.
+ Creating and using multiple QApplications in the same process
+ is supported.
+ - Solaris only: Default to the Interface System font (which is
+ the default for the CDE)
+ - Win32 only: When WM_QUERYENDSESSION is received, _flushall
+ is called to ensure that all open streams and buffers are
+ flushed to disk (or to OS's buffers).
+ Better support for more input methods (e.g. Chinese).
+ Enter events are not propagated to modally blocked widgets.
+ Key_BackTab events are generated rather than Shift+Key_Tab.
+ Floating toolbars are blocked when the application is modal.
+ Move and Resize are disabled in the system menu for
+ maximized toplevel windows
+ - WinXP only: WM_THEMECHANGED messages are handled; widgets
+ are repolished with the appropriate style.
+ - X11 only: Removed misleading warning message for main
+ widgets on heads (screens) other than the default head.
+ Input context: Solved a memory leak in Xlib, and saved a
+ server round trip when updating the microfocushint.
+ Worked around some broken XmbLookupString implementations
+ that do not report buffer overflows correctly.
+ Key events are never given to a widget after clearFocus()
+ has been called for that widget; this is the same behavior
+ as Windows.
+
+- QAquaStyle (MacOS X only)
+ More optimizations and several minor visual bugs fixed.
+
+- QCanvas
+ Erase any exposed empty space when shrinking the canvas.
+
+- QCanvasPixmapArray
+ Initialize the framecount to 0.
+
+- QCanvasView
+ Optimize background pixmaps: potentially they were drawn
+ twice, first untranslated then translated.
+
+- QClipboard (X11 only)
+ The race conditions that cause KDE to lock-up occasionally
+ should now be fixed.
+
+- QComboBox
+ Fixed behavior with non-selectable items. Fixed a crash when
+ calling setCurrentItem(-1). Fixed autoscrolling when dragging
+ the mouse directly after opening the dropdown.
+
+- QColor
+ Make invalid named colors return a non-valid QColor (as
+ documented).
+
+- QColorDialog (Win32 only)
+ Use WStyle_DialogBorder, since resizing this dialog does not
+ make much sense.
+
+- QCommonStyle
+ Respect QApplication::globalStrut() in scroll bars. Support
+ reverse layout in QTitleBar.
+
+- QCursor
+ Safer cleanup of cursor shapes (avoids possible free'd memory
+ read)
+ - Win32 only: fixed application override cursor with mouse
+ grabbing.
+
+- QDate
+ Fixed some possible overflows.
+ - Win32 only: Improve locale support for short day and month
+ names etc. Initialize milliseconds correctly.
+
+- QDateTimeEdit
+ Display AM/PM if set by locale. Improved sizeHint().
+
+- QDockAarea
+ More reliable sizeHint(). Better support for reverse layouts.
+
+- QDockWindow
+ Emit the placeChange() signal more reliably. Avoid floating
+ docks popping up everywhere before they have been positioned
+ and laid out.
+
+- QDesktopWidget
+ - X11 only: When using normal dualhead (not Xinerama), make
+ sure we report the correct screen number.
+ - Win32 only: refresh on WM_DISPLAYCHANGE.
+
+- QFrame
+ New panel styles LineEditPanel and TabWidgetPanel. This was
+ required by the new for Windows XP support.
+
+- QFileDialog
+ Show unicode filenames to the user rather than encoded ASCII
+ (e.g. previously latin1 characters were shown as "%XX"
+ escapes).
+ Fixed multiple-selection of FTP files.
+ Emit signal fileHighlighted in existingfile mode.
+ - Mac only: Fixed existingFolder(). Fixed window position so
+ that it will never fall outside the screen.
+ - Win32 only: since files, directories and drives are not case
+ sensitive, we don't add an extra entry in the paths box if
+ the path already exists but with different case.
+
+- QFileInfo (Unix only)
+ Make sure that symlinks pointing to invalid/non-existing
+ targets are reported as symlinks.
+
+- QFont
+ Ensure a rounded-off value is returned from pointSize().
+ - x11 only: improved line width calculation. Fixed off by one
+ error in interpreting Xft font extents. Allow the use of
+ both Xft and non Xft fonts in the same application. Make
+ sure fonts are antialiased by default when using
+ xftfreetype.
+
+- QFontDialog
+ Prevent re-laying out when the size of the preview label
+ changes.
+
+- QFtp
+ In parseDir(), do not compare English month names to
+ shortMonthName(), since the latter is localized.
+
+- QGList
+ Make self-assignments work.
+
+- QGLWidget
+ Fixed ARGB to RGBA conversion on BigEndian systems.
+ - Win32 only: fixed colormap for 8-bit RGBA GL mode.
+ - X11 only: multiple heads with different color depths fixes.
+
+- QHebrewCodec
+ Assume the bidi algorithm is a reversible operation for the
+ visual 8859-8 codec. This is not true for very complex strings
+ but should hold in most cases.
+
+- QIconSet
+ Fixed detach() to really detach the internal pixmaps. In case
+ no image formats are installed, show black pixmaps rather than
+ ASSERT.
+
+- QImage
+ Allow 16-bit DIBs. Allow > 32767 level PNMs.
+ Fixed smoothscale() for the following bug: whenever
+ (new_width / original_width * 4096) is not an integer the last
+ column of the scaled image is black.
+
+- QImageIO
+ Fixed plugin loading in cases where the image format is
+ explicitly defined.
+
+- QInputDialog
+ Disable the OK button when input is not Acceptable.
+ (See QValidator.)
+
+- QLabel
+ When showing rich text with tables (via QSimpleRichtext),
+ avoid drawing the table background.
+
+- QLayout
+ In reverse layout mode: fix off by one error when laying out
+ right to left or bottom to top.
+
+- QLineEdit
+ Fixed offset calculation for horizontal scrolling. Invoke
+ validator when the user presses Backspace or
+ Delete. Compression of the undo/redo stack fixed. Security: do
+ not reveal the position of spaces with Ctrl+RightArrow or
+ Ctrl+LeftArrow in password mode.
+
+- QListBox
+ Append items at the proper position even after sorting the
+ content. Made QWidget::setBackgroundMode() work correctly.
+
+- QListBoxPixmap
+ Use the function pixmap() when drawing the pixmap, so users
+ can reimplement QListBoxPixmap::pixmap().
+
+- QListView
+ Fix misalignment of checkbox click zone. Make the selected and
+ focus rectangles cover the entire column for QCheckListItems
+ if the listview root is not decorated. Make
+ QWidget::setBackgroundMode() on the viewport work correctly.
+ Comply with user interface guidelines: clear the selection
+ when a click is in an empty area unless the Ctrl key is down.
+ Fixed possible crash when starting a rename with a double
+ click. Smarter ensureItemVisible(). Draw listview background
+ in paintEmptyArea() with the current style. Ensure the
+ listview always has a current item.
+
+- QMainWindow
+ Better laying out of dockareas when they are all empty.
+ Otherwise an empty QMainWindow looks unappealing in a
+ workspace. Maintain the toplevel layout's resize mode.
+
+- QMessageBox
+ Avoid double deletion if the parent is destroyed while the
+ messagebox is open. Support y/n/c shortcuts without needing
+ the Alt key modifier.
+
+- QMovie
+ Allow pause() and restart() with MNG.
+
+- QMultiLineEdit
+ Remove internal trailing space when returning a textline with
+ textLine(int) and querying lineLength(int).
+
+- QPainter
+ The boundingRect() should now work properly for the
+ combination richtext, right-aligned and an empty initial rect.
+ Handle DontClip-flag in the painter's complex drawText()
+ function. Reset the cached composition matrix (and inverse)
+ when reinitialising a painter.
+
+- QPicture
+ Fixed the loading of binaries from older Qt versions.
+
+- QPixmap
+ grabWidget(): when the widget sets WRepaintNoErase it might
+ erase itself with the non-redirected QWidget::erase(); restore
+ those areas.
+ - X11 only: (with XRENDER extension) when copying a pixmap,
+ bitBlt the entire data into the new pixmap instead of using
+ alpha composition.
+
+- QPopupMenu
+ Fixed strange side effects with the menu effects. Support
+ minimumSize() for popups. Fixed a navigation issue where
+ Key_Right under certain circumstances was not propagated to
+ the menu bar. Speedups when disabling/enabling menu items
+ before showing them.
+ - X11 only: Fixed mouse and keyboard grabbing side effects
+ with popup menu effects enabled.
+
+- QPrintDialog (built-in dialog)
+ Use the text in the lineedit for the file dialog.
+
+- QPrinter
+ Fixed crash when printing with incomplete combined unicode
+ fonts.
+ - Win32 only: fixed a very rare and mysterious crash.
+
+
+- QPSPrinter
+ Make sure the fontPath is read correctly by the postscript
+ driver, and the qtconfig program. Small memory leaks closed.
+ Better support for Asian printing. Limit line length of
+ Postscript DSC comments to 255 chars (as per the postscript
+ specification).
+
+- QRichText
+ Fixed handling of &nbsp. Support both <qt title="..."> and
+ <title>. Avoid painting \n at the end of lines (these
+ sometimes appeared as an empty unicode box). Fixed find() in
+ "whole words only" mode. Fixed unicode auto alignment. Made
+ cursor movement in BiDi paragraphs compliant with MS-Windows.
+ Fixed paragraph right and center alignments when using <br>
+ tags. Fixed superscript/subscript confusion.
+
+- QScrollBar
+ Allow scrolling with modifier keys pressed.
+
+- QScrollView
+ Made autoscrolling work with drag and drop. Never generate
+ paintevents that are outside the visible area.
+
+- QSettings
+ - Unix only: search paths are valid for individual objects,
+ NOT every object (windows behavior). When reading files,
+ don't replace the old groups with contents of the new
+ groups; merge them instead. Properly escape backslashes and
+ newlines.
+ - win32 only: improved error handling. Fixed subKeyList() and
+ entryList() for empty paths.
+
+- QSimpleRichText
+ Correctly transform clipping rectangle.
+
+- QSizeGrip
+ Reverted sizeHint() to the old size to avoid making the
+ statusbar a tiny bit too big. Support right-to-left layout.
+
+
+- QSgiStyle
+ Made the combobox arrow look nicer. Fixed disabled combobox
+ drawing.
+
+- QSlider
+ Fixed click handling for reverse layouts.
+
+- QSpinBox
+ Usability fix: when changing a value with the up/down arrow
+ keys or with the arrow buttons, select the new value.
+
+- QSplitter
+ Use the actual QSplitter pointer as documented (and not a
+ QSplitterHandle pointer) as the parameter to the
+ QStyle::sizeForContents() call. Fixed reverse layouts when
+ splitter movement is constrained.
+
+- QSqlRecord
+ Fixed double increment of the iterator in certain
+ circumstances.
+
+- QString
+ Fixed QString::setLatin1() when the length parameter is 0.
+ - Unix only: Use strcoll() in QString::localeAwareSorting().
+ - Mac only: clarify that local8Bit() is always utf8().
+
+- QStyle
+ New frame styles for tab widgets, window frames and line edit
+ controls. This was required by the new support for Windows XP.
+ Added SH_ScrollBar_StopMouseOverSlider style hint so that one can
+ turn on (or off) the ability to stop pageup/pagedown when the
+ slider hits the mouse (this is needed for Aqua on MacOS X).
+
+- QSvgDevice
+ Many fixes for saving and restoring attributes that are not
+ part of QPainter. Processing of 'tspan' elements. Now uses
+ double instead of int for internal 'path' arithmetic for
+ better scaling results. Supports QPicture's coordinate
+ transformations.
+
+- QTabBar
+ Fixed the focus rectangles and spacing with icons and label
+ texts.
+
+- QTable
+ Improved layout in right-to-left mode. Fixed adjustRow() when
+ using header items with icon sets. Do not let hidden
+ columns/rows re-appear when adjusting. Update header correctly
+ when changing a table's dimensions. Correctly reset the
+ updatesEnabled flag in sortColumn(). Fixed modifying the
+ contents of a combobox or checkbox table item while it is the
+ current cell.
+
+- QTableItem
+ Make sure an item cannot span over a table's maximum number of
+ rows and columns.
+
+- QTabWidget
+ Constrain the sizehint to avoid having oversized dialogs.
+
+- QTextCode
+ Rename iso8859-6-I to to 8859-6. The old name is still
+ supported for backwards compatibility.
+ - Win32: implemented locale().
+ - Mac: implemented locale().
+
+- QTextDrag (Win32 only)
+ Performance improvements in encodedData().
+
+- QTextEdit
+ Fixed HTML output. New property tabStopWidth. Fixed append()
+ and made it smarter: it only scrolls to the end if the view
+ was scrolled to the end before. Proper reformatting when
+ switching word wrap policies. Do not blink the cursor when the
+ textedit is disabled. Make isModified() return the new value
+ in slots connected to the modificationChanged() signal.
+ - X11 only: middle mouse selection pasting sets the cursor
+ position.
+
+- QTextStream
+ Faster string output in latin1 mode.
+
+- QThread
+ - Unix only: initialize threads in non-GUI mode as well.
+ - Win32 only: fixed the initial value of QThread::running().
+
+- QToolButton
+ Fixed unwanted occurences of delayed popup menus.
+
+- QUrlOperator
+ Fixed the cache, so that QUrlInfo::name() is set correctly for
+ renamed files. This bug also affected QFileDialog. More
+ careful check whether a file is writable before renaming or
+ deleting it.
+
+- QValueVector
+ Make operator==() const. Fixed some sharing issues.
+
+- QVariant
+ Fixed a few memory leaks when casting complex values to simple
+ types. Faster operator==().
+
+- QWaitCondition (Win32 only)
+ Fixed wakeAll().
+
+- QWhatsThis
+ Make QWidget::customWhatsThis() work with menu accelerators.
+ Avoid infinite loops with menu effects.
+
+- QWidget
+ Fix default focus so that setTabOrder( X, Y ); setTabOrder( Y,
+ Z ); gives focus to X, not Y or Z. Closing a modal dialog with
+ a double click on a widget could result in a mouse release
+ event being delivered to the widget underneath; this has been
+ fixed.
+ Set/Reset WState_HasMouse on DragEnter/DragLeave.
+ - Win32 only: obey WPaintUnclipped. Make reparent() with 0,0
+ positions do the requested positioning.
+ - X11 only: when reparenting widgets to/from toplevel, make
+ sure the XdndAware property is set. Make input methods work
+ with servers other than kinput2. More fixes for 4Dwm's
+ incompliance with ICCCM 4.1.5 regarding geometry handling.
+ When hiding toplevel windows, we call XFlush() to avoid
+ having popup menus hanging around grabbing the mouse and
+ keyboard while the application is busy. Obey the 'erase'
+ value in repaint(const QRegion& reg, bool erase).
+
+- QWindowsStyle
+ Various visual fixes, including fixes for right-to-left
+ mode. Most significantly the light source now comes from the
+ top left also in reverse layout the same as modern versions of
+ Windows.
+
+- QWorkspace
+ Support document windows without title bars. Scroll to top
+ left corner when cascading/tiling a scrolled workspace. Define
+ a proper baseSize() for workspace children. Fix some side
+ effects with the workspace's maximize controls on Windows
+ style. Don't raise windows over scrollbars. Clients can now
+ call adjustSize() on the workspace when their sizeHint()
+ changes. When showing two scrollbars, maintain a solid corner.
+ Obey a document window's maximum size when tiling.
+
+****************************************************************************
+* Extensions *
+****************************************************************************
+
+NO CHANGES
+
+****************************************************************************
+* Other *
+****************************************************************************
+
+- qtconfig (X11 only)
+ It is now possible to turn Xft on and off, as well as turning
+ antialiasing-by-default on and off. This is necessary since
+ Xft doesn't work on dual head.
+
+- moc
+ Q_PROPERTY: Support QMap<QString, QVariant> and
+ QValueList<QVariant> as "QMap" and "QValueList". Support
+ parameters of nested template types, for example
+ QValueVector<QValueVector<double> >, as well as
+ Foo<const int>.
+
+- uic
+ Fix uic-generated code for QWizard with both "font" and
+ "titleFont" properties set. Put local includes after global
+ includes in generated files.
+
+- lupdate
+ Allow translation of menubar items generated with Qt Designer
+ (e.g. "&File", "&Edit", etc.).
+
+- libMNG
+ Updated to version 1.0.3.
+
+- libPNG
+ Updated to version 1.0.12.
+
+- Translations
+ Added Hebrew translations for Qt and the demo application.
+
+- Qt Designer
+ Support 'Ignored' size policy. Support properties of type
+ 'double'. Fixed saving of custom widgets in toolbars. Various
+ smaller usability improvements.
+
+- Qt Assistant
+ When users starts Qt Assistant themselves, always make a new
+ instance. Only use the unique-instance feature when invoking
+ from Qt Designer.
+
+- QMsDev
+ Invoke Qt Linguist when opening a .ts file in Visual Studio.
+
+
+
+****************************************************************************
+* Qt/Embedded-specific changes *
+****************************************************************************
+
+NO CHANGES
diff --git a/dist/changes-3.0.2 b/dist/changes-3.0.2
new file mode 100644
index 0000000..211c8ef
--- /dev/null
+++ b/dist/changes-3.0.2
@@ -0,0 +1,325 @@
+Qt 3.0.2 is a bugfix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.0.1
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+- Improved building of Qt on SCO OpenServer 5.0.5, Sun WorkShop 4.2, MIPSpro
+7.2 and VC++.NET
+
+- Added support for NIS to the build system
+
+- BiDi on X11: direction key events for right-to-left are configurable
+in QSettings via qt/useRtlExtensions. In 3.0.1 they were always turned
+on.
+
+- basic table support with XFree86
+
+- unicode on X11: fix keysymbols 0x1000000-0x100ffff
+
+- moc: Generate correct code for N::B which inherits M::B. Don't warn
+on throw() specifications.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QAbstractLayout
+ Fixed heightToWidth handling.
+
+- QApplication
+ X11 only: Stop compressing keys when a non printable key is
+ pressed. Fixed handling backtab (shift+tab) on HPUX. Better support
+ for currency symbol keys like the Euro key. Also fixed a crash when
+ tablet support is set up, but without a device attached.
+ Mac only: Adjust the desktop widget size when the display size
+ changes.
+
+- QAquaStyle
+ Better highlight color detection for the inactive case.
+
+- QCanvas
+ Let QCanvasPolygon::areaPoints() return a detached QPointArray
+ for safeness.
+
+- QColorDialog
+ Save and restore the custom colors via QSettings between Qt
+ applications.
+
+- QComboBox
+ Layout the popup listbox correctly before showing it.
+
+- QContextMenuEvent
+ X11 only: Both the mouse press event and the context menu
+ are always sent now.
+
+- QClipboard
+ Mac only: Fixed pasting text from non-Qt applications to Qt
+ applications.
+
+- QDataTable
+ Faster key event handling. Fixed crash when cancelling cell
+ editing. Fixed autoEdit mode.
+
+- QDesktopWidget
+ X11 only: Fixed screenNumber() in Xinerama mode.
+
+- QDateEdit
+ Gray out background if the widget is disabled. Fixed small
+ static memory leak on exit.
+
+- QDialog
+ On show(), send a tab-focus event to the focus widget, so that
+ e.g. in lineedits, all the text is selected when becoming visible.
+ Windows only: Position dialogs on the same screen as the mouse if
+ there is no parent widget that can be used.
+
+- QDockWindow
+ Use correct minimum size, taking frame into account. Less
+ flicker on (de)activation. undock() doesn't undock the window
+ if the TornOff dockarea is disabled.
+
+- QDragObject
+ Fixed crash when a drag object is created without parent.
+
+- QFileDialog
+ Fixed an endless loop.
+ Windows only: In getExistingDirectory(), use QFileDialog and not
+ the Windows system one when the dirOnly flag is FALSE
+ Mac only: Fixed filtering when using the native Mac filedialog.
+
+- QFileInfo
+ Windows only: Fixed isWriteable() to check Windows permissions as
+ well.
+
+- QFont
+ Windows only: Fixed boundingBox() when called in a widget
+ constructor. Internal fixes for invalid HDCs. More
+ accurate exactMatch(). Fixed GDI resource leak.
+ X11 only: Fixed calculating the point size of default font, so
+ the default font on systems with only bitmap fonts doesn't look
+ ugly. Support for Ukranian fonts.
+
+- QFontDataBase
+ Win9x only: Fixed problem with multiple entries.
+
+- QGLWidget
+ X11 only: Fixed pixmap rendering with TrueColor visuals
+ on X servers with a default PseudoColor visual (introduced in
+ 3.0.1). Fixed context sharing (introduced in 3.0.1).
+
+- QGroupBox
+ More predictable focus handling.
+
+- QHttp
+ Enable downloading from non-default websites.
+
+- QIconView
+ Initialise internal variable.
+
+- QImage
+ Fixed xForm() for bigendian bitmaps. Accept dots in XM
+ #define.
+
+- QImageIO
+ Correctly limit quality parameter when writing PNG and JPEG
+ files.
+
+- QLabel
+ Smarter minimumSizeHint() for word-break labels.
+
+- QLayout
+ Fixed possible crash when deleting/adding layout items. More
+ robust on runtime layout changes.
+
+- QLibrary
+ Windows only: Use an internal cache and refcount to avoid loading
+ the same library multiple times into the memory on Windows NT.
+
+- QLineEdit
+ Ctrl-V now calls the virtual paste() rather than duplicating
+ its functionality. Override accelerators for keypad keys.
+
+- QListBox
+ Center pixmaps in listbox items properly. Fixed isSelected().
+
+- QListView
+ Fix focus rects for QCheckList items that have a Controller as
+ a parent. Also, fix drawing of selected checklist boxes so
+ that the focus rect doesn't overlap it. Keep checklist items
+ working after the user swapped columns. Fixed drawing check
+ marks and the vertical branch lines for listview items with
+ multiple lines of text. Optimized the clear() function.
+ Improved the sorting for the case that entries have the same key.
+
+- QMenuBar
+ Fixed painting problems on content changes.
+ mostly X11: when the focus widget is unfocused, the menubar
+ should stop waiting for an alt release. On X11, when you use
+ an alt-key shortcut to switch desktops back and forth, then
+ you will get the menubar in altmode when you return to that
+ desktop
+ Mac only: Fixed keyboard modifiers.
+
+- QMovie
+ Animated gifs with a frame delay of 0 work nicer. Initialize
+ internal cache variable.
+
+- QMutex
+ Made tryLock() work on recursive mutexes.
+
+- QPainter
+ Return translated coordinates in pos(). Fixed translation in
+ calls to clipRegion(CoordPainter).
+
+- QPopupMenu
+ More fixes for the animate and fade effects. Fixed opening of
+ menus that was impossible under certain circumstances. Fixed
+ painting problems on content changes.
+
+- QPixmap
+ Make grabWidget() work with internally double-buffered widgets
+ X11 and Mac: Fixed a memory leak.
+
+- QPrinter
+ Win32 only: Resolution fix.
+
+- QRichText
+ Fixed crash bug when clearing a document. Fixed various layout
+ bugs, esp. with HTML tables. Fixed a memory leak. Fixed a
+ crash when placing a cursor on a hidden paragraph. Arabic and
+ Hebrew fixes. Make moving the cursor to the next word not
+ stumble upon multiple whitespaces.
+
+- QScrollBar
+ Make sure middle clicking a scrollbar doesn't allow the slider
+ to move outside the groove.
+
+- QSettings
+ In readEntry(), report 'ok' in all cases. Make sure the
+ default value is returned correctly for bool entries that
+ do not exist in the settings files. Both readNumEntry()
+ and readDoubleEntry() report a false ok parameter if the
+ conversion fails
+ win32 only: Fixed default values
+
+- QSgiStyle
+ Minor visual improvements.
+
+- QSlider
+ Make setting a new size policy in Designer work.
+
+- QSound
+ Stop sound playing when distroying a QSound object.
+ Windows only: QSound::stop() really stops the sound now.
+
+- QSqlCursor
+ Fixed setMode().
+
+- QSqlDriver
+ Escape '\' characters in strings. Fix the QOCI8 driver so that
+ it compiles with the Oracle9i client libs. Major speedup fix
+ for the QMYSQL3 driver.
+
+- QSqlRecord
+ Fixed crash when accessing values of non-existing fields.
+
+- QString
+ mid() works safely now for len > length() && len !=
+ 0xffffffff. Some speed optimizations. Replace non-latin1
+ characters with '?' in unicodeToAscii().
+
+- QStyle
+ Added a style hint for a blinking text cursor when text is
+ selected.
+
+- QStyleFactory
+ Windows only: Don't load style plugins for static Qt builds.
+
+- QTable
+ Use correct style flags for QCheckTableItem drawing. The
+ internal event filter no longer consumes FocusIn/FocusOut,
+ meaning those events are accessible for subclasses now. Fixed
+ redraw problem with dynamically resized cells. Always return
+ the right text for items (fixed a caching problem). Fixed
+ emitting valueChanged(). Fixed a redraw problem with multispan
+ cells.
+
+- QTextCode
+ Support for @euro locales.
+
+- QTextEdit
+ The internal event filter no longer consumes FocusIn/FocusOut,
+ meaning these events accessible for subclasses now. Override
+ accelerators for keypad keys. Reduced memory consumption for
+ contents with many paragraphs. Emit selectionChanged() when
+ the selected text has been removed. Emitting the linkClicked()
+ signal may result in the cursor hovering over a new, valid link
+ - check this and set the appropriate cursor shape. Overwrite
+ mode fixed. Always emit currentAlignmentChanged() when the
+ paragraph alignment changed. Ignore key events which are not
+ handled. Fixed right-alignment in BiDi mode. Key_Direction_L/R
+ will now affect the whole document for non-richtext content.
+ X11 only: Fixed copy on mouse release. Lower impact of an
+ XFree memory leak.
+ Mac only: Always draw selections extended to the full width of the
+ view.
+
+- QTextStream
+ Speed optimization for QTextStream::write().
+
+- QToolBar:
+ Hint about explicit show() call for child widgets to ensure
+ future operability.
+
+- QToolTip
+ Fixed wordbreaking when using both rich text and plain text
+ tooltips. Fixed placement of tooltips for multi-head and Xinerama
+ systems.
+
+- QVariant
+ In toDateTime(), allow conversion from QDate.
+
+- QWhatsThis
+ X11 only: Fixed positioning on dualhead setups.
+ Windows XP only: Improved drawing.
+
+- QWidget
+ X11 only: fixed a show() problem that occurred
+ after few reparents from and to toplevel.
+ Mac only: Fixed showNormal().
+
+- QWindowsStyle
+ Minor visual improvements (popupmenu checkitems, listview
+ branches).
+
+- QWorkspace
+ Obey minimumSizeHint() of document widgets. Do not emit
+ windowActivated() for the already active document window.
+
+- QUrlOperator
+ Relaxed checks for directories.
+
+
+****************************************************************************
+* Extensions *
+****************************************************************************
+
+****************************************************************************
+* Other *
+****************************************************************************
+
+
+****************************************************************************
+* Qt/Embedded-specific changes *
+****************************************************************************
+
+****************************************************************************
+* Qt/Mac-specific changes *
+****************************************************************************
+
+Optimizations and fixes in QPainter and QFont fixed creation and
+raising of top level widgets fixed hovering over titlebar problems.
diff --git a/dist/changes-3.0.4 b/dist/changes-3.0.4
new file mode 100644
index 0000000..e7089a7
--- /dev/null
+++ b/dist/changes-3.0.4
@@ -0,0 +1,214 @@
+Qt 3.0.4 is a bugfix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.0.3
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+- Qt 3.0.4 builds on VC++.NET.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QApplication
+ Send wheel events for blocked widgets to the focus widget instead.
+ Windows only: Fixed problems with Korean input methods. Reset
+ the mouse state even when we ignore the next button release.
+
+- QColor:
+ Fixed marking colors created with an invalid color string as
+ invalid.
+
+- QComboBox:
+ QComboBox's listbox now takes the combobox's palette.
+
+- QDataTable:
+ Fixed the scrollbar behaviour when browsing result sets from
+ clients that do not return a query size. Make the table
+ adopt the filter and sort settings from the cursor when
+ setSqlCursor() is called.
+
+- QDateTimeEdit:
+ Update the date/time edit even if the new date/time is
+ invalid.
+
+- QDialog:
+ Respect the minimum and maximum size of the extension grow
+ width/height in showExtension( TRUE ). Don't delete the object
+ immediately for WDestructiveClose, instead use deleteLater()
+ to allow queued events to be processed.
+
+- QDir:
+ Fixed crash when calling entryList() for non-existing
+ directories.
+
+- QDnD:
+ Mac only: Prevent crash when dropping onto a transparent part
+ of a widget.
+
+- QDockWindow:
+ Accelerators of the mainwindow now continue to work if a floating
+ dockwindow becomes active.
+
+- QFileDialog:
+ Windows only: Fixed displaying shared Windows directories
+ (e.g. \\Machine\Folder). Worked around a problem which made
+ QFileDialog hang.
+
+- QFontDataBase:
+ Enumerate all fonts correctly on Windows; also made it faster.
+
+- QGridLayout:
+ Do not crash when a widget inserted with addMultiCellWidget()
+ is deleted.
+
+- QHeader:
+ Fixed setOffset() for vertical headers.
+
+- QIconView:
+ Fixed when clicking and dragging from the edge of an icon, so
+ that the icon will drag immediately rather than when the mouse
+ next passes over it.
+
+- QKeyEvent:
+ Correctly deliver a KeyRelease event with isAutoRepeat
+ set to FALSE after releasing an auto-repeated key.
+
+- QLabel:
+ Fixed so that the label uses paletteForegroundColor() and not
+ the the colorgroup's 'text' color, when displaying richtext.
+
+- QListBox:
+ Performance improvements.
+
+- QListView:
+ When typing in a listview to search for an item, don't select
+ items in Extended selection mode. Speed improvements for
+ selectAll() or (un)selecting a large number of items (e.g by
+ pressing Shift+End) in big listviews (starting from 150.000
+ items).
+
+- QOCIDriver:
+ Allow access to tables not owned by the current user. Use
+ Oracle synonyms for table names. Tables can also be specified
+ as 'OWNER.TABLE'.
+
+- QPainter:
+ Don't delete the tabarray set in setTabArray() in the first
+ drawText() call.
+
+- QPopupMenu:
+ Fixed re-use of menus.
+
+- QPrintDialog:
+ Layout group boxes properly. Fixed function cast in NIS code
+ so that it works on all compiler-platform pairs. Allow NIS on
+ any Unix, not just Solaris.
+
+- QPrinter:
+ Windows only: Implemented printing of rotated pixmaps and
+ images.
+
+- QProcess:
+ Unix and Mac only: Make sure that the processExited() signal
+ is emitted only once for each process. This also fixes a crash
+ that occurred on very rare occasions.
+
+- QProgressBar:
+ Fixed crash bug when totalSteps() was 1. Fixed some painting
+ bugs.
+
+- QPSPrinter:
+ Improvements in printing Japanese. Big speed improvements.
+
+- QRichText:
+ Improved speed of loading plain text and rich text
+ documents. Fixed some internal links which didn't work
+ correctly. Fixed minimumWidth and usedWidth calculations for
+ table layouts of nested tables. Fixed <br> tags within list
+ items. Fixed some memory leaks and cleanup on exit. Now works
+ with fonts that specify sizes in pixels.
+
+- QScrollBar:
+ Release the control, when the scrollbar got hidden while a
+ control was pressed.
+
+- QSimpleRichText:
+ Make sure the painter's properties don't get changed in
+ setWidth().
+
+- QSpinBox:
+ Don't fire the autorepeat timer before valueChanged() is
+ completed, if the up or down button is pressed.
+
+- QSqlDriver:
+ Export DB driver classes under Windows if compiled into the
+ lib.
+
+- QSqlQuery:
+ Reset the last error before a new query is executed.
+
+- QTable:
+ If a row or column is hidden, setRowHeight() and
+ setColumnWidth() no longer cause an immediate resize; instead
+ they store the value for later use, i.e. for when the row or
+ column is shown. Fixed a problem which reset table header
+ sections after inserRows()/insertColumns() calls. showRow()
+ and showColumn() now do nothing if a row/column is already
+ visible. Windows only: Fixed the problem that combobox table
+ items never got smaller than a certain size.
+
+- QTextEdit:
+ Cleaner modified() and setModified() handling (doesn't rely on
+ internal signals anymore, so it is now safe to call
+ setModified() from a slot connected to textChanged()). Fixed
+ selecting text if a margin was set using setMargins(). Fixed
+ crash when calling removeSelectedText() with a selNum larger
+ than 0. Only auto-create a bullet list when typing - or * at
+ the beginning of a line if textFormat() is RichText, not
+ AutoFormat.
+
+- QTitleBar:
+ Don't paint all titlebars in a QWorkspace activated when a
+ dockwindow is the active window.
+
+- QToolBar:
+ Don't show the extension button when the extension menu would
+ not contain any items.
+
+- QUrlOperator
+ Fixed a crash.
+
+- QWaitCondition:
+ Fixed a problem with wait() using invalid timeout values.
+
+- QWorkspace:
+ Also show scrollbars (if enabled), when moving a document
+ window out of the workspace to the left at the top. Never show
+ scrollbars if a document window is maximized.
+
+
+
+****************************************************************************
+* Extensions *
+****************************************************************************
+
+****************************************************************************
+* Other *
+****************************************************************************
+
+Qt Config:
+ X11 only: The default X input methods are now configurable
+ through qtconfig.
+
+****************************************************************************
+* Qt/Embedded-specific changes *
+****************************************************************************
+
+****************************************************************************
+* Qt/Mac-specific changes *
+****************************************************************************
+
diff --git a/dist/changes-3.0.7 b/dist/changes-3.0.7
new file mode 100644
index 0000000..ec084d6
--- /dev/null
+++ b/dist/changes-3.0.7
@@ -0,0 +1,375 @@
+Qt 3.0.7 is a bugfix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.0.6.
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Smaller documentation fixes. Some build issues fixed. Upgraded libpng
+to 1.0.15.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QAction
+ Avoid emitting activated() twice for actions in a
+ toolbar. Possibility to remove an iconset from an action by
+ specifying a null iconset.
+
+- QApplication
+ Fixed a font sharing problem with setFont(). Fixed window
+ close with modality. Don't overwrite an explicitely set font
+ with the default font when using the static methods before
+ calling the constructor. When the programmer/user explicitly
+ sets the style (either with QApplication::setStyle or -style
+ command line option), do not reset the style on settings
+ changes.
+ Windows only: Serialize calls to OutputDebugString, as this
+ API is not reentrant. Emit aboutToQuit() when the user logs
+ off. Send a focusOut event to the focus widget when the user
+ tries to switch applications via Alt+Tab.
+ Windows95/98/Me: Fixed enter/leave handling. Among others this
+ makes tooltips work more reliable.
+ X11 only: Spit out warning then the user passes an invalid
+ Display* argument. Fixed figuring out the depth of the visual
+ in case a private colormap is supplied. Some startup
+ performance improvements with QSettings. Mark the internal
+ wakeUpGuiThread() pipe with FD_CLOEXEC. Call XFilterEvent
+ before the public X11 event filters to avoid applications
+ filtering out events that are necessary for input methods to
+ operate.
+
+- QBuffer
+ Make IO_Truncate not detach the explicitely shared byte array.
+
+- QButton
+ In setPixmap(), avoid relayouting if the new pixmap doesn't
+ change the size.
+
+- QCanvasEllipse
+ Windows only: Workaround a Windows limitation that doesn't
+ support 2x2 ellipse rendering without a pen. Don't try to
+ double buffer invalid areas.
+
+- QClipboard
+ Flush the clipboard contents when the application object is
+ destroyed.
+ X11 only: another race condition fixed. Handle paste
+ operations with empty data.
+
+- QComboBox
+ Accept enter/return key press events on the line edit. Fixed
+ vertical alignment of text when a global strut is set. Clip
+ drawing of large items. Fixed problem with items not being
+ highlighted the first time the popup is shown.
+
+- QCommonStyle
+ Fixed SR_CheckBoxFocusRect for empty checkboxes (now inside
+ the indicator)
+
+- QComplexText
+ Added correct positioning specs for all of thai and lao. Some
+ reordering fixes.
+
+- QCustomEvent
+ Removed bogus warning on illegal type ids.
+
+- QDataTable
+ Don't display a single empty row if result set is empty and
+ QuerySize cannot be determined. Don't resize the table after a
+ refresh() if the size is already known.
+ In closeEvent(), accept the event only when isHidden()
+
+- QDateTime
+ Fixed addYears() for days missing in certain years.
+
+- QDns
+ Slightly more reliable now, fixed a memory leak.
+
+- QDockArea
+ Fixed resizing of a QDockWindow is no longer affected by
+ another closed QDockWindow in the same QDockArea.
+
+- QDom
+ Fixed memory consumption when QDomElement::setAttribute() is
+ called multiple times to change the value of an
+ attribute. Fixed a memory leak in QDomDocument::importNode().
+
+- QDragManager
+ X11 only: Fixed a dangling pointer case when the current
+ widget was deleted. Raise cursor decoration.
+ Windows only: Made dropping of URLs work on Japanese Windows98
+
+- QEffects
+ More robust through deferred deletion. Some code improvements.
+ X11 only: disable effects on displays with <16bpp (rather then
+ falling back to the scrolling).
+
+- QFileDialog
+ Fixed problems with '#' in path. Fixed creation on
+ non-existing directories. Make previewMode() check if
+ the preview widgets are visible. Enable renaming in
+ ExistingFiles mode. Fix drag'n'drop for the first click into
+ the listbox. Don't auto-complete when saving a file. Enabled
+ drag'n'drop of files for all modes.
+
+- QFont
+ Windows only: Fixed boundingRect(QChar) for non true type
+ fonts. Fixed some positioning issues with Thai diacritics.
+ Win95 only: Make symbol fonts work.
+ X11 only: Fixed some issues with diacritics in non unicode
+ encoded fonts.
+
+- QFontDialog
+ Fixed getFont() in case no default font is specified.
+
+- QFrame
+ Fixed erasing the margin region for flicker-optimized
+ subclasses (e.g. QLineEdit). Turn on focus and mouse-over
+ style flags for frame painting.
+
+- QHeader
+ Some speed improvements for the sake of QTable and
+ QListView. Fix redrawing problems when moving header sections.
+
+- QIconView
+ Fixed contentsContextMenuEvent(). Only call
+ QIconViewItem::dragLeft() when the cursor has left the
+ bounding rect and only call QIconViewItem::dragEnter() when
+ the cursor has entered the bounding rect. Some performance
+ improvements.
+
+- QInputContext
+ X11 only: Improved XFontSet cache (also for cases where the X
+ server does not know the locale).
+
+- QKeyEvent
+ Windows only: Fixed internal ascii to keycode conversion for
+ codes > 0x80.
+
+- QLineEdit
+ Fixed doubleclick selection to only use spaces as word
+ seperators. Don't validate twice in a row if fixup() did
+ nothing. Fixed support for background pixmaps. Improved undo
+ mechanism. Respect maxLength() in setText().
+
+- QListBox
+ Fixed null-pointer crash in extended selection mode.
+
+- QListView
+ Improved auto scrolling. Restrict drop events to items that
+ have drop enabled and accept the event. Added more
+ null-pointer checks to prevent crashes when reimplementing
+ insertItem. Try harder to draw the focus rectangle with an
+ appropriate contrast. Do not resize a stretachable column in
+ widthChanged(). Fixed selecting when auto scrolling.
+
+- QLocalFs
+ The network protocol for local file systems sets sets the
+ right permissions for the QUrlInfo objects if you do a
+ QUrlOperator::listChildren().
+
+- QMainWindow
+ Fixed orientation handler calls.
+
+- QMenuBar
+ Fixed resizing when it was emptied. Caused some strange
+ problems in QMainWindow widgets. Allow stealing of focus in
+ alt-mode. Activate alt-mode only with the plain Alt key, not
+ AltGr.
+
+- QMimeSourceFactory
+ Windows only: If a path starts with \\ then it's an absolute
+ path pointing to a network drive
+
+- QMovie
+ For animated GIFs, use a minimum delay of 10ms. This is
+ compatible with both IE and Mozilla and avoids huge loads on
+ application and X-Server.
+
+-QPainter
+ Fixed pos() in combination with transformations save/restore
+ pairs. Fixed a bug in the BiDi algorithm.
+ X11 only: some problems when drawing rotated text on Solaris
+ fix (due to floating point arithmetrics). Fixed a matrix
+ related crash on Tru64.
+ Windows only: Draw end pixel in lineTo only for 0-width
+ pens. Avoid painting with invalid transformations.
+
+- QPaintDeviceMetrics
+ Windows only: Fixed numColors() for 32 bit displays.
+
+- QPixmap
+ Windodws only: Fixed array bounds read error in win32
+ function in convertFromImage.
+
+- QPopupMenu
+ Avoid flickering when showing a just created menu
+ immediately. If there is a custom QWhatsThis installed for the
+ whole menu but no whatsThis set for the item, use the custom
+ QWhatsThis to get the help text.
+ MacOS only: improved scrollable popups
+
+- QPrintDialog
+ Unix only: Continue parsing the nsswitch.conf file using
+ additional services when /etc/printers.conf is not found.
+ Windows only: Handle lack of default printers more
+ gracefully. Fix reentrancy issues when reading printer dialog
+ settings.
+
+- QPrinter
+ Unix only: Fixes for 64 bit safety.
+ Windows only: fixed a possible double-freeing of memory of a
+ hdc passed to the Windows Common Dialog.
+
+- QProcess
+ Windows only: Less command quoting for clients that use
+ GetCommandLine() directly. Make tryTerminate() robust in case
+ the process does not run. Make it possible to start batch
+ files with spaces in the filename. Make it safe to call
+ qApp->processEvents() in a slot connected to
+ QProcess::readyReadStdout().
+
+- QPSPrinter
+ Fixed codec for korean postscript fonts (ksc5601.1987-0, not
+ the listbox. Don't auto-complete when saving a fileeucKR).
+
+- QRichText
+ Fixed a case-sensitive compare for alignment. Fixed a free'd
+ memory access problem with floating items on destruction.
+
+- QScrollView
+ If a contents mouse event is accepted, don't propagate as
+ a normal mouse event.
+
+- QSemaphore
+ Fixed race condition in operator -=.
+ Unix only: a bit more robust.
+
+- QSettings
+ Unix only: Fixed requesting subkeylists for single
+ subkeys. Don't read in QSettings stuff in non-gui mode if
+ desktop-settings-aware is set to false.
+
+- QSlider
+ Emit sliderMoved() after the slider was moved.
+
+- QSocket
+ If the read retruns 0, safely assume assume that the peer
+ closed the connection. Fixed readyRead sometimes not being
+ emitted.
+
+- QSpinBox
+ Fixed setValue so it will ignore input but yet
+ not interpreted text
+
+- QSqlDatabase
+ Fixed a crash on manual deletion of the QApplication object.
+
+- QSqlDriver
+ Various fixes and improvements for Oracle, Postgres, MySQL
+
+- QSqlForm
+ Fixed crash in clearValues() on empty fields.
+
+- QString
+ Fixed setNum(n,base) with n == LONG_MIN and n != 10. Make
+ toLong() and toULong() 64bit clean (problems on Tru64).
+
+- QStyle
+ Make more use of Style_HasFocus. Enforce a usable size for
+ subcontrols for small scrollbars. Improve titlebar drawing
+ (e.g. no gradient on 95/NT). Allow drawing of list view
+ expand controls without branches .
+ In Windows style: increase default PM_MaximumDragDistance
+ value.
+ Windows only: fixed PM_ScrollBarExtent
+
+- QStyleSheet
+ More accurate mightBeRichText() heuristic. Fixed setMargin()
+ to only set left/right/top/bottom as documented, not the
+ firstline margin.
+
+- QSvgDevice
+ Fixed curve command mixup. Some bounding rect fixes. Fixed
+ output coordinates for drawArc, drawPie and drawChord. Proper
+ x-axis-rotation and other angle fixes for arcs, pies and
+ chords. Respect text alignments. No background for Bezier
+ the listbox. Don't auto-complete when saving a filecurves.
+
+- QTabBar
+ Move focus to the current tab if the tab with focus is being
+ removed.
+
+- QTable
+ Fixed contentsContextMenuEvent(). Fixed
+ adjustRow()/adjustColumn() for multi line sections. Support
+ for QApplicaton::globalStrut(). Speed improvements for
+ setNumRows(). Improved sizeHint() to include the left/top
+ header. Fix for mouse release handling. Update geometry of
+ cell widgets when changing rowHeight/colWidth. Fixed
+ QTableItem::sizeHint() for items with wordwrap. Catch
+ hideColumn() on tables with too few columns. Fixed an endless
+ recursion when swapping header sections.
+
+- QTableItem
+ Fixed multiple calls to setSpan().
+
+- QTextCodec:
+ Initialize locale before loading textcodec plugins. Fixed a
+ bug in the unicode -> jisx0208 conversion table.
+
+- QTextEdit
+ Reset cursor on undos that leave us with an empty
+ textedit. Quote quotes when exporting rich text. Fixed
+ possible crash when appending empty paragraphs like
+ "<p>". Some drawing problems fixed. Made removeParagraph() and
+ friends work in read-only mode. Fixed cursor blinking with
+ setEnabled() / setDisabled(). When exporting HTML, quote the
+ src attribute of img tags tags that contains spaces. Made
+ setFormat() much faster in case undo/redo is disabled. Fixed
+ double deletion crash when clearing a document with floating
+ custom items.
+
+- QToolButton
+ In sizeHint() don't reserve space for icons if button has
+ only a textlabel. Made popups more robust (e.g. if the slot
+ connected to the popup menu results in the destruction of the
+ toolbutton)
+
+- QVariant
+ Fixed canCast() for Bool -> String conversion. Fixed
+ operator== for maps.
+
+- QWaitCondition
+ Windows only: Fixed multiple waits()
+
+- QWheelEvent
+ X11 only: Support for two-wheel mice. This relies on the
+ X-Server option "ZAxisMapping" "4 5 6 7"
+ On Windows, we have not found a reliable way to distringuish
+ the two wheels. Some drivers use larger deltas, something that
+ breaks with other drivers.
+
+- QWidget
+ Make focusWidget() return the focus widget even if it has no
+ focus policy. In setEnabled(FALSE) always clear the focus.
+ Made grabWidget() more robust. Fixed isEnabledTo().
+ X11 only: set WM_WINDOW_ROLE instead of WINDOW_ROLE.
+ Windows only: fixed widget-origin pixmap backgrounds.
+
+- QWidgetStack
+ More fixes to reduce flicker.
+
+- QWorkspace
+ Traditional activeWindow() fixes. Make maximizing a window while
+ the workspace is invisible work. If the already active window
+ is clicked on, transfer focus to the child. Restore focus to
+ old subcontrol when changing the active MDI window. Make sure
+ a MDI window is not resized below a child widget's minimum
+ size. Do not allow resizing windows when we have an active
+ popup window.
+
+- QXmlSimpleReader
+ Fixed a memory leak for incremental parsing.
diff --git a/dist/changes-3.1.0 b/dist/changes-3.1.0
new file mode 100644
index 0000000..f080946
--- /dev/null
+++ b/dist/changes-3.1.0
@@ -0,0 +1,334 @@
+Qt 3.1 introduces many significant new features and many improvements
+over the 3.0.x series. This file provides an overview of the main
+changes since version 3.0.x. For further details see the online
+documentation which is included in this distribution, and also
+available at http://doc.trolltech.com/.
+
+The Qt version 3.1 series is binary compatible with the 3.0.x series:
+applications compiled for 3.0 will continue to run with 3.1.
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Qt Script for Applications
+--------------------------
+Qt 3.1 is the first Qt release that can be used with Qt Script for
+Applications (QSA). QSA provides a scripting engine, an IDE for
+creating and editing scripts and script forms, and bindings to the Qt
+API. Script-enabling a Qt application is not difficult and the IDE
+makes it easy for resellers and end-users to write their own scripts.
+QSA is due for release after Qt 3.1.
+
+
+Qt Designer
+-----------
+Qt Designer, the visual GUI builder, has undergone several usability
+improvements. A new dialog for creating and editing signals and slots
+connections has been created: it is much easier to use and much faster
+for setting up multiple connections. The widgets are now presented in
+an easy-to-use toolbox rather than in toolbars (although you can still
+have the toolbars if you want). The property editor now handles common
+properties in multiple widgets simultaneously. By popular demand,
+WYSIWYG support for QWidgetStack has been added. Rich text is now
+supported with a rich text editor. And the code editor can be used for
+ordinary member functions as well as for slots.
+
+
+Qt Assistant
+------------
+Qt Assistant, the Qt documentation browser, can now be used with
+custom documentation sets. This new functionality combined with the
+new QAssistantClient class means that you can use Qt Assistant as a
+help browser for your own applications. Qt Assistant has also been
+enhanced by the addition of a fast full text search engine.
+
+
+Motif
+-----
+The general industry-wide move away from Motif is leaving more and
+more companies in need of a migration solution. But converting large
+legacy applications in one step is often impractical. To minimize
+risks and to manage the workload companies often want to port code on
+a module by module basis. Qt 3.1 includeds a completely new Motif
+module that supports hybrid applications in which Qt code and Motif
+code coexist. (This obsoletes the earlier rudimentary Qt Xt/Motif
+extension.)
+
+
+ActiveX
+-------
+With the release of Qt 3.1, customers who use Qt for Microsoft Windows
+development can now use Qt with ActiveX. The new ActiveQt module
+provides a simple API for COM and ActiveX. The module can be used to
+create applications which host ActiveX controls, and also to create
+applications that serve ActiveX controls (e.g. Internet Explorer
+plugins).
+
+
+Qt/Mac
+------
+The introduction of Qt/Mac, a Mac OS X port of Qt, with Qt 3.0 has
+proved a great success. This port has undergone many improvements in
+Qt 3.1, especially with respect to Appearance Manager, anti-aliased
+text and user settings. The Qt OpenGL support is greatly improved, and
+uses the hardware-accelerated drivers.
+
+
+Qt/Embedded
+-----------
+Graphics, mouse and keyboard drivers can now be compiled as plugins.
+
+
+Qt library
+----------
+In addition to the new additions and enhancements referred to above,
+as with all major Qt releases, Qt 3.1 includes hundreds of
+improvements in the existing class library. Here is a brief summary of
+the most significant changes:
+
+- QTextEdit has a new text format: LogText. This is a performance and
+ memory optimized format especially designed for the fast display of
+ large amounts of text. The format supports basic highlighting,
+ including bold and colored text.
+
+- The new QSyntaxHighlighter class makes it both easy and efficient to
+ add syntax highlighting capabilities to a QTextEdit.
+
+- QHttp and QFtp in earlier Qt's were implementations of the
+ QNetworkProtocol. Both have been extended to stand in their own
+ right. If you missed some flexibility in the network protocol
+ abstractions of earlier Qt's, the new QHttp and QFtp classes should
+ provide the solution.
+
+- QAccel, used to handle keyboard shortcuts, now gracefully copes with
+ shortcut clashes. If a clash occurs, a new signal,
+ activatedAmbiguously(), is emitted. Classes that use QAccel, like
+ QButton's subclasses and QPopupMenu, make use of this new
+ functionality. Futhermore QAccel can now handle multi-key sequences,
+ for example, Ctrl+X,Ctrl+F.
+
+- QClipboard has been extended to simplify data exchange between
+ programs.
+
+- Thread support: almost all methods in the tools classes have been
+ made reentrant. QApplication::postEvent() and a few other methods
+ are now thread-safe if Qt is compiled as a multi-threaded library.
+ (The documentation now states if a class or function is thread-safe
+ or reentrant.)
+
+- A QMutexLocker class has been added to simplify the locking and
+ unlocking of mutexes.
+
+- Input methods: A selectionLength() function has been added to
+ QIMEvent. Japanese compositions are now handled correctly. Support
+ for AIMM based input methods (those working on non-Asian versions of
+ Win95/98/Me) has been added.
+
+- Large File support: Qt's internals have been modified to support
+ Large Files (> 2GB). QFileDialog will now correctly display and
+ select large files.
+
+- SQL module: Support for prepared query execution and value binding
+ has been added. Among other benefits, this makes it possible to
+ write large BLOBs (> 2 KB) to Oracle databases, and to write Unicode
+ strings to SQL Server databases.
+
+- Support for XIM on Solaris.
+
+Build process
+-------------
+The build process has been improved:
+
+- The configure script does not need QTDIR to be set anymore.
+
+- Improved support for building Qt on MSVC.NET.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QAccel:
+ Corrected illegal accelerator state when using multiple
+ keysequences. (Resulted in no accelerator being triggered when
+ there's a partial match). Only triggers on enabled
+ accelerators and their enabled items. Eats all keys in a
+ keysequence, not just the first and last.
+
+- QCString:
+ Speed-optimized replace().
+
+- QDataStream:
+ Applies to printable data streams only: If the version number
+ of the device is less than 4, use the same streaming format
+ that was used in Qt 2.3 and earlier.
+
+- QDataTable:
+ Respect read-only columns. Make it possible to swap columns.
+
+- QDockWindow:
+ Added a standard widget constructor (taking a QWidget *parent,
+ const char *name and WFlags). Improved docking behavior.
+
+- QFileDialog:
+ Windows only: make Qt's filedialog work properly with network
+ paths.
+
+- QFontMetrics:
+ Windows only: Fixed QFontMetrics::boundingRect( QChar c ) to
+ work for non-TrueType fonts.
+
+- QHeader:
+ Optimized the sectionSizeHint() calculation, which in turn
+ speeds up all QHeader size/label calculations.
+
+- QIconFactory:
+ Avoid infinite loops when recursively calling
+ QPixmap::pixmap().
+
+- QIconView:
+ Fixed navigation and selection with arrow keys. Some speedups
+ when repainting.
+
+- QKeySequence:
+ Treat Unicode characters in string defined sequences
+ correctly. So, now letters like Æ, Ø and Å should work as
+ accelerators, even through translation files.
+
+- QLayout:
+ alignmentRect() respects the layout's maximum size.
+
+- QLineEdit:
+ Added a lostFocus() signal. Double-clicking only uses spaces
+ as word bounderies for the selection now, not dots, commas,
+ etc. Support double-click+mousemove selection.
+
+- QListBox:
+ Fixed the item which is passed into the contextMenuRequested()
+ signal (this was sometimes wrong). Don't select items that are
+ not selectable.
+
+- QListView:
+ Shift selection in Extended mode now follows Windows
+ Shift-selection standard. Erase empty area when drawing
+ listviews without columns. Only drops on drop-enabled items
+ that accept drops.
+
+- QListViewItem:
+ Optimized size claculation for multi-line items.
+
+- QMainWindow:
+ Base the minimumSizeHint() on the sizeHint()s of the left hand
+ dock area (instead of the minimumSize()).
+
+- QMenuBar:
+ Fixed broken Alt release detection. Fixed flickering. Fixed
+ empty menubars resizing properly.
+
+- QObject:
+ Fixed return value of disconnect(). Fixed disconnect()ing
+ SIGNALs from SIGNALs and disconnect()ing multiple SLOTs with
+ the same name from a SIGNAL.
+
+- QProcess:
+ Unix only: Don't eat the file descriptors if a lot of
+ processes (with short runtimes) are started immediately after
+ each other.
+
+- QPSQLDriver:
+ Make the driver compile with the standard PostgreSQL source
+ distribution under Windows. Better handling of network,
+ datetime and geometrical datatypes.
+
+- QRegion:
+ Fixed setRects() to calculate the bounding rectangle
+ correctly.
+
+- QScrollView:
+ Doesn't reposition the view when the user is scrolling the
+ view.
+
+- QSpinBox:
+ Fixed setValue() so that any not-yet-interpreted input is
+ ignored when setting a new value.
+
+- QString:
+ Support QTextCodec::codecForCStrings(). Support
+ std::string<==>QString conversion when STL support is on.
+
+- QSyntaxHighlighter:
+ Added function rehighlight(). Improved internals to be more
+ efficient (less calls to highlightParagraph() necessary).
+
+- QTable:
+ Fixed Tab/BackTab handling to always work. Fixed
+ setColumnLabels() and setRowLabels().
+
+- QTableItem (and subclasses):
+ Now supports global struts. (See QApplication::globalStrut().)
+
+- QTDSDriver:
+ Added support for binary datatypes.
+
+- QTextCodec:
+ Added QTextCodec::codecForCStrings and QTextCodec::codecForTr.
+
+- QTextEdit:
+ Fixed a painting error which resulted in areas of the textedit
+ not being erased correctly. Make sure repainting is done after
+ changing the underline-links setting. Renamed 'allowTabs'
+ property to 'tabChangesFocus' (inverted value). Added a new
+ property 'autoFormatting'. When exporting HTML also quote
+ quotes. Fixed a background erasing bug which messed up the
+ view.
+
+- QUrl:
+ Recognize Windows drive letters not only in the form of "c:/"
+ but also in the form "c:" (without the '/').
+
+- QWidget:
+ Fixed some visibility issues.
+
+****************************************************************************
+* Qt Designer *
+****************************************************************************
+
+- Now displays the classname of "gray box" custom widgets in the gray
+ box on the form.
+
+- Accept tildes (~) in the project settings.
+
+- A new command line tool conv2ui (in qt/tools/designer/tools) has
+ been added, to convert dialog description files from different file
+ formats to .ui files without the need to invoke Qt Designer. This
+ tool uses the same plugins as Qt Designer for loading other dialog
+ description files.
+
+- An import filter for .kdevdlg files has been added.
+
+- Actions in the action editor are now sortable.
+
+- Improved usability of more dialogs (in-place renaming, drag'n'drop,
+ etc.)
+
+- Preserve creation order of forward declarations, variables, etc.
+
+- Save comments for actions.
+
+- uic: Fixed generating code for QStringList properties.
+
+****************************************************************************
+* Qt Assistant *
+****************************************************************************
+
+- Fixed some accelerator conflicts.
+
+****************************************************************************
+* Qt Linguist *
+****************************************************************************
+
+- Handle trailing backslash in strings correctly in lupdate.
+
+******************************** END ***************************************
diff --git a/dist/changes-3.1.0-b1 b/dist/changes-3.1.0-b1
new file mode 100644
index 0000000..527992f
--- /dev/null
+++ b/dist/changes-3.1.0-b1
@@ -0,0 +1,692 @@
+Qt 3.1 introduces many significant new features and many improvements
+over the 3.0.x series. This file provides an overview of the main
+changes since version 3.0.5. For further details see the online
+documentation which is included in this distribution, and also
+available at http://doc.trolltech.com/.
+
+The Qt version 3.1 series is binary compatible with the 3.0.x series:
+applications compiled for 3.0 will continue to run with 3.1.
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Qt Script for Applications
+--------------------------
+Qt 3.1 is the first Qt release that can be used with Qt Script for
+Applications (QSA). QSA provides a scripting engine, an IDE for
+creating and editing scripts and script forms, and bindings to the Qt
+API. Script-enabling a Qt application is not difficult and the IDE
+makes it easy for resellers and end-users to write their own scripts.
+QSA is due for release after Qt 3.1.
+
+
+Qt Designer
+-----------
+Qt Designer, the visual GUI builder, has undergone several usability
+improvements. A new dialog for creating and editing signals and slots
+connections has been created: it is much easier to use and much faster
+for setting up multiple connections. The widgets are now presented in
+an easy-to-use toolbox rather than in toolbars (although you can still
+have the toolbars if you want). The property editor now handles common
+properties in multiple widgets simultaneously. By popular demand,
+WYSIWYG support for QWidgetStack has been added. Rich text is now
+supported with a rich text editor. And the code editor can be used for
+ordinary member functions as well as for slots.
+
+
+Qt Assistant
+------------
+Qt Assistant, the Qt documentation browser, can now be used with
+custom documentation sets. This new functionality combined with the
+new QAssistantClient class means that you can use Qt Assistant as a
+help browser for your own applications. Qt Assistant has also been
+enhanced by the addition of a fast full text search engine.
+
+
+Motif
+-----
+The general industry-wide move away from Motif is leaving more and
+more companies in need of a migration solution. But converting large
+legacy applications in one step is often impractical. To minimize
+risks and to manage the workload companies often want to port code on
+a module by module basis. Qt 3.1 includeds a completely new Motif
+module that supports hybrid applications in which Qt code and Motif
+code coexist. (This obsoletes the earlier rudimentary Qt Xt/Motif
+extension.)
+
+
+ActiveX
+-------
+With the release of Qt 3.1, customers who use Qt for Microsoft Windows
+development can now use Qt with ActiveX. The new ActiveQt module
+provides a simple API for COM and ActiveX. The module can be used to
+create applications which host ActiveX controls, and also to create
+applications that serve ActiveX controls (e.g. Internet Explorer
+plugins).
+
+
+Qt/Mac
+------
+The introduction of Qt/Mac, a Mac OS X port of Qt, with Qt 3.0 has
+proved a great success. This port has undergone many improvements in
+Qt 3.1, especially with respect to Appearance Manager, anti-aliased
+text and user settings. The Qt OpenGL support is greatly improved, and
+uses the hardware-accelerated drivers.
+
+
+Qt/Embedded
+-----------
+Graphics, mouse and keyboard drivers can now be compiled as plugins.
+
+
+Qt library
+----------
+In addition to the new additions and enhancements referred to above,
+as with all major Qt releases, Qt 3.1 includes hundreds of
+improvements in the existing class library. Here is a brief summary of
+the most significant changes:
+
+- QTextEdit has a new text format: LogText. This is a performance and
+ memory optimized format especially designed for the fast display of
+ large amounts of text. The format supports basic highlighting,
+ including bold and colored text.
+
+- The new QSyntaxHighlighter class makes it both easy and efficient to
+ add syntax highlighting capabilities to a QTextEdit.
+
+- QHttp and QFtp in earlier Qt's were implementations of the
+ QNetworkProtocol. Both have been extended to stand in their own
+ right. If you missed some flexibility in the network protocol
+ abstractions of earlier Qt's, the new QHttp and QFtp classes should
+ provide the solution.
+
+- QAccel, used to handle keyboard shortcuts, now gracefully copes with
+ shortcut clashes. If a clash occurs, a new signal,
+ activatedAmbiguously(), is emitted. Classes that use QAccel, like
+ QButton and QPopupMenu, make use of this new functionality.
+ Futhermore QAccel can now handle multi-key sequences, for example,
+ Ctrl+X,Ctrl+F.
+
+- QClipboard has been extended to simplify data exchange between
+ programs.
+
+- Thread support: almost all methods in the tools classes have been
+ made reentrant. QApplication::postEvent() and a few other methods
+ are now thread-safe if Qt is compiled as a multi-threaded library.
+ (The documentation now states if a class or function is thread-safe
+ or reentrant.)
+
+- A QMutexLocker class has been added to simplify the locking and
+ unlocking of mutexes.
+
+- Input methods: A selectionLength() function has been added to
+ QIMEvent. Japanese compositions are now handled correctly. Support
+ for AIMM based input methods (those working on non-Asian versions of
+ Win95/98/Me) has been added.
+
+- Large File support: Qt's internals have been modified to support
+ Large Files (> 2GB). QFileDialog will now correctly display and
+ select Large Files.
+
+- SQL module: Support for prepared query execution and value binding
+ has been added. Among other benefits, this makes it possible to
+ write large BLOBs (> 2 KB) to Oracle databases, and to write Unicode
+ strings to SQL Server databases.
+
+
+Build process
+-------------
+The build process has been improved:
+
+- The configure script does not need QTDIR to be set anymore.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+New classes
+==================
+
+- QBackInsertIterator
+- QEventLoop
+- QIconFactory
+- QMutexLocker
+- QSyntaxHighlighter
+
+
+QAction
+------------------
+New functions:
+ void setVisible( bool )
+ bool isVisible() const
+
+
+QCanvas
+------------------
+New functions:
+ void invalidate()
+ bool isValid() const
+
+
+QColorDialog
+------------------
+New functions:
+ static void setStandardColor( int, QRgb )
+
+
+QAccel
+------------------
+New signals:
+ void activatedAmbiguously( int id )
+
+
+QApplication
+------------------
+The event loop has been moved to the QEventLoop class, making it
+easier to integrate other toolkits with Qt.
+
+New functions:
+ QEventLoop *eventLoop() const
+ void setEventLoop( QEventLoop * )
+ QString sessionKey() const
+
+
+QClipboard
+------------------
+New functions:
+ void clear( Mode mode )
+ bool supportsSelection() const
+ bool ownsSelection() const
+ bool ownsClipboard() const
+ QString text( Mode mode ) const
+ QString text( QCString& subtype, Mode mode ) const
+ void setText( const QString &, Mode mode )
+ QMimeSource *data( Mode mode ) const
+ void setData( QMimeSource*, Mode mode )
+ QImage image( Mode mode ) const
+ QPixmap pixmap( Mode mode ) const
+ void setImage( const QImage &, Mode mode )
+ void setPixmap( const QPixmap &, Mode mode )
+
+
+QDesktopWidget
+------------------
+New functions:
+ const QRect& screenGeometry( QWidget *widget ) const
+ const QRect& screenGeometry( const QPoint &point ) const
+ const QRect& availableGeometry( int screen ) const
+ const QRect& availableGeometry( QWidget *widget ) const
+ const QRect& availableGeometry( const QPoint &point ) const
+
+
+QFileDialog
+------------------
+Large Files (> 2GB) are now correctly displayed and selected.
+
+
+QFileInfo
+------------------
+QFileInfo now supports Large Files (> 2GB) internally. To maintain
+binary compatibility the QFileInfo API cannot be adapted before Qt 4
+and will truncate file sizes and offsets to 4 GB.
+
+New functions:
+ bool isHidden() const
+
+
+QFile
+------------------
+QFile now supports Large Files (> 2GB) internally. To maintain binary
+compatibility the QFile API cannot be adapted before Qt 4 and will
+truncate file sizes and offsets to 4 GB.
+
+
+QDir
+------------------
+QDir now supports Large Files (> 2GB).
+
+
+QImEvent
+------------------
+New functions:
+ in selectionLength() const
+
+
+QIconSet
+------------------
+New functions:
+ void installIconFactory( QIconFactory *factory )
+
+
+QImage
+------------------
+New functions:
+ static QImage fromMimeSource( const QString& abs_name )
+
+
+QMetaObject
+------------------
+New functions:
+ QStrList enumeratorNames( bool super ) const
+ int numEnumerators( bool super ) const
+ static bool hasMetaObject( const char *class_name )
+
+
+QMenuData
+------------------
+New functions:
+ bool isItemVisible( int id ) const
+ void setItemVisible( int id, bool visible )
+Both functions are inherited by QMenuBar and QPopupMenu
+
+
+QPaintDevice
+------------------
+New functions (x11 only):
+ static Qt::HANDLE x11AppRootWindow()
+ static int x11AppDepth( int screen )
+ static int x11AppCells( int screen )
+ static Qt::HANDLE x11AppRootWindow( int screen )
+ static Qt::HANDLE x11AppColormap( int screen )
+ static void *x11AppVisual( int screen )
+ static bool x11AppDefaultColormap( int screen )
+ static bool x11AppDefaultVisual( int screen )
+ static int x11AppDpiX( int )
+ static int x11AppDpiY( int )
+ static void x11SetAppDpiX( int, int )
+ static void x11SetAppDpiY( int, int )
+
+
+QPicture
+------------------
+New functions:
+ void setBoundingRect( const QRect &r )
+
+
+QPixmap
+------------------
+New functions:
+ bool hasAlpha() const
+ static QPixmap fromMimeSource( const QString& abs_name )
+
+
+QPrinter
+------------------
+New functions:
+ void setMargins( uint top, uint left, uint bottom, uint right )
+ void margins( uint *top, uint *left, uint *bottom, uint *right ) const
+
+Improvements:
+ Handle masked images and pixmaps correctly. Add code to handle
+ asymmetrical printer margins correctly.
+
+
+QSessionManager
+------------------
+New functions:
+ QString sessionKey() const
+
+
+QStyleOption
+------------------
+New functions:
+ QStyleOption( QCheckListItem* i )
+ QCheckListItem* checkListItem() const
+
+New enums values:
+ PE_CheckListController, PE_CheckListIndicator,
+ PE_CheckListExclusiveIndicator, PE_PanelGroupBox
+ CE_MenuBarEmptyArea
+ CE_DockWindowEmptyArea
+ PM_CheckListButtonSize
+ CT_TabBarTab, CT_Slider, CT_Header, CT_LineEdit
+ SH_GroupBox_TextLabelVerticalAlignment
+
+
+QThread
+------------------
+New functions:
+ void terminate()
+
+
+QTranslator
+------------------
+New functions:
+ bool load( const uchar *data, int len )
+
+
+QVariant
+------------------
+New functions:
+ QVariant( const QPen& )
+ const QPen toPen() const
+ QPen& asPen()
+ bool isNull() const
+
+New enum values:
+ KeySequence, Pen
+
+
+QWidget
+------------------
+All top-level widgets will now try to find an appropriate application
+icon when they're not given one, trying in this order
+ 1. Parent widget's icon
+ 2. Top-level widget's icon
+ 3. Application main widget's icon
+
+New functions:
+ bool isFullScreen() const
+ void setSizePolicy( QSizePolicy::SizeType hor, QSizePolicy::SizeType ver, bool hfw = FALSE )
+
+New enum values:
+ AncestorOrigin
+
+
+QWMatrix
+------------------
+Two different transformation modes for painter transformations are now
+available. See the QWMatrix documentation for details.
+
+New functions:
+ QPointArray mapToPolygon( const QRect &r ) const
+ double det() const
+ static void setTransformationMode( QWMatrix::TransformationMode m )
+ static TransformationMode transformationMode()
+
+New enums:
+ TransformationMode { Points, Areas }
+
+
+QFtp
+------------------
+While still remaining a subclass of QNetworkProtocol, QFtp can be now
+used directly for more advanced FTP operations. The QFtp documentation
+provides details of the extensions to the API.
+
+
+QHttp
+------------------
+While still remaining a subclass of QNetworkProtocol, QHttp can be now
+used directly for more advanced HTTP operations. The QHttp
+documentation provides details of the extensions to the API.
+
+Related new classes:
+ QHttpHeader
+ QHttpResponseHeader
+ QHttpRequestHeader
+
+
+QSqlDriver
+------------------
+New enum values:
+ Unicode, PreparedQueries, OracleBindingStyle, ODBCBindingStyle
+
+
+QSqlQuery
+------------------
+New functions:
+ bool isForwardOnly() const
+ void setForwardOnly( bool forward )
+ bool exec()
+ bool prepare( const QString& query )
+ void bindValue( const QString& placeholder, const QVariant& val )
+ void bindValue( int pos, const QVariant& val )
+ void addBindValue( const QVariant& val )
+
+
+QTableSelection
+------------------
+New functions:
+ QTableSelection( int start_row, int start_col, int end_row, int end_col )
+
+
+QTable
+------------------
+New properties:
+ int numSelections
+
+New functions:
+ void selectCells( int start_row, int start_col, int end_row, int end_col )
+ void selectRow( int row )
+ void selectColumn( int col )
+ void updateHeaderStates()
+ void setRowLabels( const QStringList &labels )
+ void setColumnLabels( const QStringList &labels )
+
+
+QCString
+------------------
+New functions:
+ QCString &replace( char c, const char *after )
+ QCString &replace( const char *, const char * )
+ QCString &replace( char, char )
+
+New global functions:
+ QByteArray qCompress( const uchar* data, int nbytes )
+ QByteArray qUncompress( const uchar* data, int nbytes )
+ QByteArray qCompress( const QByteArray& data )
+ QByteArray qUncompress( const QByteArray& data )
+Improvements:
+ Speed optimisations in lots of the old search and replace
+ functions.
+
+
+QDate
+------------------
+New functions:
+ int weekNumber( int *yearNum = 0 ) const
+ static QDate currentDate( Qt::DateTimeSpec )
+
+
+QTime
+------------------
+New functions:
+ static QTime currentTime( Qt::DateTimeSpec )
+
+
+QDateTime
+------------------
+New functions:
+ static QDateTime currentDateTime( Qt::DateTimeSpec )
+
+
+QPtrList
+------------------
+New functions:
+ bool replace( uint i, const type *d )
+
+
+QRegExp
+------------------
+New functions:
+ QString errorString()
+ static QString escape( const QString& str )
+ int numCaptures() const
+
+
+QSettings
+------------------
+New functions:
+ QSettings( Format format )
+ void setPath( const QString &domain, const QString &product, Scope = User )
+ void beginGroup( const QString &group )
+ void endGroup()
+ void resetGroup()
+ QString group() const
+
+New enums:
+ Format { Native = 0, Ini }
+ Scope { User, Global }
+
+
+QChar
+------------------
+Updated Unicode tables to Unicode-3.2
+
+
+QString
+------------------
+New functions:
+ QString &append( const QByteArray & )
+ QString &append( const char * )
+ QString &prepend( const QByteArray & )
+ QString &prepend( const char * )
+ QString &remove( QChar c )
+ QString &remove( char c )
+ QString &remove( const QString & )
+ QString &remove( const QRegExp & )
+ QString &remove( const char * )
+ QString &replace( uint index, uint len, QChar )
+ QString &replace( uint index, uint len, char c )
+ QString &replace( QChar c, const QString & )
+ QString &replace( char c, const QString & after )
+ QString &replace( const QString &, const QString & )
+ QString &replace( QChar, QChar )
+ QString &operator+=( const QByteArray &str )
+ QString &operator+=( const char *str )
+ static QString fromUcs2( const unsigned short *ucs2 )
+ const unsigned short *ucs2() const
+
+Improvements:
+ find(), findRev() and contains() use either a fast hashing
+ algorithm (for short strings) or an optimized Boyer-Moore
+ implementation for long strings. Lots of smaller performance
+ optimisations.
+
+
+QTextStream
+------------------
+New functions:
+ QTextCodec *codec()
+
+
+QTimeEdit
+------------------
+New properties:
+ Display display
+
+New functions:
+ uint display() const
+ void setDisplay( uint )
+
+New enums:
+ Display { Hours, Minutes, Seconds, AMPM }
+
+
+QFrame
+------------------
+New enum values:
+ GroupBoxPanel
+
+
+QGroupBox
+------------------
+New properties:
+ bool flat
+
+New functions:
+ bool isFlat() const
+ void setFlat( bool b )
+
+
+QListBox
+------------------
+New functions:
+ QListBoxItem* selectedItem() const
+
+
+QListView
+------------------
+New functions:
+ int sortColumn() const
+
+
+QSlider
+------------------
+New functions:
+ void addLine() ( as slot)
+ void subtractLine() (as slot)
+
+
+QTextBrowser
+------------------
+New functions:
+ void sourceChanged( const QString& )
+ void anchorClicked( const QString&, const QString& )
+
+
+QTextEdit
+------------------
+QTextEdit offers another TextFormat (LogText), which is optimized
+(speed and memory) for displaying large read-only texts normally used
+for logging.
+
+New properties:
+ bool allowTabs
+
+New functions:
+ QString anchorAt( const QPoint& pos, AnchorAttribute a )
+ void setAllowTabs( bool b )
+ bool allowTabs() const
+ void insert( const QString &text, uint insertionFlags = CheckNewLines | RemoveSelected )
+
+New signals:
+ void clicked( int parag, int index )
+ void doubleClicked( int parag, int index )
+
+New enums:
+ TextInsertionFlags { RedoIndentation, CheckNewLines, RemoveSelected }
+
+New enum values:
+ AtWordOrDocumentBoundary
+
+
+QToolButton
+------------------
+New properties:
+ TextPosition textPosition
+
+New functions:
+ TextPosition textPosition() const
+ void setTextPosition( TextPosition pos )
+
+New enums:
+ TextPosition { Right, Under }
+
+
+QTooltip
+------------------
+New functions:
+ static void setWakeUpDelay( int )
+
+
+QWhatsThis
+------------------
+New functions:
+ static void setFont( const QFont &font )
+
+
+QDomDocument
+------------------
+New functions:
+ QString toString( int ) const
+ QCString toCString( int ) const
+
+
+QFont on X11
+------------------
+Improvements:
+ Safe handling of huge font sizes. Added support for the new
+ Xft2 font library on XFree-4.x.
+
+
+QRegion on X11
+------------------
+Improvements:
+ Removed the 16 bit size limitation
+
+****************************************************************************
diff --git a/dist/changes-3.1.0-b2 b/dist/changes-3.1.0-b2
new file mode 100644
index 0000000..f5c8c14
--- /dev/null
+++ b/dist/changes-3.1.0-b2
@@ -0,0 +1,220 @@
+Qt 3.1 introduces many significant new features and many improvements
+over the 3.0.x series. For an overview of the main changes between
+3.0.x and 3.1, look at the changes-3.1.0-b1 file. This file describes
+the changes between Qt 3.1 beta1 and Qt 3.1 beta2.
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+The binary incompatibilities that were introduced in Qt 3.1 beta1
+have been fixed.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QAction
+ Don't update when nothing has changed.
+
+- QActionGroup
+ Syncronize comboboxes correctly for groups with
+ separators. Set the initial currentItem of comboboxes to the
+ action that is on when adding the group. Emit activated signal
+ for non-toggle actions selected from a combobox. Apply the
+ state of the action group for new widgets.
+
+- QApplication
+ Correctly set the accept() flag on accel events. Obsoleted
+ processOneEvent(), we have a better way for integrating
+ eventloops now. (See QEventLoop's documentation.)
+ Windows only: reserve more space for very long application
+ filenames.
+
+- QCheckTableItem
+ Use the colorgroup passed in for the background color and not
+ the viewport's.
+
+- QColor
+ Windows only: Fix palette allocation and ManyColor mode on
+ Windows.
+
+- QComboBox
+ Emit activated() signals from the wheel event handler.
+
+- QComboTableItem
+ Make sure stringlist is updated even if setStringList() is
+ called while an editor exists.
+
+- QDataTable
+ Windows only: If edit confirmation was switched on and
+ the user cancelled an update by clicking in a different field,
+ the current row was needlessly changed.
+
+- QDateTimeEdit/QTimeEdit
+ Now supports wraparound for time editing.
+
+- QDesktopWidget
+ Windows only: Allow explicit creation of QDesktopWidgets.
+
+- QDns
+ Fix a crash when a QDns object is deleted in a slot connected
+ to its resultsReady() signal.
+
+- QDockWindow
+ Windows only: Don't pass window activation around
+ unnecessarily when the activation is ignored anyway. Also
+ fixed repaint errors while dragging dock windows. Remove
+ floating windows from the mainwindow's internal lists when
+ deleting.
+
+- QEventLoop
+ Renamed processNextEvent(flags,bool) to processEvents(flags)
+ and introduced new ProcessEvents flag, WaitForMore. Remove
+ processOneEvent since it is redundant.
+
+- QFileDialog
+ Windows only: Disable NTFS permission lookup during filedialog
+ population. This can take a long time, and the information is
+ not really required.
+
+- QGLContext
+ Added a workaround to get overlays to work on ATi FireGL
+ cards.
+
+- QGLWidget
+ Added support for rendering text into a GL context with the
+ renderText() calls.
+
+- QHeader
+ Draw the sort arrow at the right position with multi-line
+ header labels. Scale the correct sections when the header
+ sections are reordered. Respect orientation() in sizeHint().
+
+- qHeapSort()
+ Fixed to only require operator<, instead of a mix of
+ operator<, <=, and >.
+
+- QIconView
+ Optimize updates on focus/window activation changes.
+
+- QLibrary
+ Windows only: only append ".dll" extension if no extension has
+ been provided.
+
+- QListBox
+ Don't call ensureCurrentVisible() in resizeEvent() unless the
+ current item was visible when you started resizing.
+
+- QListView
+ Don't draw the cell if the cell wouldn't be visible due to
+ having a width or height of 0. Don't call cancelRename() when
+ the rename was OK'd. When showing a tooltip make sure it's
+ only for that column and not for the whole item.
+
+- QMacStyle
+ Many improvements to follow the native style more closely.
+
+- QMainWindow
+ Close all floating dockwindows of the mainwindow in the close
+ event.
+
+- QMenuData
+ Make removeItem(int id) work on trees like the other functions
+ that take IDs as arguments.
+
+- QObject
+ Make sender() a safer function to use:
+ - it cannot be dangling anymore (points to 0 if the sender was
+ deleted or disconnected)
+ - it maintains its value after other signals have been emitted
+ Fixed compatibility problem in connect(). Remove quadratic
+ behaviour in insertChild()
+
+- QPicture
+ Proper streaming for null pictures.
+
+- QPixmap
+ X11 only: allow grabWindow() to work on a screen other than
+ the default screen.
+
+- QPopupMenu
+ Draw submenu items disabled if the submenu is disabled. Fix
+ null-pointer dereferencing for dynamically changing menus.
+
+- QProcess
+ Windows only: make the tryTerminate() function work for
+ windows applications (it still does not work for
+ consoleapplications, though).
+
+- QSocket
+ Don't crash if the readBlock() returned 0.
+
+- QSplitter
+ addWidget() now reparents the widget if necessary.
+
+- QTable
+ Set the table of the item to the table in insertItem(), so
+ takeItem()/insertItem() can be used to move items between
+ tables.
+
+- QWidget
+ Clear WDestructiveClose before calling deleteLater() on
+ widgets. Event processing during destruction might otherwise
+ have another close event come along, which would issue another
+ deleteLater() call. Added a new function toggleShowHide(bool show).
+ Simplified visible() handling and added a convenience property
+ "shown" and a write function for "hidden". Save WFlags in
+ showFullScreen() and restore them so flags are remembered
+ correctly.
+
+- QWindowsStyle
+ Make the Windowsstyle obey the system's scrollbar widths.
+
+- qUncompress()
+ Don't hang forever if the expected size passed in is 0. Return
+ an empty bytearray if something went wrong instead of garbage
+ data.
+
+
+
+
+****************************************************************************
+* Qt Designer *
+****************************************************************************
+
+- Improved the look of the Toolbox
+
+- Many small usibility improvements in the special editors for widgets
+ (drag'n'drop, in-place renaming, etc.).
+
+- New icon look.
+
+- Accept class names with "::" and generate correct namespace code in
+ uic.
+
+- Reduced startup time.
+
+- Fixed a crash when loading .ui files using QWidgetFactory.
+
+- Cleaned up some old dialogs and removed obsolete settings.
+
+- Improved the .dlg import plugin.
+
+- Button text properties can be edited in a multi-line editor now,
+ since all buttons support multi-line labels.
+
+****************************************************************************
+* Qt Assistant *
+****************************************************************************
+
+- Added commandline option -removeContentFile.
+
+- New icon look.
+
+****************************************************************************
+* Qt Linguist *
+****************************************************************************
+
+- New icon look.
diff --git a/dist/changes-3.1.1 b/dist/changes-3.1.1
new file mode 100644
index 0000000..41a5742
--- /dev/null
+++ b/dist/changes-3.1.1
@@ -0,0 +1,212 @@
+Qt 3.1.1 is a bugfix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.1.0
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+- The build issues with the Professional Edition have been solved.
+
+- The build problems reported on Solaris and HP-UX have been addressed.
+
+- Detection of Xft2 support has been added.
+
+- The installer and reconfigure tools on Windows have been fixed.
+
+- Look'n'Feel improvements have been made in the Qt/Mac version.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QAccel
+ Fixed for single key accelerators. Made Shift modifier work
+ for all key combinations, unless an accelerator with Shift is
+ defined.
+
+- QAction
+ Remove iconset when a null-iconset is being set.
+
+- QApplication
+ Don't overwrite explicitly set font with the default font when
+ using the static methods before calling the constructor.
+ X11 only: Support custom color maps on 8-bit visuals.
+
+- QCheckBox
+ Draw focus indicator into indicator if the text label is empty.
+
+- QClipboard
+ X11 only: Null-terminate encoded strings.
+
+- QComboBox
+ Made sure the current item is selected in the list. Call
+ focusIn/OutEvent handlers when the lineedit changes focus.
+
+- QDataTable
+ Update the current cell when selecting rows.
+
+- QDialog
+ Don't find a place for dialogs that have been explicitly
+ moved.
+
+- QDir
+ Improved filtered lookup.
+
+- QDockWindow
+ Emit visibilityChanged signal only if visibility relative to
+ the dock area has changed.
+
+- QEventLoop
+ Implement this API on Windows and Mac.
+
+- QFileDialog
+ Fix visibility of preview widgets. Renaming files now also
+ works in ExistingFiles mode.
+
+- QFont
+ X11 only: Fixed width calculation for undefined characters.
+
+- QFrame
+ Erase the margin region for flicker-optimized subclasses.
+
+- QFtp
+ Don't try to connect multiple times to the server.
+
+- QHttp
+ Fix special case for "Content-Length: 0" transfers.
+
+- IME (Input Methods)
+ Windows only: Accept the input when the widget loses focus.
+
+- QLibrary
+ Mac only: Implement path searching to look in standard loader places
+ for plugins.
+
+- QLineEdit
+ Draw background pixmap with the correct offset. Fixed
+ undo/redo.
+ Mac only: Support for native navigation and selection with keyboard.
+
+- QListBox
+ Fixed null-pointer crash in QFileDialog.
+
+- QListView
+ Fixed null-pointer crash when reimplementing insertItem.
+
+- QMenuBar
+ Improved focus handling.
+
+- QMime
+ Support URLs on Japanese Win98.
+ Windows only: Support URLs on network drives.
+
+- QOCIDriver
+ Improved handling for datatype mismatches
+
+- QODBCDriver
+ Don't report Unicode support on Win9x/Me. Support
+ high-precision values. Support fetchLast in forward-only
+ databases
+
+- QPainter
+ Make endpixel rendering consistent on all platforms. Draw
+ focus rectangles with better contrast. Fixed text rendering
+ with wordbreak.
+
+- QPixmap
+ Mac only: Support alpha channels when converting from a
+ QImage.
+
+- QPopupMenu
+ Fixed offset errors and keyboard navigation for invisible
+ items. Allow overlapping of menus with desktop elements (e.g.
+ taskbar). Avoid flicker for context menus.
+
+- QPrinterDialog
+ Unix only: Try harder to find all printers.
+
+- QProcess
+ Windows only : Start batch files with spaces in filename.
+
+- QScrollView
+ Don't propagate accepted contents mouse events.
+
+- QSettings
+ X11 only: Don't read Qt specific settings if application is
+ not desktop-settings-aware.
+ Windows only: Handle null-terminations correctly on
+ Win95/98/Me. Fixed a resource leak.
+
+- QSqlCursor
+ Improved performance for multiple inserts
+
+- QString
+ Pass base parameter to recursive calls in setNum().
+
+- QStyle
+ Make better use of the style flags.
+
+- QTabBar
+ Fixed focus handling for dynamically created tab widgets.
+
+- QTable
+ Make sizeHint implementation depend on header
+ visibility. Update the geometry of cell widgets in
+ setRowHeight() and setColumnWidth().
+
+- QTableItem
+ Fixed sizeHint() for items with wordwrap and items with
+ newlines in the text.
+
+- QTextCodecFactory
+ Load plugins correctly.
+
+- QTextEdit
+ Fixed rendering of selections in inactive windows. Return the
+ string with format tags in LogText mode. Non-breaking
+ whitespaces (0xA0) are no longer converted to spaces in text().
+
+- QWheelEvent
+ X11 only: Support second mouse wheel (since there is no
+ documented API for this on Windows).
+
+- QWidget
+ Fix showHidden(). Propagate palettes and fonts correctly to
+ children. Don't block modeless children of modal dialogs.
+
+- QWorkspace
+ Don't return invalid pointers to closed MDI clients.
+
+
+****************************************************************************
+* Tools *
+****************************************************************************
+
+- moc and uic
+ Delete output files before aborting.
+
+- uic
+ Don't print debug messages from generated code. Fixed column
+ and row labeling. Don't generate code for database specific
+ properties.
+
+- Qt Designer
+ Fixed reported crashes.
+
+- Qt Assistant
+ Flush stdout to make sure that clients get the correct port
+ number.
+
+
+****************************************************************************
+* Extensions *
+****************************************************************************
+
+- ActiveQt
+ Fixed null-pointer crashes for QVariant parameters. Try harder
+ to convert types. Fixed Qt control placement and property
+ handling in Visual Basic. Improved workaround for Word
+ type library problems. Integrated hosted controls in tab focus
+ chain. Support property overloading in Qt controls.
diff --git a/dist/changes-3.1.2 b/dist/changes-3.1.2
new file mode 100644
index 0000000..79e0136
--- /dev/null
+++ b/dist/changes-3.1.2
@@ -0,0 +1,631 @@
+
+Qt 3.1.2 is a bugfix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.1.1
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Some build fixes on different platforms. Many small documentation
+fixes.
+
+XFree86 only: Tablet support now also looks for devices called "pen",
+not just "stylus" and "eraser".
+
+Animations: Less CPU-consuming roll effects.
+X11 only: Disable effects on displays with <16bpp (rather than
+falling back to the scrolling).
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QAccel
+ Allow localization of status bar messages. Try harder to
+ distinguish between an accelerator and the identical
+ accelerator with Shift in case on of them is currently
+ disabled.
+
+- QAccessible
+ Send accessibility notification for selection changes in
+ menubars and popup menus. Send accessibility
+ notifications for QListBox currentItem/selection changes.
+
+- QActionGroup
+ Implement visibility for drop-down actiongroups.
+
+- QApplication
+ Return focus to the widget that had it before a popup opened
+ even if the focus is passed on during the show event handling.
+ When the programmer/user explicitly sets the style (either
+ with QApplication::setStyle or the -style command line
+ option), do not reset the style on settings changes. Creating
+ a second QApplication reads the settings again.
+ Windows only: Emit aboutToQuit() when the user logs off. Send
+ a focusOut event to the focus widget when the user tries to
+ switch applications using Alt+Tab. Fixed setting of
+ desktop-wide fade and scroll effects.
+ Windows95/98/Me: Fixed enter/leave handling. Among other
+ benefits this makes tooltips work more reliably.
+ X11 only: Various fixes for input methods, e.g. Korean
+ 'ami'. Some startup performance improvements with
+ QSettings. Mark the internal wakeUpGuiThread() pipe with
+ FD_CLOEXEC. Call XFilterEvent before the public X11 event
+ filters to avoid applications filtering out events that are
+ necessary for input methods to operate. Removed old en_US
+ locale workaround for Solaris. Close all open popups when
+ clicking on a screen different from the popup's screen. Do not
+ force 256 colors on 8-bit display (used to be a workaround for
+ a vnc bug).
+ Mac only: Popupmenus that are dismissed by clicking outside of their
+ bounds will no longer send the event to the widget clicked on (to avoid
+ selection changing when canceling a context menu). QContextMenuEvents
+ will be sent in the same style as Windows/X11 to make the platforms
+ more consistent, additionally mapping of Ctrl+Click to RightButton has
+ been added to allow easy context menu handling. Added warnings when a
+ Qt application is run outside of an application bundle (in GUI mode)
+ this will prevent accidental starving from events. Correct state when a
+ modal dialog is shown (to disable the menubar) is used now, and is
+ emulated to feel like Carbon applications. Fixed bug so that
+ QApplication::processEvents() can be called before
+ QApplication::exec(). Window activation will not change when a popup
+ menu is displayed. Toolbar toggle button will only toggle the top dock
+ in a QMainWindow. European text composition is supported now to take
+ advantage of TextInput modules available on Mac OS X. Window activation
+ has been improved to allow interleaving windows of different classes
+ correctly (to decrease differences between X11/Windows and Mac).
+
+- QBuffer
+ IO_Truncate no longer detaches the explicitly shared byte array.
+
+- QButton
+ In setPixmap(), avoid laying out again if the new pixmap does
+ not change the size. Use QSharedDoubleBuffer only if it is
+ enabled (this avoids repainting errors).
+
+- QButtonGroup
+ Improve hit testing for cursor navigation.
+
+- QCanvas
+ Do not try to double buffer invalid areas.
+
+- QCanvasEllipse
+ Windows only: Workaround a Windows limitation that does not
+ support 2x2 ellipse rendering without a pen. Do not try to
+ double buffer invalid areas.
+
+- QColorDialog
+ Allow the setting of all 48 standard colors.
+
+- QComboBox
+ Close any popup menus or listboxes when disabling the combobox.
+ Fix text alignment when large pixmaps were inserted into the
+ combobox.
+
+- QComplexText
+ Added correct positioning specs for all of Thai and Lao. Some
+ reordering fixes.
+
+- QCursor
+ Mac only: Correct interpretation of mask/data of a QCursor so that the
+ mask will can be used as documented.
+
+- QDate
+ Fixed addYears() for days missing in certain years.
+
+- QDateTimeEdit
+ Compute an improved layout for the QDateEdit and QTimeEdit
+ components of the QDateTimeEdit (based on the size hints). Set
+ the size policy of the QDateTimeEdit to (Minimum, Fixed).
+ In time edit: If the display is AM/PM, do not accept 13-24 as
+ valid input for the hours. Go to the min/max value when
+ stepping down/up goes out of the valid range.
+
+- QDesktopWidget
+ Mac only: Fixes to availableGeometry().
+
+- QDialog
+ Fixed a visibility issue with setExtension().
+ X11 only: Modal dialogs that have no parent set their
+ WM_TRANSIENT_FOR hint to the main application widget (not
+ root). Do not raise the active modal widget if another one
+ gets focus. This used to be an incorrect workaround for a
+ now-obsolete problem where CDE would not keep modal dialogs
+ above their parents.
+ Do not reposition laid out dialogs that restore their geometry
+ in a polish() reimplementation.
+
+- QDict
+ Handle zero sized hash tables.
+
+- QDns
+ Slightly more reliable now, fixed a memory leak.
+
+- QDockArea
+ Fixed resizing of a QDockWindow is no longer affected by
+ another closed QDockWindow in the same QDockArea. If a QDockWindow
+ has changed its sizeHint layout items use now the new size.
+
+- QDockWindow
+ When undocking a window, use the last undocked size if we have
+ one.
+ X11 only: Make sure the moving frame is drawn on the correct screen.
+ Windows only: Fixed some focus issues.
+
+- QDom
+ Create entity references for unknown entities.
+
+- QDragManager
+ X11 only: Raise cursor decoration. Improved Motif drop support
+ to support non-textual data.
+ Windows only: Do not send any drag events if we don't have a receiver.
+ Windows 2000 only: Ignore illegal requests for error-clipboard
+ format when dropping files onto Explorer.
+
+- QEventLoop
+ Window only: Fixed mutex lock problem. Fixed processEvents()
+ with ExcludeUserInput. Fixed QSocketNotifiers not being
+ removed when the notifier gets deleted and the event
+ loop is blocking.
+ Unix only: Fixed a 64 bit problem.
+ Mac only: Fixed hasPendingEvents() for non-gui apps.
+
+- QFileDialog
+ Fix drag'n'drop for the first click into the listbox. Do not
+ auto-complete when saving a file. Enabled drag'n'drop of files
+ for all modes. In Directory* mode, do not set the filter to a
+ non-existent directory if one is specified.
+ Windows only: Fixed icon lookup.
+ Win 98/Me only: Make sure getExistingDirectory() doesn't
+ modify the current directory.
+ Mac only: Encoding fixes.
+
+- QFont
+ Win95 only: Make symbol fonts work.
+ X11 only: Don't change the Xft enabled/disabled setting
+ at runtime. Avoid some X server roundtrips when loading fonts.
+
+- QFontDialog
+ Fixed getFont() in case no default font is specified.
+
+- QFrame
+ Turn on focus and mouse-over style flags for frame painting.
+
+- QFtp
+ If the server does not expect a password (i.e. if you are
+ already logged in after you sent the username), do not send
+ the password since this might lead to errors.
+
+- QGLWidget
+ X11 only: Xft fonts won't work with glXUseXFont() - so do not
+ try to use them.
+ Win32 only: Fixed text rendering to pixmap issues.
+ Mac only: Improved responsiveness when resizing opengl widgets.
+ Mac only: Optimized swapping between accelerated and
+ non-accelerated case.
+ Mac 10.2 only: Improved performance in the case of overlapping
+ opengl widgets.
+
+- QHBoxLayout
+ Handle direction changes in user code.
+
+- QHeader
+ Improved sizeHint() takes the arrows of sorted columns
+ into account. Fix redrawing problems when moving header
+ sections. Ignore grip-margin in mouse handling for
+ non-resizable sections.
+
+- QHttp
+ Fixed a memory leak. (With thanks to valgrind's developer for
+ this useful tool). Improved head() implementation to actually
+ use HEAD requests. Accepts responses from web servers that
+ return \n instead of \r\n as line separators. Fixed a rare
+ infinite loop issue.
+
+- QIconView:
+ Clip item drawing to current container to fix drawing of
+ pixmaps with alpha channels.
+
+- QImageIO
+ jpegio: Fixed potential buffer overrun.
+ gif: Fixed a crash for invalid gif files.
+
+- QInputContext
+ X11 only: Try harder to provide the input method with an
+ appropriate - and available - fontset.
+
+- QInputDialog
+ Fixed size hint when using height-for-width rich text.
+
+- QKeySequence
+ Fixed operator==() for some special cases.
+
+- QLabel
+ When the the label is disabled, use identical color roles for both
+ rich text and plain text.
+
+- QLibrary
+ Mac only: Return failure response when a library cannot be opened
+ due to missing symbols.
+
+- QLineEdit
+ Do not truncate the text when we validateAndSet a text which
+ is longer than maxLength, but disallow the input. Respect
+ maxLength() in setText(). Make displayText() and selectedText()
+ not strip non-breaking spaces anymore. Fixed memory leak when
+ adding and deleting line edits. Undo now clears the current
+ selection. Undo/redo now works when overwriting the selection.
+ Fixed memory leak on constructing/destructing line edits. Give
+ line edit ownership of the popup menu returned by the default
+ createPopupMenu() implementation.
+
+- QListView
+ Fixed background brush origin when using double buffering. Do
+ not resize a stretchable column in widthChanged(). Fixed
+ selecting when auto-scrolling. Initialize multi-selection
+ anchor. Accept drops outside items when acceptDrops() is true.
+ Use anchor correctly in Extended selection mode (also for
+ mouseMove). Make right clicking on a selected item not change
+ the selection. The AlignHCenter flag of a QCheckListItem now
+ behaves like for normal QListViewItems. Speed up opening and
+ closing of invisible items. Fixed a memory leak in removeColumn()
+ Single selection mode: If the selected item is taken out of the
+ listview, unselect it and emit selectionChanged(). Fixed
+ deselecting in multi-selection modes. Right release outside an
+ item in a listview no longer clears the selection if
+ ControlButton is set.
+
+- QListViewItem
+ Invalidate column sorting in moveToJustAfter().
+
+- QLocalFs
+ The network protocol for local file systems sets sets the
+ right permissions for the QUrlInfo objects if you do a
+ QUrlOperator::listChildren().
+
+- QMainWindow
+ Fixed orientation handler calls.
+
+- QMap
+ Fixed conversion from std::map.
+
+- QMenuBar
+ Mac only: Fix for destruction of menu bars.
+ Mac only: Use process name instead of argv.
+
+- QObject
+ Always emit the destroyed() signal, even when signals are
+ blocked.
+
+- QPaintDevice
+ Mac only: Fixed raster op. for bitBlt.
+
+- QPainter
+ X11 only: Fix for rotated rectangles. Fixed drawPolygon() with
+ winding being false.
+ Mac only: drawText() fixes.
+ Mac only: Fix for drawPie().
+
+- QPicture
+ Warn about and catch save operations on still active devices.
+
+- QPixmap
+ Made grabWidget() more robust.
+ X11 only: Fixed a bug in grabWindow(), fixes in
+ convertFromImage() for MonoOnly.
+
+- QPointArray
+ The makeArc() function is now inclusive in respect of the start and
+ end points.
+
+- QPopupMenu
+ If there is a custom QWhatsThis installed for the whole menu
+ but no whatsThis set for the item, use the custom QWhatsThis
+ to get the help text. Improved size for multi-column popups.
+ Mac only: Improved scrollable popups
+ Mac only: Fix handling of popupmenu dismissing mouse presses.
+
+- QPrintDialog
+ Fix reentrancy issues when reading printer dialog settings.
+ Windows only: Handle lack of default printers more
+ gracefully.
+
+- QPrinter
+ Windows only: Fix reentrancy issues and make sure that all
+ handles are updated correctly. Improved bottom and right
+ margin calculation. Fixed some problems with image printing.
+ Mac only: Support for high resolution printing. Support 1-bit
+ masking for pixmaps.
+
+- QProcess
+ If the process's file descriptor is closed for stdout or
+ stderr, but the line in the buffer does not end with a \n or
+ \r\n, it is still possible to read this data using readLine().
+ Windows only: Make it safe to call qApp->processEvents() in a
+ slot connected to QProcess::readyReadStdout(). Fixed start()
+ with no arguments. Use a non-blocking file descriptor for
+ writes to stdin. Avoid leaking of handles.
+
+- QPSPrinter
+ Fixed codec for Korean PostScript fonts (ksc5601.1987-0, not
+ the listbox. Do not auto-complete when saving a
+ fileeucKR). Fixed memory leak.
+
+- QRichText
+ Improved Asian line breaking: Avoid breaking before
+ punctuation and closing braces and after opening braces. Fixed
+ a freed memory access problem with floating items on
+ destruction. When copying rich application/x-qrichtext, include
+ format information for the initial characters until the first
+ complete span. Make text="color" attributes in qt and body
+ tags work again.
+
+- QScrollView
+ Restored the Qt 3 default sizeHint() that depends on the
+ scroll view's content, restricted within a 'sane' range (this
+ has no impact on most child classes, which already reimplement
+ sizeHint()).
+
+- QSemaphore
+ Fixed race condition in operator-=().
+ Unix only: A bit more robust.
+
+- QSettings
+ Implement scoping for file-based settings (Unix and
+ Ini-modes). Support storing and reading null strings. Other
+ fixes.
+ X11 only: Fixed rehash issues when using multiple screens.
+ Windows and Mac: Completed Ini mode.
+
+- QSocket
+ If the read retruns 0, safely assume that the peer closed the
+ connection. Fixed readyRead sometimes not being
+ emitted. Fixed a select bug when the other end terminates
+ the connection. Some 64 bit fixes.
+
+- QSound
+ Mac only: Implemented stop().
+
+- QSplitter
+ Make sizes() return 0 for collapsed widgets.
+
+- QSqlDriver
+ All drivers: Fixed crashes when accessing out of bound
+ fields. Clear the openError() flag when opening a connection
+ successfully.
+ MySQL only: Make use of mysql_use_result() in forward-only mode.
+ TDS only: Return NULL QVariants for NULL fields.
+ ODBC only: Do not require the SERVER keyword to be in a
+ connection string. Fix Unicode issues with MS Access. Allow
+ MS Access people to create a connection string without
+ creating a DSN entry first.
+
+- QSqlQuery
+ Real values in queries containing placeholders were in some
+ cases incorrectly replaced in emulated prepared queries.
+ Added support for forward only queries in MySQL.
+
+- QStatusBar
+ Make sure QStatusBar updates the minimum height when a child
+ widget triggers a relayout (e.g. from size/font/etc. changes).
+
+- QString
+ Safer QString->std::string conversion (handles null-string
+ case). Fixed 64-bit issue in toLong() and toULong(). Make
+ prepend(), append() and operator+=() work with a QByteArray
+ argument that is not 0-terminated. Since this
+ fix is done in inline functions, you must recompile your
+ application to benefit from it. Make QString(const
+ QByteArray&) respect the array's size where a codec for
+ C strings is defined. Performance improvements for lower()
+ and upper(). Fix toDouble() when string contains trailing
+ whitespace.
+
+- QSvgDevice
+ No background for Bezier curves. Fixed omission of font-family
+ attribute in SVG generator. Fixed bounding rect mapping.
+
+- QStyle (and subclasses)
+ Usable size for subcontrols for small scrollbars. Fixed MDI
+ document window titlebar clipping.
+ XP style: Support non-default group boxes. Corrected tab
+ widget border drawing. More compliant dock window
+ appearance. Fixed translations for QCheckTableItem and
+ QComboTableItem.
+ Windows style: Use the highlighted text color role for arrows
+ in menus. Allow drawing of list view expand controls without
+ branches.
+ SGI style: Use correct background brush on pushbuttons with
+ popdown arrows.
+ Mac style (Mac only): Comboboxes will now be smaller (and closer to
+ Aqua Style suggested sizes). Expansion widgets (in a listview) will
+ now draw in the correct background color to allow non-white listviews.
+
+- QSpinBox
+ Stop spinning when users press a button other than the
+ left one. Support Key_Enter in addition to Key_Return as the
+ documentation always stated.
+
+- QTabBar
+ Let arrow buttons react correctly on style changes.
+
+- QTabDialog
+ Fix reverse layout for right to left languages.
+
+- QTable
+ Catch hideColumn() on tables with too few columns. Fixed an
+ endless recursion when swapping header sections. Fixed SingleRow
+ selection when using the vertical header. Emit the
+ sizeChange() signal when resizing a table header section with
+ a double click. Fixed set*MovingEnabled() when the selection
+ mode is NoSelection. Fix selection drawing for focusStyle ==
+ FollowFocus. Fixed a memory leak.
+
+- QTableItem
+ Use virtual text() method for calculations instead of accessing the
+ data member directly. Do not crash when destroying a table item that
+ is not in a table.
+
+- QTextCodec:
+ Fixed a bug in the Unicode -> jisx0208 conversion table.
+
+- QTextEdit
+ Made setFormat() much faster when undo/redo is
+ disabled. Fixed double deletion crash when clearing a document
+ with floating custom items. AccelOverride events with Shift
+ pressed now work the same as for a normal key press.
+ LogText mode: Allow spaces in the font color tag. Fixed
+ background redraw issue. Stop scrollbar from disappearing
+ due to laying out the document incorrectly.
+
+- QThread
+ Unix only: Do not rely on PTHREAD_MUTEX_INITIALIZER and
+ PTHREAD_COND_INITIALIZER. Fixed timeout calculation in
+ sleep().
+
+- QTimeEdit
+ Typing in input for the first time now overwrites the existing
+ value.
+
+- QToolButton
+ Fixed width calculation for multiline text.
+
+- QTooltip
+ Try hard to avoid tooltips for widgets in inactive
+ windows. Use screen geometry rather than available geometry
+ for positioning. Avoid the mouse cursor covering part of the
+ tooltip.
+
+- QTranslator
+ Notify main windows when installing an empty translator.
+
+- QUrlOperator
+ Make setNameFilter() work with FTP.
+
+- QValueVector
+ Fix operator==() to work as expected if the two vectors do not have
+ the same size.
+
+- QVariant
+ Fixed canCast() for Bool -> String and ByteArray -> String conversion.
+ Fixed operator==() for maps. Fixed the asDouble() function to
+ detach first before a conversion is done. After streaming into
+ a QVariant isNull() now returns false.
+
+- QWaitCondition
+ Unix only: Make sure the mutex is destroyed after it is
+ unlocked.
+
+- QWhatsThis
+ Use screen geometry rather than available geometry
+ for positioning.
+
+- QWidget
+ In adjustSize(), process LayoutHint events for all widgets,
+ not only this widget. Fixed a visibility issue with
+ reparent(). Fixed recursive update of child widgets with
+ background origin not being WidgetOrigin. Fixed isEnabledTo().
+ Windows only: Fixed mapFromGlobal() / mapToGlobal() for
+ widgets that are not visible.
+ X11 only: Set the WM_CLIENT_LEADER and SM_CLIENT_ID properties
+ according to the ICCCM (section 5.1). We accomplish this by
+ creating a hidden toplevel window to act as the client leader,
+ and all toplevel widgets will use this window as the client
+ leader. Fixed calling show() on minimized windows. Fixes to
+ grabWindow() for platforms that support different color depths
+ on one display.
+ Windows only: Handle frameGeometry() changes when users change
+ the titlebar font.
+ Mac only: Reparent fixes so that visiblity of a toplevel window
+ will be retained as well as to avoid painting errors when reparented
+ onto a different window. Fixed painting errors when a widget is
+ interactively moved off screen. showNormal() will now toggle
+ correctly when a window is minimized, additionally toggling between
+ showMaximized()/showNormal() will operate as expected. Qt will now
+ try to prevent placing a window partially offscreen. This will not
+ over-ride explicit window positioning, but it will correct default
+ placement.
+
+- QWidgetStack
+ Make removeWidget() safe when there are several widgets
+ with the same id.
+
+- QWorkspace
+ If the active window is clicked on, transfer focus to
+ the child. Restore focus to old subcontrol when changing the
+ active MDI window. Make sure a MDI window is not resized below
+ a child widget's minimum size. Do not allow resizing windows
+ when we have an active popup window. Another fix to the
+ windowActivated() signal. Fixed resize handling for fixed-size
+ windows.
+
+- QXmlSimpleReader
+ Fixed a memory leak for incremental parsing.
+
+
+****************************************************************************
+* Tools *
+****************************************************************************
+
+- Qt Designer
+ Some small usability improvements and crash fixes. Fixed
+ editing properties of multiple selected widgets for custom
+ widgets. Fixed some problems with pixmaps, when using a pixmap
+ function. Allow entering ':' in the class name in the
+ form settings dialog (for namespaces). Do not show deleted
+ toolbars in the object explorer. Fixed inserting widgets into
+ toolbars. Fixed displaying nested widget stacks in the object
+ explorer. Added an option to enable auto saving. Fixed some
+ issues with auto-indent in the C++ editor plugin. Fixed
+ problems with slots which have namespaces in their function
+ arguments. Do not save invalid pixmaps. whatsThis properties
+ can now be edited with the richtext editor.
+
+- Qt Assistant
+ Fixed crash when printing to file was cancelled. Fixed
+ mimesource settings when a link is opened in a new window.
+ Added missing translator. Fixed reloading pages when the
+ font was changed. Added accelerator for exiting Assistant.
+ Full text search now supports Unicode. Search accepts special
+ characters like '_'. Added option for disabling the first run
+ initialization. Now it is possible to open a link or new
+ window directly from the sidebar.
+
+- moc
+ Make 'moc -p foo bar/baz.h' generates #include "foo/baz.h"
+ instead of #include "foo/bar/baz.h". Also avoid redundant "./"
+ at the beginning. Accept identifiers trailing the function
+ signature to allows sneaking in compiler specific attributes
+ via a macro.
+
+- qmake
+ Qmake will no longer put the version number on plugins. These are
+ not a necessary part of the filename. A parser bug got into qmake
+ causing (right hand side) functions from being evaluated properly,
+ additionally the argument parser has been improved to allow functions
+ calling functions. Qmake now has support for ProjectBuilder 2.1, it
+ will no longer respect OBJECTS_DIR in ProjectBuilder (as this exposed
+ a bug in ProjectBuilder itself). It will automatically detect qt-mt
+ (when linking against Qt) so "CONFIG += thread" is not necessary,
+ however this will not turn on Q_THREAD_SUPPORT. A new test operator
+ has been added 'equals()' to allow testing for equality to a variable.
+ In 'project mode' qmake will now detect TRANSLATIONS files
+ automatically.
+
+- uic
+ Some small fixes in code generation.
+
+****************************************************************************
+* Extensions *
+****************************************************************************
+
+- Netscape Plugin
+ The Netscape Plugin is supported again, now on both Netscape 4.x and
+ current versions based on the Mozilla code.
+
+- ActiveQt
+ Activate socket notifiers and process config requests even if
+ Qt does not own the event loop.
+
diff --git a/dist/changes-3.2.0 b/dist/changes-3.2.0
new file mode 100644
index 0000000..6d99213
--- /dev/null
+++ b/dist/changes-3.2.0
@@ -0,0 +1,327 @@
+
+Qt 3.2 introduces new features as well as many improvements over the
+3.1.x series. This file gives an overview of the main changes since
+version 3.1.2. For more details, see the online documentation which
+is included in this distribution. The documentation is also available
+at http://doc.trolltech.com/
+
+The Qt version 3.2 series is binary compatible with the 3.1.x series.
+Applications compiled for 3.1 will continue to run with 3.2.
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Qt library
+----------
+
+New classes have been added to the Qt Library including a
+class to add splash screens to applications (QSplashScreen), a toolbox
+widget that provides a column of tabbed widgets (QToolBox), and a
+class to manage per-thread data storage (QThreadStorage).
+
+The SQL module received a fair bit of attention this time. The most
+notable improvements include a native IBM DB2 driver, complete support
+for stored procedures including the possibility to access
+out-parameters, and native support for 64 bit fields without having to
+convert to or from strings. We also added support for setting
+connection parameters. This way you can, for example, conveniently
+open an SSL connection to a MySQL or PostgreSQL database. If you need
+even more customization, e.g. for an Oracle database, you can set up
+the connection yourself and instantiate a Qt driver object on top of
+it. An extended SQL cursor class has been added that makes it more
+convenient to display result sets from general SQL queries
+(QSqlSelectCursor). QSqlDatabase::tables() is now capable to return
+tables, views and/or system tables. In addition, you can add custom
+database drivers without compiling them as plugins
+(see QSqlDatabase::registerSqlDriver()).
+
+QLineEdit, the one-line text editor, now supports validation input
+masks. The feature complements the previous QValidator concept and
+allows e.g. restriction of input to the IP address format (mask
+"990.990.990.990;_"), or to ISO date format (mask "0000-90-90;0").
+
+Qt's unicode code support has been extended. Most notably, full
+support for Indic scripts has been added, covering writing systems
+such as Devanagari, Tamil and Bengali. The group of right to left
+writing systems has been extended with support for Syriac. Both
+improvements are available on both Windows with Uniscribe installed,
+and on Unix/X11 when using XFT with OpenType fonts.
+
+All tool classes that support STL-like iterators with begin() and
+end(), contain two extra functions constBegin() and constEnd(). The
+const versions always return const iterators, and thus can be a little
+bit faster with Qt's implicitly shared containers.
+
+QPainter's complex drawText() function has been highly
+optimized. Despite its support for complex unicode scripts, it now
+performs better than its less unicode-capable counterpart in Qt 2.3.
+
+QPixmap now supports pixmaps with alpha channel (semi transparency) on
+all Windows versions except Windows 95 and Windows NT 4.0.
+
+The print dialog now supports "selection" as a print range as well as
+the possibility to enable/disable all different printer options
+individually.
+
+On Windows, the Qt installation includes a toolbar for Visual Studio.NET
+that provides an integration of the Qt tools (ie. Qt Designer) with the
+IDE.
+
+Many classes were improved; see the detailed overview that follows.
+
+Qt Motif Extension
+------------------
+
+Dialog handling has matured and has been extended since the
+extension's introduction in Qt 3.1. The documentation and code
+examples have been improved, including a walkthrough that covers the
+complete migration of a real-world Motif example to Qt. The process
+contains four intermediate steps where the application utilizes both
+toolkits.
+
+ActiveQt Extension
+------------------
+
+Type handling has been extended on both the container and the server
+side. The new supported types are byte arrays and 64bit integers. The
+QAxServer module supports aggregation, as well as QObject subclasses as
+return and parameter types of slots, and allows error reporting through
+COM exceptions.
+The Designer integration has been extended to support property dialogs
+implemented by the control server.
+Controls developed with ActiveQt support aggregation, which makes it
+possible to use them in containers that require this form of containment to
+be supported. ActiveQt also supports masked controls in containers that
+support this for window'ed controls.
+
+Qt Designer
+-----------
+
+The popup menu editor has been rewritten. The new editor provides the
+the ability to add, edit and remove menus and menu items directly in
+the menubar and in the popup menu. Navigation and editing can be done
+using either the mouse or the keyboard.
+
+The property editor now allows editing of properties with or'd values
+(sets).
+
+Designer also supports the new QToolBox widget in a similar fashion to
+QTabWidget, etc.
+
+Qt Assistant
+------------
+
+Profiles have been introduced to allow applications to extend the use
+of Qt Assistant as a help system. Profiles describe the documentation
+to use so that only application specific documentation will be
+referenced in an end user installation. Profiles also allow some
+customization of the look in Qt Assistant. For detailed information,
+see the helpdemo example in $QTDIR/examples/helpdemo.
+
+Profiles replace the content files and categories system. The
+following command line options are removed since they no longer serve
+any purpose: addContentFile, removeContentFile, category, and
+disableFirstRun.
+
+Qt Assistant has multiple tabs for browsing, therefore enabling
+multiple pages to be browsed without opening a new window.
+
+It is possible to specify a default home page.
+
+It is possible to specify a PDF reader so that urls to PDF files can
+be opened from Qt Assistant.
+
+Compilers
+---------
+
+Note: Qt 3.2 is the last version to officially support IRIX MIPSpro
+o32 and Sun CC 5.0. A script, $QTDIR/bin/qt32castcompat, is provided
+for 3.2 which needs to be run for these compilers.
+
+Miscellaneous
+-------------
+
+Users of the 3.2.0 beta releases please note: The QWidgetContainerPlugin
+interfaces was removed from the final release due to some serious issues.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QAction / QActionGroup
+ Simplified constructors so that it is no longer necessary to
+ specify texts for buttons and menu items separately.
+ For action groups, we fixed the enable/disable behavior. If
+ an action inside an action group is explicitly disabled, it is
+ no longer implicitly enabled together with the group.
+ This is identical to enabling/disabling widgets and their
+ children.
+
+- QApplication
+ Added the aboutQt() slot for convenience.
+
+- QAssistantClient
+ Added the new function, setArguments(), that invokes Qt
+ Assistant in different modes.
+
+- QAxBase
+ Added the new function, asVariant(), that passes a COM
+ object through dynamicCall().
+
+- QAxBindable
+ Added the new function, reportError(), that sends error
+ information to the ActiveX client.
+
+- QColor
+ Added the new static function, colorNames(), that retrieves a
+ list of all color names known to Qt.
+
+- QDeepCopy
+ Now also supports QDir, QFileInfo, and QStringList.
+
+- QDom
+ Now has long and ulong support for setAttribute() and
+ setAttributeNS().
+
+- QFont
+ Added the new properties: stretch and overline. Added the new
+ function, resolve(), that copies unspecified attributes from
+ one font to another.
+
+- QFontDataBase
+ Added a new overload for families() that restricts the
+ returned list to fonts supporting a specific QFont::Script,
+ e.g. QFont::Greek, QFont::Devanagari or QFont::Arabic.
+
+- QFontInfo / QFontMetrics
+ Added new constructors that force the info and metrics objects
+ to use a given QFont::Script.
+
+- QGLWidget
+ Added a new constructor that takes a QGLContext
+ parameter. Makes the undocumented setContext() obsolete.
+
+- QHeader
+ Added getters for the sort indicator (sortIndicatorSection()
+ and sortIndicatorOrder() ).
+
+- QImage
+ Added a new overload for save() that writes to a given
+ QIODevice*.
+
+- QListView
+ Added tristate support to check list items
+ (QCheckListItem::setTristate()). Added the new function,
+ setSelectionAnchor(), to set the list view's selection anchor
+ explicitly.
+
+- QLineEdit
+ Added input masks: setInputMask(), inputMask(), and
+ hasAcceptableInput(). Added new function selectionStart()
+ which returns the index of the first selected character in the
+ line edit.
+
+- QMacStyle
+ Added customizable focus rectangle policy.
+
+- QMessageBox
+ Added the new static function, question(), that complements
+ the existing information(), warning() and fatal() functions.
+
+- QMotifDialog [Qt Motif Extension]
+ Now has two distinct modes of operation: 1) it allows a Motif
+ dialog to have a Qt parent, and 2) it allows a Qt dialog to have
+ a Motif parent.
+
+- QMYSQLDriver
+ Better support for MySQL/embedded.
+
+- QPixmapCache
+ Added the new function, remove(), to explicitly remove a
+ pixmap from the cache.
+
+- QPrinter
+ Added the new functions: setPrintRange(), printRange(),
+ setOptionEnabled(), and optionEnabled(). For Windows only,
+ added the new function, setWinPageSize(), that allows setting
+ DEVMODE.dmPaperSize directly.
+
+- QPtrList
+ Added STL-like iterators with begin(), end(), and erase().
+
+- QScrollBar
+ Maintains a user defined size policy when the direction
+ changes.
+
+- QSplashScreen [new]
+ This new widget class provides a splash screen to be shown
+ during application startup.
+
+- QSplitter
+ Added the new properties: opaqueResize, childrenCollapsible,
+ and handleWidth.
+
+- QSqlError
+ Added a couple of convenience functions: text(), which returns
+ the concatenated database and driver texts. showMessage(),
+ which will pop up a QMessageBox with the text that text()
+ returns.
+
+- QSqlQuery
+ Added overloads for the bindValue() call which makes it
+ possible to specifiy what role a bound value should have: In,
+ Out or InOut.
+
+- QSqlSelectCursor [new]
+ This new QSqlCursor subclass provides browsing of general SQL
+ SELECT statements.
+
+- QSqlDatabase
+ Added overloaded tables() call which can return tables, views
+ and/or system tables.
+
+- QPSQLDriver
+ Calling tables() with no arguments will only return table names,
+ instead of table and view names as in Qt 3.1.
+ The new tables() call in QSqlDatabase can be used to get
+ table and/or view names.
+
+- QString
+ Added 64 bit support. Added the new functions: multiArg(),
+ reserve(), capacity(), squeeze(). Added case insensitive
+ overloads for startsWith() and endsWidth().
+
+- QStringList
+ Added the new function gres().
+
+- QStyle
+ Added support for toolbox, header, MDI frame, table grid line
+ color, line edit password character, and message box question.
+
+- QSyntaxHighlighter
+ Added the new function, currentParagraph().
+
+- QTabWidget
+ Added support for custom widgets to be placed beside
+ the tab bar: setCornerWidget() and cornerWidget().
+
+- QTextEdit
+ In Log mode, added the new functions: setMaxLogLines() and
+ maxLogLines(). Implemented insertAt() for LogText mode.
+
+- QThreadStorage [new]
+ This new tool class provides per-thread data storage, also
+ referred to as thread local storage or TLS.
+
+- QToolBox [new]
+ This new widget class provides a column of tabbed widgets, one
+ above the other, with the current page displayed below the
+ current tab.
+
+- QVariant
+ Added support for LongLong and ULongLong.
+
+- QWidget
+ Added a new widget flag, WNoAutoErase, that combines the now
+ obsolete WResizeNoErase and WRepaintNoErase flags.
diff --git a/dist/changes-3.2.0-b1 b/dist/changes-3.2.0-b1
new file mode 100644
index 0000000..cdd3514
--- /dev/null
+++ b/dist/changes-3.2.0-b1
@@ -0,0 +1,296 @@
+
+Qt 3.2 introduces new features as well as many improvements over the
+3.1.x series. This file gives an overview of the main changes since
+version 3.1.2. For more details, see the online documentation which
+is included in this distribution. The documentation is also available
+at http://doc.trolltech.com/
+
+The Qt version 3.2 series is binary compatible with the 3.1.x series.
+Applications compiled for 3.1 will continue to run with 3.2.
+
+****************************************************************************
+* General *
+****************************************************************************
+
+
+Qt library
+----------
+
+New classes have been added to the Qt Library including a
+class to add splash screens to applications (QSplashScreen), a toolbox
+widget that provides a column of tabbed widgets (QToolBox), and a
+class to manage per-thread data storage (QThreadStorage).
+
+The SQL module received a fair bit of attention this time. The most
+notable improvements include a native IBM DB2 driver, complete support
+for stored procedures including the possibility to access
+out-parameters, and native support for 64 bit fields without having to
+convert to or from strings. We also added support for setting
+connection parameters. This way you can, for example, conveniently
+open an SSL connection to a MySQL or PostgreSQL database. If you need
+even more customization, e.g. for an Oracle database, you can set up
+the connection yourself and instantiate a Qt driver object on top of
+it. An extended SQL cursor class has been added that makes it more
+convenient to display result sets from general SQL queries
+(QSqlSelectCursor). In addition, you can add custom database drivers
+without compiling them as plugins (see
+QSqlDatabase::registerSqlDriver()).
+
+QLineEdit, the one-line text editor, now supports validation input
+masks. The feature complements the previous QValidator concept and
+allows e.g. restriction of input to the IP address format (mask
+"990.990.990.990;_"), or to ISO date format (mask "0000-90-90;0").
+
+Qt's unicode code support has been extended. Most notably, full
+support for Indic scripts has been added, covering writing systems
+such as Devanagari, Tamil and Bengali. The group of right to left
+writing systems has been extended with support for Syriac. Both
+improvements are available on both Windows with Uniscribe installed,
+and on Unix/X11 when using XFT with OpenType fonts.
+
+All tool classes that support STL-like iterators with begin() and
+end(), contain two extra functions constBegin() and constEnd(). The
+const versions always return const iterators, and thus can be a little
+bit faster with Qt's implicitly shared containers.
+
+QPainter's complex drawText() function has been highly
+optimized. Despite its support for complex unicode scripts, it now
+performs better than its less unicode-capable counterpart in Qt 2.3.
+
+QPixmap now supports pixmaps with alpha channel (semi transparency) on
+all Windows versions except Windows 95 and Windows NT.
+
+The print dialog now supports "selection" as a print range as well as
+the possibility to enable/disable all different printer options
+individually.
+
+Many classes were improved; see the detailed overview that follows.
+
+Qt Motif Extension
+------------------
+
+Dialog handling has matured and has been extended since the
+extension's introduction in Qt 3.1. The documentation and code
+examples have been improved, including a walkthrough that covers the
+complete migration of a real-world Motif example to Qt. The process
+contains four intermediate steps where the application utilizes both
+toolkits.
+
+ActiveQt Extension
+------------------
+
+Type handling has been extended on both the container and the server
+side. The new supported types are byte arrays and 64bit integers. The
+QAxServer module supports QObject subclasses as return and parameter
+types of slots, and allows error reporting through COM exceptions.
+The Designer integration has been extended to support property dialogs
+implemented by the control server.
+
+Qt Designer
+-----------
+
+The popup menu editor has been rewritten. The new editor provides the
+the ability to add, edit and remove menus and menu items directly in
+the menubar and in the popup menu. Navigation and editing can be done
+using either the mouse or the keyboard.
+
+The new QWidgetContainerPlugin class provides support for complex
+custom container widgets in Designer, such as the custom tab widget,
+etc.
+
+The property editor now allows editing of properties with or'd values
+(sets).
+
+Designer also supports the new QToolBox widget in a similar fashion to
+QTabWidget, etc.
+
+Qt Assistant
+------------
+
+Profiles have been introduced to allow applications to extend the use
+of Qt Assistant as a help system. Profiles describe the documentation
+to use so that only application specific documentation will be
+referenced in an end user installation. Profiles also allow some
+customization of the look in Qt Assistant. For detailed information,
+see the helpdemo example in $QTDIR/examples/helpdemo.
+
+Profiles replace the content files and categories system. The
+following command line options are removed since they no longer serve
+any purpose: addContentFile, removeContentFile, category, and
+disableFirstRun.
+
+Qt Assistant has multiple tabs for browsing, therefore enabling
+multiple pages to be browsed without opening a new window.
+
+It is possible to specify a default home page.
+
+It is possible to specify a PDF reader so that urls to PDF files can
+be opened from Qt Assistant.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QAction / QActionGroup
+ Simplified constructors so that it is no longer necessary to
+ specify texts for buttons and menu items separately.
+ For action groups, we fixed the enable/disable behavior. If
+ an action inside an action group is explicitly disabled, it is
+ no longer implicitly enabled together with the group.
+ This is identical to enabling/disabling widgets and their
+ children.
+
+- QApplication
+ Added the aboutQt() slot for convenience.
+
+- QAssistantClient
+ Added the new function, setArguments(), that invokes Qt
+ Assistant in different modes.
+
+- QAxBase
+ Added the new function, asVariant(), that passes a COM
+ object through dynamicCall().
+
+- QAxBindable
+ Added the new function, reportError(), that sends error
+ information to the ActiveX client.
+
+- QColor
+ Added the new static function, colorNames(), that retrieves a
+ list of all color names known to Qt.
+
+- QDeepCopy
+ Now also supports QDir, QFileInfo, and QStringList.
+
+- QDom
+ Now has long and ulong support for setAttribute() and
+ setAttributeNS().
+
+- QFont
+ Added the new properties: stretch and overline. Added the new
+ function, resolve(), that copies unspecified attributes from
+ one font to another.
+
+- QFontDataBase
+ Added a new overload for families() that restricts the
+ returned list to fonts supporting a specific QFont::Script,
+ e.g. QFont::Greek, QFont::Devanagari or QFont::Arabic.
+
+- QFontInfo / QFontMetrics
+ Added new constructors that force the info and metrics objects
+ to use a given QFont::Script.
+
+- QGLWidget
+ Added a new constructor that takes a QGLContext
+ parameter. Makes the undocumented setContext() obsolete.
+
+- QHeader
+ Added getters for the sort indicator (sortIndicatorSection()
+ and sortIndicatorOrder() ).
+
+- QImage
+ Added a new overload for save() that writes to a given
+ QIODevice*.
+
+- QListView
+ Added tristate support to check list items
+ (QCheckListItem::setTristate()). Added the new function,
+ setSelectionAnchor(), to set the list view's selection anchor
+ explicitly.
+
+- QLineEdit
+ Added input masks: setInputMask(), inputMask(), and
+ hasAcceptableInput().
+
+- QMessageBox
+ Added the new static function, question(), that complements
+ the existing information(), warning() and fatal() functions.
+
+- QMotifDialog [Qt Motif Extension]
+ Now has two distinct modes of operation: 1) it allows a Motif
+ dialog to have a Qt parent, and 2) it allows a Qt dialog to have
+ a Motif parent.
+
+- QPixmapCache
+ Added the new function, remove(), to explicitly remove a
+ pixmap from the cache.
+
+- QPrinter
+ Added the new functions: setPrintRange(), printRange(),
+ setOptionEnabled(), and optionEnabled(). For Windows only,
+ added the new function, setWinPageSize(), that allows setting
+ DEVMODE.dmPaperSize directly.
+
+- QPtrList
+ Added STL-like iterators with begin(), end(), and erase().
+
+- QScrollBar
+ Maintains a user defined size policy when the direction
+ changes.
+
+- QSplashScreen [new]
+ This new widget class provides a splash screen to be shown
+ during application startup.
+
+- QSplitter
+ Added the new properties: opaqueResize, childrenCollapsible,
+ and handleWidth.
+
+- QSqlError
+ Added a couple of convenience functions: text(), which returns
+ the concatenated database and driver texts. showMessage(),
+ which will pop up a QMessageBox with the text that text()
+ returns.
+
+- QSqlQuery
+ Added overloads for the bindValue() call which makes it
+ possible to specifiy what role a bound value should have: In,
+ Out or InOut.
+
+- QSqlSelectCursor [new]
+ This new QSqlCursor subclass provides browsing of general SQL
+ SELECT statements.
+
+- QString
+ Added 64 bit support. Added the new functions: multiArg(),
+ reserve(), capacity(), squeeze(). Added case insensitive
+ overloads for startsWith() and endsWidth().
+
+- QStringList
+ Added the new function gres().
+
+- QStyle
+ Added support for toolbox, header, MDI frame, table grid line
+ color, line edit password character, and message box question.
+
+- QSyntaxHighlighter
+ Added the new function, currentParagraph().
+
+- QTabWidget
+ Added support for custom widgets to be placed beside
+ the tab bar: setCornerWidget() and cornerWidget().
+
+- QTextEdit
+ In Log mode, added the new functions: setMaxLogLines() and
+ maxLogLines().
+
+- QThreadStorage [new]
+ This new tool class provides per-thread data storage, also
+ referred to as thread local storage or TLS.
+
+- QToolBox [new]
+ This new widget class provides a column of tabbed widgets, one
+ above the other, with the current page displayed below the
+ current tab.
+
+- QVariant
+ Added support for LongLong and ULongLong.
+
+- QWidget
+ Added a new widget flag, WNoAutoErase, that combines the now
+ obsolete WResizeNoErase and WRepaintNoErase flags.
+
+- QWidgetContainerPlugin [new]
+ This new plugin class complements QWidgetPlugin for custom
+ container widgets, i.e. widgets that can host child
+ widgets.
diff --git a/dist/changes-3.2.0-b2 b/dist/changes-3.2.0-b2
new file mode 100644
index 0000000..98910a8
--- /dev/null
+++ b/dist/changes-3.2.0-b2
@@ -0,0 +1,121 @@
+
+Qt 3.2 introduces new features as well as many improvements over the
+3.1.x series. This file gives an overview of the main changes since
+version 3.1.2. For more details, see the online documentation which
+is included in this distribution. The documentation is also available
+at http://doc.trolltech.com/
+
+The Qt version 3.2 series is binary compatible with the 3.1.x series.
+Applications compiled for 3.1 will continue to run with 3.2.
+
+****************************************************************************
+* General *
+****************************************************************************
+
+ActiveQt
+--------
+
+Controls developed with ActiveQt support aggregation, which makes it
+possible to use them in containers that require this form of containment to
+be supported. ActiveQt also supports masked controls in containers that
+support this for window'ed controls.
+
+Compilers
+---------
+
+Note: Qt 3.2 is the last version to officially support IRIX MIPSpro
+o32 and Sun CC 5.0. A script, $QTDIR/bin/qt32castcompat, is provided
+for 3.2 which needs to be run for these compilers.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QApplication
+ Win32 only: Stop compressing mouse move events when a change
+ in the key state is detected. Allow multiple QApplication
+ objects be created sequentially by resetting the pointers to
+ static objects on destruction.
+
+- QClipboard
+ X11 only: Various fixes.
+
+- QDockWindow
+ Various layout fixes.
+
+- QFont related classes
+ Many fixes and improvements.
+
+- QGLWidget
+ X11 only: Various fixes to make pixmap rendering work better
+ with accelerated nVidia drivers.
+
+- QImage
+ Fixed writing of QImages.
+
+- QLayout
+ Fixed layout to take the menu bar's minimum width into
+ consideration and correctly propagate spacing() from parent to
+ child layouts.
+
+- QLineEdit
+ Replace all non-printable characters with spaces when
+ drawing. Added new function selectionStart() which returns
+ the index of the first selected character in the line edit.
+
+- QListBox
+ Improved item search based on keystrokes.
+
+- QListView
+ Don't move the inline item editor out of the visible area for
+ wide items. Ignore +/- indicator for columns other than the
+ first one. Fixed keyboard handling in Multi selection
+ mode. Improve drawing of extremely long item texts.
+
+- QListViewItem
+ Respects icons vertical alignment properly.
+
+- QMYSQLDriver
+ Better support for MySQL/embedded. Bind TEXT blob fields as
+ strings instead of byte arrays.
+
+- QPainter
+ Qt/Embedded only: Fixed printing issues.
+
+- QPrinter
+ Mac only: Fixed printing issues.
+
+- QSocketDevice
+ Windows only: Fixed setBlocking(TRUE) to work properly.
+
+- QString
+ Fixed toShort() and toUShort() to behave correctly when passed
+ a null pointer as 'ok' value.
+
+- QStyleFactory
+ Return the correct style name from the factory for the
+ WindowsXP style.
+
+- QTable
+ Replace old contents when editing. Take hidden rows into
+ account when activating cells. Clear the cell widget when
+ clearing a cell.
+
+- QTextBrowser
+ Fixed table headers to be bold.
+
+- QTextEdit
+ Implemented insertAt() for LogText mode. Fixed undoAvailable
+ and redoAvailable to be emitted correctly from the context
+ menu. Fixed tripleclick selection in QTextEdit.
+
+- QToolButton
+ Prevent nested openings of the tool button popups.
+
+- QWindowsXPStyle
+ Various paint bug fixes.
+
+- QWorkspace
+ Fixed workspace to keep the active window when
+ tiling. Improved icon handling for maximized and minimized
+ windows.
diff --git a/dist/changes-3.2.1 b/dist/changes-3.2.1
new file mode 100644
index 0000000..c5a2915
--- /dev/null
+++ b/dist/changes-3.2.1
@@ -0,0 +1,143 @@
+Qt 3.2.1 is a bugfix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.2.0
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Compilers
+---------
+
+Small fixes to build with gcc-3.4. Build fix for the DB2 Sql driver
+on Borland. Work around a compiler bug in Sun Forte 6. Fix a build
+issue for 64bit HP/UC.
+
+Qt Motif Extension
+------------------
+
+Document a known problem related to clipboard and selection handling
+between Qt and Motif components. See the Qt Motif Extension
+documentation for a more detailed description of the problem.
+
+Qt Designer
+-----------
+Correctly remove connections to deleted actions from the meta
+database.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+General Fixes
+-------------
+
+- QApplication
+ Update arguments passed to the constructor correctly when
+ arguments have already been processed.
+- QDockWindow
+ Fix a regression against 3.1.2 with minimized dock windows.
+- QDom
+ Fix a bug in ownerDocument()
+- QFontDialog
+ Fix to small usability regressions from 3.1.2.
+- QLineEdit
+ Fix regression against 3.1.2: textChanged signal after
+ setText("") should contain a non null string.
+- QMotifDialog [Qt Motif Extension]
+- QMotifWidget [Qt Motif Extension]
+ Fix incorrect usage of XtSetArg(). In certain cases, some
+ variables would be incorrectly modified, resulting in
+ out-of-bounds memory access and/or crashes.
+- QPainter/QFontMetrics
+ Fix some problems related to line breaking and size
+ calculation of multi line text layouts.
+- QSplitter
+ Fix a problem with setCollapsible.
+- QSqlCursor
+ Fix updates in tables without a primary key.
+- Sql
+ Fix crash in odbc and db2 drivers when using binary fields.
+- QTable
+ Fix possible crash in the QTable destructor.
+- QWidgetStack
+ Fix a slight behavioral change in the sizeHint between 3.1.2
+ and 3.2.
+- QApplication::reverseLayout
+ Fix some problems with dockwindows/toolbars in reverse layout
+ mode.
+- QListView
+ Fix emitting of dropped().
+
+Platform Specific Issues
+------------------------
+
+Windows:
+
+- QFont
+ Fix possible memory corruption when printing.
+ Windows 98: Fix a problem with displaying of russian
+ text using the default font.
+- QPainter
+ Fix a regression printing text in high resolution mode.
+- QPrinter
+ Fix a problem in setPageSize().
+ Windows 95/98/Me: Fix a possible crash.
+- QWaitCondition and QThread
+ Fix two possible race conditions.
+- XP style
+ Fix resource leak.
+- QString
+ QString::sprintf() work around a memory leak in the Windows C
+ runtime.
+- Dnd
+ Fix problem with dragging URLs.
+ Reverted back accept(), ignore(), acceptAction() to 3.1.x behavior.
+- IME framework
+ Better positioning of the IME composition window.
+
+Mac:
+
+- QStyle:
+ Smaller fixes to the Mac Style.
+ Some fixes for Panther.
+- QFont
+ Fixes for arabic; speed improvements.
+ Make the NoAntialias flag work.
+
+X11:
+
+- QFont
+ Fix possible crash with broken open type fonts.
+- QWidget
+ Fix possible crash in setMicroFocusHint().
+- QPrinter
+ Fix possible crash when drawing text with opaque background.
+ Fix crash if printer tries to print to a nonexistant printer.
+- QRegion
+ Fix drawing problem when using some complex clip
+ regions on the painter.
+- IME framework
+ Fix a possible performance problem and server side memory
+ leak.
+- DnD
+ Fix regression against 3.1.1 when dragging across multiple
+ screens.
+
+Embedded:
+
+- QApplication
+ Fix mouse event delivery bug with modal dialogs and touch
+ screens.
+- QRegion
+ An empty rectangle will now create an empty region, like on
+ the other platforms.
+- QPixmap
+ Preserve alpha channel in xform().
+- QFont
+ Make setPixelSize() work correctly.
+- QImage
+ Fix loading of BMP images.
+- Build system
+ Make the -no-zlib option work correctly.
diff --git a/dist/changes-3.2.2 b/dist/changes-3.2.2
new file mode 100644
index 0000000..e6d1424
--- /dev/null
+++ b/dist/changes-3.2.2
@@ -0,0 +1,155 @@
+Qt 3.2.2 is a bugfix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.2.1
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Compilers
+---------
+
+Make Qt work on Windows 9x compiled with Borland.
+
+Meta Object Compiler
+--------------------
+
+Generate safer code for signals with pointer-to-pointer arguments.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+General Fixes
+-------------
+
+- QButton
+ Make sure button pops up when mouse leaves the button.
+- QEffects
+ Don't crash when widget is destroyed during effect.
+- QFont
+ Load the correct font for characters that have the 'Unicode'
+ script assigned to them (e.g. the em-dash).
+ Fix exact match for raw mode fonts.
+ Fix conversion from unicode to gb2312 to make Chinese appear
+ correctly again when using xlfd fonts.
+- QLineEdit
+ Proper behavior when dragging text inside the same line edit.
+ Make sure the cursor is immediately displayed upon entering a
+ line edit.
+- QListView
+ Update the scroll bars correctly when double clicking on the
+ edge of the header.
+- QPainter
+ Fix case in text rendering, where overfull lines did not get
+ layouted correctly.
+ Fix the last known problems in Indic rendering.
+- QProcess
+ Make canReadLine...() work in a busy loop.
+- QPrinter
+ Set the default paper source properly.
+- QPSPrinter
+ Handle broken true type fonts better.
+ Handle true type fonts with spaces in the family name.
+- QRichText
+ Fix a crash when zooming.
+ Fix possible memory leak.
+- QScrollBar
+ Propagate context menu events that are not handled by the
+ scroll bar.
+
+- QString
+ Support non-'C' locales for string-to-double conversion.
+- QSql
+ Oracle crash fix in some really weird situations.
+- QTable
+ Handle icons correctly when swapping columns/rows.
+ Fix case where a dialog containing a table could hang when
+ opening.
+ Do not crash when QTableHeader::updateSelections() is called,
+ without a current selection.
+- QTextEdit
+ Fixed crash in setCurrentFont() when in LogText mode.
+ Fixed backward searches for the first character or word in a
+ document.
+- QTextEngine
+ Fix memory leaks.
+- QWidgetResizeHandler
+ Improve user interaction.
+- QXmlSimpleReader
+ Fix reading of events after a skippedEntity().
+
+Platform Specific Issues
+------------------------
+
+Windows:
+
+- QFontDatabase
+ Report fixedPitch attribute for fonts correctly.
+ Handle fonts with a hyphen in the name properly.
+- QGLContext
+ Thread safety fix for makeCurrent().
+- QPixmap
+ Detect alpha channel in pixmaps correctly.
+ Fix crash on Windows 9x using alpha blended pixmaps with
+ MemoryOptim.
+ Fix memory leak when detaching copies from pixmaps with
+ alpha channels.
+ Make sure that sizes are correct after xForm().
+ Fix drawing of a masked pixmap into a pixmap with an alpha
+ channel.
+- QPrinter
+ Fix printer output of the drawPixmap()/drawImage() functions
+ that take a rectangle as a parameter.
+ Block all application windows modally when the system printer
+ dialog is open.
+- QWidget
+ Speedup case where tablet support is enabled in library, but
+ no tablet device is present.
+- QWindowsXPStyle
+ Fix gradient background of QLabels within QTabWidgets.
+ Fix "password" character for systems without extended font
+ support.
+
+Mac:
+
+ Improved documentation of Mac-specific issues. A number of
+ general improvements, style fixes, optimizations and bugfixes
+ have been made for Qt/Mac in 3.2.2. Some of the most visible
+ are:
+
+- QSizeGrip
+ Handle hide/show better.
+- QSocket
+ More responsive handling of incoming data reads.
+- QWidget
+ Create widget even if widget flag combinations make no sense.
+ Widget clipping fixes for OpenGL.
+ Widget masking fixed.
+ Fix the problem of a window being set active in show() and
+ then losing its activation when returning from a second event
+ loop.
+
+X11:
+
+- Drag'n'drop
+ Stability improvements.
+- QApplication
+ Make sure that mouse events have proper coordinates when mouse
+ enters widget.
+- QFont
+ Make sure that screen and printer metrics are the same for
+ bitmapped fonts.
+ Avoid crashes with invalid fonts.
+- QPicture
+ Fix text drawing.
+
+Embedded:
+
+- QWSPcMouseHandler
+ Fix buffer overrun when reading from mouse device.
+ Also look for mouse in /dev/inputs/mice when autodetecting.
+
+- QPainter
+ Fix rotated text on 4, 8 and 16 bpp screens.
diff --git a/dist/changes-3.2.3 b/dist/changes-3.2.3
new file mode 100644
index 0000000..a88e930
--- /dev/null
+++ b/dist/changes-3.2.3
@@ -0,0 +1,150 @@
+Qt 3.2.3 is a bugfix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.2.2
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Compilers
+---------
+
+Work around Solaris, AIX, and HP-UX bug affecting
+QString::operator=(const QString &) when linking statically.
+
+Fix gcc 3.4 compile problems.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+General Fixes
+-------------
+
+- QJpegIO
+ Fix memory leak when writing JPEG files.
+
+- QLineEdit
+ Preserve null and empty strings correctly in setText().
+
+- QMessageBox
+ Preserve undocumented behavior in 3.1: expand tabs.
+
+- QMimeSourceFactory
+ Don't crash when a factory uses a pointer to a QMimeSource
+ which is owned by another factory.
+
+- QMovie
+ Respect the background color of a movie when loading
+ animations with transparent pixels.
+ Fix color mode if reading 1-bpp images or frames.
+
+- QPainter
+ Fill the complete bounding rect when rendering text with an
+ opaque painter.
+
+- QRichtext
+ Fix special case where <nobr>\nfoo had an extra space.
+ Fix line breaking for Latin text.
+
+- QTextEdit
+ Improve speed of syntax highlighting.
+
+- QToolBar
+ Do not grow in height when put inside a normal widget.
+
+- QWheelEvent
+ Wheel events are now only sent to the focus widget if the
+ widget under the mouse doesn't handle the event.
+
+- QWMatrix
+ Fix operator *(QRegion) when the world matrix is (-1 0 0 1 0 0)
+ or similar.
+
+
+Platform-Specific Issues
+------------------------
+
+Windows:
+
+- QPrinter
+ Fix resource leak when printing on Windows 9x.
+ Fix crash for Win98 with HP OfficeJet Pro 1150C.
+
+- QTextBrowser
+ Fixed weight problem in setFont().
+
+- QUriDrag
+ Fix bugs with encoding and separators.
+
+Mac:
+
+Mac OS X 10.3 (Panther) changes:
+
+- QMacStyle
+ Draw push button text vertically-centered.
+
+- QSplashScreen
+ Make the splash screen centered.
+
+- QWidget
+ Tooltips are displayed in the correct place in Panther.
+ Applications that save and restore their geometry will not
+ "walk up" the screen.
+
+General Mac OS X changes:
+
+Fix crash on exit problem (e.g. with Qt Designer).
+
+- QApplication
+ Fix mouse release problem when Control is used to emulate
+ mouse button 2.
+
+- QDesktopWidget
+ Fix problem with popup windows and dual monitors.
+
+- QFont
+ Improve fixed pitch font handling.
+
+- QMenuBar
+ Fix crash with empty menus.
+ Make sure that when we show the application menu, the items we
+ merged in from the other popup menu's are properly
+ enabled/disabled.
+ Fix case where clicking menu bar would stop timers firing.
+
+X11:
+
+- QApplication
+ Avoid endless client message loops when replying to
+ _NET_WM_PING events.
+
+- QFont
+ Fix crash when using high latin characters with GNU unifont.
+ Fix scale factor for printing (rounding error).
+
+- QPainter
+ Fix an endless loop and a bug in the shape engine for Hangul
+ Jamo. (Affects only ancient Korean texts.)
+
+- QPrinter
+ Work around bugs in Xft that cause memory corruption in the
+ postscript printer when downloading certain fonts.
+
+- QSound
+ Fixed crash when deleting a QSound object while it was
+ playing.
+
+
+Embedded:
+
+Fixed bug when applications connect then disconnect immediately.
+Added experimental code to handle 1-bpp and 4-bpp displays for
+big-endian architectures (turned off by default).
+
+- QEventLoop
+ Make processEvents(ExcludeUserInput) work.
+
+- QPrinter
+ Fix font metrics when printing with QPrinter::HighResolution.
diff --git a/dist/changes-3.3.0 b/dist/changes-3.3.0
new file mode 100644
index 0000000..8523592
--- /dev/null
+++ b/dist/changes-3.3.0
@@ -0,0 +1,313 @@
+Qt 3.3 introduces many new features as well as many improvements over
+the 3.2.x series. For more details, see the online documentation which
+is included in this distribution. The documentation is also available
+at http://doc.trolltech.com/
+
+The Qt version 3.3 series is binary compatible with the 3.2.x series.
+Applications compiled for 3.2 will continue to run with 3.3.
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Qt library
+----------
+
+Qt 3.3 is .NET enabled. This release shows how to use classes
+developed with Qt in a .NET environment. It includes an analysis of
+the different interoperability infrastructures provided by the .NET
+framework. An example demonstrates how to use both a manual approach
+with Microsoft's managed extensions to the C++ language, and also
+automated solutions based on COM and the ActiveQt framework to reuse
+native Qt classes and widgets in .NET projects. To learn more about Qt
+and .NET read the "Using Qt objects in Microsoft .NET" walkthrough
+found in the ActiveQt framework documentation.
+
+Qt 3.3 now supports IPv6 in addition to IPv4. New functions have been
+added for IPv6 support to QSocketDevice, QHostAddress and QDNns.
+
+Qt now includes a new tool class called QLocale. This class converts
+between numbers and their string representations in various languages.
+QLocale supports the concept of a default locale which allows a locale
+to be set globally for the entire application.
+
+Support for new 64bit platforms and compilers has been added for Qt
+3.3. Qt now supports Itanium on both Linux (Intel C++ compiler) and
+Windows (MSVC and Intel C++ Compiler). Qt 3.3 now also officially
+supports FreeBSD.
+
+Qt 3.3 also supports precompiled headers for Windows, Mac OS X and
+X11. To use precompiled headers when compiling your Qt application
+simply add PRECOMPILED_HEADER and then specify the header file to
+precompile in your .pro file. To learn more about precompiled headers
+see the "Using Precompiled Headers" chapter in the qmake User Guide.
+
+Two new database drivers have been added to the SQL module, InterBase
+and SQLite. This makes it possible to write database applications that
+do not require a database server. SQLite is provided in the Qt 3.3
+distribution and can be enabled with either -qt-sql-sqlite or
+-plugin-sql-sqlite. The InterBase plugin also works with Firebird, the
+open source version of InterBase.
+
+QWidget has a new function setWindowState() which is used to make a
+widget maximized, minimized, etc. This allows individual settings for
+the minimized/maximized/fullscreen properties.
+
+Support for semi-transparent top-level widgets on Mac OS X and Windows
+2000/XP has also been added.
+
+A new example, qregexptester, has been added that makes it easy to
+test QRegExps on sample strings.
+
+Qt 3.3 includes in addition to this, numerous bug fixes and
+improvements. Special thanks goes to KDE for their reports and
+suggestions.
+
+
+Qt/Embedded
+-----------
+
+Added support for SNAP graphics drivers from SciTech Software. This
+gives access to accelerated drivers for more than 150 graphics
+chipsets.
+
+
+Qt/Mac
+------
+
+QAccessible support has been introduced (implemented in terms of Apple's
+Universal Access API).
+
+Added support for Xcode project files in qmake.
+
+Added Tablet support for Mac OS X.
+
+Numerous visual improvements.
+
+
+Qt/X11
+------
+
+Added support for Xft2 client side fonts on X servers without the
+RENDER extension.
+
+Added a new configure option (-dlopen-opengl) which will remove the
+OpenGL and Xmu library dependencies in the Qt library. The functions
+used by Qt in those libraries are resolved manually using dlopen()
+when this option is used.
+
+Improved support for the Extended Window Manager Hints.
+
+
+Qt/Windows
+----------
+
+Added support for Windows Server 2003 (Win64/Itanium).
+
+
+Qt Motif Extension
+------------------
+
+Clipboard operations now work between Qt and Motif widgets in the same
+application. Click-to-focus works with Motif widgets that are children
+of a QMotifWidget.
+
+
+ActiveQt Extension
+------------------
+
+Two new functions, QAxFactory::startServer() and
+QAxFactory::stopServer(), can be used to start and stop an
+out-of-process ActiveQt server at runtime. The new functions
+QAxFactory::serverDirPath() and QAxFactory::serverFilePath() return
+the location of the COM server binary. Server binaries no longer
+need to implement a main() entry point function. A default
+implementation is used for out-of-process servers. IClassFactory2
+is supported for the development of licensed components, and
+QAxFactory supports the creation of non-visual COM objects. Class
+specific information can be provided directly in the C++ class
+declaration using the Q_CLASSINFO macro to control how objects and
+controls are registered and exposed. New helper classes and macros
+are avialable to make it even easier to expose object classes (see the
+QAxServer documentation for details).
+
+COM objects developed with ActiveQt are now supported in a wider range
+of clients, including Microsoft Office applications and .NET. Examples
+that demonstrate how to use the Qt objects from the examples in .NET
+languages like C# are included. QStringList is supported as a type,
+and QRect, QSize and QPoint are now supported datatypes for control
+properties and as reference parameters. Saving the controls to a
+storage or stream now includes the version number of the QDataStream
+used for the serialization (note that this might break existing
+storages).
+
+The QAxContainer library is now static even for shared configurations
+of Qt. This simplifies deployment and allows using both QAxServer and
+QAxContainer in one project, i.e. an OLE automatable application that
+uses COM objects itself. The semantics of QAxBase::setControl() have
+been extended to allow creating of COM objects on remote machines via
+DCOM, to create controls requiring a license key and to connect to
+already running objects. The implementation of QAxBase::dynamicCall()
+has been improved to support passing of parameter values directly in
+the function string. Three new classes, QAxScript, QAxScriptManager
+and QAxScriptEngine, can be used to script COM objects from within Qt
+applications using Windows Script Host.
+
+SAFEARRAY(BSTR) parameters are supported as QStringList. Calling COM
+object methods with out-parameters of type short, char and float is
+now supported (the parameters are of type int& and double& in the Qt
+wrapper), and QVariants used for out-parameters don't have to be
+initialized to the expected type. Calling QByteArray functions in
+out-of-process controls no longer returns an error code. The control's
+client side is set to zero when the container releases the control.
+
+
+Qt Designer
+-----------
+
+Qt Designer, Qt's visual GUI builder, has received some speed
+optimizations, along with minor improvements to the menu editor.
+
+
+Qt Assistant
+------------
+
+Qt Assistant now saves the states of the tab bars between runs. This
+enables users to start browsing where they ended their previous
+assistant session.
+
+Shortcuts for Find Next (F3) and Find Previous (Shift+F3) have been
+implemented.
+
+
+Compilers
+---------
+
+Qt 3.3 adds support for two new compilers. The Intel C++ compiler is
+supported on Windows, Linux and FreeBSD. GNU gcc is supported on
+Windows using MinGW.
+
+Qt 3.3 no longer officially supports the Sun WorkShop 5.0 compiler or the
+SGI MIPSpro o32 mode.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QAction
+ Added a setDisabled() slot similar to QWidget::setDisabled.
+ Added an activate() slot which activates the action and
+ executes all connected slots.
+ QActions::menuText() escapes ampersand characters ('&') when
+ using the value of the text property.
+
+- QButtonGroup
+ Added QButtonGroup::selectedId property to allow mapping with
+ SQL property sets.
+
+- QCursor
+ Added new enum value Qt::BusyCursor.
+ X11 only: Added QCursor constructor taking a X11 cursor handle.
+
+- QDom
+ The QDom classes are now reentrant.
+
+- QEvent
+ Added new event type WindowStateChange, obsoleting ShowNormal,
+ ShowMinimized, ShowMaximized and ShowFullScreen.
+
+- QHeader
+ The sizeChange() signal is emitted when the section sizes are
+ adjusted by double clicking.
+
+- QHostAddress
+ Added new constructor for IPv6 and new functions
+ isIPv6Address() and toIPv6Address(). Obsoleted the functions
+ isIp4Addr() and ip4Addr(), replacing them with isIPv4Address()
+ and toIPv4Address().
+
+- QIconView
+ Improved keyboard search to behave like QListView.
+
+- QListView
+ Improved alignment for text in QListViewItems. Right aligned
+ text now has the ellipsis on the left.
+ Keyboard search now uses the sort column as the column to
+ start searching in.
+ Improved branch drawing.
+
+- QLocale [new]
+ This new tool class converts between numbers and their string
+ representations in various languages.
+
+- QMacStyle
+ Allow disabling of size constraints.
+
+- QMovie
+ Added JNG support.
+
+- QPixmap
+ Support full alpha-maps for paletted (8-bit) images.
+ Support 16-bit grayscale PNG images with transparency.
+
+- QPushButton
+ A push button with both an iconset and text left-aligns the
+ text.
+
+- QSocketDevice
+ Added setProtocol() and protocol() for IPv6 support.
+
+- QSound
+ Windows: Support loop related APIs.
+
+- QSplashScreen
+ Less intrusive stay-on-top policy.
+
+- QSql
+ Support for InterBase and SQLite.
+
+- QStatusBar
+ Draw messages with the foreground() color of the palette,
+ rather than with the text() color.
+
+- QString
+ Added support for %lc and %ls to sprintf(). %lc takes a
+ Unicode character of type ushort, %ls takes a zero-terminated
+ array of Unicode characters of type ushort (i.e. const
+ ushort*). Also added support for precision (e.g. "%.5s").
+ Changed arg() to support "%L1" for localized conversions.
+ Windows only: QString::local8Bit() now returns an empty
+ QCString when called on a null QString to unify behavior
+ with the other platforms.
+
+- QStyle
+ Add a new primitive element: PE_RubberBand.
+ Added PM_MenuBarItemSpacing and PM_ToolBarItemSpacing pixel metrics.
+
+- QTextDrag
+ decode() now autodetects the encoding of text/html content.
+
+- QTextEdit
+ Reduced memory consumption by 20 bytes per line.
+ Added a getter for the currently set QSyntaxHighlighter.
+
+- QTextBrowser
+ Qt now automatically detects the charset of HTML files set
+ with setSource().
+
+- QVariant
+ Comparison between variants where one of the variants is a
+ numeric value will compare on the numeric value. Type casting
+ between different variants is more consistent.
+
+- QWidget
+ Added setWindowOpacity() and windowOpacity() to support
+ transparent top-level widgets on Windows and Mac.
+ Added windowState() and setWindowState() to allow individual
+ setting of the minimized/maximized/fullscreen properties.
+
+- QWindowsStyle
+ Qt supports toggling of the accelerator underlines using the
+ Alt-key on Windows 98, 2000 and later. On other platforms this
+ change has no effect.
diff --git a/dist/changes-3.3.0-b1 b/dist/changes-3.3.0-b1
new file mode 100644
index 0000000..8a7433b
--- /dev/null
+++ b/dist/changes-3.3.0-b1
@@ -0,0 +1,284 @@
+Qt 3.3 introduces many new features as well as many improvements over
+the 3.2.x series. For more details, see the online documentation which
+is included in this distribution. The documentation is also available
+at http://doc.trolltech.com/
+
+The Qt version 3.3 series is binary compatible with the 3.2.x series.
+Applications compiled for 3.2 will continue to run with 3.3.
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Qt library
+----------
+
+Qt 3.3 is .NET enabled. This release shows how to use classes
+developed with Qt in a .NET environment. It includes an analysis of
+the different interoperability infrastructures provided by the .NET
+framework. An example demonstrates how to use both a manual approach
+with Microsoft's managed extensions to the C++ language, and also
+automated solutions based on COM and the ActiveQt framework to reuse
+native Qt classes and widgets in .NET projects. To learn more about Qt
+and .NET read the "Using Qt objects in Microsoft .NET" walkthrough
+found in the ActiveQt framework documentation.
+
+Qt 3.3 now supports IPv6 in addition to IPv4. New functions have been
+added for IPv6 support to QSocketDevice, QHostAddress and QDNns.
+
+Qt now includes a new tool class called QLocale. This class converts
+between numbers and their string representations in various languages.
+QLocale supports the concept of a default locale which allows a locale
+to be set globally for the entire application.
+
+Support for new 64bit platforms and compilers has been added for Qt
+3.3. Qt now supports Itanium on both Linux (Intel) and Windows
+(VC++). Qt 3.3 now also officially supports FreeBSD.
+
+Qt 3.3 also supports precompiled headers for both Windows and Mac OS
+X. To use precompiled headers when compiling your Qt application
+simply add PRECOMPH and then specify the header file to precompile in
+your .pro file. To learn more about precompiled headers see the
+"Using Precompiled Headers" chapter in the qmake User Guide.
+
+Two new database drivers have been added to the SQL module, InterBase
+and SQLite. This makes it possible to write database applications that
+do not require a database server. SQLite is provided in the Qt 3.3
+distribution and can be enabled with either -qt-sql-sqlite or
+-plugin-sql-sqlite. The InterBase plugin also works with Firebird, the
+open source version of InterBase.
+
+QWidget has a new function setWindowState() which is used to make a
+widget maximized, minimized, etc. This allows individual settings for
+the minimized/maximized/fullscreen properties.
+
+Support for semi-transparent top-level widgets on Mac OS X and Windows
+2000/XP has also been added.
+
+Qt 3.3 includes in addition to this, numerous bug fixes and
+improvements. Special thanks goes to KDE for their reports and
+suggestions.
+
+
+Qt/Embedded
+-----------
+
+Added support for SNAP graphics drivers from SciTech Software. This
+gives access to accelerated drivers for more than 150 graphics
+chipsets.
+
+
+Qt/Mac
+------
+
+Added support for Xcode project files in qmake.
+Added Tablet support for Mac OS X.
+Numerous visual improvements.
+
+
+Qt/X11
+------
+
+Added support for Xft2 client side fonts on X servers without the
+RENDER extension.
+
+Added a new configure option (-dlopen-opengl) which will remove the
+OpenGL and Xmu library dependencies in the Qt library. The functions
+used by Qt in those libraries are resolved manually using dlopen()
+when this option is used.
+
+Improved support for the Extended Window Manager Hints.
+
+
+Qt/Windows
+----------
+
+Added support for Windows Server 2003 (Win64/Itanium).
+
+
+Qt Motif Extension
+------------------
+
+Clipboard operations now work between Qt and Motif widgets in the same
+application. Click-to-focus works with Motif widgets that are children
+of a QMotifWidget.
+
+
+ActiveQt Extension
+------------------
+
+Two new functions, QAxFactory::startServer() and
+QAxFactory::stopServer(), can be used to start and stop an
+out-of-process ActiveQt server at runtime. The new functions
+QAxFactory::serverDirPath() and QAxFactory::serverFilePath() return
+the location of the COM server binary. Server binaries no longer
+need to implement a main() entry point function. A default
+implementation is used for out-of-process servers. IClassFactory2
+is supported for the development of licensed components, and
+QAxFactory supports the creation of non-visual COM objects. Class
+specific information can be provided directly in the C++ class
+declaration using the Q_CLASSINFO macro to control how objects and
+controls are registered and exposed. New helper classes and macros
+are avialable to make it even easier to expose object classes (see the
+QAxServer documentation for details).
+
+COM objects developed with ActiveQt are now supported in a wider range
+of clients, including Microsoft Office applications and .NET. Examples
+that demonstrate how to use the Qt objects from the examples in .NET
+languages like C# are included. QStringList is supported as a type,
+and QRect, QSize and QPoint are now supported datatypes for control
+properties and as reference parameters. Saving the controls to a
+storage or stream now includes the version number of the QDataStream
+used for the serialization (note that this might break existing
+storages).
+
+The QAxContainer library is now static even for shared configurations
+of Qt. This simplifies deployment and allows using both QAxServer and
+QAxContainer in one project, i.e. an OLE automatable application that
+uses COM objects itself. The semantics of QAxBase::setControl() have
+been extended to allow creating of COM objects on remote machines via
+DCOM, to create controls requiring a license key and to connect to
+already running objects. The implementation of QAxBase::dynamicCall()
+has been improved to support passing of parameter values directly in
+the function string. Three new classes, QAxScript, QAxScriptManager
+and QAxScriptEngine, can be used to script COM objects from within Qt
+applications using Windows Script Host.
+
+SAFEARRAY(BSTR) parameters are supported as QStringList. Calling COM
+object methods with out-parameters of type short is now supported (the
+parameters are of type int& in the Qt wrapper), and QVariants used for
+out-parameters don't have to be initialized to the expected type.
+Calling QByteArray functions in out-of-process controls no longer
+returns an error code. The control's client side is set to zero when
+the container releases the control.
+
+
+Qt Designer
+-----------
+
+Qt Designer, Qt's visual GUI builder, has received some speed
+optimizations, along with minor improvements to the menu editor.
+
+
+Qt Assistant
+------------
+
+Qt Assistant now saves the states of the tab bars between runs. This
+enables users to start browsing where they ended their previous
+assistant session.
+
+Shortcuts for Find Next (F3) and Find Previous (Shift+F3) have been
+implemented.
+
+
+Compilers
+---------
+
+Qt 3.3 adds support for two new compilers. The Intel C++ compiler is
+supported on Linux and FreeBSD. GNU gcc is supported on Windows using
+MinGW.
+
+Qt 3.3 no longer officially supports the Sun CC 5.0 compiler or the
+IRIX MIPSpro o32 mode.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+- QAction
+ Added a setDisabled() slot similar to QWidget::setDisabled.
+ Added an activate() slot which activates the action and
+ executes all connected slots.
+ Added showStatusMessage() and whatsThisClicked() signals.
+
+- QButtonGroup
+ Added QButtonGroup::selectedId property to allow mapping with
+ SQL property sets.
+
+- QCursor
+ Added new enum value Qt::BusyCursor.
+
+- QDom
+ The QDom classes are now reentrant.
+
+- QEvent
+ Added new event type WindowStateChange, obsoleting ShowNormal,
+ ShowMinimized, ShowMaximized and ShowFullScreen.
+
+- QHeader
+ The sizeChange() signal is emitted when the section sizes are
+ adjusted by double clicking.
+
+- QHostAddress
+ Added new constructor for IPv6 and new functions
+ isIPv6Address() and toIPv6Address(). Obsoleted the functions
+ isIp4Addr() and ip4Addr(), replacing them with isIPv4Address()
+ and toIPv4Address().
+
+- QListView
+ Improved alignment for text in QListViewItems. Right aligned
+ text now has the ellipsis on the left.
+ Keyboard search now uses the sort column as the column to
+ start searching in.
+ Improved branch drawing.
+
+- QLocale [new]
+ This new tool class converts between numbers and their string
+ representations in various languages.
+
+- QMacStyle
+ Allow disabling of size constraints.
+
+- QMovie
+ Added JNG support.
+
+- QPixmap
+ Support full alpha-maps for paletted (8-bit) images.
+ Support 16-bit grayscale PNG images with transparency.
+
+- QSocketDevice
+ Added setProtocol() and protocol() for IPv6 support.
+
+- QSound
+ Windows: Support loop related APIs.
+
+- QSplashScreen
+ Less intrusive stay-on-top policy.
+
+- QSql
+ Support for InterBase and SQLite.
+
+- QStatusBar
+ Draw messages with the foreground() color of the palette,
+ rather than with the text() color.
+
+- QString
+ Added support for %lc and %ls to sprintf(). %lc takes a
+ Unicode character of type ushort, %ls takes a zero-terminated
+ array of Unicode characters of type ushort (i.e. const
+ ushort*). Also added support for precision (e.g. "%.5s").
+ Changed arg() to support "%L1" for localized conversions.
+
+- QStyle
+ Add a new primitive element: PE_RubberBand.
+
+- QTextEdit
+ Reduced memory consumption by 20 bytes per line.
+ Added a getter for the currently set QSyntaxHighlighter.
+
+- QVariant
+ Comparison between variants where one of the variants is a
+ numeric value will compare on the numeric value. Type casting
+ between different variants is more consistent.
+
+- QWidget
+ Added setWindowOpacity() and windowOpacity() to support
+ transparent top-level widgets on Windows and Mac.
+ Added windowState() and setWindowState() to allow individual
+ setting of the minimized/maximized/fullscreen properties.
+
+- QWindowsStyle
+ Qt supports toggling of the accelerator underlines using the
+ Alt-key on Windows 98, 2000 and later. On other platforms this
+ change has no effect.
diff --git a/dist/changes-3.3.1 b/dist/changes-3.3.1
new file mode 100644
index 0000000..55ea305
--- /dev/null
+++ b/dist/changes-3.3.1
@@ -0,0 +1,141 @@
+Qt 3.3.1 is a bugfix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.3.0
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Added support for animated cursors on Mac OS X.
+
+Compilers
+---------
+
+Fixed SQLite compilation on Solaris.
+
+Fixed problem with precompiled headers (PCH) and Platform SDK on
+Windows by removing winsock2.h dependency.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+General Fixes
+-------------
+
+Fixed drag and drop for modal dialogs.
+
+- QAction
+ Propagate visibility state correctly to actions added to an
+ invisible actiongroup.
+
+- QHttp
+ Handle both upper and lower case in response headers.
+
+- QLineEdit
+ Fixed drawing problems that affected very long strings and
+ the handling of trailing spaces.
+
+- QObject
+ Fixed connectNotify() and disconnectNotify() for some special
+ cases.
+
+- QPixmap
+ Avoid calling detach() when setting a null mask on a pixmap.
+
+- QString
+ sprintf() again interprets strings, %s, as UTF-8 strings, not
+ as Latin1 strings.
+
+- QTabBar
+ Tabbars are now correctly left aligned again.
+
+- QTable
+ Fixed shift selections after editing.
+
+- QTextEdit
+ Emits cursorPositionChanged() when cursor position changes
+ when find() has been called.
+ LogText mode: Changing fonts after appending text now
+ recalculates the scrollbars properly.
+ Optimized createPopupMenu().
+
+- QVariant
+ Added missing detach() calls in QVariant::as...() functions
+ (e.g. asInt()).
+
+- QWidget
+ setWindowState() fixed for WindowMaximized and
+ WindowFullScreen. showMaximized() and showFullScreen() now
+ work for laid out widgets that have not been explicitly
+ resized.
+ windowOpacity() correctly initialized.
+
+Platform-Specific Issues
+------------------------
+
+Windows:
+
+Fixed overflow error that sometimes affected the font engine.
+Fixed font drawing problems for some international versions of Win9x;
+also improved handling of spaces before Chinese characters.
+
+- QApplication
+ Fixed libraryPaths() to return the correct location of the
+ application executable, independently of whether it has been
+ called before the QApplication constructor or afterwards.
+
+- QFileInfo
+ Fixed readLink() for special cases.
+
+- QSound
+ Fixed isFinished() to work correctly.
+
+- QStyle
+ Fixed QWindowsXPStyle drawing flat toggle buttons.
+
+- QWidget
+ Turn off layered painting if window opacity is set back to
+ 1.0; making widget redrawing fast again.
+
+Mac:
+
+Fixed crash on exit problem with Qt Designer.
+Fixed compilation of networking modules for Professional edition.
+Fixed overflow error that sometimes occurred in the font engine.
+Fixed modal dialogs and contextMenuRequested() signals.
+
+- QMenuBar
+ Add separator after the "Abouts".
+ Fixed memory corruption.
+
+- QMessageBox
+ Improved handling of text and button size.
+
+- QPainter
+ Improved raster operations when using colors.
+ Improved polygon region handling and drawPolyLine().
+
+- QStyle
+ Fixed QAquaStyle to use setWindowOpacity().
+ Fixed QMacStyle drawing of flat toggle buttons.
+
+- QWidget
+ Fixed showFullScreen() to not hide the toolbar.
+
+X11:
+
+Fixed skipping of certain (bitmap) fonts for Xft2 when building up the
+font database.
+
+- QPrinter
+ Fixed regression with margins and Landscape.
+
+Embedded:
+
+- QPixmap
+ Fixed crash bug with transformed driver when using masked
+ pixmaps where width > height.
+ In xForm(), pre-fill the resulting pixmap with a transparent
+ color instead of white.
diff --git a/dist/changes-3.3.2 b/dist/changes-3.3.2
new file mode 100644
index 0000000..72213de
--- /dev/null
+++ b/dist/changes-3.3.2
@@ -0,0 +1,390 @@
+Qt 3.3.2 is a bugfix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.3.1 and Qt 3.3.0.
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Compilers
+---------
+
+MinGW: It is now possible to build the WinXP style on MinGW.
+
+FreeBSD: Enable DragonFly to build Qt with its native compiler.
+
+Mac: Assistant builds with Professional edition when Fink is installed.
+
+AIX: Fixed compile problem with OpenType.
+
+Tru64: Correctly detects the Compaq C++ compiler.
+
+HP-UX 64: Fixed link failure for Designer.
+
+Intel: Fixed compile failure on icc version 8.0 p42+.
+
+Qt/Embedded: Compiles with gcc 3.4.0 (prerelease).
+
+Added macro QT_QLOCALE_USES_FCVT for systems with non-IEEE-compliant
+floating point implementations (notably some versions of ARM
+Linux). These systems are not autodetected; use
+"-DQT_QLOCALE_USES_FCVT" as a parameter to ./configure.
+
+Qt Designer
+-----------
+
+Allows saving of the column and label information for QDataTable, even
+when Qt is compiled without the SQL module.
+
+Fixed data corruption in .pro files with whitespace.
+
+Fixed crash on closing a new, modified, unsaved C++ file.
+
+Fixed crash with QicsTable.
+
+Fixed corrupted .ui files caused by '<' or '>' in the object name.
+
+Fixed freeze when opening a modal Wizard Dialog from file.
+
+Fixed crash when adding a new separator using drag and drop.
+
+Qt Assistant
+------------
+
+Fixed the Settings font combobox to not re-add font entries.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+General Fixes
+-------------
+
+- QAction
+ Fixed bug when adding invisible/disabled actions to
+ visible/enabled action groups.
+
+- QCanvas
+ Cleans up old animations in setCanvas().
+
+- QClipboard
+ Fixed potential double deletion in clean up.
+
+- QColorDialog
+ Fixed crash when running on very small screens (less than
+ 480x350).
+
+- QDateEdit
+ Fixed bug that would accept invalid dates when losing focus.
+
+- QDialog
+ Made showMaximized() and showFullScreen() work for dialogs
+ again.
+
+- QDns
+ Improved handling of literal IP addresses for both IPv4 and
+ IPv6.
+ Improved handling of disappearing/reappearing name servers.
+
+- QFont
+ Fixed handling of Oblique fonts.
+
+- QImage
+ Fixed crash when loading MNG animations.
+
+- QLabel
+ Fixed bug with labels without buddies that have '&' in the
+ text.
+
+- QLineEdit
+ Handles input method events according to the specification,
+ fixing severe problems with Korean input on Windows. This
+ change could show up problems with buggy input methods.
+ Fixed disappearing cursor for right-aligned text and Xft1.
+
+- QListBox
+ Fixed bug in itemAt() when listbox has wide line/framestyle.
+
+- QListView
+ Fixed problem with editor sometimes having zero width.
+
+- QLocale
+ Fixed crash on FreeBSD/Alpha.
+
+- QPainter
+ Fixed QPicture transformation bug.
+
+
+- QPopupMenu
+ Fixed crash-on-exit bug when using floating menus.
+
+- QRegExp
+ Fixed bug with patterns of the form "^A|B".
+
+- QSocket
+ Fixed bug where connecting two QSockets simultaneously would
+ cause both to connect to the same address.
+ Fixed bug where ErrConnectionRefused would not be emitted in
+ rare cases.
+
+- QSql
+ Fixed data corruption in OCI driver.
+ Fixed data corruption with SQLite driver when using non-UTF-8
+ databases with special characters.
+ Updated to work with SQLite version 2.8.13.
+
+- QString
+ Made string-to-number conversions interpret strings according
+ to the current locale.
+ Fixed the format of the %p sprintf flag.
+ Perform sanity check on the length parameter to fromUtf8().
+ Fixed toDouble() to again return a value even when failing on
+ trailing whitespace.
+ Performance optimization for startsWith()/endsWith().
+
+- QTable
+ Fixed crash caused by calling addLabel() on a horizontal header
+ when there are no columns in the table.
+ Fixed crash that occurs when deleting a QTable while editing
+ a cell.
+ Made it possible to override the grid line color.
+ Fixed selectionChanged() to be emitted correctly when dealing
+ with selections of multiple items.
+
+- QTabWidget
+ Fixed setAutoMask().
+
+- QToolButton
+ Icon and label now move the same distance when pressed.
+
+- QTextEdit
+ Does not override Ctrl+Alt+key accelerators.
+ Performance optimization: do not call ensureCursorVisible() when
+ isUpdatesEnabled() is not true.
+ Fixed crash when using removeParagraph() to remove QTextTable
+ items.
+ Fixed data corruption when saving documents with overline or
+ strikeout.
+
+- QTextBrowser
+ Fixed Purify warning about array-bound reads.
+
+- QVariant
+ Fixed bug in detaching LongLong and ULongLong values.
+
+- QWidget
+ Made showMaximized()/showFullScreen()/showMinimized() work
+ correctly again.
+ Posts events from the windowing system as before.
+
+- QWizard
+ Does not show enabled Next button on the last page if the
+ Finish button was enabled on an earlier page.
+
+- QWorkspace
+ Scales down maximize icon correctly.
+ Fixed active window/focus bug.
+ Ensured that children added to invisible workspaces are
+ painted correctly.
+ Fixed flicker with tooltips for maximize, minimize and close
+ buttons.
+
+- QXml
+ Fixed bug causing data corruption when reading invalid XML
+ files.
+
+
+Platform-Specific Issues
+------------------------
+
+Windows:
+
+- QApplication
+ Does not handle GUI messages for non-GUI appliations.
+ Disabled MenuItem highlight color for XP in non-themed
+ Classical Style.
+
+- QContextMenuEvent
+ Made right mouse button send menu event also for popup widgets
+ such as the QListBox in QComboBox.
+
+- QDesktopWidget
+ Made qApp->desktop()->size() give the correct size after a
+ display resolution change.
+
+- QFont
+ Loading a Japanese font using the English name now works when
+ running in a Japanese locale.
+
+- QLineEdit
+ Fixed drawing problems that affected very long strings and the
+ handling of trailing spaces when using Uniscribe.
+
+- QPainter
+ Fixed possible crash in setBrush().
+ Draw bitmaps using painter's foreground color when painter is
+ using a complex transformation.
+ Fixed inter-letter spacings for scaled fonts.
+
+- QPrinter
+ Fixed crash when using buggy printer drivers.
+
+- QSound
+ Made setLoops(-1) work again (plays the sound in a loop).
+ Made setLoops(0) play no sound.
+ Made setLoops(1) set isFinished() correctly.
+ Fixed memory leak.
+ If a new sound is started then stop the existing one, and play
+ the new one.
+
+- QTextEngine
+ Performs auto-detection of Asian scripts even if Uniscribe is
+ not installed.
+
+- QWidget
+ Returns correct isMinimized/isMaximized state if an application
+ is started through a shortcut using "Minimized" or "Maximized".
+
+Mac:
+
+- QAccel
+ Solved the problem where we received two accel override events
+ for each keypress.
+
+- QApplication
+ Uses better technique for obtaining applicationFilePath().
+ Allows non-GUI applications to run without the GUI.
+ Stopped using EnableSecureEventInput() because of
+ Jaguar/Panther compatibility problems.
+ Updates the text highlight color when the system changes it.
+
+- QClipboard
+ Fixed posting to the clipboard and access rights.
+
+- QComboBox
+ Ensures that the item list stays within the screen size.
+
+- QCursor
+ Uses native splitter cursors when available.
+
+- QFontMetrics
+ Fixed fontmetrics for Asian fonts.
+
+- QLineEdit
+ Uses secure keyboard input in Password mode, so that keyboard
+ events cannot be intercepted.
+
+- QMacStyle
+ Fixed painting of radio buttons to be perfectly circular.
+
+- QMenuBar
+ Fixed bug when using pixmaps without an alpha channel.
+
+- QPainter
+ Improved raster operations.
+ Made custom bitmap brushes work.
+ Draws text using painter's foreground color.
+
+- QPrinter
+ Ensures that the printer name and page range are correct after
+ setup.
+ Always uses the native print dialog.
+ Implemented setPageSize() and pageSize() properly.
+ Made QPrinter work when no printer is installed.
+ Fixed font width bug in postscript when font embedding is
+ disabled.
+
+- QSettings
+ Returns correct value for global settings when scope is User.
+
+- QSlider
+ Fixed drawing of tickmarks when minimum value is non-zero.
+
+- QStyle
+ Does not change pixmap of QToolbutton if the button is not
+ auto-raised.
+
+- QWidget
+ Fixed bug where the toolbar is partially hidden when showing a
+ mainwindow in fullscreen mode.
+ Made WStyle_StaysOnTop work in the same way as on the other
+ platforms.
+ Fixed bug in maximizing windows with a maximum size.
+
+- QWorkspace
+ Fixed bug giving frozen child windows when maximizing and
+ restoring.
+
+X11:
+
+Fixed crash bug when using X Input Method Chinput.
+
+- Drag and Drop
+ Ignores accelerator events when dragging.
+
+- QClipboard
+ Fixed bug where data()->format() would return the wrong value.
+ Fixed potential crashes with regards to iterators.
+
+- QFont
+ Avoids badly scaled fonts, and prefers exact matches.
+ Made sure symbol fonts get loaded correctly.
+ Made it possible to load Latin fonts that do not contain the
+ Euro symbol.
+ Fixed glyph width bug observed with some Khmer fonts.
+ Fixed crash with misconfigured Xft.
+ Fixed problem with font selection for Xft2 when having Latin
+ text with non-Latin locale.
+ Respects custom dpi settings for Xft.
+ Does not use Xft if we have FreeType1 but no XRender.
+ Fixed memory leak in the font engine when drawing transformed
+ fonts.
+
+- QGL
+ Fixed crash when rendering text in GL widgets.
+
+- QLocale
+ Tru64: Fixed crash when INFINITY is compared to another double.
+ Tru64: Uses DBL_INFINITY for Compaq C++ compiler.
+
+- QMimeSource
+ Does not re-enter the event loop in provides().
+
+- QPainter
+ Fixed rendering of anti-aliased text on non-XRender enabled
+ displays.
+
+- QPrinter
+ Fixed setFromTo().
+ Fixed printing of Arabic text with XLFD fonts.
+
+- QTextEdit
+ Fixed bug with extremely long lines.
+
+- QThread
+ Fixed bug that made program require superuser privileges on
+ some Linux machines.
+
+- QWidget
+ Fixed showFullScreen() and showMaximized() for window managers
+ that do not support extended window manager hints (EWMH).
+
+Embedded:
+
+- QFontInfo
+ Made QFontInfo work properly on Qt/Embedded.
+
+- QGfxVNC
+ Fixed crash if VNC viewer is closed while Qt/E is painting.
+
+- QWidget
+ Uses correct focus handling if the focus widget is hidden or
+ deleted while a popup is open.
+
+Linux virtual console switching:
+ Fixed race condition in handling of virtual console switching
+ that could cause a deadlock in some cases.
+ Switch consoles on key press event.
+ Fixed QWSServer::hideCursor()/showCursor() display locking bug
+ which could block client processes.
diff --git a/dist/changes-3.3.3 b/dist/changes-3.3.3
new file mode 100644
index 0000000..8dde96a
--- /dev/null
+++ b/dist/changes-3.3.3
@@ -0,0 +1,442 @@
+Qt 3.3.3 is a bugfix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.3.2, Qt 3.3.1 and Qt 3.3.0.
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Compilers
+---------
+Added support for GNU gcc on AIX 64-bit.
+
+Fixed the issue of some compilers that produced bad output when
+compiling qlocale.cpp with -O2.
+
+Fixed include path problem with MinGW.
+
+Meta Object Compiler (moc)
+--------------------------
+Allow classnames containing the substring 'const' in signal
+parameters.
+
+Qt Assistant
+------------
+Fixed crash when an empty file is part of the profile.
+
+Qt Designer
+-----------
+Fixed occasional crash when closing the form window.
+
+Fixed bug that removed '@' characters from .pro files.
+
+Fixed bug resulting in invalid code for radio buttons with strong
+focus.
+
+Fixed crash when custom widget plugins based on QComboBox were edited or
+previewed in certain styles.
+
+Fixed bug in loading enum properties (e.g. slider tickmarks).
+
+Handle comments of the form '# {' correctly.
+
+Handle '$${}' variable expansion correctly.
+
+Fixed missing actions in drop down action groups created with the menu
+editor.
+
+Made sure that the item labels for toolboxes can be translated.
+
+Added CTRL + Key_Q as a shortcut to quit.
+
+Do not add unnecessary blank lines in .pro files.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+General Fixes
+-------------
+- Drag and drop
+ Handle filenames with '#' characters properly.
+
+- QAccel
+ Fixed bug where Alt + non-ASCII letter would require an additional
+ Shift.
+
+- QButtonGroup
+ Don't navigate out of the button group with the arrow keys.
+
+- QComboBox
+ Don't close the combobox when holding space down while clicking.
+ (Fixes GUI lock-up on Windows.)
+
+- QDateTimeEdit
+ Propagate enabled state correctly when adding a QDateEdit/QTimeEdit
+ to a disabled parent.
+
+- QDataStream
+ Fixed bug involving the output of doubles/floats in printable mode.
+
+- QFileDialog
+ Fixed crash when calling setContentsPreview() twice.
+
+- QFontDatabase
+ Made Tibetan text work even without OpenType tables.
+ When using XLFD fonts, make sure that the size selected actually
+ supports the script.
+ Fixed bug that caused fixed-pitch XLFD fonts to be reported as
+ variable pitch.
+ Fixed some issues in the CJK compatibility area, where we did
+ not always pick the correct CJK font.
+ Made isSmoothlyScalable() work when a font only exists in bold.
+ Fixed bug where font metrics for Asian fonts were wrong in some
+ circumstances.
+ Fixed bug involving certain open source Arabic fonts.
+
+- QFontDialog
+ Resize OK/Cancel buttons properly with large font sizes.
+
+- QFtp
+ Allow connection to FTP servers that return lower-case month
+ names.
+
+- QImage
+ Included fix for buffer overflow in libPNG.
+ Fixed bug that made copy constructor not copy the entire image.
+ Allow XPM images with colors that have more than one word in the
+ name.
+ Fixed crash when trying to load a corrupt/invalid BMP image.
+ Fixed crash when trying to load a corrupt/invalid GIF image.
+ Fixed crash when trying to load a JPEG image that is too big.
+ Fixed bug that caused dotsPerMeter() to be ignored when saving
+ JPEG images.
+
+- QLineEdit
+ Fixed memory leak for line edits with masks.
+ Fixed bug where QLineEdit::text() would return a null QString when
+ an input mask was set on an empty line edit.
+ Don't scroll when the text is wider than the widget.
+
+- QListView
+ Don't select a non-visible item when Right arrow key is pressed.
+ Fixed crash in setOpen(QListViewItem*, bool).
+
+- QLocale
+ Now supports string-to-int conversions with base up to 36.
+ Handle space as a separator for large numbers in toDouble().
+
+- QMovie
+ Fixed offset bug.
+
+- QPainter
+ Don't crash if setWorldMatrix() is called on a painter that is not
+ active.
+
+- QPicture
+ Fixed bounding rect calculation.
+
+- QPixmap
+ Fixed rounding errors in xForm().
+
+- QPopupMenu
+ Fixed updateSize().
+ Fixed a crash when clearing and inserting new items while the tear
+ off is visible.
+
+- QRichText
+ Clear the focusIndicator paragraph when clearing the text.
+ Fixed bug with <td valign="middle">.
+
+- QSemaphore
+ Fixed possible starvation in operator-=().
+
+- QSlider
+ Fixed mouse handling for vertical sliders in reverse mode.
+
+- QSocket
+ Preserve readBufferSize() when doing connectToHost().
+
+- QSql
+ Fixed crash in ODBC-Driver in connection with Informix SE.
+
+- QSqlCursor
+ Fixed bug in del(true)
+
+- QSqlQuery
+ Fixed thread reentrancy bug.
+
+- QString
+ Made toFloat() fail if the number is too large for a float.
+ Fixed crash in fromUtf8 when argument is not 0-terminated.
+ Don't end up in an endless loop when setLength() is called with a
+ ridiculously large value (> 2^31).
+
+- QSvgDevice
+ Fixed some clipping issues.
+
+- QTable
+ Fixed memory leak in key event handling.
+ Fixed bug where calling setNumRows() or setNumCols() would not
+ change the sizeHint().
+ Improved speed of deleting rows/columns in big tables.
+
+- QTextEdit
+ Hide the cursor again when a drag leaves the text edit.
+ Don't crash if the text edit is deleted while the popup menu is
+ active.
+ Fixed undo/redo bug in overwrite mode.
+ Fixed crash when entering text in overwrite mode when entire text is
+ selected, on a single line, and the cursor is at the start of the
+ text.
+
+- QTextEngine
+ Fixed a small bug in the bidi engine.
+ Fixed two small issues with Bengali rendering.
+ Fixed small issue with Khmer rendering.
+ Fixed an issue with ideographic space (U+0x3000).
+
+- QThread
+ Fixed bug on HP-UX when starting a thread with LowPriority.
+ Provide a safety mechanism when trying to use QThreadStorage from
+ non-QThread threads: spit out a warning and do nothing.
+
+- QToolBar
+ Create a disabled popup menu when a disabled combobox is added to
+ the extension menu.
+
+- QWidget
+ Fixed bug that would sometimes make showMaximized() fail.
+
+- QWidgetStack
+ Set background properly when the current page has a maximum size
+ that is less than the size of the QWidgetStack.
+
+- QWorkspace
+ Fixed problems involving widgets with size constraints.
+ Don't normalize minimized widgets when cascading and tiling.
+
+- QXml
+ Speed optimizations.
+
+Platform-Specific Issues
+------------------------
+Windows:
+
+- Drag and drop
+ Ignore drag and drop events for modally shadowed windows.
+
+- Build system
+ Fixed qmake problem with QMAKE_EXTRA_WIN_TARGETS.
+
+- QApplication
+ Fixed restoring of windows when minimized using something other than
+ the window menu.
+ When restoring a modally blocked application after using "Minimize
+ All Windows" from the task bar, activate the modal dialog rather
+ than the blocked window.
+ Support Unicode application directories in applicationFilePath()
+ independently of the current locale.
+ Fixed accelerators with Ctrl+@ and Ctrl+[ to Ctrl+_ instead.
+
+- QAxWidget
+ Fixed bug that could lead to windows no longer responding to mouse
+ events.
+ Fixed bug that would eat a mouse release event in some cases.
+
+- QFileDialog
+ Don't let getOpenFileName() fail immediately, even if passed invalid
+ characters.
+ Fixed bug that gave spurious mouse move events to other widgets when
+ closing a file (or printer) dialog.
+
+- QFontDatabase
+ Select correct font when family is empty and style hint is set.
+ Fixed problem where Chinese fonts were a pixel smaller than with
+ older Qt versions.
+
+- QFtp
+ Improved performance by increasing buffer sizes.
+
+- QLocale
+ Obtain correct locale information on Win95, so that
+ QTextCodec::locale() works properly.
+
+- QPixmap
+ Fixed problems when alpha blending in 32bpp depth.
+
+- QPrinter
+ Fixed problems caused by printing without first calling setup() when
+ using certain printers.
+
+- QSettings
+ Fixed bug that would add unnecessary size to the registry on Win98
+ in some circumstances.
+
+- QSocket
+ Worked around Windows bug which caused bytesAvailable() to be 1,
+ even if no data was available.
+
+- QSound
+ Removed race condition.
+
+- QTextEngine
+ Draw CJK compatibility characters in the 0xffxx range correctly.
+ Fixed crash on invalid UTF-8 when using the newest Uniscribe library
+ on XP.
+
+- QWidget
+ Don't clear the maximized state when moving a maximized window.
+ Don't move the widget to a silly position when showMinimized() is
+ called on a visible widget.
+ Let the size grip respect the same size limits as the window
+ manager.
+ Fixed bug where a widget with an empty region as mask would still
+ have one visible pixel.
+
+- QWindowsStyle
+ Always underline accelerator cues on Windows 98.
+
+- QWindowsXPStyle
+ Draw up/down buttons of QDateTimeEdit disabled when the widget is
+ disabled.
+ Draw toggle-toolbuttons as toggled even if they are not in a
+ toolbar.
+
+Mac:
+
+- Drag and drop
+ Fixed bug that would disrupt drag and drop when toggling
+ full-screen status.
+ Ignore drag and drop events for modally shadowed windows.
+ Show the correct cursor when copying.
+
+- QApplication
+ Fixed bug that could cause crash when allocating and deleting
+ QApplication repeatedly.
+ Properly animate the toolbar button.
+
+- QAquaStyle
+ Made sure that OK and Cancel buttons are big enough when icons are
+ added.
+ Fixed bug that would show focus rectangles around hidden widgets in
+ a QScrollView.
+ Fixed drawing errors in QComboBox and QSpinBox when building on
+ Panther and deploying on Jaguar.
+ Fixed bug that caused artifacts on the focus widget when embedded
+ inside a widget with a background pixmap.
+
+- QComboBox
+ Fixed crash when calling setListBox() and later popping up the popup
+ list.
+ Fixed size hint problems.
+
+- QFileDialog
+ Made the filter functionality work in getSaveFileName().
+
+- QFontEngine
+ Fixed bug showing strikeout text.
+
+- QHeader
+ Fixed drawing errors when moving columns.
+
+- QListView
+ Don't draw the disclosure triangle for items that aren't visible.
+
+- QMenuBar
+ Disable the quit option when there is a modal dialog.
+
+- QPixmap
+ Made copyBlt() copy the alpha channel properly again.
+
+- QPrinter
+ Fixed page range bug.
+
+- QProgressBar
+ Show something for indeterminate progress bars.
+
+- QScrollView
+ Fixed colors for the scrollview frame.
+
+- QSettings
+ Fixed bug that caused settings files to end up in the wrong place.
+
+- QTableHeader
+ Fixed sizing bug.
+
+- QWidget
+ Don't disable children of WStyle_Tool widgets.
+ The window proxy icon is only set for document windows.
+
+X11:
+
+- QApplication
+ Made the '-inputstyle' command line option override the ~/.qt/qtrc
+ setting.
+ Fixed crash when using the QApplication( Display *,...) constructor
+ without any settings file in ~/.qt/.
+ Fixed bug when passing a Tk Visual* to the QApplication constructor.
+
+- QClipboard
+ Fixed race condition in clear().
+
+- QFontDatabase
+ Fixed bug that caused some special TTF fonts to display incorrectly.
+ Fixed bug where Qt would not find some non-scalable fonts.
+
+- QFontEngine
+ Fixed bug that caused incorrect metrics and drawing in some cases
+ when a painter scales down very large fonts for display.
+
+- QMotif
+ Fixed crash when passing X11 command line parameters.
+ Fixed GUI freeze when using the system close menu on a QMotifWidget
+ window with some window managers.
+
+- QPainter
+ Fixed memory leak when more than 256 GCs are allocated.
+
+- QPrinter
+ Allow multiple space-separated options in
+ setPrinterSelectionOption().
+ Fixed printing to A3 sized paper.
+ Fixed printing using certain PFB fonts (e.g. the ones generated from
+ TeX).
+
+- QWidget
+ Fixed restoration from fullscreen/maximize on non-EWMH supporting
+ window managers.
+ Do not clear the fullscreen/maximize state if the window manager
+ ignores a resize request from Qt.
+ Worked around bugs in window placement for the SGI 4Dwm window
+ manager.
+
+Embedded:
+
+Makeqpf tool
+ Use the same way of finding the font directory as the rest of Qt.
+
+- QVNCServer
+ It is now possible to have several different VNC servers active on
+ the same machine (and even in the same process).
+ Fixed bug connecting a little-endian client to a big-endian server.
+
+- QPainter
+ Fixed bug making thick vertical lines one pixel too wide.
+ Worked around compiler bug in gcc 3.3.1 and 3.3.3 (but apparently
+ not in 3.3.2), causing artifacts when drawing anti-aliased text on
+ 16-bpp displays in release mode.
+
+- QWidget
+ Avoid creating a paint event in setMask() if the new mask is the
+ same as the old.
+
+- QWSManager
+ Fixed crash when widget is deleted during a window system mouse
+ grab.
+ Only move window on left mouse press.
+
+- QWSServer
+ Avoid possible race condition in sendPropertyNotifyEvent()
+ when client quits.
diff --git a/dist/changes-3.3.5 b/dist/changes-3.3.5
new file mode 100644
index 0000000..8839f76
--- /dev/null
+++ b/dist/changes-3.3.5
@@ -0,0 +1,617 @@
+Qt 3.3.5 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.3.4, Qt 3.3.3, Qt 3.3.2,
+Qt 3.3.1 and Qt 3.3.0.
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Platforms
+---------
+
+- Qt now supports Mac OS X 10.4 (Tiger)
+
+Compilers
+---------
+
+- Added support for VS 2005
+- Added support for GCC 4
+
+Windows Installer
+-----------------
+
+- The environment variables no longer contain invalid paths.
+- The user is warned if QTDIR is not set and the evaluation edition is
+ already installed, to avoid conflicts between the two packages.
+- A bug was fixed where a '\0' was appended to the end of a path.
+- Fixed the dependencies for image formats and styles.
+
+Qt Designer
+-----------
+
+- Fixed a problem with long string literals on certain Visual Studio
+ C++ compilers.
+- UIC now uses the include hints from the .ui file when generating
+ source files.
+- The "paste" action is now enabled and disabled correctly.
+- QWidgetFactory::supportsWidget() now returns true for QSplitter.
+- Parse files with more than one '.' in the file name correctly.
+- The project name is now displayed correctly also when the project is
+ created in a root directory.
+- Fixed a bug where Windows end-of-line terminators would be included
+ in string literals, which broke translation.
+- Several crashes were fixed related to cutting/copying/pasting menu
+ items.
+- Fixed some problems with designer generating corrupted pro files.
+- A crash was fixed for when designer loads a pro file with the same
+ file listed more than once.
+- The action editor is now closed when there is no main window form.
+- Stability fixes
+
+Qt Linguist
+-----------
+
+- lupdate now understands strings longer than 16384 characters.
+- Fixed escaping bugs for string that contain both ampersands and
+ double quotes.
+
+Qt Assistant
+------------
+
+- When printing, assistant now always uses the Active color group.
+- Fixed a rendering bug for paragraphs that start with a line break.
+- Support for setting the documentation root path, allowing
+ documentation files to be moved.
+- When opening a link in a new window, assistant will now properly
+ scroll to the correct anchor after the window has been shown.
+- Fixed full text search for documents not listed in the 'ref'
+ attribute of the <section> tag in the current .adp file.
+- The state of the forward/backward buttons now work properly when the
+ tabs are changed.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+General Fixes
+-------------
+
+Added security patches for zlib: CAN-2005-1849, CAN-2005-2096
+The FreeType library was upgraded from version 2.0.9 to 2.1.9
+
+- Build system
+ Improved build keys for gcc 4 compilers, so plugins no longer
+ need rebuilding after upgrading gcc to a new patch release.
+
+- QCanvas
+ Fixed wrong text scaling and cut-off text.
+ Fixed drawing with a brush when double buffering is enabled.
+
+- QCommonStyle
+ Fixed the appearance of QSlider after setBackgroundOrigin has
+ been called.
+ Fixed an overflow in calculating the handle position for
+ QScrollBar.
+
+- QCString
+ Fixed a crash in qUncompress() if the resulting QByteArray was
+ too large to fit in memory.
+ Fixed potential security problems by using vsnprintf() instead
+ of the less secure vsprintf().
+
+- QDataStream
+ Fixed a data corruption bug when using stream version Qt_3_1 and using
+ operator<<(qint64).
+
+- QDateTime
+ Fixed QDateTime::secsTo() when crossing daylight savings hours
+ boundaries.
+
+- QDockWindow
+ Undocked windows now remember their size also if the user
+ changes it.
+
+- QDom
+ The default constructor for QDocDocument now creates an empty
+ document that can be used to create elements.
+ A warning is now displayed when trying to construct or save an
+ invalid document.
+ Characters that are not allowed in XML are now escaped
+ properly when saving.
+
+- QFileDialog
+ Shortcuts now show the icons of what they point to.
+ Entry sorting is now locale-aware, as opposed to sorting based
+ on Unicode order.
+ You can now select files by pressing 'enter' when using
+ QFileDialog::getOpenFileNames().
+ Fixed a missing repaint in contents preview after selecting a
+ file, then a directory, then the same file again.
+ dirPath() no longer chops off the last directory in a path.
+
+- QGVector
+ Fixed a bug that caused a memory leak and data corruption if
+ resize() failed.
+
+- QHeader
+ The header text is now rendered correctly next to the icon in
+ reverse layout mode.
+
+- QImage
+ Fixed comparison of images with alpha data, but with the alpha
+ channel disabled.
+
+- QKeySequence
+ Key sequences that ended with a ',' now work properly.
+
+- QLineEdit
+ Fixed the behavior of the delete key on the keypad.
+ Fixed support for transparent line edits.
+ Fixed a crash when opening the context menu in a QTextEdit
+ subclass that returns 0 for createPopupMenu().
+
+- QListBox
+ Fixed a crash when removing the current item while selecting
+ items with a rubberband.
+
+- QListView
+ Fixed the behavior of the Home and End keys when QListView
+ contains disabled and hidden items.
+ Fixed a problem with the QListView::...Clicked() signals were
+ emitted also when the root decorated section was not in the
+ left-most column.
+ HTML control characters in QListView's tool tip text are now
+ escaped properly.
+ sortChildren() now also sorts children of items with no
+ siblings.
+ Fixed a missing redraw after removing columns.
+ contentsWidth() now returns the correct value after
+ setContentsWidth() has been called.
+ Fixed a crash after a sequence of deleting and selecting
+ items.
+ Fixed the size of headers with multi-line text.
+ Fixed a lock-up and possible crash caused by an internal state
+ restore on controllers with no children.
+ Fixed keyboard navigation when jumping to entries by pressing
+ the key for the first character in the text of an item.
+
+- QLocale
+ Fixed support for NaN, which failed on certain compilers.
+ Passing Q_LLONG to toString() now properly includes the group
+ symbols.
+ Fixed locale detection when locale environment variables are
+ not set.
+ Added workarounds for compiler optimization bugs when parsing
+ doubles.
+
+- QLocalFS
+ Fixed a crash when canceling a QUrlOperator transfer before
+ completion.
+
+- QMenuData
+ Fixed a crash when closing an MDI application while the menu
+ bar has Alt-focus.
+
+- QMessageBox
+ Message boxes now work correctly in right-to-left mode.
+
+- QPaintDevice
+ Fixed drawing errors when using bitBlt() on a printer.
+
+- QPainter
+ Fixed drawing of rectangles with a negative (or 0) width.
+
+- QPopupMenu
+ The height of new columns is now initialized properly when
+ menu items are shown in multiple columns.
+
+- QProcess
+ Close socket connections properly when a
+ process is created after creating the socket connection.
+
+- QPSPrinter
+ Generate PS font names correctly.
+
+- QPushButton
+ Fixed a crash caused by deleting the button while the popup
+ menu is shown.
+
+- QRichText
+ Tab stops are now adjusted correctly when printing in high
+ resolution mode.
+ Reduced the number of memory allocations when deleting large
+ blocks of text.
+ Fixed parsing of hexadecimal HTML entities
+ Fixed a bug where the font changed after calling setText()
+ repeatedly.
+
+- QScriptEngine
+ Fixed an issue with shaping of Hebrew text, which lead to
+ layout problems in QTextLayout.
+ Fixed rendering of Hebrew text with punctuation.
+ Fixed bugs in Gurmukhi shaping.
+
+- QScrollView
+ Fixed the size hint when scrollbars are set to be permanently
+ on.
+ Fixed a drawing error seen on certain graphics drivers when a
+ scroll view spans multiple screens.
+ Fixed a bug where wheel events' horizontal/vertical status
+ were not forwarded to viewportWheelEvent().
+ Fixed a crash when mouse wheel events were sent to a scroll
+ view with disabled scroll bars.
+
+- QSettings
+ Fixed a bug when comparing keys with common prefixes.
+
+- QSGIStyle
+ Fixed the size of QComboBox.
+
+- QSizeGrip
+ Fixed a bug that caused the window to move when resizing to
+ the minimum size using the size grip.
+
+- QSocketDevice
+ Improved error reporting when the connection is unexpectedly
+ closed.
+ Fixed a bug where the socket would be closed if 0 was passed
+ as maxlen to readBlock().
+
+- QString
+ Fixed a lock-up in QString::section().
+ Let replace() behave as documented when the index is larger
+ than the length of the string.
+
+- QTable
+ Fixed positioning of QComboTableItems that span several rows.
+
+- QTextCodec
+ Fixed occasional crash in fromUnicode().
+ Fixed Big5 support to comply with the standards.
+
+- QTextEdit
+ Fixed bug in undo/redo history when input methods are used.
+ Fixed a crash caused by inserting text with an input method
+ during a focus change.
+ Fixed the behavior of the delete key on the keypad.
+ Fixed setMaxLogLines() when there are already too many lines.
+ Fixed crash when clearing a QTextEdit when the IME is active.
+ Fixed crash when the text edit is deleted while dragging text.
+
+- QTextLayout
+ Fixed layout of lines that are too long and do not contain a
+ possible break point.
+
+- QTimeEdit
+ Fixed several issues with stepUp() and stepDown().
+
+- QToolButton
+ Fixed a crash when assigning a tooltip to a tool button which
+ does not have QMainWindow as an ancestor.
+
+- QToolTip
+ Fixed an occasional crash.
+
+- QTranslator
+ Fixed a bug when calling messages() before tr() when using
+ compressed .qm files.
+
+- QUrlOperator
+ Fixed a crash when accessing invalid paths on an FTP server
+ using QFileDialog.
+ Fixed a bug where the source would be removed if the source
+ and destination were the same.
+
+- QVariant
+ Fixed a memory leak in clear().
+
+- QWidget
+ Fixed excessive flicker when reparenting a widget that has
+ tool windows.
+
+- QWorkspace
+ Fixed flickering when switching between maximized windows.
+ Fixed a lock-up when modal dialogs were created with
+ QWorkspace as parent.
+ Fixed a bug where modeless dialogs with QWorkspace as parent
+ would be drawn with no title bar.
+
+- SQL, DB2 driver
+ Compile fixes.
+ Fixed a bug where QSqlCursor::insert() would fail to insert
+ two blob fields at the same time.
+
+- SQL, MySQL driver
+ Fixed a crash when using empty database names.
+
+- SQL, Oracle driver
+ Fixed truncation of numeric data types to 22 digits.
+ Fixed UTF-8 support by ensuring that there is enough space to
+ store the text.
+
+- SQL, ODBC driver
+ Fixed problems with sorting and comparing strings larger than
+ 8192 characters.
+
+- SQl, PostgreSQL driver
+ Temporary tables are now only visible for the connection that
+ created them.
+
+- SQL, TDS driver
+ Fixed problems with compiling the plugin with later versions
+ of the TDS library.
+
+- SVG support
+ Fixed support for SVG viewbox.
+ Added basic support for stroke-dasharray.
+
+
+Platform-Specific Issues
+------------------------
+
+Windows:
+
+- ActiveQt
+ Unrelated types are no longer converted.
+ The control container is now only reset if the CLSID changes.
+ Fixed a bug where QAxObject::clear() did not reset the
+ metaobject when it was cached.
+ Fixed a memory leak.
+ Fixed a bug that caused flicker when navigating away from a
+ page embedding a control.
+ The VARIANT out-parameters in signals now map to "QVariant &"
+ and not "const QVariant &".
+ Signal parameters of type "bool" are marshalled to the bool
+ slot also when the control sends an integer parameter.
+
+- Drag & drop
+ Fixed a bug with sending single-color pixmaps.
+ Fixed a crash caused by reading a drag object after it has
+ been deleted (before the drop event).
+ Dragged pixmaps are now cleaned up before drawn to avoid
+ problems with broken alpha values and resetting masked pixels.
+
+- QApplication
+ Fixed a lockup caused by showing a dialog while resizing a
+ window.
+ QWidget::grabKeyboard() now also grabs the menu button.
+ Fixed a bug where mouse events were sent to the wrong widget
+ after calling QEventLoop::processEvents() with
+ ExcludeUserInput.
+ Windows Server 2003 can now also use the Windows XP style.
+ Fixed a memory leak in QEventLoop.
+
+- QColor
+ Fixed failed initialization of the Qt colors (e.g., Qt::red) when
+ using the MinGW compiler.
+
+- QFile
+ Fixed a bug where a read error was not handled properly.
+
+- QFileInfo
+ permission() now uses the correct file name on Windows 9x.
+
+- QFontDataBase
+ Added support for scalable fonts.
+
+- QFontEngine
+ Fixed a problem with symbol fonts.
+ Fixed support for user defined characters.
+
+- QLibrary
+ Fixed the directory separators.
+ Fixed some library loading errors.
+
+- QLocale
+ The locale() function now returns the correct ISO name instead
+ of a number.
+
+- QNPWidget (NPAPI)
+ Fixed a bug where the widget was not clipped properly by the
+ browser.
+
+- QPainter
+ Fixed a bug where QPainter failed to fill ellipses of size
+ 2x2.
+ Fixed a potential lock-up after failed GDI allocations.
+
+- QPrinter
+ Rich text tables are now printed correctly when the table
+ spans pages.
+ Fixed text printing errors on page 2 and out caused by the
+ background mode being reset to OPAQUE.
+
+- QProcess
+ The directory separators for the current working directory are
+ now converted properly, so that a UNC path can be used on
+ Windows.
+
+- QTranslator
+ Fixed an issue with isReadable() on NTFS.
+
+- QWindowsXPStyle
+ XP style now works when compiled as a plugin.
+ Fixed menu bar placement.
+ Fixed a bug in setting the background color of QTabWidget.
+ Fixed the position of the size grip in large QSizeGrip
+ widgets.
+ QGroupBox now uses the correct colors.
+
+- QWorkspace
+ Fixed bug where hidden windows would be shown after restoring
+ from maximized mode.
+
+- qmake
+ The Makefile generator now only searches for the latest
+ version of the Qt library, as opposed to searching all
+ libraries.
+ Dependency checking for pre-compiled headers were fixed.
+ Fixed support for listing .pro files in SUBDIRS in subdir .pro
+ files.
+ Fixed support for multiple -L and -I entries in QMAKE_LIBS.
+
+Mac:
+
+- Build system
+ When using Xcode, the optimization level is set to 0 in debug
+ mode.
+ Added support for Xcode 2.1 and up.
+ Fixed copying of target files when DESTDIR is set.
+
+- Drag & drop
+ Fixed a crash when deleting the drag object before dropping.
+
+- QApplication
+ The default font is now only set if the user has not set one.
+ Fixed a problem where popup menus would not go away after
+ releasing the mouse button outside the popup.
+ Added support for dual axis mouse wheels.
+ Fixed a bug in tablet identification.
+ Added support for tablet erasers.
+ Fixed a deadlock in postEvent() when there was contention for
+ a wakeup.
+ Fixed a crash when switching displays at the same time as
+ QApplication is destroyed.
+ Stability fixes.
+
+- QColorDialog
+ Fixed modality support.
+
+- QFileDialog
+ Let the file dialog remember the previous directory.
+ Fixed keyboard navigation when jumping to entries using the
+ first letter of a file name.
+ Fixed a memory leak.
+
+- QFontDatabase
+ Fall back to the "Geneva" font, which is guaranteed to be
+ available, instead of "Helvetica".
+
+- QFontEngine
+ Fixed a memory leak.
+ Fixed rendering of glyphs that modify previous glyphs,
+ including Indic text.
+
+- QMacStyle
+ Title bars are now shown as deactivated when the window is
+ deactivated.
+ Fixed a bug where buttons in button groups inside a container
+ would look like they were pressed.
+ Fixed a crash caused by drawing onto a non-pixmap background.
+ Fixed the width of QComboBox.
+ Improved drawing of size grips.
+ Improved drawing of sliders, and made QSlider slightly wider
+ by default.
+
+- QMenuBar
+ Fixed a lockup caused by menu items ending with an '&'.
+ Menu items with disabled popups are now also disabled.
+
+- QMessageBox
+ The resize handle is now shown.
+
+- QPainter
+ Fixed double transformation of ellipses with a transformed
+ width or height of 1.
+
+- QPixmap
+ Fixed a crash when loading a cursor from an embedded image.
+ The color depth is now set properly when converting a QBitmap.
+
+- QPrinter
+ Fixed a crash when using bitBlt() to copy a QBitmap onto a
+ printer.
+
+- QProcess
+ Fixed support for launching bundles.
+
+- QPushButton
+ Icons are now drawn properly.
+
+- QTextBrowser
+ Fixed a bug where a text browser popup triggered by a
+ hyperlink would pop up again when the user clicks inside the
+ first popup.
+
+- QToolButton
+ Fixed a painting problem when the button was pressed.
+
+- QWidget
+ Menubar popups no longer steal focus from QTextEdit.
+ Fixed collapsing of windows with no title bar decorations.
+ Several window activation bugs have been fixed.
+ Fixed a bug where modal dialogs would be modal to its own
+ children.
+ Fixed tablet support for multiple screens.
+ Fixed a memory leak.
+
+X11:
+
+- Build system
+ Removed aliasing/redefinitions of the 'which' command to fix
+ failures in the configure script on certain Unix systems.
+ Added some missing flags for the yacc tool on 64-bit Linux.
+ The -fn application command line option, which selects the
+ default application font, works again.
+ Fixed copying of target files when DESTDIR is set.
+
+- Drag and drop
+ Fixed a crash in the dragging application when the drop target
+ crashes.
+ Fixed a bug in finding the widget under the cursor while
+ dragging.
+ Some problems were fixed with the internal timestamp in the
+ drop event.
+
+- OpenGL
+ Fixed colors when rendering using glColor() onto an 8 bit
+ pixmap.
+
+- QApplication
+ Support the F11 and F12 keys on Sun keyboards.
+
+- QCanvasView
+ Support multiple shared views of a single canvas on multiple X11
+ screens.
+
+- QClipboard
+ Fixed a rare crash related to cut & paste with the Motif
+ extension.
+
+- QFontDatabase
+ Fixed a bug where QFontInfo would return an empty family and
+ point size after trying to select a font that was not
+ installed on the system.
+
+- QFontEngine
+ Fixed a bug where scaling italic fonts would sometimes cut
+ overhangs.
+
+- QInputContext
+ Fixed a bug that led to a corrupted display in QLineEdit and
+ QTextEdit when using Japanese input methods with very long
+ input selections.
+
+- QPainter
+ Fixed a crash when setting a pen on an inactive painter.
+
+- QPrinter
+ Fixed printing on Tru64 by removing the -o argument to the lp
+ command.
+
+- QScriptEngine
+ Added support for Khmer fonts.
+ Fixed shaping of Telugu text.
+ Fixed a crash when scaling Japanese XLFD fonts by a factor of
+ 1000.
+
+Embedded:
+
+- QApplication
+ Fixed a memory leak.
+
+- VNC driver
+ Fixed a memory leak.
+
+- QWidget
+ Fixed a potential crash when reparenting widgets.
diff --git a/dist/changes-3.3.6 b/dist/changes-3.3.6
new file mode 100644
index 0000000..d9464ed
--- /dev/null
+++ b/dist/changes-3.3.6
@@ -0,0 +1,27 @@
+Qt 3.3.6 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 3.3.5, 3.3.4, Qt 3.3.3, Qt 3.3.2,
+Qt 3.3.1 and Qt 3.3.0.
+
+****************************************************************************
+* General *
+****************************************************************************
+
+Platforms
+---------
+
+- It is now possible to build Qt 3.3.6 on Intel Macs. A universal
+ Qt build however requires manual work by 'lipo'-ing a PPC Qt
+ and an Intel Qt together.
+
+Compilers
+---------
+
+- The build key when building Qt with gcc 4.x has changed. This means
+ you will have to either recompile your plugins or change the configure
+ script to not reduce the gcc version string to '4'.
+
+
+Translations
+------------
+
+Various Qt translations contributed by Novell.
diff --git a/dist/changes-3.3.7 b/dist/changes-3.3.7
new file mode 100644