summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/createpackage.pl16
-rwxr-xr-xbin/patch_capabilities.pl10
-rw-r--r--demos/browser/browser.pro2
-rw-r--r--demos/browser/networkaccessmanager.cpp3
-rw-r--r--demos/browser/webview.cpp14
-rw-r--r--dist/changes-4.6.2266
-rw-r--r--doc/src/deployment/deployment.qdoc102
-rw-r--r--doc/src/getting-started/installation.qdoc7
-rw-r--r--doc/src/platforms/platform-notes.qdoc3
-rw-r--r--doc/src/platforms/symbian-introduction.qdoc13
-rw-r--r--doc/src/snippets/code/doc_src_deployment.qdoc17
-rw-r--r--examples/multimedia/audioinput/audioinput.cpp3
-rw-r--r--examples/multimedia/audiooutput/audiooutput.cpp3
-rw-r--r--mkspecs/common/symbian/symbian.conf16
-rw-r--r--mkspecs/features/qttest_p4.prf26
-rw-r--r--qmake/generators/symbian/initprojectdeploy_symbian.cpp2
-rw-r--r--qmake/generators/symbian/symmake.cpp35
-rw-r--r--qmake/qmake.pro14
-rw-r--r--src/3rdparty/webkit/VERSION2
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog38
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.h10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ScrollbarThemeQt.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ScrollbarThemeQt.h8
-rw-r--r--src/corelib/codecs/qsimplecodec.cpp2
-rw-r--r--src/corelib/codecs/qtextcodec.cpp50
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp3
-rw-r--r--src/gui/image/qicon.cpp17
-rw-r--r--src/gui/image/qimagereader.cpp28
-rw-r--r--src/gui/image/qpixmapfilter.cpp14
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_p.h5
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_s60.cpp28
-rw-r--r--src/gui/itemviews/qlistview.cpp2
-rw-r--r--src/gui/kernel/qaction.cpp4
-rw-r--r--src/gui/kernel/qapplication_s60.cpp28
-rw-r--r--src/gui/kernel/qapplication_win.cpp28
-rw-r--r--src/gui/kernel/qkeymapper_x11.cpp14
-rw-r--r--src/gui/kernel/qsoftkeymanager_s60.cpp19
-rw-r--r--src/gui/kernel/qwidget.cpp2
-rw-r--r--src/gui/kernel/qwidget_p.h5
-rw-r--r--src/gui/kernel/qwidget_s60.cpp110
-rw-r--r--src/gui/painting/qdrawhelper.cpp40
-rw-r--r--src/gui/painting/qdrawhelper_mmx_p.h45
-rw-r--r--src/gui/painting/qdrawhelper_p.h3
-rw-r--r--src/gui/painting/qmath_p.h6
-rw-r--r--src/gui/painting/qpainter.cpp23
-rw-r--r--src/gui/painting/qwindowsurface_s60.cpp11
-rw-r--r--src/gui/text/qfontdatabase_s60.cpp11
-rw-r--r--src/gui/widgets/qabstractslider.cpp65
-rw-r--r--src/gui/widgets/qabstractslider_p.h1
-rw-r--r--src/gui/widgets/qdialogbuttonbox.cpp2
-rw-r--r--src/gui/widgets/qlinecontrol.cpp2
-rw-r--r--src/gui/widgets/qscrollbar.cpp16
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel.cpp7
-rw-r--r--src/network/access/qhttpnetworkreply.cpp68
-rw-r--r--src/network/access/qnetworkcookie.h2
-rw-r--r--src/network/access/qnetworkcookiejar.h2
-rw-r--r--src/opengl/qgl_mac.mm2
-rw-r--r--src/opengl/qgl_p.h4
-rw-r--r--src/opengl/qglpixmapfilter.cpp1
-rw-r--r--src/qt3support/dialogs/q3filedialog.cpp40
-rw-r--r--src/qt3support/itemviews/q3iconview.cpp13
-rw-r--r--src/qt3support/itemviews/q3listview.cpp3
-rw-r--r--src/s60installs/bwins/QtGuiu.def27
-rw-r--r--src/s60installs/eabi/QtGuiu.def25
-rw-r--r--src/s60main/s60main.pro3
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.cpp37
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite.cpp47
-rw-r--r--src/sql/kernel/qsqldatabase.cpp1
-rw-r--r--src/xml/dom/qdom.cpp2
-rw-r--r--src/xmlpatterns/data/qatomicvalue.cpp2
-rw-r--r--tests/auto/auto.pro8
-rw-r--r--tests/auto/qabstractitemview/tst_qabstractitemview.cpp11
-rw-r--r--tests/auto/qabstractslider/tst_qabstractslider.cpp8
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp2
-rw-r--r--tests/auto/qimagereader/tst_qimagereader.cpp29
-rw-r--r--tests/auto/qlineedit/tst_qlineedit.cpp28
-rw-r--r--tests/auto/qlistview/tst_qlistview.cpp86
-rw-r--r--tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp1
-rw-r--r--tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp64
-rw-r--r--tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp14
-rw-r--r--tests/auto/qsqldatabase/tst_qsqldatabase.cpp20
-rw-r--r--tests/auto/qtextcodec/tst_qtextcodec.cpp46
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp235
-rw-r--r--tests/benchmarks/benchmarks.pro52
-rw-r--r--tests/benchmarks/corelib/corelib.pro6
-rw-r--r--tests/benchmarks/corelib/io/io.pro9
-rw-r--r--tests/benchmarks/corelib/io/qdir/qdir.pro (renamed from tests/benchmarks/qdir/qdir.pro)0
-rw-r--r--tests/benchmarks/corelib/io/qdir/tst_qdir.cpp (renamed from tests/benchmarks/qdir/tst_qdir.cpp)0
-rw-r--r--tests/benchmarks/corelib/io/qdiriterator/main.cpp (renamed from tests/benchmarks/qdiriterator/main.cpp)0
-rwxr-xr-xtests/benchmarks/corelib/io/qdiriterator/qdiriterator.pro (renamed from tests/benchmarks/qdiriterator/qdiriterator.pro)0
-rw-r--r--tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.cpp (renamed from tests/benchmarks/qdiriterator/qfilesystemiterator.cpp)0
-rw-r--r--tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.h (renamed from tests/benchmarks/qdiriterator/qfilesystemiterator.h)0
-rw-r--r--tests/benchmarks/corelib/io/qfile/main.cpp (renamed from tests/benchmarks/qfile/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/io/qfile/qfile.pro (renamed from tests/benchmarks/qfile/qfile.pro)0
-rw-r--r--tests/benchmarks/corelib/io/qfileinfo/main.cpp (renamed from tests/benchmarks/qfileinfo/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/io/qfileinfo/qfileinfo.pro (renamed from tests/benchmarks/qfileinfo/qfileinfo.pro)0
-rw-r--r--tests/benchmarks/corelib/io/qiodevice/main.cpp (renamed from tests/benchmarks/qiodevice/main.cpp)0
-rwxr-xr-xtests/benchmarks/corelib/io/qiodevice/qiodevice.pro (renamed from tests/benchmarks/qiodevice/qiodevice.pro)0
-rw-r--r--tests/benchmarks/corelib/io/qtemporaryfile/main.cpp (renamed from tests/benchmarks/qtemporaryfile/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/io/qtemporaryfile/qtemporaryfile.pro (renamed from tests/benchmarks/qtemporaryfile/qtemporaryfile.pro)0
-rw-r--r--tests/benchmarks/corelib/kernel/events/events.pro (renamed from tests/benchmarks/events/events.pro)0
-rw-r--r--tests/benchmarks/corelib/kernel/events/main.cpp (renamed from tests/benchmarks/events/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/kernel/kernel.pro6
-rw-r--r--tests/benchmarks/corelib/kernel/qmetaobject/main.cpp (renamed from tests/benchmarks/qmetaobject/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/kernel/qmetaobject/qmetaobject.pro (renamed from tests/benchmarks/qmetaobject/qmetaobject.pro)0
-rw-r--r--tests/benchmarks/corelib/kernel/qobject/main.cpp (renamed from tests/benchmarks/qobject/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/kernel/qobject/object.cpp (renamed from tests/benchmarks/qobject/object.cpp)0
-rw-r--r--tests/benchmarks/corelib/kernel/qobject/object.h (renamed from tests/benchmarks/qobject/object.h)0
-rw-r--r--tests/benchmarks/corelib/kernel/qobject/qobject.pro (renamed from tests/benchmarks/qobject/qobject.pro)0
-rw-r--r--tests/benchmarks/corelib/kernel/qvariant/qvariant.pro (renamed from tests/benchmarks/qvariant/qvariant.pro)0
-rw-r--r--tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp (renamed from tests/benchmarks/qvariant/tst_qvariant.cpp)0
-rw-r--r--tests/benchmarks/corelib/thread/qthreadstorage/qthreadstorage.pro (renamed from tests/benchmarks/qthreadstorage/qthreadstorage.pro)0
-rw-r--r--tests/benchmarks/corelib/thread/qthreadstorage/tst_qthreadstorage.cpp (renamed from tests/benchmarks/qthreadstorage/tst_qthreadstorage.cpp)0
-rw-r--r--tests/benchmarks/corelib/thread/thread.pro3
-rw-r--r--tests/benchmarks/corelib/tools/containers-associative/containers-associative.pro (renamed from tests/benchmarks/containers-associative/containers-associative.pro)0
-rw-r--r--tests/benchmarks/corelib/tools/containers-associative/main.cpp (renamed from tests/benchmarks/containers-associative/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/tools/containers-sequential/containers-sequential.pro (renamed from tests/benchmarks/containers-sequential/containers-sequential.pro)0
-rw-r--r--tests/benchmarks/corelib/tools/containers-sequential/main.cpp (renamed from tests/benchmarks/containers-sequential/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/tools/qbytearray/main.cpp (renamed from tests/benchmarks/qbytearray/main.cpp)0
-rwxr-xr-xtests/benchmarks/corelib/tools/qbytearray/qbytearray.pro (renamed from tests/benchmarks/qbytearray/qbytearray.pro)0
-rw-r--r--tests/benchmarks/corelib/tools/qrect/main.cpp (renamed from tests/benchmarks/qrect/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/tools/qrect/qrect.pro (renamed from tests/benchmarks/qrect/qrect.pro)0
-rw-r--r--tests/benchmarks/corelib/tools/qregexp/main.cpp (renamed from tests/benchmarks/qregexp/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/tools/qregexp/qregexp.pro (renamed from tests/benchmarks/qregexp/qregexp.pro)0
-rw-r--r--tests/benchmarks/corelib/tools/qstring/main.cpp (renamed from tests/benchmarks/qstring/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/tools/qstring/qstring.pro (renamed from tests/benchmarks/qstring/qstring.pro)0
-rw-r--r--tests/benchmarks/corelib/tools/qstring/utf-8.txt (renamed from tests/benchmarks/qstring/utf-8.txt)0
-rw-r--r--tests/benchmarks/corelib/tools/qstringbuilder/main.cpp (renamed from tests/benchmarks/qstringbuilder/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/tools/qstringbuilder/qstringbuilder.pro (renamed from tests/benchmarks/qstringbuilder/qstringbuilder.pro)0
-rw-r--r--tests/benchmarks/corelib/tools/qstringlist/.gitignore (renamed from tests/benchmarks/qstringlist/.gitignore)0
-rw-r--r--tests/benchmarks/corelib/tools/qstringlist/main.cpp (renamed from tests/benchmarks/qstringlist/main.cpp)0
-rw-r--r--tests/benchmarks/corelib/tools/qstringlist/qstringlist.pro (renamed from tests/benchmarks/qstringlist/qstringlist.pro)0
-rw-r--r--tests/benchmarks/corelib/tools/tools.pro10
-rw-r--r--tests/benchmarks/gui/animation/animation.pro2
-rw-r--r--tests/benchmarks/gui/animation/qanimation/dummyanimation.cpp (renamed from tests/benchmarks/qanimation/dummyanimation.cpp)0
-rw-r--r--tests/benchmarks/gui/animation/qanimation/dummyanimation.h (renamed from tests/benchmarks/qanimation/dummyanimation.h)0
-rw-r--r--tests/benchmarks/gui/animation/qanimation/dummyobject.cpp (renamed from tests/benchmarks/qanimation/dummyobject.cpp)0
-rw-r--r--tests/benchmarks/gui/animation/qanimation/dummyobject.h (renamed from tests/benchmarks/qanimation/dummyobject.h)0
-rw-r--r--tests/benchmarks/gui/animation/qanimation/main.cpp (renamed from tests/benchmarks/qanimation/main.cpp)0
-rw-r--r--tests/benchmarks/gui/animation/qanimation/qanimation.pro (renamed from tests/benchmarks/qanimation/qanimation.pro)0
-rw-r--r--tests/benchmarks/gui/animation/qanimation/rectanimation.cpp (renamed from tests/benchmarks/qanimation/rectanimation.cpp)0
-rw-r--r--tests/benchmarks/gui/animation/qanimation/rectanimation.h (renamed from tests/benchmarks/qanimation/rectanimation.h)0
-rw-r--r--tests/benchmarks/gui/graphicsview/graphicsview.pro7
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/qgraphicsanchorlayout.pro (renamed from tests/benchmarks/qgraphicsanchorlayout/qgraphicsanchorlayout.pro)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp (renamed from tests/benchmarks/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsitem/qgraphicsitem.pro (renamed from tests/benchmarks/qgraphicsitem/qgraphicsitem.pro)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp (renamed from tests/benchmarks/qgraphicsitem/tst_qgraphicsitem.cpp)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsscene/qgraphicsscene.pro (renamed from tests/benchmarks/qgraphicsscene/qgraphicsscene.pro)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp (renamed from tests/benchmarks/qgraphicsscene/tst_qgraphicsscene.cpp)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.cpp (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.cpp)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.debug (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.debug)bin863805 -> 863805 bytes
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.h (renamed from tests/benchmarks/qgraphicsview/chiptester/chip.h)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.pro (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.pro)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/fileprint.png (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/fileprint.png)bin1456 -> 1456 bytes
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/images.qrc (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/images.qrc)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/main.cpp (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/main.cpp)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/mainwindow.cpp (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/mainwindow.cpp)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/mainwindow.h (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/mainwindow.h)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/qt4logo.png (renamed from tests/benchmarks/qgraphicsview/chiptester/qt4logo.png)bin48333 -> 48333 bytes
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/rotateleft.png (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/rotateleft.png)bin1754 -> 1754 bytes
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/rotateright.png (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/rotateright.png)bin1732 -> 1732 bytes
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/view.cpp)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/view.h (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/view.h)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/zoomin.png (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/zoomin.png)bin1622 -> 1622 bytes
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/zoomout.png (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/zoomout.png)bin1601 -> 1601 bytes
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/moveItems/main.cpp (renamed from tests/benchmarks/qgraphicsview/benchapps/moveItems/main.cpp)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/moveItems/moveItems.pro (renamed from tests/benchmarks/qgraphicsview/benchapps/moveItems/moveItems.pro)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/scrolltest/main.cpp (renamed from tests/benchmarks/qgraphicsview/benchapps/scrolltest/main.cpp)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/scrolltest/scrolltest.pro (renamed from tests/benchmarks/qgraphicsview/benchapps/scrolltest/scrolltest.pro)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chip.cpp (renamed from tests/benchmarks/qgraphicsview/chiptester/chip.cpp)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chip.h (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.h)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.cpp (renamed from tests/benchmarks/qgraphicsview/chiptester/chiptester.cpp)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.h (renamed from tests/benchmarks/qgraphicsview/chiptester/chiptester.h)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.pri (renamed from tests/benchmarks/qgraphicsview/chiptester/chiptester.pri)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/images.qrc (renamed from tests/benchmarks/qgraphicsview/chiptester/images.qrc)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/qt4logo.png (renamed from tests/benchmarks/qgraphicsview/benchapps/chipTest/qt4logo.png)bin48333 -> 48333 bytes
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/images/designer.png (renamed from tests/benchmarks/qgraphicsview/images/designer.png)bin4205 -> 4205 bytes
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/images/wine-big.jpeg (renamed from tests/benchmarks/qgraphicsview/images/wine-big.jpeg)bin12249 -> 12249 bytes
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/images/wine.jpeg (renamed from tests/benchmarks/qgraphicsview/images/wine.jpeg)bin2265 -> 2265 bytes
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.pro (renamed from tests/benchmarks/qgraphicsview/qgraphicsview.pro)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.qrc (renamed from tests/benchmarks/qgraphicsview/qgraphicsview.qrc)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/random.data (renamed from tests/benchmarks/qgraphicsview/random.data)bin800 -> 800 bytes
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/tst_qgraphicsview.cpp (renamed from tests/benchmarks/qgraphicsview/tst_qgraphicsview.cpp)30
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicswidget/qgraphicswidget.pro (renamed from tests/benchmarks/qgraphicswidget/qgraphicswidget.pro)0
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp (renamed from tests/benchmarks/qgraphicswidget/tst_qgraphicswidget.cpp)0
-rw-r--r--tests/benchmarks/gui/gui.pro11
-rw-r--r--tests/benchmarks/gui/image/blendbench/blendbench.pro (renamed from tests/benchmarks/blendbench/blendbench.pro)0
-rw-r--r--tests/benchmarks/gui/image/blendbench/main.cpp (renamed from tests/benchmarks/blendbench/main.cpp)0
-rw-r--r--tests/benchmarks/gui/image/image.pro6
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/16bpp.bmp (renamed from tests/benchmarks/qimagereader/images/16bpp.bmp)bin153654 -> 153654 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/4bpp-rle.bmp (renamed from tests/benchmarks/qimagereader/images/4bpp-rle.bmp)bin23662 -> 23662 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/YCbCr_cmyk.jpg (renamed from tests/benchmarks/qimagereader/images/YCbCr_cmyk.jpg)bin3699 -> 3699 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/YCbCr_cmyk.png (renamed from tests/benchmarks/qimagereader/images/YCbCr_cmyk.png)bin230 -> 230 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/YCbCr_rgb.jpg (renamed from tests/benchmarks/qimagereader/images/YCbCr_rgb.jpg)bin2045 -> 2045 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/away.png (renamed from tests/benchmarks/qimagereader/images/away.png)bin753 -> 753 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/ball.mng (renamed from tests/benchmarks/qimagereader/images/ball.mng)bin34394 -> 34394 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/bat1.gif (renamed from tests/benchmarks/qimagereader/images/bat1.gif)bin953 -> 953 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/bat2.gif (renamed from tests/benchmarks/qimagereader/images/bat2.gif)bin980 -> 980 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/beavis.jpg (renamed from tests/benchmarks/qimagereader/images/beavis.jpg)bin20688 -> 20688 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/black.png (renamed from tests/benchmarks/qimagereader/images/black.png)bin697 -> 697 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/black.xpm (renamed from tests/benchmarks/qimagereader/images/black.xpm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/colorful.bmp (renamed from tests/benchmarks/qimagereader/images/colorful.bmp)bin65002 -> 65002 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/corrupt-colors.xpm (renamed from tests/benchmarks/qimagereader/images/corrupt-colors.xpm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/corrupt-data.tif (renamed from tests/benchmarks/qimagereader/images/corrupt-data.tif)bin8590 -> 8590 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/corrupt-pixels.xpm (renamed from tests/benchmarks/qimagereader/images/corrupt-pixels.xpm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/corrupt.bmp (renamed from tests/benchmarks/qimagereader/images/corrupt.bmp)bin116 -> 116 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/corrupt.gif (renamed from tests/benchmarks/qimagereader/images/corrupt.gif)bin2608 -> 2608 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/corrupt.jpg (renamed from tests/benchmarks/qimagereader/images/corrupt.jpg)bin18 -> 18 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/corrupt.mng (renamed from tests/benchmarks/qimagereader/images/corrupt.mng)bin183 -> 183 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/corrupt.png (renamed from tests/benchmarks/qimagereader/images/corrupt.png)bin95 -> 95 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/corrupt.xbm (renamed from tests/benchmarks/qimagereader/images/corrupt.xbm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/crash-signed-char.bmp (renamed from tests/benchmarks/qimagereader/images/crash-signed-char.bmp)bin45748 -> 45748 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/earth.gif (renamed from tests/benchmarks/qimagereader/images/earth.gif)bin51712 -> 51712 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/fire.mng (renamed from tests/benchmarks/qimagereader/images/fire.mng)bin44430 -> 44430 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/font.bmp (renamed from tests/benchmarks/qimagereader/images/font.bmp)bin1026 -> 1026 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/gnus.xbm (renamed from tests/benchmarks/qimagereader/images/gnus.xbm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/image.pbm (renamed from tests/benchmarks/qimagereader/images/image.pbm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/image.pgm (renamed from tests/benchmarks/qimagereader/images/image.pgm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/image.png (renamed from tests/benchmarks/qimagereader/images/image.png)bin549 -> 549 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/image.ppm (renamed from tests/benchmarks/qimagereader/images/image.ppm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/kollada-noext (renamed from tests/benchmarks/qimagereader/images/kollada-noext)bin13907 -> 13907 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/kollada.png (renamed from tests/benchmarks/qimagereader/images/kollada.png)bin13907 -> 13907 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/marble.xpm (renamed from tests/benchmarks/qimagereader/images/marble.xpm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/namedcolors.xpm (renamed from tests/benchmarks/qimagereader/images/namedcolors.xpm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/negativeheight.bmp (renamed from tests/benchmarks/qimagereader/images/negativeheight.bmp)bin24630 -> 24630 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/noclearcode.bmp (renamed from tests/benchmarks/qimagereader/images/noclearcode.bmp)bin326 -> 326 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/noclearcode.gif (renamed from tests/benchmarks/qimagereader/images/noclearcode.gif)bin130 -> 130 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/nontransparent.xpm (renamed from tests/benchmarks/qimagereader/images/nontransparent.xpm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/pngwithcompressedtext.png (renamed from tests/benchmarks/qimagereader/images/pngwithcompressedtext.png)bin757 -> 757 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/pngwithtext.png (renamed from tests/benchmarks/qimagereader/images/pngwithtext.png)bin796 -> 796 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/rgba_adobedeflate_littleendian.tif (renamed from tests/benchmarks/qimagereader/images/rgba_adobedeflate_littleendian.tif)bin4784 -> 4784 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/rgba_lzw_littleendian.tif (renamed from tests/benchmarks/qimagereader/images/rgba_lzw_littleendian.tif)bin26690 -> 26690 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/rgba_nocompression_bigendian.tif (renamed from tests/benchmarks/qimagereader/images/rgba_nocompression_bigendian.tif)bin160384 -> 160384 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/rgba_nocompression_littleendian.tif (renamed from tests/benchmarks/qimagereader/images/rgba_nocompression_littleendian.tif)bin160388 -> 160388 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/rgba_packbits_littleendian.tif (renamed from tests/benchmarks/qimagereader/images/rgba_packbits_littleendian.tif)bin161370 -> 161370 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/rgba_zipdeflate_littleendian.tif (renamed from tests/benchmarks/qimagereader/images/rgba_zipdeflate_littleendian.tif)bin14728 -> 14728 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/runners.ppm (renamed from tests/benchmarks/qimagereader/images/runners.ppm)bin960016 -> 960016 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/task210380.jpg (renamed from tests/benchmarks/qimagereader/images/task210380.jpg)bin975535 -> 975535 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/teapot.ppm (renamed from tests/benchmarks/qimagereader/images/teapot.ppm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/test.ppm (renamed from tests/benchmarks/qimagereader/images/test.ppm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/test.xpm (renamed from tests/benchmarks/qimagereader/images/test.xpm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/transparent.xpm (renamed from tests/benchmarks/qimagereader/images/transparent.xpm)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/trolltech.gif (renamed from tests/benchmarks/qimagereader/images/trolltech.gif)bin42629 -> 42629 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/tst7.bmp (renamed from tests/benchmarks/qimagereader/images/tst7.bmp)bin582 -> 582 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/images/tst7.png (renamed from tests/benchmarks/qimagereader/images/tst7.png)bin167 -> 167 bytes
-rw-r--r--tests/benchmarks/gui/image/qimagereader/qimagereader.pro (renamed from tests/benchmarks/qimagereader/qimagereader.pro)0
-rw-r--r--tests/benchmarks/gui/image/qimagereader/tst_qimagereader.cpp (renamed from tests/benchmarks/qimagereader/tst_qimagereader.cpp)0
-rw-r--r--tests/benchmarks/gui/image/qpixmap/qpixmap.pro (renamed from tests/benchmarks/qpixmap/qpixmap.pro)0
-rw-r--r--tests/benchmarks/gui/image/qpixmap/tst_qpixmap.cpp (renamed from tests/benchmarks/qpixmap/tst_qpixmap.cpp)0
-rw-r--r--tests/benchmarks/gui/image/qpixmapcache/qpixmapcache.pro (renamed from tests/benchmarks/qpixmapcache/qpixmapcache.pro)0
-rw-r--r--tests/benchmarks/gui/image/qpixmapcache/tst_qpixmapcache.cpp (renamed from tests/benchmarks/qpixmapcache/tst_qpixmapcache.cpp)0
-rw-r--r--tests/benchmarks/gui/itemviews/itemviews.pro3
-rw-r--r--tests/benchmarks/gui/itemviews/qtableview/qtableview.pro (renamed from tests/benchmarks/qtableview/qtableview.pro)0
-rw-r--r--tests/benchmarks/gui/itemviews/qtableview/tst_qtableview.cpp (renamed from tests/benchmarks/qtableview/tst_qtableview.cpp)0
-rw-r--r--tests/benchmarks/gui/kernel/kernel.pro4
-rw-r--r--tests/benchmarks/gui/kernel/qapplication/main.cpp (renamed from tests/benchmarks/qapplication/main.cpp)0
-rw-r--r--tests/benchmarks/gui/kernel/qapplication/qapplication.pro (renamed from tests/benchmarks/qapplication/qapplication.pro)0
-rw-r--r--tests/benchmarks/gui/kernel/qwidget/qwidget.pro (renamed from tests/benchmarks/qwidget/qwidget.pro)0
-rw-r--r--tests/benchmarks/gui/kernel/qwidget/tst_qwidget.cpp (renamed from tests/benchmarks/qwidget/tst_qwidget.cpp)0
-rw-r--r--tests/benchmarks/gui/math3d/math3d.pro4
-rw-r--r--tests/benchmarks/gui/math3d/qmatrix4x4/qmatrix4x4.pro (renamed from tests/benchmarks/qmatrix4x4/qmatrix4x4.pro)0
-rw-r--r--tests/benchmarks/gui/math3d/qmatrix4x4/tst_qmatrix4x4.cpp (renamed from tests/benchmarks/qmatrix4x4/tst_qmatrix4x4.cpp)0
-rw-r--r--tests/benchmarks/gui/math3d/qquaternion/qquaternion.pro (renamed from tests/benchmarks/qquaternion/qquaternion.pro)0
-rw-r--r--tests/benchmarks/gui/math3d/qquaternion/tst_qquaternion.cpp (renamed from tests/benchmarks/qquaternion/tst_qquaternion.cpp)0
-rw-r--r--tests/benchmarks/gui/painting/painting.pro5
-rw-r--r--tests/benchmarks/gui/painting/qpainter/qpainter.pro (renamed from tests/benchmarks/qpainter/qpainter.pro)0
-rw-r--r--tests/benchmarks/gui/painting/qpainter/tst_qpainter.cpp (renamed from tests/benchmarks/qpainter/tst_qpainter.cpp)0
-rw-r--r--tests/benchmarks/gui/painting/qregion/main.cpp (renamed from tests/benchmarks/qregion/main.cpp)0
-rw-r--r--tests/benchmarks/gui/painting/qregion/qregion.pro (renamed from tests/benchmarks/qregion/qregion.pro)0
-rw-r--r--tests/benchmarks/gui/painting/qtransform/qtransform.pro (renamed from tests/benchmarks/qtransform/qtransform.pro)0
-rw-r--r--tests/benchmarks/gui/painting/qtransform/tst_qtransform.cpp (renamed from tests/benchmarks/qtransform/tst_qtransform.cpp)0
-rw-r--r--tests/benchmarks/gui/styles/qstylesheetstyle/main.cpp (renamed from tests/benchmarks/qstylesheetstyle/main.cpp)0
-rw-r--r--tests/benchmarks/gui/styles/qstylesheetstyle/qstylesheetstyle.pro (renamed from tests/benchmarks/qstylesheetstyle/qstylesheetstyle.pro)0
-rw-r--r--tests/benchmarks/gui/styles/styles.pro3
-rw-r--r--tests/benchmarks/gui/text/qfontmetrics/main.cpp (renamed from tests/benchmarks/qfontmetrics/main.cpp)0
-rw-r--r--tests/benchmarks/gui/text/qfontmetrics/qfontmetrics.pro (renamed from tests/benchmarks/qfontmetrics/qfontmetrics.pro)0
-rw-r--r--tests/benchmarks/gui/text/qtext/bidi.txt (renamed from tests/benchmarks/qtext/bidi.txt)0
-rw-r--r--tests/benchmarks/gui/text/qtext/main.cpp (renamed from tests/benchmarks/qtext/main.cpp)0
-rw-r--r--tests/benchmarks/gui/text/qtext/qtext.pro (renamed from tests/benchmarks/qtext/qtext.pro)0
-rw-r--r--tests/benchmarks/gui/text/text.pro4
-rw-r--r--tests/benchmarks/network/access/access.pro4
-rw-r--r--tests/benchmarks/network/access/qfile_vs_qnetworkaccessmanager/main.cpp (renamed from tests/benchmarks/qfile_vs_qnetworkaccessmanager/main.cpp)2
-rw-r--r--tests/benchmarks/network/access/qfile_vs_qnetworkaccessmanager/qfile_vs_qnetworkaccessmanager.pro (renamed from tests/benchmarks/qfile_vs_qnetworkaccessmanager/qfile_vs_qnetworkaccessmanager.pro)0
-rw-r--r--tests/benchmarks/network/access/qnetworkreply/qnetworkreply.pro (renamed from tests/benchmarks/qnetworkreply/qnetworkreply.pro)0
-rw-r--r--tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp (renamed from tests/benchmarks/qnetworkreply/tst_qnetworkreply.cpp)2
-rw-r--r--tests/benchmarks/network/kernel/kernel.pro3
-rw-r--r--tests/benchmarks/network/kernel/qhostinfo/main.cpp (renamed from tests/benchmarks/qhostinfo/main.cpp)0
-rwxr-xr-xtests/benchmarks/network/kernel/qhostinfo/qhostinfo.pro (renamed from tests/benchmarks/qhostinfo/qhostinfo.pro)0
-rw-r--r--tests/benchmarks/network/network.pro5
-rw-r--r--tests/benchmarks/network/socket/qtcpserver/qtcpserver.pro (renamed from tests/benchmarks/qtcpserver/qtcpserver.pro)0
-rw-r--r--tests/benchmarks/network/socket/qtcpserver/tst_qtcpserver.cpp (renamed from tests/benchmarks/qtcpserver/tst_qtcpserver.cpp)2
-rw-r--r--tests/benchmarks/network/socket/socket.pro3
-rw-r--r--tests/benchmarks/qscriptclass/tst_qscriptclass.cpp511
-rw-r--r--tests/benchmarks/qtestlib-simple/main.cpp117
-rw-r--r--tests/benchmarks/qtestlib-simple/qtestlib-simple.pro8
-rw-r--r--tests/benchmarks/qtwidgets/advanced.ui319
-rw-r--r--tests/benchmarks/qtwidgets/icons/big.pngbin1323 -> 0 bytes
-rw-r--r--tests/benchmarks/qtwidgets/icons/folder.pngbin4069 -> 0 bytes
-rw-r--r--tests/benchmarks/qtwidgets/icons/icon.bmpbin246 -> 0 bytes
-rw-r--r--tests/benchmarks/qtwidgets/icons/icon.pngbin344 -> 0 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/script/qscriptclass/qscriptclass.pro (renamed from tests/benchmarks/qscriptclass/qscriptclass.pro)0
-rw-r--r--tests/benchmarks/script/qscriptclass/tst_qscriptclass.cpp285
-rw-r--r--tests/benchmarks/script/qscriptengine/qscriptengine.pro (renamed from tests/benchmarks/qscriptengine/qscriptengine.pro)0
-rw-r--r--tests/benchmarks/script/qscriptengine/tst_qscriptengine.cpp (renamed from tests/benchmarks/qscriptengine/tst_qscriptengine.cpp)0
-rw-r--r--tests/benchmarks/script/qscriptvalue/qscriptvalue.pro (renamed from tests/benchmarks/qscriptvalue/qscriptvalue.pro)0
-rw-r--r--tests/benchmarks/script/qscriptvalue/tst_qscriptvalue.cpp (renamed from tests/benchmarks/qscriptvalue/tst_qscriptvalue.cpp)0
-rw-r--r--tests/benchmarks/script/script.pro5
-rw-r--r--tests/benchmarks/svg/qsvgrenderer/data/tiger.svg (renamed from tests/benchmarks/qsvgrenderer/data/tiger.svg)0
-rw-r--r--tests/benchmarks/svg/qsvgrenderer/qsvgrenderer.pro (renamed from tests/benchmarks/qsvgrenderer/qsvgrenderer.pro)0
-rw-r--r--tests/benchmarks/svg/qsvgrenderer/qsvgrenderer.qrc (renamed from tests/benchmarks/qsvgrenderer/qsvgrenderer.qrc)0
-rw-r--r--tests/benchmarks/svg/qsvgrenderer/tst_qsvgrenderer.cpp (renamed from tests/benchmarks/qsvgrenderer/tst_qsvgrenderer.cpp)0
-rw-r--r--tests/benchmarks/svg/svg.pro3
-rw-r--r--tests/tests.pro3
-rw-r--r--tools/designer/src/lib/shared/actionrepository.cpp21
-rw-r--r--tools/designer/src/lib/shared/actionrepository_p.h9
-rw-r--r--tools/designer/src/lib/shared/iconloader.cpp3
-rw-r--r--tools/designer/src/lib/shared/qdesigner_menu.cpp11
-rw-r--r--tools/designer/src/lib/shared/qdesigner_menu_p.h2
-rw-r--r--tools/installer/README12
-rwxr-xr-xtools/installer/batch/build.bat157
-rwxr-xr-xtools/installer/batch/copy.bat121
-rwxr-xr-xtools/installer/batch/delete.bat73
-rwxr-xr-xtools/installer/batch/env.bat141
-rwxr-xr-xtools/installer/batch/extract.bat83
-rwxr-xr-xtools/installer/batch/installer.bat247
-rwxr-xr-xtools/installer/batch/log.bat58
-rwxr-xr-xtools/installer/batch/toupper.bat69
-rw-r--r--tools/installer/config/config.default.sample64
-rw-r--r--tools/installer/config/mingw-opensource.conf136
-rwxr-xr-xtools/installer/iwmake.bat124
-rw-r--r--tools/installer/nsis/confirmpage.ini59
-rw-r--r--tools/installer/nsis/gwdownload.ini118
-rw-r--r--tools/installer/nsis/gwmirror.ini67
-rw-r--r--tools/installer/nsis/images/install.icobin22486 -> 0 bytes
-rw-r--r--tools/installer/nsis/images/qt-header.bmpbin25818 -> 0 bytes
-rw-r--r--tools/installer/nsis/images/qt-wizard.bmpbin154542 -> 0 bytes
-rw-r--r--tools/installer/nsis/includes/global.nsh143
-rw-r--r--tools/installer/nsis/includes/instdir.nsh254
-rw-r--r--tools/installer/nsis/includes/list.nsh136
-rw-r--r--tools/installer/nsis/includes/qtcommon.nsh549
-rw-r--r--tools/installer/nsis/includes/qtenv.nsh303
-rw-r--r--tools/installer/nsis/includes/system.nsh269
-rw-r--r--tools/installer/nsis/installer.nsi524
-rw-r--r--tools/installer/nsis/modules/environment.nsh216
-rw-r--r--tools/installer/nsis/modules/mingw.nsh670
-rw-r--r--tools/installer/nsis/modules/opensource.nsh94
-rw-r--r--tools/installer/nsis/modules/registeruiext.nsh207
-rw-r--r--tools/installer/nsis/opensource.ini78
-rw-r--r--tools/linguist/linguist/messagemodel.cpp48
-rw-r--r--tools/linguist/linguist/messagemodel.h2
-rw-r--r--tools/runonphone/main.cpp4
-rw-r--r--tools/runonphone/runonphone.pro4
-rw-r--r--tools/runonphone/symbianutils/bluetoothlistener.cpp (renamed from tools/runonphone/trk/bluetoothlistener.cpp)2
-rw-r--r--tools/runonphone/symbianutils/bluetoothlistener.h (renamed from tools/runonphone/trk/bluetoothlistener.h)4
-rw-r--r--tools/runonphone/symbianutils/bluetoothlistener_gui.cpp (renamed from tools/runonphone/trk/bluetoothlistener_gui.cpp)6
-rw-r--r--tools/runonphone/symbianutils/bluetoothlistener_gui.h (renamed from tools/runonphone/trk/bluetoothlistener_gui.h)8
-rw-r--r--tools/runonphone/symbianutils/callback.h (renamed from tools/runonphone/trk/callback.h)2
-rw-r--r--tools/runonphone/symbianutils/communicationstarter.cpp (renamed from tools/runonphone/trk/communicationstarter.cpp)21
-rw-r--r--tools/runonphone/symbianutils/communicationstarter.h (renamed from tools/runonphone/trk/communicationstarter.h)10
-rw-r--r--tools/runonphone/symbianutils/launcher.cpp (renamed from tools/runonphone/trk/launcher.cpp)34
-rw-r--r--tools/runonphone/symbianutils/launcher.h (renamed from tools/runonphone/trk/launcher.h)2
-rw-r--r--tools/runonphone/symbianutils/symbiandevicemanager.cpp331
-rw-r--r--tools/runonphone/symbianutils/symbiandevicemanager.h145
-rw-r--r--tools/runonphone/symbianutils/symbianutils.pri (renamed from tools/runonphone/trk/trk.pri)10
-rw-r--r--tools/runonphone/symbianutils/symbianutils_global.h55
-rw-r--r--tools/runonphone/symbianutils/trkdevice.cpp (renamed from tools/runonphone/trk/trkdevice.cpp)47
-rw-r--r--tools/runonphone/symbianutils/trkdevice.h (renamed from tools/runonphone/trk/trkdevice.h)9
-rw-r--r--tools/runonphone/symbianutils/trkutils.cpp (renamed from tools/runonphone/trk/trkutils.cpp)106
-rw-r--r--tools/runonphone/symbianutils/trkutils.h (renamed from tools/runonphone/trk/trkutils.h)45
-rw-r--r--tools/runonphone/symbianutils/trkutils_p.h62
-rw-r--r--translations/qt_de.ts8
-rw-r--r--util/qlalr/cppgenerator.cpp2
380 files changed, 2627 insertions, 9220 deletions
diff --git a/bin/createpackage.pl b/bin/createpackage.pl
index 460df31..6d4614e 100755
--- a/bin/createpackage.pl
+++ b/bin/createpackage.pl
@@ -95,10 +95,10 @@ Example with certfile:
# This is comment line, also the empty lines are ignored
rd.cer;rd-key.pem
.\\cert\\mycert.cer;.\\cert\\mykey.key;yourpassword
- X:\\QtS60\\selfsigned.cer;X:\\QtS60\\selfsigned.key
+ X:\\QtS60\\s60installs\\selfsigned.cer;X:\\QtS60\\s60installs\\selfsigned.key
If no certificate and key files are provided, either a RnD certificate or
-a self-signed certificate from Qt installation root directory is used.
+a self-signed certificate from QtDir\\src\\s60installs directory is used.
==============================================================================================
ENDUSAGESTRING
@@ -149,8 +149,10 @@ $pkgoutputbasename = lc($pkgoutputbasename);
# Store output file names to variables
my $pkgoutput = lc($pkgoutputbasename.".pkg");
-my $unsigned_sis_name = $pkgoutputbasename."_unsigned.sis";
-my $signed_sis_name = $pkgoutputbasename.".sis";
+my $sisoutputbasename = lc($pkgoutputbasename);
+$sisoutputbasename =~ s/_$targetplatform//g;
+my $unsigned_sis_name = $sisoutputbasename."_unsigned.sis";
+my $signed_sis_name = $sisoutputbasename.".sis";
# Store some utility variables
my $scriptpath = dirname(__FILE__);
@@ -263,7 +265,11 @@ system ("signsis $unsigned_sis_name $signed_sis_name $certificate $key $passphra
# Check if creating signed SIS Succeeded
stat($signed_sis_name);
if( -e _ ) {
- print ("\nSuccessfully created $signed_sis_name using certificate: $certtext!\n");
+ my $targetInsert = "";
+ if ($targetplatform ne "-") {
+ $targetInsert = "for $targetplatform ";
+ }
+ print ("\nSuccessfully created $signed_sis_name ${targetInsert}using certificate: $certtext!\n");
# Sign with additional certificates & keys
for my $row ( @certificates ) {
diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl
index 8afe776..f82c48f 100755
--- a/bin/patch_capabilities.pl
+++ b/bin/patch_capabilities.pl
@@ -131,9 +131,13 @@ if (@ARGV)
}
}
- # Remove all dependencies to other packages to reduce unnecessary error messages
- # from depended packages that are also patched and therefore have different UID.
- if ($line =~ m/^\(0x[0-9|a-f|A-F]*\).*\{.*\}$/)
+ # Remove dependencies to known problem packages (i.e. packages that are likely to be patched, also)
+ # to reduce unnecessary error messages.
+ if ($line =~ m/^\(0x2002af5f\).*\{.*\}$/)
+ {
+ $newLine = "\n"
+ }
+ if ($line =~ m/^\(0x2001E61C\).*\{.*\}$/)
{
$newLine = "\n"
}
diff --git a/demos/browser/browser.pro b/demos/browser/browser.pro
index a42aa60..f038c61 100644
--- a/demos/browser/browser.pro
+++ b/demos/browser/browser.pro
@@ -6,8 +6,6 @@ CONFIG += qt warn_on
contains(QT_BUILD_PARTS, tools):!embedded: CONFIG += uitools
else: DEFINES += QT_NO_UITOOLS
-release:DEFINES+=QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT
-
FORMS += \
addbookmarkdialog.ui \
bookmarks.ui \
diff --git a/demos/browser/networkaccessmanager.cpp b/demos/browser/networkaccessmanager.cpp
index b0b00a2..70a9305 100644
--- a/demos/browser/networkaccessmanager.cpp
+++ b/demos/browser/networkaccessmanager.cpp
@@ -112,8 +112,9 @@ void NetworkAccessManager::requestFinished(QNetworkReply *reply)
double pctCached = (double(requestFinishedFromCacheCount) * 100.0/ double(requestFinishedCount));
double pctPipelined = (double(requestFinishedPipelinedCount) * 100.0/ double(requestFinishedCount));
double pctSecure = (double(requestFinishedSecureCount) * 100.0/ double(requestFinishedCount));
+#ifdef QT_DEBUG
qDebug("STATS [%lli requests total] [%3.2f%% from cache] [%3.2f%% pipelined] [%3.2f%% SSL/TLS]", requestFinishedCount, pctCached, pctPipelined, pctSecure);
-
+#endif
}
void NetworkAccessManager::loadSettings()
diff --git a/demos/browser/webview.cpp b/demos/browser/webview.cpp
index 1a7e38a..2f9b3e6 100644
--- a/demos/browser/webview.cpp
+++ b/demos/browser/webview.cpp
@@ -143,11 +143,19 @@ QObject *WebPage::createPlugin(const QString &classId, const QUrl &url, const QS
void WebPage::handleUnsupportedContent(QNetworkReply *reply)
{
- if (reply->error() == QNetworkReply::NoError) {
- BrowserApplication::downloadManager()->handleUnsupportedContent(reply);
+ QString errorString = reply->errorString();
+
+ if (m_loadingUrl != reply->url()) {
+ // sub resource of this page
+ qWarning() << "Resource" << reply->url().toEncoded() << "has unknown Content-Type, will be ignored.";
+ reply->deleteLater();
return;
}
+ if (reply->error() == QNetworkReply::NoError && !reply->header(QNetworkRequest::ContentTypeHeader).isValid()) {
+ errorString = "Unknown Content-Type";
+ }
+
QFile file(QLatin1String(":/notfound.html"));
bool isOpened = file.open(QIODevice::ReadOnly);
Q_ASSERT(isOpened);
@@ -156,7 +164,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply)
QString title = tr("Error loading page: %1").arg(reply->url().toString());
QString html = QString(QLatin1String(file.readAll()))
.arg(title)
- .arg(reply->errorString())
+ .arg(errorString)
.arg(reply->url().toString());
QBuffer imageBuffer;
diff --git a/dist/changes-4.6.2 b/dist/changes-4.6.2
index b1c0159..657aafc 100644
--- a/dist/changes-4.6.2
+++ b/dist/changes-4.6.2
@@ -16,22 +16,6 @@ Qt Bug Tracker: http://bugreports.qt.nokia.com
Task Tracker: http://qt.nokia.com/developer/task-tracker
Merge Request: http://qt.gitorious.org
-****************************************************************************
-* General *
-****************************************************************************
-
-New features
-------------
-
- - SomeClass, SomeOtherClass
- * New classes for foo, bar and baz
-
-Optimizations
--------------
-
- - Optimized foo in QSomeClass
- * See list of Important Behavior Changes below
-
****************************************************************************
* Library *
@@ -42,98 +26,88 @@ QtCore
- QAtomicPointer
* [QTBUG-7356] Fixed a compilation failure when using the Intel
- compiler on IA-64
-
+ compiler on IA-64
- QFile
* Fixed double-buffering issue when opening files in buffered mode.
- * [QTBUG-7285] QFile::remove would fail if an unrelated operation on the
- same instance had been previously failed. This manisfested itself in
- QTemporaryFile failing to auto-remove files and QFile::copy leaving
+ * [QTBUG-7285] QFile::remove would() fail if an unrelated operation on the
+ same instance had been previously failed. This manifested itself in
+ QTemporaryFile failing to auto-remove files and QFile::copy() leaving
temporary files behind in certain situations.
-
- QFSFileEngine
- * Fix typo that made realpath() not being used
-
+ * Fix typo that made realpath() not be used.
- QIODevice
- * Optimized readAll()
-
+ * Optimized readAll().
- QReadWriteLock
- * [MR 426] Fixed documentation
-
+ * [MR 426] Fixed documentation.
- QXmlStreamWriter
- * [QTBUG-6893] Fixed adding extra Byte Order Marks when writing to a xml file.
+ * [QTBUG-6893] Fixed adding extra Byte Order Marks when writing to a
+ .xml file.
QtGui
-----
+ - QApplication
+ * [QTBUG-6098] Added a flag to avoid construction of application panes.
+ * [QTBUG-7029] Fixed a crash when re-creating QApplication object due
+ to a dangling gesture manager pointer.
- QAbstractScrollArea
- * [QTBUG-1760] Reverted horizontal scrolling with mouse wheel when vertical scrollbar is hidden
-
+ * [QTBUG-1760] Reverted horizontal scrolling with mouse wheel when vertical
+ scrollbar is hidden
- QBmpHandler
- * [QTBUG-7530] Fixed an infinite loop that could occur when reading invalid BMP images.
-
+ * [QTBUG-7530] Fixed an infinite loop that could occur when reading invalid
+ BMP images.
- QGraphicsEffect
* [QTBUG-6901] Fixed performance problem when translating items with
graphics effects.
-
- QImage
* [QTBUG-7231] Avoid an unnecessary copy in QImage::scaled().
-
- - QPDFEngine
- * [QTBUG-7249] Fixed the encoding of the Tile and Creator tags in the PDF engine.
-
- - QApplication
- * [QTBUG-6098] Added a flag to avoid construction of application panes.
- QInputContext
- * [QTBUG-7439] Avoided the loss of preedit text when losing focus on Symbian.
-
- * [QT-2629] Implemented event filter functions for Symbian.
- * [QTBUG-7029] Fixed a crash when re-creating QApplication object due to a
- dangling gesture manager pointer.
- * [QTBUG-7198] Setting a style sheet could break the checkbox position in item views.
- * [QTBUG-7253] Fixed wrong stroke clipping with the raster engine when using a QPen
- with a style other than SolidLine.
-
-
- * [MR 2077] Integrated merge request 2077
+ * [QTBUG-7439] Avoided the loss of preedit text when losing focus on
+ Symbian.
+ - QPDFEngine
+ * [QTBUG-7249] Fixed the encoding of the Tile and Creator tags in the PDF
+ engine.
+ - [QT-2629] Implemented event filter functions for Symbian.
+ - [QTBUG-7198] Setting a style sheet could break the checkbox position in
+ item views.
+ - [QTBUG-7253] Fixed wrong stroke clipping with the raster engine when using
+ a QPen with a style other than SolidLine.
QtDBus
------
- QDBusConnection
- * [QT-2307] Fixed sending of D-Bus method calls with QDBus::BlockWithGui
+ * [QT-2307] Fixed sending of D-Bus method calls with QDBus::BlockWithGui.
QtNetwork
---------
- QNetworkAccessManager
* Optimizations
- * HTTP: Get rid of QAbstractSocket warnings that were sometimes displayed
- * HTTP: setReadBufferSize() of the QNetworkReply finally is working on all layers
- * [QTBUG-7713] HTTP: Fix bug related to re-sending a request
+ * HTTP: Get rid of QAbstractSocket warnings that were sometimes displayed.
+ * HTTP: setReadBufferSize() of the QNetworkReply finally is working on all
+ layers.
+ * [QTBUG-7713] HTTP: Fix bug related to re-sending a request.
* [QTBUG-7060] Fixed an issue with parsing of HTTP headers like
- "private, max-age=300"
-
+ "private, max-age=300".
- QSslCertificate
- * [QTBUG-6466] Fix issuerInfo() and subjectInfo()
-
+ * [QTBUG-6466] Fix issuerInfo() and subjectInfo().
- QTcpSocket
- * [QTBUG-7344] Fix performance degredation with write() on Windows
- * [QTBUG-7316,QTBUG-7317] Also handle unknown errors from socket engine
+ * [QTBUG-7344] Fix performance degredation with write() on Windows.
+ * [QTBUG-7316,QTBUG-7317] Handle unknown errors from socket engine.
QtOpenGL
--------
- [QTBUG-7490] Better support for user-generated binary shaders.
-
- - QGLWidget
- * [QTBUG-7213] Fixed QGLWidget::renderPixmap() on Windows.
-
- QGLPixelBuffer
- * [QTBUG-7476] Fixed a crash under X11 when drawing QPixmaps to QGLPixelBuffers.
-
+ * [QTBUG-7476] Fixed a crash under X11 when drawing QPixmaps to
+ QGLPixelBuffers.
- QGL2PaintEngineEx
* [QTBUG-7203] Reset the GL stencil mask, op and function in resetGLState().
+ - QGLWidget
+ * [QTBUG-7213] Fixed QGLWidget::renderPixmap() on Windows.
+
QtOpenVG
--------
@@ -141,129 +115,89 @@ QtOpenVG
- [QTBUG-7791] Optimize single-rect IntersectClip in OpenVG using the scissor.
- [QTBUG-7864] Use OpenVG scissor on 90/180/270 rotations and simple clips.
-QtScript
---------
-
- - foo
- * bar
-
-QtSql
------
-
- - foo
- * bar
-
-QtXml
------
-
- - foo
- * bar
-
QtMultimedia
------------
- QAudioInput
- * [QTBUG-7044]: QAudioInput stopped working correctly after suspend()/resume() on linux.
-
-Qt Plugins
-----------
-
- - foo
- * bar
+ * [QTBUG-7044]: QAudioInput stopped working correctly after
+ suspend()/resume() on linux.
Examples
--------
- QtMultimedia
- * [MR 418] Fixed the example for QAudioOutput
-
+ * [MR 418] Fixed the example for QAudioOutput.
- WebKit
- * [MR 2235] Added the framecapture example to the default build
-
-Third party components
-----------------------
-
- - Updated foo to version 2.3.9.
-
- - Updated bar to the latest version from baz.org.
+ * [MR 2235] Added the framecapture example to the default build.
****************************************************************************
* Platform Specific Changes *
****************************************************************************
-Qt for Unix (X11 and Mac OS X)
-------------------------------
-
- -
-
Qt for Linux/X11
----------------
- * Fix a bug where QPixmap::serialNumber was not set on a transformed pixmap
- in Qt/X11.
-
- * Fixed a crash when an input method tries to create a widget after the
- application is destroyed.
-
- - [QTBUG-6952] Fixed a problem using NoButtons in spinbox with QGtkStyle
- - [QTBUG-7504] Fixed missing focus rect on check- and radiobutton with
- some GTK+ themes.
- - [QTBUG-6522] Fixed missing menu separator in some GTK+ themes.
-
-Qt for Windows
---------------
+ - Fix a bug where QPixmap::serialNumber was not set on a transformed pixmap
+ in Qt/X11.
+ - Fixed a crash when an input method tries to create a widget after the
+ application is destroyed.
+ - [QTBUG-6952] Fixed a problem using NoButtons in spinbox with QGtkStyle.
+ - [QTBUG-7504] Fixed missing focus rect on check- and radiobutton with
+ some GTK+ themes.
+ - [QTBUG-6522] Fixed missing menu separator in some GTK+ themes.
Qt for Mac OS X
---------------
- [QTBUG-7832]: Restored missing margins around non-unified toolbars.
- - [QTBUG-7312]: Menubar and dock disappear after hiding a fullscreen widget on Cocoa.
- - [QTBUG-7481]: Re-added the Close button in QPrintPreviewDialog for Mac/Carbon.
- - [QTBUG-7522]: Drawing fake buttons using QMacStyle+QStyleOptionViewItemV4 lead to crash.
- - [QTBUG-7625]: Calling showFullScreen() then showNormal() on a widget results in top menu hiding.
- - [QTBUG-7086]: QFileDialog now correctly responds to fileMode & acceptMode changes.
- - [QTBUG-7162]: Fixed a crash in Designer when previewing a QMainWindow with native toolbar.
- - [QTBUG-7305]: Fixed a crash when deleting QMainWindow with native toolbar on Cocoa.
- - [QTBUG-6882]: Fixed a text layout issue with QHeaderView in right-to-left mode.
-
-
-Qt for Embedded Linux
----------------------
-
- -
+ - [QTBUG-7312]: Menubar and dock disappear after hiding a fullscreen widget
+ on Cocoa.
+ - [QTBUG-7481]: Re-added the Close button in QPrintPreviewDialog for
+ Mac/Carbon.
+ - [QTBUG-7522]: Drawing fake buttons using QMacStyle+QStyleOptionViewItemV4
+ lead to crash.
+ - [QTBUG-7625]: Calling showFullScreen() then showNormal() on a widget results
+ in top menu hiding.
+ - [QTBUG-7086]: QFileDialog now correctly responds to fileMode & acceptMode
+ changes.
+ - [QTBUG-7162]: Fixed a crash in Designer when previewing a QMainWindow with
+ native toolbar.
+ - [QTBUG-7305]: Fixed a crash when deleting QMainWindow with native toolbar
+ on Cocoa.
+ - [QTBUG-6882]: Fixed a text layout issue with QHeaderView in right-to-left
+ mode.
DirectFB
--------
- * Fix a bug where QPixmap::serialNumber was not set on a transformed pixmap
- in DirectFB.
- * Reimplement QPixmapData::scroll for QDirectFBPixmapData which optimizes
- QPixmap::scroll
- * Fix a rendering issue for semi-transparent top level windows in DirectFB.
- * Make it possible to fall back to the raster engine for stretch blits in
- DirectFB using QT_NO_DIRECTFB_STRETCHBLIT
- -
-Qt for Windows CE
------------------
-
- -
+ - Fix a bug where QPixmap::serialNumber was not set on a transformed pixmap
+ in DirectFB.
+ - Reimplement QPixmapData::scroll for QDirectFBPixmapData which optimizes
+ QPixmap::scroll.
+ - Fix a rendering issue for semi-transparent top level windows in DirectFB.
+ - Make it possible to fall back to the raster engine for stretch blits in
+ DirectFB using QT_NO_DIRECTFB_STRETCHBLIT.
Qt for Symbian
--------------
-- QProcess
- * [QTBUG-7667] Fixed no-timeout case for QProcess::waitForFinished.
-
-- qmake
- * [QTBUG-7695] Added support for ifdeffing for manufacturer in generated
- pkg files.
- * [QTBUG-7908] Smart installer package generation support
-
-- Patch_capabilities script
+ - [QTBUG-6556] Improve the DEF file handling scheme, to allow simple enable/
+ disable of DEF file usage (for use _during development only_ to decouple
+ the need to update the DEF files at the precise point that symbols are
+ removed, therefore allowing builds by CI systems to succeed even if symbols
+ have been removed. This does not remove the need to update the DEF files
+ before release. NOTE: Builds generated using this flag are not binary
+ compatible with previous versions of Qt.)
+ - QProcess
+ * [QTBUG-7667] Fixed no-timeout case for QProcess::waitForFinished.
+ - qmake
+ * [QTBUG-7695] Added support for ifdeffing for manufacturer in generated
+ pkg files.
+ * [QTBUG-7908] Smart installer package generation support.
+ - Patch_capabilities script
* Added support for embedded sis name/uid patching.
-
-- Qt deployment
- * [QTBUG-7518] Backup and restore support for Qt libs
+ - Qt deployment
+ * [QTBUG-7518] Backup and restore support for Qt libs.
****************************************************************************
@@ -271,28 +205,22 @@ Qt for Symbian
****************************************************************************
- Designer
- * [QTBUG-6965] Enabled editing seconds of QDateTime-type properties
+ * [QTBUG-6965] Enabled editing seconds of QDateTime-type properties.
* [QTBUG-6757] Fixed bug where selection handles would be affected by
a style sheet set on the main form.
- uic3
* [QTBUG-7404] Added option to preserve layout names set by Qt 3 Designer.
- - qdoc3
- * bar
-
- - Linguist
- * baz
-
****************************************************************************
* Important Behavior Changes *
****************************************************************************
- QNetworkAccessManager cache
- * QNetworkAccessManager will no longer return expired pages, as
- stated in the documentation
- * The behaviour of PreferCache and PreferNetwork modes now match
- the documentation more closely
+ * QNetworkAccessManager will no longer return expired pages, as
+ stated in the documentation
+ * The behaviour of PreferCache and PreferNetwork modes now match
+ the documentation more closely
- QUrl
* QUrl will now accept hostnames ending in dot and will not treat
diff --git a/doc/src/deployment/deployment.qdoc b/doc/src/deployment/deployment.qdoc
index 575a6dc..bf0bc74 100644
--- a/doc/src/deployment/deployment.qdoc
+++ b/doc/src/deployment/deployment.qdoc
@@ -963,14 +963,14 @@
\title Deploying an Application on Mac OS X
- Starting with version 4.5, Qt now includes a \l {macdeploy}{deployment tool}
- that automates the prodecures described in this document.
-
- This documentation will describe how to create a bundle, and how
- to make sure that the application will find the resources it needs
- at run-time. We will demonstrate the procedures in terms of
- deploying the \l {tools/plugandpaint}{Plug & Paint} application
- that is provided in Qt's examples directory.
+ Beginning with Qt 4.5, a \l {macdeploy}{deployment tool} is
+ included that automates the prodecures described here.
+
+ This document describes how to create a bundle and how to make
+ sure that the application will find the resources it needs at
+ run-time. We demonstrate the procedures in terms of deploying the
+ \l {tools/plugandpaint}{Plug & Paint} application that is provided
+ in Qt's examples directory.
\tableofcontents
@@ -1380,63 +1380,38 @@
\section2 Mac OS X Version Dependencies
- Qt 4.2 has been designed to be built and deployed on Mac OS X 10.3
- up until the current version as of this writing, Mac OS X 10.4 and
- all their minor releases. Qt achieves this by using "weak
- linking." This means that Qt tests if a function added in newer
- versions of Mac OS X is available on the computer it is running on
- before it uses it. This results in getting access to newer
- features when running on newer versions of OS X while still
- remaining compatible on older versions.
+ From Qt 4.6, Mac OS X 10.3 (Panther) is no longer supported. Qt
+ 4.6 applications can be built and deployed on Mac OS X 10.4
+ (Tiger) and higher. This is achieved using \e{weak linking}. In
+ \e{weak linking}, Qt tests whether a function added in a newer
+ version of Mac OS X is available on the computer it is running
+ on. This allows Qt to use newer features, when it runs on a newer
+ version of OS X, while remaining compatible on the older versions.
For more information about cross development issues on Mac OS X,
see \l
{http://developer.apple.com/documentation/DeveloperTools/Conceptual/cross_development/index.html}{Apple's Developer Website}.
- Since the linker is set to be compatible with all OS X version, you have to
- change the \c MACOSX_DEPLOYMENT_TARGET environment variable to get weak
- linking to work for your application. You can add:
+ Since the linker is set to be compatible with all OS X versions,
+ you must change the \c MACOSX_DEPLOYMENT_TARGET environment
+ variable to get \e{weak linking} to work for your application. You
+ can add:
\snippet doc/src/snippets/code/doc_src_deployment.qdoc 51
- to your .pro file and qmake will take care of this for you.
-
- However, there is a bit of a wrinkle to keep in mind when your are
- deploying. Mac OS X 10.4 ("Tiger") ships GCC 4.0 as its default
- compiler. This is also the GCC compiler we use for building the
- binary Qt package. If you use GCC 4.0 to build your application,
- it will link against a dynamic libstdc++ that is only available on
- Mac OS X 10.4 and Mac OS X 10.3.9. The application will refuse to
- run on older versions of the operating system.
+ to your .pro file, and qmake will take care of this for you.
For more information about C++ runtime environment, see \l
{http://developer.apple.com/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/index.html}{Apple's Developer Website}
- If you want to deploy to versions of Mac OS X earlier than 10.3.9,
- you must build with GCC 3.3 which is the default on Mac OS X
- 10.3. GCC 3.3 is also available on the Mac OS X 10.4 "Xcode Tools"
- CD and as a download for earlier versions of Mac OS X from Apple
- (\l {https://connect.apple.com/}{connect.apple.com}). You can use
- Apple's \c gcc_select(1) command line tool to switch the default
- complier on your system.
-
\section3 Deploying Phonon Applications on Mac OS X
\list
- \o If you build your Phonon application on Tiger, it will work on
- Tiger, Leopard and Panther.
- \o If you build your application on Leopard, it will \bold not work
- on Panther unless you rename the libraries with the following command
- after you have built your application:
-
- \snippet doc/src/snippets/code/doc_src_deployment.qdoc 51a
- This command must be invoked in the directory where
- \c{libphonon_qt7.dylib} is located, usually in
- \c{yourapp.app/Contents/plugins/phonon_backend/}.
- \o The \l {macdeploy}{deployment tool} will perform this step for you.
+ \o If you build your Qt 4.6 Phonon application on OS X 10.4
+ (Tiger), it will run on OS X 10.4 and higher.
- \o If you are using Leopard, but would like to build your application
+ \o If you are using Leopard but would like to build your application
against Tiger, you can use:
\snippet doc/src/snippets/code/doc_src_deployment.qdoc 51b
@@ -1444,12 +1419,13 @@
\section2 Architecture Dependencies
- The Qt for Mac OS X libraries, tools, and examples can be built "universal"
- (i.e. they run natively on both Intel and PowerPC machines). This
- is accomplished by passing \c -universal on the \c configure line
- of the source package, and requires that you use GCC 4.0.x. On
- PowerPC hardware you will need to pass the universal SDK as a
- command line argument to the Qt configure command. For example:
+ The Qt for Mac OS X libraries, tools, and examples can be built
+ "universal" (i.e. they run natively on both Intel and PowerPC
+ machines). This is accomplished by passing \c -universal on the
+ \c configure line of the source package, and requires that you use
+ GCC 4.0.x. On PowerPC hardware you will need to pass the universal
+ SDK as a command line argument to the Qt configure command. For
+ example:
\snippet doc/src/snippets/code/doc_src_deployment.qdoc 52
@@ -1573,28 +1549,22 @@
By default \c .pkg file generated by \c qmake adds support for all
S60 3rd edition FP1, S60 3rd edition FP2 and S60 5th edition devices.
- As a last step we will instruct qmake to generate smart installer \c .pkg file by defining
- the UID of the installation package. The UID needs to be different than the application UID,
- and should be reserved via normal Symbian mechanisms. You can use a random UID starting with
- \c 0xE for testing purposes:
-
- \snippet doc/src/snippets/code/doc_src_deployment.qdoc 58
-
Now we are ready to compile the application and create the application
deployment file. Run \c qmake to create Symbian specific makefiles, resources (\.rss)
and deployment packaging files (\c .pkg). And do build to create the
application binaries and resources.
- \snippet doc/src/snippets/code/doc_src_deployment.qdoc 59
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 58
If everything compiled and linked without any errors, we are now ready to create
- an application package (\c wiggly.sis):
+ an application installation package (\c wiggly_installer.sis).
- \snippet doc/src/snippets/code/doc_src_deployment.qdoc 60
+ If you haven't done so already, download the latest release of the Smart Installer
+ from \l{http://get.qt.nokia.com/nokiasmartinstaller/}, and install it on top of the Qt package
- Now you can create the smart installer package for the application:
+ Then use this command to create the installer sis package:
- \snippet doc/src/snippets/code/doc_src_deployment.qdoc 61
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 59
If all binaries and dependencies were found, you should now have a self signed
\c wiggly_installer.sis ready to be installed on a device. The smart installer
diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc
index 5f95c5a..abdfcd2 100644
--- a/doc/src/getting-started/installation.qdoc
+++ b/doc/src/getting-started/installation.qdoc
@@ -677,7 +677,7 @@ If you are using pre-built binaries, follow the instructions given in the
\snippet doc/src/snippets/code/doc_src_installation.qdoc 30
- This will create a self-signed \c fluidlauncher_armv5_urel.sis and
+ This will create a self-signed \c fluidlauncher.sis and
install it to your device.
To run the demos on the emulator simply navigate to the directory of the demo
@@ -1038,8 +1038,9 @@ If you are using pre-built binaries, follow the instructions given in the
\list
\o \bold{Note:} This is not required if you are using pre-built binary package.
\endlist
- \o Building Qt libraries requires \l{http://www.arm.com/products/DevTools/RVCT.html}{RVCT} 2.2 [build 686] or later,
- which is not available free of charge.
+ \o Building Qt libraries requires \l{http://www.arm.com/products/DevTools/RVCT.html}{RVCT} version 2.2 (build 686 or later),
+ which is not available free of charge. Usage of later versions of RVCT, including the 3.x and 4.x series, is not supported
+ in this release.
\endlist
Running Qt on real device requires the Open C to be installed on the device.
diff --git a/doc/src/platforms/platform-notes.qdoc b/doc/src/platforms/platform-notes.qdoc
index e08bf1a..f513181 100644
--- a/doc/src/platforms/platform-notes.qdoc
+++ b/doc/src/platforms/platform-notes.qdoc
@@ -293,6 +293,9 @@
\section1 General Information
+ Qt 4.6 applications can only be deployed on Mac OS X 10.4 (Tiger)
+ and higher.
+
Qt 4.4 and Qt 4.5 development is only supported on Mac OS X 10.4 and up.
Applications built against these version of Qt can be deployed on Mac OS X
10.3, but cannot be developed on that version of the operating system due
diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc
index 427f45a..5cebee3 100644
--- a/doc/src/platforms/symbian-introduction.qdoc
+++ b/doc/src/platforms/symbian-introduction.qdoc
@@ -127,6 +127,11 @@
\row \o \c run \o Run the application on the emulator.
\row \o \c runonphone \o Run the application on a device.
\row \o \c sis \o Create signed \c .sis file for project.
+ \row \o \c installer_sis \o Create signed \l{Smart Installer}{smart installer}
+ \c .sis file for project.
+ Smart installer will attempt to download
+ missing dependencies in addition to
+ just installing the application.
\endtable
The following lines perform a debug build for the emulator
@@ -137,6 +142,14 @@
To work on your project in Carbide, simply import the \c .pro file
by right clicking on the project explorer and executing "Import...".
+ \section2 Smart Installer
+
+ The Smart Installer makes sure that deployed applications have all the Qt dependencies
+ they need to run on a device.
+
+ Download the latest release of the Smart Installer from \l{http://get.qt.nokia.com/nokiasmartinstaller/},
+ and install it on top of the Qt package.
+
\section1 Installing your own applications
To install your own applications on hardware, you need a signed \c .sis file.
diff --git a/doc/src/snippets/code/doc_src_deployment.qdoc b/doc/src/snippets/code/doc_src_deployment.qdoc
index 9c00681..3b0cda1 100644
--- a/doc/src/snippets/code/doc_src_deployment.qdoc
+++ b/doc/src/snippets/code/doc_src_deployment.qdoc
@@ -475,19 +475,10 @@ default_deployment.pkg_prerules += supported_platforms
//! [57]
//! [58]
-DEPLOYMENT.installer_header = 0xE2345678
-//! [58]
-
-//! [59]
qmake
make release-gcce
-//! [59]
-
-//! [60]
-make sis
-ren wiggly_release-gcce.sis wiggly.sis
-//! [60]
+//! [58]
-//! [61]
-createpackage wiggly_installer.pkg
-//! [61] \ No newline at end of file
+//! [59]
+make installer_sis
+//! [59] \ No newline at end of file
diff --git a/examples/multimedia/audioinput/audioinput.cpp b/examples/multimedia/audioinput/audioinput.cpp
index 8cc9948..fbf4dc4 100644
--- a/examples/multimedia/audioinput/audioinput.cpp
+++ b/examples/multimedia/audioinput/audioinput.cpp
@@ -213,6 +213,9 @@ InputTest::InputTest()
if(format.sampleSize() != 16) {
qWarning()<<"audio device doesn't support 16 bit samples, example cannot run";
+ audioInput = 0;
+ button->setDisabled(true);
+ button2->setDisabled(true);
return;
}
diff --git a/examples/multimedia/audiooutput/audiooutput.cpp b/examples/multimedia/audiooutput/audiooutput.cpp
index 0c57f4d..b44accd 100644
--- a/examples/multimedia/audiooutput/audiooutput.cpp
+++ b/examples/multimedia/audiooutput/audiooutput.cpp
@@ -179,6 +179,9 @@ AudioTest::AudioTest()
if(settings.sampleSize() != 16) {
qWarning()<<"audio device doesn't support 16 bit samples, example cannot run";
+ button->setDisabled(true);
+ button2->setDisabled(true);
+ audioOutput = 0;
return;
}
diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index 7162bad..6113746 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -148,3 +148,19 @@ exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/Series60v5.0.sis
MMP_RULES -= PAGED
}
}
+
+QMAKE_CXXFLAGS_FAST_VFP.ARMCC = --fpmode fast
+# [TODO] QMAKE_CXXFLAGS_FAST_VFP.GCCE =
+
+symbian {
+ armfpu = $$find(MMP_RULES, "ARMFPU")
+ !isEmpty(armfpu) {
+ vfpv2 = $$find(MMP_RULES, "vfpv2")
+ !isEmpty(vfpv2) {
+ # we will respect fpu setting obtained from configure, but,
+ # if vfpv2 or softvfp+vfpv2 used we want to force RunFast VFP mode
+ QMAKE_CXXFLAGS.ARMCC += $${QMAKE_CXXFLAGS_FAST_VFP.ARMCC}
+ # [TODO] QMAKE_CXXFLAGS.GCCE += $${QMAKE_CXXFLAGS_FAST_VFP.GCCE}
+ }
+ }
+} \ No newline at end of file
diff --git a/mkspecs/features/qttest_p4.prf b/mkspecs/features/qttest_p4.prf
index 525e7b2..e0b22f2 100644
--- a/mkspecs/features/qttest_p4.prf
+++ b/mkspecs/features/qttest_p4.prf
@@ -13,23 +13,19 @@ symbian:{
# prefix test binary with tst_
!contains(TARGET, ^tst_.*):TARGET = $$join(TARGET,,"tst_")
-########################################################################
-# Use install rule to run test application.
-# This lets you do 'make install' on a test to both build and run it,
-# and lets you easily build and run all tests from the parent directory.
-# ----------------------------------------------------------------------
-runme.files =
-runme.path = .
-!isEmpty(DESTDIR): runme.commands = cd ./$(DESTDIR) &&
-macx: runme.commands += ./$(QMAKE_TARGET).app/Contents/MacOS/$(QMAKE_TARGET)
-else:unix: runme.commands += ./$(QMAKE_TARGET)
+check.files =
+check.path = .
+!isEmpty(DESTDIR): check.commands = cd ./$(DESTDIR) &&
+macx: check.commands += ./$(QMAKE_TARGET).app/Contents/MacOS/$(QMAKE_TARGET)
+else:unix: check.commands += ./$(QMAKE_TARGET)
else:win32: {
- CONFIG(debug, debug|release):runme.commands += debug\\$(QMAKE_TARGET)
- else:runme.commands += release\\$(QMAKE_TARGET)
+ CONFIG(debug, debug|release):check.commands += debug\\$(QMAKE_TARGET)
+ else:check.commands += release\\$(QMAKE_TARGET)
}
-embedded: runme.commands += -qws
-INSTALLS += runme
+embedded: check.commands += -qws
+QMAKE_EXTRA_TARGETS += check
-########################################################################
+target.path += $$[QT_INSTALL_PREFIX]/tests/qt4
+INSTALLS += target
diff --git a/qmake/generators/symbian/initprojectdeploy_symbian.cpp b/qmake/generators/symbian/initprojectdeploy_symbian.cpp
index f3e3c3a..5fbff58 100644
--- a/qmake/generators/symbian/initprojectdeploy_symbian.cpp
+++ b/qmake/generators/symbian/initprojectdeploy_symbian.cpp
@@ -207,7 +207,7 @@ QString generate_uid(const QString& target)
return tmp;
}
- unsigned long hash = 5381;
+ quint32 hash = 5381;
int c;
for (int i = 0; i < target.size(); ++i) {
diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp
index 6c44f0b..3ee3b3a 100644
--- a/qmake/generators/symbian/symmake.cpp
+++ b/qmake/generators/symbian/symmake.cpp
@@ -87,7 +87,9 @@
#define MMP_END_RESOURCE "END"
#define SIS_TARGET "sis"
+#define INSTALLER_SIS_TARGET "installer_sis"
#define OK_SIS_TARGET "ok_sis"
+#define OK_INSTALLER_SIS_TARGET "ok_installer_sis"
#define FAIL_SIS_NOPKG_TARGET "fail_sis_nopkg"
#define FAIL_SIS_NOCACHE_TARGET "fail_sis_nocache"
@@ -295,6 +297,9 @@ void SymbianMakefileGenerator::generatePkgFile(const QString &iconFile, Deployme
QTextStream t(&pkgFile);
QString installerSisHeader = project->values("DEPLOYMENT.installer_header").join("\n");
+ if (installerSisHeader.isEmpty())
+ installerSisHeader = "0xA000D7CE"; // Use default self-signable UID if not defined
+
QString wrapperStreamBuffer;
QTextStream tw(&wrapperStreamBuffer);
@@ -517,7 +522,7 @@ void SymbianMakefileGenerator::generatePkgFile(const QString &iconFile, Deployme
twf << "\"" << currentPath << "/" << sisName << "\" - \"c:\\adm\\" << sisName << "\"" << endl;
QString bootStrapPath = QLibraryInfo::location(QLibraryInfo::PrefixPath);
- bootStrapPath.append("/bootstrap.sis");
+ bootStrapPath.append("/smartinstaller.sis");
QFileInfo fi(fileInfo(bootStrapPath));
twf << "@\"" << fi.absoluteFilePath() << "\",(0x2002CCCD)" << endl;
}
@@ -1901,8 +1906,34 @@ void SymbianMakefileGenerator::writeSisTargets(QTextStream &t)
t << pkgcommand << endl;
t << endl;
+ QString sisName = fixedTarget;
+ sisName += ".sis";
+
+ t << sisName << ":" << endl;
+ t << "\t$(MAKE) -s -f $(MAKEFILE) " SIS_TARGET << endl << endl;
+
+ t << INSTALLER_SIS_TARGET ": " << sisName << endl;
+ siscommand = QString("\t$(if $(wildcard %1_installer.%2)," \
+ "$(MAKE) -s -f $(MAKEFILE) %3," \
+ "$(MAKE) -s -f $(MAKEFILE) %4)")
+ .arg(fixedTarget)
+ .arg("pkg")
+ .arg(OK_INSTALLER_SIS_TARGET)
+ .arg(FAIL_SIS_NOPKG_TARGET);
+ t << siscommand << endl;
+ t << endl;
+
+ t << OK_INSTALLER_SIS_TARGET ": " << endl;
+
+ pkgcommand = QString("\tcreatepackage.bat $(QT_SIS_OPTIONS) %1_installer.%2 - " \
+ "$(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)")
+ .arg(fixedTarget)
+ .arg("pkg");
+ t << pkgcommand << endl;
+ t << endl;
+
t << FAIL_SIS_NOPKG_TARGET ":" << endl;
- t << "\t$(error PKG file does not exist, 'SIS' target is only supported for executables or projects with DEPLOYMENT statement)" << endl;
+ t << "\t$(error PKG file does not exist, '" SIS_TARGET "' and '" INSTALLER_SIS_TARGET "' target are only supported for executables or projects with DEPLOYMENT statement)" << endl;
t << endl;
t << FAIL_SIS_NOCACHE_TARGET ":" << endl;
diff --git a/qmake/qmake.pro b/qmake/qmake.pro
index 560aee9..00dcbce 100644
--- a/qmake/qmake.pro
+++ b/qmake/qmake.pro
@@ -17,9 +17,15 @@ VPATH += $$QT_SOURCE_TREE/src/corelib/global \
$$QT_SOURCE_TREE/src/corelib/kernel \
$$QT_SOURCE_TREE/src/corelib/codecs \
$$QT_SOURCE_TREE/src/corelib/plugin \
- $$QT_SOURCE_TREE/src/corelib/xml \
- $$QT_SOURCE_TREE/src/corelib/io
-INCPATH += generators generators/unix generators/win32 generators/mac generators/symbian \
- $$QT_SOURCE_TREE/include $$QT_SOURCE_TREE/include/QtCore
+ $$QT_SOURCE_TREE/src/corelib/xml \
+ $$QT_SOURCE_TREE/src/corelib/io
+INCPATH += generators \
+ generators/unix \
+ generators/win32 \
+ generators/mac \
+ generators/symbian \
+ $$QT_SOURCE_TREE/include \
+ $$QT_SOURCE_TREE/include/QtCore \
+ $$QT_SOURCE_TREE/qmake
include(qmake.pri)
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION
index c304876..4348cbc 100644
--- a/src/3rdparty/webkit/VERSION
+++ b/src/3rdparty/webkit/VERSION
@@ -8,4 +8,4 @@ The commit imported was from the
and has the sha1 checksum
- 69dd29fbeb12d076741dce70ac6bc155101ccd6f
+ da5d96a26e80162027bc95ce7e5725fe4b277ff7
diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog
index 18d119a..1f6f290 100644
--- a/src/3rdparty/webkit/WebCore/ChangeLog
+++ b/src/3rdparty/webkit/WebCore/ChangeLog
@@ -2,6 +2,44 @@
Reviewed by Kenneth Rohde Christiansen.
+ [Qt] In the StyledPainter determine the style from the Render and Scrollbar theme instead of from the paint device
+ https://bugs.webkit.org/show_bug.cgi?id=34054
+
+ Getting the style from the painter's paint device is a hack that breaks when
+ the paint device's style is different than the style that is used when
+ calculating the metries earlier when there is no painter available.
+
+ This change moves us closer to always using the same style.
+
+ * platform/qt/RenderThemeQt.cpp:
+ (WebCore::StylePainter::StylePainter):
+ (WebCore::StylePainter::init):
+ (WebCore::RenderThemeQt::paintButton):
+ (WebCore::RenderThemeQt::paintTextField):
+ (WebCore::RenderThemeQt::paintMenuList):
+ (WebCore::RenderThemeQt::paintMenuListButton):
+ (WebCore::RenderThemeQt::paintSliderTrack):
+ (WebCore::RenderThemeQt::paintMediaMuteButton):
+ (WebCore::RenderThemeQt::paintMediaPlayButton):
+ (WebCore::RenderThemeQt::paintMediaSliderTrack):
+ (WebCore::RenderThemeQt::paintMediaSliderThumb):
+ * platform/qt/RenderThemeQt.h:
+ * platform/qt/ScrollbarThemeQt.cpp:
+ (WebCore::ScrollbarThemeQt::paint):
+ (WebCore::ScrollbarThemeQt::hitTest):
+ (WebCore::ScrollbarThemeQt::shouldCenterOnThumb):
+ (WebCore::ScrollbarThemeQt::scrollbarThickness):
+ (WebCore::ScrollbarThemeQt::thumbLength):
+ (WebCore::ScrollbarThemeQt::trackPosition):
+ (WebCore::ScrollbarThemeQt::trackLength):
+ (WebCore::ScrollbarThemeQt::paintScrollCorner):
+ (WebCore::ScrollbarThemeQt::style):
+ * platform/qt/ScrollbarThemeQt.h:
+
+2010-01-25 Simon Hausmann <hausmann@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
[Qt] Use the fallback style on Maemo 5
https://bugs.webkit.org/show_bug.cgi?id=34376
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp
index 6a1eee8..37a6408 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp
@@ -44,6 +44,7 @@
#include "Page.h"
#include "RenderBox.h"
#include "RenderTheme.h"
+#include "ScrollbarThemeQt.h"
#include "UserAgentStyleSheets.h"
#include "QWebPageClient.h"
#include "qwebpage.h"
@@ -66,17 +67,17 @@ namespace WebCore {
using namespace HTMLNames;
-StylePainter::StylePainter(const RenderObject::PaintInfo& paintInfo)
+StylePainter::StylePainter(RenderThemeQt* theme, const RenderObject::PaintInfo& paintInfo)
{
- init(paintInfo.context ? paintInfo.context : 0);
+ init(paintInfo.context ? paintInfo.context : 0, theme->qStyle());
}
-StylePainter::StylePainter(GraphicsContext* context)
+StylePainter::StylePainter(ScrollbarThemeQt* theme, GraphicsContext* context)
{
- init(context);
+ init(context, theme->style());
}
-void StylePainter::init(GraphicsContext* context)
+void StylePainter::init(GraphicsContext* context, QStyle* themeStyle)
{
painter = static_cast<QPainter*>(context->platformContext());
widget = 0;
@@ -85,7 +86,7 @@ void StylePainter::init(GraphicsContext* context)
dev = painter->device();
if (dev && dev->devType() == QInternal::Widget)
widget = static_cast<QWidget*>(dev);
- style = (widget ? widget->style() : QApplication::style());
+ style = themeStyle;
if (painter) {
// the styles often assume being called with a pristine painter where no brush is set,
@@ -464,7 +465,7 @@ void RenderThemeQt::setButtonPadding(RenderStyle* style) const
bool RenderThemeQt::paintButton(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r)
{
- StylePainter p(i);
+ StylePainter p(this, i);
if (!p.isValid())
return true;
@@ -497,7 +498,7 @@ void RenderThemeQt::adjustTextFieldStyle(CSSStyleSelector*, RenderStyle* style,
bool RenderThemeQt::paintTextField(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r)
{
- StylePainter p(i);
+ StylePainter p(this, i);
if (!p.isValid())
return true;
@@ -566,7 +567,7 @@ void RenderThemeQt::setPopupPadding(RenderStyle* style) const
bool RenderThemeQt::paintMenuList(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r)
{
- StylePainter p(i);
+ StylePainter p(this, i);
if (!p.isValid())
return true;
@@ -606,7 +607,7 @@ void RenderThemeQt::adjustMenuListButtonStyle(CSSStyleSelector*, RenderStyle* st
bool RenderThemeQt::paintMenuListButton(RenderObject* o, const RenderObject::PaintInfo& i,
const IntRect& r)
{
- StylePainter p(i);
+ StylePainter p(this, i);
if (!p.isValid())
return true;
@@ -837,7 +838,7 @@ bool RenderThemeQt::paintMediaMuteButton(RenderObject* o, const RenderObject::Pa
if (!mediaElement)
return false;
- StylePainter p(paintInfo);
+ StylePainter p(this, paintInfo);
if (!p.isValid())
return true;
@@ -866,7 +867,7 @@ bool RenderThemeQt::paintMediaPlayButton(RenderObject* o, const RenderObject::Pa
if (!mediaElement)
return false;
- StylePainter p(paintInfo);
+ StylePainter p(this, paintInfo);
if (!p.isValid())
return true;
@@ -905,7 +906,7 @@ bool RenderThemeQt::paintMediaSliderTrack(RenderObject* o, const RenderObject::P
if (!mediaElement)
return false;
- StylePainter p(paintInfo);
+ StylePainter p(this, paintInfo);
if (!p.isValid())
return true;
@@ -932,7 +933,7 @@ bool RenderThemeQt::paintMediaSliderThumb(RenderObject* o, const RenderObject::P
if (!mediaElement)
return false;
- StylePainter p(paintInfo);
+ StylePainter p(this, paintInfo);
if (!p.isValid())
return true;
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.h b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.h
index 19337ac..13fb42f 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.h
+++ b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.h
@@ -35,6 +35,7 @@ namespace WebCore {
class RenderStyle;
class HTMLMediaElement;
+class ScrollbarThemeQt;
class RenderThemeQt : public RenderTheme {
private:
@@ -75,6 +76,8 @@ public:
virtual String extraMediaControlsStyleSheet();
#endif
+ QStyle* qStyle() const;
+
protected:
virtual bool paintCheckbox(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
virtual void setCheckboxSize(RenderStyle*) const;
@@ -137,7 +140,6 @@ private:
void setButtonPadding(RenderStyle*) const;
void setPopupPadding(RenderStyle*) const;
- QStyle* qStyle() const;
QStyle* fallbackStyle() const;
Page* m_page;
@@ -152,8 +154,8 @@ private:
class StylePainter {
public:
- explicit StylePainter(const RenderObject::PaintInfo& paintInfo);
- explicit StylePainter(GraphicsContext* context);
+ explicit StylePainter(RenderThemeQt*, const RenderObject::PaintInfo&);
+ explicit StylePainter(ScrollbarThemeQt*, GraphicsContext*);
~StylePainter();
bool isValid() const { return painter && style; }
@@ -170,7 +172,7 @@ public:
{ style->drawComplexControl(cc, &opt, painter, widget); }
private:
- void init(GraphicsContext* context);
+ void init(GraphicsContext* context, QStyle*);
QBrush oldBrush;
bool oldAntialiasing;
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/ScrollbarThemeQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/ScrollbarThemeQt.cpp
index 561e55f..c0692ca 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/ScrollbarThemeQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/qt/ScrollbarThemeQt.cpp
@@ -140,7 +140,7 @@ bool ScrollbarThemeQt::paint(Scrollbar* scrollbar, GraphicsContext* graphicsCont
return false;
}
- StylePainter p(graphicsContext);
+ StylePainter p(this, graphicsContext);
if (!p.isValid())
return true;
@@ -172,14 +172,14 @@ ScrollbarPart ScrollbarThemeQt::hitTest(Scrollbar* scrollbar, const PlatformMous
QStyleOptionSlider* opt = styleOptionSlider(scrollbar);
const QPoint pos = scrollbar->convertFromContainingWindow(evt.pos());
opt->rect.moveTo(QPoint(0, 0));
- QStyle::SubControl sc = QApplication::style()->hitTestComplexControl(QStyle::CC_ScrollBar, opt, pos, 0);
+ QStyle::SubControl sc = style()->hitTestComplexControl(QStyle::CC_ScrollBar, opt, pos, 0);
return scrollbarPart(sc);
}
bool ScrollbarThemeQt::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
{
// Middle click centers slider thumb (if supported)
- return QApplication::style()->styleHint(QStyle::SH_ScrollBar_MiddleClickAbsolutePosition) && evt.button() == MiddleButton;
+ return style()->styleHint(QStyle::SH_ScrollBar_MiddleClickAbsolutePosition) && evt.button() == MiddleButton;
}
void ScrollbarThemeQt::invalidatePart(Scrollbar* scrollbar, ScrollbarPart)
@@ -190,13 +190,12 @@ void ScrollbarThemeQt::invalidatePart(Scrollbar* scrollbar, ScrollbarPart)
int ScrollbarThemeQt::scrollbarThickness(ScrollbarControlSize controlSize)
{
- QStyle* s = QApplication::style();
QStyleOptionSlider o;
o.orientation = Qt::Vertical;
o.state &= ~QStyle::State_Horizontal;
if (controlSize != RegularScrollbar)
o.state |= QStyle::State_Mini;
- return s->pixelMetric(QStyle::PM_ScrollBarExtent, &o, 0);
+ return style()->pixelMetric(QStyle::PM_ScrollBarExtent, &o, 0);
}
int ScrollbarThemeQt::thumbPosition(Scrollbar* scrollbar)
@@ -209,21 +208,21 @@ int ScrollbarThemeQt::thumbPosition(Scrollbar* scrollbar)
int ScrollbarThemeQt::thumbLength(Scrollbar* scrollbar)
{
QStyleOptionSlider* opt = styleOptionSlider(scrollbar);
- IntRect thumb = QApplication::style()->subControlRect(QStyle::CC_ScrollBar, opt, QStyle::SC_ScrollBarSlider, 0);
+ IntRect thumb = style()->subControlRect(QStyle::CC_ScrollBar, opt, QStyle::SC_ScrollBarSlider, 0);
return scrollbar->orientation() == HorizontalScrollbar ? thumb.width() : thumb.height();
}
int ScrollbarThemeQt::trackPosition(Scrollbar* scrollbar)
{
QStyleOptionSlider* opt = styleOptionSlider(scrollbar);
- IntRect track = QApplication::style()->subControlRect(QStyle::CC_ScrollBar, opt, QStyle::SC_ScrollBarGroove, 0);
+ IntRect track = style()->subControlRect(QStyle::CC_ScrollBar, opt, QStyle::SC_ScrollBarGroove, 0);
return scrollbar->orientation() == HorizontalScrollbar ? track.x() - scrollbar->x() : track.y() - scrollbar->y();
}
int ScrollbarThemeQt::trackLength(Scrollbar* scrollbar)
{
QStyleOptionSlider* opt = styleOptionSlider(scrollbar);
- IntRect track = QApplication::style()->subControlRect(QStyle::CC_ScrollBar, opt, QStyle::SC_ScrollBarGroove, 0);
+ IntRect track = style()->subControlRect(QStyle::CC_ScrollBar, opt, QStyle::SC_ScrollBarGroove, 0);
return scrollbar->orientation() == HorizontalScrollbar ? track.width() : track.height();
}
@@ -237,7 +236,7 @@ void ScrollbarThemeQt::paintScrollCorner(ScrollView* scrollView, GraphicsContext
#if QT_VERSION < 0x040500
context->fillRect(rect, QApplication::palette().color(QPalette::Normal, QPalette::Window));
#else
- StylePainter p(context);
+ StylePainter p(this, context);
if (!p.isValid())
return;
@@ -247,5 +246,10 @@ void ScrollbarThemeQt::paintScrollCorner(ScrollView* scrollView, GraphicsContext
#endif
}
+QStyle* ScrollbarThemeQt::style() const
+{
+ return QApplication::style();
+}
+
}
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/ScrollbarThemeQt.h b/src/3rdparty/webkit/WebCore/platform/qt/ScrollbarThemeQt.h
index 6ca44ea..cf4882d 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/ScrollbarThemeQt.h
+++ b/src/3rdparty/webkit/WebCore/platform/qt/ScrollbarThemeQt.h
@@ -28,6 +28,12 @@
#include "ScrollbarTheme.h"
+#include <QtCore/qglobal.h>
+
+QT_BEGIN_NAMESPACE
+class QStyle;
+QT_END_NAMESPACE
+
namespace WebCore {
class ScrollbarThemeQt : public ScrollbarTheme {
@@ -49,6 +55,8 @@ public:
virtual int trackLength(Scrollbar*);
virtual int scrollbarThickness(ScrollbarControlSize = RegularScrollbar);
+
+ QStyle* style() const;
};
}
diff --git a/src/corelib/codecs/qsimplecodec.cpp b/src/corelib/codecs/qsimplecodec.cpp
index 445565a..4cc7912 100644
--- a/src/corelib/codecs/qsimplecodec.cpp
+++ b/src/corelib/codecs/qsimplecodec.cpp
@@ -681,7 +681,7 @@ QByteArray QSimpleTextCodec::convertFromUnicode(const QChar *in, int length, Con
int u;
const QChar* ucp = in;
unsigned char* rp = (unsigned char *)r.data();
- const unsigned char* rmp = (const unsigned char *)reverseMap->data();
+ const unsigned char* rmp = (const unsigned char *)reverseMap->constData();
int rmsize = (int) reverseMap->size();
while(i--)
{
diff --git a/src/corelib/codecs/qtextcodec.cpp b/src/corelib/codecs/qtextcodec.cpp
index 698ca9e..ff40af5 100644
--- a/src/corelib/codecs/qtextcodec.cpp
+++ b/src/corelib/codecs/qtextcodec.cpp
@@ -79,7 +79,7 @@
# endif
#endif // QT_NO_CODECS
#include "qlocale.h"
-#include "private/qmutexpool_p.h"
+#include "qmutex.h"
#include <stdlib.h>
#include <ctype.h>
@@ -659,13 +659,13 @@ static void setupLocaleMapper()
#endif
}
-
-static void setup()
-{
#ifndef QT_NO_THREAD
- QMutexLocker locker(QMutexPool::globalInstanceGet(&all));
+Q_GLOBAL_STATIC_WITH_ARGS(QMutex, textCodecsMutex, (QMutex::Recursive));
#endif
+// textCodecsMutex need to be locked to enter this function
+static void setup()
+{
if (all)
return;
@@ -903,8 +903,6 @@ QTextCodec::ConverterState::~ConverterState()
*/
/*!
- \nonreentrant
-
Constructs a QTextCodec, and gives it the highest precedence. The
QTextCodec should always be constructed on the heap (i.e. with \c
new). Qt takes ownership and will delete it when the application
@@ -912,6 +910,9 @@ QTextCodec::ConverterState::~ConverterState()
*/
QTextCodec::QTextCodec()
{
+#ifndef QT_NO_THREAD
+ QMutexLocker locker(textCodecsMutex());
+#endif
setup();
all->prepend(this);
}
@@ -929,8 +930,12 @@ QTextCodec::~QTextCodec()
if (!destroying_is_ok)
qWarning("QTextCodec::~QTextCodec: Called by application");
#endif
- if (all)
+ if (all) {
+#ifndef QT_NO_THREAD
+ QMutexLocker locker(textCodecsMutex());
+#endif
all->removeAll(this);
+ }
}
/*!
@@ -951,6 +956,9 @@ QTextCodec *QTextCodec::codecForName(const QByteArray &name)
if (name.isEmpty())
return 0;
+#ifndef QT_NO_THREAD
+ QMutexLocker locker(textCodecsMutex());
+#endif
setup();
for (int i = 0; i < all->size(); ++i) {
@@ -958,8 +966,8 @@ QTextCodec *QTextCodec::codecForName(const QByteArray &name)
if (nameMatch(cursor->name(), name))
return cursor;
QList<QByteArray> aliases = cursor->aliases();
- for (int i = 0; i < aliases.size(); ++i)
- if (nameMatch(aliases.at(i), name))
+ for (int y = 0; y < aliases.size(); ++y)
+ if (nameMatch(aliases.at(y), name))
return cursor;
}
@@ -973,6 +981,9 @@ QTextCodec *QTextCodec::codecForName(const QByteArray &name)
*/
QTextCodec* QTextCodec::codecForMib(int mib)
{
+#ifndef QT_NO_THREAD
+ QMutexLocker locker(textCodecsMutex());
+#endif
setup();
// Qt 3 used 1000 (mib for UCS2) as its identifier for the utf16 codec. Map
@@ -1001,6 +1012,9 @@ QTextCodec* QTextCodec::codecForMib(int mib)
*/
QList<QByteArray> QTextCodec::availableCodecs()
{
+#ifndef QT_NO_THREAD
+ QMutexLocker locker(textCodecsMutex());
+#endif
setup();
QList<QByteArray> codecs;
@@ -1008,6 +1022,11 @@ QList<QByteArray> QTextCodec::availableCodecs()
codecs += all->at(i)->name();
codecs += all->at(i)->aliases();
}
+
+#ifndef QT_NO_THREAD
+ locker.unlock();
+#endif
+
#ifndef QT_NO_TEXTCODECPLUGIN
QFactoryLoader *l = loader();
QStringList keys = l->keys();
@@ -1031,11 +1050,19 @@ QList<QByteArray> QTextCodec::availableCodecs()
*/
QList<int> QTextCodec::availableMibs()
{
+#ifndef QT_NO_THREAD
+ QMutexLocker locker(textCodecsMutex());
+#endif
setup();
QList<int> codecs;
for (int i = 0; i < all->size(); ++i)
codecs += all->at(i)->mibEnum();
+
+#ifndef QT_NO_THREAD
+ locker.unlock();
+#endif
+
#ifndef QT_NO_TEXTCODECPLUGIN
QFactoryLoader *l = loader();
QStringList keys = l->keys();
@@ -1082,6 +1109,9 @@ QTextCodec* QTextCodec::codecForLocale()
if (localeMapper)
return localeMapper;
+#ifndef QT_NO_THREAD
+ QMutexLocker locker(textCodecsMutex());
+#endif
setup();
return localeMapper;
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index b4e19d1..39c41c4 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -1392,7 +1392,8 @@ QGraphicsItem::~QGraphicsItem()
}
delete d_ptr->transformData;
- qt_dataStore()->data.remove(this);
+ if (QGraphicsItemCustomDataStore *dataStore = qt_dataStore())
+ dataStore->data.remove(this);
}
/*!
diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp
index ac1d303..bf6eb8d 100644
--- a/src/gui/image/qicon.cpp
+++ b/src/gui/image/qicon.cpp
@@ -104,6 +104,15 @@ QT_BEGIN_NAMESPACE
static QBasicAtomicInt serialNumCounter = Q_BASIC_ATOMIC_INITIALIZER(1);
+static void qt_cleanup_icon_cache();
+typedef QCache<QString, QIcon> IconCache;
+Q_GLOBAL_STATIC_WITH_INITIALIZER(IconCache, qtIconCache, qAddPostRoutine(qt_cleanup_icon_cache))
+
+static void qt_cleanup_icon_cache()
+{
+ qtIconCache()->clear();
+}
+
QIconPrivate::QIconPrivate()
: engine(0), ref(1),
serialNum(serialNumCounter.fetchAndAddRelaxed(1)),
@@ -963,15 +972,13 @@ QString QIcon::themeName()
*/
QIcon QIcon::fromTheme(const QString &name, const QIcon &fallback)
{
- static QCache <QString, QIcon> iconCache;
-
QIcon icon;
- if (iconCache.contains(name)) {
- icon = *iconCache.object(name);
+ if (qtIconCache()->contains(name)) {
+ icon = *qtIconCache()->object(name);
} else {
QIcon *cachedIcon = new QIcon(new QIconLoaderEngine(name));
- iconCache.insert(name, cachedIcon);
+ qtIconCache()->insert(name, cachedIcon);
icon = *cachedIcon;
}
diff --git a/src/gui/image/qimagereader.cpp b/src/gui/image/qimagereader.cpp
index c9e015c..9320cfc 100644
--- a/src/gui/image/qimagereader.cpp
+++ b/src/gui/image/qimagereader.cpp
@@ -263,25 +263,37 @@ static QImageIOHandler *createReadHandlerHelper(QIODevice *device,
device->seek(pos);
}
- if (!handler && !testFormat.isEmpty() && autoDetectImageFormat && !ignoresFormatAndExtension) {
+ if (!handler && !testFormat.isEmpty() && !ignoresFormatAndExtension) {
// check if any plugin supports the format (they are not allowed to
// read from the device yet).
const qint64 pos = device ? device->pos() : 0;
- for (int i = 0; i < keys.size(); ++i) {
- if (i != suffixPluginIndex) {
- QImageIOPlugin *plugin = qobject_cast<QImageIOPlugin *>(l->instance(keys.at(i)));
- if (plugin && plugin->capabilities(device, testFormat) & QImageIOPlugin::CanRead) {
+
+ if (autoDetectImageFormat) {
+ for (int i = 0; i < keys.size(); ++i) {
+ if (i != suffixPluginIndex) {
+ QImageIOPlugin *plugin = qobject_cast<QImageIOPlugin *>(l->instance(keys.at(i)));
+ if (plugin && plugin->capabilities(device, testFormat) & QImageIOPlugin::CanRead) {
#ifdef QIMAGEREADER_DEBUG
- qDebug() << "QImageReader::createReadHandler: the" << keys.at(i) << "plugin can read this format";
+ qDebug() << "QImageReader::createReadHandler: the" << keys.at(i) << "plugin can read this format";
#endif
- handler = plugin->create(device, testFormat);
- break;
+ handler = plugin->create(device, testFormat);
+ break;
+ }
}
}
+ } else {
+ QImageIOPlugin *plugin = qobject_cast<QImageIOPlugin *>(l->instance(QLatin1String(testFormat)));
+ if (plugin && plugin->capabilities(device, testFormat) & QImageIOPlugin::CanRead) {
+#ifdef QIMAGEREADER_DEBUG
+ qDebug() << "QImageReader::createReadHandler: the" << testFormat << "plugin can read this format";
+#endif
+ handler = plugin->create(device, testFormat);
+ }
}
if (device && !device->isSequential())
device->seek(pos);
}
+
#endif // QT_NO_LIBRARY
// if we don't have a handler yet, check if we have built-in support for
diff --git a/src/gui/image/qpixmapfilter.cpp b/src/gui/image/qpixmapfilter.cpp
index 37a6a18..7cf942c 100644
--- a/src/gui/image/qpixmapfilter.cpp
+++ b/src/gui/image/qpixmapfilter.cpp
@@ -422,6 +422,9 @@ void QPixmapConvolutionFilter::draw(QPainter *painter, const QPointF &p, const Q
if(d->kernelWidth<=0 || d->kernelHeight <= 0)
return;
+ if (src.isNull())
+ return;
+
QPixmapFilter *filter = painter->paintEngine() && painter->paintEngine()->isExtended() ?
static_cast<QPaintEngineEx *>(painter->paintEngine())->pixmapFilter(type(), this) : 0;
QPixmapConvolutionFilter *convolutionFilter = static_cast<QPixmapConvolutionFilter*>(filter);
@@ -902,6 +905,9 @@ void QPixmapBlurFilter::draw(QPainter *painter, const QPointF &p, const QPixmap
if (!painter->isActive())
return;
+ if (src.isNull())
+ return;
+
QRectF srcRect = rect;
if (srcRect.isNull())
srcRect = src.rect();
@@ -1082,6 +1088,10 @@ void QPixmapColorizeFilter::setStrength(qreal strength)
void QPixmapColorizeFilter::draw(QPainter *painter, const QPointF &dest, const QPixmap &src, const QRectF &srcRect) const
{
Q_D(const QPixmapColorizeFilter);
+
+ if (src.isNull())
+ return;
+
QPixmapFilter *filter = painter->paintEngine() && painter->paintEngine()->isExtended() ?
static_cast<QPaintEngineEx *>(painter->paintEngine())->pixmapFilter(type(), this) : 0;
QPixmapColorizeFilter *colorizeFilter = static_cast<QPixmapColorizeFilter*>(filter);
@@ -1312,6 +1322,10 @@ void QPixmapDropShadowFilter::draw(QPainter *p,
const QRectF &src) const
{
Q_D(const QPixmapDropShadowFilter);
+
+ if (px.isNull())
+ return;
+
QPixmapFilter *filter = p->paintEngine() && p->paintEngine()->isExtended() ?
static_cast<QPaintEngineEx *>(p->paintEngine())->pixmapFilter(type(), this) : 0;
QPixmapDropShadowFilter *dropShadowFilter = static_cast<QPixmapDropShadowFilter*>(filter);
diff --git a/src/gui/inputmethod/qcoefepinputcontext_p.h b/src/gui/inputmethod/qcoefepinputcontext_p.h
index f5034fc..d5243c3 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_p.h
+++ b/src/gui/inputmethod/qcoefepinputcontext_p.h
@@ -96,7 +96,7 @@ protected:
void timerEvent(QTimerEvent *timerEvent);
private:
- void commitCurrentString(bool triggeredBySymbian);
+ void commitCurrentString(bool cancelFepTransaction);
void updateHints(bool mustUpdateInputCapabilities);
void applyHints(Qt::InputMethodHints hints);
void applyFormat(QList<QInputMethodEvent::Attribute> *attributes);
@@ -127,7 +127,7 @@ public:
private:
void DoCommitFepInlineEditL();
MCoeFepAwareTextEditor_Extension1* Extension1(TBool& aSetToTrue);
- void ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateEvent aEventType);
+ void ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateEvent aEventType);
// From MCoeFepAwareTextEditor_Extension1
public:
@@ -151,7 +151,6 @@ private:
int m_inlinePosition;
MFepInlineTextFormatRetriever *m_formatRetriever;
MFepPointerEventHandlerDuringInlineEdit *m_pointerHandler;
- int m_longPress;
int m_cursorPos;
QBasicTimer m_tempPreeditStringTimeout;
bool m_hasTempPreeditString;
diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
index e5ab300..2b91711 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
+++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
@@ -71,7 +71,6 @@ QCoeFepInputContext::QCoeFepInputContext(QObject *parent)
m_inlinePosition(0),
m_formatRetriever(0),
m_pointerHandler(0),
- m_longPress(0),
m_cursorPos(0),
m_hasTempPreeditString(false)
{
@@ -101,7 +100,7 @@ QCoeFepInputContext::~QCoeFepInputContext()
void QCoeFepInputContext::reset()
{
- commitCurrentString(false);
+ commitCurrentString(true);
}
void QCoeFepInputContext::ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateEvent aEventType)
@@ -126,7 +125,7 @@ void QCoeFepInputContext::update()
void QCoeFepInputContext::setFocusWidget(QWidget *w)
{
- commitCurrentString(false);
+ commitCurrentString(true);
QInputContext::setFocusWidget(w);
@@ -219,7 +218,7 @@ bool QCoeFepInputContext::filterEvent(const QEvent *event)
break;
case Qt::Key_Select:
if (!m_preeditString.isEmpty()) {
- commitCurrentString(false);
+ commitCurrentString(true);
return true;
}
break;
@@ -231,10 +230,11 @@ bool QCoeFepInputContext::filterEvent(const QEvent *event)
&& focusWidget()->inputMethodHints() & Qt::ImhHiddenText
&& !keyEvent->text().isEmpty()) {
// Send some temporary preedit text in order to make text visible for a moment.
+ m_cursorPos = focusWidget()->inputMethodQuery(Qt::ImCursorPosition).toInt();
m_preeditString = keyEvent->text();
QList<QInputMethodEvent::Attribute> attributes;
QInputMethodEvent imEvent(m_preeditString, attributes);
- QApplication::sendEvent(focusWidget(), &imEvent);
+ sendEvent(imEvent);
m_tempPreeditStringTimeout.start(1000, this);
m_hasTempPreeditString = true;
update();
@@ -293,7 +293,7 @@ void QCoeFepInputContext::mouseHandler( int x, QMouseEvent *event)
Q_ASSERT(focusWidget());
if (event->type() == QEvent::MouseButtonPress && event->button() == Qt::LeftButton) {
- commitCurrentString(false);
+ commitCurrentString(true);
int pos = focusWidget()->inputMethodQuery(Qt::ImCursorPosition).toInt();
QList<QInputMethodEvent::Attribute> attributes;
@@ -739,31 +739,33 @@ void QCoeFepInputContext::GetScreenCoordinatesForFepL(TPoint& aLeftSideOfBaseLin
void QCoeFepInputContext::DoCommitFepInlineEditL()
{
- commitCurrentString(true);
+ commitCurrentString(false);
}
-void QCoeFepInputContext::commitCurrentString(bool triggeredBySymbian)
+void QCoeFepInputContext::commitCurrentString(bool cancelFepTransaction)
{
+ int longPress = 0;
+
if (m_preeditString.size() == 0) {
QWidget *w = focusWidget();
- if (triggeredBySymbian && w) {
+ if (!cancelFepTransaction && w) {
// We must replace the last character only if the input box has already accepted one
if (w->inputMethodQuery(Qt::ImCursorPosition).toInt() != m_cursorPos)
- m_longPress = 1;
+ longPress = 1;
}
return;
}
QList<QInputMethodEvent::Attribute> attributes;
QInputMethodEvent event(QLatin1String(""), attributes);
- event.setCommitString(m_preeditString, 0-m_longPress, m_longPress);
+ event.setCommitString(m_preeditString, 0-longPress, longPress);
m_preeditString.clear();
sendEvent(event);
m_hasTempPreeditString = false;
- m_longPress = 0;
+ longPress = 0;
- if (!triggeredBySymbian) {
+ if (cancelFepTransaction) {
CCoeFep* fep = CCoeEnv::Static()->Fep();
if (fep)
fep->CancelTransaction();
diff --git a/src/gui/itemviews/qlistview.cpp b/src/gui/itemviews/qlistview.cpp
index 19b1e8c..b2def39 100644
--- a/src/gui/itemviews/qlistview.cpp
+++ b/src/gui/itemviews/qlistview.cpp
@@ -2160,7 +2160,7 @@ void QListModeViewBase::scrollContentsBy(int dx, int dy, bool scrollElasticBand)
} else {
if (flowPositions.isEmpty())
return;
- const int max = flowPositions.count() - 1;
+ const int max = scrollValueMap.count() - 1;
if (vertical && flow() == QListView::TopToBottom && dy != 0) {
int currentValue = qBound(0, verticalValue, max);
int previousValue = qBound(0, currentValue + dy, max);
diff --git a/src/gui/kernel/qaction.cpp b/src/gui/kernel/qaction.cpp
index 4b7d949..8ddd051 100644
--- a/src/gui/kernel/qaction.cpp
+++ b/src/gui/kernel/qaction.cpp
@@ -715,6 +715,10 @@ QActionGroup *QAction::actionGroup() const
it is displayed to the left of the menu text. There is no default
icon.
+ On Symbian the icons which are passed to softkeys, i.e. to actions with
+ softkey role, need to have pixmap alpha channel correctly set otherwise
+ drawing artifacts will appear when softkey is pressed down.
+
If a null icon (QIcon::isNull() is passed into this function,
the icon of the action is cleared.
*/
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index 6e03d7c..bf3ad71 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -809,12 +809,15 @@ TCoeInputCapabilities QSymbianControl::InputCapabilities() const
void QSymbianControl::Draw(const TRect& controlRect) const
{
// Set flag to avoid calling DrawNow in window surface
- QWExtra *extra = qwidget->d_func()->extraData();
- if (extra && !extra->inExpose) {
- extra->inExpose = true;
+ QWidget *window = qwidget->window();
+ Q_ASSERT(window);
+ QTLWExtra *topExtra = window->d_func()->maybeTopData();
+ Q_ASSERT(topExtra);
+ if (!topExtra->inExpose) {
+ topExtra->inExpose = true;
QRect exposeRect = qt_TRect2QRect(controlRect);
qwidget->d_func()->syncBackingStore(exposeRect);
- extra->inExpose = false;
+ topExtra->inExpose = false;
}
QWindowSurface *surface = qwidget->windowSurface();
@@ -924,8 +927,8 @@ void QSymbianControl::PositionChanged()
cr.moveTopLeft(newPos);
qwidget->data->crect = cr;
QTLWExtra *top = qwidget->d_func()->maybeTopData();
- if (top)
- top->normalGeometry = cr;
+ if (top && (qwidget->windowState() & (~Qt::WindowActive)) == Qt::WindowNoState)
+ top->normalGeometry.moveTopLeft(newPos);
if (qwidget->isVisible()) {
QMoveEvent e(newPos, oldPos);
qt_sendSpontaneousEvent(qwidget, &e);
@@ -960,15 +963,14 @@ void QSymbianControl::FocusChanged(TDrawNow /* aDrawNow */)
qwidget->d_func()->setWindowIcon_sys(true);
qwidget->d_func()->setWindowTitle_sys(qwidget->windowTitle());
#ifdef Q_WS_S60
- // If widget is fullscreen, hide status pane and button container
- // otherwise show them.
+ // If widget is fullscreen/minimized, hide status pane and button container otherwise show them.
CEikStatusPane* statusPane = S60->statusPane();
CEikButtonGroupContainer* buttonGroup = S60->buttonGroupContainer();
- bool isFullscreen = qwidget->windowState() & Qt::WindowFullScreen;
- if (statusPane && (bool)statusPane->IsVisible() == isFullscreen)
- statusPane->MakeVisible(!isFullscreen);
- if (buttonGroup && (bool)buttonGroup->IsVisible() == isFullscreen)
- buttonGroup->MakeVisible(!isFullscreen);
+ TBool visible = !(qwidget->windowState() & (Qt::WindowFullScreen | Qt::WindowMinimized));
+ if (statusPane)
+ statusPane->MakeVisible(visible);
+ if (buttonGroup)
+ buttonGroup->MakeVisible(visible);
#endif
} else if (QApplication::activeWindow() == qwidget->window()) {
if (CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog()) {
diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp
index 3355272..0a4869b 100644
--- a/src/gui/kernel/qapplication_win.cpp
+++ b/src/gui/kernel/qapplication_win.cpp
@@ -928,7 +928,11 @@ const QString qt_reg_winclass(QWidget *w) // register window class
uint style;
bool icon;
QString cname;
- if (flags & Qt::MSWindowsOwnDC) {
+ if (qt_widget_private(w)->isGLWidget) {
+ cname = QLatin1String("QGLWidget");
+ style = CS_DBLCLKS;
+ icon = true;
+ } else if (flags & Qt::MSWindowsOwnDC) {
cname = QLatin1String("QWidgetOwnDC");
style = CS_DBLCLKS;
#ifndef Q_WS_WINCE
@@ -1021,7 +1025,7 @@ const QString qt_reg_winclass(QWidget *w) // register window class
}
wc.hCursor = 0;
#ifndef Q_WS_WINCE
- wc.hbrBackground = (HBRUSH)GetSysColorBrush(COLOR_WINDOW);
+ wc.hbrBackground = qt_widget_private(w)->isGLWidget ? 0 : (HBRUSH)GetSysColorBrush(COLOR_WINDOW);
#else
wc.hbrBackground = 0;
#endif
@@ -3616,13 +3620,19 @@ bool QETWidget::translatePaintEvent(const MSG &msg)
return true;
setAttribute(Qt::WA_PendingUpdate, false);
- const QRegion dirtyInBackingStore(qt_dirtyRegion(this));
- // Make sure the invalidated region contains the region we're about to repaint.
- // BeginPaint will set the clip to the invalidated region and it is impossible
- // to enlarge it afterwards (only shrink it). Using GetDCEx is not suffient
- // as it may return an invalid context (especially on Windows Vista).
- if (!dirtyInBackingStore.isEmpty())
- InvalidateRgn(internalWinId(), dirtyInBackingStore.handle(), false);
+
+ if (d_func()->isGLWidget) {
+ if (d_func()->usesDoubleBufferedGLContext)
+ InvalidateRect(internalWinId(), 0, false);
+ } else {
+ const QRegion dirtyInBackingStore(qt_dirtyRegion(this));
+ // Make sure the invalidated region contains the region we're about to repaint.
+ // BeginPaint will set the clip to the invalidated region and it is impossible
+ // to enlarge it afterwards (only shrink it). Using GetDCEx is not suffient
+ // as it may return an invalid context (especially on Windows Vista).
+ if (!dirtyInBackingStore.isEmpty())
+ InvalidateRgn(internalWinId(), dirtyInBackingStore.handle(), false);
+ }
PAINTSTRUCT ps;
d_func()->hd = BeginPaint(internalWinId(), &ps);
diff --git a/src/gui/kernel/qkeymapper_x11.cpp b/src/gui/kernel/qkeymapper_x11.cpp
index 70574e7..4e6c847 100644
--- a/src/gui/kernel/qkeymapper_x11.cpp
+++ b/src/gui/kernel/qkeymapper_x11.cpp
@@ -360,6 +360,13 @@ QList<int> QKeyMapperPrivate::possibleKeysXKB(QKeyEvent *event)
if (code && code < 0xfffe)
code = QChar(code).toUpper().unicode();
+
+ if (code == Qt::Key_Tab && (baseModifiers & Qt::ShiftModifier)) {
+ // map shift+tab to shift+backtab
+ code = Qt::Key_Backtab;
+ text = QString();
+ }
+
if (code == baseCode)
continue;
@@ -448,6 +455,13 @@ QList<int> QKeyMapperPrivate::possibleKeysCore(QKeyEvent *event)
if (code && code < 0xfffe)
code = QChar(code).toUpper().unicode();
+
+ if (code == Qt::Key_Tab && (baseModifiers & Qt::ShiftModifier)) {
+ // map shift+tab to shift+backtab
+ code = Qt::Key_Backtab;
+ text = QString();
+ }
+
if (code == baseCode)
continue;
diff --git a/src/gui/kernel/qsoftkeymanager_s60.cpp b/src/gui/kernel/qsoftkeymanager_s60.cpp
index a72d16c..af84a8f 100644
--- a/src/gui/kernel/qsoftkeymanager_s60.cpp
+++ b/src/gui/kernel/qsoftkeymanager_s60.cpp
@@ -237,21 +237,18 @@ bool QSoftKeyManagerPrivateS60::setSoftkeyImage(CEikButtonGroupContainer *cba,
// prepareSoftkeyPixmap creates a new pixmap with requiredIconSize and blits the 'pmWihtAspectRatio'
// to correct location of it
QPixmap softkeyPixmap = prepareSoftkeyPixmap(pmWihtAspectRatio, position, requiredIconSize);
- QBitmap softkeyMask = softkeyPixmap.mask();
- if (softkeyMask.isNull()) {
- softkeyMask = QBitmap(softkeyPixmap.size());
- softkeyMask.fill(Qt::color1);
- }
- // Softkey mask in > SV_S60_5_1 has to be inverted
- if(QSysInfo::s60Version() > QSysInfo::SV_S60_5_1) {
- QImage maskImage = softkeyMask.toImage();
- maskImage.invertPixels();
- softkeyMask = QPixmap::fromImage(maskImage);
+ QPixmap softkeyAlpha = softkeyPixmap.alphaChannel();
+ // Alpha channel in 5.1 and older devices need to be inverted
+ // TODO: Switch to use toSymbianCFbsBitmap with invert when available
+ if(QSysInfo::s60Version() <= QSysInfo::SV_S60_5_1) {
+ QImage alphaImage = softkeyAlpha.toImage();
+ alphaImage.invertPixels();
+ softkeyAlpha = QPixmap::fromImage(alphaImage);
}
CFbsBitmap* nBitmap = softkeyPixmap.toSymbianCFbsBitmap();
- CFbsBitmap* nMask = softkeyMask.toSymbianCFbsBitmap();
+ CFbsBitmap* nMask = softkeyAlpha.toSymbianCFbsBitmap();
CEikImage* myimage = new (ELeave) CEikImage;
myimage->SetPicture( nBitmap, nMask ); // nBitmap and nMask ownership transfered
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index c072d9d..2a19d23 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -192,6 +192,7 @@ QWidgetPrivate::QWidgetPrivate(int version)
, inDirtyList(0)
, isScrolled(0)
, isMoved(0)
+ , isGLWidget(0)
, usesDoubleBufferedGLContext(0)
#if defined(Q_WS_X11)
, picture(0)
@@ -200,7 +201,6 @@ QWidgetPrivate::QWidgetPrivate(int version)
, nativeGesturePanEnabled(0)
#elif defined(Q_WS_MAC)
, needWindowChange(0)
- , isGLWidget(0)
, window_event(0)
, qd_hd(0)
#endif
diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h
index b1eb3c3..b421d30 100644
--- a/src/gui/kernel/qwidget_p.h
+++ b/src/gui/kernel/qwidget_p.h
@@ -173,6 +173,8 @@ struct QTLWExtra {
#ifndef QT_NO_QWS_MANAGER
QWSManager *qwsManager;
#endif
+#elif defined(Q_OS_SYMBIAN)
+ uint inExpose : 1; // Prevents drawing recursion
#endif
};
@@ -229,7 +231,6 @@ struct QWExtra {
#endif
#elif defined(Q_OS_SYMBIAN) // <----------------------------------------------------- Symbian
uint activated : 1; // RWindowBase::Activated has been called
- uint inExpose : 1; // Prevents drawing recursion
/**
* Defines the behaviour of QSymbianControl::Draw.
@@ -682,6 +683,7 @@ public:
uint inDirtyList : 1;
uint isScrolled : 1;
uint isMoved : 1;
+ uint isGLWidget : 1;
uint usesDoubleBufferedGLContext : 1;
// *************************** Platform specific ************************************
@@ -713,7 +715,6 @@ public:
#elif defined(Q_WS_MAC) // <--------------------------------------------------------- MAC
// This is new stuff
uint needWindowChange : 1;
- uint isGLWidget : 1;
// Each wiget keeps a list of all its child and grandchild OpenGL widgets.
// This list is used to update the gl context whenever a parent and a granparent
diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp
index 0ce7534..ebd289c 100644
--- a/src/gui/kernel/qwidget_s60.cpp
+++ b/src/gui/kernel/qwidget_s60.cpp
@@ -878,6 +878,7 @@ void QWidgetPrivate::registerDropSite(bool /* on */)
void QWidgetPrivate::createTLSysExtra()
{
extra->topextra->backingStore = 0;
+ extra->topextra->inExpose = 0;
}
void QWidgetPrivate::deleteTLSysExtra()
@@ -891,7 +892,6 @@ void QWidgetPrivate::createSysExtra()
extra->activated = 0;
extra->nativePaintMode = QWExtra::Default;
extra->receiveNativePaintEvents = 0;
- extra->inExpose = 0;
}
void QWidgetPrivate::deleteSysExtra()
@@ -1046,96 +1046,48 @@ void QWidget::setWindowState(Qt::WindowStates newstate)
return;
if (isWindow()) {
-#ifdef Q_WS_S60
- // Change window decoration visibility if switching to or from fullsccreen
- // In addition decoration visibility is changed when the initial has been
- // WindowNoState.
- // The window decoration visibility has to be changed before doing actual
- // window state change since in that order the availableGeometry will return
- // directly the right size and we will avoid unnecessarty redraws
- if ((oldstate & Qt::WindowFullScreen) != (newstate & Qt::WindowFullScreen) ||
- oldstate == Qt::WindowNoState) {
- CEikStatusPane* statusPane = S60->statusPane();
- CEikButtonGroupContainer* buttonGroup = S60->buttonGroupContainer();
- if (newstate & Qt::WindowFullScreen) {
- if (statusPane)
- statusPane->MakeVisible(false);
- if (buttonGroup)
- buttonGroup->MakeVisible(false);
- } else {
- if (statusPane)
- statusPane->MakeVisible(true);
- if (buttonGroup)
- buttonGroup->MakeVisible(true);
- }
+ QSymbianControl *window = static_cast<QSymbianControl *>(effectiveWinId());
+ if (window && newstate & Qt::WindowMinimized) {
+ window->setFocusSafely(false);
+ window->MakeVisible(false);
+ } else if (window && oldstate & Qt::WindowMinimized) {
+ window->setFocusSafely(true);
+ window->MakeVisible(true);
}
+
+#ifdef Q_WS_S60
+ // Hide window decoration when switching to fullsccreen / minimized otherwise show decoration.
+ // The window decoration visibility has to be changed before doing actual window state
+ // change since in that order the availableGeometry will return directly the right size and
+ // we will avoid unnecessarty redraws
+ CEikStatusPane* statusPane = S60->statusPane();
+ CEikButtonGroupContainer* buttonGroup = S60->buttonGroupContainer();
+ TBool visible = !(newstate & (Qt::WindowFullScreen | Qt::WindowMinimized));
+ if (statusPane)
+ statusPane->MakeVisible(visible);
+ if (buttonGroup)
+ buttonGroup->MakeVisible(visible);
#endif // Q_WS_S60
createWinId();
Q_ASSERT(testAttribute(Qt::WA_WState_Created));
- QTLWExtra *top = d->topData();
-
// Ensure the initial size is valid, since we store it as normalGeometry below.
if (!testAttribute(Qt::WA_Resized) && !isVisible())
adjustSize();
- if ((oldstate & Qt::WindowMaximized) != (newstate & Qt::WindowMaximized)) {
- if ((newstate & Qt::WindowMaximized)) {
- const QRect normalGeometry = geometry();
+ QTLWExtra *top = d->topData();
+ const QRect normalGeometry = (top->normalGeometry.width() < 0) ? geometry() : top->normalGeometry;
- const QRect r = top->normalGeometry;
- setGeometry(qApp->desktop()->availableGeometry(this));
- top->normalGeometry = r;
+ if (newstate & Qt::WindowFullScreen)
+ setGeometry(qApp->desktop()->screenGeometry(this));
+ else if (newstate & Qt::WindowMaximized)
+ setGeometry(qApp->desktop()->availableGeometry(this));
+ else
+ setGeometry(normalGeometry);
- if (top->normalGeometry.width() < 0)
- top->normalGeometry = normalGeometry;
- } else {
- // restore original geometry
- setGeometry(top->normalGeometry);
- }
- }
- if ((oldstate & Qt::WindowFullScreen) != (newstate & Qt::WindowFullScreen)) {
- if (newstate & Qt::WindowFullScreen) {
- const QRect normalGeometry = geometry();
- const QRect r = top->normalGeometry;
- setGeometry(qApp->desktop()->screenGeometry(this));
-
- top->normalGeometry = r;
- if (top->normalGeometry.width() < 0)
- top->normalGeometry = normalGeometry;
- } else {
- if (newstate & Qt::WindowMaximized) {
- const QRect r = top->normalGeometry;
- setGeometry(qApp->desktop()->availableGeometry(this));
- top->normalGeometry = r;
- } else {
- setGeometry(top->normalGeometry);
- }
- }
- }
- if ((oldstate & Qt::WindowMinimized) != (newstate & Qt::WindowMinimized)) {
- if (newstate & Qt::WindowMinimized) {
- if (isVisible()) {
- QSymbianControl *id = static_cast<QSymbianControl *>(effectiveWinId());
- if (id->IsFocused()) // Avoid unnecessary calls to FocusChanged()
- id->setFocusSafely(false);
- id->MakeVisible(false);
- }
- } else {
- if (isVisible()) {
- QSymbianControl *id = static_cast<QSymbianControl *>(effectiveWinId());
- id->MakeVisible(true);
- if (!id->IsFocused()) // Avoid unnecessary calls to FocusChanged()
- id->setFocusSafely(true);
- }
- const QRect normalGeometry = geometry();
- const QRect r = top->normalGeometry;
- top->normalGeometry = r;
- if (top->normalGeometry.width() < 0)
- top->normalGeometry = normalGeometry;
- }
- }
+ //restore normal geometry
+ top->normalGeometry = normalGeometry;
}
data->window_state = newstate;
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index 194dda3..7a3da20 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -1267,32 +1267,28 @@ static const uint L2CacheLineLengthInInts = L2CacheLineLength/sizeof(uint);
result = 0
d = d * cia
*/
+#define comp_func_Clear_impl(dest, length, const_alpha)\
+{\
+ if (const_alpha == 255) {\
+ QT_MEMFILL_UINT(dest, length, 0);\
+ } else {\
+ int ialpha = 255 - const_alpha;\
+ PRELOAD_INIT(dest)\
+ for (int i = 0; i < length; ++i) {\
+ PRELOAD_COND(dest)\
+ dest[i] = BYTE_MUL(dest[i], ialpha);\
+ }\
+ }\
+}
+
static void QT_FASTCALL comp_func_solid_Clear(uint *dest, int length, uint, uint const_alpha)
{
- if (const_alpha == 255) {
- QT_MEMFILL_UINT(dest, length, 0);
- } else {
- int ialpha = 255 - const_alpha;
- PRELOAD_INIT(dest)
- for (int i = 0; i < length; ++i) {
- PRELOAD_COND(dest)
- dest[i] = BYTE_MUL(dest[i], ialpha);
- }
- }
+ comp_func_Clear_impl(dest, length, const_alpha);
}
static void QT_FASTCALL comp_func_Clear(uint *dest, const uint *, int length, uint const_alpha)
{
- if (const_alpha == 255) {
- QT_MEMFILL_UINT(dest, length, 0);
- } else {
- int ialpha = 255 - const_alpha;
- PRELOAD_INIT(dest)
- for (int i = 0; i < length; ++i) {
- PRELOAD_COND(dest)
- dest[i] = BYTE_MUL(dest[i], ialpha);
- }
- }
+ comp_func_Clear_impl(dest, length, const_alpha);
}
/*
@@ -2408,7 +2404,11 @@ static inline int soft_light_op(int dst, int src, int da, int sa)
else if (4 * dst <= da)
return (dst * sa * 255 + da * (src2 - sa) * ((((16 * dst_np - 12 * 255) * dst_np + 3 * 65025) * dst_np) / 65025) + temp) / 65025;
else {
+# ifdef Q_CC_RVCT // needed to avoid compiler crash in RVCT 2.2
+ return (dst * sa * 255 + da * (src2 - sa) * (qIntSqrtInt(dst_np * 255) - dst_np) + temp) / 65025;
+# else
return (dst * sa * 255 + da * (src2 - sa) * (int(sqrt(qreal(dst_np * 255))) - dst_np) + temp) / 65025;
+# endif
}
}
diff --git a/src/gui/painting/qdrawhelper_mmx_p.h b/src/gui/painting/qdrawhelper_mmx_p.h
index 8482262..59b3804 100644
--- a/src/gui/painting/qdrawhelper_mmx_p.h
+++ b/src/gui/painting/qdrawhelper_mmx_p.h
@@ -146,36 +146,30 @@ struct QMMXCommonIntrinsics
result = 0
d = d * cia
*/
+#define comp_func_Clear_impl(dest, length, const_alpha)\
+{\
+ if (const_alpha == 255) {\
+ qt_memfill(static_cast<quint32*>(dest), quint32(0), length);\
+ } else {\
+ C_FF; C_80; C_00;\
+ m64 ia = MM::negate(MM::load_alpha(const_alpha));\
+ for (int i = 0; i < length; ++i) {\
+ dest[i] = MM::store(MM::byte_mul(MM::load(dest[i]), ia));\
+ }\
+ MM::end();\
+ }\
+}
+
template <class MM>
static void QT_FASTCALL comp_func_solid_Clear(uint *dest, int length, uint, uint const_alpha)
{
- if (!length)
- return;
-
- if (const_alpha == 255) {
- qt_memfill(static_cast<quint32*>(dest), quint32(0), length);
- } else {
- C_FF; C_80; C_00;
- m64 ia = MM::negate(MM::load_alpha(const_alpha));
- for (int i = 0; i < length; ++i) {
- dest[i] = MM::store(MM::byte_mul(MM::load(dest[i]), ia));
- }
- }
- MM::end();
+ comp_func_Clear_impl(dest, length, const_alpha);
}
template <class MM>
static void QT_FASTCALL comp_func_Clear(uint *dest, const uint *, int length, uint const_alpha)
{
- if (const_alpha == 255) {
- qt_memfill(static_cast<quint32*>(dest), quint32(0), length);
- } else {
- C_FF; C_80; C_00;
- m64 ia = MM::negate(MM::load_alpha(const_alpha));
- for (int i = 0; i < length; ++i)
- dest[i] = MM::store(MM::byte_mul(MM::load(dest[i]), ia));
- }
- MM::end();
+ comp_func_Clear_impl(dest, length, const_alpha);
}
/*
@@ -246,7 +240,10 @@ static void QT_FASTCALL comp_func_SourceOver(uint *dest, const uint *src, int le
C_FF; C_80; C_00;
if (const_alpha == 255) {
for (int i = 0; i < length; ++i) {
- if ((0xff000000 & src[i]) == 0xff000000) {
+ const uint alphaMaskedSource = 0xff000000 & src[i];
+ if (alphaMaskedSource == 0)
+ continue;
+ if (alphaMaskedSource == 0xff000000) {
dest[i] = src[i];
} else {
m64 s = MM::load(src[i]);
@@ -257,6 +254,8 @@ static void QT_FASTCALL comp_func_SourceOver(uint *dest, const uint *src, int le
} else {
m64 ca = MM::load_alpha(const_alpha);
for (int i = 0; i < length; ++i) {
+ if ((0xff000000 & src[i]) == 0)
+ continue;
m64 s = MM::byte_mul(MM::load(src[i]), ca);
m64 ia = MM::negate(MM::alpha(s));
dest[i] = MM::store(MM::add(s, MM::byte_mul(MM::load(dest[i]), ia)));
diff --git a/src/gui/painting/qdrawhelper_p.h b/src/gui/painting/qdrawhelper_p.h
index 6c47aac..cb0db4f 100644
--- a/src/gui/painting/qdrawhelper_p.h
+++ b/src/gui/painting/qdrawhelper_p.h
@@ -1549,6 +1549,9 @@ template<> inline void qt_memfill(quint8 *dest, quint8 color, int count)
template <class T>
inline void qt_memfill(T *dest, T value, int count)
{
+ if (!count)
+ return;
+
int n = (count + 7) / 8;
switch (count & 0x07)
{
diff --git a/src/gui/painting/qmath_p.h b/src/gui/painting/qmath_p.h
index cd9f5ea..8a5f5ab 100644
--- a/src/gui/painting/qmath_p.h
+++ b/src/gui/painting/qmath_p.h
@@ -54,6 +54,7 @@
//
#include <math.h>
+#include <qmath.h>
QT_BEGIN_NAMESPACE
@@ -61,6 +62,11 @@ static const qreal Q_PI = qreal(3.14159265358979323846); // pi
static const qreal Q_2PI = qreal(6.28318530717958647693); // 2*pi
static const qreal Q_PI2 = qreal(1.57079632679489661923); // pi/2
+inline int qIntSqrtInt(int v)
+{
+ return static_cast<int>(qSqrt(static_cast<qreal>(v)));
+}
+
QT_END_NAMESPACE
#endif // QMATH_P_H
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 0d47260..c2e2fef 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -1988,12 +1988,25 @@ QPaintEngine *QPainter::paintEngine() const
endNativePainting().
Note that only the states the underlying paint engine changes will be reset
- to their respective default states. If, for example, the OpenGL polygon
- mode is changed by the user inside a beginNativePaint()/endNativePainting()
- block, it will not be reset to the default state by endNativePainting().
+ to their respective default states. The states we reset may change from
+ release to release. The following states are currently reset in the OpenGL
+ 2 engine:
- Here is an example that shows intermixing of painter commands
- and raw OpenGL commands:
+ \list
+ \i blending is disabled
+ \i the depth, stencil and scissor tests are disabled
+ \i the active texture unit is reset to 0
+ \i the depth mask, depth function and the clear depth are reset to their
+ default values
+ \i the stencil mask, stencil operation and stencil function are reset to
+ their default values
+ \i the current color is reset to solid white
+ \endlist
+
+ If, for example, the OpenGL polygon mode is changed by the user inside a
+ beginNativePaint()/endNativePainting() block, it will not be reset to the
+ default state by endNativePainting(). Here is an example that shows
+ intermixing of painter commands and raw OpenGL commands:
\snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 21
diff --git a/src/gui/painting/qwindowsurface_s60.cpp b/src/gui/painting/qwindowsurface_s60.cpp
index b41dc2c..6cbf3d9 100644
--- a/src/gui/painting/qwindowsurface_s60.cpp
+++ b/src/gui/painting/qwindowsurface_s60.cpp
@@ -145,12 +145,15 @@ QImage* QS60WindowSurface::buffer(const QWidget *widget)
void QS60WindowSurface::flush(QWidget *widget, const QRegion &region, const QPoint &)
{
- QWExtra *extra = widget->d_func()->extraData();
- if (extra && !extra->inExpose) {
- extra->inExpose = true; // Prevent DrawNow() from calling syncBackingStore() again
+ QWidget *window = widget->window();
+ Q_ASSERT(window);
+ QTLWExtra *topExtra = window->d_func()->maybeTopData();
+ Q_ASSERT(topExtra);
+ if (!topExtra->inExpose) {
+ topExtra->inExpose = true; // Prevent DrawNow() from calling syncBackingStore() again
TRect tr = qt_QRect2TRect(region.boundingRect());
widget->winId()->DrawNow(tr);
- extra->inExpose = false;
+ topExtra->inExpose = false;
}
}
diff --git a/src/gui/text/qfontdatabase_s60.cpp b/src/gui/text/qfontdatabase_s60.cpp
index f8de08f..7e5397d 100644
--- a/src/gui/text/qfontdatabase_s60.cpp
+++ b/src/gui/text/qfontdatabase_s60.cpp
@@ -246,8 +246,8 @@ static void initializeDb()
QSymbianFbsHeapLock lock(QSymbianFbsHeapLock::Unlock);
const int numTypeFaces = QS60Data::screenDevice()->NumTypefaces();
- const QFontDatabaseS60StoreImplementation *store = dynamic_cast<const QFontDatabaseS60StoreImplementation*>(db->s60Store);
- Q_ASSERT(store);
+ const QFontDatabaseS60StoreImplementation *store =
+ static_cast<const QFontDatabaseS60StoreImplementation*>(db->s60Store);
bool fontAdded = false;
for (int i = 0; i < numTypeFaces; i++) {
TTypefaceSupport typefaceSupport;
@@ -258,8 +258,7 @@ static void initializeDb()
continue;
if (font->TypeUid() == KCFbsFontUid) {
TOpenFontFaceAttrib faceAttrib;
- const CFbsFont *cfbsFont = dynamic_cast<const CFbsFont *>(font);
- Q_ASSERT(cfbsFont);
+ const CFbsFont *cfbsFont = static_cast<const CFbsFont *>(font);
cfbsFont->GetFaceAttrib(faceAttrib);
QtFontStyle::Key styleKey;
@@ -390,8 +389,8 @@ QFontEngine *QFontDatabase::findFont(int script, const QFontPrivate *, const QFo
QFontDef request = req;
request.family = fontFamily;
#if defined(QT_NO_FREETYPE)
- const QFontDatabaseS60StoreImplementation *store = dynamic_cast<const QFontDatabaseS60StoreImplementation*>(db->s60Store);
- Q_ASSERT(store);
+ const QFontDatabaseS60StoreImplementation *store =
+ static_cast<const QFontDatabaseS60StoreImplementation*>(db->s60Store);
const QFontEngineS60Extensions *extension = store->extension(fontFamily);
fe = new QFontEngineS60(request, extension);
#else
diff --git a/src/gui/widgets/qabstractslider.cpp b/src/gui/widgets/qabstractslider.cpp
index defebb9..73c17db 100644
--- a/src/gui/widgets/qabstractslider.cpp
+++ b/src/gui/widgets/qabstractslider.cpp
@@ -688,51 +688,62 @@ void QAbstractSlider::sliderChange(SliderChange)
update();
}
-
-/*!
- \reimp
-*/
-#ifndef QT_NO_WHEELEVENT
-void QAbstractSlider::wheelEvent(QWheelEvent * e)
+bool QAbstractSliderPrivate::scrollByDelta(Qt::Orientation orientation, Qt::KeyboardModifiers modifiers, int delta)
{
- Q_D(QAbstractSlider);
- e->ignore();
-
+ Q_Q(QAbstractSlider);
int stepsToScroll = 0;
- qreal offset = qreal(e->delta()) / 120;
+ // in Qt scrolling to the right gives negative values.
+ if (orientation == Qt::Horizontal)
+ delta = -delta;
+ qreal offset = qreal(delta) / 120;
- if ((e->modifiers() & Qt::ControlModifier) || (e->modifiers() & Qt::ShiftModifier)) {
+ if ((modifiers & Qt::ControlModifier) || (modifiers & Qt::ShiftModifier)) {
// Scroll one page regardless of delta:
- stepsToScroll = qBound(-d->pageStep, int(offset * d->pageStep), d->pageStep);
- d->offset_accumulated = 0;
+ stepsToScroll = qBound(-pageStep, int(offset * pageStep), pageStep);
+ offset_accumulated = 0;
} else {
// Calculate how many lines to scroll. Depending on what delta is (and
// offset), we might end up with a fraction (e.g. scroll 1.3 lines). We can
// only scroll whole lines, so we keep the reminder until next event.
- qreal stepsToScrollF = offset * QApplication::wheelScrollLines() * d->effectiveSingleStep();
+ qreal stepsToScrollF = offset * QApplication::wheelScrollLines() * effectiveSingleStep();
// Check if wheel changed direction since last event:
- if (d->offset_accumulated != 0 && (offset / d->offset_accumulated) < 0)
- d->offset_accumulated = 0;
+ if (offset_accumulated != 0 && (offset / offset_accumulated) < 0)
+ offset_accumulated = 0;
- d->offset_accumulated += stepsToScrollF;
- stepsToScroll = qBound(-d->pageStep, int(d->offset_accumulated), d->pageStep);
- d->offset_accumulated -= int(d->offset_accumulated);
+ offset_accumulated += stepsToScrollF;
+ stepsToScroll = qBound(-pageStep, int(offset_accumulated), pageStep);
+ offset_accumulated -= int(offset_accumulated);
if (stepsToScroll == 0)
- return;
+ return false;
}
- if (d->invertedControls)
+ if (invertedControls)
stepsToScroll = -stepsToScroll;
- int prevValue = d->value;
- d->position = d->overflowSafeAdd(stepsToScroll); // value will be updated by triggerAction()
- triggerAction(SliderMove);
+ int prevValue = value;
+ position = overflowSafeAdd(stepsToScroll); // value will be updated by triggerAction()
+ q->triggerAction(QAbstractSlider::SliderMove);
+
+ if (prevValue == value) {
+ offset_accumulated = 0;
+ return false;
+ }
+ return true;
+}
- if (prevValue == d->value)
- d->offset_accumulated = 0;
- else
+/*!
+ \reimp
+*/
+#ifndef QT_NO_WHEELEVENT
+void QAbstractSlider::wheelEvent(QWheelEvent * e)
+{
+ Q_D(QAbstractSlider);
+ e->ignore();
+ int delta = e->delta();
+ if (d->scrollByDelta(e->orientation(), e->modifiers(), delta))
e->accept();
}
+
#endif
#ifdef QT_KEYPAD_NAVIGATION
/*!
diff --git a/src/gui/widgets/qabstractslider_p.h b/src/gui/widgets/qabstractslider_p.h
index 6cde468..6e6ff6e 100644
--- a/src/gui/widgets/qabstractslider_p.h
+++ b/src/gui/widgets/qabstractslider_p.h
@@ -138,6 +138,7 @@ public:
}
q->triggerAction(repeatAction);
}
+ bool scrollByDelta(Qt::Orientation orientation, Qt::KeyboardModifiers modifiers, int delta);
};
QT_END_NAMESPACE
diff --git a/src/gui/widgets/qdialogbuttonbox.cpp b/src/gui/widgets/qdialogbuttonbox.cpp
index 48d7022..6a0e363 100644
--- a/src/gui/widgets/qdialogbuttonbox.cpp
+++ b/src/gui/widgets/qdialogbuttonbox.cpp
@@ -1017,6 +1017,8 @@ void QDialogButtonBox::removeButton(QAbstractButton *button)
If the button has already been added, it is removed and added again with the
new role.
+ \note The button box takes ownership of the button.
+
\sa removeButton(), clear()
*/
void QDialogButtonBox::addButton(QAbstractButton *button, ButtonRole role)
diff --git a/src/gui/widgets/qlinecontrol.cpp b/src/gui/widgets/qlinecontrol.cpp
index b0a64ea..db099e8 100644
--- a/src/gui/widgets/qlinecontrol.cpp
+++ b/src/gui/widgets/qlinecontrol.cpp
@@ -1371,6 +1371,8 @@ bool QLineControl::processEvent(QEvent* ev)
processInputMethodEvent(static_cast<QInputMethodEvent*>(ev)); break;
#ifndef QT_NO_SHORTCUT
case QEvent::ShortcutOverride:{
+ if (isReadOnly())
+ return false;
QKeyEvent* ke = static_cast<QKeyEvent*>(ev);
if (ke == QKeySequence::Copy
|| ke == QKeySequence::Paste
diff --git a/src/gui/widgets/qscrollbar.cpp b/src/gui/widgets/qscrollbar.cpp
index 73ce122..3eed3a9 100644
--- a/src/gui/widgets/qscrollbar.cpp
+++ b/src/gui/widgets/qscrollbar.cpp
@@ -521,6 +521,22 @@ bool QScrollBar::event(QEvent *event)
if (const QHoverEvent *he = static_cast<const QHoverEvent *>(event))
d_func()->updateHoverControl(he->pos());
break;
+ case QEvent::Wheel: {
+ // override wheel event without adding virtual function override
+ QWheelEvent *ev = static_cast<QWheelEvent *>(event);
+ int delta = ev->delta();
+ // scrollbar is a special case - in vertical mode it reaches minimum
+ // value in the upper position, however QSlider's minimum value is on
+ // the bottom. So we need to invert a value, but since the scrollbar is
+ // inverted by default, we need to inverse the delta value for the
+ // horizontal orientation.
+ if (ev->orientation() == Qt::Horizontal)
+ delta = -delta;
+ Q_D(QScrollBar);
+ if (d->scrollByDelta(ev->orientation(), ev->modifiers(), delta))
+ event->accept();
+ return true;
+ }
default:
break;
}
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
index 70a301d..5bd972c 100644
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
@@ -305,9 +305,12 @@ void QHttpNetworkConnectionChannel::_q_receiveReply()
while (socket->bytesAvailable()) {
QHttpNetworkReplyPrivate::ReplyState state = reply ? reply->d_func()->state : QHttpNetworkReplyPrivate::AllDoneState;
switch (state) {
- case QHttpNetworkReplyPrivate::NothingDoneState:
- case QHttpNetworkReplyPrivate::ReadingStatusState: {
+ case QHttpNetworkReplyPrivate::NothingDoneState: {
+ // only eat whitespace on the first call
eatWhitespace();
+ state = reply->d_func()->state = QHttpNetworkReplyPrivate::ReadingStatusState;
+ }
+ case QHttpNetworkReplyPrivate::ReadingStatusState: {
qint64 statusBytes = reply->d_func()->readStatus(socket);
if (statusBytes == -1 && reconnectAttempts <= 0) {
// too many errors reading/receiving/parsing the status, close the socket and emit error
diff --git a/src/network/access/qhttpnetworkreply.cpp b/src/network/access/qhttpnetworkreply.cpp
index a5223d1..512c045 100644
--- a/src/network/access/qhttpnetworkreply.cpp
+++ b/src/network/access/qhttpnetworkreply.cpp
@@ -423,13 +423,26 @@ int QHttpNetworkReplyPrivate::gunzipBodyPartially(QByteArray &compressed, QByteA
qint64 QHttpNetworkReplyPrivate::readStatus(QAbstractSocket *socket)
{
+ if (fragment.isEmpty()) {
+ // reserve bytes for the status line. This is better than always append() which reallocs the byte array
+ fragment.reserve(32);
+ }
+
qint64 bytes = 0;
char c;
+ qint64 haveRead = 0;
+
+ do {
+ haveRead = socket->read(&c, 1);
+ if (haveRead == -1)
+ return -1; // unexpected EOF
+ else if (haveRead == 0)
+ break; // read more later
+
+ bytes++;
- while (socket->bytesAvailable()) {
// allow both CRLF & LF (only) line endings
- if (socket->peek(&c, 1) == 1 && c == '\n') {
- bytes += socket->read(&c, 1); // read the "n"
+ if (c == '\n') {
// remove the CR at the end
if (fragment.endsWith('\r')) {
fragment.truncate(fragment.length()-1);
@@ -442,11 +455,6 @@ qint64 QHttpNetworkReplyPrivate::readStatus(QAbstractSocket *socket)
}
break;
} else {
- c = 0;
- int haveRead = socket->read(&c, 1);
- if (haveRead == -1)
- return -1;
- bytes += haveRead;
fragment.append(c);
}
@@ -456,8 +464,7 @@ qint64 QHttpNetworkReplyPrivate::readStatus(QAbstractSocket *socket)
fragment.clear();
return -1;
}
-
- }
+ } while (haveRead == 1);
return bytes;
}
@@ -500,20 +507,41 @@ bool QHttpNetworkReplyPrivate::parseStatus(const QByteArray &status)
qint64 QHttpNetworkReplyPrivate::readHeader(QAbstractSocket *socket)
{
+ if (fragment.isEmpty()) {
+ // according to http://dev.opera.com/articles/view/mama-http-headers/ the average size of the header
+ // block is 381 bytes.
+ // reserve bytes. This is better than always append() which reallocs the byte array.
+ fragment.reserve(512);
+ }
+
qint64 bytes = 0;
char c = 0;
bool allHeaders = false;
- while (!allHeaders && socket->bytesAvailable()) {
- if (socket->peek(&c, 1) == 1 && c == '\n') {
- // check for possible header endings. As per HTTP rfc,
- // the header endings will be marked by CRLFCRLF. But
- // we will allow CRLFLF, LFLF & CRLFCRLF
- if (fragment.endsWith("\n\r") || fragment.endsWith('\n'))
- allHeaders = true;
+ qint64 haveRead = 0;
+ do {
+ haveRead = socket->read(&c, 1);
+ if (haveRead == 0) {
+ // read more later
+ break;
+ } else if (haveRead == -1) {
+ // connection broke down
+ return -1;
+ } else {
+ fragment.append(c);
+ bytes++;
+
+ if (c == '\n') {
+ // check for possible header endings. As per HTTP rfc,
+ // the header endings will be marked by CRLFCRLF. But
+ // we will allow CRLFCRLF, CRLFLF, LFLF
+ if (fragment.endsWith("\r\n\r\n")
+ || fragment.endsWith("\r\n\n")
+ || fragment.endsWith("\n\n"))
+ allHeaders = true;
+ }
}
- bytes += socket->read(&c, 1);
- fragment.append(c);
- }
+ } while (!allHeaders && haveRead > 0);
+
// we received all headers now parse them
if (allHeaders) {
parseHeader(fragment);
diff --git a/src/network/access/qnetworkcookie.h b/src/network/access/qnetworkcookie.h
index f34396f..3cc4cee 100644
--- a/src/network/access/qnetworkcookie.h
+++ b/src/network/access/qnetworkcookie.h
@@ -114,7 +114,7 @@ Q_NETWORK_EXPORT QDebug operator<<(QDebug, const QNetworkCookie &);
QT_END_NAMESPACE
// ### Qt5 remove this include
-#include "qnetworkcookiejar.h"
+#include <QtNetwork/QNetworkCookieJar>
Q_DECLARE_METATYPE(QNetworkCookie)
Q_DECLARE_METATYPE(QList<QNetworkCookie>)
diff --git a/src/network/access/qnetworkcookiejar.h b/src/network/access/qnetworkcookiejar.h
index 813bf3e..8086f38 100644
--- a/src/network/access/qnetworkcookiejar.h
+++ b/src/network/access/qnetworkcookiejar.h
@@ -46,7 +46,7 @@
#include <QtCore/QUrl>
// ### Qt5 remove this include
-#include "qnetworkcookie.h"
+#include <QtNetwork/QNetworkCookie>
QT_BEGIN_HEADER
diff --git a/src/opengl/qgl_mac.mm b/src/opengl/qgl_mac.mm
index c01575b..4d7532e 100644
--- a/src/opengl/qgl_mac.mm
+++ b/src/opengl/qgl_mac.mm
@@ -951,8 +951,6 @@ void QGLWidgetPrivate::init(QGLContext *context, const QGLWidget *shareWidget)
break;
current = current->parentWidget();
}
-
- isGLWidget = 1;
}
bool QGLWidgetPrivate::renderCxPm(QPixmap*)
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index 713b067..da0887e 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -179,7 +179,9 @@ public:
#if defined(Q_WS_X11) && defined(QT_OPENGL_ES)
, eglSurfaceWindowId(0)
#endif
- {}
+ {
+ isGLWidget = 1;
+ }
~QGLWidgetPrivate() {}
diff --git a/src/opengl/qglpixmapfilter.cpp b/src/opengl/qglpixmapfilter.cpp
index 37bb7c0..d5a11d9 100644
--- a/src/opengl/qglpixmapfilter.cpp
+++ b/src/opengl/qglpixmapfilter.cpp
@@ -394,6 +394,7 @@ void QGLBlurTextureCache::insertBlurTextureInfo(const QPixmap &pixmap, QGLBlurTe
static bool hookAdded = false;
if (!hookAdded) {
QImagePixmapCleanupHooks::instance()->addPixmapDataDestructionHook(pixmapDestroyed);
+ QImagePixmapCleanupHooks::instance()->addPixmapDataModificationHook(pixmapDestroyed);
hookAdded = true;
}
diff --git a/src/qt3support/dialogs/q3filedialog.cpp b/src/qt3support/dialogs/q3filedialog.cpp
index 9b8e4d3..35f7890 100644
--- a/src/qt3support/dialogs/q3filedialog.cpp
+++ b/src/qt3support/dialogs/q3filedialog.cpp
@@ -475,9 +475,17 @@ static int sortFilesBy = (int)QDir::Name;
static bool sortAscending = true;
static bool detailViewMode = false;
-static Q3CleanupHandler<QPixmap> qfd_cleanup_pixmap;
static Q3CleanupHandler<QString> qfd_cleanup_string;
+static void qt_cleanup_fd_pixmaps();
+typedef QList<QPixmap *> FDPixmaps;
+Q_GLOBAL_STATIC_WITH_INITIALIZER(FDPixmaps, qfd_pixmaps, qAddPostRoutine(qt_cleanup_fd_pixmaps))
+
+static void qt_cleanup_fd_pixmaps()
+{
+ qDeleteAll(*qfd_pixmaps());
+}
+
static QString toRootIfNotExists( const QString &path )
{
if ( !path.isEmpty() )
@@ -533,37 +541,37 @@ static void makeVariables() {
qfd_cleanup_string.add(&workingDirectory);
openFolderIcon = new QPixmap((const char **)open_xpm);
- qfd_cleanup_pixmap.add(&openFolderIcon);
+ qfd_pixmaps()->append(openFolderIcon);
symLinkDirIcon = new QPixmap((const char **)link_dir_xpm);
- qfd_cleanup_pixmap.add(&symLinkDirIcon);
+ qfd_pixmaps()->append(symLinkDirIcon);
symLinkFileIcon = new QPixmap((const char **)link_file_xpm);
- qfd_cleanup_pixmap.add(&symLinkFileIcon);
+ qfd_pixmaps()->append(symLinkFileIcon);
fileIcon = new QPixmap((const char **)file_xpm);
- qfd_cleanup_pixmap.add(&fileIcon);
+ qfd_pixmaps()->append(fileIcon);
closedFolderIcon = new QPixmap((const char **)closed_xpm);
- qfd_cleanup_pixmap.add(&closedFolderIcon);
+ qfd_pixmaps()->append(closedFolderIcon);
detailViewIcon = new QPixmap((const char **)detailedview_xpm);
- qfd_cleanup_pixmap.add(&detailViewIcon);
+ qfd_pixmaps()->append(detailViewIcon);
multiColumnListViewIcon = new QPixmap((const char **)mclistview_xpm);
- qfd_cleanup_pixmap.add(&multiColumnListViewIcon);
+ qfd_pixmaps()->append(multiColumnListViewIcon);
cdToParentIcon = new QPixmap((const char **)cdtoparent_xpm);
- qfd_cleanup_pixmap.add(&cdToParentIcon);
+ qfd_pixmaps()->append(cdToParentIcon);
newFolderIcon = new QPixmap((const char **)newfolder_xpm);
- qfd_cleanup_pixmap.add(&newFolderIcon);
+ qfd_pixmaps()->append(newFolderIcon);
previewInfoViewIcon
= new QPixmap((const char **)previewinfoview_xpm);
- qfd_cleanup_pixmap.add(&previewInfoViewIcon);
+ qfd_pixmaps()->append(previewInfoViewIcon);
previewContentsViewIcon
= new QPixmap((const char **)previewcontentsview_xpm);
- qfd_cleanup_pixmap.add(&previewContentsViewIcon);
+ qfd_pixmaps()->append(previewContentsViewIcon);
startCopyIcon = new QPixmap((const char **)start_xpm);
- qfd_cleanup_pixmap.add(&startCopyIcon);
+ qfd_pixmaps()->append(startCopyIcon);
endCopyIcon = new QPixmap((const char **)end_xpm);
- qfd_cleanup_pixmap.add(&endCopyIcon);
+ qfd_pixmaps()->append(endCopyIcon);
goBackIcon = new QPixmap((const char **)back_xpm);
- qfd_cleanup_pixmap.add(&goBackIcon);
+ qfd_pixmaps()->append(goBackIcon);
fifteenTransparentPixels = new QPixmap(closedFolderIcon->width(), 1);
- qfd_cleanup_pixmap.add(&fifteenTransparentPixels);
+ qfd_pixmaps()->append(fifteenTransparentPixels);
QBitmap m(fifteenTransparentPixels->width(), 1);
m.fill(Qt::color0);
fifteenTransparentPixels->setMask(m);
diff --git a/src/qt3support/itemviews/q3iconview.cpp b/src/qt3support/itemviews/q3iconview.cpp
index 67c956e..683e3d6 100644
--- a/src/qt3support/itemviews/q3iconview.cpp
+++ b/src/qt3support/itemviews/q3iconview.cpp
@@ -132,14 +132,21 @@ static QPixmap *qiv_selection = 0;
#endif
static bool optimize_layout = false;
-static Q3CleanupHandler<QPixmap> qiv_cleanup_pixmap;
+static void qt_cleanup_iv_pixmaps();
+typedef QList<QPixmap *> IVPixmaps;
+Q_GLOBAL_STATIC_WITH_INITIALIZER(IVPixmaps, qiv_pixmaps, qAddPostRoutine(qt_cleanup_iv_pixmaps))
+
+static void qt_cleanup_iv_pixmaps()
+{
+ qDeleteAll(*qiv_pixmaps());
+}
static QPixmap *get_qiv_buffer_pixmap(const QSize &s)
{
if (!qiv_buffer_pixmap) {
qiv_buffer_pixmap = new QPixmap(s);
- qiv_cleanup_pixmap.add(&qiv_buffer_pixmap);
+ qiv_pixmaps()->append(qiv_buffer_pixmap);
return qiv_buffer_pixmap;
}
@@ -2580,7 +2587,7 @@ Q3IconView::Q3IconView(QWidget *parent, const char *name, Qt::WindowFlags f)
{
if (!unknown_icon) {
unknown_icon = new QPixmap((const char **)unknown_xpm);
- qiv_cleanup_pixmap.add(&unknown_icon);
+ qiv_pixmaps()->append(unknown_icon);
}
d = new Q3IconViewPrivate;
diff --git a/src/qt3support/itemviews/q3listview.cpp b/src/qt3support/itemviews/q3listview.cpp
index 2c15ad0..12dad84 100644
--- a/src/qt3support/itemviews/q3listview.cpp
+++ b/src/qt3support/itemviews/q3listview.cpp
@@ -70,9 +70,6 @@ QT_BEGIN_NAMESPACE
const int Unsorted = 16383;
-static Q3CleanupHandler<QBitmap> qlv_cleanup_bitmap;
-
-
struct Q3ListViewPrivate
{
// classes that are here to avoid polluting the global name space
diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index 155e3e7..be7a6a0 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -2081,8 +2081,8 @@ EXPORTS
?addPixmap@QGraphicsScene@@QAEPAVQGraphicsPixmapItem@@ABVQPixmap@@@Z @ 2080 NONAME ; class QGraphicsPixmapItem * QGraphicsScene::addPixmap(class QPixmap const &)
?addPixmap@QIcon@@QAEXABVQPixmap@@W4Mode@1@W4State@1@@Z @ 2081 NONAME ; void QIcon::addPixmap(class QPixmap const &, enum QIcon::Mode, enum QIcon::State)
?addPixmap@QIconEngine@@UAEXABVQPixmap@@W4Mode@QIcon@@W4State@4@@Z @ 2082 NONAME ; void QIconEngine::addPixmap(class QPixmap const &, enum QIcon::Mode, enum QIcon::State)
- ?addPixmapDestructionHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmap@@@Z@Z @ 2083 NONAME ; void QImagePixmapCleanupHooks::addPixmapDestructionHook(void (*)(class QPixmap *))
- ?addPixmapModificationHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmap@@@Z@Z @ 2084 NONAME ; void QImagePixmapCleanupHooks::addPixmapModificationHook(void (*)(class QPixmap *))
+ ?addPixmapDestructionHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmap@@@Z@Z @ 2083 NONAME ABSENT ; void QImagePixmapCleanupHooks::addPixmapDestructionHook(void (*)(class QPixmap *))
+ ?addPixmapModificationHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmap@@@Z@Z @ 2084 NONAME ABSENT ; void QImagePixmapCleanupHooks::addPixmapModificationHook(void (*)(class QPixmap *))
?addPolygon@QGraphicsScene@@QAEPAVQGraphicsPolygonItem@@ABVQPolygonF@@ABVQPen@@ABVQBrush@@@Z @ 2085 NONAME ; class QGraphicsPolygonItem * QGraphicsScene::addPolygon(class QPolygonF const &, class QPen const &, class QBrush const &)
?addPolygon@QPainterPath@@QAEXABVQPolygonF@@@Z @ 2086 NONAME ; void QPainterPath::addPolygon(class QPolygonF const &)
?addRect@QGraphicsScene@@QAEPAVQGraphicsRectItem@@ABVQRectF@@ABVQPen@@ABVQBrush@@@Z @ 2087 NONAME ; class QGraphicsRectItem * QGraphicsScene::addRect(class QRectF const &, class QPen const &, class QBrush const &)
@@ -4283,8 +4283,8 @@ EXPORTS
?executeDelayedItemsLayout@QAbstractItemView@@IAEXXZ @ 4282 NONAME ; void QAbstractItemView::executeDelayedItemsLayout(void)
?executeImageHooks@QImagePixmapCleanupHooks@@SAX_J@Z @ 4283 NONAME ; void QImagePixmapCleanupHooks::executeImageHooks(long long)
?executePendingSort@QTreeWidgetItem@@ABEXXZ @ 4284 NONAME ; void QTreeWidgetItem::executePendingSort(void) const
- ?executePixmapDestructionHooks@QImagePixmapCleanupHooks@@SAXPAVQPixmap@@@Z @ 4285 NONAME ; void QImagePixmapCleanupHooks::executePixmapDestructionHooks(class QPixmap *)
- ?executePixmapModificationHooks@QImagePixmapCleanupHooks@@SAXPAVQPixmap@@@Z @ 4286 NONAME ; void QImagePixmapCleanupHooks::executePixmapModificationHooks(class QPixmap *)
+ ?executePixmapDestructionHooks@QImagePixmapCleanupHooks@@SAXPAVQPixmap@@@Z @ 4285 NONAME ABSENT ; void QImagePixmapCleanupHooks::executePixmapDestructionHooks(class QPixmap *)
+ ?executePixmapModificationHooks@QImagePixmapCleanupHooks@@SAXPAVQPixmap@@@Z @ 4286 NONAME ABSENT ; void QImagePixmapCleanupHooks::executePixmapModificationHooks(class QPixmap *)
?expand@QTreeView@@QAEXABVQModelIndex@@@Z @ 4287 NONAME ; void QTreeView::expand(class QModelIndex const &)
?expandAll@QTreeView@@QAEXXZ @ 4288 NONAME ; void QTreeView::expandAll(void)
?expandItem@QTreeWidget@@QAEXPBVQTreeWidgetItem@@@Z @ 4289 NONAME ; void QTreeWidget::expandItem(class QTreeWidgetItem const *)
@@ -7927,8 +7927,8 @@ EXPORTS
?removeItemWidget@QTreeWidget@@QAEXPAVQTreeWidgetItem@@H@Z @ 7926 NONAME ; void QTreeWidget::removeItemWidget(class QTreeWidgetItem *, int)
?removeMapping@QDataWidgetMapper@@QAEXPAVQWidget@@@Z @ 7927 NONAME ; void QDataWidgetMapper::removeMapping(class QWidget *)
?removePage@QWizard@@QAEXH@Z @ 7928 NONAME ; void QWizard::removePage(int)
- ?removePixmapDestructionHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmap@@@Z@Z @ 7929 NONAME ; void QImagePixmapCleanupHooks::removePixmapDestructionHook(void (*)(class QPixmap *))
- ?removePixmapModificationHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmap@@@Z@Z @ 7930 NONAME ; void QImagePixmapCleanupHooks::removePixmapModificationHook(void (*)(class QPixmap *))
+ ?removePixmapDestructionHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmap@@@Z@Z @ 7929 NONAME ABSENT ; void QImagePixmapCleanupHooks::removePixmapDestructionHook(void (*)(class QPixmap *))
+ ?removePixmapModificationHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmap@@@Z@Z @ 7930 NONAME ABSENT ; void QImagePixmapCleanupHooks::removePixmapModificationHook(void (*)(class QPixmap *))
?removeRow@QStandardItem@@QAEXH@Z @ 7931 NONAME ; void QStandardItem::removeRow(int)
?removeRow@QTableWidget@@QAEXH@Z @ 7932 NONAME ; void QTableWidget::removeRow(int)
?removeRows@QSortFilterProxyModel@@UAE_NHHABVQModelIndex@@@Z @ 7933 NONAME ; bool QSortFilterProxyModel::removeRows(int, int, class QModelIndex const &)
@@ -12533,4 +12533,19 @@ EXPORTS
?symbianHandleCommand@QApplicationPrivate@@QAEHPBVQSymbianEvent@@@Z @ 12532 NONAME ; int QApplicationPrivate::symbianHandleCommand(class QSymbianEvent const *)
?symbianProcessWsEvent@QApplicationPrivate@@QAEHPBVQSymbianEvent@@@Z @ 12533 NONAME ; int QApplicationPrivate::symbianProcessWsEvent(class QSymbianEvent const *)
?symbianResourceChange@QApplicationPrivate@@QAEHPBVQSymbianEvent@@@Z @ 12534 NONAME ; int QApplicationPrivate::symbianResourceChange(class QSymbianEvent const *)
+ ?addPixmapDataDestructionHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmapData@@@Z@Z @ 12535 NONAME ; void QImagePixmapCleanupHooks::addPixmapDataDestructionHook(void (*)(class QPixmapData *))
+ ?addPixmapDataModificationHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmapData@@@Z@Z @ 12536 NONAME ; void QImagePixmapCleanupHooks::addPixmapDataModificationHook(void (*)(class QPixmapData *))
+ ?cacheKey@QPixmapData@@QBE_JXZ @ 12537 NONAME ; long long QPixmapData::cacheKey(void) const
+ ?eventFilter@QS60Style@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 12538 NONAME ; bool QS60Style::eventFilter(class QObject *, class QEvent *)
+ ?executePixmapDataDestructionHooks@QImagePixmapCleanupHooks@@SAXPAVQPixmapData@@@Z @ 12539 NONAME ; void QImagePixmapCleanupHooks::executePixmapDataDestructionHooks(class QPixmapData *)
+ ?executePixmapDataModificationHooks@QImagePixmapCleanupHooks@@SAXPAVQPixmapData@@@Z @ 12540 NONAME ; void QImagePixmapCleanupHooks::executePixmapDataModificationHooks(class QPixmapData *)
+ ?invalidateChildGraphicsEffectsRecursively@QGraphicsItemPrivate@@QAEXW4InvalidateReason@1@@Z @ 12541 NONAME ; void QGraphicsItemPrivate::invalidateChildGraphicsEffectsRecursively(enum QGraphicsItemPrivate::InvalidateReason)
+ ?invalidateParentGraphicsEffectsRecursively@QGraphicsItemPrivate@@QAEXXZ @ 12542 NONAME ; void QGraphicsItemPrivate::invalidateParentGraphicsEffectsRecursively(void)
+ ?markParentDirty@QGraphicsItemPrivate@@QAEX_N@Z @ 12543 NONAME ; void QGraphicsItemPrivate::markParentDirty(bool)
+ ?removePixmapDataDestructionHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmapData@@@Z@Z @ 12544 NONAME ; void QImagePixmapCleanupHooks::removePixmapDataDestructionHook(void (*)(class QPixmapData *))
+ ?removePixmapDataModificationHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmapData@@@Z@Z @ 12545 NONAME ; void QImagePixmapCleanupHooks::removePixmapDataModificationHook(void (*)(class QPixmapData *))
+ ?setParentItemHelper@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@PBVQVariant@@1@Z @ 12546 NONAME ; void QGraphicsItemPrivate::setParentItemHelper(class QGraphicsItem *, class QVariant const *, class QVariant const *)
+ ?timerEvent@QS60Style@@MAEXPAVQTimerEvent@@@Z @ 12547 NONAME ; void QS60Style::timerEvent(class QTimerEvent *)
+ ?updateAncestorFlags@QGraphicsItemPrivate@@QAEXXZ @ 12548 NONAME ; void QGraphicsItemPrivate::updateAncestorFlags(void)
+ ?updateChildWithGraphicsEffectFlagRecursively@QGraphicsItemPrivate@@QAEXXZ @ 12549 NONAME ; void QGraphicsItemPrivate::updateChildWithGraphicsEffectFlagRecursively(void)
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index a9a69aa..5cf700b 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -11648,12 +11648,12 @@ EXPORTS
_ZN24QImagePixmapCleanupHooks18enableCleanupHooksEP11QPixmapData @ 11647 NONAME
_ZN24QImagePixmapCleanupHooks18enableCleanupHooksERK6QImage @ 11648 NONAME
_ZN24QImagePixmapCleanupHooks18enableCleanupHooksERK7QPixmap @ 11649 NONAME
- _ZN24QImagePixmapCleanupHooks24addPixmapDestructionHookEPFvP7QPixmapE @ 11650 NONAME
- _ZN24QImagePixmapCleanupHooks25addPixmapModificationHookEPFvP7QPixmapE @ 11651 NONAME
- _ZN24QImagePixmapCleanupHooks27removePixmapDestructionHookEPFvP7QPixmapE @ 11652 NONAME
- _ZN24QImagePixmapCleanupHooks28removePixmapModificationHookEPFvP7QPixmapE @ 11653 NONAME
- _ZN24QImagePixmapCleanupHooks29executePixmapDestructionHooksEP7QPixmap @ 11654 NONAME
- _ZN24QImagePixmapCleanupHooks30executePixmapModificationHooksEP7QPixmap @ 11655 NONAME
+ _ZN24QImagePixmapCleanupHooks24addPixmapDestructionHookEPFvP7QPixmapE @ 11650 NONAME ABSENT
+ _ZN24QImagePixmapCleanupHooks25addPixmapModificationHookEPFvP7QPixmapE @ 11651 NONAME ABSENT
+ _ZN24QImagePixmapCleanupHooks27removePixmapDestructionHookEPFvP7QPixmapE @ 11652 NONAME ABSENT
+ _ZN24QImagePixmapCleanupHooks28removePixmapModificationHookEPFvP7QPixmapE @ 11653 NONAME ABSENT
+ _ZN24QImagePixmapCleanupHooks29executePixmapDestructionHooksEP7QPixmap @ 11654 NONAME ABSENT
+ _ZN24QImagePixmapCleanupHooks30executePixmapModificationHooksEP7QPixmap @ 11655 NONAME ABSENT
_ZN25QGraphicsDropShadowEffect13setBlurRadiusEf @ 11656 NONAME
_ZN25QGraphicsDropShadowEffect17blurRadiusChangedEf @ 11657 NONAME
_ZN25QGraphicsDropShadowEffect4drawEP8QPainter @ 11658 NONAME
@@ -11792,4 +11792,17 @@ EXPORTS
_ZN19QApplicationPrivate20symbianHandleCommandEPK13QSymbianEvent @ 11791 NONAME
_ZN19QApplicationPrivate21symbianProcessWsEventEPK13QSymbianEvent @ 11792 NONAME
_ZN19QApplicationPrivate21symbianResourceChangeEPK13QSymbianEvent @ 11793 NONAME
+ _ZN20QGraphicsItemPrivate19setParentItemHelperEP13QGraphicsItemPK8QVariantS4_ @ 11794 NONAME
+ _ZN20QGraphicsItemPrivate19updateAncestorFlagsEv @ 11795 NONAME
+ _ZN20QGraphicsItemPrivate41invalidateChildGraphicsEffectsRecursivelyENS_16InvalidateReasonE @ 11796 NONAME
+ _ZN20QGraphicsItemPrivate42invalidateParentGraphicsEffectsRecursivelyEv @ 11797 NONAME
+ _ZN20QGraphicsItemPrivate44updateChildWithGraphicsEffectFlagRecursivelyEv @ 11798 NONAME
+ _ZN24QImagePixmapCleanupHooks28addPixmapDataDestructionHookEPFvP11QPixmapDataE @ 11799 NONAME
+ _ZN24QImagePixmapCleanupHooks29addPixmapDataModificationHookEPFvP11QPixmapDataE @ 11800 NONAME
+ _ZN24QImagePixmapCleanupHooks31removePixmapDataDestructionHookEPFvP11QPixmapDataE @ 11801 NONAME
+ _ZN24QImagePixmapCleanupHooks32removePixmapDataModificationHookEPFvP11QPixmapDataE @ 11802 NONAME
+ _ZN24QImagePixmapCleanupHooks33executePixmapDataDestructionHooksEP11QPixmapData @ 11803 NONAME
+ _ZN24QImagePixmapCleanupHooks34executePixmapDataModificationHooksEP11QPixmapData @ 11804 NONAME
+ _ZN9QS60Style10timerEventEP11QTimerEvent @ 11805 NONAME
+ _ZN9QS60Style11eventFilterEP7QObjectP6QEvent @ 11806 NONAME
diff --git a/src/s60main/s60main.pro b/src/s60main/s60main.pro
index 47cf020..25fb188 100644
--- a/src/s60main/s60main.pro
+++ b/src/s60main/s60main.pro
@@ -22,6 +22,9 @@ symbian {
# staticlib should not have any lib depencies in s60
# This seems not to work, some hard coded libs are still added as dependency
LIBS =
+
+ # Workaround for abld toolchain problem to make ARMV6 qtmain.lib link with GCCE apps
+ symbian-abld: QMAKE_CXXFLAGS.ARMCC += --dllimport_runtime
} else {
error("$$_FILE_ is intended only for Symbian!")
}
diff --git a/src/sql/drivers/odbc/qsql_odbc.cpp b/src/sql/drivers/odbc/qsql_odbc.cpp
index 2049a76..4d3663e 100644
--- a/src/sql/drivers/odbc/qsql_odbc.cpp
+++ b/src/sql/drivers/odbc/qsql_odbc.cpp
@@ -144,6 +144,7 @@ public:
QSqlRecord rInf;
QVector<QVariant> fieldCache;
+ QVector<wchar_t *> paramCache;
int fieldCacheIdx;
int disconnectCount;
bool hasSQLFetchScroll;
@@ -202,7 +203,7 @@ static QString qWarnODBCHandle(int handleType, SQLHANDLE handle, int *nativeCode
*nativeCode = nativeCode_;
QString tmpstore;
#ifdef UNICODE
- tmpstore = QString((const QChar*)description_.data(), msgLen);
+ tmpstore = QString::fromWCharArray((const wchar_t*)description_, msgLen);
#else
tmpstore = QString::fromLocal8Bit((const char*)description_.data(), msgLen);
#endif
@@ -332,7 +333,7 @@ static QString qGetStringData(SQLHANDLE hStmt, int column, int colSize, bool uni
} else {
colSize++; // make sure there is room for more than the 0 termination
if (unicode) {
- colSize *= 2; // a tiny bit faster, since it saves a SQLGetData() call
+ colSize *= sizeof(wchar_t); // a tiny bit faster, since it saves a SQLGetData() call
}
}
QVarLengthArray<char> buf(colSize);
@@ -353,9 +354,9 @@ static QString qGetStringData(SQLHANDLE hStmt, int column, int colSize, bool uni
// contain the number of bytes returned - it contains the
// total number of bytes that CAN be fetched
// colSize-1: remove 0 termination when there is more data to fetch
- int rSize = (r == SQL_SUCCESS_WITH_INFO) ? (unicode ? colSize-2 : colSize-1) : lengthIndicator;
+ int rSize = (r == SQL_SUCCESS_WITH_INFO) ? (unicode ? colSize-sizeof(wchar_t) : colSize-1) : lengthIndicator;
if (unicode) {
- fieldVal += QString((const QChar*) buf.constData(), rSize / 2);
+ fieldVal += QString::fromWCharArray((wchar_t*)buf.constData(), rSize / sizeof(wchar_t));
} else {
fieldVal += QString::fromAscii(buf.constData(), rSize);
}
@@ -551,7 +552,7 @@ static QSqlField qMakeFieldInfo(const QODBCPrivate* p, int i )
}
#ifdef UNICODE
- QString qColName((const QChar*)colName, colNameLen);
+ QString qColName = QString::fromWCharArray((const wchar_t*)colName, colNameLen);
#else
QString qColName = QString::fromLocal8Bit((const char*)colName);
#endif
@@ -1270,9 +1271,12 @@ bool QODBCResult::exec()
// bind parameters - only positional binding allowed
QVector<QVariant>& values = boundValues();
+ QVector<wchar_t *> wcharstorage;
+
int i;
SQLRETURN r;
for (i = 0; i < values.count(); ++i) {
+ wcharstorage.append(NULL);
if (bindValueType(i) & QSql::Out)
values[i].detach();
const QVariant &val = values.at(i);
@@ -1435,13 +1439,14 @@ bool QODBCResult::exec()
#ifndef Q_ODBC_VERSION_2
if (d->unicode) {
QString str = val.toString();
- str.utf16();
+ int strSize = str.length() * sizeof(wchar_t);
if (*ind != SQL_NULL_DATA)
- *ind = str.length() * sizeof(QChar);
- int strSize = str.length() * sizeof(QChar);
+ *ind = strSize;
if (bindValueType(i) & QSql::Out) {
- QByteArray ba((char*)str.constData(), str.capacity() * sizeof(QChar));
+ wchar_t *temp=new wchar_t[str.capacity()*sizeof(wchar_t)];
+ str.toWCharArray(temp);
+ QByteArray ba((char*)temp, str.capacity() * sizeof(wchar_t));
r = SQLBindParameter(d->hStmt,
i + 1,
qParamType[(QFlag)(bindValueType(i)) & QSql::InOut],
@@ -1453,9 +1458,13 @@ bool QODBCResult::exec()
ba.size(),
ind);
tmpStorage.append(ba);
+ wcharstorage.replace(i,temp);
break;
}
+ wchar_t *temp=new wchar_t[(1+str.length())*sizeof(wchar_t)];
+ str.toWCharArray(temp);
+ temp[str.length()]=0;
r = SQLBindParameter(d->hStmt,
i + 1,
qParamType[(QFlag)(bindValueType(i)) & QSql::InOut],
@@ -1463,9 +1472,10 @@ bool QODBCResult::exec()
strSize > 254 ? SQL_WLONGVARCHAR : SQL_WVARCHAR,
strSize,
0,
- (void *)str.constData(),
+ (void *)temp,
strSize,
ind);
+ wcharstorage.replace(i,temp);
break;
}
else
@@ -1515,6 +1525,13 @@ bool QODBCResult::exec()
}
}
r = SQLExecute(d->hStmt);
+
+ for(int i=0;i<wcharstorage.size();i++)
+ {
+ if(wcharstorage.at(i))
+ delete [](wcharstorage.at(i));
+ }
+
if (r != SQL_SUCCESS && r != SQL_SUCCESS_WITH_INFO) {
qWarning() << "QODBCResult::exec: Unable to execute statement:" << qODBCWarn(d);
setLastError(qMakeError(QCoreApplication::translate("QODBCResult",
diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp
index 9fff552..d3be304 100644
--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp
+++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp
@@ -500,32 +500,6 @@ bool QSQLiteDriver::hasFeature(DriverFeature f) const
return false;
}
-static int qGetSqliteTimeout(QString opts)
-{
- enum { DefaultTimeout = 5000 };
-
- opts.remove(QLatin1Char(' '));
- foreach(QString option, opts.split(QLatin1Char(';'))) {
- if (option.startsWith(QLatin1String("QSQLITE_BUSY_TIMEOUT="))) {
- bool ok;
- int nt = option.mid(21).toInt(&ok);
- if (ok)
- return nt;
- }
- }
- return DefaultTimeout;
-}
-
-static int qGetSqliteOpenMode(QString opts)
-{
- opts.remove(QLatin1Char(' '));
- foreach(QString option, opts.split(QLatin1Char(';'))) {
- if (option == QLatin1String("QSQLITE_OPEN_READONLY"))
- return SQLITE_OPEN_READONLY;
- }
- return SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE;
-}
-
/*
SQLite dbs have no user name, passwords, hosts or ports.
just file names.
@@ -537,9 +511,26 @@ bool QSQLiteDriver::open(const QString & db, const QString &, const QString &, c
if (db.isEmpty())
return false;
+ bool sharedCache = false;
+ int openMode = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, timeOut=5000;
+ QStringList opts=QString(conOpts).remove(QLatin1Char(' ')).split(QLatin1Char(';'));
+ foreach(const QString &option, opts) {
+ if (option.startsWith(QLatin1String("QSQLITE_BUSY_TIMEOUT="))) {
+ bool ok;
+ int nt = option.mid(21).toInt(&ok);
+ if (ok)
+ timeOut = nt;
+ }
+ if (option == QLatin1String("QSQLITE_OPEN_READONLY"))
+ openMode = SQLITE_OPEN_READONLY;
+ if (option == QLatin1String("QSQLITE_ENABLE_SHARED_CACHE"))
+ sharedCache = true;
+ }
+
+ sqlite3_enable_shared_cache(sharedCache);
- if (sqlite3_open_v2(db.toUtf8().constData(), &d->access, qGetSqliteOpenMode(conOpts), NULL) == SQLITE_OK) {
- sqlite3_busy_timeout(d->access, qGetSqliteTimeout(conOpts));
+ if (sqlite3_open_v2(db.toUtf8().constData(), &d->access, openMode, NULL) == SQLITE_OK) {
+ sqlite3_busy_timeout(d->access, timeOut);
setOpen(true);
setOpenError(false);
return true;
diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp
index 031261d..1416ee3 100644
--- a/src/sql/kernel/qsqldatabase.cpp
+++ b/src/sql/kernel/qsqldatabase.cpp
@@ -1267,6 +1267,7 @@ QSqlRecord QSqlDatabase::record(const QString& tablename) const
\list
\i QSQLITE_BUSY_TIMEOUT
\i QSQLITE_OPEN_READONLY
+ \i QSQLITE_ENABLE_SHARED_CACHE
\endlist
\i
diff --git a/src/xml/dom/qdom.cpp b/src/xml/dom/qdom.cpp
index cae959b..8d9ae4f 100644
--- a/src/xml/dom/qdom.cpp
+++ b/src/xml/dom/qdom.cpp
@@ -2973,7 +2973,7 @@ QDomElement QDomNode::lastChildElement(const QString &tagName) const
}
/*!
- Returns the next sibilng element with tag name \a tagName if \a tagName
+ Returns the next sibling element with tag name \a tagName if \a tagName
is non-empty; otherwise returns any next sibling element.
Returns a null element if no such sibling exists.
diff --git a/src/xmlpatterns/data/qatomicvalue.cpp b/src/xmlpatterns/data/qatomicvalue.cpp
index 6858e27..c4f3578 100644
--- a/src/xmlpatterns/data/qatomicvalue.cpp
+++ b/src/xmlpatterns/data/qatomicvalue.cpp
@@ -226,6 +226,8 @@ ItemType::Ptr AtomicValue::qtToXDMType(const QXmlItem &item)
/* Fallthrough. */
case QVariant::Time:
return BuiltinTypes::xsDateTime;
+ case QMetaType::Float:
+ return BuiltinTypes::xsFloat;
case QVariant::Double:
return BuiltinTypes::xsDouble;
default:
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 3198a65..022b19a 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -587,3 +587,11 @@ contains(QT_CONFIG, declarative): SUBDIRS += declarative
xmlpatternsview \
xmlpatternsxqts \
xmlpatternsxslts
+
+
+############### make check recursively for testcases ##################
+check.CONFIG = recursive
+check.recurse = $$SUBDIRS
+check.recurse_target = check
+QMAKE_EXTRA_TARGETS += check
+###########################################################
diff --git a/tests/auto/qabstractitemview/tst_qabstractitemview.cpp b/tests/auto/qabstractitemview/tst_qabstractitemview.cpp
index 504ceac..ea86c16 100644
--- a/tests/auto/qabstractitemview/tst_qabstractitemview.cpp
+++ b/tests/auto/qabstractitemview/tst_qabstractitemview.cpp
@@ -1213,14 +1213,14 @@ void tst_QAbstractItemView::task250754_fontChange()
tree.setModel(m);
w.show();
- w.resize(150,150);
+ w.resize(150,240);
QTest::qWait(30);
QFont font = tree.font();
- font.setPointSize(5);
+ font.setPixelSize(10);
tree.setFont(font);
QTRY_VERIFY(!tree.verticalScrollBar()->isVisible());
- font.setPointSize(45);
+ font.setPixelSize(60);
tree.setFont(font);
//now with the huge items, the scrollbar must be visible
QTRY_VERIFY(tree.verticalScrollBar()->isVisible());
@@ -1444,7 +1444,10 @@ void tst_QAbstractItemView::QTBUG6407_extendedSelection()
for(int i = 0; i < 50; ++i)
view.addItem(QString::number(i));
- view.resize(200,200);
+ QFont font = view.font();
+ font.setPixelSize(10);
+ view.setFont(font);
+ view.resize(200,240);
view.show();
QApplication::setActiveWindow(&view);
diff --git a/tests/auto/qabstractslider/tst_qabstractslider.cpp b/tests/auto/qabstractslider/tst_qabstractslider.cpp
index 40281c6..293af36 100644
--- a/tests/auto/qabstractslider/tst_qabstractslider.cpp
+++ b/tests/auto/qabstractslider/tst_qabstractslider.cpp
@@ -768,7 +768,7 @@ void tst_QAbstractSlider::wheelEvent_data()
<< true // inverted controls
<< 20 // wheel scroll lines
<< false // with modifiers
- << 1 // delta
+ << -1 // delta
<< int(Qt::Horizontal) // orientation of slider
<< int(Qt::Horizontal) // orientation of wheel
<< 30 // expected position after
@@ -782,7 +782,7 @@ void tst_QAbstractSlider::wheelEvent_data()
<< false // inverted controls
<< 1 // wheel scroll lines
<< false // with modifiers
- << 2 // delta
+ << -2 // delta
<< int(Qt::Horizontal) // orientation of slider
<< int(Qt::Horizontal) // orientation of wheel
<< 100 // expected position after
@@ -796,7 +796,7 @@ void tst_QAbstractSlider::wheelEvent_data()
<< false // inverted controls
<< 1 // wheel scroll lines
<< false // with modifiers
- << -2 // delta
+ << 2 // delta
<< int(Qt::Horizontal) // orientation of slider
<< int(Qt::Horizontal) // orientation of wheel
<< 0 // expected position after
@@ -810,7 +810,7 @@ void tst_QAbstractSlider::wheelEvent_data()
<< false // inverted controls
<< 20 // wheel scroll lines
<< true // with modifiers
- << 1 // delta
+ << -1 // delta
<< int(Qt::Horizontal) // orientation of slider
<< int(Qt::Horizontal) // orientation of wheel
<< 90 // expected position after
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 7b54a3b..7c1b97e 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -90,6 +90,8 @@ Q_DECLARE_METATYPE(QRectF)
#define COMPARE_REGIONS QTRY_COMPARE
#endif
+static QGraphicsRectItem staticItem; //QTBUG-7629, we should not crash at exit.
+
static void sendMousePress(QGraphicsScene *scene, const QPointF &point, Qt::MouseButton button = Qt::LeftButton)
{
QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress);
diff --git a/tests/auto/qimagereader/tst_qimagereader.cpp b/tests/auto/qimagereader/tst_qimagereader.cpp
index 121a8fa..99244c2 100644
--- a/tests/auto/qimagereader/tst_qimagereader.cpp
+++ b/tests/auto/qimagereader/tst_qimagereader.cpp
@@ -1633,6 +1633,35 @@ void tst_QImageReader::autoDetectImageFormat()
QVERIFY(reader.canRead());
QVERIFY(!reader.read().isNull());
}
+
+#ifdef QTEST_HAVE_JPEG
+ {
+ QImageReader io(prefix + "YCbCr_rgb.jpg");
+ io.setAutoDetectImageFormat(false);
+ // This should fail since no format string is given
+ QImage image;
+ QVERIFY(!io.read(&image));
+ }
+ {
+ QImageReader io(prefix + "YCbCr_rgb.jpg", "jpg");
+ io.setAutoDetectImageFormat(false);
+ QImage image;
+ QVERIFY(io.read(&image));
+ }
+#endif
+ {
+ QImageReader io(prefix + "tst7.png");
+ io.setAutoDetectImageFormat(false);
+ // This should fail since no format string is given
+ QImage image;
+ QVERIFY(!io.read(&image));
+ }
+ {
+ QImageReader io(prefix + "tst7.png", "png");
+ io.setAutoDetectImageFormat(false);
+ QImage image;
+ QVERIFY(io.read(&image));
+ }
}
void tst_QImageReader::fileNameProbing()
diff --git a/tests/auto/qlineedit/tst_qlineedit.cpp b/tests/auto/qlineedit/tst_qlineedit.cpp
index 7283916..ca84b38 100644
--- a/tests/auto/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/qlineedit/tst_qlineedit.cpp
@@ -271,6 +271,7 @@ private slots:
void taskQTBUG_4401_enterKeyClearsPassword();
void taskQTBUG_4679_moveToStartEndOfBlock();
void taskQTBUG_4679_selectToStartEndOfBlock();
+ void taskQTBUG_7395_readOnlyShortcut();
protected slots:
#ifdef QT3_SUPPORT
@@ -3454,10 +3455,8 @@ void tst_QLineEdit::task210502_caseInsensitiveInlineCompletion()
completer.setCompletionMode(QCompleter::InlineCompletion);
lineEdit.setCompleter(&completer);
lineEdit.show();
-#ifdef Q_WS_X11
- // to be safe and avoid failing setFocus with window managers
- qt_x11_wait_for_window_manager(&lineEdit);
-#endif
+ QTest::qWaitForWindowShown(&lineEdit);
+ QApplication::setActiveWindow(&lineEdit);
lineEdit.setFocus();
QTRY_VERIFY(lineEdit.hasFocus());
QTest::keyPress(&lineEdit, 'a');
@@ -3638,5 +3637,26 @@ void tst_QLineEdit::taskQTBUG_4679_selectToStartEndOfBlock()
#endif // Q_OS_MAC
}
+void tst_QLineEdit::taskQTBUG_7395_readOnlyShortcut()
+{
+ //ReadOnly QLineEdit should not intercept shortcut.
+ QLineEdit le;
+ le.setReadOnly(true);
+
+ QAction action(QString::fromLatin1("hello"), &le);
+ action.setShortcut(QString::fromLatin1("p"));
+ QSignalSpy spy(&action, SIGNAL(triggered()));
+ le.addAction(&action);
+
+ le.show();
+ QTest::qWaitForWindowShown(&le);
+ QApplication::setActiveWindow(&le);
+ le.setFocus();
+ QTRY_VERIFY(le.hasFocus());
+
+ QTest::keyClick(0, Qt::Key_P);
+ QCOMPARE(spy.count(), 1);
+}
+
QTEST_MAIN(tst_QLineEdit)
#include "tst_qlineedit.moc"
diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp
index 7109213..d2181f8 100644
--- a/tests/auto/qlistview/tst_qlistview.cpp
+++ b/tests/auto/qlistview/tst_qlistview.cpp
@@ -606,9 +606,8 @@ void tst_QListView::indexAt()
view2.setWrapping(true);
// We really want to make sure it is shown, because the layout won't be known until it is shown
view2.show();
- for (int i = 0; i < 5 && !view2.m_shown; ++i) {
- QTest::qWait(500);
- }
+ QTest::qWaitForWindowShown(&view2);
+ QTRY_VERIFY(view2.m_shown);
QVERIFY(view2.m_index.isValid());
QVERIFY(view2.m_index.row() != 0);
@@ -760,7 +759,8 @@ void tst_QListView::hideFirstRow()
view.setUniformItemSizes(true);
view.setRowHidden(0,true);
view.show();
- QTest::qWait(100);
+ QTest::qWaitForWindowShown(&view);
+ QTest::qWait(10);
}
void tst_QListView::batchedMode()
@@ -778,10 +778,10 @@ void tst_QListView::batchedMode()
view.setBatchSize(2);
view.resize(200,400);
view.show();
-
-#if !defined(Q_OS_WINCE)
+ QTest::qWaitForWindowShown(&view);
QTest::qWait(100);
-#else
+
+#if defined(Q_OS_WINCE)
QTest::qWait(2000);
#endif
QBitArray ba;
@@ -1203,9 +1203,9 @@ void tst_QListView::scrollTo()
//we click the item
QPoint p = lv.visualRect(index).center();
QTest::mouseClick(lv.viewport(), Qt::LeftButton, Qt::NoModifier, p);
- //let's wait 1 second because the scrolling is delayed
- QTest::qWait(1000);
- QCOMPARE(lv.visualRect(index).y(),0);
+ //let's wait because the scrolling is delayed
+ QTest::qWait(QApplication::doubleClickInterval() + 150);
+ QTRY_COMPARE(lv.visualRect(index).y(),0);
//we scroll down. As the item is to tall for the view, it will disappear
QTest::keyClick(lv.viewport(), Qt::Key_Down, Qt::NoModifier);
@@ -1222,9 +1222,9 @@ void tst_QListView::scrollTo()
//we click the item
p = lv.visualRect(index).center();
QTest::mouseClick(lv.viewport(), Qt::LeftButton, Qt::NoModifier, p);
- //let's wait 1 second because the scrolling is delayed
- QTest::qWait(1000);
- QCOMPARE(lv.visualRect(index).x(),0);
+ //let's wait because the scrolling is delayed
+ QTest::qWait(QApplication::doubleClickInterval() + 150);
+ QTRY_COMPARE(lv.visualRect(index).x(),0);
//we scroll right. As the item is too wide for the view, it will disappear
QTest::keyClick(lv.viewport(), Qt::Key_Right, Qt::NoModifier);
@@ -1243,9 +1243,9 @@ void tst_QListView::scrollTo()
//we click the item
p = lv.visualRect(index).center();
QTest::mouseClick(lv.viewport(), Qt::LeftButton, Qt::NoModifier, p);
- //let's wait 1 second because the scrolling is delayed
- QTest::qWait(1000);
- QCOMPARE(lv.visualRect(index).y(),0);
+ //let's wait because the scrolling is delayed
+ QTest::qWait(QApplication::doubleClickInterval() + 150);
+ QTRY_COMPARE(lv.visualRect(index).y(),0);
//we scroll down. As the item is too tall for the view, it will partially disappear
QTest::keyClick(lv.viewport(), Qt::Key_Down, Qt::NoModifier);
@@ -1277,7 +1277,7 @@ void tst_QListView::scrollBarRanges()
for (int h = 30; h <= 210; ++h) {
lv.resize(250, h);
- QTest::qWait(100); // wait for the layout to be done
+ QApplication::processEvents(); // wait for the layout to be done
int visibleRowCount = lv.viewport()->size().height() / rowHeight;
int invisibleRowCount = rowCount - visibleRowCount;
QCOMPARE(lv.verticalScrollBar()->maximum(), invisibleRowCount);
@@ -1366,7 +1366,7 @@ void tst_QListView::scrollBarAsNeeded()
model.setStringList(list);
QApplication::processEvents();
- QTest::qWait(100);
+ QTest::qWait(50);
QStringList replacement;
for (i = 0; i < itemCount; ++i) {
@@ -1375,10 +1375,9 @@ void tst_QListView::scrollBarAsNeeded()
model.setStringList(replacement);
QApplication::processEvents();
- QTest::qWait(100);
- QCOMPARE(lv.horizontalScrollBar()->isVisible(), horizontalScrollBarVisible);
- QCOMPARE(lv.verticalScrollBar()->isVisible(), verticalScrollBarVisible);
+ QTRY_COMPARE(lv.horizontalScrollBar()->isVisible(), horizontalScrollBarVisible);
+ QTRY_COMPARE(lv.verticalScrollBar()->isVisible(), verticalScrollBarVisible);
}
}
@@ -1433,10 +1432,9 @@ void tst_QListView::wordWrap()
lv.setFixedSize(150, 150);
lv.show();
QApplication::processEvents();
- QTest::qWait(100);
- QCOMPARE(lv.horizontalScrollBar()->isVisible(), false);
- QCOMPARE(lv.verticalScrollBar()->isVisible(), true);
+ QTRY_COMPARE(lv.horizontalScrollBar()->isVisible(), false);
+ QTRY_COMPARE(lv.verticalScrollBar()->isVisible(), true);
}
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
@@ -1557,7 +1555,8 @@ void tst_QListView::task248430_crashWith0SizedItem()
QStringListModel model(QStringList() << QLatin1String("item1") << QString());
view.setModel(&model);
view.show();
- QTest::qWait(100);
+ QTest::qWaitForWindowShown(&view);
+ QTest::qWait(20);
}
void tst_QListView::task250446_scrollChanged()
@@ -1569,21 +1568,21 @@ void tst_QListView::task250446_scrollChanged()
QVERIFY(index.isValid());
view.setCurrentIndex(index);
view.show();
- QTest::qWait(100);
+ QTest::qWaitForWindowShown(&view);
const int scrollValue = view.verticalScrollBar()->maximum();
view.verticalScrollBar()->setValue(scrollValue);
QCOMPARE(view.verticalScrollBar()->value(), scrollValue);
QCOMPARE(view.currentIndex(), index);
view.showMinimized();
- QTest::qWait(100);
- QCOMPARE(view.verticalScrollBar()->value(), scrollValue);
- QCOMPARE(view.currentIndex(), index);
+ QTest::qWait(50);
+ QTRY_COMPARE(view.verticalScrollBar()->value(), scrollValue);
+ QTRY_COMPARE(view.currentIndex(), index);
view.showNormal();
- QTest::qWait(100);
- QCOMPARE(view.verticalScrollBar()->value(), scrollValue);
- QCOMPARE(view.currentIndex(), index);
+ QTest::qWait(50);
+ QTRY_COMPARE(view.verticalScrollBar()->value(), scrollValue);
+ QTRY_COMPARE(view.currentIndex(), index);
}
void tst_QListView::task196118_visualRegionForSelection()
@@ -1699,7 +1698,7 @@ void tst_QListView::shiftSelectionWithNonUniformItemSizes()
view.setViewMode(QListView::IconMode);
view.setModel(&model);
view.show();
- QTest::qWait(30);
+ QTest::qWaitForWindowShown(&view);
// Verfify that item sizes are non-uniform
QVERIFY(view.sizeHintForIndex(model.index(0, 0)).height() > view.sizeHintForIndex(model.index(1, 0)).height());
@@ -1729,7 +1728,7 @@ void tst_QListView::shiftSelectionWithNonUniformItemSizes()
view.setViewMode(QListView::IconMode);
view.setModel(&model);
view.show();
- QTest::qWait(30);
+ QTest::qWaitForWindowShown(&view);
// Verfify that item sizes are non-uniform
QVERIFY(view.sizeHintForIndex(model.index(0, 0)).width() > view.sizeHintForIndex(model.index(1, 0)).width());
@@ -1789,7 +1788,6 @@ void tst_QListView::task262152_setModelColumnNavigate()
view.show();
QApplication::setActiveWindow(&view);
QTest::qWaitForWindowShown(&view);
- QTest::qWait(30);
QTRY_COMPARE(static_cast<QWidget *>(&view), QApplication::activeWindow());
QTest::keyClick(&view, Qt::Key_Down);
QTest::qWait(30);
@@ -1834,6 +1832,24 @@ void tst_QListView::taskQTBUG_2233_scrollHiddenItems()
QVERIFY(index.isValid());
QCOMPARE(index.row(), 2 * i + 1);
}
+
+ //QTBUG-7929 should not crash
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+ QScrollBar *bar = view.flow() == QListView::TopToBottom
+ ? view.verticalScrollBar() : view.horizontalScrollBar();
+
+ int nbVisibleItem = rowCount / 2 - bar->maximum();
+
+ bar->setValue(bar->maximum());
+ QApplication::processEvents();
+ for (int i = rowCount; i > rowCount / 2; i--) {
+ view.setRowHidden(i, true);
+ }
+ QApplication::processEvents();
+ QTest::qWait(50);
+ QCOMPARE(bar->value(), bar->maximum());
+ QCOMPARE(bar->maximum(), rowCount/4 - nbVisibleItem);
}
void tst_QListView::taskQTBUG_633_changeModelData()
diff --git a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
index 8e26696..ac9ca46 100644
--- a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
+++ b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
@@ -832,6 +832,7 @@ void tst_QScriptEngineAgent::functionEntryAndExit_builtin_data()
/** check behaiviour of built-in function */
void tst_QScriptEngineAgent::functionEntryAndExit_builtin()
{
+ QSKIP("The test fails on platforms others than Linux. The issue will be fixed with next JSC update", SkipAll);
QFETCH(QString, script);
QFETCH(QString, result);
QScriptEngine eng;
diff --git a/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp b/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp
index b2a85d7..41df98c 100644
--- a/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp
+++ b/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp
@@ -683,8 +683,72 @@ tst_Suite::tst_Suite()
addExpectedFailure("ecma_3/String/15.5.4.11.js", "Section 7", willFixInNextReleaseMessage);
addExpectedFailure("ecma_3/String/15.5.4.11.js", "Section 26", willFixInNextReleaseMessage);
+#ifndef Q_CC_MINGW
addExpectedFailure("ecma/Expressions/11.4.7-02.js", "-(-2147483648) == 2147483648", willFixInNextReleaseMessage);
addExpectedFailure("ecma/TypeConversion/9.3.1-3.js", "- -\"0x80000000\"", willFixInNextReleaseMessage);
+#endif
+
+#ifdef Q_OS_WIN
+ addExpectedFailure("ecma_3/Expressions/11.7.3-01.js", "11.7.3 - >>> should evaluate operands in order: order", "QTBUG-8056");
+ addExpectedFailure("ecma_3/Operators/order-01.js", "operator evaluation order: 11.7.3 >>>", "QTBUG-8056");
+ addExpectedFailure("ecma_3/Operators/order-01.js", "operator evaluation order: 11.13.2 >>>=", "QTBUG-8056");
+#endif
+
+#ifdef Q_CC_MINGW
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(NaN,0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(NaN,-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(Infinity, Infinity)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(Infinity, -Infinity)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(-Infinity, Infinity)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(-Infinity, -Infinity)", willFixInNextReleaseMessage);
+#endif
+
+#ifdef Q_OS_SOLARIS
+ addExpectedFailure("ecma/Expressions/11.13.2-2.js", "VAR1 = -0; VAR2= Infinity; VAR2 /= VAR1", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.13.2-2.js", "VAR1 = -0; VAR2= -Infinity; VAR2 /= VAR1", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.13.2-2.js", "VAR1 = 1; VAR2= -0; VAR1 /= VAR2", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.13.2-2.js", "VAR1 = -1; VAR2= -0; VAR1 /= VAR2", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.5.2.js", "Number.POSITIVE_INFINITY / -0", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.5.2.js", "Number.NEGATIVE_INFINITY / -0", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.5.2.js", "1 / -0", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.5.2.js", "-1 / -0", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.10.js", "Math.log(-0.0000001)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.10.js", "Math.log(-1)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.11.js", "Infinity/Math.max(-0,-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.12.js", "Infinity/Math.min(0,-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.12.js", "Infinity/Math.min(-0,-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(NaN,0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(NaN,-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Infinity/Math.pow(-Infinity, -1)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(0, -1)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(0, -0.5)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(0, -1000)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Infinity/Math.pow(-0, 1)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Infinity/Math.pow(-0, 3)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(-0, -2)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.15.js", "Infinity/Math.round(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.15.js", "Infinity/Math.round(-0.49)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.15.js", "Infinity/Math.round(-0.5)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.17.js", "Infinity/Math.sqrt(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.18.js", "Infinity/Math.tan(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.2.js", "Math.acos(1.00000001)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.2.js", "Math.acos(11.00000001)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.3.js", "Math.asin(1.000001)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.3.js", "Math.asin(-1.000001)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.3.js", "Infinity/Math.asin(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.4.js", "Infinity/Math.atan(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(0, -0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Infinity/Math.atan2(-0, 1)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(-0,\t-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(-0,\t-1)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.6.js", "Infinity/Math.ceil('-0')", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.6.js", "Infinity/Math.ceil(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.6.js", "Infinity/Math.ceil(-Number.MIN_VALUE)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.6.js", "Infinity/Math.ceil(-0.9)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.9.js", "Infinity/Math.floor(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/TypeConversion/9.3.1-3.js", "var z = 0; print(1/-z)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/TypeConversion/9.3.1-3.js", "1/-1e-2000", willFixInNextReleaseMessage);
+#endif
static const char klass[] = "tst_QScriptJsTestSuite";
diff --git a/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp b/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp
index 147896e..a3dfd6c 100644
--- a/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp
+++ b/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp
@@ -236,6 +236,16 @@ tst_Suite::tst_Suite()
addExpectedFailure("global-const-var-conflicts", "false", "true", willFixInNextReleaseMessage);
addExpectedFailure("string-lastindexof", "0", "-1", "test is wrong?");
+#ifndef Q_OS_LINUX
+ addExpectedFailure("to-precision", "1.235e+27", "1.234e+27", "QTBUG-8053: toPrecision(4) gives wrong result on Mac");
+#endif
+
+#ifdef Q_OS_SOLARIS
+ addExpectedFailure("math-min-max", "Infinity", "-Infinity", willFixInNextReleaseMessage);
+ addExpectedFailure("negate-zero", "false", "true", willFixInNextReleaseMessage);
+ addExpectedFailure("str-to-num", "Infinity", "-Infinity", willFixInNextReleaseMessage);
+#endif
+
addTestExclusion("debug-*", "not applicable");
addTestExclusion("mirror-*", "not applicable");
@@ -245,6 +255,10 @@ tst_Suite::tst_Suite()
addTestExclusion("string-case", "V8-specific behavior? (Doesn't pass on SpiderMonkey either)");
+#ifdef Q_CC_MINGW
+ addTestExclusion("date$", "QTBUG-7698: Date.prototype.setMonth() crashes on win32-g++");
+#endif
+
#ifdef Q_OS_WINCE
addTestExclusion("deep-recursion", "Demands too much memory on WinCE");
addTestExclusion("nested-repetition-count-overflow", "Demands too much memory on WinCE");
diff --git a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
index 5b61da2..fe084fa 100644
--- a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
+++ b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
@@ -202,6 +202,8 @@ private slots:
void sqlStatementUseIsNull_189093_data() { generic_data(); }
void sqlStatementUseIsNull_189093();
+ void sqlite_enable_cache_mode_data() { generic_data("QSQLITE"); }
+ void sqlite_enable_cache_mode();
private:
void createTestTables(QSqlDatabase db);
@@ -2485,5 +2487,23 @@ void tst_QSqlDatabase::oci_tables()
QVERIFY(db.tables(QSql::SystemTables).contains(systemTableName.toUpper()));
}
+void tst_QSqlDatabase::sqlite_enable_cache_mode()
+{
+ QFETCH(QString, dbName);
+ if(dbName.endsWith(":memory:"))
+ QSKIP( "cache mode is meaningless for :memory: databases", SkipSingle );
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ CHECK_DATABASE(db);
+ db.close();
+ db.setConnectOptions("QSQLITE_ENABLE_SHARED_CACHE");
+ QVERIFY_SQL(db, open());
+ QSqlDatabase db2 = QSqlDatabase::cloneDatabase(db, dbName+":cachemodeconn2");
+ db2.setConnectOptions("QSQLITE_ENABLE_SHARED_CACHE");
+ QVERIFY_SQL(db2, open());
+ QSqlQuery q(db), q2(db2);
+ QVERIFY_SQL(q, exec("select * from "+qTableName("qtest")));
+ QVERIFY_SQL(q2, exec("select * from "+qTableName("qtest")));
+}
+
QTEST_MAIN(tst_QSqlDatabase)
#include "tst_qsqldatabase.moc"
diff --git a/tests/auto/qtextcodec/tst_qtextcodec.cpp b/tests/auto/qtextcodec/tst_qtextcodec.cpp
index eb348fb..65b0448 100644
--- a/tests/auto/qtextcodec/tst_qtextcodec.cpp
+++ b/tests/auto/qtextcodec/tst_qtextcodec.cpp
@@ -47,6 +47,8 @@
#include <qtextdocument.h>
#include <time.h>
#include <qprocess.h>
+#include <QtConcurrentMap>
+#include <QThreadPool>
#ifdef Q_OS_SYMBIAN
#define SRCDIR ""
@@ -58,6 +60,9 @@ class tst_QTextCodec : public QObject
Q_OBJECT
private slots:
+
+ void threadSafety();
+
void toUnicode_data();
void toUnicode();
void codecForName_data();
@@ -1904,5 +1909,46 @@ void tst_QTextCodec::toLocal8Bit()
}
#endif
+static QByteArray loadAndConvert(const QByteArray &codecName)
+{
+ QTextCodec *c = QTextCodec::codecForName(codecName);
+ if (!c) {
+ qDebug() << "WARNING " << codecName << " not found? ";
+ return QByteArray();
+ }
+ QString str = QString::fromLatin1(codecName);
+ QByteArray b = c->fromUnicode(str);
+ c->toUnicode(b);
+ return codecName;
+}
+
+static int loadAndConvertMIB(int mib)
+{
+ QTextCodec *c = QTextCodec::codecForMib(mib);
+ if (!c) {
+ qDebug() << "WARNING " << mib << " not found? ";
+ return 0;
+ }
+ QString str = QString::number(mib);
+ QByteArray b = c->fromUnicode(str);
+ c->toUnicode(b);
+ return mib;
+}
+
+
+void tst_QTextCodec::threadSafety()
+{
+ QThreadPool::globalInstance()->setMaxThreadCount(12);
+
+ QList<QByteArray> codecList = QTextCodec::availableCodecs();
+ QFuture<QByteArray> res = QtConcurrent::mapped(codecList, loadAndConvert);
+
+ QList<int> mibList = QTextCodec::availableMibs();
+ QFuture<int> res2 = QtConcurrent::mapped(mibList, loadAndConvertMIB);
+
+ QCOMPARE(res.results(), codecList);
+ QCOMPARE(res2.results(), mibList);
+}
+
QTEST_MAIN(tst_QTextCodec)
#include "tst_qtextcodec.moc"
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index 1fb323e..b59017b 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -250,6 +250,7 @@ private slots:
#else
void persistentWinId();
#endif
+ void showNativeChild();
void qobject_castInDestroyedSlot();
void showHideEvent_data();
@@ -391,6 +392,10 @@ private slots:
#ifdef Q_OS_SYMBIAN
void cbaVisibility();
+ void fullScreenWindowModeTransitions();
+ void maximizedWindowModeTransitions();
+ void minimizedWindowModeTransitions();
+ void normalWindowModeTransitions();
#endif
void focusProxyAndInputMethods();
@@ -4582,6 +4587,16 @@ void tst_QWidget::persistentWinId()
}
#endif // Q_OS_SYMBIAN
+void tst_QWidget::showNativeChild()
+{
+ QWidget topLevel;
+ topLevel.setGeometry(0, 0, 100, 100);
+ QWidget child(&topLevel);
+ child.winId();
+ topLevel.show();
+ QTest::qWaitForWindowShown(&topLevel);
+}
+
class ShowHideEventWidget : public QWidget
{
public:
@@ -9689,6 +9704,226 @@ void tst_QWidget::cbaVisibility()
CEikButtonGroupContainer* buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba();
QVERIFY(buttonGroup->IsVisible());
}
+
+void tst_QWidget::fullScreenWindowModeTransitions()
+{
+ QWidget widget;
+ QVBoxLayout *layout = new QVBoxLayout;
+ QPushButton *button = new QPushButton("test Button");
+ layout->addWidget(button);
+ widget.setLayout(layout);
+ widget.show();
+
+ const QRect normalGeometry = widget.normalGeometry();
+ const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget);
+ const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget);
+ CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane();
+ CEikButtonGroupContainer *buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba();
+
+ //Enter
+ widget.showNormal();
+ widget.showFullScreen();
+ QCOMPARE(widget.geometry(), fullScreenGeometry);
+ QVERIFY(!buttonGroup->IsVisible());
+ QVERIFY(!statusPane->IsVisible());
+
+ widget.showMaximized();
+ widget.showFullScreen();
+ QCOMPARE(widget.geometry(), fullScreenGeometry);
+ QVERIFY(!buttonGroup->IsVisible());
+ QVERIFY(!statusPane->IsVisible());
+
+ widget.showMinimized();
+ widget.showFullScreen();
+ QCOMPARE(widget.geometry(), fullScreenGeometry);
+ QVERIFY(!buttonGroup->IsVisible());
+ QVERIFY(!statusPane->IsVisible());
+
+ //Exit
+ widget.showFullScreen();
+ widget.showNormal();
+ QCOMPARE(widget.geometry(), normalGeometry);
+ QVERIFY(buttonGroup->IsVisible());
+ QVERIFY(statusPane->IsVisible());
+
+ widget.showFullScreen();
+ widget.showMaximized();
+ QCOMPARE(widget.geometry(), maximumScreenGeometry);
+ QVERIFY(buttonGroup->IsVisible());
+ QVERIFY(statusPane->IsVisible());
+
+ widget.showFullScreen();
+ widget.showMinimized();
+ QCOMPARE(widget.geometry(), fullScreenGeometry);
+ QVERIFY(!buttonGroup->IsVisible());
+ QVERIFY(!statusPane->IsVisible());
+}
+
+void tst_QWidget::maximizedWindowModeTransitions()
+{
+ QWidget widget;
+ QVBoxLayout *layout = new QVBoxLayout;
+ QPushButton *button = new QPushButton("test Button");
+ layout->addWidget(button);
+ widget.setLayout(layout);
+ widget.show();
+
+ const QRect normalGeometry = widget.normalGeometry();
+ const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget);
+ const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget);
+ CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane();
+ CEikButtonGroupContainer *buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba();
+
+ //Enter
+ widget.showNormal();
+ widget.showMaximized();
+ QCOMPARE(widget.geometry(), maximumScreenGeometry);
+ QVERIFY(buttonGroup->IsVisible());
+ QVERIFY(statusPane->IsVisible());
+
+ widget.showFullScreen();
+ widget.showMaximized();
+ QCOMPARE(widget.geometry(), maximumScreenGeometry);
+ QVERIFY(buttonGroup->IsVisible());
+ QVERIFY(statusPane->IsVisible());
+
+ widget.showMinimized();
+ widget.showMaximized();
+ QCOMPARE(widget.geometry(), maximumScreenGeometry);
+ QVERIFY(buttonGroup->IsVisible());
+ QVERIFY(statusPane->IsVisible());
+
+ //Exit
+ widget.showMaximized();
+ widget.showNormal();
+ QCOMPARE(widget.geometry(), normalGeometry);
+ QVERIFY(buttonGroup->IsVisible());
+ QVERIFY(statusPane->IsVisible());
+
+ widget.showMaximized();
+ widget.showFullScreen();
+ QCOMPARE(widget.geometry(), fullScreenGeometry);
+ QVERIFY(!buttonGroup->IsVisible());
+ QVERIFY(!statusPane->IsVisible());
+
+ widget.showMaximized();
+ widget.showMinimized();
+ // Since showMinimized hides window decoration availableGeometry gives different value
+ // than with decoration visible. Altual size does not really matter since widget is invisible.
+ QCOMPARE(widget.geometry(), qApp->desktop()->availableGeometry(&widget));
+ QVERIFY(!buttonGroup->IsVisible());
+ QVERIFY(!statusPane->IsVisible());
+}
+
+void tst_QWidget::minimizedWindowModeTransitions()
+{
+ QWidget widget;
+ QVBoxLayout *layout = new QVBoxLayout;
+ QPushButton *button = new QPushButton("test Button");
+ layout->addWidget(button);
+ widget.setLayout(layout);
+ widget.show();
+
+ const QRect normalGeometry = widget.normalGeometry();
+ const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget);
+ const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget);
+ CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane();
+ CEikButtonGroupContainer *buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba();
+
+ //Enter
+ widget.showNormal();
+ widget.showMinimized();
+ QCOMPARE(widget.geometry(), normalGeometry);
+ QVERIFY(!buttonGroup->IsVisible());
+ QVERIFY(!statusPane->IsVisible());
+
+ widget.showFullScreen();
+ widget.showMinimized();
+ QCOMPARE(widget.geometry(), fullScreenGeometry);
+ QVERIFY(!buttonGroup->IsVisible());
+ QVERIFY(!statusPane->IsVisible());
+
+ widget.showMaximized();
+ widget.showMinimized();
+ // Since showMinimized hides window decoration availableGeometry gives different value
+ // than with decoration visible. Altual size does not really matter since widget is invisible.
+ QCOMPARE(widget.geometry(), qApp->desktop()->availableGeometry(&widget));
+ QVERIFY(!buttonGroup->IsVisible());
+ QVERIFY(!statusPane->IsVisible());
+
+ //Exit
+ widget.showMinimized();
+ widget.showNormal();
+ QCOMPARE(widget.geometry(), normalGeometry);
+ QVERIFY(buttonGroup->IsVisible());
+ QVERIFY(statusPane->IsVisible());
+
+ widget.showMinimized();
+ widget.showFullScreen();
+ QCOMPARE(widget.geometry(), fullScreenGeometry);
+ QVERIFY(!buttonGroup->IsVisible());
+ QVERIFY(!statusPane->IsVisible());
+
+ widget.showMinimized();
+ widget.showMaximized();
+ QCOMPARE(widget.geometry(), maximumScreenGeometry);
+ QVERIFY(buttonGroup->IsVisible());
+ QVERIFY(statusPane->IsVisible());
+}
+
+void tst_QWidget::normalWindowModeTransitions()
+{
+ QWidget widget;
+ QVBoxLayout *layout = new QVBoxLayout;
+ QPushButton *button = new QPushButton("test Button");
+ layout->addWidget(button);
+ widget.setLayout(layout);
+ widget.show();
+
+ const QRect normalGeometry = widget.normalGeometry();
+ const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget);
+ const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget);
+ CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane();
+ CEikButtonGroupContainer *buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba();
+
+ //Enter
+ widget.showMaximized();
+ widget.showNormal();
+ QCOMPARE(widget.geometry(), normalGeometry);
+ QVERIFY(buttonGroup->IsVisible());
+ QVERIFY(statusPane->IsVisible());
+
+ widget.showFullScreen();
+ widget.showNormal();
+ QCOMPARE(widget.geometry(), normalGeometry);
+ QVERIFY(buttonGroup->IsVisible());
+ QVERIFY(statusPane->IsVisible());
+
+ widget.showMinimized();
+ widget.showNormal();
+ QCOMPARE(widget.geometry(), normalGeometry);
+ QVERIFY(buttonGroup->IsVisible());
+ QVERIFY(statusPane->IsVisible());
+
+ //Exit
+ widget.showNormal();
+ widget.showMaximized();
+ QCOMPARE(widget.geometry(), maximumScreenGeometry);
+ QVERIFY(buttonGroup->IsVisible());
+ QVERIFY(statusPane->IsVisible());
+
+ widget.showNormal();
+ widget.showFullScreen();
+ QCOMPARE(widget.geometry(), fullScreenGeometry);
+ QVERIFY(!buttonGroup->IsVisible());
+ QVERIFY(!statusPane->IsVisible());
+
+ widget.showNormal();
+ widget.showMinimized();
+ QCOMPARE(widget.geometry(), normalGeometry);
+ QVERIFY(!buttonGroup->IsVisible());
+ QVERIFY(!statusPane->IsVisible());
+}
#endif
class InputContextTester : public QInputContext
diff --git a/tests/benchmarks/benchmarks.pro b/tests/benchmarks/benchmarks.pro
index 7a27cc9..c406d54 100644
--- a/tests/benchmarks/benchmarks.pro
+++ b/tests/benchmarks/benchmarks.pro
@@ -1,48 +1,8 @@
TEMPLATE = subdirs
-SUBDIRS = containers-associative \
- containers-sequential \
- qanimation \
- qbytearray \
- qfileinfo \
- qfile_vs_qnetworkaccessmanager \
- qfontmetrics \
- qhostinfo \
- qpainter \
- qtestlib-simple events \
- qtext \
- qiodevice \
- qpixmap \
- blendbench \
- qstring \
- qstringlist \
- qmatrix4x4 \
- qnetworkreply \
- qobject \
- qrect \
- qregexp \
- qregion \
- qvariant \
- qwidget \
- qtwidgets \
- qapplication \
- qdir \
- qdiriterator \
- qgraphicsanchorlayout \
- qgraphicsitem \
- qgraphicswidget \
- qmetaobject \
- qpixmapcache \
- qquaternion \
- qscriptclass \
- qscriptengine \
- qscriptvalue \
- qstringbuilder \
- qstylesheetstyle \
- qsvgrenderer \
- qtcpserver \
- qtableview \
- qthreadstorage
-
-
-
+SUBDIRS = \
+ corelib \
+ gui \
+ network \
+ script \
+ svg
contains(QT_CONFIG, opengl): SUBDIRS += opengl
diff --git a/tests/benchmarks/corelib/corelib.pro b/tests/benchmarks/corelib/corelib.pro
new file mode 100644
index 0000000..72fca33
--- /dev/null
+++ b/tests/benchmarks/corelib/corelib.pro
@@ -0,0 +1,6 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ io \
+ kernel \
+ thread \
+ tools
diff --git a/tests/benchmarks/corelib/io/io.pro b/tests/benchmarks/corelib/io/io.pro
new file mode 100644
index 0000000..97445d7
--- /dev/null
+++ b/tests/benchmarks/corelib/io/io.pro
@@ -0,0 +1,9 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qdir \
+ qdiriterator \
+ qfile \
+ qfileinfo \
+ qiodevice \
+ qtemporaryfile
+
diff --git a/tests/benchmarks/qdir/qdir.pro b/tests/benchmarks/corelib/io/qdir/qdir.pro
index 2cdebfd..2cdebfd 100644
--- a/tests/benchmarks/qdir/qdir.pro
+++ b/tests/benchmarks/corelib/io/qdir/qdir.pro
diff --git a/tests/benchmarks/qdir/tst_qdir.cpp b/tests/benchmarks/corelib/io/qdir/tst_qdir.cpp
index aea9fd0..aea9fd0 100644
--- a/tests/benchmarks/qdir/tst_qdir.cpp
+++ b/tests/benchmarks/corelib/io/qdir/tst_qdir.cpp
diff --git a/tests/benchmarks/qdiriterator/main.cpp b/tests/benchmarks/corelib/io/qdiriterator/main.cpp
index afa6b7b..afa6b7b 100644
--- a/tests/benchmarks/qdiriterator/main.cpp
+++ b/tests/benchmarks/corelib/io/qdiriterator/main.cpp
diff --git a/tests/benchmarks/qdiriterator/qdiriterator.pro b/tests/benchmarks/corelib/io/qdiriterator/qdiriterator.pro
index e06d746..e06d746 100755
--- a/tests/benchmarks/qdiriterator/qdiriterator.pro
+++ b/tests/benchmarks/corelib/io/qdiriterator/qdiriterator.pro
diff --git a/tests/benchmarks/qdiriterator/qfilesystemiterator.cpp b/tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.cpp
index 267d53f..267d53f 100644
--- a/tests/benchmarks/qdiriterator/qfilesystemiterator.cpp
+++ b/tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.cpp
diff --git a/tests/benchmarks/qdiriterator/qfilesystemiterator.h b/tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.h
index 4aad3a1..4aad3a1 100644
--- a/tests/benchmarks/qdiriterator/qfilesystemiterator.h
+++ b/tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.h
diff --git a/tests/benchmarks/qfile/main.cpp b/tests/benchmarks/corelib/io/qfile/main.cpp
index 103b77c..103b77c 100644
--- a/tests/benchmarks/qfile/main.cpp
+++ b/tests/benchmarks/corelib/io/qfile/main.cpp
diff --git a/tests/benchmarks/qfile/qfile.pro b/tests/benchmarks/corelib/io/qfile/qfile.pro
index 99505c3..99505c3 100644
--- a/tests/benchmarks/qfile/qfile.pro
+++ b/tests/benchmarks/corelib/io/qfile/qfile.pro
diff --git a/tests/benchmarks/qfileinfo/main.cpp b/tests/benchmarks/corelib/io/qfileinfo/main.cpp
index 025787f..025787f 100644
--- a/tests/benchmarks/qfileinfo/main.cpp
+++ b/tests/benchmarks/corelib/io/qfileinfo/main.cpp
diff --git a/tests/benchmarks/qfileinfo/qfileinfo.pro b/tests/benchmarks/corelib/io/qfileinfo/qfileinfo.pro
index 295cb50..295cb50 100644
--- a/tests/benchmarks/qfileinfo/qfileinfo.pro
+++ b/tests/benchmarks/corelib/io/qfileinfo/qfileinfo.pro
diff --git a/tests/benchmarks/qiodevice/main.cpp b/tests/benchmarks/corelib/io/qiodevice/main.cpp
index 4af697c..4af697c 100644
--- a/tests/benchmarks/qiodevice/main.cpp
+++ b/tests/benchmarks/corelib/io/qiodevice/main.cpp
diff --git a/tests/benchmarks/qiodevice/qiodevice.pro b/tests/benchmarks/corelib/io/qiodevice/qiodevice.pro
index 749a4d6..749a4d6 100755
--- a/tests/benchmarks/qiodevice/qiodevice.pro
+++ b/tests/benchmarks/corelib/io/qiodevice/qiodevice.pro
diff --git a/tests/benchmarks/qtemporaryfile/main.cpp b/tests/benchmarks/corelib/io/qtemporaryfile/main.cpp
index 8b71189..8b71189 100644
--- a/tests/benchmarks/qtemporaryfile/main.cpp
+++ b/tests/benchmarks/corelib/io/qtemporaryfile/main.cpp
diff --git a/tests/benchmarks/qtemporaryfile/qtemporaryfile.pro b/tests/benchmarks/corelib/io/qtemporaryfile/qtemporaryfile.pro
index c1b04f4..c1b04f4 100644
--- a/tests/benchmarks/qtemporaryfile/qtemporaryfile.pro
+++ b/tests/benchmarks/corelib/io/qtemporaryfile/qtemporaryfile.pro
diff --git a/tests/benchmarks/events/events.pro b/tests/benchmarks/corelib/kernel/events/events.pro
index adf2317..adf2317 100644
--- a/tests/benchmarks/events/events.pro
+++ b/tests/benchmarks/corelib/kernel/events/events.pro
diff --git a/tests/benchmarks/events/main.cpp b/tests/benchmarks/corelib/kernel/events/main.cpp
index 0dd2c18..0dd2c18 100644
--- a/tests/benchmarks/events/main.cpp
+++ b/tests/benchmarks/corelib/kernel/events/main.cpp
diff --git a/tests/benchmarks/corelib/kernel/kernel.pro b/tests/benchmarks/corelib/kernel/kernel.pro
new file mode 100644
index 0000000..91cf3c5
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/kernel.pro
@@ -0,0 +1,6 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ events \
+ qmetaobject \
+ qobject \
+ qvariant
diff --git a/tests/benchmarks/qmetaobject/main.cpp b/tests/benchmarks/corelib/kernel/qmetaobject/main.cpp
index c375a16..c375a16 100644
--- a/tests/benchmarks/qmetaobject/main.cpp
+++ b/tests/benchmarks/corelib/kernel/qmetaobject/main.cpp
diff --git a/tests/benchmarks/qmetaobject/qmetaobject.pro b/tests/benchmarks/corelib/kernel/qmetaobject/qmetaobject.pro
index 78300f6..78300f6 100644
--- a/tests/benchmarks/qmetaobject/qmetaobject.pro
+++ b/tests/benchmarks/corelib/kernel/qmetaobject/qmetaobject.pro
diff --git a/tests/benchmarks/qobject/main.cpp b/tests/benchmarks/corelib/kernel/qobject/main.cpp
index 7f24ebd..7f24ebd 100644
--- a/tests/benchmarks/qobject/main.cpp
+++ b/tests/benchmarks/corelib/kernel/qobject/main.cpp
diff --git a/tests/benchmarks/qobject/object.cpp b/tests/benchmarks/corelib/kernel/qobject/object.cpp
index d775a32..d775a32 100644
--- a/tests/benchmarks/qobject/object.cpp
+++ b/tests/benchmarks/corelib/kernel/qobject/object.cpp
diff --git a/tests/benchmarks/qobject/object.h b/tests/benchmarks/corelib/kernel/qobject/object.h
index 7e4933f..7e4933f 100644
--- a/tests/benchmarks/qobject/object.h
+++ b/tests/benchmarks/corelib/kernel/qobject/object.h
diff --git a/tests/benchmarks/qobject/qobject.pro b/tests/benchmarks/corelib/kernel/qobject/qobject.pro
index 2855de4..2855de4 100644
--- a/tests/benchmarks/qobject/qobject.pro
+++ b/tests/benchmarks/corelib/kernel/qobject/qobject.pro
diff --git a/tests/benchmarks/qvariant/qvariant.pro b/tests/benchmarks/corelib/kernel/qvariant/qvariant.pro
index 63b5442..63b5442 100644
--- a/tests/benchmarks/qvariant/qvariant.pro
+++ b/tests/benchmarks/corelib/kernel/qvariant/qvariant.pro
diff --git a/tests/benchmarks/qvariant/tst_qvariant.cpp b/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
index 82dc7dd..82dc7dd 100644
--- a/tests/benchmarks/qvariant/tst_qvariant.cpp
+++ b/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
diff --git a/tests/benchmarks/qthreadstorage/qthreadstorage.pro b/tests/benchmarks/corelib/thread/qthreadstorage/qthreadstorage.pro
index f9c1978..f9c1978 100644
--- a/tests/benchmarks/qthreadstorage/qthreadstorage.pro
+++ b/tests/benchmarks/corelib/thread/qthreadstorage/qthreadstorage.pro
diff --git a/tests/benchmarks/qthreadstorage/tst_qthreadstorage.cpp b/tests/benchmarks/corelib/thread/qthreadstorage/tst_qthreadstorage.cpp
index faae4d7..faae4d7 100644
--- a/tests/benchmarks/qthreadstorage/tst_qthreadstorage.cpp
+++ b/tests/benchmarks/corelib/thread/qthreadstorage/tst_qthreadstorage.cpp
diff --git a/tests/benchmarks/corelib/thread/thread.pro b/tests/benchmarks/corelib/thread/thread.pro
new file mode 100644
index 0000000..26570ba
--- /dev/null
+++ b/tests/benchmarks/corelib/thread/thread.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qthreadstorage
diff --git a/tests/benchmarks/containers-associative/containers-associative.pro b/tests/benchmarks/corelib/tools/containers-associative/containers-associative.pro
index c6f3fa6..c6f3fa6 100644
--- a/tests/benchmarks/containers-associative/containers-associative.pro
+++ b/tests/benchmarks/corelib/tools/containers-associative/containers-associative.pro
diff --git a/tests/benchmarks/containers-associative/main.cpp b/tests/benchmarks/corelib/tools/containers-associative/main.cpp
index 4c6dae4..4c6dae4 100644
--- a/tests/benchmarks/containers-associative/main.cpp
+++ b/tests/benchmarks/corelib/tools/containers-associative/main.cpp
diff --git a/tests/benchmarks/containers-sequential/containers-sequential.pro b/tests/benchmarks/corelib/tools/containers-sequential/containers-sequential.pro
index bf6db44..bf6db44 100644
--- a/tests/benchmarks/containers-sequential/containers-sequential.pro
+++ b/tests/benchmarks/corelib/tools/containers-sequential/containers-sequential.pro
diff --git a/tests/benchmarks/containers-sequential/main.cpp b/tests/benchmarks/corelib/tools/containers-sequential/main.cpp
index a6e405c..a6e405c 100644
--- a/tests/benchmarks/containers-sequential/main.cpp
+++ b/tests/benchmarks/corelib/tools/containers-sequential/main.cpp
diff --git a/tests/benchmarks/qbytearray/main.cpp b/tests/benchmarks/corelib/tools/qbytearray/main.cpp
index 22d4815..22d4815 100644
--- a/tests/benchmarks/qbytearray/main.cpp
+++ b/tests/benchmarks/corelib/tools/qbytearray/main.cpp
diff --git a/tests/benchmarks/qbytearray/qbytearray.pro b/tests/benchmarks/corelib/tools/qbytearray/qbytearray.pro
index a0bf021..a0bf021 100755
--- a/tests/benchmarks/qbytearray/qbytearray.pro
+++ b/tests/benchmarks/corelib/tools/qbytearray/qbytearray.pro
diff --git a/tests/benchmarks/qrect/main.cpp b/tests/benchmarks/corelib/tools/qrect/main.cpp
index e293bfa..e293bfa 100644
--- a/tests/benchmarks/qrect/main.cpp
+++ b/tests/benchmarks/corelib/tools/qrect/main.cpp
diff --git a/tests/benchmarks/qrect/qrect.pro b/tests/benchmarks/corelib/tools/qrect/qrect.pro
index 6e35119..6e35119 100644
--- a/tests/benchmarks/qrect/qrect.pro
+++ b/tests/benchmarks/corelib/tools/qrect/qrect.pro
diff --git a/tests/benchmarks/qregexp/main.cpp b/tests/benchmarks/corelib/tools/qregexp/main.cpp
index ab9ed71..ab9ed71 100644
--- a/tests/benchmarks/qregexp/main.cpp
+++ b/tests/benchmarks/corelib/tools/qregexp/main.cpp
diff --git a/tests/benchmarks/qregexp/qregexp.pro b/tests/benchmarks/corelib/tools/qregexp/qregexp.pro
index 83d723c..83d723c 100644
--- a/tests/benchmarks/qregexp/qregexp.pro
+++ b/tests/benchmarks/corelib/tools/qregexp/qregexp.pro
diff --git a/tests/benchmarks/qstring/main.cpp b/tests/benchmarks/corelib/tools/qstring/main.cpp
index 12826eb..12826eb 100644
--- a/tests/benchmarks/qstring/main.cpp
+++ b/tests/benchmarks/corelib/tools/qstring/main.cpp
diff --git a/tests/benchmarks/qstring/qstring.pro b/tests/benchmarks/corelib/tools/qstring/qstring.pro
index 2e7c86a..2e7c86a 100644
--- a/tests/benchmarks/qstring/qstring.pro
+++ b/tests/benchmarks/corelib/tools/qstring/qstring.pro
diff --git a/tests/benchmarks/qstring/utf-8.txt b/tests/benchmarks/corelib/tools/qstring/utf-8.txt
index a8a58de..a8a58de 100644
--- a/tests/benchmarks/qstring/utf-8.txt
+++ b/tests/benchmarks/corelib/tools/qstring/utf-8.txt
diff --git a/tests/benchmarks/qstringbuilder/main.cpp b/tests/benchmarks/corelib/tools/qstringbuilder/main.cpp
index 9bd146f..9bd146f 100644
--- a/tests/benchmarks/qstringbuilder/main.cpp
+++ b/tests/benchmarks/corelib/tools/qstringbuilder/main.cpp
diff --git a/tests/benchmarks/qstringbuilder/qstringbuilder.pro b/tests/benchmarks/corelib/tools/qstringbuilder/qstringbuilder.pro
index 79171b4..79171b4 100644
--- a/tests/benchmarks/qstringbuilder/qstringbuilder.pro
+++ b/tests/benchmarks/corelib/tools/qstringbuilder/qstringbuilder.pro
diff --git a/tests/benchmarks/qstringlist/.gitignore b/tests/benchmarks/corelib/tools/qstringlist/.gitignore
index 3e0cdc9..3e0cdc9 100644
--- a/tests/benchmarks/qstringlist/.gitignore
+++ b/tests/benchmarks/corelib/tools/qstringlist/.gitignore
diff --git a/tests/benchmarks/qstringlist/main.cpp b/tests/benchmarks/corelib/tools/qstringlist/main.cpp
index 3fac598..3fac598 100644
--- a/tests/benchmarks/qstringlist/main.cpp
+++ b/tests/benchmarks/corelib/tools/qstringlist/main.cpp
diff --git a/tests/benchmarks/qstringlist/qstringlist.pro b/tests/benchmarks/corelib/tools/qstringlist/qstringlist.pro
index 11cceb0..11cceb0 100644
--- a/tests/benchmarks/qstringlist/qstringlist.pro
+++ b/tests/benchmarks/corelib/tools/qstringlist/qstringlist.pro
diff --git a/tests/benchmarks/corelib/tools/tools.pro b/tests/benchmarks/corelib/tools/tools.pro
new file mode 100644
index 0000000..12c23fc
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/tools.pro
@@ -0,0 +1,10 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ containers-associative \
+ containers-sequential \
+ qbytearray \
+ qrect \
+ qregexp \
+ qstring \
+ qstringbuilder \
+ qstringlist
diff --git a/tests/benchmarks/gui/animation/animation.pro b/tests/benchmarks/gui/animation/animation.pro
new file mode 100644
index 0000000..a4ba273
--- /dev/null
+++ b/tests/benchmarks/gui/animation/animation.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS = qanimation
diff --git a/tests/benchmarks/qanimation/dummyanimation.cpp b/tests/benchmarks/gui/animation/qanimation/dummyanimation.cpp
index f79cc5b..f79cc5b 100644
--- a/tests/benchmarks/qanimation/dummyanimation.cpp
+++ b/tests/benchmarks/gui/animation/qanimation/dummyanimation.cpp
diff --git a/tests/benchmarks/qanimation/dummyanimation.h b/tests/benchmarks/gui/animation/qanimation/dummyanimation.h
index 1df76be..1df76be 100644
--- a/tests/benchmarks/qanimation/dummyanimation.h
+++ b/tests/benchmarks/gui/animation/qanimation/dummyanimation.h
diff --git a/tests/benchmarks/qanimation/dummyobject.cpp b/tests/benchmarks/gui/animation/qanimation/dummyobject.cpp
index 2b66cda..2b66cda 100644
--- a/tests/benchmarks/qanimation/dummyobject.cpp
+++ b/tests/benchmarks/gui/animation/qanimation/dummyobject.cpp
diff --git a/tests/benchmarks/qanimation/dummyobject.h b/tests/benchmarks/gui/animation/qanimation/dummyobject.h
index 31614fd..31614fd 100644
--- a/tests/benchmarks/qanimation/dummyobject.h
+++ b/tests/benchmarks/gui/animation/qanimation/dummyobject.h
diff --git a/tests/benchmarks/qanimation/main.cpp b/tests/benchmarks/gui/animation/qanimation/main.cpp
index 8b9884e..8b9884e 100644
--- a/tests/benchmarks/qanimation/main.cpp
+++ b/tests/benchmarks/gui/animation/qanimation/main.cpp
diff --git a/tests/benchmarks/qanimation/qanimation.pro b/tests/benchmarks/gui/animation/qanimation/qanimation.pro
index 55cd75e..55cd75e 100644
--- a/tests/benchmarks/qanimation/qanimation.pro
+++ b/tests/benchmarks/gui/animation/qanimation/qanimation.pro
diff --git a/tests/benchmarks/qanimation/rectanimation.cpp b/tests/benchmarks/gui/animation/qanimation/rectanimation.cpp
index e6d7a7e..e6d7a7e 100644
--- a/tests/benchmarks/qanimation/rectanimation.cpp
+++ b/tests/benchmarks/gui/animation/qanimation/rectanimation.cpp
diff --git a/tests/benchmarks/qanimation/rectanimation.h b/tests/benchmarks/gui/animation/qanimation/rectanimation.h
index 42b9376..42b9376 100644
--- a/tests/benchmarks/qanimation/rectanimation.h
+++ b/tests/benchmarks/gui/animation/qanimation/rectanimation.h
diff --git a/tests/benchmarks/gui/graphicsview/graphicsview.pro b/tests/benchmarks/gui/graphicsview/graphicsview.pro
new file mode 100644
index 0000000..93c00d2
--- /dev/null
+++ b/tests/benchmarks/gui/graphicsview/graphicsview.pro
@@ -0,0 +1,7 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qgraphicsanchorlayout \
+ qgraphicsitem \
+ qgraphicsscene \
+ qgraphicsview \
+ qgraphicswidget
diff --git a/tests/benchmarks/qgraphicsanchorlayout/qgraphicsanchorlayout.pro b/tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/qgraphicsanchorlayout.pro
index 0d563b9..0d563b9 100644
--- a/tests/benchmarks/qgraphicsanchorlayout/qgraphicsanchorlayout.pro
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/qgraphicsanchorlayout.pro
diff --git a/tests/benchmarks/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
index faacec4..faacec4 100644
--- a/tests/benchmarks/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
diff --git a/tests/benchmarks/qgraphicsitem/qgraphicsitem.pro b/tests/benchmarks/gui/graphicsview/qgraphicsitem/qgraphicsitem.pro
index 726bb96..726bb96 100644
--- a/tests/benchmarks/qgraphicsitem/qgraphicsitem.pro
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsitem/qgraphicsitem.pro
diff --git a/tests/benchmarks/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
index ac51072..ac51072 100644
--- a/tests/benchmarks/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
diff --git a/tests/benchmarks/qgraphicsscene/qgraphicsscene.pro b/tests/benchmarks/gui/graphicsview/qgraphicsscene/qgraphicsscene.pro
index b460e2a..b460e2a 100644
--- a/tests/benchmarks/qgraphicsscene/qgraphicsscene.pro
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsscene/qgraphicsscene.pro
diff --git a/tests/benchmarks/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp
index 5bd07f9..5bd07f9 100644
--- a/tests/benchmarks/qgraphicsscene/tst_qgraphicsscene.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.cpp
index 77b86c1..77b86c1 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.cpp
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.debug b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.debug
index 8fe1e5b..8fe1e5b 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.debug
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.debug
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/chiptester/chip.h b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.h
index 9db23f9..9db23f9 100644
--- a/tests/benchmarks/qgraphicsview/chiptester/chip.h
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.h
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.pro b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.pro
index 53fa23b..53fa23b 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.pro
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.pro
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/fileprint.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/fileprint.png
index ba7c02d..ba7c02d 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/fileprint.png
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/fileprint.png
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/images.qrc b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/images.qrc
index c7cdf0c..c7cdf0c 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/images.qrc
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/images.qrc
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/main.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/main.cpp
index ea2f94a..ea2f94a 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/main.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/main.cpp
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/mainwindow.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/mainwindow.cpp
index 452b42c..452b42c 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/mainwindow.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/mainwindow.cpp
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/mainwindow.h b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/mainwindow.h
index 558bbef..558bbef 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/mainwindow.h
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/mainwindow.h
diff --git a/tests/benchmarks/qgraphicsview/chiptester/qt4logo.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/qt4logo.png
index 157e86e..157e86e 100644
--- a/tests/benchmarks/qgraphicsview/chiptester/qt4logo.png
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/qt4logo.png
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/rotateleft.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/rotateleft.png
index 8cfa931..8cfa931 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/rotateleft.png
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/rotateleft.png
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/rotateright.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/rotateright.png
index ec5e866..ec5e866 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/rotateright.png
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/rotateright.png
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/view.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp
index 1028f42..1028f42 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/view.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/view.h b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/view.h
index fc5c226..fc5c226 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/view.h
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/view.h
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/zoomin.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/zoomin.png
index 8b0daee..8b0daee 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/zoomin.png
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/zoomin.png
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/zoomout.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/zoomout.png
index 1575dd2..1575dd2 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/zoomout.png
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/zoomout.png
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/benchapps/moveItems/main.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/moveItems/main.cpp
index 527713f..527713f 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/moveItems/main.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/moveItems/main.cpp
diff --git a/tests/benchmarks/qgraphicsview/benchapps/moveItems/moveItems.pro b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/moveItems/moveItems.pro
index 28dcadc..28dcadc 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/moveItems/moveItems.pro
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/moveItems/moveItems.pro
diff --git a/tests/benchmarks/qgraphicsview/benchapps/scrolltest/main.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/scrolltest/main.cpp
index 7419206..7419206 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/scrolltest/main.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/scrolltest/main.cpp
diff --git a/tests/benchmarks/qgraphicsview/benchapps/scrolltest/scrolltest.pro b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/scrolltest/scrolltest.pro
index 28dcadc..28dcadc 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/scrolltest/scrolltest.pro
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/scrolltest/scrolltest.pro
diff --git a/tests/benchmarks/qgraphicsview/chiptester/chip.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chip.cpp
index 4c1020a..4c1020a 100644
--- a/tests/benchmarks/qgraphicsview/chiptester/chip.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chip.cpp
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.h b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chip.h
index 9db23f9..9db23f9 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/chip.h
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chip.h
diff --git a/tests/benchmarks/qgraphicsview/chiptester/chiptester.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.cpp
index 8cada67..8cada67 100644
--- a/tests/benchmarks/qgraphicsview/chiptester/chiptester.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.cpp
diff --git a/tests/benchmarks/qgraphicsview/chiptester/chiptester.h b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.h
index 1a73bb7..1a73bb7 100644
--- a/tests/benchmarks/qgraphicsview/chiptester/chiptester.h
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.h
diff --git a/tests/benchmarks/qgraphicsview/chiptester/chiptester.pri b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.pri
index a9e0bf8..a9e0bf8 100644
--- a/tests/benchmarks/qgraphicsview/chiptester/chiptester.pri
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.pri
diff --git a/tests/benchmarks/qgraphicsview/chiptester/images.qrc b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/images.qrc
index 73e8620..73e8620 100644
--- a/tests/benchmarks/qgraphicsview/chiptester/images.qrc
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/images.qrc
diff --git a/tests/benchmarks/qgraphicsview/benchapps/chipTest/qt4logo.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/qt4logo.png
index 157e86e..157e86e 100644
--- a/tests/benchmarks/qgraphicsview/benchapps/chipTest/qt4logo.png
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/qt4logo.png
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/images/designer.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/images/designer.png
index 0988fce..0988fce 100644
--- a/tests/benchmarks/qgraphicsview/images/designer.png
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/images/designer.png
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/images/wine-big.jpeg b/tests/benchmarks/gui/graphicsview/qgraphicsview/images/wine-big.jpeg
index 9900a50..9900a50 100644
--- a/tests/benchmarks/qgraphicsview/images/wine-big.jpeg
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/images/wine-big.jpeg
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/images/wine.jpeg b/tests/benchmarks/gui/graphicsview/qgraphicsview/images/wine.jpeg
index 8fe1d3a..8fe1d3a 100644
--- a/tests/benchmarks/qgraphicsview/images/wine.jpeg
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/images/wine.jpeg
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/qgraphicsview.pro b/tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.pro
index 927d731..927d731 100644
--- a/tests/benchmarks/qgraphicsview/qgraphicsview.pro
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.pro
diff --git a/tests/benchmarks/qgraphicsview/qgraphicsview.qrc b/tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.qrc
index 3681648..3681648 100644
--- a/tests/benchmarks/qgraphicsview/qgraphicsview.qrc
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.qrc
diff --git a/tests/benchmarks/qgraphicsview/random.data b/tests/benchmarks/gui/graphicsview/qgraphicsview/random.data
index 190a36c..190a36c 100644
--- a/tests/benchmarks/qgraphicsview/random.data
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/random.data
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/tst_qgraphicsview.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/tst_qgraphicsview.cpp
index d98a2a1..10e00a6 100644
--- a/tests/benchmarks/qgraphicsview/tst_qgraphicsview.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/tst_qgraphicsview.cpp
@@ -171,7 +171,7 @@ void tst_QGraphicsView::paintSingleItem()
}
#ifdef Q_OS_SYMBIAN
-# define DEEP_STACKING_COUNT 200
+# define DEEP_STACKING_COUNT 85
#else
# define DEEP_STACKING_COUNT 1000
#endif
@@ -555,7 +555,11 @@ void tst_QGraphicsView::imageRiver()
QFile file(":/random.data");
QVERIFY(file.open(QIODevice::ReadOnly));
QDataStream str(&file);
+#if defined(Q_OS_SYMBIAN)
+ for (int i = 0; i < 50; ++i) {
+#else
for (int i = 0; i < 100; ++i) {
+#endif
AnimatedPixmapItem *item;
if (direction == 0) item = new AnimatedPixmapItem((i % 4) + 1, 0, rotation, scale);
if (direction == 1) item = new AnimatedPixmapItem(0, (i % 4) + 1, rotation, scale);
@@ -574,7 +578,11 @@ void tst_QGraphicsView::imageRiver()
#ifdef CALLGRIND_DEBUG
CALLGRIND_START_INSTRUMENTATION
#endif
+#if defined(Q_OS_SYMBIAN)
+ for (int i = 0; i < 50; ++i) {
+#else
for (int i = 0; i < 100; ++i) {
+#endif
scene.advance();
while (view.count < (i+1))
qApp->processEvents();
@@ -669,7 +677,11 @@ void tst_QGraphicsView::textRiver()
QFile file(":/random.data");
QVERIFY(file.open(QIODevice::ReadOnly));
QDataStream str(&file);
+#if defined(Q_OS_SYMBIAN)
+ for (int i = 0; i < 50; ++i) {
+#else
for (int i = 0; i < 100; ++i) {
+#endif
AnimatedTextItem *item;
if (direction == 0) item = new AnimatedTextItem((i % 4) + 1, 0, rotation, scale);
if (direction == 1) item = new AnimatedTextItem(0, (i % 4) + 1, rotation, scale);
@@ -687,7 +699,11 @@ void tst_QGraphicsView::textRiver()
#ifdef CALLGRIND_DEBUG
CALLGRIND_START_INSTRUMENTATION
#endif
+#if defined(Q_OS_SYMBIAN)
+ for (int i = 0; i < 50; ++i) {
+#else
for (int i = 0; i < 100; ++i) {
+#endif
scene.advance();
while (view.count < (i+1))
qApp->processEvents();
@@ -771,7 +787,11 @@ void tst_QGraphicsView::moveItemCache()
QFile file(":/random.data");
QVERIFY(file.open(QIODevice::ReadOnly));
QDataStream str(&file);
+#if defined(Q_OS_SYMBIAN)
+ for (int i = 0; i < 5; ++i) {
+#else
for (int i = 0; i < 50; ++i) {
+#endif
AnimatedPixmapCacheItem *item;
if (direction == 0) item = new AnimatedPixmapCacheItem((i % 4) + 1, 0);
if (direction == 1) item = new AnimatedPixmapCacheItem(0, (i % 4) + 1);
@@ -793,7 +813,11 @@ void tst_QGraphicsView::moveItemCache()
#ifdef CALLGRIND_DEBUG
CALLGRIND_START_INSTRUMENTATION
#endif
+#if defined(Q_OS_SYMBIAN)
+ for (int i = 0; i < 50; ++i) {
+#else
for (int i = 0; i < 100; ++i) {
+#endif
scene.advance();
while (view.count < (i+1))
qApp->processEvents();
@@ -893,7 +917,11 @@ void tst_QGraphicsView::paintItemCache()
#ifdef CALLGRIND_DEBUG
CALLGRIND_START_INSTRUMENTATION
#endif
+#if defined(Q_OS_SYMBIAN)
+ for (int i = 0; i < 5; ++i) {
+#else
for (int i = 0; i < 50; ++i) {
+#endif
scene.advance();
while (view.count < (i+1))
qApp->processEvents();
diff --git a/tests/benchmarks/qgraphicswidget/qgraphicswidget.pro b/tests/benchmarks/gui/graphicsview/qgraphicswidget/qgraphicswidget.pro
index f1ec54e..f1ec54e 100644
--- a/tests/benchmarks/qgraphicswidget/qgraphicswidget.pro
+++ b/tests/benchmarks/gui/graphicsview/qgraphicswidget/qgraphicswidget.pro
diff --git a/tests/benchmarks/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/benchmarks/gui/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp
index 7db98ce..7db98ce 100644
--- a/tests/benchmarks/qgraphicswidget/tst_qgraphicswidget.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp
diff --git a/tests/benchmarks/gui/gui.pro b/tests/benchmarks/gui/gui.pro
new file mode 100644
index 0000000..946f184
--- /dev/null
+++ b/tests/benchmarks/gui/gui.pro
@@ -0,0 +1,11 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ animation \
+ graphicsview \
+ image \
+ itemviews \
+ kernel \
+ math3d \
+ painting \
+ styles \
+ text
diff --git a/tests/benchmarks/blendbench/blendbench.pro b/tests/benchmarks/gui/image/blendbench/blendbench.pro
index a3228c5..a3228c5 100644
--- a/tests/benchmarks/blendbench/blendbench.pro
+++ b/tests/benchmarks/gui/image/blendbench/blendbench.pro
diff --git a/tests/benchmarks/blendbench/main.cpp b/tests/benchmarks/gui/image/blendbench/main.cpp
index 92d1633..92d1633 100644
--- a/tests/benchmarks/blendbench/main.cpp
+++ b/tests/benchmarks/gui/image/blendbench/main.cpp
diff --git a/tests/benchmarks/gui/image/image.pro b/tests/benchmarks/gui/image/image.pro
new file mode 100644
index 0000000..3094e72
--- /dev/null
+++ b/tests/benchmarks/gui/image/image.pro
@@ -0,0 +1,6 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ blendbench \
+ qimagereader \
+ qpixmap \
+ qpixmapcache
diff --git a/tests/benchmarks/qimagereader/images/16bpp.bmp b/tests/benchmarks/gui/image/qimagereader/images/16bpp.bmp
index 74ce63e..74ce63e 100644
--- a/tests/benchmarks/qimagereader/images/16bpp.bmp
+++ b/tests/benchmarks/gui/image/qimagereader/images/16bpp.bmp
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/4bpp-rle.bmp b/tests/benchmarks/gui/image/qimagereader/images/4bpp-rle.bmp
index ae71e67..ae71e67 100644
--- a/tests/benchmarks/qimagereader/images/4bpp-rle.bmp
+++ b/tests/benchmarks/gui/image/qimagereader/images/4bpp-rle.bmp
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/YCbCr_cmyk.jpg b/tests/benchmarks/gui/image/qimagereader/images/YCbCr_cmyk.jpg
index b8aa9ea..b8aa9ea 100644
--- a/tests/benchmarks/qimagereader/images/YCbCr_cmyk.jpg
+++ b/tests/benchmarks/gui/image/qimagereader/images/YCbCr_cmyk.jpg
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/YCbCr_cmyk.png b/tests/benchmarks/gui/image/qimagereader/images/YCbCr_cmyk.png
index a24db1b..a24db1b 100644
--- a/tests/benchmarks/qimagereader/images/YCbCr_cmyk.png
+++ b/tests/benchmarks/gui/image/qimagereader/images/YCbCr_cmyk.png
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/YCbCr_rgb.jpg b/tests/benchmarks/gui/image/qimagereader/images/YCbCr_rgb.jpg
index 8771224..8771224 100644
--- a/tests/benchmarks/qimagereader/images/YCbCr_rgb.jpg
+++ b/tests/benchmarks/gui/image/qimagereader/images/YCbCr_rgb.jpg
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/away.png b/tests/benchmarks/gui/image/qimagereader/images/away.png
index 0e21a37..0e21a37 100644
--- a/tests/benchmarks/qimagereader/images/away.png
+++ b/tests/benchmarks/gui/image/qimagereader/images/away.png
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/ball.mng b/tests/benchmarks/gui/image/qimagereader/images/ball.mng
index 8154478..8154478 100644
--- a/tests/benchmarks/qimagereader/images/ball.mng
+++ b/tests/benchmarks/gui/image/qimagereader/images/ball.mng
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/bat1.gif b/tests/benchmarks/gui/image/qimagereader/images/bat1.gif
index cb6f4f7..cb6f4f7 100644
--- a/tests/benchmarks/qimagereader/images/bat1.gif
+++ b/tests/benchmarks/gui/image/qimagereader/images/bat1.gif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/bat2.gif b/tests/benchmarks/gui/image/qimagereader/images/bat2.gif
index fbbda4e..fbbda4e 100644
--- a/tests/benchmarks/qimagereader/images/bat2.gif
+++ b/tests/benchmarks/gui/image/qimagereader/images/bat2.gif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/beavis.jpg b/tests/benchmarks/gui/image/qimagereader/images/beavis.jpg
index d555047..d555047 100644
--- a/tests/benchmarks/qimagereader/images/beavis.jpg
+++ b/tests/benchmarks/gui/image/qimagereader/images/beavis.jpg
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/black.png b/tests/benchmarks/gui/image/qimagereader/images/black.png
index 6c94085..6c94085 100644
--- a/tests/benchmarks/qimagereader/images/black.png
+++ b/tests/benchmarks/gui/image/qimagereader/images/black.png
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/black.xpm b/tests/benchmarks/gui/image/qimagereader/images/black.xpm
index d7925bf..d7925bf 100644
--- a/tests/benchmarks/qimagereader/images/black.xpm
+++ b/tests/benchmarks/gui/image/qimagereader/images/black.xpm
diff --git a/tests/benchmarks/qimagereader/images/colorful.bmp b/tests/benchmarks/gui/image/qimagereader/images/colorful.bmp
index 8ea6f4a..8ea6f4a 100644
--- a/tests/benchmarks/qimagereader/images/colorful.bmp
+++ b/tests/benchmarks/gui/image/qimagereader/images/colorful.bmp
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/corrupt-colors.xpm b/tests/benchmarks/gui/image/qimagereader/images/corrupt-colors.xpm
index f8d80ed..f8d80ed 100644
--- a/tests/benchmarks/qimagereader/images/corrupt-colors.xpm
+++ b/tests/benchmarks/gui/image/qimagereader/images/corrupt-colors.xpm
diff --git a/tests/benchmarks/qimagereader/images/corrupt-data.tif b/tests/benchmarks/gui/image/qimagereader/images/corrupt-data.tif
index d63c688..d63c688 100644
--- a/tests/benchmarks/qimagereader/images/corrupt-data.tif
+++ b/tests/benchmarks/gui/image/qimagereader/images/corrupt-data.tif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/corrupt-pixels.xpm b/tests/benchmarks/gui/image/qimagereader/images/corrupt-pixels.xpm
index 21031ee..21031ee 100644
--- a/tests/benchmarks/qimagereader/images/corrupt-pixels.xpm
+++ b/tests/benchmarks/gui/image/qimagereader/images/corrupt-pixels.xpm
diff --git a/tests/benchmarks/qimagereader/images/corrupt.bmp b/tests/benchmarks/gui/image/qimagereader/images/corrupt.bmp
index 824190b..824190b 100644
--- a/tests/benchmarks/qimagereader/images/corrupt.bmp
+++ b/tests/benchmarks/gui/image/qimagereader/images/corrupt.bmp
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/corrupt.gif b/tests/benchmarks/gui/image/qimagereader/images/corrupt.gif
index 0725945..0725945 100644
--- a/tests/benchmarks/qimagereader/images/corrupt.gif
+++ b/tests/benchmarks/gui/image/qimagereader/images/corrupt.gif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/corrupt.jpg b/tests/benchmarks/gui/image/qimagereader/images/corrupt.jpg
index 1959662..1959662 100644
--- a/tests/benchmarks/qimagereader/images/corrupt.jpg
+++ b/tests/benchmarks/gui/image/qimagereader/images/corrupt.jpg
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/corrupt.mng b/tests/benchmarks/gui/image/qimagereader/images/corrupt.mng
index 17fd43a..17fd43a 100644
--- a/tests/benchmarks/qimagereader/images/corrupt.mng
+++ b/tests/benchmarks/gui/image/qimagereader/images/corrupt.mng
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/corrupt.png b/tests/benchmarks/gui/image/qimagereader/images/corrupt.png
index 9d8911c..9d8911c 100644
--- a/tests/benchmarks/qimagereader/images/corrupt.png
+++ b/tests/benchmarks/gui/image/qimagereader/images/corrupt.png
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/corrupt.xbm b/tests/benchmarks/gui/image/qimagereader/images/corrupt.xbm
index 8510634..8510634 100644
--- a/tests/benchmarks/qimagereader/images/corrupt.xbm
+++ b/tests/benchmarks/gui/image/qimagereader/images/corrupt.xbm
diff --git a/tests/benchmarks/qimagereader/images/crash-signed-char.bmp b/tests/benchmarks/gui/image/qimagereader/images/crash-signed-char.bmp
index b35cda6..b35cda6 100644
--- a/tests/benchmarks/qimagereader/images/crash-signed-char.bmp
+++ b/tests/benchmarks/gui/image/qimagereader/images/crash-signed-char.bmp
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/earth.gif b/tests/benchmarks/gui/image/qimagereader/images/earth.gif
index 2c229eb..2c229eb 100644
--- a/tests/benchmarks/qimagereader/images/earth.gif
+++ b/tests/benchmarks/gui/image/qimagereader/images/earth.gif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/fire.mng b/tests/benchmarks/gui/image/qimagereader/images/fire.mng
index c6695c8..c6695c8 100644
--- a/tests/benchmarks/qimagereader/images/fire.mng
+++ b/tests/benchmarks/gui/image/qimagereader/images/fire.mng
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/font.bmp b/tests/benchmarks/gui/image/qimagereader/images/font.bmp
index 28b8c66..28b8c66 100644
--- a/tests/benchmarks/qimagereader/images/font.bmp
+++ b/tests/benchmarks/gui/image/qimagereader/images/font.bmp
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/gnus.xbm b/tests/benchmarks/gui/image/qimagereader/images/gnus.xbm
index 58d1ac8..58d1ac8 100644
--- a/tests/benchmarks/qimagereader/images/gnus.xbm
+++ b/tests/benchmarks/gui/image/qimagereader/images/gnus.xbm
diff --git a/tests/benchmarks/qimagereader/images/image.pbm b/tests/benchmarks/gui/image/qimagereader/images/image.pbm
index 67e5efa..67e5efa 100644
--- a/tests/benchmarks/qimagereader/images/image.pbm
+++ b/tests/benchmarks/gui/image/qimagereader/images/image.pbm
diff --git a/tests/benchmarks/qimagereader/images/image.pgm b/tests/benchmarks/gui/image/qimagereader/images/image.pgm
index 443bf40..443bf40 100644
--- a/tests/benchmarks/qimagereader/images/image.pgm
+++ b/tests/benchmarks/gui/image/qimagereader/images/image.pgm
diff --git a/tests/benchmarks/qimagereader/images/image.png b/tests/benchmarks/gui/image/qimagereader/images/image.png
index 7d4890a..7d4890a 100644
--- a/tests/benchmarks/qimagereader/images/image.png
+++ b/tests/benchmarks/gui/image/qimagereader/images/image.png
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/image.ppm b/tests/benchmarks/gui/image/qimagereader/images/image.ppm
index 2a5640e..2a5640e 100644
--- a/tests/benchmarks/qimagereader/images/image.ppm
+++ b/tests/benchmarks/gui/image/qimagereader/images/image.ppm
diff --git a/tests/benchmarks/qimagereader/images/kollada-noext b/tests/benchmarks/gui/image/qimagereader/images/kollada-noext
index 2abd4bb..2abd4bb 100644
--- a/tests/benchmarks/qimagereader/images/kollada-noext
+++ b/tests/benchmarks/gui/image/qimagereader/images/kollada-noext
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/kollada.png b/tests/benchmarks/gui/image/qimagereader/images/kollada.png
index 2abd4bb..2abd4bb 100644
--- a/tests/benchmarks/qimagereader/images/kollada.png
+++ b/tests/benchmarks/gui/image/qimagereader/images/kollada.png
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/marble.xpm b/tests/benchmarks/gui/image/qimagereader/images/marble.xpm
index 1c08049..1c08049 100644
--- a/tests/benchmarks/qimagereader/images/marble.xpm
+++ b/tests/benchmarks/gui/image/qimagereader/images/marble.xpm
diff --git a/tests/benchmarks/qimagereader/images/namedcolors.xpm b/tests/benchmarks/gui/image/qimagereader/images/namedcolors.xpm
index f6485d5..f6485d5 100644
--- a/tests/benchmarks/qimagereader/images/namedcolors.xpm
+++ b/tests/benchmarks/gui/image/qimagereader/images/namedcolors.xpm
diff --git a/tests/benchmarks/qimagereader/images/negativeheight.bmp b/tests/benchmarks/gui/image/qimagereader/images/negativeheight.bmp
index 875887a..875887a 100644
--- a/tests/benchmarks/qimagereader/images/negativeheight.bmp
+++ b/tests/benchmarks/gui/image/qimagereader/images/negativeheight.bmp
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/noclearcode.bmp b/tests/benchmarks/gui/image/qimagereader/images/noclearcode.bmp
index 1a5ca9c..1a5ca9c 100644
--- a/tests/benchmarks/qimagereader/images/noclearcode.bmp
+++ b/tests/benchmarks/gui/image/qimagereader/images/noclearcode.bmp
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/noclearcode.gif b/tests/benchmarks/gui/image/qimagereader/images/noclearcode.gif
index 27784d6..27784d6 100644
--- a/tests/benchmarks/qimagereader/images/noclearcode.gif
+++ b/tests/benchmarks/gui/image/qimagereader/images/noclearcode.gif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/nontransparent.xpm b/tests/benchmarks/gui/image/qimagereader/images/nontransparent.xpm
index 00c21ef..00c21ef 100644
--- a/tests/benchmarks/qimagereader/images/nontransparent.xpm
+++ b/tests/benchmarks/gui/image/qimagereader/images/nontransparent.xpm
diff --git a/tests/benchmarks/qimagereader/images/pngwithcompressedtext.png b/tests/benchmarks/gui/image/qimagereader/images/pngwithcompressedtext.png
index 01b2270..01b2270 100644
--- a/tests/benchmarks/qimagereader/images/pngwithcompressedtext.png
+++ b/tests/benchmarks/gui/image/qimagereader/images/pngwithcompressedtext.png
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/pngwithtext.png b/tests/benchmarks/gui/image/qimagereader/images/pngwithtext.png
index 5d93799..5d93799 100644
--- a/tests/benchmarks/qimagereader/images/pngwithtext.png
+++ b/tests/benchmarks/gui/image/qimagereader/images/pngwithtext.png
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/rgba_adobedeflate_littleendian.tif b/tests/benchmarks/gui/image/qimagereader/images/rgba_adobedeflate_littleendian.tif
index 78868b0..78868b0 100644
--- a/tests/benchmarks/qimagereader/images/rgba_adobedeflate_littleendian.tif
+++ b/tests/benchmarks/gui/image/qimagereader/images/rgba_adobedeflate_littleendian.tif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/rgba_lzw_littleendian.tif b/tests/benchmarks/gui/image/qimagereader/images/rgba_lzw_littleendian.tif
index 107eab7..107eab7 100644
--- a/tests/benchmarks/qimagereader/images/rgba_lzw_littleendian.tif
+++ b/tests/benchmarks/gui/image/qimagereader/images/rgba_lzw_littleendian.tif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/rgba_nocompression_bigendian.tif b/tests/benchmarks/gui/image/qimagereader/images/rgba_nocompression_bigendian.tif
index c314bae..c314bae 100644
--- a/tests/benchmarks/qimagereader/images/rgba_nocompression_bigendian.tif
+++ b/tests/benchmarks/gui/image/qimagereader/images/rgba_nocompression_bigendian.tif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/rgba_nocompression_littleendian.tif b/tests/benchmarks/gui/image/qimagereader/images/rgba_nocompression_littleendian.tif
index 4f820f6..4f820f6 100644
--- a/tests/benchmarks/qimagereader/images/rgba_nocompression_littleendian.tif
+++ b/tests/benchmarks/gui/image/qimagereader/images/rgba_nocompression_littleendian.tif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/rgba_packbits_littleendian.tif b/tests/benchmarks/gui/image/qimagereader/images/rgba_packbits_littleendian.tif
index ddeec38..ddeec38 100644
--- a/tests/benchmarks/qimagereader/images/rgba_packbits_littleendian.tif
+++ b/tests/benchmarks/gui/image/qimagereader/images/rgba_packbits_littleendian.tif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/rgba_zipdeflate_littleendian.tif b/tests/benchmarks/gui/image/qimagereader/images/rgba_zipdeflate_littleendian.tif
index 50a3024..50a3024 100644
--- a/tests/benchmarks/qimagereader/images/rgba_zipdeflate_littleendian.tif
+++ b/tests/benchmarks/gui/image/qimagereader/images/rgba_zipdeflate_littleendian.tif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/runners.ppm b/tests/benchmarks/gui/image/qimagereader/images/runners.ppm
index fda1c97..fda1c97 100644
--- a/tests/benchmarks/qimagereader/images/runners.ppm
+++ b/tests/benchmarks/gui/image/qimagereader/images/runners.ppm
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/task210380.jpg b/tests/benchmarks/gui/image/qimagereader/images/task210380.jpg
index fd045ea..fd045ea 100644
--- a/tests/benchmarks/qimagereader/images/task210380.jpg
+++ b/tests/benchmarks/gui/image/qimagereader/images/task210380.jpg
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/teapot.ppm b/tests/benchmarks/gui/image/qimagereader/images/teapot.ppm
index b8ab85f..b8ab85f 100644
--- a/tests/benchmarks/qimagereader/images/teapot.ppm
+++ b/tests/benchmarks/gui/image/qimagereader/images/teapot.ppm
diff --git a/tests/benchmarks/qimagereader/images/test.ppm b/tests/benchmarks/gui/image/qimagereader/images/test.ppm
index 05d627c..05d627c 100644
--- a/tests/benchmarks/qimagereader/images/test.ppm
+++ b/tests/benchmarks/gui/image/qimagereader/images/test.ppm
diff --git a/tests/benchmarks/qimagereader/images/test.xpm b/tests/benchmarks/gui/image/qimagereader/images/test.xpm
index 5fcf075..5fcf075 100644
--- a/tests/benchmarks/qimagereader/images/test.xpm
+++ b/tests/benchmarks/gui/image/qimagereader/images/test.xpm
diff --git a/tests/benchmarks/qimagereader/images/transparent.xpm b/tests/benchmarks/gui/image/qimagereader/images/transparent.xpm
index 5ddcf0b..5ddcf0b 100644
--- a/tests/benchmarks/qimagereader/images/transparent.xpm
+++ b/tests/benchmarks/gui/image/qimagereader/images/transparent.xpm
diff --git a/tests/benchmarks/qimagereader/images/trolltech.gif b/tests/benchmarks/gui/image/qimagereader/images/trolltech.gif
index f674369..f674369 100644
--- a/tests/benchmarks/qimagereader/images/trolltech.gif
+++ b/tests/benchmarks/gui/image/qimagereader/images/trolltech.gif
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/tst7.bmp b/tests/benchmarks/gui/image/qimagereader/images/tst7.bmp
index 6d3ac92..6d3ac92 100644
--- a/tests/benchmarks/qimagereader/images/tst7.bmp
+++ b/tests/benchmarks/gui/image/qimagereader/images/tst7.bmp
Binary files differ
diff --git a/tests/benchmarks/qimagereader/images/tst7.png b/tests/benchmarks/gui/image/qimagereader/images/tst7.png
index 96efae4..96efae4 100644
--- a/tests/benchmarks/qimagereader/images/tst7.png
+++ b/tests/benchmarks/gui/image/qimagereader/images/tst7.png
Binary files differ
diff --git a/tests/benchmarks/qimagereader/qimagereader.pro b/tests/benchmarks/gui/image/qimagereader/qimagereader.pro
index 276ac33..276ac33 100644
--- a/tests/benchmarks/qimagereader/qimagereader.pro
+++ b/tests/benchmarks/gui/image/qimagereader/qimagereader.pro
diff --git a/tests/benchmarks/qimagereader/tst_qimagereader.cpp b/tests/benchmarks/gui/image/qimagereader/tst_qimagereader.cpp
index 3f38d19..3f38d19 100644
--- a/tests/benchmarks/qimagereader/tst_qimagereader.cpp
+++ b/tests/benchmarks/gui/image/qimagereader/tst_qimagereader.cpp
diff --git a/tests/benchmarks/qpixmap/qpixmap.pro b/tests/benchmarks/gui/image/qpixmap/qpixmap.pro
index e8330bd..e8330bd 100644
--- a/tests/benchmarks/qpixmap/qpixmap.pro
+++ b/tests/benchmarks/gui/image/qpixmap/qpixmap.pro
diff --git a/tests/benchmarks/qpixmap/tst_qpixmap.cpp b/tests/benchmarks/gui/image/qpixmap/tst_qpixmap.cpp
index 9ffbefb..9ffbefb 100644
--- a/tests/benchmarks/qpixmap/tst_qpixmap.cpp
+++ b/tests/benchmarks/gui/image/qpixmap/tst_qpixmap.cpp
diff --git a/tests/benchmarks/qpixmapcache/qpixmapcache.pro b/tests/benchmarks/gui/image/qpixmapcache/qpixmapcache.pro
index e0d7543..e0d7543 100644
--- a/tests/benchmarks/qpixmapcache/qpixmapcache.pro
+++ b/tests/benchmarks/gui/image/qpixmapcache/qpixmapcache.pro
diff --git a/tests/benchmarks/qpixmapcache/tst_qpixmapcache.cpp b/tests/benchmarks/gui/image/qpixmapcache/tst_qpixmapcache.cpp
index 1031ba7..1031ba7 100644
--- a/tests/benchmarks/qpixmapcache/tst_qpixmapcache.cpp
+++ b/tests/benchmarks/gui/image/qpixmapcache/tst_qpixmapcache.cpp
diff --git a/tests/benchmarks/gui/itemviews/itemviews.pro b/tests/benchmarks/gui/itemviews/itemviews.pro
new file mode 100644
index 0000000..be0ee55
--- /dev/null
+++ b/tests/benchmarks/gui/itemviews/itemviews.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qtableview
diff --git a/tests/benchmarks/qtableview/qtableview.pro b/tests/benchmarks/gui/itemviews/qtableview/qtableview.pro
index 02bc530..02bc530 100644
--- a/tests/benchmarks/qtableview/qtableview.pro
+++ b/tests/benchmarks/gui/itemviews/qtableview/qtableview.pro
diff --git a/tests/benchmarks/qtableview/tst_qtableview.cpp b/tests/benchmarks/gui/itemviews/qtableview/tst_qtableview.cpp
index a84d8b5..a84d8b5 100644
--- a/tests/benchmarks/qtableview/tst_qtableview.cpp
+++ b/tests/benchmarks/gui/itemviews/qtableview/tst_qtableview.cpp
diff --git a/tests/benchmarks/gui/kernel/kernel.pro b/tests/benchmarks/gui/kernel/kernel.pro
new file mode 100644
index 0000000..a50aad2
--- /dev/null
+++ b/tests/benchmarks/gui/kernel/kernel.pro
@@ -0,0 +1,4 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qapplication \
+ qwidget
diff --git a/tests/benchmarks/qapplication/main.cpp b/tests/benchmarks/gui/kernel/qapplication/main.cpp
index c912497..c912497 100644
--- a/tests/benchmarks/qapplication/main.cpp
+++ b/tests/benchmarks/gui/kernel/qapplication/main.cpp
diff --git a/tests/benchmarks/qapplication/qapplication.pro b/tests/benchmarks/gui/kernel/qapplication/qapplication.pro
index f8601e4..f8601e4 100644
--- a/tests/benchmarks/qapplication/qapplication.pro
+++ b/tests/benchmarks/gui/kernel/qapplication/qapplication.pro
diff --git a/tests/benchmarks/qwidget/qwidget.pro b/tests/benchmarks/gui/kernel/qwidget/qwidget.pro
index ff47445..ff47445 100644
--- a/tests/benchmarks/qwidget/qwidget.pro
+++ b/tests/benchmarks/gui/kernel/qwidget/qwidget.pro
diff --git a/tests/benchmarks/qwidget/tst_qwidget.cpp b/tests/benchmarks/gui/kernel/qwidget/tst_qwidget.cpp
index f21bd44..f21bd44 100644
--- a/tests/benchmarks/qwidget/tst_qwidget.cpp
+++ b/tests/benchmarks/gui/kernel/qwidget/tst_qwidget.cpp
diff --git a/tests/benchmarks/gui/math3d/math3d.pro b/tests/benchmarks/gui/math3d/math3d.pro
new file mode 100644
index 0000000..c511d9a
--- /dev/null
+++ b/tests/benchmarks/gui/math3d/math3d.pro
@@ -0,0 +1,4 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qmatrix4x4 \
+ qquaternion
diff --git a/tests/benchmarks/qmatrix4x4/qmatrix4x4.pro b/tests/benchmarks/gui/math3d/qmatrix4x4/qmatrix4x4.pro
index e82d9de..e82d9de 100644
--- a/tests/benchmarks/qmatrix4x4/qmatrix4x4.pro
+++ b/tests/benchmarks/gui/math3d/qmatrix4x4/qmatrix4x4.pro
diff --git a/tests/benchmarks/qmatrix4x4/tst_qmatrix4x4.cpp b/tests/benchmarks/gui/math3d/qmatrix4x4/tst_qmatrix4x4.cpp
index e962198..e962198 100644
--- a/tests/benchmarks/qmatrix4x4/tst_qmatrix4x4.cpp
+++ b/tests/benchmarks/gui/math3d/qmatrix4x4/tst_qmatrix4x4.cpp
diff --git a/tests/benchmarks/qquaternion/qquaternion.pro b/tests/benchmarks/gui/math3d/qquaternion/qquaternion.pro
index cd68423..cd68423 100644
--- a/tests/benchmarks/qquaternion/qquaternion.pro
+++ b/tests/benchmarks/gui/math3d/qquaternion/qquaternion.pro
diff --git a/tests/benchmarks/qquaternion/tst_qquaternion.cpp b/tests/benchmarks/gui/math3d/qquaternion/tst_qquaternion.cpp
index 7930092..7930092 100644
--- a/tests/benchmarks/qquaternion/tst_qquaternion.cpp
+++ b/tests/benchmarks/gui/math3d/qquaternion/tst_qquaternion.cpp
diff --git a/tests/benchmarks/gui/painting/painting.pro b/tests/benchmarks/gui/painting/painting.pro
new file mode 100644
index 0000000..878567d
--- /dev/null
+++ b/tests/benchmarks/gui/painting/painting.pro
@@ -0,0 +1,5 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qpainter \
+ qregion \
+ qtransform
diff --git a/tests/benchmarks/qpainter/qpainter.pro b/tests/benchmarks/gui/painting/qpainter/qpainter.pro
index 5ac8c64..5ac8c64 100644
--- a/tests/benchmarks/qpainter/qpainter.pro
+++ b/tests/benchmarks/gui/painting/qpainter/qpainter.pro
diff --git a/tests/benchmarks/qpainter/tst_qpainter.cpp b/tests/benchmarks/gui/painting/qpainter/tst_qpainter.cpp
index 39b2244..39b2244 100644
--- a/tests/benchmarks/qpainter/tst_qpainter.cpp
+++ b/tests/benchmarks/gui/painting/qpainter/tst_qpainter.cpp
diff --git a/tests/benchmarks/qregion/main.cpp b/tests/benchmarks/gui/painting/qregion/main.cpp
index 3d16e41..3d16e41 100644
--- a/tests/benchmarks/qregion/main.cpp
+++ b/tests/benchmarks/gui/painting/qregion/main.cpp
diff --git a/tests/benchmarks/qregion/qregion.pro b/tests/benchmarks/gui/painting/qregion/qregion.pro
index fc67177..fc67177 100644
--- a/tests/benchmarks/qregion/qregion.pro
+++ b/tests/benchmarks/gui/painting/qregion/qregion.pro
diff --git a/tests/benchmarks/qtransform/qtransform.pro b/tests/benchmarks/gui/painting/qtransform/qtransform.pro
index 8d87656..8d87656 100644
--- a/tests/benchmarks/qtransform/qtransform.pro
+++ b/tests/benchmarks/gui/painting/qtransform/qtransform.pro
diff --git a/tests/benchmarks/qtransform/tst_qtransform.cpp b/tests/benchmarks/gui/painting/qtransform/tst_qtransform.cpp
index b33cf58..b33cf58 100644
--- a/tests/benchmarks/qtransform/tst_qtransform.cpp
+++ b/tests/benchmarks/gui/painting/qtransform/tst_qtransform.cpp
diff --git a/tests/benchmarks/qstylesheetstyle/main.cpp b/tests/benchmarks/gui/styles/qstylesheetstyle/main.cpp
index 226b661..226b661 100644
--- a/tests/benchmarks/qstylesheetstyle/main.cpp
+++ b/tests/benchmarks/gui/styles/qstylesheetstyle/main.cpp
diff --git a/tests/benchmarks/qstylesheetstyle/qstylesheetstyle.pro b/tests/benchmarks/gui/styles/qstylesheetstyle/qstylesheetstyle.pro
index c097307..c097307 100644
--- a/tests/benchmarks/qstylesheetstyle/qstylesheetstyle.pro
+++ b/tests/benchmarks/gui/styles/qstylesheetstyle/qstylesheetstyle.pro
diff --git a/tests/benchmarks/gui/styles/styles.pro b/tests/benchmarks/gui/styles/styles.pro
new file mode 100644
index 0000000..7c1d069
--- /dev/null
+++ b/tests/benchmarks/gui/styles/styles.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qstylesheetstyle
diff --git a/tests/benchmarks/qfontmetrics/main.cpp b/tests/benchmarks/gui/text/qfontmetrics/main.cpp
index d3f85ef..d3f85ef 100644
--- a/tests/benchmarks/qfontmetrics/main.cpp
+++ b/tests/benchmarks/gui/text/qfontmetrics/main.cpp
diff --git a/tests/benchmarks/qfontmetrics/qfontmetrics.pro b/tests/benchmarks/gui/text/qfontmetrics/qfontmetrics.pro
index b6c7b92..b6c7b92 100644
--- a/tests/benchmarks/qfontmetrics/qfontmetrics.pro
+++ b/tests/benchmarks/gui/text/qfontmetrics/qfontmetrics.pro
diff --git a/tests/benchmarks/qtext/bidi.txt b/tests/benchmarks/gui/text/qtext/bidi.txt
index 7c74cb4..7c74cb4 100644
--- a/tests/benchmarks/qtext/bidi.txt
+++ b/tests/benchmarks/gui/text/qtext/bidi.txt
diff --git a/tests/benchmarks/qtext/main.cpp b/tests/benchmarks/gui/text/qtext/main.cpp
index d4f3165..d4f3165 100644
--- a/tests/benchmarks/qtext/main.cpp
+++ b/tests/benchmarks/gui/text/qtext/main.cpp
diff --git a/tests/benchmarks/qtext/qtext.pro b/tests/benchmarks/gui/text/qtext/qtext.pro
index 9e8860f..9e8860f 100644
--- a/tests/benchmarks/qtext/qtext.pro
+++ b/tests/benchmarks/gui/text/qtext/qtext.pro
diff --git a/tests/benchmarks/gui/text/text.pro b/tests/benchmarks/gui/text/text.pro
new file mode 100644
index 0000000..34e548b
--- /dev/null
+++ b/tests/benchmarks/gui/text/text.pro
@@ -0,0 +1,4 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qfontmetrics \
+ qtext
diff --git a/tests/benchmarks/network/access/access.pro b/tests/benchmarks/network/access/access.pro
new file mode 100644
index 0000000..43357e2
--- /dev/null
+++ b/tests/benchmarks/network/access/access.pro
@@ -0,0 +1,4 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qfile_vs_qnetworkaccessmanager \
+ qnetworkreply
diff --git a/tests/benchmarks/qfile_vs_qnetworkaccessmanager/main.cpp b/tests/benchmarks/network/access/qfile_vs_qnetworkaccessmanager/main.cpp
index 23e07db..26308e9 100644
--- a/tests/benchmarks/qfile_vs_qnetworkaccessmanager/main.cpp
+++ b/tests/benchmarks/network/access/qfile_vs_qnetworkaccessmanager/main.cpp
@@ -46,7 +46,7 @@
#include <QtNetwork/qnetworkaccessmanager.h>
#include <QtCore/QTemporaryFile>
#include <QtCore/QFile>
-#include "../../auto/network-settings.h"
+#include "../../../../auto/network-settings.h"
class qfile_vs_qnetworkaccessmanager : public QObject
{
diff --git a/tests/benchmarks/qfile_vs_qnetworkaccessmanager/qfile_vs_qnetworkaccessmanager.pro b/tests/benchmarks/network/access/qfile_vs_qnetworkaccessmanager/qfile_vs_qnetworkaccessmanager.pro
index 99d1935..99d1935 100644
--- a/tests/benchmarks/qfile_vs_qnetworkaccessmanager/qfile_vs_qnetworkaccessmanager.pro
+++ b/tests/benchmarks/network/access/qfile_vs_qnetworkaccessmanager/qfile_vs_qnetworkaccessmanager.pro
diff --git a/tests/benchmarks/qnetworkreply/qnetworkreply.pro b/tests/benchmarks/network/access/qnetworkreply/qnetworkreply.pro
index 1e67d81..1e67d81 100644
--- a/tests/benchmarks/qnetworkreply/qnetworkreply.pro
+++ b/tests/benchmarks/network/access/qnetworkreply/qnetworkreply.pro
diff --git a/tests/benchmarks/qnetworkreply/tst_qnetworkreply.cpp b/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp
index a92359f..f173ed1 100644
--- a/tests/benchmarks/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp
@@ -48,7 +48,7 @@
#include <QtNetwork/qnetworkaccessmanager.h>
#include <QtNetwork/qtcpsocket.h>
#include <QtNetwork/qtcpserver.h>
-#include "../../auto/network-settings.h"
+#include "../../../../auto/network-settings.h"
class TimedSender: public QThread
diff --git a/tests/benchmarks/network/kernel/kernel.pro b/tests/benchmarks/network/kernel/kernel.pro
new file mode 100644
index 0000000..1ec3071
--- /dev/null
+++ b/tests/benchmarks/network/kernel/kernel.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qhostinfo
diff --git a/tests/benchmarks/qhostinfo/main.cpp b/tests/benchmarks/network/kernel/qhostinfo/main.cpp
index 0ae1b7f..0ae1b7f 100644
--- a/tests/benchmarks/qhostinfo/main.cpp
+++ b/tests/benchmarks/network/kernel/qhostinfo/main.cpp
diff --git a/tests/benchmarks/qhostinfo/qhostinfo.pro b/tests/benchmarks/network/kernel/qhostinfo/qhostinfo.pro
index f18d6d7..f18d6d7 100755
--- a/tests/benchmarks/qhostinfo/qhostinfo.pro
+++ b/tests/benchmarks/network/kernel/qhostinfo/qhostinfo.pro
diff --git a/tests/benchmarks/network/network.pro b/tests/benchmarks/network/network.pro
new file mode 100644
index 0000000..4e83db2
--- /dev/null
+++ b/tests/benchmarks/network/network.pro
@@ -0,0 +1,5 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ access \
+ kernel \
+ socket
diff --git a/tests/benchmarks/qtcpserver/qtcpserver.pro b/tests/benchmarks/network/socket/qtcpserver/qtcpserver.pro
index e7bf13a..e7bf13a 100644
--- a/tests/benchmarks/qtcpserver/qtcpserver.pro
+++ b/tests/benchmarks/network/socket/qtcpserver/qtcpserver.pro
diff --git a/tests/benchmarks/qtcpserver/tst_qtcpserver.cpp b/tests/benchmarks/network/socket/qtcpserver/tst_qtcpserver.cpp
index b6b55c3..022bf3d 100644
--- a/tests/benchmarks/qtcpserver/tst_qtcpserver.cpp
+++ b/tests/benchmarks/network/socket/qtcpserver/tst_qtcpserver.cpp
@@ -58,7 +58,7 @@
Q_DECLARE_METATYPE(QNetworkProxy)
Q_DECLARE_METATYPE(QList<QNetworkProxy>)
-#include "../../auto/network-settings.h"
+#include "../../../../auto/network-settings.h"
//TESTED_CLASS=
//TESTED_FILES=
diff --git a/tests/benchmarks/network/socket/socket.pro b/tests/benchmarks/network/socket/socket.pro
new file mode 100644
index 0000000..2d676a2
--- /dev/null
+++ b/tests/benchmarks/network/socket/socket.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qtcpserver
diff --git a/tests/benchmarks/qscriptclass/tst_qscriptclass.cpp b/tests/benchmarks/qscriptclass/tst_qscriptclass.cpp
deleted file mode 100644
index 7985028..0000000
--- a/tests/benchmarks/qscriptclass/tst_qscriptclass.cpp
+++ /dev/null
@@ -1,511 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 Technology Preview License Agreement accompanying
-** this package.
-**
-** 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <qtest.h>
-#include <QtScript>
-
-Q_DECLARE_METATYPE(QScriptContext*)
-Q_DECLARE_METATYPE(QScriptValue)
-Q_DECLARE_METATYPE(QScriptValueList)
-
-//TESTED_FILES=
-
-class TestClass : public QScriptClass
-{
-public:
- struct CustomProperty {
- QueryFlags qflags;
- uint id;
- QScriptValue::PropertyFlags pflags;
- QScriptValue value;
-
- CustomProperty(QueryFlags qf, uint i, QScriptValue::PropertyFlags pf,
- const QScriptValue &val)
- : qflags(qf), id(i), pflags(pf), value(val) { }
- };
-
- enum CallableMode {
- NotCallable,
- CallableReturnsSum,
- CallableReturnsArgument,
- CallableReturnsInvalidVariant
- };
-
- TestClass(QScriptEngine *engine);
- ~TestClass();
-
- void addCustomProperty(const QScriptString &name, QueryFlags qflags,
- uint id, QScriptValue::PropertyFlags pflags,
- const QScriptValue &value);
- void removeCustomProperty(const QScriptString &name);
-
- QueryFlags queryProperty(const QScriptValue &object,
- const QScriptString &name,
- QueryFlags flags, uint *id);
-
- QScriptValue property(const QScriptValue &object,
- const QScriptString &name, uint id);
-
- void setProperty(QScriptValue &object, const QScriptString &name,
- uint id, const QScriptValue &value);
-
- QScriptValue::PropertyFlags propertyFlags(
- const QScriptValue &object, const QScriptString &name, uint id);
-
- QScriptClassPropertyIterator *newIterator(const QScriptValue &object);
-
- QScriptValue prototype() const;
-
- QString name() const;
-
- bool supportsExtension(Extension extension) const;
- QVariant extension(Extension extension,
- const QVariant &argument = QVariant());
-
- void setIterationEnabled(bool enable);
- bool isIterationEnabled() const;
-
- void setCallableMode(CallableMode mode);
- CallableMode callableMode() const;
-
- void setHasInstance(bool hasInstance);
- bool hasInstance() const;
-
-private:
- inline CustomProperty *findCustomProperty(const QScriptString &name);
-
- QHash<QScriptString, CustomProperty*> customProperties;
-
- QScriptValue m_prototype;
- bool m_iterationEnabled;
- CallableMode m_callableMode;
- bool m_hasInstance;
-};
-
-class TestClassPropertyIterator : public QScriptClassPropertyIterator
-{
-public:
- TestClassPropertyIterator(const QHash<QScriptString, TestClass::CustomProperty*> &props,
- const QScriptValue &object);
- ~TestClassPropertyIterator();
-
- bool hasNext() const;
- void next();
-
- bool hasPrevious() const;
- void previous();
-
- void toFront();
- void toBack();
-
- QScriptString name() const;
- uint id() const;
- QScriptValue::PropertyFlags flags() const;
-
-private:
- int m_index;
- int m_last;
- QHash<QScriptString, TestClass::CustomProperty*> m_props;
-};
-
-TestClass::TestClass(QScriptEngine *engine)
- : QScriptClass(engine), m_iterationEnabled(true),
- m_callableMode(NotCallable), m_hasInstance(false)
-{
- m_prototype = engine->newObject();
-}
-
-TestClass::~TestClass()
-{
- qDeleteAll(customProperties);
-}
-
-TestClass::CustomProperty* TestClass::findCustomProperty(const QScriptString &name)
-{
- QHash<QScriptString, CustomProperty*>::const_iterator it;
- it = customProperties.constFind(name);
- if (it == customProperties.constEnd())
- return 0;
- return it.value();
-
-}
-
-void TestClass::addCustomProperty(const QScriptString &name, QueryFlags qflags,
- uint id, QScriptValue::PropertyFlags pflags,
- const QScriptValue &value)
-{
- customProperties.insert(name, new CustomProperty(qflags, id, pflags, value));
-}
-
-void TestClass::removeCustomProperty(const QScriptString &name)
-{
- CustomProperty *prop = customProperties.take(name);
- if (prop)
- delete prop;
-}
-
-QScriptClass::QueryFlags TestClass::queryProperty(const QScriptValue &/*object*/,
- const QScriptString &name,
- QueryFlags flags, uint *id)
-{
- CustomProperty *prop = findCustomProperty(name);
- if (!prop)
- return 0;
- *id = prop->id;
- return prop->qflags & flags;
-}
-
-QScriptValue TestClass::property(const QScriptValue &/*object*/,
- const QScriptString &name, uint /*id*/)
-{
- CustomProperty *prop = findCustomProperty(name);
- if (!prop)
- return QScriptValue();
- return prop->value;
-}
-
-void TestClass::setProperty(QScriptValue &/*object*/, const QScriptString &name,
- uint /*id*/, const QScriptValue &value)
-{
- CustomProperty *prop = findCustomProperty(name);
- if (!prop)
- return;
- prop->value = value;
-}
-
-QScriptValue::PropertyFlags TestClass::propertyFlags(
- const QScriptValue &/*object*/, const QScriptString &name, uint /*id*/)
-{
- CustomProperty *prop = findCustomProperty(name);
- if (!prop)
- return 0;
- return prop->pflags;
-}
-
-QScriptClassPropertyIterator *TestClass::newIterator(const QScriptValue &object)
-{
- if (!m_iterationEnabled)
- return 0;
- return new TestClassPropertyIterator(customProperties, object);
-}
-
-QScriptValue TestClass::prototype() const
-{
- return m_prototype;
-}
-
-QString TestClass::name() const
-{
- return QLatin1String("TestClass");
-}
-
-bool TestClass::supportsExtension(Extension extension) const
-{
- if (extension == Callable)
- return (m_callableMode != NotCallable);
- if (extension == HasInstance)
- return m_hasInstance;
- return false;
-}
-
-QVariant TestClass::extension(Extension extension,
- const QVariant &argument)
-{
- if (extension == Callable) {
- Q_ASSERT(m_callableMode != NotCallable);
- QScriptContext *ctx = qvariant_cast<QScriptContext*>(argument);
- if (m_callableMode == CallableReturnsSum) {
- qsreal sum = 0;
- for (int i = 0; i < ctx->argumentCount(); ++i)
- sum += ctx->argument(i).toNumber();
- QScriptValueIterator it(ctx->thisObject());
- while (it.hasNext()) {
- it.next();
- sum += it.value().toNumber();
- }
- return sum;
- } else if (m_callableMode == CallableReturnsArgument) {
- return qVariantFromValue(ctx->argument(0));
- } else if (m_callableMode == CallableReturnsInvalidVariant) {
- return QVariant();
- }
- } else if (extension == HasInstance) {
- Q_ASSERT(m_hasInstance);
- QScriptValueList args = qvariant_cast<QScriptValueList>(argument);
- QScriptValue obj = args.at(0);
- QScriptValue value = args.at(1);
- return value.property("foo").equals(obj.property("foo"));
- }
- return QVariant();
-}
-
-void TestClass::setIterationEnabled(bool enable)
-{
- m_iterationEnabled = enable;
-}
-
-bool TestClass::isIterationEnabled() const
-{
- return m_iterationEnabled;
-}
-
-void TestClass::setCallableMode(CallableMode mode)
-{
- m_callableMode = mode;
-}
-
-TestClass::CallableMode TestClass::callableMode() const
-{
- return m_callableMode;
-}
-
-void TestClass::setHasInstance(bool hasInstance)
-{
- m_hasInstance = hasInstance;
-}
-
-bool TestClass::hasInstance() const
-{
- return m_hasInstance;
-}
-
-TestClassPropertyIterator::TestClassPropertyIterator(const QHash<QScriptString, TestClass::CustomProperty*> &props,
- const QScriptValue &object)
- : QScriptClassPropertyIterator(object)
-{
- m_props = props;
- toFront();
-}
-
-TestClassPropertyIterator::~TestClassPropertyIterator()
-{
-}
-
-bool TestClassPropertyIterator::hasNext() const
-{
- return m_index < m_props.size();
-}
-
-void TestClassPropertyIterator::next()
-{
- m_last = m_index;
- ++m_index;
-}
-
-bool TestClassPropertyIterator::hasPrevious() const
-{
- return m_index > 0;
-}
-
-void TestClassPropertyIterator::previous()
-{
- --m_index;
- m_last = m_index;
-}
-
-void TestClassPropertyIterator::toFront()
-{
- m_index = 0;
- m_last = -1;
-}
-
-void TestClassPropertyIterator::toBack()
-{
- m_index = m_props.size();
- m_last = -1;
-}
-
-QScriptString TestClassPropertyIterator::name() const
-{
- return m_props.keys().value(m_last);
-}
-
-uint TestClassPropertyIterator::id() const
-{
- QScriptString key = m_props.keys().value(m_last);
- if (!key.isValid())
- return 0;
- TestClass::CustomProperty *prop = m_props.value(key);
- return prop->id;
-}
-
-QScriptValue::PropertyFlags TestClassPropertyIterator::flags() const
-{
- QScriptString key = m_props.keys().value(m_last);
- if (!key.isValid())
- return 0;
- TestClass::CustomProperty *prop = m_props.value(key);
- return prop->pflags;
-}
-
-class tst_QScriptClass : public QObject
-{
- Q_OBJECT
-
-public:
- tst_QScriptClass();
- virtual ~tst_QScriptClass();
-
-public slots:
- void init();
- void cleanup();
-
-private slots:
- void noSuchProperty();
- void property();
- void setProperty();
- void propertyFlags();
- void call();
- void hasInstance();
- void iterate();
-};
-
-tst_QScriptClass::tst_QScriptClass()
-{
-}
-
-tst_QScriptClass::~tst_QScriptClass()
-{
-}
-
-void tst_QScriptClass::init()
-{
-}
-
-void tst_QScriptClass::cleanup()
-{
-}
-
-void tst_QScriptClass::noSuchProperty()
-{
- QScriptEngine eng;
- TestClass cls(&eng);
- QScriptValue obj = eng.newObject(&cls);
- QString propertyName = QString::fromLatin1("foo");
- QBENCHMARK {
- (void)obj.property(propertyName);
- }
-}
-
-void tst_QScriptClass::property()
-{
- QScriptEngine eng;
- TestClass cls(&eng);
- QScriptString foo = eng.toStringHandle("foo");
- cls.addCustomProperty(foo, QScriptClass::HandlesReadAccess, /*id=*/1, /*attributes=*/0, /*value=*/123);
- QScriptValue obj = eng.newObject(&cls);
- QBENCHMARK {
- (void)obj.property(foo);
- }
-}
-
-void tst_QScriptClass::setProperty()
-{
- QScriptEngine eng;
- TestClass cls(&eng);
- QScriptString foo = eng.toStringHandle("foo");
- cls.addCustomProperty(foo, QScriptClass::HandlesWriteAccess, /*id=*/1, /*attributes=*/0, /*value=*/123);
- QScriptValue obj = eng.newObject(&cls);
- QScriptValue value(456);
- QBENCHMARK {
- obj.setProperty(foo, value);
- }
-}
-
-void tst_QScriptClass::propertyFlags()
-{
- QScriptEngine eng;
- TestClass cls(&eng);
- QScriptString foo = eng.toStringHandle("foo");
- cls.addCustomProperty(foo, QScriptClass::HandlesReadAccess, /*id=*/1, QScriptValue::ReadOnly, /*value=*/123);
- QScriptValue obj = eng.newObject(&cls);
- QBENCHMARK {
- (void)obj.propertyFlags(foo);
- }
-}
-
-void tst_QScriptClass::call()
-{
- QScriptEngine eng;
- TestClass cls(&eng);
- cls.setCallableMode(TestClass::CallableReturnsArgument);
- QScriptValue obj = eng.newObject(&cls);
- QScriptValue thisObject;
- QScriptValueList args;
- args.append(123);
- QBENCHMARK {
- (void)obj.call(thisObject, args);
- }
-}
-
-void tst_QScriptClass::hasInstance()
-{
- QScriptEngine eng;
- TestClass cls(&eng);
- cls.setHasInstance(true);
- QScriptValue obj = eng.newObject(&cls);
- obj.setProperty("foo", 123);
- QScriptValue plain = eng.newObject();
- plain.setProperty("foo", obj.property("foo"));
- QBENCHMARK {
- (void)plain.instanceOf(obj);
- }
-}
-
-void tst_QScriptClass::iterate()
-{
- QScriptEngine eng;
- TestClass cls(&eng);
- cls.setIterationEnabled(true);
- cls.addCustomProperty(eng.toStringHandle("foo"), QScriptClass::HandlesReadAccess, /*id=*/1, /*attributes=*/0, /*value=*/123);
- cls.addCustomProperty(eng.toStringHandle("bar"), QScriptClass::HandlesReadAccess, /*id=*/2, /*attributes=*/0, /*value=*/456);
- QScriptValue obj = eng.newObject(&cls);
- QBENCHMARK {
- QScriptValueIterator it(obj);
- while (it.hasNext()) {
- it.next();
- (void)it.scriptName();
- }
- }
-}
-
-QTEST_MAIN(tst_QScriptClass)
-#include "tst_qscriptclass.moc"
diff --git a/tests/benchmarks/qtestlib-simple/main.cpp b/tests/benchmarks/qtestlib-simple/main.cpp
deleted file mode 100644
index a8dabe9..0000000
--- a/tests/benchmarks/qtestlib-simple/main.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 Technology Preview License Agreement accompanying
-** this package.
-**
-** 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <QtGui>
-#include <QString>
-
-#include <qtest.h>
-
-
-class tst_QHash : public QObject
-{
- Q_OBJECT
-private slots:
- void foo1_data();
- void foo1();
- void foo2_data();
- void foo2();
- void foo3();
-};
-
-void tst_QHash::foo1_data()
-{
- QTest::addColumn<int>("x");
- QTest::addColumn<int>("y");
- QTest::newRow("tag1.1") << 16 << 17;
- QTest::newRow("tag2.1") << 18 << 19;
-}
-
-void tst_QHash::foo1()
-{
- QFETCH(int, x);
- QFETCH(int, y);
- Q_UNUSED(x);
- Q_UNUSED(y);
-
- QHash<int, int> testHash;
-
- QBENCHMARK {
- testHash.insertMulti(1, 1);
- }
-}
-
-void tst_QHash::foo2_data()
-{
- QTest::addColumn<int>("x");
- QTest::addColumn<int>("y");
- QTest::newRow("tag1.1") << 16 << 17;
- QTest::newRow("tag2.1") << 18 << 19;
-}
-
-void tst_QHash::foo2()
-{
- QFETCH(int, x);
- QFETCH(int, y);
- Q_UNUSED(x);
- Q_UNUSED(y);
-
- QHash<int, int> testHash;
-
- QBENCHMARK {
- testHash.insertMulti(1, 1);
- }
-
- QBENCHMARK {
- testHash.insertMulti(1, 1);
- }
-}
-
-void tst_QHash::foo3()
-{
- QHash<int, int> testHash;
-
- QBENCHMARK {
- testHash.insertMulti(1, 1);
- }
-}
-
-
-QTEST_MAIN(tst_QHash)
-#include "main.moc"
diff --git a/tests/benchmarks/qtestlib-simple/qtestlib-simple.pro b/tests/benchmarks/qtestlib-simple/qtestlib-simple.pro
deleted file mode 100644
index 7c49883..0000000
--- a/tests/benchmarks/qtestlib-simple/qtestlib-simple.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-load(qttest_p4)
-TEMPLATE = app
-TARGET = tst_qtestlib-simple
-DEPENDPATH += .
-INCLUDEPATH += .
-
-# Input
-SOURCES += main.cpp
diff --git a/tests/benchmarks/qtwidgets/advanced.ui b/tests/benchmarks/qtwidgets/advanced.ui
deleted file mode 100644
index ce27374..0000000
--- a/tests/benchmarks/qtwidgets/advanced.ui
+++ /dev/null
@@ -1,319 +0,0 @@
-<ui version="4.0" >
- <author></author>
- <comment></comment>
- <exportmacro></exportmacro>
- <class>Advanced</class>
- <widget class="QWidget" name="Advanced" >
- <property name="objectName" >
- <string notr="true" >Advanced</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>400</width>
- <height>300</height>
- </rect>
- </property>
- <layout class="QVBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>9</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QPushButton" name="pushButton" >
- <property name="objectName" >
- <string notr="true" >pushButton</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>80</width>
- <height>23</height>
- </rect>
- </property>
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="pushButton_2" >
- <property name="objectName" >
- <string notr="true" >pushButton_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>87</x>
- <y>1</y>
- <width>80</width>
- <height>23</height>
- </rect>
- </property>
- <property name="text" >
- <string>Text</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="checkBox" >
- <property name="objectName" >
- <string notr="true" >checkBox</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>173</x>
- <y>6</y>
- <width>23</width>
- <height>13</height>
- </rect>
- </property>
- <property name="text" >
- <string/>
- </property>
- <property name="icon" >
- <iconset/>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="radioButton" >
- <property name="objectName" >
- <string notr="true" >radioButton</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>202</x>
- <y>6</y>
- <width>22</width>
- <height>12</height>
- </rect>
- </property>
- <property name="text" >
- <string/>
- </property>
- <property name="icon" >
- <iconset/>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="checkBox_2" >
- <property name="objectName" >
- <string notr="true" >checkBox_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>230</x>
- <y>3</y>
- <width>44</width>
- <height>18</height>
- </rect>
- </property>
- <property name="text" >
- <string>Text</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="radioButton_2" >
- <property name="objectName" >
- <string notr="true" >radioButton_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>280</x>
- <y>3</y>
- <width>43</width>
- <height>18</height>
- </rect>
- </property>
- <property name="text" >
- <string>Text</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QGridLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="0" column="0" >
- <widget class="QListWidget" name="listWidget" >
- <property name="objectName" >
- <string notr="true" >listWidget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>186</width>
- <height>91</height>
- </rect>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <widget class="QListWidget" name="listWidget_3" >
- <property name="objectName" >
- <string notr="true" >listWidget_3</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>193</x>
- <y>96</y>
- <width>188</width>
- <height>60</height>
- </rect>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <widget class="QTreeWidget" name="treeWidget_2" >
- <property name="objectName" >
- <string notr="true" >treeWidget_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>96</y>
- <width>186</width>
- <height>60</height>
- </rect>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <layout class="QVBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QListWidget" name="listWidget_2" >
- <property name="objectName" >
- <string notr="true" >listWidget_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>186</width>
- <height>43</height>
- </rect>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QTreeWidget" name="treeWidget" >
- <property name="objectName" >
- <string notr="true" >treeWidget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>48</y>
- <width>186</width>
- <height>43</height>
- </rect>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QTabWidget" name="tabWidget" >
- <property name="objectName" >
- <string notr="true" >tabWidget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>9</x>
- <y>201</y>
- <width>382</width>
- <height>90</height>
- </rect>
- </property>
- <property name="minimumSize" >
- <size>
- <width>0</width>
- <height>90</height>
- </size>
- </property>
- <property name="tabPosition" >
- <enum>QTabWidget::North</enum>
- </property>
- <property name="tabShape" >
- <enum>QTabWidget::Rounded</enum>
- </property>
- <widget class="QWidget" name="widget" >
- <property name="objectName" >
- <string notr="true" >widget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>380</width>
- <height>63</height>
- </rect>
- </property>
- <attribute name="title" >
- <string>Tab Page 1</string>
- </attribute>
- </widget>
- <widget class="QWidget" name="widget" >
- <property name="objectName" >
- <string notr="true" >widget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>459</width>
- <height>66</height>
- </rect>
- </property>
- <attribute name="title" >
- <string>Tab Page 2</string>
- </attribute>
- </widget>
- </widget>
- </item>
- </layout>
- </widget>
- <pixmapfunction></pixmapfunction>
- <connections/>
-</ui>
diff --git a/tests/benchmarks/qtwidgets/icons/big.png b/tests/benchmarks/qtwidgets/icons/big.png
deleted file mode 100644
index 6032804..0000000
--- a/tests/benchmarks/qtwidgets/icons/big.png
+++ /dev/null
Binary files differ
diff --git a/tests/benchmarks/qtwidgets/icons/folder.png b/tests/benchmarks/qtwidgets/icons/folder.png
deleted file mode 100644
index 981a25d..0000000
--- a/tests/benchmarks/qtwidgets/icons/folder.png
+++ /dev/null
Binary files differ
diff --git a/tests/benchmarks/qtwidgets/icons/icon.bmp b/tests/benchmarks/qtwidgets/icons/icon.bmp
deleted file mode 100644
index 196de6a..0000000
--- a/tests/benchmarks/qtwidgets/icons/icon.bmp
+++ /dev/null
Binary files differ
diff --git a/tests/benchmarks/qtwidgets/icons/icon.png b/tests/benchmarks/qtwidgets/icons/icon.png
deleted file mode 100644
index 8f9c562..0000000
--- a/tests/benchmarks/qtwidgets/icons/icon.png
+++ /dev/null
Binary files differ
diff --git a/tests/benchmarks/qtwidgets/mainwindow.cpp b/tests/benchmarks/qtwidgets/mainwindow.cpp
deleted file mode 100644
index bb19567..0000000
--- a/tests/benchmarks/qtwidgets/mainwindow.cpp
+++ /dev/null
@@ -1,313 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 Technology Preview License Agreement accompanying
-** this package.
-**
-** 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "mainwindow.h"
-#include <QSplitter>
-#include <QHeaderView>
-
-StyleWidget::StyleWidget(QWidget *parent, Qt::WFlags f)
- : QWidget(parent, f)
-{
- QHBoxLayout *hbox = new QHBoxLayout(this);
- QSplitter *spl = new QSplitter(this);
-
- // standard widgets
- QWidget *leftWidget = new QWidget(this);
- m_staWidget.setupUi(leftWidget);
-
- // advanced/system widgets
- QGroupBox *rightWidget = new QGroupBox("Advanced", this);
- QVBoxLayout *vbox = new QVBoxLayout(rightWidget);
- QWidget *adv = new QWidget(rightWidget);
- m_advWidget.setupUi(adv);
- QWidget *sys = new QWidget(rightWidget);
- m_sysWidget.setupUi(sys);
- vbox->addWidget(adv);
- vbox->addWidget(sys);
-
- spl->addWidget(leftWidget);
- spl->addWidget(rightWidget);
-
- hbox->setMargin(4);
- hbox->addWidget(spl);
-
- m_small1 = QIcon(":/icons/icon.bmp");
- m_small2 = QIcon(":/icons/icon.png");
- m_big = QIcon(":/icons/big.png");
-
- addComboBoxItems();
- addTreeItems();
- addTreeListItems();
- addListItems();
- addTextEdit();
- setupOtherWidgets();
- setupButtons();
-
- foreach(QWidget *w, qFindChildren<QWidget *>(parentWidget()))
- w->setWhatsThis(w->metaObject()->className());
-}
-
-StyleWidget::~StyleWidget()
-{
-
-}
-
-void StyleWidget::addTextEdit()
-{
- m_staWidget.textEdit->setPlainText(
- "Some Text\nSome Text\nSome Text\nSome Text\nSome Text\nSome Text\nSome Text\nSome Text");
- m_staWidget.textEdit_2->setPlainText(
- "Some Text, Some Text, Some Text, Some Text, Some Text, Some Text, Some Text, Some Text");
- m_staWidget.textEdit_3->setPlainText(
- "Some Text, Some Text, Some Text, Some Text, Some Text, Some Text, Some Text, Some Text" \
- "Some Text\nSome Text\nSome Text\nSome Text\nSome Text\nSome Text\nSome Text\nSome Text\n");
-}
-
-void StyleWidget::addComboBoxItems()
-{
- m_staWidget.comboBox->addItem("Item 1");
- m_staWidget.comboBox->addItem("Item 2");
- m_staWidget.comboBox->addItem("Item 3");
- m_staWidget.comboBox->addItem("Item 4");
- m_staWidget.comboBox->addItem("Item 5");
-}
-
-void StyleWidget::addListItems()
-{
- m_staWidget.listWidget->addItem("Item 1");
- m_staWidget.listWidget->addItem("Item 2");
- m_staWidget.listWidget->addItem("Item 3");
- m_staWidget.listWidget->addItem("Item 4");
- m_staWidget.listWidget->addItem("Item 5");
-
- QListWidgetItem *tmp = new QListWidgetItem("Item 1", m_staWidget.listWidget_2);
- tmp->setCheckState(Qt::Checked);
- tmp = new QListWidgetItem("Item 2", m_staWidget.listWidget_2);
- tmp->setCheckState(Qt::Checked);
- tmp = new QListWidgetItem("Item 3", m_staWidget.listWidget_2);
- tmp->setCheckState(Qt::Checked);
- tmp = new QListWidgetItem("Item 4", m_staWidget.listWidget_2);
- tmp->setCheckState(Qt::Checked);
- tmp = new QListWidgetItem("Item 5", m_staWidget.listWidget_2);
- tmp->setCheckState(Qt::Checked);
-
- tmp = new QListWidgetItem("Item 1", m_advWidget.listWidget_3);
- tmp->setCheckState(Qt::Checked);
- tmp->setIcon(m_small1);
- tmp = new QListWidgetItem("Item 2", m_advWidget.listWidget_3);
- tmp->setCheckState(Qt::Checked);
- tmp->setIcon(m_small1);
- tmp = new QListWidgetItem("Item 3", m_advWidget.listWidget_3);
- tmp->setCheckState(Qt::Checked);
- tmp->setIcon(m_small1);
- tmp = new QListWidgetItem("Item 4", m_advWidget.listWidget_3);
- tmp->setCheckState(Qt::Checked);
- tmp->setIcon(m_small1);
- tmp = new QListWidgetItem("Item 5", m_advWidget.listWidget_3);
- tmp->setCheckState(Qt::Checked);
- tmp->setIcon(m_small1);
-
- m_advWidget.listWidget->setViewMode(QListView::IconMode);
- QIcon folder(":/icons/folder.png");
- tmp = new QListWidgetItem("Item 1", m_advWidget.listWidget);
- tmp->setIcon(folder);
- tmp = new QListWidgetItem("Item 2", m_advWidget.listWidget);
- tmp->setIcon(folder);
- tmp = new QListWidgetItem("Item 3", m_advWidget.listWidget);
- tmp->setIcon(folder);
- tmp = new QListWidgetItem("Item 4", m_advWidget.listWidget);
- tmp->setIcon(folder);
- tmp = new QListWidgetItem("Item 5", m_advWidget.listWidget);
- tmp->setIcon(folder);
-
- tmp = new QListWidgetItem("Item 1", m_advWidget.listWidget_2);
- tmp->setIcon(m_small1);
- tmp = new QListWidgetItem("Item 2", m_advWidget.listWidget_2);
- tmp->setIcon(m_small1);
- tmp = new QListWidgetItem("Item 3", m_advWidget.listWidget_2);
- tmp->setIcon(m_small1);
- tmp = new QListWidgetItem("Item 4", m_advWidget.listWidget_2);
- tmp->setIcon(m_small1);
- tmp = new QListWidgetItem("Item 5", m_advWidget.listWidget_2);
- tmp->setIcon(m_small1);
-}
-
-void StyleWidget::setupOtherWidgets()
-{
- m_sysWidget.tableWidget->setRowCount(100);
- m_sysWidget.tableWidget->setColumnCount(100);
-}
-
-void StyleWidget::addTreeItems()
-{
- //standard tree
- m_staWidget.treeWidget_2->setColumnCount(1);
- m_staWidget.treeWidget_2->header()->hide();
-
- QTreeWidgetItem *tmp;
- QTreeWidgetItem *subtmp;
- QTreeWidgetItem *root1 = new QTreeWidgetItem(m_staWidget.treeWidget_2);
- root1->setText(0, "Root 1");
- QTreeWidgetItem *root2 = new QTreeWidgetItem(m_staWidget.treeWidget_2);
- root2->setText(0, "Root 2");
-
- for (int i=1; i<=10; ++i)
- {
- tmp = new QTreeWidgetItem(root1);
- tmp->setText(0, QString("Item %1").arg(i));
- for (int j=1; j<=5; ++j)
- {
- subtmp = new QTreeWidgetItem(tmp);
- subtmp->setText(0, QString("Sub Item %1").arg(j));
- }
- }
-
- // standard checked tree
- m_staWidget.treeWidget_4->setColumnCount(1);
- m_staWidget.treeWidget_4->header()->hide();
-
- root1 = new QTreeWidgetItem(m_staWidget.treeWidget_4);
- root1->setText(0, "Root 1");
- root1->setCheckState(0, Qt::Checked);
- root2 = new QTreeWidgetItem(m_staWidget.treeWidget_4);
- root2->setText(0, "Root 2");
- root2->setCheckState(0, Qt::Checked);
-
- for (int i=1; i<=10; ++i)
- {
- tmp = new QTreeWidgetItem(root1);
- tmp->setText(0, QString("Item %1").arg(i));
- tmp->setCheckState(0, Qt::Checked);
- for (int j=1; j<=5; ++j)
- {
- subtmp = new QTreeWidgetItem(tmp);
- subtmp->setText(0, QString("Sub Item %1").arg(j));
- subtmp->setCheckState(0, Qt::Checked);
- }
- }
-
- // advanced (images) tree
- m_advWidget.treeWidget_2->setColumnCount(1);
- m_advWidget.treeWidget_2->header()->hide();
-
- root1 = new QTreeWidgetItem(m_advWidget.treeWidget_2);
- root1->setText(0, "Root 1");
- root1->setIcon(0, m_small1);
- root2 = new QTreeWidgetItem(m_advWidget.treeWidget_2);
- root2->setText(0, "Root 2");
- root2->setIcon(0, m_small1);
-
- for (int i=1; i<=10; ++i)
- {
- tmp = new QTreeWidgetItem(root1);
- tmp->setText(0, QString("Item %1").arg(i));
- tmp->setIcon(0, m_small2);
- for (int j=1; j<=5; ++j)
- {
- subtmp = new QTreeWidgetItem(tmp);
- subtmp->setText(0, QString("Sub Item %1").arg(j));
- tmp->setIcon(0, m_small1);
- }
- }
-
-}
-
-void StyleWidget::addTreeListItems()
-{
- //standard list
- QTreeWidgetItem *tmp;
- m_staWidget.treeWidget->setColumnCount(3);
- m_staWidget.treeWidget->headerItem()->setText(0, "Col1");
- m_staWidget.treeWidget->headerItem()->setText(1, "Col2");
- m_staWidget.treeWidget->headerItem()->setText(2, "Col3");
-
- for (int i=1; i<10; ++i)
- {
- tmp = new QTreeWidgetItem(m_staWidget.treeWidget);
- tmp->setText(0, QString("Item%1").arg(i));
- tmp->setText(1, QString("Item%11").arg(i));
- tmp->setText(2, QString("Item%12").arg(i));
- }
-
- //standard checked list
- m_staWidget.treeWidget_3->setColumnCount(3);
- m_staWidget.treeWidget_3->headerItem()->setText(0, "Col1");
- m_staWidget.treeWidget_3->headerItem()->setText(1, "Col2");
- m_staWidget.treeWidget_3->headerItem()->setText(2, "Col3");
-
- for (int i=1; i<10; ++i)
- {
- tmp = new QTreeWidgetItem(m_staWidget.treeWidget_3);
- tmp->setText(0, QString("Item%1").arg(i));
- tmp->setCheckState(0, Qt::Checked);
- tmp->setText(1, QString("Item%11").arg(i));
- tmp->setText(2, QString("Item%12").arg(i));
- }
-
- //with images
- m_advWidget.treeWidget->setColumnCount(2);
- m_advWidget.treeWidget->headerItem()->setText(0, "Col1");
- m_advWidget.treeWidget->headerItem()->setIcon(0, m_small2);
- m_advWidget.treeWidget->headerItem()->setText(1, "Col2");
- m_advWidget.treeWidget->headerItem()->setIcon(1, m_small2);
-
- for (int i=1; i<10; ++i)
- {
- tmp = new QTreeWidgetItem(m_advWidget.treeWidget);
- tmp->setText(0, QString("Item%1").arg(i));
- tmp->setIcon(0, m_small1);
- tmp->setText(1, QString("Item%11").arg(i));
- }
-}
-
-void StyleWidget::setupButtons()
-{
- m_advWidget.pushButton->setIcon(m_small1);
- m_advWidget.pushButton_2->setIcon(m_small1);
- m_advWidget.checkBox->setIcon(m_small2);
- m_advWidget.checkBox_2->setIcon(m_small2);
- m_advWidget.radioButton->setIcon(m_small2);
- m_advWidget.radioButton_2->setIcon(m_small2);
-
- // tab page images
- m_advWidget.tabWidget->setTabIcon(0, m_small2);
- m_advWidget.tabWidget->setTabIcon(1, m_small2);
-}
diff --git a/tests/benchmarks/qtwidgets/mainwindow.h b/tests/benchmarks/qtwidgets/mainwindow.h
deleted file mode 100644
index 8a4521a..0000000
--- a/tests/benchmarks/qtwidgets/mainwindow.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 Technology Preview License Agreement accompanying
-** this package.
-**
-** 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QWidget>
-#include <QWhatsThis>
-#include "ui_standard.h"
-#include "ui_advanced.h"
-#include "ui_system.h"
-
-class StyleWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- StyleWidget(QWidget *parent = 0, Qt::WFlags f = 0);
- ~StyleWidget();
-
-public slots:
- void onWhatsThis() { QWhatsThis::enterWhatsThisMode(); }
-
-private:
- void addComboBoxItems();
- void addListItems();
- void addTextEdit();
- void setupOtherWidgets();
- void setupButtons();
- void addTreeItems();
- void addTreeListItems();
-
- Ui::Standard m_staWidget;
- Ui::Advanced m_advWidget;
- Ui::System m_sysWidget;
-
- QIcon m_small1;
- QIcon m_small2;
- QIcon m_big;
-};
-
-#endif //MAINWINDOW_H
-
diff --git a/tests/benchmarks/qtwidgets/qtstyles.qrc b/tests/benchmarks/qtwidgets/qtstyles.qrc
deleted file mode 100644
index 772891d..0000000
--- a/tests/benchmarks/qtwidgets/qtstyles.qrc
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource prefix="/">
- <file name="icon.png">./icons/icon.png</file>
- <file name="icon.bmp">./icons/icon.bmp</file>
- <file name="big.png">./icons/big.png</file>
- <file name="folder.png">./icons/folder.png</file>
-</qresource>
-</RCC>
diff --git a/tests/benchmarks/qtwidgets/qtwidgets.pro b/tests/benchmarks/qtwidgets/qtwidgets.pro
deleted file mode 100644
index ad5e7ac..0000000
--- a/tests/benchmarks/qtwidgets/qtwidgets.pro
+++ /dev/null
@@ -1,9 +0,0 @@
-load(qttest_p4)
-
-SOURCES += tst_qtwidgets.cpp mainwindow.cpp
-HEADERS += mainwindow.h
-QT += network
-RESOURCES = qtstyles.qrc
-FORMS += advanced.ui system.ui standard.ui
-
-
diff --git a/tests/benchmarks/qtwidgets/standard.ui b/tests/benchmarks/qtwidgets/standard.ui
deleted file mode 100644
index 9764a66..0000000
--- a/tests/benchmarks/qtwidgets/standard.ui
+++ /dev/null
@@ -1,1207 +0,0 @@
-<ui version="4.0" >
- <author></author>
- <comment></comment>
- <exportmacro></exportmacro>
- <class>Standard</class>
- <widget class="QWidget" name="Standard" >
- <property name="objectName" >
- <string notr="true" >Standard</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>400</width>
- <height>300</height>
- </rect>
- </property>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>0</number>
- </property>
- <item>
- <widget class="QGroupBox" name="groupBox" >
- <property name="objectName" >
- <string notr="true" >groupBox</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>400</width>
- <height>300</height>
- </rect>
- </property>
- <property name="title" >
- <string>Standard</string>
- </property>
- <layout class="QVBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>9</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <layout class="QVBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QCheckBox" name="checkBox" >
- <property name="objectName" >
- <string notr="true" >checkBox</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>114</width>
- <height>3</height>
- </rect>
- </property>
- <property name="text" >
- <string>Enabled &amp;CheckBox</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="checkBox_2" >
- <property name="objectName" >
- <string notr="true" >checkBox_2</string>
- </property>
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="geometry" >
- <rect>
- <x>121</x>
- <y>1</y>
- <width>116</width>
- <height>3</height>
- </rect>
- </property>
- <property name="text" >
- <string>Disabled Check&amp;Box</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="geometry" >
- <rect>
- <x>243</x>
- <y>1</y>
- <width>80</width>
- <height>3</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QComboBox" name="comboBox" >
- <property name="objectName" >
- <string notr="true" >comboBox</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>41</width>
- <height>3</height>
- </rect>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="comboBox_2" >
- <property name="objectName" >
- <string notr="true" >comboBox_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>48</x>
- <y>1</y>
- <width>41</width>
- <height>3</height>
- </rect>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="comboBox_3" >
- <property name="objectName" >
- <string notr="true" >comboBox_3</string>
- </property>
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="geometry" >
- <rect>
- <x>95</x>
- <y>1</y>
- <width>41</width>
- <height>3</height>
- </rect>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QPushButton" name="pushButton" >
- <property name="objectName" >
- <string notr="true" >pushButton</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>80</width>
- <height>3</height>
- </rect>
- </property>
- <property name="text" >
- <string>&amp;Enabled</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="pushButton_2" >
- <property name="objectName" >
- <string notr="true" >pushButton_2</string>
- </property>
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="geometry" >
- <rect>
- <x>87</x>
- <y>1</y>
- <width>80</width>
- <height>3</height>
- </rect>
- </property>
- <property name="text" >
- <string>Di&amp;sabled</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="geometry" >
- <rect>
- <x>173</x>
- <y>1</y>
- <width>150</width>
- <height>3</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QLabel" name="label" >
- <property name="objectName" >
- <string notr="true" >label</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>99</width>
- <height>3</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Plain</enum>
- </property>
- <property name="text" >
- <string>Label with some text.</string>
- </property>
- <property name="textFormat" >
- <enum>Qt::AutoText</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_2" >
- <property name="objectName" >
- <string notr="true" >label_2</string>
- </property>
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="geometry" >
- <rect>
- <x>106</x>
- <y>1</y>
- <width>139</width>
- <height>3</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Plain</enum>
- </property>
- <property name="text" >
- <string>Disabled label with some text.</string>
- </property>
- <property name="textFormat" >
- <enum>Qt::AutoText</enum>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="geometry" >
- <rect>
- <x>251</x>
- <y>1</y>
- <width>72</width>
- <height>3</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QLineEdit" name="lineEdit" >
- <property name="objectName" >
- <string notr="true" >lineEdit</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>135</width>
- <height>3</height>
- </rect>
- </property>
- <property name="text" >
- <string>Enabled</string>
- </property>
- <property name="echoMode" >
- <enum>QLineEdit::Normal</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="lineEdit_2" >
- <property name="objectName" >
- <string notr="true" >lineEdit_2</string>
- </property>
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="geometry" >
- <rect>
- <x>142</x>
- <y>1</y>
- <width>134</width>
- <height>3</height>
- </rect>
- </property>
- <property name="text" >
- <string>Disabled</string>
- </property>
- <property name="echoMode" >
- <enum>QLineEdit::Normal</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="spinBox" >
- <property name="objectName" >
- <string notr="true" >spinBox</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>282</x>
- <y>1</y>
- <width>41</width>
- <height>3</height>
- </rect>
- </property>
- <property name="buttonSymbols" >
- <enum>QAbstractSpinBox::UpDownArrows</enum>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QRadioButton" name="radioButton" >
- <property name="objectName" >
- <string notr="true" >radioButton</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>123</width>
- <height>3</height>
- </rect>
- </property>
- <property name="text" >
- <string>Enabled RadioButton</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="radioButton_2" >
- <property name="objectName" >
- <string notr="true" >radioButton_2</string>
- </property>
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="geometry" >
- <rect>
- <x>130</x>
- <y>1</y>
- <width>125</width>
- <height>3</height>
- </rect>
- </property>
- <property name="text" >
- <string>Disabled RadioButton</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="geometry" >
- <rect>
- <x>261</x>
- <y>1</y>
- <width>62</width>
- <height>3</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QScrollBar" name="horizontalScrollBar" >
- <property name="objectName" >
- <string notr="true" >horizontalScrollBar</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>90</width>
- <height>3</height>
- </rect>
- </property>
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize" >
- <size>
- <width>90</width>
- <height>0</height>
- </size>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QScrollBar" name="horizontalScrollBar_2" >
- <property name="objectName" >
- <string notr="true" >horizontalScrollBar_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>97</x>
- <y>1</y>
- <width>30</width>
- <height>3</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QScrollBar" name="verticalScrollBar" >
- <property name="objectName" >
- <string notr="true" >verticalScrollBar</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>333</x>
- <y>1</y>
- <width>17</width>
- <height>37</height>
- </rect>
- </property>
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSlider" name="slider" >
- <property name="objectName" >
- <string notr="true" >slider</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>356</x>
- <y>1</y>
- <width>21</width>
- <height>37</height>
- </rect>
- </property>
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="tickPosition" >
- <enum>QSlider::TicksBelow</enum>
- </property>
- <property name="tickInterval" >
- <number>0</number>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QSlider" name="slider_2" >
- <property name="objectName" >
- <string notr="true" >slider_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>6</y>
- <width>90</width>
- <height>16</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="tickPosition" >
- <enum>QSlider::NoTicks</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSlider" name="slider_3" >
- <property name="objectName" >
- <string notr="true" >slider_3</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>97</x>
- <y>3</y>
- <width>89</width>
- <height>21</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="tickPosition" >
- <enum>QSlider::TicksBelow</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSlider" name="slider_4" >
- <property name="objectName" >
- <string notr="true" >slider_4</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>192</x>
- <y>3</y>
- <width>90</width>
- <height>21</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="tickPosition" >
- <enum>QSlider::TicksAbove</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSlider" name="slider_5" >
- <property name="objectName" >
- <string notr="true" >slider_5</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>288</x>
- <y>1</y>
- <width>89</width>
- <height>26</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="tickPosition" >
- <enum>QSlider::TicksBothSides</enum>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QTextEdit" name="textEdit" >
- <property name="objectName" >
- <string notr="true" >textEdit</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>89</width>
- <height>37</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::StyledPanel</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Sunken</enum>
- </property>
- <property name="verticalScrollBarPolicy" >
- <enum>Qt::ScrollBarAlwaysOn</enum>
- </property>
- <property name="horizontalScrollBarPolicy" >
- <enum>Qt::ScrollBarAlwaysOff</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QTextEdit" name="textEdit_2" >
- <property name="objectName" >
- <string notr="true" >textEdit_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>96</x>
- <y>1</y>
- <width>90</width>
- <height>37</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::StyledPanel</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Sunken</enum>
- </property>
- <property name="verticalScrollBarPolicy" >
- <enum>Qt::ScrollBarAlwaysOff</enum>
- </property>
- <property name="horizontalScrollBarPolicy" >
- <enum>Qt::ScrollBarAlwaysOn</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QTextEdit" name="textEdit_3" >
- <property name="objectName" >
- <string notr="true" >textEdit_3</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>192</x>
- <y>1</y>
- <width>89</width>
- <height>100</height>
- </rect>
- </property>
- <property name="minimumSize" >
- <size>
- <width>0</width>
- <height>100</height>
- </size>
- </property>
- <property name="frameShape" >
- <enum>QFrame::StyledPanel</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Sunken</enum>
- </property>
- <property name="verticalScrollBarPolicy" >
- <enum>Qt::ScrollBarAlwaysOn</enum>
- </property>
- <property name="horizontalScrollBarPolicy" >
- <enum>Qt::ScrollBarAlwaysOn</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QTextEdit" name="textEdit_4" >
- <property name="objectName" >
- <string notr="true" >textEdit_4</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>287</x>
- <y>1</y>
- <width>90</width>
- <height>37</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::StyledPanel</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Sunken</enum>
- </property>
- <property name="verticalScrollBarPolicy" >
- <enum>Qt::ScrollBarAsNeeded</enum>
- </property>
- <property name="horizontalScrollBarPolicy" >
- <enum>Qt::ScrollBarAsNeeded</enum>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_2" >
- <property name="objectName" >
- <string notr="true" >groupBox_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>11</x>
- <y>132</y>
- <width>378</width>
- <height>39</height>
- </rect>
- </property>
- <property name="title" >
- <string>GroupBox</string>
- </property>
- <layout class="QVBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>9</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QProgressBar" name="progressBar" >
- <property name="objectName" >
- <string notr="true" >progressBar</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>11</x>
- <y>20</y>
- <width>356</width>
- <height>8</height>
- </rect>
- </property>
- <property name="value" >
- <number>50</number>
- </property>
- <property name="textVisible" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QListWidget" name="listWidget" >
- <property name="objectName" >
- <string notr="true" >listWidget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>107</width>
- <height>37</height>
- </rect>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QListWidget" name="listWidget_2" >
- <property name="objectName" >
- <string notr="true" >listWidget_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>114</x>
- <y>1</y>
- <width>107</width>
- <height>37</height>
- </rect>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QTabWidget" name="tabWidget" >
- <property name="objectName" >
- <string notr="true" >tabWidget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>227</x>
- <y>1</y>
- <width>150</width>
- <height>37</height>
- </rect>
- </property>
- <property name="minimumSize" >
- <size>
- <width>150</width>
- <height>0</height>
- </size>
- </property>
- <property name="tabPosition" >
- <enum>QTabWidget::North</enum>
- </property>
- <property name="tabShape" >
- <enum>QTabWidget::Rounded</enum>
- </property>
- <widget class="QWidget" name="" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>148</width>
- <height>10</height>
- </rect>
- </property>
- <attribute name="title" >
- <string>Tab Page 1</string>
- </attribute>
- </widget>
- <widget class="QWidget" name="" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>116</width>
- <height>56</height>
- </rect>
- </property>
- <attribute name="title" >
- <string>Tab Page 2</string>
- </attribute>
- </widget>
- <widget class="QWidget" name="widget" >
- <property name="objectName" >
- <string notr="true" >widget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>116</width>
- <height>56</height>
- </rect>
- </property>
- <attribute name="title" >
- <string>Tab Page 3</string>
- </attribute>
- </widget>
- <widget class="QWidget" name="widget" >
- <property name="objectName" >
- <string notr="true" >widget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>146</width>
- <height>36</height>
- </rect>
- </property>
- <attribute name="title" >
- <string>Tab Page 4</string>
- </attribute>
- </widget>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QTabWidget" name="tabWidget_2" >
- <property name="objectName" >
- <string notr="true" >tabWidget_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>11</x>
- <y>214</y>
- <width>378</width>
- <height>90</height>
- </rect>
- </property>
- <property name="minimumSize" >
- <size>
- <width>0</width>
- <height>90</height>
- </size>
- </property>
- <property name="tabPosition" >
- <enum>QTabWidget::North</enum>
- </property>
- <property name="tabShape" >
- <enum>QTabWidget::Rounded</enum>
- </property>
- <widget class="QWidget" name="widget" >
- <property name="objectName" >
- <string notr="true" >widget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>376</width>
- <height>63</height>
- </rect>
- </property>
- <attribute name="title" >
- <string>Tab Page 1</string>
- </attribute>
- </widget>
- <widget class="QWidget" name="widget" >
- <property name="objectName" >
- <string notr="true" >widget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>424</width>
- <height>66</height>
- </rect>
- </property>
- <attribute name="title" >
- <string>Tab Page 2</string>
- </attribute>
- </widget>
- </widget>
- </item>
- <item>
- <layout class="QGridLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="0" column="1" >
- <widget class="QTreeWidget" name="treeWidget_2" >
- <property name="objectName" >
- <string notr="true" >treeWidget_2</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>192</x>
- <y>1</y>
- <width>185</width>
- <height>18</height>
- </rect>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <widget class="QTreeWidget" name="treeWidget_3" >
- <property name="objectName" >
- <string notr="true" >treeWidget_3</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>20</y>
- <width>185</width>
- <height>18</height>
- </rect>
- </property>
- </widget>
- </item>
- <item row="0" column="0" >
- <widget class="QTreeWidget" name="treeWidget" >
- <property name="objectName" >
- <string notr="true" >treeWidget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>185</width>
- <height>18</height>
- </rect>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <widget class="QTreeWidget" name="treeWidget_4" >
- <property name="objectName" >
- <string notr="true" >treeWidget_4</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>192</x>
- <y>20</y>
- <width>185</width>
- <height>18</height>
- </rect>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- <pixmapfunction></pixmapfunction>
- <connections/>
-</ui>
diff --git a/tests/benchmarks/qtwidgets/system.ui b/tests/benchmarks/qtwidgets/system.ui
deleted file mode 100644
index a641e0e..0000000
--- a/tests/benchmarks/qtwidgets/system.ui
+++ /dev/null
@@ -1,658 +0,0 @@
-<ui version="4.0" >
- <author></author>
- <comment></comment>
- <exportmacro></exportmacro>
- <class>System</class>
- <widget class="QWidget" name="System" >
- <property name="objectName" >
- <string notr="true" >System</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>400</width>
- <height>604</height>
- </rect>
- </property>
- <layout class="QVBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>9</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <layout class="QGridLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="1" column="1" >
- <widget class="QToolButton" name="toolButton" >
- <property name="objectName" >
- <string notr="true" >toolButton</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>340</x>
- <y>138</y>
- <width>15</width>
- <height>19</height>
- </rect>
- </property>
- <property name="text" >
- <string>...</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <widget class="QFrame" name="horizontalLine" >
- <property name="objectName" >
- <string notr="true" >horizontalLine</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>146</y>
- <width>333</width>
- <height>3</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::HLine</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Sunken</enum>
- </property>
- </widget>
- </item>
- <item row="0" column="2" >
- <widget class="QFrame" name="verticalLine" >
- <property name="objectName" >
- <string notr="true" >verticalLine</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>361</x>
- <y>1</y>
- <width>3</width>
- <height>131</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::VLine</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Sunken</enum>
- </property>
- </widget>
- </item>
- <item row="0" column="0" colspan="2" >
- <layout class="QGridLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="1" column="0" >
- <widget class="QDateTimeEdit" name="dateTimeEdit_2" >
- <property name="objectName" >
- <string notr="true" >dateTimeEdit_2</string>
- </property>
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>108</y>
- <width>113</width>
- <height>20</height>
- </rect>
- </property>
- <property name="buttonSymbols" >
- <enum>QAbstractSpinBox::UpDownArrows</enum>
- </property>
- </widget>
- </item>
- <item row="0" column="0" >
- <widget class="QDateTimeEdit" name="dateTimeEdit" >
- <property name="objectName" >
- <string notr="true" >dateTimeEdit</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>41</y>
- <width>113</width>
- <height>20</height>
- </rect>
- </property>
- <property name="buttonSymbols" >
- <enum>QAbstractSpinBox::UpDownArrows</enum>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <widget class="QDial" name="dial" >
- <property name="objectName" >
- <string notr="true" >dial</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>120</x>
- <y>1</y>
- <width>114</width>
- <height>100</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <widget class="QLCDNumber" name="lcdNumber" >
- <property name="objectName" >
- <string notr="true" >lcdNumber</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>120</x>
- <y>107</y>
- <width>114</width>
- <height>23</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::Box</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Raised</enum>
- </property>
- <property name="mode" >
- <enum>QLCDNumber::Dec</enum>
- </property>
- <property name="segmentStyle" >
- <enum>QLCDNumber::Outline</enum>
- </property>
- </widget>
- </item>
- <item row="1" column="2" >
- <widget class="QLCDNumber" name="lcdNumber_2" >
- <property name="objectName" >
- <string notr="true" >lcdNumber_2</string>
- </property>
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="geometry" >
- <rect>
- <x>240</x>
- <y>107</y>
- <width>113</width>
- <height>23</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::Box</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Raised</enum>
- </property>
- <property name="mode" >
- <enum>QLCDNumber::Dec</enum>
- </property>
- <property name="segmentStyle" >
- <enum>QLCDNumber::Outline</enum>
- </property>
- </widget>
- </item>
- <item row="0" column="2" >
- <widget class="QDial" name="dial_2" >
- <property name="objectName" >
- <string notr="true" >dial_2</string>
- </property>
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="geometry" >
- <rect>
- <x>240</x>
- <y>1</y>
- <width>113</width>
- <height>100</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QTableWidget" name="tableWidget" >
- <property name="objectName" >
- <string notr="true" >tableWidget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>256</width>
- <height>193</height>
- </rect>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QToolBox" name="toolBox" >
- <property name="objectName" >
- <string notr="true" >toolBox</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>263</x>
- <y>1</y>
- <width>118</width>
- <height>193</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::Box</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Plain</enum>
- </property>
- <property name="currentIndex" >
- <number>0</number>
- </property>
- <widget class="QWidget" name="widget" >
- <property name="objectName" >
- <string notr="true" >widget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>98</width>
- <height>119</height>
- </rect>
- </property>
- <attribute name="label" >
- <string>Tool Page 1</string>
- </attribute>
- </widget>
- <widget class="QWidget" name="widget" >
- <property name="objectName" >
- <string notr="true" >widget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>115</width>
- <height>56</height>
- </rect>
- </property>
- <attribute name="label" >
- <string>Tool Page 2</string>
- </attribute>
- </widget>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QTabWidget" name="tabWidget" >
- <property name="objectName" >
- <string notr="true" >tabWidget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>9</x>
- <y>375</y>
- <width>382</width>
- <height>220</height>
- </rect>
- </property>
- <property name="tabShape" >
- <enum>QTabWidget::Rounded</enum>
- </property>
- <widget class="QWidget" name="widget" >
- <property name="objectName" >
- <string notr="true" >widget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>378</width>
- <height>196</height>
- </rect>
- </property>
- <attribute name="title" >
- <string>Tab Page 1</string>
- </attribute>
- <layout class="QGridLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>9</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="0" column="0" >
- <layout class="QVBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QComboBox" name="comboBox_3" >
- <property name="objectName" >
- <string notr="true" >comboBox_3</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>332</width>
- <height>20</height>
- </rect>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QPushButton" name="pushButton_5" >
- <property name="objectName" >
- <string notr="true" >pushButton_5</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>1</y>
- <width>80</width>
- <height>23</height>
- </rect>
- </property>
- <property name="text" >
- <string>&amp;Enabled</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="pushButton_6" >
- <property name="objectName" >
- <string notr="true" >pushButton_6</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>87</x>
- <y>1</y>
- <width>80</width>
- <height>23</height>
- </rect>
- </property>
- <property name="text" >
- <string>Di&amp;sabled</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="geometry" >
- <rect>
- <x>173</x>
- <y>1</y>
- <width>158</width>
- <height>23</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="margin" >
- <number>1</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QRadioButton" name="radioButton_3" >
- <property name="objectName" >
- <string notr="true" >radioButton_3</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>2</y>
- <width>123</width>
- <height>18</height>
- </rect>
- </property>
- <property name="text" >
- <string>Enabled RadioButton</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="radioButton_4" >
- <property name="objectName" >
- <string notr="true" >radioButton_4</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>130</x>
- <y>2</y>
- <width>125</width>
- <height>18</height>
- </rect>
- </property>
- <property name="text" >
- <string>Disabled RadioButton</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="geometry" >
- <rect>
- <x>261</x>
- <y>1</y>
- <width>70</width>
- <height>20</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QProgressBar" name="progressBar" >
- <property name="objectName" >
- <string notr="true" >progressBar</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>86</y>
- <width>332</width>
- <height>22</height>
- </rect>
- </property>
- <property name="value" >
- <number>24</number>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QScrollBar" name="horizontalScrollBar" >
- <property name="objectName" >
- <string notr="true" >horizontalScrollBar</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>1</x>
- <y>114</y>
- <width>332</width>
- <height>17</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="0" column="1" >
- <widget class="QScrollBar" name="verticalScrollBar" >
- <property name="objectName" >
- <string notr="true" >verticalScrollBar</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>349</x>
- <y>9</y>
- <width>17</width>
- <height>132</height>
- </rect>
- </property>
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <spacer>
- <property name="objectName" >
- <string notr="true" />
- </property>
- <property name="geometry" >
- <rect>
- <x>9</x>
- <y>147</y>
- <width>334</width>
- <height>40</height>
- </rect>
- </property>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- <widget class="QWidget" name="widget" >
- <property name="objectName" >
- <string notr="true" >widget</string>
- </property>
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>377</width>
- <height>187</height>
- </rect>
- </property>
- <attribute name="title" >
- <string>Tab Page 2</string>
- </attribute>
- </widget>
- </widget>
- </item>
- </layout>
- </widget>
- <pixmapfunction></pixmapfunction>
- <connections/>
-</ui>
diff --git a/tests/benchmarks/qtwidgets/tst_qtwidgets.cpp b/tests/benchmarks/qtwidgets/tst_qtwidgets.cpp
deleted file mode 100644
index 8d2a31b..0000000
--- a/tests/benchmarks/qtwidgets/tst_qtwidgets.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 Technology Preview License Agreement accompanying
-** this package.
-**
-** 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <qtest.h>
-#include <QtGui>
-#include <QtNetwork>
-
-#include "mainwindow.h"
-
-class tst_QtWidgets: public QObject
-{
- Q_OBJECT
-
-private slots:
- void snapshot();
-};
-
-void tst_QtWidgets::snapshot()
-{
- QBENCHMARK {
- StyleWidget widget(0, Qt::X11BypassWindowManagerHint);
- widget.show();
- QApplication::processEvents();
- }
-}
-
-QTEST_MAIN(tst_QtWidgets)
-
-#include "tst_qtwidgets.moc"
diff --git a/tests/benchmarks/qscriptclass/qscriptclass.pro b/tests/benchmarks/script/qscriptclass/qscriptclass.pro
index f0ffeb7..f0ffeb7 100644
--- a/tests/benchmarks/qscriptclass/qscriptclass.pro
+++ b/tests/benchmarks/script/qscriptclass/qscriptclass.pro
diff --git a/tests/benchmarks/script/qscriptclass/tst_qscriptclass.cpp b/tests/benchmarks/script/qscriptclass/tst_qscriptclass.cpp
new file mode 100644
index 0000000..6ab78b1
--- /dev/null
+++ b/tests/benchmarks/script/qscriptclass/tst_qscriptclass.cpp
@@ -0,0 +1,285 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite 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 Technology Preview License Agreement accompanying
+** this package.
+**
+** 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.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <qtest.h>
+#include <QtScript>
+
+Q_DECLARE_METATYPE(QScriptContext*)
+Q_DECLARE_METATYPE(QScriptValue)
+Q_DECLARE_METATYPE(QScriptValueList)
+
+// We want reliable numbers so we don't want to rely too much
+// on the number of iterations done by testlib.
+// this also make the results of valgrind more interesting
+const int iterationNumber = 5000;
+
+class tst_QScriptClass : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void noSuchProperty();
+ void property();
+ void setProperty();
+ void propertyFlags();
+ void call();
+ void hasInstance();
+ void iterate();
+};
+
+// Test the overhead of checking for an inexisting property of a QScriptClass
+void tst_QScriptClass::noSuchProperty()
+{
+ QScriptEngine eng;
+ QScriptClass cls(&eng);
+ QScriptValue obj = eng.newObject(&cls);
+ QString propertyName = QString::fromLatin1("foo");
+ QBENCHMARK {
+ for (int i = 0; i < iterationNumber; ++i)
+ (void)obj.property(propertyName);
+ }
+ Q_ASSERT(!obj.property(propertyName).isValid());
+}
+
+
+class FooScriptClass : public QScriptClass
+{
+public:
+ FooScriptClass(QScriptEngine *engine)
+ : QScriptClass(engine)
+ {
+ foo = engine->toStringHandle("foo");
+ }
+
+ QueryFlags queryProperty(const QScriptValue &,
+ const QScriptString &,
+ QueryFlags flags,
+ uint *id)
+ {
+ *id = 1;
+ return flags;
+ }
+
+ QScriptValue property(const QScriptValue &,
+ const QScriptString &,
+ uint)
+ {
+ return QScriptValue(engine(), 35);
+ }
+
+ void setProperty(QScriptValue &, const QScriptString &,
+ uint, const QScriptValue &)
+ {}
+
+ QScriptValue::PropertyFlags propertyFlags(const QScriptValue &, const QScriptString &, uint)
+ {
+ return QScriptValue::Undeletable;
+ }
+private:
+ QScriptString foo;
+};
+
+// Test the overhead of getting a value of QScriptClass accross the Javascript engine
+void tst_QScriptClass::property()
+{
+ QScriptEngine eng;
+ FooScriptClass cls(&eng);
+ QScriptValue obj = eng.newObject(&cls);
+ QScriptString foo = eng.toStringHandle("foo");
+ QBENCHMARK {
+ for (int i = 0; i < iterationNumber; ++i)
+ (void)obj.property(foo);
+ }
+}
+
+// Test the overhead of setting a value on QScriptClass accross the Javascript engine
+void tst_QScriptClass::setProperty()
+{
+ QScriptEngine eng;
+ FooScriptClass cls(&eng);
+ QScriptValue obj = eng.newObject(&cls);
+ QScriptValue value(456);
+ QScriptString foo = eng.toStringHandle("foo");
+ QBENCHMARK {
+ for (int i = 0; i < iterationNumber; ++i)
+ obj.setProperty(foo, value);
+ }
+}
+
+// Test the time taken to get the propeties flags accross the engine
+void tst_QScriptClass::propertyFlags()
+{
+ QScriptEngine eng;
+ FooScriptClass cls(&eng);
+ QScriptValue obj = eng.newObject(&cls);
+ QScriptString foo = eng.toStringHandle("foo");
+ QBENCHMARK {
+ for (int i = 0; i < iterationNumber; ++i)
+ (void)obj.propertyFlags(foo);
+ }
+}
+
+
+
+class ExtensionScriptClass : public QScriptClass
+{
+public:
+ ExtensionScriptClass(QScriptEngine *engine)
+ : QScriptClass(engine)
+ {
+ }
+
+ bool supportsExtension(Extension) const
+ {
+ return true;
+ }
+
+ QVariant extension(Extension, const QVariant &argument = QVariant())
+ {
+ Q_UNUSED(argument);
+ return QVariant();
+ }
+};
+
+// Check the overhead of the extension "call"
+void tst_QScriptClass::call()
+{
+ QScriptEngine eng;
+ ExtensionScriptClass cls(&eng);
+ QScriptValue obj = eng.newObject(&cls);
+ QScriptValue thisObject;
+ QScriptValueList args;
+ args.append(123);
+ QBENCHMARK {
+ for (int i = 0; i < iterationNumber; ++i)
+ (void)obj.call(thisObject, args);
+ }
+}
+
+// Check the overhead of the extension "instanceOf"
+void tst_QScriptClass::hasInstance()
+{
+ QScriptEngine eng;
+ ExtensionScriptClass cls(&eng);
+ QScriptValue obj = eng.newObject(&cls);
+ obj.setProperty("foo", 123);
+ QScriptValue plain = eng.newObject();
+ plain.setProperty("foo", obj.property("foo"));
+ QBENCHMARK {
+ for (int i = 0; i < iterationNumber; ++i)
+ (void)plain.instanceOf(obj);
+ }
+}
+
+
+
+static const int iteratorValuesNumber = 100;
+class TestClassPropertyIterator : public QScriptClassPropertyIterator
+{
+public:
+ TestClassPropertyIterator(const QScriptValue &object, QVector<QScriptString> names)
+ : QScriptClassPropertyIterator(object)
+ , m_index(0)
+ , names(names)
+ {
+ }
+
+ bool hasNext() const
+ {
+ return m_index < iteratorValuesNumber - 1;
+ }
+ void next() { ++m_index; }
+
+ bool hasPrevious() const { return m_index > 0; }
+ void previous() { --m_index; }
+
+ void toFront() { m_index = 0; }
+ void toBack() { m_index = iteratorValuesNumber - 1; }
+
+ QScriptString name() const { return names[m_index]; }
+ uint id() const { return m_index; }
+ QScriptValue::PropertyFlags flags() const { return 0; }
+
+private:
+ int m_index;
+ QVector<QScriptString> names;
+};
+
+
+class IteratorScriptClass : public QScriptClass
+{
+public:
+ IteratorScriptClass(QScriptEngine *engine)
+ : QScriptClass(engine)
+ {
+ for (int i = 0; i < iteratorValuesNumber; ++i)
+ names.append(engine->toStringHandle(QString("property%1").arg(i)));
+ }
+
+ QScriptClassPropertyIterator *newIterator(const QScriptValue &object)
+ {
+ return new TestClassPropertyIterator(object, names);
+ }
+private:
+ QVector<QScriptString> names;
+ friend class TestClassPropertyIterator;
+};
+
+// Measure the performance of the interface to iterate over QScriptClassPropertyIterator
+void tst_QScriptClass::iterate()
+{
+ QScriptEngine eng;
+ IteratorScriptClass cls(&eng);
+ QScriptValue obj = eng.newObject(&cls);
+ int iterationNumberIterate = iterationNumber / iteratorValuesNumber;
+ QBENCHMARK {
+ for (int i = 0; i < iterationNumberIterate; ++i) {
+ QScriptValueIterator it(obj);
+ while (it.hasNext()) {
+ it.next();
+ (void)it.scriptName();
+ }
+ }
+ }
+}
+
+QTEST_MAIN(tst_QScriptClass)
+#include "tst_qscriptclass.moc"
diff --git a/tests/benchmarks/qscriptengine/qscriptengine.pro b/tests/benchmarks/script/qscriptengine/qscriptengine.pro
index df6dbb3..df6dbb3 100644
--- a/tests/benchmarks/qscriptengine/qscriptengine.pro
+++ b/tests/benchmarks/script/qscriptengine/qscriptengine.pro
diff --git a/tests/benchmarks/qscriptengine/tst_qscriptengine.cpp b/tests/benchmarks/script/qscriptengine/tst_qscriptengine.cpp
index 6c6f0b1..6c6f0b1 100644
--- a/tests/benchmarks/qscriptengine/tst_qscriptengine.cpp
+++ b/tests/benchmarks/script/qscriptengine/tst_qscriptengine.cpp
diff --git a/tests/benchmarks/qscriptvalue/qscriptvalue.pro b/tests/benchmarks/script/qscriptvalue/qscriptvalue.pro
index 04ea324..04ea324 100644
--- a/tests/benchmarks/qscriptvalue/qscriptvalue.pro
+++ b/tests/benchmarks/script/qscriptvalue/qscriptvalue.pro
diff --git a/tests/benchmarks/qscriptvalue/tst_qscriptvalue.cpp b/tests/benchmarks/script/qscriptvalue/tst_qscriptvalue.cpp
index 3bfc21c..3bfc21c 100644
--- a/tests/benchmarks/qscriptvalue/tst_qscriptvalue.cpp
+++ b/tests/benchmarks/script/qscriptvalue/tst_qscriptvalue.cpp
diff --git a/tests/benchmarks/script/script.pro b/tests/benchmarks/script/script.pro
new file mode 100644
index 0000000..8d689b6
--- /dev/null
+++ b/tests/benchmarks/script/script.pro
@@ -0,0 +1,5 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qscriptclass \
+ qscriptengine \
+ qscriptvalue
diff --git a/tests/benchmarks/qsvgrenderer/data/tiger.svg b/tests/benchmarks/svg/qsvgrenderer/data/tiger.svg
index 983e570..983e570 100644
--- a/tests/benchmarks/qsvgrenderer/data/tiger.svg
+++ b/tests/benchmarks/svg/qsvgrenderer/data/tiger.svg
diff --git a/tests/benchmarks/qsvgrenderer/qsvgrenderer.pro b/tests/benchmarks/svg/qsvgrenderer/qsvgrenderer.pro
index 8222a09..8222a09 100644
--- a/tests/benchmarks/qsvgrenderer/qsvgrenderer.pro
+++ b/tests/benchmarks/svg/qsvgrenderer/qsvgrenderer.pro
diff --git a/tests/benchmarks/qsvgrenderer/qsvgrenderer.qrc b/tests/benchmarks/svg/qsvgrenderer/qsvgrenderer.qrc
index bdf4a31..bdf4a31 100644
--- a/tests/benchmarks/qsvgrenderer/qsvgrenderer.qrc
+++ b/tests/benchmarks/svg/qsvgrenderer/qsvgrenderer.qrc
diff --git a/tests/benchmarks/qsvgrenderer/tst_qsvgrenderer.cpp b/tests/benchmarks/svg/qsvgrenderer/tst_qsvgrenderer.cpp
index 895ffe0..895ffe0 100644
--- a/tests/benchmarks/qsvgrenderer/tst_qsvgrenderer.cpp
+++ b/tests/benchmarks/svg/qsvgrenderer/tst_qsvgrenderer.cpp
diff --git a/tests/benchmarks/svg/svg.pro b/tests/benchmarks/svg/svg.pro
new file mode 100644
index 0000000..cdc2ca5
--- /dev/null
+++ b/tests/benchmarks/svg/svg.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qsvgrenderer
diff --git a/tests/tests.pro b/tests/tests.pro
index 7fbc8a9..75ca120 100644
--- a/tests/tests.pro
+++ b/tests/tests.pro
@@ -1,2 +1,3 @@
TEMPLATE = subdirs
-SUBDIRS = auto
+SUBDIRS = auto \
+ benchmarks
diff --git a/tools/designer/src/lib/shared/actionrepository.cpp b/tools/designer/src/lib/shared/actionrepository.cpp
index e3ff2c1..1076ff4 100644
--- a/tools/designer/src/lib/shared/actionrepository.cpp
+++ b/tools/designer/src/lib/shared/actionrepository.cpp
@@ -77,18 +77,12 @@ static inline QAction *actionOfItem(const QStandardItem* item)
return qvariant_cast<QAction*>(item->data(qdesigner_internal::ActionModel::ActionRole));
}
-static QIcon fixActionIcon(const QIcon &icon)
-{
- if (icon.isNull())
- return qdesigner_internal::emptyIcon();
- return icon;
-}
-
namespace qdesigner_internal {
// ----------- ActionModel
ActionModel::ActionModel(QWidget *parent ) :
QStandardItemModel(parent),
+ m_emptyIcon(emptyIcon()),
m_core(0)
{
QStringList headers;
@@ -127,7 +121,7 @@ void ActionModel::update(int row)
for (int i = 0; i < NumColumns; i++)
list += item(row, i);
- setItems(m_core, actionOfItem(list.front()), list);
+ setItems(m_core, actionOfItem(list.front()), m_emptyIcon, list);
}
void ActionModel::remove(int row)
@@ -150,7 +144,7 @@ QModelIndex ActionModel::addAction(QAction *action)
item->setFlags(flags);
items.push_back(item);
}
- setItems(m_core, action, items);
+ setItems(m_core, action, m_emptyIcon, items);
appendRow(items);
return indexFromItem(items.front());
}
@@ -185,7 +179,9 @@ PropertySheetKeySequenceValue ActionModel::actionShortCut(const QDesignerPropert
return qvariant_cast<PropertySheetKeySequenceValue>(sheet->property(index));
}
-void ActionModel::setItems(QDesignerFormEditorInterface *core, QAction *action, QStandardItemList &sl)
+void ActionModel::setItems(QDesignerFormEditorInterface *core, QAction *action,
+ const QIcon &defaultIcon,
+ QStandardItemList &sl)
{
// Tooltip, mostly for icon view mode
@@ -200,7 +196,10 @@ void ActionModel::setItems(QDesignerFormEditorInterface *core, QAction *action,
QStandardItem *item = sl[NameColumn];
item->setText(action->objectName());
- item->setIcon(fixActionIcon(action->icon()));
+ QIcon icon = action->icon();
+ if (icon.isNull())
+ icon = defaultIcon;
+ item->setIcon(icon);
item->setToolTip(firstTooltip);
item->setWhatsThis(firstTooltip);
// Used
diff --git a/tools/designer/src/lib/shared/actionrepository_p.h b/tools/designer/src/lib/shared/actionrepository_p.h
index 65adc5d..6e17e7b 100644
--- a/tools/designer/src/lib/shared/actionrepository_p.h
+++ b/tools/designer/src/lib/shared/actionrepository_p.h
@@ -59,6 +59,7 @@
#include <QtGui/QTreeView>
#include <QtGui/QListView>
#include <QtGui/QStackedWidget>
+#include <QtGui/QIcon>
QT_BEGIN_NAMESPACE
@@ -110,10 +111,14 @@ signals:
void resourceImageDropped(const QString &path, QAction *action);
private:
+ typedef QList<QStandardItem *> QStandardItemList;
+
void initializeHeaders();
+ static void setItems(QDesignerFormEditorInterface *core, QAction *a,
+ const QIcon &defaultIcon,
+ QStandardItemList &sl);
- typedef QList<QStandardItem *> QStandardItemList;
- static void setItems(QDesignerFormEditorInterface *core, QAction *a, QStandardItemList &sl);
+ const QIcon m_emptyIcon;
QDesignerFormEditorInterface *m_core;
};
diff --git a/tools/designer/src/lib/shared/iconloader.cpp b/tools/designer/src/lib/shared/iconloader.cpp
index df0bb7e..ed312b8 100644
--- a/tools/designer/src/lib/shared/iconloader.cpp
+++ b/tools/designer/src/lib/shared/iconloader.cpp
@@ -70,8 +70,7 @@ QDESIGNER_SHARED_EXPORT QIcon createIconSet(const QString &name)
QDESIGNER_SHARED_EXPORT QIcon emptyIcon()
{
- static const QIcon empty_icon(QLatin1String(":/trolltech/formeditor/images/emptyicon.png"));
- return empty_icon;
+ return QIcon(QLatin1String(":/trolltech/formeditor/images/emptyicon.png"));
}
} // namespace qdesigner_internal
diff --git a/tools/designer/src/lib/shared/qdesigner_menu.cpp b/tools/designer/src/lib/shared/qdesigner_menu.cpp
index c83abad..ba512e4 100644
--- a/tools/designer/src/lib/shared/qdesigner_menu.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_menu.cpp
@@ -88,6 +88,7 @@ static inline void extendClickableArea(QRect *subMenuRect, Qt::LayoutDirection d
QDesignerMenu::QDesignerMenu(QWidget *parent) :
QMenu(parent),
+ m_subMenuPixmap(QPixmap(QLatin1String(":/trolltech/formeditor/images/submenu.png"))),
m_currentIndex(0),
m_addItem(new SpecialMenuAction(this)),
m_addSeparator(new SpecialMenuAction(this)),
@@ -550,11 +551,10 @@ void QDesignerMenu::deleteAction(QAction *a)
QRect QDesignerMenu::subMenuPixmapRect(QAction *action) const
{
- static const QPixmap pm(QLatin1String(":/trolltech/formeditor/images/submenu.png"));
const QRect g = actionGeometry(action);
- const int x = layoutDirection() == Qt::LeftToRight ? (g.right() - pm.width() - 2) : 2;
- const int y = g.top() + (g.height() - pm.height())/2 + 1;
- return QRect(x, y, pm.width(), pm.height());
+ const int x = layoutDirection() == Qt::LeftToRight ? (g.right() - m_subMenuPixmap.width() - 2) : 2;
+ const int y = g.top() + (g.height() - m_subMenuPixmap.height())/2 + 1;
+ return QRect(x, y, m_subMenuPixmap.width(), m_subMenuPixmap.height());
}
bool QDesignerMenu::hasSubMenuPixmap(QAction *action) const
@@ -591,8 +591,7 @@ void QDesignerMenu::paintEvent(QPaintEvent *event)
p.fillRect(g, lg);
} else if (hasSubMenuPixmap(a)) {
- static const QPixmap pm(QLatin1String(":/trolltech/formeditor/images/submenu.png"));
- p.drawPixmap(subMenuPixmapRect(a).topLeft(), pm);
+ p.drawPixmap(subMenuPixmapRect(a).topLeft(), m_subMenuPixmap);
}
}
diff --git a/tools/designer/src/lib/shared/qdesigner_menu_p.h b/tools/designer/src/lib/shared/qdesigner_menu_p.h
index 9c9a311..ae1e0e7 100644
--- a/tools/designer/src/lib/shared/qdesigner_menu_p.h
+++ b/tools/designer/src/lib/shared/qdesigner_menu_p.h
@@ -57,6 +57,7 @@
#include <QtGui/QAction>
#include <QtGui/QMenu>
+#include <QtGui/QPixmap>
#include <QtCore/QHash>
QT_BEGIN_NAMESPACE
@@ -183,6 +184,7 @@ protected:
private:
bool hideSubMenuOnCursorKey();
bool showSubMenuOnCursorKey();
+ const QPixmap m_subMenuPixmap;
QPoint m_startPosition;
int m_currentIndex;
diff --git a/tools/installer/README b/tools/installer/README
deleted file mode 100644
index 63abf6d..0000000
--- a/tools/installer/README
+++ /dev/null
@@ -1,12 +0,0 @@
-iwmake is the tool used to generate the Qt installer binaries.
-
-To be able to use it yourself create a config.default in the
-config/ directory. You can refer to config.default.sample to see
-which values need to be set within this file.
-
-Afterwards call "iwmake.bat mingw-opensource.conf" to create an
-installer package yourself.
-
-Note that the binary creation takes a lot of time and is very
-CPU-intensive as it recompiles the Qt source package among other
-steps.
diff --git a/tools/installer/batch/build.bat b/tools/installer/batch/build.bat
deleted file mode 100755
index c10b7f3..0000000
--- a/tools/installer/batch/build.bat
+++ /dev/null
@@ -1,157 +0,0 @@
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-::
-:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-:: All rights reserved.
-:: Contact: Nokia Corporation (qt-info@nokia.com)
-::
-:: This file is part of the tools 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 Technology Preview License Agreement accompanying
-:: this package.
-::
-:: 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-::
-:: If you have questions regarding the use of this file, please contact
-:: Nokia at qt-info@nokia.com.
-::
-::
-::
-::
-::
-::
-::
-::
-:: $QT_END_LICENSE$
-::
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-call :%1 %2
-goto END
-
-:begin
-for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_COMPILER=%%~m& set IWMAKE_TMP=%%~n
-
-if "%IWMAKE_TMP%"=="" set IWMAKE_TMP=build_%IWMAKE_COMPILER%
-set IWMAKE_BUILD=%IWMAKE_ROOT%\%IWMAKE_TMP%
-if not exist %IWMAKE_BUILD% mkdir %IWMAKE_BUILD%
-
-if not "%PATH%"=="" set IWMAKE_OLD_PATH=%PATH%
-if not "%QMAKESPEC%"=="" set IWMAKE_OLD_QMAKESPEC=%QMAKESPEC%
-if not "%QTDIR%"=="" set IWMAKE_OLD_QTDIR=%QTDIR%
-if not "%INCLUDE%"=="" set IWMAKE_OLD_INCLUDE=%INCLUDE%
-if not "%LIB%"=="" set IWMAKE_OLD_LIB=%LIB%
-
-set PATH=%IWMAKE_BUILD%\bin;%PATH%
-set QTDIR=%IWMAKE_BUILD%
-
-if "%IWMAKE_COMPILER%"=="vs2003" goto VS2003Env
-if "%IWMAKE_COMPILER%"=="vs2002" goto VS2002Env
-if "%IWMAKE_COMPILER%"=="vs2005" goto VS2005Env
-if "%IWMAKE_COMPILER%"=="vc60" goto VC60Env
-if "%IWMAKE_COMPILER%"=="mingw" goto MinGWEnv
-goto :eof
-
-:VS2003Env
-set QMAKESPEC=win32-msvc.net
-if not exist "%VS71COMNTOOLS%vsvars32.bat" echo VS2003 not found >> %IWMAKE_LOGFILE% & exit /b 1
-call "%VS71COMNTOOLS%vsvars32.bat" >> %IWMAKE_LOGFILE%
-set IWMAKE_MAKE=nmake
-goto :eof
-
-:VS2002Env
-set QMAKESPEC=win32-msvc.net
-if not exist "%VSCOMNTOOLS%vsvars32.bat" echo VS2002 not found >> %IWMAKE_LOGFILE% & exit /b 1
-call "%VSCOMNTOOLS%vsvars32.bat" >> %IWMAKE_LOGFILE%
-set IWMAKE_MAKE=nmake
-goto :eof
-
-:VS2005Env
-set QMAKESPEC=win32-msvc2005
-if not exist "%VS80COMNTOOLS%vsvars32.bat" echo VS2005 not found >> %IWMAKE_LOGFILE% & exit /b 1
-call "%VS80COMNTOOLS%vsvars32.bat" >> %IWMAKE_LOGFILE%
-set IWMAKE_MAKE=nmake
-goto :eof
-
-:VC60Env
-set QMAKESPEC=win32-msvc
-if not exist "%ProgramFiles%\Microsoft Visual Studio\VC98\Bin\vcvars32.bat" echo VC60 not found >> %IWMAKE_LOGFILE% & exit /b 1
-call "%ProgramFiles%\Microsoft Visual Studio\VC98\Bin\vcvars32.bat" >> %IWMAKE_LOGFILE%
-set IWMAKE_MAKE=nmake
-goto :eof
-
-:MinGWEnv
-set QMAKESPEC=win32-g++
-if not exist %IWMAKE_MINGWPATH%\bin\gcc.exe echo MinGW not found in %IWMAKE_MINGWPATH% >> %IWMAKE_LOGFILE% & exit /b 1
-set PATH=%IWMAKE_MINGWPATH%\bin;%PATH%
-set IWMAKE_MAKE=mingw32-make
-goto :eof
-
-:finish
- if not "%IWMAKE_OLD_PATH%"=="" set PATH=%IWMAKE_OLD_PATH%& set IWMAKE_OLD_PATH=
- if not "%IWMAKE_OLD_QMAKESPEC%"=="" set QMAKESPEC=%IWMAKE_OLD_QMAKESPEC%& set IWMAKE_OLD_QMAKESPEC=
- if not "%IWMAKE_OLD_QTDIR%"=="" set QTDIR=%IWMAKE_OLD_QTDIR%& set IWMAKE_OLD_QTDIR=
- if not "%IWMAKE_OLD_INCLUDE%"=="" set INCLUDE=%IWMAKE_OLD_INCLUDE%& set IWMAKE_OLD_INCLUDE=
- if not "%IWMAKE_OLD_LIB%"=="" set LIB=%IWMAKE_OLD_LIB%& set IWMAKE_OLD_LIB=
-goto :eof
-
-:configure
- pushd %IWMAKE_BUILD%
- configure %~1 >> %IWMAKE_LOGFILE% 2>&1
- popd
-goto :eof
-
-:bin
- pushd %IWMAKE_BUILD%
- %IWMAKE_MAKE% %~1 >>%IWMAKE_LOGFILE% 2>&1
- popd
-goto :eof
-
-:binInDir
- for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
- pushd %IWMAKE_BUILD%\%IWMAKE_TMP%
- %IWMAKE_MAKE% %IWMAKE_TMP2% >> %IWMAKE_LOGFILE% 2>&1
- popd
-goto :eof
-
-:DBPlugins
- call "%IWMAKE_SCRIPTDIR%\batch\copy.bat" extsync sql
- set IWMAKE_SQL_OLD_LIB=%LIB%
- pushd %IWMAKE_BUILD%\src\plugins\sqldrivers\mysql
- set LIB=%IWMAKE_ROOT%\sql\mysql\lib\debug;%IWMAKE_SQL_OLD_LIB%
- qmake "INCLUDEPATH+=%IWMAKE_ROOT%\sql\mysql\include" "LIBS+=libmysql.lib ws2_32.lib advapi32.lib user32.lib" >> %IWMAKE_LOGFILE% 2>&1
- %IWMAKE_MAKE% debug >> %IWMAKE_LOGFILE% 2>&1
- set LIB=%IWMAKE_ROOT%\sql\mysql\lib\opt;%IWMAKE_SQL_OLD_LIB%
- qmake "INCLUDEPATH+=%IWMAKE_ROOT%\sql\mysql\include" "LIBS+=libmysql.lib ws2_32.lib advapi32.lib" >> %IWMAKE_LOGFILE% 2>&1
- %IWMAKE_MAKE% release >> %IWMAKE_LOGFILE% 2>&1
- popd
-
- set LIB=%IWMAKE_ROOT%\sql\%IWMAKE_COMPILER%;%IWMAKE_SQL_OLD_LIB%
- pushd %IWMAKE_BUILD%\src\plugins\sqldrivers\psql
- qmake "INCLUDEPATH+=%IWMAKE_ROOT%\sql\include\psql" "LIBS+=libpqd.lib ws2_32.lib advapi32.lib shfolder.lib shell32.lib" >> %IWMAKE_LOGFILE% 2>&1
- %IWMAKE_MAKE% debug >> %IWMAKE_LOGFILE% 2>&1
- qmake "INCLUDEPATH+=%IWMAKE_ROOT%\sql\include\psql" "LIBS+=libpq.lib ws2_32.lib advapi32.lib shfolder.lib shell32.lib" >> %IWMAKE_LOGFILE% 2>&1
- %IWMAKE_MAKE% release >> %IWMAKE_LOGFILE% 2>&1
- popd
- set LIB=%IWMAKE_SQL_OLD_LIB%
- set IWMAKE_SQL_OLD_LIB=
-goto :eof
-
-:root
- set IWMAKE_BUILD=%~1
- if not exist %IWMAKE_BUILD% mkdir %IWMAKE_BUILD%
-goto :eof
-
-:END
diff --git a/tools/installer/batch/copy.bat b/tools/installer/batch/copy.bat
deleted file mode 100755
index 8fabebf..0000000
--- a/tools/installer/batch/copy.bat
+++ /dev/null
@@ -1,121 +0,0 @@
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-::
-:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-:: All rights reserved.
-:: Contact: Nokia Corporation (qt-info@nokia.com)
-::
-:: This file is part of the tools 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 Technology Preview License Agreement accompanying
-:: this package.
-::
-:: 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-::
-:: If you have questions regarding the use of this file, please contact
-:: Nokia at qt-info@nokia.com.
-::
-::
-::
-::
-::
-::
-::
-::
-:: $QT_END_LICENSE$
-::
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-call :%1 %2
-goto END
-
-:dest
- set IWMAKE_OUTDIR=%IWMAKE_ROOT%\%~1
- if not exist %IWMAKE_OUTDIR% mkdir %IWMAKE_OUTDIR%
-goto :eof
-
-:src
- set IWMAKE_SRCDIR=%IWMAKE_ROOT%\%~1
- if not exist %IWMAKE_SRCDIR% mkdir %IWMAKE_SRCDIR%
-goto :eof
-
-:destAbs
- set IWMAKE_OUTDIR=%1
- if not exist %IWMAKE_OUTDIR% mkdir %IWMAKE_OUTDIR%
-goto :eof
-
-:srcAbs
- set IWMAKE_SRCDIR=%1
- if not exist %IWMAKE_SRCDIR% mkdir %IWMAKE_SRCDIR%
-goto :eof
-
-:extsync
- if exist %IWMAKE_ROOT%\%~1 rd /S /Q %IWMAKE_ROOT%\%~1 >> %IWMAKE_LOGFILE%
- xcopy /H /Y /Q /I /R /E %IWMAKE_EXTERNAL%\%~1 %IWMAKE_ROOT%\%~1 >> %IWMAKE_LOGFILE%
-goto :eof
-
-:all
- xcopy /H /Y /Q /I /R /S %IWMAKE_SRCDIR%\%~1 %IWMAKE_OUTDIR%\ >> %IWMAKE_LOGFILE%
-goto :eof
-
-:filesEx
- for /F "tokens=1,2*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n& set IWMAKE_TMP3=%%~o
- echo %IWMAKE_TMP3% > %IWMAKE_ROOT%\iwmake_exclude
- xcopy /H /Y /Q /I /R /S /EXCLUDE:%IWMAKE_ROOT%\iwmake_exclude %IWMAKE_SRCDIR%\%IWMAKE_TMP% %IWMAKE_OUTDIR%\%IWMAKE_TMP2% >> %IWMAKE_LOGFILE%
-goto :eof
-
-:file
- set IWMAKE_TMP=%~1
- set IWMAKE_TMP2=%~nx1
- echo set IWMAKE_TMP3=%%IWMAKE_TMP:%IWMAKE_TMP2%=%%>"%IWMAKE_ROOT%\iwmake_tmp.bat"
- call %IWMAKE_ROOT%\iwmake_tmp.bat
- if not exist "%IWMAKE_OUTDIR%\%IWMAKE_TMP3%" mkdir "%IWMAKE_OUTDIR%\%IWMAKE_TMP3%"
- xcopy /H /Y /Q /I /R %IWMAKE_SRCDIR%\%IWMAKE_TMP% %IWMAKE_OUTDIR%\%IWMAKE_TMP3% >> %IWMAKE_LOGFILE%
-goto :eof
-
-:fileAndRename
- for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n& set IWMAKE_TMP4=%%~nxn
- echo set IWMAKE_TMP3=%%IWMAKE_TMP2:%IWMAKE_TMP4%=%%>"%IWMAKE_ROOT%\iwmake_tmp.bat"
- call %IWMAKE_ROOT%\iwmake_tmp.bat
- if not exist "%IWMAKE_OUTDIR%\%IWMAKE_TMP3%" mkdir "%IWMAKE_OUTDIR%\%IWMAKE_TMP3%"
- echo > %IWMAKE_OUTDIR%\%IWMAKE_TMP2%
- xcopy /H /Y /Q /R %IWMAKE_SRCDIR%\%IWMAKE_TMP% %IWMAKE_OUTDIR%\%IWMAKE_TMP2% >> %IWMAKE_LOGFILE%
- set IWMAKE_TMP4=
-goto :eof
-
-:files
- for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
- if not exist "%IWMAKE_OUTDIR%\%IWMAKE_TMP2%" mkdir "%IWMAKE_OUTDIR%\%IWMAKE_TMP2%"
- xcopy /H /Y /Q /I /R /S %IWMAKE_SRCDIR%\%IWMAKE_TMP% %IWMAKE_OUTDIR%\%IWMAKE_TMP2% >> %IWMAKE_LOGFILE%
-goto :eof
-
-:runtime
- for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
- if "%IWMAKE_TMP2%" == "" set IWMAKE_TMP2=bin
- xcopy /H /Y /Q /I /R %SystemRoot%\system32\msvcr%IWMAKE_TMP%.dll %IWMAKE_OUTDIR%\%IWMAKE_TMP2%\ >> %IWMAKE_LOGFILE%
- xcopy /H /Y /Q /I /R %SystemRoot%\system32\msvcp%IWMAKE_TMP%.dll %IWMAKE_OUTDIR%\%IWMAKE_TMP2%\ >> %IWMAKE_LOGFILE%
-goto :eof
-
-:syncqt
- pushd %IWMAKE_OUTDIR%
- if exist "include" rd /S /Q include
- if not "%QTDIR%"=="" set IWMAKE_OLD_QTDIR=%QTDIR%
- set QTDIR=%IWMAKE_OUTDIR%
- "%IWMAKE_PERLPATH%\perl" %QTDIR%\bin\syncqt -copy >> %IWMAKE_LOGFILE% 2>&1
- if not "%IWMAKE_OLD_QTDIR%"=="" set QTDIR=%IWMAKE_OLD_QTDIR%
- popd
-goto :eof
-
-:END
diff --git a/tools/installer/batch/delete.bat b/tools/installer/batch/delete.bat
deleted file mode 100755
index a923c13..0000000
--- a/tools/installer/batch/delete.bat
+++ /dev/null
@@ -1,73 +0,0 @@
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-::
-:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-:: All rights reserved.
-:: Contact: Nokia Corporation (qt-info@nokia.com)
-::
-:: This file is part of the tools 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 Technology Preview License Agreement accompanying
-:: this package.
-::
-:: 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-::
-:: If you have questions regarding the use of this file, please contact
-:: Nokia at qt-info@nokia.com.
-::
-::
-::
-::
-::
-::
-::
-::
-:: $QT_END_LICENSE$
-::
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-call :%1 %2
-goto END
-
-:destDir
- if exist "%IWMAKE_OUTDIR%\%~1" rd /S /Q %IWMAKE_OUTDIR%\%~1
-goto :eof
-
-:dir
- if exist "%IWMAKE_ROOT%\%~1" rd /S /Q %IWMAKE_ROOT%\%~1
-goto :eof
-
-:dirAbs
- if exist "%~1" rd /S /Q %~1
-goto :eof
-
-:file
- del /Q /F %IWMAKE_OUTDIR%\%~1 >> %IWMAKE_LOGFILE% 2>&1
- exit /b 0
-goto :eof
-
-:files
- del /S /Q /F %IWMAKE_OUTDIR%\%~1 >> %IWMAKE_LOGFILE% 2>&1
- exit /b 0
-goto :eof
-
-:line
- for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
- if exist "%IWMAKE_ROOT%\tmp_line.txt" del /Q /F "%IWMAKE_ROOT%\tmp_line.txt" >> %IWMAKE_LOGFILE%
- type "%IWMAKE_ROOT%\%IWMAKE_TMP%" | find /V "%IWMAKE_TMP2%" >> "%IWMAKE_ROOT%\tmp_line.txt"
- xcopy /Y /Q /R %IWMAKE_ROOT%\tmp_line.txt %IWMAKE_ROOT%\%IWMAKE_TMP% >> %IWMAKE_LOGFILE%
-goto :eof
-
-:END
diff --git a/tools/installer/batch/env.bat b/tools/installer/batch/env.bat
deleted file mode 100755
index c1faceb..0000000
--- a/tools/installer/batch/env.bat
+++ /dev/null
@@ -1,141 +0,0 @@
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-::
-:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-:: All rights reserved.
-:: Contact: Nokia Corporation (qt-info@nokia.com)
-::
-:: This file is part of the tools 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 Technology Preview License Agreement accompanying
-:: this package.
-::
-:: 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-::
-:: If you have questions regarding the use of this file, please contact
-:: Nokia at qt-info@nokia.com.
-::
-::
-::
-::
-::
-::
-::
-::
-:: $QT_END_LICENSE$
-::
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-call :%1 %2
-goto END
-
-:setglobals
-set IWMAKE_PARSESECTION=1
-set IWMAKE_MINGWPATH=c:\MinGW\bin
-set IWMAKE_STARTDIR=%CD%
-set IWMAKE_NSISCONF=%IWMAKE_SCRIPTDIR%\nsis\config.nsh
-set IWMAKE_ROOT=c:\package
-set IWMAKE_OUTDIR=%IWMAKE_ROOT%
-set IWMAKE_SRCDIR=%IWMAKE_ROOT%
-set IWMAKE_EXTRACTDEST=%IWMAKE_ROOT%
-set IWMAKE_NSISPATH=%PROGRAMFILES%\NSIS
-call %IWMAKE_SCRIPTDIR%\batch\log.bat fileAbs "%IWMAKE_STARTDIR%\log.txt"
-goto :eof
-
-:signPath
- set IWMAKE_SIGNPATH=%~1
-goto :eof
-
-:wgetPath
- set IWMAKE_WGET=%~1
-goto :eof
-
-:wgetDir
- set IWMAKE_WGET=%IWMAKE_ROOT%\%~1
-goto :eof
-
-:NSISPath
- set IWMAKE_NSISPATH=%~1
-goto :eof
-
-:PerlPath
- set IWMAKE_PERLPATH=%~1
-goto :eof
-
-:MinGWPath
- set IWMAKE_MINGWPATH=%~1
-goto :eof
-
-:unzipApp
- set IWMAKE_UNZIPAPP=%~1
-goto :eof
-
-:releaseLocation
- set IWMAKE_WGETUSER=
- set IWMAKE_WGETPASS=
- for /F "tokens=1,2*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& if not "%%~n"=="" set IWMAKE_TMP2=%%~n& if not "%%~o"=="" set IWMAKE_TMP3=%%~o
- if not "%IWMAKE_TMP2%"=="" set IWMAKE_WGETUSER=--http-user=%IWMAKE_TMP2%
- if not "%IWMAKE_TMP3%"=="" set IWMAKE_WGETPASS=--http-passwd=%IWMAKE_TMP3%
- set IWMAKE_RELEASELOCATION=%IWMAKE_TMP%
-goto :eof
-
-:removeglobals
-if not "%IWMAKE_OLD_PATH%"=="" call %IWMAKE_SCRIPTDIR%\batch\build.bat finish
-set IWMAKE_RELEASELOCATION=
-set IWMAKE_NSISPATH=
-set IWMAKE_SECTION=
-set IWMAKE_WGET=
-set IWMAKE_WGETUSER=
-set IWMAKE_WGETPASS=
-set IWMAKE_UNZIPAPP=
-set IWMAKE_MINGWPATH=
-set IWMAKE_MAKE=
-set IWMAKE_PERLPATH=
-set IWMAKE_STARTDIR=
-set IWMAKE_SCRIPTDIR=
-set IWMAKE_NSISCONF=
-set IWMAKE_RESULT=
-set IWMAKE_TMP=
-set IWMAKE_TMP2=
-set IWMAKE_TMP3=
-set IWMAKE_STATUS=
-set IWMAKE_LOGFILE=
-set IWMAKE_BUILD=
-set IWMAKE_ROOT=
-set IWMAKE_OUTDIR=
-set IWMAKE_EXTERNAL=
-set IWMAKE_OLD_PATH=
-set IWMAKE_OLD_QMAKESPEC=
-set IWMAKE_OLD_QTDIR=
-set IWMAKE_OLD_INCLUDE=
-set IWMAKE_OLD_LIB=
-set IWMAKE_COMPILER=
-set IWMAKE_SRCDIR=
-set IWMAKE_EXTRACTSRC=
-set IWMAKE_EXTRACTDEST=
-set IWMAKE_PARSESECTION=
-set IWMAKE_OUTPUT_FILE=
-set IWMAKE_SIGNPATH=
-goto :eof
-
-:root
-set IWMAKE_ROOT=%~1
-goto :eof
-
-:extroot
-set IWMAKE_EXTERNAL=%~1
-goto :eof
-
-:END
diff --git a/tools/installer/batch/extract.bat b/tools/installer/batch/extract.bat
deleted file mode 100755
index 7f14a9b..0000000
--- a/tools/installer/batch/extract.bat
+++ /dev/null
@@ -1,83 +0,0 @@
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-::
-:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-:: All rights reserved.
-:: Contact: Nokia Corporation (qt-info@nokia.com)
-::
-:: This file is part of the tools 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 Technology Preview License Agreement accompanying
-:: this package.
-::
-:: 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-::
-:: If you have questions regarding the use of this file, please contact
-:: Nokia at qt-info@nokia.com.
-::
-::
-::
-::
-::
-::
-::
-::
-:: $QT_END_LICENSE$
-::
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-call :%1 %2
-goto END
-
-:dest
- set IWMAKE_EXTRACTDEST=%IWMAKE_ROOT%\%~1
-goto :eof
-
-:extUnpack
- set IWMAKE_EXTRACTSRC=%~n1
- pushd %IWMAKE_ROOT%
- if exist "%IWMAKE_EXTRACTSRC%.zip" del /Q /F "%IWMAKE_EXTRACTSRC%.zip"
- %IWMAKE_WGET%\wget %IWMAKE_WGETUSER% %IWMAKE_WGETPASS% %IWMAKE_RELEASELOCATION%/%IWMAKE_EXTRACTSRC%.zip >> %IWMAKE_LOGFILE% 2>&1
- popd
- call :unpack "%~1"
-goto :eof
-
-:unpack
- set IWMAKE_EXTRACTSRC=%~n1
- pushd %IWMAKE_ROOT%
- if exist "%IWMAKE_EXTRACTDEST%" rd /S /Q %IWMAKE_EXTRACTDEST% >> %IWMAKE_LOGFILE% 2>&1
- if exist "%IWMAKE_EXTRACTSRC%" rd /S /Q %IWMAKE_EXTRACTSRC% >> %IWMAKE_LOGFILE% 2>&1
- %IWMAKE_UNZIPAPP% %IWMAKE_EXTRACTSRC%.zip >> %IWMAKE_LOGFILE%
- popd
- move %IWMAKE_ROOT%\%IWMAKE_EXTRACTSRC% %IWMAKE_EXTRACTDEST% >> %IWMAKE_LOGFILE%
-goto :eof
-
-:extPatch
- pushd %IWMAKE_ROOT%
- if exist "%~1" del /Q /F "%~1"
- %IWMAKE_WGET%\wget %IWMAKE_WGETUSER% %IWMAKE_WGETPASS% %IWMAKE_RELEASELOCATION%/%~1 >> %IWMAKE_LOGFILE% 2>&1
- popd
- call :patch "%~1"
-goto :eof
-
-:patch
- pushd %IWMAKE_ROOT%
- %IWMAKE_UNZIPAPP% %~1 >> %IWMAKE_LOGFILE%
- popd
- xcopy /R /I /S /Q /Y %IWMAKE_ROOT%\%IWMAKE_EXTRACTSRC%\*.* %IWMAKE_EXTRACTDEST%\ >> %IWMAKE_LOGFILE%
- rd /S /Q %IWMAKE_ROOT%\%IWMAKE_EXTRACTSRC% >> %IWMAKE_LOGFILE%
-goto :eof
-
-:END
diff --git a/tools/installer/batch/installer.bat b/tools/installer/batch/installer.bat
deleted file mode 100755
index 75e8680..0000000
--- a/tools/installer/batch/installer.bat
+++ /dev/null
@@ -1,247 +0,0 @@
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-::
-:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-:: All rights reserved.
-:: Contact: Nokia Corporation (qt-info@nokia.com)
-::
-:: This file is part of the tools 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 Technology Preview License Agreement accompanying
-:: this package.
-::
-:: 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-::
-:: If you have questions regarding the use of this file, please contact
-:: Nokia at qt-info@nokia.com.
-::
-::
-::
-::
-::
-::
-::
-::
-:: $QT_END_LICENSE$
-::
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-call :%1 %2
-goto END
-
-:begin
- call :reset
- echo !define PRODUCT_NAME "%~1" >> %IWMAKE_NSISCONF%
- echo !define INSTALL_ROOT "%IWMAKE_ROOT%" >> %IWMAKE_NSISCONF%
-goto :eof
-
-:output
- set IWMAKE_OUTPUT_FILE=%~1
- echo !define OUTPUT_FILE "%~1" >> %IWMAKE_NSISCONF%
-goto :eof
-
-:module
- call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %~1
- echo !define MODULE_%IWMAKE_RESULT% >> %IWMAKE_NSISCONF%
-goto :eof
-
-:enable
- call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %~1
- echo !define USE_%IWMAKE_RESULT:"=% >> %IWMAKE_NSISCONF%
-goto :eof
-
-:disable
- call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %~1
- echo !undef USE_%IWMAKE_RESULT:"=% >> %IWMAKE_NSISCONF%
-goto :eof
-
-:startmenu
- echo !define DEFAULT_STARTMENU_STRING "%~1" >> %IWMAKE_NSISCONF%
-goto :eof
-
-:reset
- if exist "%IWMAKE_NSISCONF%" del /Q /F "%IWMAKE_NSISCONF%"
-goto :eof
-
-:instdir
- for /F "tokens=1,2*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n& set IWMAKE_TMP3="%%~o"
- call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP%
- echo !define INSTDIR_%IWMAKE_TMP2% %IWMAKE_RESULT:"=% >> "%IWMAKE_NSISCONF%"
- echo !define INSTDIR_%IWMAKE_TMP2%_TEXT %IWMAKE_TMP3% >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:version
- echo !define PRODUCT_VERSION "%~1" >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:readme
- echo !define README_FILE "%~1" >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:licenseFile
- echo !define LICENSE_FILE "%~1" >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:runfunction
- echo !define RUN_FUNCTION "%~1" >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:readmefunction
- echo !define README_FUNCTION "%~1" >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:welcomenote
- echo !define WELCOME_NOTE "%~1" >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:updateplugins
- call "%IWMAKE_SCRIPTDIR%\batch\copy.bat" extsync INetLoad
- xcopy /Q /Y /R "%IWMAKE_ROOT%\INetLoad\INetLoad.dll" "%IWMAKE_NSISPATH%\Plugins\" >> %IWMAKE_LOGFILE%
-:: xcopy /Q /Y /R "%IWMAKE_SCRIPTDIR%\nsis\qtnsisext\qtnsisext.dll" "%IWMAKE_NSISPATH%\Plugins\" >> %IWMAKE_LOGFILE%
-goto :eof
-
-:defineDir
- for /F "tokens=1,2*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n& set IWMAKE_TMP3=%%~o
- call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP%
- set IWMAKE_TMP=%IWMAKE_RESULT%
- call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP2%
- set IWMAKE_TMP2=%IWMAKE_RESULT%
- echo !define MODULE_%IWMAKE_TMP%_%IWMAKE_TMP2% "%IWMAKE_ROOT%\%IWMAKE_TMP3%" >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:define
- for /F "tokens=1,2*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n& set IWMAKE_TMP3="%%~o"
- call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP%
- set IWMAKE_TMP=%IWMAKE_RESULT%
- call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP2%
- set IWMAKE_TMP2=%IWMAKE_RESULT%
- if %IWMAKE_TMP3%=="" set IWMAKE_TMP3=
- echo !define MODULE_%IWMAKE_TMP%_%IWMAKE_TMP2% %IWMAKE_TMP3% >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:src
- for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
- call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP%
- set IWMAKE_TMP=%IWMAKE_RESULT%
- set IWMAKE_TMP3="%IWMAKE_ROOT%\%IWMAKE_TMP2%"
- echo !define MODULE_%IWMAKE_TMP%_ROOT %IWMAKE_TMP3% >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:buildDir
- for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
- call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP%
- set IWMAKE_TMP=%IWMAKE_RESULT%
- set IWMAKE_TMP3="%IWMAKE_ROOT%\%IWMAKE_TMP2%"
- echo !define MODULE_%IWMAKE_TMP%_BUILDDIR %IWMAKE_TMP3% >> "%IWMAKE_NSISCONF%"
- for /F "eol=- tokens=1,2,3" %%m in ('%SystemRoot%\system32\find "QT_PACKAGEDATE_STR" %IWMAKE_ROOT%\%IWMAKE_TMP2%\src\corelib\global\qglobal.h') do echo !define MODULE_LICENSECHECK_PACKAGEDATE %%o >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:compile
- call :required
- pushd %IWMAKE_SCRIPTDIR%\nsis
- "%IWMAKE_NSISPATH%\makensis.exe" installer.nsi >> %IWMAKE_LOGFILE%
- popd
-goto :eof
-
-:required
- call :setrequired PRODUCT_NAME
- call :setrequired INSTALL_ROOT
- call :setrequired PRODUCT_VERSION
- call :setrequired OUTPUT_FILE
- call :setrequired INSTDIR_0
- call :setrequired DEFAULT_STARTMENU_STRING
-goto :eof
-
-:setrequired
- echo !ifndef %1 >> "%IWMAKE_NSISCONF%"
- echo !error "%1 must be in the .conf file..." >> "%IWMAKE_NSISCONF%"
- echo !endif >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:makeFileList
- for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
- call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP%
- set IWMAKE_TMP=%IWMAKE_RESULT%
- set IWMAKE_TMP3="%IWMAKE_ROOT%\%IWMAKE_TMP2%"
-
-
- echo !macro MODULE_%IWMAKE_TMP%_INSTALLFILES >> "%IWMAKE_NSISCONF%"
-
- pushd %IWMAKE_TMP3%
-
- echo set IWMAKE_TMP2=%%IWMAKE_TMP2:%CD%\=%% > "%IWMAKE_ROOT%\iwmake_tmp.bat"
-
- dir /AD /B /S | %SystemRoot%\system32\sort /R > "%IWMAKE_ROOT%\iwmake_tmp.txt"
- for /F "tokens=1" %%m in (%IWMAKE_ROOT%\iwmake_tmp.txt) do call :addInstallDirectory "%%m"
-
-
- dir /A-D /B /S > "%IWMAKE_ROOT%\iwmake_tmp.txt"
- for /F "tokens=1" %%m in (%IWMAKE_ROOT%\iwmake_tmp.txt) do call :addInstallFile "%%m"
-
- popd
- echo !macroend >> "%IWMAKE_NSISCONF%"
-
-
- echo !macro MODULE_%IWMAKE_TMP%_REMOVE removepath >> "%IWMAKE_NSISCONF%"
- echo strcmp ${removepath} "" MODULE_%IWMAKE_TMP%_REMOVE_SAFETYLABEL >> "%IWMAKE_NSISCONF%"
- pushd %IWMAKE_TMP3%
-
- echo set IWMAKE_TMP2=%%IWMAKE_TMP2:%CD%\=%% > "%IWMAKE_ROOT%\iwmake_tmp.bat"
-
- dir /A-D /B /S > "%IWMAKE_ROOT%\iwmake_tmp.txt"
- for /F "tokens=1" %%m in (%IWMAKE_ROOT%\iwmake_tmp.txt) do call :addRemoveFiles "%%m"
-
- dir /AD /B /S | %SystemRoot%\system32\sort /R > "%IWMAKE_ROOT%\iwmake_tmp.txt"
- for /F "tokens=1" %%m in (%IWMAKE_ROOT%\iwmake_tmp.txt) do call :addRemoveDirectory "%%m"
-
- popd
- echo MODULE_%IWMAKE_TMP%_REMOVE_SAFETYLABEL: >> "%IWMAKE_NSISCONF%"
- echo !macroend >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:addInstallFile
- set IWMAKE_TMP2=%~1
- call "%IWMAKE_ROOT%\iwmake_tmp.bat"
- echo File "/oname=%IWMAKE_TMP2%" "%~1" >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:addInstallDirectory
- set IWMAKE_TMP2=%~1
- call "%IWMAKE_ROOT%\iwmake_tmp.bat"
- echo CreateDirectory "$OUTDIR\%IWMAKE_TMP2%" >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:addRemoveDirectory
- set IWMAKE_TMP2=%~1
- call "%IWMAKE_ROOT%\iwmake_tmp.bat"
- echo RMDir ${removepath}\%IWMAKE_TMP2% >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:addRemoveFiles
- set IWMAKE_TMP2=%~1
- call "%IWMAKE_ROOT%\iwmake_tmp.bat"
- echo Delete ${removepath}\%IWMAKE_TMP2% >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:sign
- echo Signing Installer ...
- %IWMAKE_SIGNPATH%\signtool.exe sign /v /t http://timestamp.verisign.com/scripts/timestamp.dll /f "%IWMAKE_SIGNPATH%\keys.pfx" "%IWMAKE_OUTPUT_FILE%" >> %IWMAKE_LOGFILE%
-goto :eof
-
-:openpackage
- echo !define OPENSOURCE_BUILD >> "%IWMAKE_NSISCONF%"
-goto :eof
-
-:END
diff --git a/tools/installer/batch/log.bat b/tools/installer/batch/log.bat
deleted file mode 100755
index 782dcd7..0000000
--- a/tools/installer/batch/log.bat
+++ /dev/null
@@ -1,58 +0,0 @@
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-::
-:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-:: All rights reserved.
-:: Contact: Nokia Corporation (qt-info@nokia.com)
-::
-:: This file is part of the tools 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 Technology Preview License Agreement accompanying
-:: this package.
-::
-:: 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-::
-:: If you have questions regarding the use of this file, please contact
-:: Nokia at qt-info@nokia.com.
-::
-::
-::
-::
-::
-::
-::
-::
-:: $QT_END_LICENSE$
-::
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-call :%1 %2
-goto END
-
-:file
-set IWMAKE_LOGFILE=%IWMAKE_ROOT%\%~1
-call :reset
-goto :eof
-
-:fileAbs
-set IWMAKE_LOGFILE=%1
-call :reset
-goto :eof
-
-:reset
-date /T > %IWMAKE_LOGFILE%
-goto :eof
-
-:END
diff --git a/tools/installer/batch/toupper.bat b/tools/installer/batch/toupper.bat
deleted file mode 100755
index 2543207..0000000
--- a/tools/installer/batch/toupper.bat
+++ /dev/null
@@ -1,69 +0,0 @@
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-::
-:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-:: All rights reserved.
-:: Contact: Nokia Corporation (qt-info@nokia.com)
-::
-:: This file is part of the tools 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 Technology Preview License Agreement accompanying
-:: this package.
-::
-:: 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-::
-:: If you have questions regarding the use of this file, please contact
-:: Nokia at qt-info@nokia.com.
-::
-::
-::
-::
-::
-::
-::
-::
-:: $QT_END_LICENSE$
-::
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-set IWMAKE_RESULT=%1
-if [%IWMAKE_RESULT%]==[] goto :eof
-set IWMAKE_RESULT=%IWMAKE_RESULT:a=A%
-set IWMAKE_RESULT=%IWMAKE_RESULT:b=B%
-set IWMAKE_RESULT=%IWMAKE_RESULT:c=C%
-set IWMAKE_RESULT=%IWMAKE_RESULT:d=D%
-set IWMAKE_RESULT=%IWMAKE_RESULT:e=E%
-set IWMAKE_RESULT=%IWMAKE_RESULT:f=F%
-set IWMAKE_RESULT=%IWMAKE_RESULT:g=G%
-set IWMAKE_RESULT=%IWMAKE_RESULT:h=H%
-set IWMAKE_RESULT=%IWMAKE_RESULT:i=I%
-set IWMAKE_RESULT=%IWMAKE_RESULT:j=J%
-set IWMAKE_RESULT=%IWMAKE_RESULT:k=K%
-set IWMAKE_RESULT=%IWMAKE_RESULT:l=L%
-set IWMAKE_RESULT=%IWMAKE_RESULT:m=M%
-set IWMAKE_RESULT=%IWMAKE_RESULT:n=N%
-set IWMAKE_RESULT=%IWMAKE_RESULT:o=O%
-set IWMAKE_RESULT=%IWMAKE_RESULT:p=P%
-set IWMAKE_RESULT=%IWMAKE_RESULT:q=Q%
-set IWMAKE_RESULT=%IWMAKE_RESULT:r=R%
-set IWMAKE_RESULT=%IWMAKE_RESULT:s=S%
-set IWMAKE_RESULT=%IWMAKE_RESULT:t=T%
-set IWMAKE_RESULT=%IWMAKE_RESULT:u=U%
-set IWMAKE_RESULT=%IWMAKE_RESULT:v=V%
-set IWMAKE_RESULT=%IWMAKE_RESULT:w=W%
-set IWMAKE_RESULT=%IWMAKE_RESULT:x=X%
-set IWMAKE_RESULT=%IWMAKE_RESULT:y=Y%
-set IWMAKE_RESULT=%IWMAKE_RESULT:z=Z%
-
diff --git a/tools/installer/config/config.default.sample b/tools/installer/config/config.default.sample
deleted file mode 100644
index a05b8d7..0000000
--- a/tools/installer/config/config.default.sample
+++ /dev/null
@@ -1,64 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-## All rights reserved.
-## Contact: Nokia Corporation (qt-info@nokia.com)
-##
-## This file is part of the tools 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 Technology Preview License Agreement accompanying
-## this package.
-##
-## 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-##
-## If you have questions regarding the use of this file, please contact
-## Nokia at qt-info@nokia.com.
-##
-##
-##
-##
-##
-##
-##
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-# root directory
-# Describes the directory where temporary folder, build directory and
-# package will be located at.
-env root "c:\qt_packages"
-
-# where to find all external files
-# To resolve the external dependencies specify a server, where to get
-# required tools like wget, sign, etc.
-env extroot "\\someshare\tools\"
-
-# Location of the installed MinGW to build binaries
-env mingwPath "c:\mingw"
-
-# Location to NSIS package creator
-env NSISPath "%ProgramFiles%\NSIS"
-
-# Location to the install path of PERL
-env perlPath "c:\Perl\bin"
-
-# source package directory
-# Describe the directory where compressed source package is located at.
-# The installer script uses this one for building and creating a package.
-env releaseLocation "http://your.source.server/somepath"
diff --git a/tools/installer/config/mingw-opensource.conf b/tools/installer/config/mingw-opensource.conf
deleted file mode 100644
index 6cba06e..0000000
--- a/tools/installer/config/mingw-opensource.conf
+++ /dev/null
@@ -1,136 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-## All rights reserved.
-## Contact: Nokia Corporation (qt-info@nokia.com)
-##
-## This file is part of the tools 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 Technology Preview License Agreement accompanying
-## this package.
-##
-## 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-##
-## If you have questions regarding the use of this file, please contact
-## Nokia at qt-info@nokia.com.
-##
-##
-##
-##
-##
-##
-##
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-#extracts the package to buildDir
-
-#extract dest "build_mingw_opensource"
-#Section EXTRACT
-#extract extUnpack "qt-win-opensource-src-%VERSION%.zip"
-#SectionEnd
-
-#build the binaries
-#build begin mingw "build_mingw_opensource"
-
-#Section CONFIGURE
-#build configure "-confirm-license -release -plugin-sql-sqlite -qt-libpng -qt-libjpeg"
-#SectionEnd
-
-#Section BUILD
-#build bin
-#SectionEnd
-
-#build finish
-
-# organize release files
-#Section ORGANIZE
-#delete dir "release_mingw_opensource"
-
-#copy dest "release_mingw_opensource"
-#copy src "build_mingw_opensource"
-
-# extract everything once more
-#extract dest "release_mingw_opensource"
-#extract unpack "qt-win-opensource-src-4.4.3.zip"
-
-# qconfig.h
-#copy file "src\corelib\global\qconfig.h"
-#copy file "include\QtCore\qconfig.h"
-#copy file "include\Qt\qconfig.h"
-
-# qconfig.pri
-#copy file "mkspecs\qconfig.pri"
-
-# .qmake.cache
-#copy file ".qmake.cache"
-
-# default mkspec
-#copy files "mkspecs\default\*" "mkspecs\default\"
-
-# copy all binary files
-#copy all "*.a"
-#copy all "*.exe"
-#copy all "*.dll"
-
-# .prl files
-#copy files "lib\*.prl" "lib\"
-
-# remove unused stuff
-#delete files "lib\*.dll"
-
-# copy InetLoad license info
-#copy files "..\INetLoad\Readme.txt" "src\3rdparty\InetLoad\"
-
-#SectionEnd
-
-Section NSIS
-# general installer options
-installer begin "Qt OpenSource"
-installer version "4.4.3"
-installer output "c:\iwmake\qt-win-opensource-4.4.3-mingw.exe"
-installer startmenu "Qt by Nokia v4.4.3 (OpenSource)"
-installer enable component_page
-installer enable directory_page
-installer enable startmenu_page
-installer instdir mingw 0 "Qt Installation Directory"
-installer licenseFile "%IWMAKE_ROOT%\release_mingw_opensource\LICENSE.GPL"
-#installer licenseFile "%IWMAKE_ROOT%\release_mingw_opensource\LICENSE.PREVIEW.OPENSOURCE"
-
-installer runfunction "Run Examples and Demos"
-installer readmefunction "Show Documentation"
-
-installer module registeruiext
-installer module opensource
-
-# mingw options
-installer module mingw
-installer src mingw "release_mingw_opensource"
-installer makeFileList mingw "release_mingw_opensource"
-installer buildDir mingw "build_mingw_opensource"
-installer enable nodirlengthcheck
-
-# public generatable package
-installer openpackage
-
-SectionEnd
-
-# compile the package
-Section NSIS_COMPILE
-installer compile
-SectionEnd
diff --git a/tools/installer/iwmake.bat b/tools/installer/iwmake.bat
deleted file mode 100755
index 0fc1b08..0000000
--- a/tools/installer/iwmake.bat
+++ /dev/null
@@ -1,124 +0,0 @@
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-::
-:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-:: All rights reserved.
-:: Contact: Nokia Corporation (qt-info@nokia.com)
-::
-:: This file is part of the tools 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 Technology Preview License Agreement accompanying
-:: this package.
-::
-:: 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-::
-:: If you have questions regarding the use of this file, please contact
-:: Nokia at qt-info@nokia.com.
-::
-::
-::
-::
-::
-::
-::
-::
-:: $QT_END_LICENSE$
-::
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-rem @echo off
-call :init
-if "%IWMAKE_STATUS%"=="failed" goto FAILED
-if not exist "%IWMAKE_SCRIPTDIR%\config\%1.conf" goto FAILED
-if not "%~2"=="" set IWMAKE_SECTION=%~2
-for /F "eol=# tokens=1,2*" %%i in (%IWMAKE_SCRIPTDIR%\config\config.default) do set IWMAKE_TMP=%%k& call :func_delegate %%i %%j
-if "%IWMAKE_STATUS%"=="failed" goto FAILED
-if exist "%IWMAKE_SCRIPTDIR%\config\config.%COMPUTERNAME%" for /F "eol=# tokens=1,2*" %%i in (%IWMAKE_SCRIPTDIR%\config\config.%COMPUTERNAME%) do set IWMAKE_TMP=%%k& call :func_delegate %%i %%j
-if "%IWMAKE_STATUS%"=="failed" goto FAILED
-call :checkrequirements
-if "%IWMAKE_STATUS%"=="failed" goto FAILED
-for /F "eol=# tokens=1,2*" %%i in (%IWMAKE_SCRIPTDIR%\config\%1.conf) do set IWMAKE_TMP=%%k& call :func_delegate %%i %%j
-if "%IWMAKE_STATUS%"=="failed" goto FAILED
-goto DONE
-
-:func_delegate
-if "%IWMAKE_STATUS%"=="failed" goto :eof
-set IWMAKE_TMP="%IWMAKE_TMP:"=%"
-
-if /i "%1"=="sectionend" echo Leaving Section& set IWMAKE_PARSESECTION=1& goto :eof
-if /i not "%1"=="section" goto callScript
-echo Entering Section %~2
-for %%m in (%IWMAKE_SECTION%) do call :checkSection %%m %~2
-goto :eof
-
-:callScript
-if "%IWMAKE_PARSESECTION%"=="0" goto :eof
-
-call "%IWMAKE_SCRIPTDIR%\batch\%1.bat" %2 %IWMAKE_TMP%
-if not "%errorlevel%"=="0" echo %1 %2 failed! >> %IWMAKE_LOGFILE%& set IWMAKE_STATUS=failed
-goto :eof
-
-:checkSection
- if /i "%1"=="%2" echo Skipping Section& set IWMAKE_PARSESECTION=0
-goto :eof
-
-:checkrequirements
- if not exist %IWMAKE_ROOT% mkdir %IWMAKE_ROOT%
- if not "%IWMAKE_SIGNPATH%"=="" goto CheckSIGNOK
- call "%IWMAKE_SCRIPTDIR%\batch\copy.bat" extsync sign
- call "%IWMAKE_SCRIPTDIR%\batch\env.bat" signPath "%IWMAKE_ROOT%\sign"
-:CheckSIGNOK
- if not "%IWMAKE_WGET%"=="" goto CheckWGETOK
- call "%IWMAKE_SCRIPTDIR%\batch\copy.bat" extsync wget
- call "%IWMAKE_SCRIPTDIR%\batch\env.bat" wgetDir wget
-:CheckWGETOK
- if exist "%IWMAKE_PERLPATH%\perl.exe" goto CheckPerlOK
- set IWMAKE_STATUS=failed
- echo Perl not found in %IWMAKE_PERLPATH%! (check your config file)
-:CheckPerlOK
- if not "%IWMAKE_UNZIPAPP%"=="" goto CheckUNZIPOK
- call "%IWMAKE_SCRIPTDIR%\batch\copy.bat" extsync unzip
- call "%IWMAKE_SCRIPTDIR%\batch\env.bat" unzipApp "%IWMAKE_ROOT%\unzip\unzip.exe"
-:CheckUNZIPOK
- if exist "%IWMAKE_NSISPATH%\makensis.exe" goto CheckNSISOK
- set IWMAKE_STATUS=failed
- echo NSIS not found! (check your config file)
-:CheckNSISOK
- call "%IWMAKE_SCRIPTDIR%\batch\installer.bat" updateplugins
-goto :eof
-
-:init
- set IWMAKE_SCRIPTDIR=%~dp0
- set IWMAKE_SCRIPTDIR=%IWMAKE_SCRIPTDIR:~0,-1%
- call "%IWMAKE_SCRIPTDIR%\batch\env.bat" setglobals
-goto :eof
-
-:cleanup
- pushd "%IWMAKE_STARTDIR%"
- call "%IWMAKE_SCRIPTDIR%\batch\env.bat" removeglobals
- popd
-goto :eof
-
-:FAILED
- call :cleanup
- echo Failed!
-goto END
-
-:DONE
- call :cleanup
- echo Done!
-goto END
-
-:END
diff --git a/tools/installer/nsis/confirmpage.ini b/tools/installer/nsis/confirmpage.ini
deleted file mode 100644
index b42132c..0000000
--- a/tools/installer/nsis/confirmpage.ini
+++ /dev/null
@@ -1,59 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Ini file generated by the HM NIS Edit IO designer.
-[Settings]
-NumFields=2
-
-[Field 1]
-Type=Label
-Text=The following components will be uninstalled:
-Left=1
-Right=298
-Top=1
-Bottom=12
-
-[Field 2]
-Type=Label
-Left=16
-Right=298
-Top=16
-Bottom=136
-
diff --git a/tools/installer/nsis/gwdownload.ini b/tools/installer/nsis/gwdownload.ini
deleted file mode 100644
index c139aaf..0000000
--- a/tools/installer/nsis/gwdownload.ini
+++ /dev/null
@@ -1,118 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Ini file generated by the HM NIS Edit IO designer.
-[Settings]
-NumFields=9
-
-[Field 1]
-Type=Groupbox
-Text=Find MinGW
-Left=0
-Right=299
-Top=49
-Bottom=91
-
-[Field 2]
-Type=Label
-Text=Please specify a directory where to find MinGW (for instance: C:\\MinGW). If you do not have MinGW installed, you can let the installer download and install it for you.
-Left=2
-Right=298
-Top=1
-Bottom=27
-
-[Field 3]
-Type=DirRequest
-Left=8
-Right=290
-Top=68
-Bottom=81
-
-[Field 4]
-Type=Groupbox
-Text=Download and install MinGW
-Left=0
-Right=299
-Top=94
-Bottom=137
-
-[Field 5]
-Type=Label
-Text=Previously installed MinGW:
-Left=8
-Right=286
-Top=60
-Bottom=68
-
-[Field 6]
-Type=DirRequest
-Left=8
-Right=290
-Top=116
-Bottom=129
-Flags=DISABLED
-
-[Field 7]
-Type=Label
-Text=Installation directory:
-Left=8
-Right=124
-Top=107
-Bottom=115
-Flags=DISABLED
-
-[Field 8]
-Type=Checkbox
-Text=Download and install minimal MinGW installation.
-Left=8
-Right=172
-Top=28
-Bottom=40
-Flags=NOTIFY
-
-[Field 9]
-Type=Link
-Text=(http://www.mingw.org)
-Left=174
-Right=260
-Top=30
-Bottom=38
-State=http://www.mingw.org
-
diff --git a/tools/installer/nsis/gwmirror.ini b/tools/installer/nsis/gwmirror.ini
deleted file mode 100644
index e246080..0000000
--- a/tools/installer/nsis/gwmirror.ini
+++ /dev/null
@@ -1,67 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Ini file generated by the HM NIS Edit IO designer.
-[Settings]
-NumFields=3
-
-[Field 1]
-Type=Label
-Text=Select a mirror where to download MinGW:
-Left=0
-Right=211
-Top=0
-Bottom=8
-
-[Field 2]
-Type=Checkbox
-Text=Download MinGW source code. (You don't need this to compile Qt)
-Left=4
-Right=296
-Top=124
-Bottom=134
-
-[Field 3]
-Type=Listbox
-Left=0
-Right=299
-Top=9
-Bottom=118
-
diff --git a/tools/installer/nsis/images/install.ico b/tools/installer/nsis/images/install.ico
deleted file mode 100644
index 080d82d..0000000
--- a/tools/installer/nsis/images/install.ico
+++ /dev/null
Binary files differ
diff --git a/tools/installer/nsis/images/qt-header.bmp b/tools/installer/nsis/images/qt-header.bmp
deleted file mode 100644
index 1333cb4..0000000
--- a/tools/installer/nsis/images/qt-header.bmp
+++ /dev/null
Binary files differ
diff --git a/tools/installer/nsis/images/qt-wizard.bmp b/tools/installer/nsis/images/qt-wizard.bmp
deleted file mode 100644
index 4aefd2d..0000000
--- a/tools/installer/nsis/images/qt-wizard.bmp
+++ /dev/null
Binary files differ
diff --git a/tools/installer/nsis/includes/global.nsh b/tools/installer/nsis/includes/global.nsh
deleted file mode 100644
index d91a039..0000000
--- a/tools/installer/nsis/includes/global.nsh
+++ /dev/null
@@ -1,143 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-!include "StrFunc.nsh"
-!include "includes\list.nsh"
-
-${StrCase}
-${StrTrimNewLines}
-${StrStr}
-${StrRep}
-${UnStrRep}
-
-var STARTMENU_STRING
-var PRODUCT_UNIQUE_KEY
-var RUNNING_AS_ADMIN
-
-!ifndef MODULE_MINGW
- !ifdef MODULE_MSVC_VC60
- !define INSTALL_COMPILER "vc60"
- !else
- !ifdef MODULE_MSVC_VS2002
- !define INSTALL_COMPILER "vs2002"
- !else
- !ifdef MODULE_MSVC_VS2005
- !define INSTALL_COMPILER "vs2005"
- !else
- !define INSTALL_COMPILER "vs2003"
- !endif
- !endif
- !endif
-!else
- !define INSTALL_COMPILER "mingw"
-!endif
-
-; ADDIN\INTEGRATION
-var VS_VERSION
-var VS_VERSION_SHORT
-var ADDIN_INSTDIR
-var VSIP_INSTDIR
-var HELP_INSTDIR
-var ECLIPSE_INSTDIR
-var QTJAMBIECLIPSE_INSTDIR
-
-; LICENSECHECK
-var LICENSE_KEY
-var LICENSEE
-var LICENSE_PRODUCT
-var LICENSE_FILE
-
-; MSVC
-!ifdef MODULE_MSVC
- !define MSVC_ValidateDirectory
- var MSVC_INSTDIR
-!endif
-
-; MINGW
-!ifdef MODULE_MINGW
- !define MINGW_ValidateDirectory
- var MINGW_INSTDIR
-!endif
-
-; QSA
-var QSA_INSTDIR
-
-; QTDIR PAGE
-var QTDIR_SELECTED
-var COMPILER_SELECTED
-
-; used by addin7x and vsip
-!ifndef MODULE_VSIP_ROOT
- !define MODULE_VSIP_ROOT "${INSTALL_ROOT}\vsip"
-!endif
-
-; add to confirm path
-var UninstallerConfirmProduct
-
-Function un.ConfirmOnDelete
- exch $0
- push $1
-
- push "$0"
- push "$UninstallerConfirmProduct"
- call un.ItemInList
- pop $1
- IntCmp $1 1 ConfirmOnDeleteDone
-
- strcmp "$UninstallerConfirmProduct" "" 0 +3
- strcpy $UninstallerConfirmProduct "$0"
- goto +2
- strcpy $UninstallerConfirmProduct "$UninstallerConfirmProduct$\r$\n$0"
-
- ConfirmOnDeleteDone:
- pop $1
- pop $0
-FunctionEnd
-
-!macro ConfirmOnRemove REG_KEY PRODUCT_NAME
- push $0
- ClearErrors
- ReadRegDWORD $0 SHCTX "$PRODUCT_UNIQUE_KEY" "${REG_KEY}"
- intcmp $0 1 0 +3
- push "${PRODUCT_NAME}"
- call un.ConfirmOnDelete
- ClearErrors
- pop $0
-!macroend
diff --git a/tools/installer/nsis/includes/instdir.nsh b/tools/installer/nsis/includes/instdir.nsh
deleted file mode 100644
index a0957dd..0000000
--- a/tools/installer/nsis/includes/instdir.nsh
+++ /dev/null
@@ -1,254 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-!ifndef INSTDIR_1
- !macro INSTDIR_INITIALIZE
- !define MUI_DIRECTORYPAGE_VARIABLE $${INSTDIR_0}_INSTDIR
- !ifdef ${INSTDIR_0}_ValidateDirectory
- !define MUI_PAGE_CUSTOMFUNCTION_LEAVE "${INSTDIR_0}_ValidateDirectoryFunc"
- !endif
- !insertmacro MUI_PAGE_DIRECTORY
- !macroend
- !macro INSTDIR_FUNCTIONS
- !macroend
- !macro INSTDIR_STARTUP
- !macroend
-!else
-!macro INSTDIR_INITIALIZE
- !define INSTDIR_INI_FILE "instdir.ini"
- !define INSTDIR_0_DIRFIELD "Field 10"
- !define INSTDIR_0_TEXTFIELD "Field 13"
- !define INSTDIR_1_DIRFIELD "Field 7"
- !define INSTDIR_1_TEXTFIELD "Field 11"
- !define INSTDIR_2_DIRFIELD "Field 5"
- !define INSTDIR_2_TEXTFIELD "Field 8"
- !define INSTDIR_3_DIRFIELD "Field 3"
- !define INSTDIR_3_TEXTFIELD "Field 6"
- !define INSTDIR_4_DIRFIELD "Field 2"
- !define INSTDIR_4_TEXTFIELD "Field 4"
- !define INSTDIR_5_DIRFIELD "Field 9"
- !define INSTDIR_5_TEXTFIELD "Field 12"
- !define INSTDIR_DIRHEIGHT 18
-
- Page custom InitInstDirs UpdateInstDirs
-
- LangString InstDirLicenseTitle ${LANG_ENGLISH} "Installation Directories"
- LangString InstDirLicenseTitleDescription ${LANG_ENGLISH} "Select the directories where you want the software installed."
-!macroend
-
-!macro INSTDIR_FUNCTIONS
- Function InitInstDirs
- push $0
- push $1
- push $2
- push $3
-
- !insertmacro MUI_HEADER_TEXT "$(InstDirLicenseTitle)" "$(InstDirLicenseTitleDescription)"
- strcpy $0 "129"
-
-!ifdef INSTDIR_0
- SectionGetFlags ${${INSTDIR_0}_SEC01} $1
-!ifdef ${INSTDIR_0}_SEC02
- SectionGetFlags ${${INSTDIR_0}_SEC02} $3
- IntOp $1 $1 | $3
-!endif
- IntOp $2 $1 & 1 ;just care about the first flag
- StrCpy $1 "READONLY"
- StrCmp "$2" "1" +2
- StrCpy $1 "DISABLED"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_TEXTFIELD}" "Flags" "$1"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_DIRFIELD}" "Flags" "$1"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_TEXTFIELD}" "Text" "${INSTDIR_0_TEXT}"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_DIRFIELD}" "State" $${INSTDIR_0}_INSTDIR
-!else
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_DIRFIELD}" "Type" "Unknown"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_TEXTFIELD}" "Type" "Unknown"
- intop $0 $0 - ${INSTDIR_DIRHEIGHT}
-!endif
-!ifdef INSTDIR_1
- SectionGetFlags ${${INSTDIR_1}_SEC01} $1
-!ifdef ${INSTDIR_1}_SEC02
- SectionGetFlags ${${INSTDIR_1}_SEC02} $3
- IntOp $1 $1 | $3
-!endif
- IntOp $2 $1 & 1 ;just care about the first flag
- StrCpy $1 "READONLY"
- StrCmp "$2" "1" +2
- StrCpy $1 "DISABLED"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_TEXTFIELD}" "Flags" "$1"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_DIRFIELD}" "Flags" "$1"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_TEXTFIELD}" "Text" "${INSTDIR_1_TEXT}"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_DIRFIELD}" "State" $${INSTDIR_1}_INSTDIR
-!else
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_DIRFIELD}" "Type" "Unknown"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_TEXTFIELD}" "Type" "Unknown"
- intop $0 $0 - ${INSTDIR_DIRHEIGHT}
-!endif
-!ifdef INSTDIR_2
- SectionGetFlags ${${INSTDIR_2}_SEC01} $1
-!ifdef ${INSTDIR_2}_SEC02
- SectionGetFlags ${${INSTDIR_2}_SEC02} $3
- IntOp $1 $1 | $3
-!endif
- IntOp $2 $1 & 1 ;just care about the first flag
- StrCpy $1 "READONLY"
- StrCmp "$2" "1" +2
- StrCpy $1 "DISABLED"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_TEXTFIELD}" "Flags" "$1"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_DIRFIELD}" "Flags" "$1"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_TEXTFIELD}" "Text" "${INSTDIR_2_TEXT}"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_DIRFIELD}" "State" $${INSTDIR_2}_INSTDIR
-!else
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_DIRFIELD}" "Type" "Unknown"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_TEXTFIELD}" "Type" "Unknown"
- intop $0 $0 - ${INSTDIR_DIRHEIGHT}
-!endif
-!ifdef INSTDIR_3
- SectionGetFlags ${${INSTDIR_3}_SEC01} $1
-!ifdef ${INSTDIR_3}_SEC02
- SectionGetFlags ${${INSTDIR_3}_SEC02} $3
- IntOp $1 $1 | $3
-!endif
- IntOp $2 $1 & 1 ;just care about the first flag
- StrCpy $1 "READONLY"
- StrCmp "$2" "1" +2
- StrCpy $1 "DISABLED"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_TEXTFIELD}" "Flags" "$1"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_DIRFIELD}" "Flags" "$1"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_TEXTFIELD}" "Text" "${INSTDIR_3_TEXT}"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_DIRFIELD}" "State" $${INSTDIR_3}_INSTDIR
-!else
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_DIRFIELD}" "Type" "Unknown"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_TEXTFIELD}" "Type" "Unknown"
- intop $0 $0 - ${INSTDIR_DIRHEIGHT}
-!endif
-!ifdef INSTDIR_4
- SectionGetFlags ${${INSTDIR_4}_SEC01} $1
-!ifdef ${INSTDIR_4}_SEC02
- SectionGetFlags ${${INSTDIR_4}_SEC02} $3
- IntOp $1 $1 | $3
-!endif
- IntOp $2 $1 & 1 ;just care about the first flag
- StrCpy $1 "READONLY"
- StrCmp "$2" "1" +2
- StrCpy $1 "DISABLED"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_TEXTFIELD}" "Flags" "$1"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_DIRFIELD}" "Flags" "$1"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_TEXTFIELD}" "Text" "${INSTDIR_4_TEXT}"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_DIRFIELD}" "State" $${INSTDIR_4}_INSTDIR
-!else
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_DIRFIELD}" "Type" "Unknown"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_TEXTFIELD}" "Type" "Unknown"
- intop $0 $0 - ${INSTDIR_DIRHEIGHT}
-!endif
-!ifdef INSTDIR_5
- SectionGetFlags ${${INSTDIR_5}_SEC01} $1
-!ifdef ${INSTDIR_5}_SEC02
- SectionGetFlags ${${INSTDIR_5}_SEC02} $3
- IntOp $1 $1 | $3
-!endif
- IntOp $2 $1 & 1 ;just care about the first flag
- StrCpy $1 "READONLY"
- StrCmp "$2" "1" +2
- StrCpy $1 "DISABLED"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_TEXTFIELD}" "Flags" "$1"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_DIRFIELD}" "Flags" "$1"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_TEXTFIELD}" "Text" "${INSTDIR_5_TEXT}"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_DIRFIELD}" "State" $${INSTDIR_5}_INSTDIR
-!else
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_DIRFIELD}" "Type" "Unknown"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_TEXTFIELD}" "Type" "Unknown"
- intop $0 $0 - ${INSTDIR_DIRHEIGHT}
-!endif
-
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "Field 1" "Bottom" "$0"
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${INSTDIR_INI_FILE}"
-
- pop $3
- pop $2
- pop $1
- pop $0
- FunctionEnd
-
- Function UpdateInstDirs
-!ifdef INSTDIR_0
- !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_0}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_0_DIRFIELD}" "State"
- !ifdef ${INSTDIR_0}_ValidateDirectory
- call ${INSTDIR_0}_ValidateDirectoryFunc
- !endif
-!endif
-!ifdef INSTDIR_1
- !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_1}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_1_DIRFIELD}" "State"
- !ifdef ${INSTDIR_1}_ValidateDirectory
- call ${INSTDIR_1}_ValidateDirectoryFunc
- !endif
-!endif
-!ifdef INSTDIR_2
- !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_2}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_2_DIRFIELD}" "State"
- !ifdef ${INSTDIR_2}_ValidateDirectory
- call ${INSTDIR_2}_ValidateDirectoryFunc
- !endif
-!endif
-!ifdef INSTDIR_3
- !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_3}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_3_DIRFIELD}" "State"
- !ifdef ${INSTDIR_3}_ValidateDirectory
- call ${INSTDIR_3}_ValidateDirectoryFunc
- !endif
-!endif
-!ifdef INSTDIR_4
- !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_4}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_4_DIRFIELD}" "State"
- !ifdef ${INSTDIR_4}_ValidateDirectory
- call ${INSTDIR_4}_ValidateDirectoryFunc
- !endif
-!endif
-!ifdef INSTDIR_5
- !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_5}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_5_DIRFIELD}" "State"
- !ifdef ${INSTDIR_5}_ValidateDirectory
- call ${INSTDIR_5}_ValidateDirectoryFunc
- !endif
-!endif
- FunctionEnd
-!macroend
-
-!macro INSTDIR_STARTUP
- !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${INSTDIR_INI_FILE}"
-!macroend
-
-!endif ;ifndef INSTDIR_1
diff --git a/tools/installer/nsis/includes/list.nsh b/tools/installer/nsis/includes/list.nsh
deleted file mode 100644
index 7a2fd0a..0000000
--- a/tools/installer/nsis/includes/list.nsh
+++ /dev/null
@@ -1,136 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-!ifndef LIST_INCLUDE
-!define LIST_INCLUDE
-
-; usage:
-; push item
-; push list
-; call ItemInList
-; returns 1 or 0
-!macro ItemInList UN
-Function ${UN}ItemInList
- exch $0 ;list
- exch
- exch $1 ;item
- push $2 ;counter
- push $3 ;substr
- push $4 ;char
-
- strcpy $3 ""
- strcpy $2 "0"
-
- loop:
- strcpy $4 $0 1 $2
- strcmp "$4" "" atend
- intop $2 $2 + 1
-
- strcmp "$4" "|" 0 +4
- strcmp "$3" "$1" found
- strcpy $3 "" ;reset substr
- goto +2
- strcpy $3 "$3$4" ;append char to substr
- goto loop
-
- found:
- strcpy $0 "1"
- goto done
-
- atend:
- strcmp "$3" "$1" found
- strcpy $0 "0"
-
- done:
- pop $4
- pop $3
- pop $2
- pop $1
- exch $0
-FunctionEnd
-!macroend
-
-!insertmacro ItemInList ""
-!insertmacro ItemInList "un."
-
-Function GetItemInList
- exch $0 ;list
- exch
- exch $1 ;index
- push $2 ;counter
- push $3 ;substr
- push $4 ;char
- push $5 ;current index
-
- strcpy $3 ""
- strcpy $2 "0"
- strcpy $5 "1"
-
- loop:
- strcpy $4 $0 1 $2
- strcmp "$4" "" atend
- intop $2 $2 + 1
-
- strcmp "$4" "|" 0 +5
- strcmp "$5" "$1" found
- strcpy $3 "" ;reset substr
- intop $5 $5 + 1
- goto +2
- strcpy $3 "$3$4" ;append char to substr
- goto loop
-
- found:
- strcpy $0 "$3"
- goto done
-
- atend:
- strcmp "$5" "$1" found
- strcpy $0 ""
-
- done:
- pop $5
- pop $4
- pop $3
- pop $2
- pop $1
- exch $0
-FunctionEnd
-
-!endif ;LIST_INCLUDE
diff --git a/tools/installer/nsis/includes/qtcommon.nsh b/tools/installer/nsis/includes/qtcommon.nsh
deleted file mode 100644
index a4ec01b..0000000
--- a/tools/installer/nsis/includes/qtcommon.nsh
+++ /dev/null
@@ -1,549 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-!ifndef QTCOMMON_INCLUDE
-!define QTCOMMON_INCLUDE
-
-!macro MakeQtDirectory UN
-Function ${UN}MakeQtDirectory
- exch $0
-
- push $0
- push " " #replace
- push "-" #with
- call ${UN}ReplaceString
- pop $0
-
- push $0
- push "(" #replace
- push "" #with
- call ${UN}ReplaceString
- pop $0
-
- push $0
- push ")" #replace
- push "" #with
- call ${UN}ReplaceString
- pop $0
-
- exch $0
-FunctionEnd
-!macroend
-!insertmacro MakeQtDirectory ""
-!insertmacro MakeQtDirectory "un."
-
-Function AddStartmenuApplication
- exch $0
- IfFileExists "$0\assistant.exe" 0 +2
- CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Assistant.lnk" "$0\assistant.exe"
- IfFileExists "$0\designer.exe" 0 +2
- CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Designer.lnk" "$0\designer.exe"
- IfFileExists "$0\linguist.exe" 0 +2
- CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Linguist.lnk" "$0\linguist.exe"
- IfFileExists "$0\qtdemo.exe" 0 +2
- CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Examples and Demos.lnk" "$0\qtdemo.exe"
- IfFileExists "$0\..\README" 0 ReadMeShortCutFinished
- IfFileExists "$WINDIR\notepad.exe" +3
- CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Qt Readme.lnk" "$SYSDIR\notepad.exe" "$0\..\README"
- goto ReadMeShortCutFinished
- CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Qt Readme.lnk" "$WINDIR\notepad.exe" "$0\..\README"
- ReadMeShortCutFinished:
- pop $0
-FunctionEnd
-
-Function un.RemoveStartmenuApplication
- Delete "$SMPROGRAMS\$STARTMENU_STRING\Assistant.lnk"
- Delete "$SMPROGRAMS\$STARTMENU_STRING\Designer.lnk"
- Delete "$SMPROGRAMS\$STARTMENU_STRING\Linguist.lnk"
- Delete "$SMPROGRAMS\$STARTMENU_STRING\Examples and Demos.lnk"
- Delete "$SMPROGRAMS\$STARTMENU_STRING\Qt Readme.lnk"
-FunctionEnd
-
-#patch the licence information
-Function PatchLicenseInformation
- exch $0
- push $1
- push $2
-
- DetailPrint "Patching license information..."
-
- IfFileExists "$0\src\corelib\global\qconfig.h" 0 +3
- strcpy $2 "$0\src\corelib\global\qconfig.h"
- goto PatchLicensee
-
- IfFileExists "$0\include\Qt\qconfig.h" 0 PatchConfigPriFile
- strcpy $2 "$0\include\Qt\qconfig.h"
-
- PatchLicensee:
- push $2
- push '#define QT_PRODUCT_LICENSEE "'
- push '#define QT_PRODUCT_LICENSEE "$LICENSEE"$\r$\n'
- call PatchLine
-
- push $2
- push '#define QT_PRODUCT_LICENSE "'
- push '#define QT_PRODUCT_LICENSE "$LICENSE_PRODUCT"$\r$\n'
- call PatchLine
-
- push $2
- ${StrCase} $1 "$LICENSE_PRODUCT" "U"
- push '# define QT_EDITION QT_EDITION_'
- push '# define QT_EDITION QT_EDITION_$1$\r$\n'
- call PatchLine
-
- PatchConfigPriFile:
- IfFileExists "$0\mkspecs\qconfig.pri" 0 PatchLicenseProductDone
- push "$0\mkspecs\qconfig.pri"
- push "QT_EDITION = "
- push "QT_EDITION = $LICENSE_PRODUCT$\r$\n"
- call PatchLine
-
- PatchLicenseProductDone:
- pop $2
- pop $1
- pop $0
-FunctionEnd
-
-Function PatchCommonBinaryFiles
- exch $2
- push $0
- push $1
-
- IfFileExists "$2\bin\qmake.exe" 0 +5
- DetailPrint "Patching paths in qmake..."
- push $2
- push "$2\bin\qmake.exe"
- call PatchBinaryPaths
-
- DetailPrint "Patching paths in core..."
- FindFirst $0 $1 "$2\bin\QtCore*.dll"
- StrCmp $1 "" ErrorPatching
- push $2
- push "$2\bin\$1"
- call PatchBinaryPaths
-
- FindNext $0 $1
- StrCmp $1 "" ErrorPatching
- push $2
- push "$2\bin\$1"
- call PatchBinaryPaths
-
- ErrorPatching:
-
- pop $1
- pop $0
- pop $2
-FunctionEnd
-
-Function PatchBinaryPaths
- exch $0
- exch
- exch $2
- push $1
-
-!ifndef OPENSOURCE_BUILD
- qtnsisext::PatchBinary /NOUNLOAD $0 "qt_prfxpath=" "qt_prfxpath=$2"
- qtnsisext::PatchBinary /NOUNLOAD $0 "qt_docspath=" "qt_docspath=$2\doc"
- qtnsisext::PatchBinary /NOUNLOAD $0 "qt_hdrspath=" "qt_hdrspath=$2\include"
- qtnsisext::PatchBinary /NOUNLOAD $0 "qt_libspath=" "qt_libspath=$2\lib"
- qtnsisext::PatchBinary /NOUNLOAD $0 "qt_binspath=" "qt_binspath=$2\bin"
- qtnsisext::PatchBinary /NOUNLOAD $0 "qt_plugpath=" "qt_plugpath=$2\plugins"
- qtnsisext::PatchBinary /NOUNLOAD $0 "qt_datapath=" "qt_datapath=$2"
- qtnsisext::PatchBinary /NOUNLOAD $0 "qt_trnspath=" "qt_trnspath=$2\translations"
- qtnsisext::PatchBinary /NOUNLOAD $0 "qt_xmplpath=" "qt_xmplpath=$2\examples"
-!ifdef MODULE_LICENSECHECK
- qtnsisext::PatchBinary /NOUNLOAD $0 "qt_lcnsuser=" "qt_lcnsuser=$LICENSEE"
- qtnsisext::PatchBinary /NOUNLOAD $0 "qt_lcnsprod=" "qt_lcnsprod=$LICENSE_PRODUCT"
-!endif
- qtnsisext::PatchBinary $0 "qt_demopath=" "qt_demopath=$2\demos"
-!endif
-
- pop $1
- pop $2
- pop $0
-FunctionEnd
-
-#patching the prl files
-Function PatchPrlFiles
- exch $2
- exch
- exch $3 ;buildDir
- push $0
- push $1
-
- FindFirst $0 $1 "$2\lib\*.prl"
- loop:
- StrCmp $1 "" done
- DetailPrint "Patching $1..."
-
- push "$2\lib\$1"
- push $3
- push $2
- call PatchPath
-
- FindNext $0 $1
- Goto loop
- done:
- pop $1
- pop $0
- pop $3
- pop $2
-FunctionEnd
-
-#
-# patch line in text files
-# push "qtcore4.prl" #Filename
-# push "#define ..." #START WITH
-# push "c:\qt" #REPLACE WITH
-# call PatchLine
-#
-Function PatchLine
- exch $2 ;replacement line
- exch 2
- exch $1 ;Filename
- exch
- exch $0 ;start with
- push $3 ; tmp filename
- push $4 ; handle (tmp)
- push $5 ; handle (org)
- push $6 ; string
-
- ClearErrors
- GetTempFileName $3
- IfErrors done
- FileOpen $4 $3 w
- IfErrors done
- FileOpen $5 $1 r
- IfErrors done
-
-nextline:
- FileRead $5 $6
- IfErrors renameFile
- push $6
- push $0
- push $2
- call ReplaceLine
- pop $6
- FileWrite $4 $6
- goto nextline
-
-renameFile:
- FileClose $4
- FileClose $5
- SetDetailsPrint none
- Delete $1
- Rename $3 $1
- SetDetailsPrint both
-
- done:
- pop $6
- pop $5
- pop $4
- pop $3
- pop $0
- pop $1
- pop $2
-FunctionEnd
-
-#
-# replaces a string that starts with something, with another string
-# push string
-# push "#define ..." #START WITH
-# push "c:\qt" #REPLACE WITH
-# call ReplaceLine
-# pop $0 #new string
-#
-Function ReplaceLine
- exch $2 ;new line
- exch 2
- exch $1 ;string
- exch
- exch $0 ;start with
-
- push $3 ; tmp string
- push $4 ; counter
- push $5 ; strlen
-
- StrCpy $4 "-1"
- StrLen $5 $1
-
- loop:
- IntOp $4 $4 + 1 ;increase counter
- StrCpy $3 $1 $4 ;get substring
- IntCmp $4 $5 copystring ; check for end
- StrCmp $3 $0 done ;start with found
- goto loop
-
- copystring:
- StrCpy $2 $1
- goto done
-
- done:
- pop $5
- pop $4
- pop $3
- pop $0
- pop $1
- exch $2
-FunctionEnd
-
-#
-# patch paths in text files
-# push "qtcore4.prl" #Filename
-# push "c:\compile" #OLD_QTDIR
-# push "c:\qt" #QTDIR
-# call PatchPath
-#
-Function PatchPath
- exch $2 ;NEW
- exch 2
- exch $1 ;Filename
- exch
- exch $0 ;OLD
- push $3 ;readline
- push $4 ;file 1
- push $5 ;file 2
- push $6 ;tmpfilename
-
- push $7 ;forward slash NEW
- push $8 ;forward slash OLD
-
- push $2
- push "\"
- push "/"
- call ReplaceString
- pop $7
-
- push $0
- push "\"
- push "/"
- call ReplaceString
- pop $8
-
- ClearErrors
- GetTempFileName $6
- IfErrors done
- FileOpen $5 $6 w
- IfErrors done
- FileOpen $4 $1 r
- IfErrors done
-
-nextline:
- FileRead $4 $3
- IfErrors renameFile
- push $3
- push $0
- push $2
- call ReplaceString ;replace backward slash path
- push $8
- push $7
- call ReplaceString ;replace forward slash path
- pop $3
- FileWrite $5 $3
- goto nextline
-
-renameFile:
- FileClose $5
- FileClose $4
- SetDetailsPrint none
- Delete $1
- Rename $6 $1
- SetDetailsPrint both
-
-done:
- pop $8
- pop $7
- pop $6
- pop $5
- pop $4
- pop $3
- pop $0
- pop $1
- pop $2
-FunctionEnd
-
-#
-# replaces a string with another string
-# push string
-# push "c:\qt" #replace
-# push "c:\compile" #with
-# call ReplaceString
-# pop $0 #new string
-#
-!macro ReplaceString UN
-Function ${UN}ReplaceString
- exch $2 ;NEW
- exch 2
- exch $1 ;string
- exch
- exch $0 ;OLD
-
- push $3 ; tmp string
- push $4 ; counter
- push $5 ; result
-
- push $6 ; old strlen
-
- StrCpy $4 "-1"
- StrCpy $5 ""
-
- StrLen $6 $0
-
- loop:
- IntOp $4 $4 + 1 ;increase counter
- StrCpy $3 $1 $6 $4 ;get substring
- StrCmp $3 "" done ; check for end
- StrCmp $3 $0 replace ;replace if old
- StrCpy $3 $1 "1" $4
- StrCpy $5 $5$3 ;append character to result
- goto loop
-
- replace:
- StrCpy $5 $5$2 ;insert new qtdir
- IntOp $4 $4 + $6 ;increase offset
- IntOp $4 $4 - 1 ;decrease offset one more
- goto loop
-
- done:
- StrCpy $2 $5
- pop $6
- pop $5
- pop $4
- pop $3
- pop $0
- pop $1
- exch $2
-FunctionEnd
-!macroend
-!insertmacro ReplaceString ""
-!insertmacro ReplaceString "un."
-
-Function CommonCheckDirectory
- exch $4
- exch
- exch $5
- push $0
- push $1
- push $2
- push $3
-
- ; check if qt is already installed
- IfFileExists "$4\bin\qmake.exe" 0 +2
- IfFileExists "$4\uninst.exe" qtExistsError
-
- ; check if directory is empty
- FindFirst $0 $1 "$4\*"
- CommonCheckDirectory_FileSearchLoop:
- StrCmp $1 "" CommonCheckDirectory_DirDoesNotExist
- StrCmp $1 "." CommonCheckDirectory_ContinueSearchLoop
- StrCmp $1 ".." CommonCheckDirectory_ContinueSearchLoop
- goto CommonCheckDirectory_FoundFile
- CommonCheckDirectory_ContinueSearchLoop:
- FindNext $0 $1
- goto CommonCheckDirectory_FileSearchLoop
-
-CommonCheckDirectory_FoundFile:
- FindClose $0
- MessageBox MB_YESNO|MB_ICONEXCLAMATION "This directory already has contents. Are you sure you want to use this directory?" IDYES CommonCheckDirectory_DirDoesNotExist
- Goto errorInDirectory
-CommonCheckDirectory_DirDoesNotExist:
- FindClose $0
-
- GetInstDirError $0
- IntCmp 0 $0 0 instDirError
-
- StrLen $0 $4
-
-!ifdef USE_NODIRLENGTHCHECK
- StrCpy $1 "400"
-!else
- StrLen $1 $5
-!endif
-
- IntCmp $1 $0 0 directoryToLong
-
- ;check for spaces
- StrCpy $2 "-1"
- StrCpy $3 ""
-
- loop:
- IntOp $2 $2 + 1 ;increase counter
- StrCpy $3 $4 "1" $2 ;get char
- StrCmp $3 "" directoryOk ; check for end
- StrCmp $3 " " spaceInDirectory ;check for space
- goto loop
-
-qtExistsError:
- MessageBox MB_OK|MB_ICONEXCLAMATION "Qt is already installed in this directory. Please uninstall the previous version and try again."
- Goto errorInDirectory
-
-instDirError:
- MessageBox MB_OK|MB_ICONEXCLAMATION "This is not a valid installation directory."
- Goto errorInDirectory
-
-spaceInDirectory:
- MessageBox MB_OK|MB_ICONEXCLAMATION "The installation path can't contain spaces."
- Goto errorInDirectory
-
-directoryToLong:
- MessageBox MB_OK|MB_ICONEXCLAMATION "The installation directory is to long."
- Goto errorInDirectory
-
-errorInDirectory:
- pop $3
- pop $2
- pop $1
- pop $0
- pop $5
- pop $4
- Abort
- goto done
-
-directoryOk:
- pop $3
- pop $2
- pop $1
- pop $0
- pop $5
- pop $4
-done:
-FunctionEnd
-
-!endif ;QTCOMMON_INCLUDE
diff --git a/tools/installer/nsis/includes/qtenv.nsh b/tools/installer/nsis/includes/qtenv.nsh
deleted file mode 100644
index 8a06888..0000000
--- a/tools/installer/nsis/includes/qtenv.nsh
+++ /dev/null
@@ -1,303 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-!ifndef QTENV_INCLUDE
-!define QTENV_INCLUDE
-#
-# creates a qtvars.bat file in $QTDIR\bin
-# push "vs2003" #compiler
-# push "c:\qt" #QTDIR
-# call MakeQtVarsFile
-#
-Function MakeQtVarsFile
- exch $1 ; QTDIR
- exch
- exch $3 ; vs version
- push $0 ; file handle
- push $2
- push $4
-
- push $3
- call GetMkSpec
- pop $2
-
- ClearErrors
- FileOpen $0 "$1\bin\qtvars.bat" w
- IfErrors done
- FileWrite $0 "@echo off$\r$\n"
- FileWrite $0 "rem$\r$\n"
- FileWrite $0 "rem This file is generated$\r$\n"
- FileWrite $0 "rem$\r$\n"
- FileWrite $0 "$\r$\n"
- FileWrite $0 "echo Setting up a Qt environment...$\r$\n"
- FileWrite $0 "echo -- QTDIR set to $1$\r$\n"
- FileWrite $0 "echo -- Added $1\bin to PATH$\r$\n"
- FileWrite $0 "echo -- QMAKESPEC set to $2$\r$\n"
- FileWrite $0 "$\r$\n"
- FileWrite $0 "set QTDIR=$1$\r$\n"
- FileWrite $0 "set PATH=$1\bin;%PATH%$\r$\n"
- FileWrite $0 "set QMAKESPEC=$2$\r$\n"
-
- call IsExpressVersion
- pop $4
- strcmp $4 "" noExpressVersion
- FileWrite $0 "$\r$\n"
- FileWrite $0 'regedit /e S$$D$$K$$ "HKEY_LOCAL_MACHINE\Software\Microsoft\MicrosoftSDK"$\r$\n'
- Filewrite $0 'if not exist S$$D$$K$$ goto ENDSDK\r$\n'
- FileWrite $0 'find "Install Dir" < S$$D$$K$$ > D$$I$$R$$$\r$\n'
- FileWrite $0 'del S$$D$$K$$$\r$\n'
- FileWrite $0 'for /f "tokens=2 delims==" %%i in (D$$I$$R$$) do call %%i\setenv$\r$\n'
- FileWrite $0 'del D$$I$$R$$$\r$\n'
- Filewrite $0 ':ENDSDK\r$\n'
- noExpressVersion:
-
- push $3
- call GetVSVarsFile
- pop $2
- strcmp $2 "" novsvars
- FileWrite $0 "$\r$\n"
- FileWrite $0 'if not "%1"=="vsvars" goto END$\r$\n'
- FileWrite $0 'call "$2"$\r$\n'
- FileWrite $0 ":END$\r$\n"
-
- FileWrite $0 "$\r$\n"
- FileWrite $0 'if not "%1"=="vsstart" goto ENDSTARTVS$\r$\n'
- FileWrite $0 'call "$2"$\r$\n'
-
- strcmp $3 "vc60" vc60startup
- FileWrite $0 "devenv /useenv$\r$\n"
- Goto donevsstartup
- vc60startup:
- FileWrite $0 "msdev /useenv$\r$\n"
- donevsstartup:
-
- FileWrite $0 ":ENDSTARTVS$\r$\n"
-
- novsvars:
- FileWrite $0 "$\r$\n"
- FileClose $0
- done:
- pop $4
- pop $2
- pop $0
- pop $3
- pop $1
-FunctionEnd
-
-Function GetMkSpec
- exch $0
- StrCmp $0 "mingw" MINGW
- StrCmp $0 "vs2005" VS2005
- StrCmp $0 "vs2003" VS2003
- StrCmp $0 "vs2002" VS2002
- StrCmp $0 "vc60" VS60
- StrCmp $0 "icc" ICC
-
- MINGW:
- pop $0
- push "win32-g++"
- goto done
-
- VS2005:
- pop $0
- push "win32-msvc2005"
- goto done
-
- VS2003:
- pop $0
- push "win32-msvc.net"
- goto done
-
- VS2002:
- pop $0
- push "win32-msvc.net"
- goto done
-
- VS60:
- pop $0
- push "win32-msvc"
- goto done
-
- ICC:
- pop $0
- push "win32-icc"
- goto done
-
- done:
-FunctionEnd
-
-!define AD_COMPILER_NAME_VS2005 "Visual Studio .NET 2005"
-!define AD_COMPILER_NAME_VS2005_EXPRESS "Visual C++ 2005 Express Edition"
-!define AD_COMPILER_NAME_VS2003 "Visual Studio .NET 2003"
-!define AD_COMPILER_NAME_VS2002 "Visual Studio .NET 2002"
-!define AD_COMPILER_NAME_VC60 "Visual Studio 6.0"
-!define AD_COMPILER_NAME_ICC "Intel C++ Compiler"
-!define AD_COMPILER_NAME_MINGW "MinGW (Must be in PATH!)"
-
-Function GetShortCompilerName
- exch $0
-
- strcmp "$0" "${AD_COMPILER_NAME_VS2005}" 0 +3
- strcpy $0 "vs2005"
- goto done
-
- strcmp "$0" "${AD_COMPILER_NAME_VS2005_EXPRESS}" 0 +3
- strcpy $0 "vs2005"
- goto done
-
- strcmp "$0" "${AD_COMPILER_NAME_VS2003}" 0 +3
- strcpy $0 "vs2003"
- goto done
-
- strcmp "$0" "${AD_COMPILER_NAME_VS2002}" 0 +3
- strcpy $0 "vs2002"
- goto done
-
- strcmp "$0" "${AD_COMPILER_NAME_VC60}" 0 +3
- strcpy $0 "vc60"
- goto done
-
- strcmp "$0" "${AD_COMPILER_NAME_ICC}" 0 +3
- strcpy $0 "icc"
- goto done
-
- strcmp "$0" "${AD_COMPILER_NAME_MINGW}" 0 +3
- strcpy $0 "mingw"
- goto done
-
- strcpy $0 "" ;this is bad!
-
- done:
- exch $0
-FunctionEnd
-
-Function IsExpressVersion
- push $0
- ReadRegStr $0 HKLM "Software\Microsoft\VCExpress\8.0" "InstallDir"
- ClearErrors
- exch $0
-FunctionEnd
-
-Function AutoDetectCompilers
- push $0
- push $1
-
- strcpy $1 ""
-
- ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\8.0" "InstallDir"
- strcmp $0 "" +2
- strcpy $1 "$1${AD_COMPILER_NAME_VS2005}|"
-
- ReadRegStr $0 HKLM "Software\Microsoft\VCExpress\8.0" "InstallDir"
- strcmp $0 "" +2
- strcpy $1 "$1${AD_COMPILER_NAME_VS2005_EXPRESS}|"
-
- ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\7.1" "InstallDir"
- strcmp $0 "" +2
- strcpy $1 "$1${AD_COMPILER_NAME_VS2003}|"
-
- ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\7.0" "InstallDir"
- strcmp $0 "" +2
- strcpy $1 "$1${AD_COMPILER_NAME_VS2002}|"
-
- ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\6.0\Setup" "VsCommonDir"
- strcmp $0 "" +2
- strcpy $1 "$1${AD_COMPILER_NAME_VC60}|"
-
- ReadRegStr $0 HKLM "Software\Intel\Compilers\C++\80" "Major Version"
- strcmp $0 "" +2
- strcpy $1 "$1${AD_COMPILER_NAME_ICC}|"
-
- strcpy $1 "$1${AD_COMPILER_NAME_MINGW}"
-
- exch
- pop $0
- exch $1
-FunctionEnd
-
-Function GetVSVarsFile
- exch $1
- push $0
-
- StrCmp $1 "vs2005" VS2005
- StrCmp $1 "vs2003" VS2003
- StrCmp $1 "vs2002" VS2002
- StrCmp $1 "vc60" VS60
-
- push "" ;empty string if not found
- goto done
-
- VS2005:
- ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\8.0\Setup\VS" "ProductDir"
- StrCmp $0 "" +1 foundVSDir ; found msvc.net 2005
-
- ReadRegStr $0 HKLM "Software\Microsoft\VCExpress\8.0\Setup\VS" "ProductDir"
- StrCmp $0 "" +1 foundVSDir ; found msvc.net 2005 epress
-
- VS2003:
- ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\7.1\Setup\VS" "ProductDir"
- StrCmp $0 "" +1 foundVSDir ; found msvc.net 2003
-
- VS2002:
- ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\7.0\Setup\VS" "ProductDir"
- StrCmp $0 "" +1 foundVSDir ; found msvc.net 2002
-
- VS60:
- ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual C++" "ProductDir"
- StrCmp $0 "" +1 foundVCDir ; found msvc 6.0
-
- push "" ;empty string if not found
- goto done
-
- foundVSDir:
- push "$0\Common7\Tools\vsvars32.bat"
- goto done
-
- foundVCDir:
- push "$0\bin\vcvars32.bat"
-
- done:
- exch
- pop $0
- exch
- pop $1
-FunctionEnd
-
-!endif ;QTENV_INCLUDE
diff --git a/tools/installer/nsis/includes/system.nsh b/tools/installer/nsis/includes/system.nsh
deleted file mode 100644
index 3bc5be2..0000000
--- a/tools/installer/nsis/includes/system.nsh
+++ /dev/null
@@ -1,269 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-!ifndef SYSTEM_INCLUDE
-!define SYSTEM_INCLUDE
-
-!define QTVSIP2003_GUID "{789202F4-94F5-4f0a-AA00-73295FEBFD68}"
-!define QTVSIP2005_GUID "{789202F4-94F5-4f0a-AA00-73295FEBFD69}"
-
-!define QMSNET2002_GUID "{C174ACCD-D856-4B60-9887-0FF9E841E0EC}"
-!define QMSNET2003_GUID "{C174ACCE-D857-4B61-9888-0FF9E841E0ED}"
-!define QMSNET2005_GUID "{14E98DB4-A232-49a4-8EC1-8CE4F6985C73}"
-
-!macro GetVSInstallationDir UN
-; Usage:
-;
-; push "7.0"
-; call GetVSInstallationDir
-; pop $0
-;
-; If the requested VS version can be found, its
-; installation directory is returned.
-Function ${UN}GetVSInstallationDir
- Exch $0
- Push $1
- ReadRegStr $1 HKLM "Software\Microsoft\VisualStudio\$0" "InstallDir"
- StrCpy $0 $1
- StrCmp $0 "" 0 +2
- SetErrors
- Pop $1
- Exch $0
-FunctionEnd
-!macroend
-
-!insertmacro GetVSInstallationDir ""
-!insertmacro GetVSInstallationDir "un."
-
-
-!macro IsDotNETInstalled UN
-; Usage:
-;
-; push "8.0"
-; call IsDotNETInstalled
-; pop $0
-;
-; $0 contains the path where the .NET framework is installed.
-; If not installation can be found $0 is empty.
-Function ${UN}IsDotNETInstalled
- Exch $0
- Push $1
- Push $2
- Push $3
- Push $4
- Push $5
-
- StrCpy $5 $0
-
- ReadRegStr $4 HKEY_LOCAL_MACHINE "Software\Microsoft\.NETFramework" "InstallRoot"
- Push $4
- Exch $EXEDIR
- Exch $EXEDIR
- Pop $4
-
- IfFileExists $4 0 noDotNET
- StrCpy $0 0
-
- EnumStart:
- EnumRegKey $2 HKEY_LOCAL_MACHINE "Software\Microsoft\.NETFramework\Policy" $0
- IntOp $0 $0 + 1
- StrCmp $2 "" noDotNET
- StrCpy $1 0
-
- EnumPolicy:
- EnumRegValue $3 HKEY_LOCAL_MACHINE "Software\Microsoft\.NETFramework\Policy\$2" $1
- IntOp $1 $1 + 1
- StrCmp $3 "" EnumStart
-
- StrCmp $5 "8.0" 0 +2
- StrCmp $2 "v2.0" 0 EnumPolicy
-
- IfFileExists "$4\$2.$3" foundDotNET EnumPolicy
-
- noDotNET:
- StrCpy $0 0
- Goto done
-
- foundDotNET:
- StrCpy $0 "$4\$2.$3"
-
- done:
- Pop $5
- Pop $4
- Pop $3
- Pop $2
- Pop $1
- Exch $0
-FunctionEnd
-!macroend
-
-!insertmacro IsDotNETInstalled ""
-!insertmacro IsDotNETInstalled "un."
-
-!macro IsQMsNetInstalled UN
-; Usage:
-;
-; push "8.0"
-; call IsQMsNetInstalled
-; pop $0
-Function ${UN}IsQMsNetInstalled
- Exch $0
- Push $1
- Push $2
- Push $3
-
- StrCmp $0 "7.0" 0 +2
- StrCpy $2 "${QMSNET2002_GUID}"
- StrCmp $0 "7.1" 0 +2
- StrCpy $2 "${QMSNET2003_GUID}"
- StrCmp $0 "8.0" 0 +2
- StrCpy $2 "${QMSNET2005_GUID}"
-
- StrCpy $3 0
-
- ReadRegStr $1 HKLM "SOFTWARE\Microsoft\VisualStudio\$0\NewProjectTemplates\TemplateDirs\$2\/2" "TemplatesDir"
- StrCmp $1 "" +3
- StrCpy $3 1
- goto done
-
- ReadRegStr $1 HKCU "SOFTWARE\Microsoft\VisualStudio\$0\NewProjectTemplates\TemplateDirs\$2\/2" "TemplatesDir"
- StrCmp $1 "" +2
- StrCpy $3 1
-
-done:
- StrCpy $0 $3
-
- Pop $3
- Pop $2
- Pop $1
- Exch $0
-FunctionEnd
-!macroend
-
-!insertmacro IsQMsNetInstalled ""
-!insertmacro IsQMsNetInstalled "un."
-
-!macro IsQMsDevInstalled UN
-; Usage:
-;
-; call IsQMsDevInstalled
-; pop $0
-Function ${UN}IsQMsDevInstalled
- Push $0
- Push $1
- Push $2
-
- StrCpy $0 0
-
- ReadRegStr $1 HKLM "SOFTWARE\Microsoft\DevStudio\6.0\AddIns\q4msdev.Q4MsDev.1" "Filename"
- StrCmp $1 "" +3
- StrCpy $0 1
- goto done
-
- ReadRegStr $1 HKCU "SOFTWARE\Microsoft\DevStudio\6.0\AddIns\q4msdev.Q4MsDev.1" "Filename"
- StrCmp $1 "" +2
- StrCpy $0 1
-
-done:
- Pop $2
- Pop $1
- Exch $0
-FunctionEnd
-!macroend
-
-!insertmacro IsQMsDevInstalled ""
-!insertmacro IsQMsDevInstalled "un."
-
-!macro IsIntegrationInstalled UN
-; Usage:
-;
-; push "8.0"
-; call IsIntegrationInstalled
-; pop $0
-Function ${UN}IsIntegrationInstalled
- Exch $0
- Push $1
- Push $2
-
- StrCmp $0 "7.1" 0 +2
- StrCpy $2 "${QTVSIP2003_GUID}"
- StrCmp $0 "8.0" 0 +2
- StrCpy $2 "${QTVSIP2005_GUID}"
-
- ReadRegStr $1 HKLM "SOFTWARE\Microsoft\VisualStudio\$0\Packages\$2" "ProductName"
-
- StrCpy $0 0
- StrCmp $1 "" done
- StrCpy $0 1
-
-done:
- Pop $2
- Pop $1
- Exch $0
-FunctionEnd
-!macroend
-
-!insertmacro IsIntegrationInstalled ""
-!insertmacro IsIntegrationInstalled "un."
-
-!macro AdministratorRights UN
-Function ${UN}HasAdminRights
- push $0
- ClearErrors
- UserInfo::GetAccountType
- IfErrors Yes ;It's probably Win95
- pop $0
- StrCmp $0 "Admin" Yes
- StrCmp $0 "Power" Yes
-
- StrCpy $0 "false"
- goto Done
-
- Yes:
- StrCpy $0 "true"
-
- Done:
- exch $0
-FunctionEnd
-!macroend
-!insertmacro AdministratorRights ""
-!insertmacro AdministratorRights "un."
-
-!endif ;SYSTEM_INCLUDE
diff --git a/tools/installer/nsis/installer.nsi b/tools/installer/nsis/installer.nsi
deleted file mode 100644
index af7e9a8..0000000
--- a/tools/installer/nsis/installer.nsi
+++ /dev/null
@@ -1,524 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Script generated by the HM NIS Edit Script Wizard.
-
-!include "config.nsh"
-!include "includes\global.nsh"
-
-!define PRODUCT_PUBLISHER "Nokia Corporation and/or its subsidiary(-ies)"
-!define PRODUCT_WEB_SITE "http://qt.nokia.com"
-
-!define INSTALL_ICON "images\install.ico"
-!define WELCOME_PAGE_ICON "images\qt-wizard.bmp"
-!define PAGE_HEADER_ICON "images\qt-header.bmp"
-
-!include "MUI.nsh"
-
-; modules
-!include "modules\mingw.nsh"
-!include "modules\opensource.nsh"
-!include "includes\instdir.nsh"
-!include "modules\environment.nsh"
-!include "modules\registeruiext.nsh"
-!ifndef OPENSOURCE_BUILD
-!include "modules\msvc.nsh"
-!include "modules\addin7x.nsh"
-!include "modules\qsa.nsh"
-!include "modules\addin60.nsh"
-!include "modules\debugext.nsh"
-!include "modules\license.nsh"
-!include "modules\vsip.nsh"
-!include "modules\help.nsh"
-!include "modules\evaluation.nsh"
-!include "modules\eclipse.nsh"
-!include "modules\qtjambieclipse.nsh"
-!endif
-
-; MUI Settings
-!define MUI_ABORTWARNING
-!define MUI_ICON "${INSTALL_ICON}"
-!define MUI_UNICON "${INSTALL_ICON}"
-
-!define MUI_HEADERIMAGE
-!define MUI_HEADERIMAGE_BITMAP "${PAGE_HEADER_ICON}"
-!define MUI_HEADERIMAGE_UNBITMAP "${PAGE_HEADER_ICON}"
-
-!define MUI_WELCOMEFINISHPAGE_BITMAP "${WELCOME_PAGE_ICON}"
-!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${WELCOME_PAGE_ICON}"
-
-!ifdef WELCOME_NOTE
- !define MUI_WELCOMEPAGE_TEXT "${WELCOME_NOTE}"
-!endif
-!insertmacro MUI_PAGE_WELCOME
-!insertmacro OPENSOURCE_INITIALIZE
-!ifndef OPENSOURCE_BUILD
-!insertmacro EVALUATION_INITIALIZE
-!insertmacro LICENSECHECK_INITIALIZE
-!insertmacro MSVC_INITIALIZE
-!insertmacro ADDIN7X_INITIALIZE
-!insertmacro ADDIN60_INITIALIZE
-!insertmacro DEBUGEXT_INITIALIZE
-!insertmacro HELP_INITIALIZE
-!insertmacro VSIP_INITIALIZE
-!endif
-
-!ifdef USE_COMPONENT_PAGE
- !insertmacro MUI_PAGE_COMPONENTS
-!endif
-
-!ifdef USE_DIRECTORY_PAGE
- !insertmacro INSTDIR_INITIALIZE
-!endif
-
-!ifdef USE_STARTMENU_PAGE
- !define MUI_STARTMENUPAGE_NODISABLE
- !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${DEFAULT_STARTMENU_STRING}"
- !insertmacro MUI_PAGE_STARTMENU 1 $STARTMENU_STRING
-!endif
-
-!insertmacro MINGW_INITIALIZE
-!insertmacro ENVIRONMENT_INITIALIZE
-!insertmacro REGISTERUIEXT_INITIALIZE
-!ifndef OPENSOURCE_BUILD
-!insertmacro QSA_INITIALIZE
-!insertmacro ECLIPSE_INITIALIZE
-!insertmacro QTJAMBIECLIPSE_INITIALIZE
-!endif
-
-!define MUI_FINISHPAGE_NOAUTOCLOSE
-
-!insertmacro MUI_PAGE_INSTFILES
-!ifdef README_FILE
- !define MUI_FINISHPAGE_SHOWREADME ${README_FILE}
-!else
- !ifdef README_FUNCTION
- !define MUI_FINISHPAGE_SHOWREADME
- !define MUI_FINISHPAGE_SHOWREADME_TEXT "${README_FUNCTION}"
- !define MUI_FINISHPAGE_SHOWREADME_FUNCTION "CommonReadmeFunction"
- !endif
-!endif
-!ifdef RUN_FUNCTION
- !define MUI_FINISHPAGE_RUN
- !define MUI_FINISHPAGE_RUN_TEXT "${RUN_FUNCTION}"
- !define MUI_FINISHPAGE_RUN_FUNCTION "CommonRunFunction"
-!endif
-!insertmacro MUI_PAGE_FINISH
-
-!insertmacro MUI_UNPAGE_WELCOME
-!define UNINSTALLER_CONFIRM_PAGE "confirmpage.ini"
-UninstPage custom un.UninstallerConfirmPage
-!insertmacro MUI_UNPAGE_INSTFILES
-
-!insertmacro MUI_UNPAGE_FINISH
-
-!insertmacro MUI_LANGUAGE "English"
-
-Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
-OutFile ${OUTPUT_FILE}
-
-Section -PreCommonSection
-!ifdef INSTDIR_0 ;the default one, must exist
- strcpy $INSTDIR $${INSTDIR_0}_INSTDIR
- ${StrRep} $PRODUCT_UNIQUE_KEY "${PRODUCT_NAME} ${PRODUCT_VERSION} - $INSTDIR" "\" "_"
- strcpy $PRODUCT_UNIQUE_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\$PRODUCT_UNIQUE_KEY"
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_0}_INSTDIR" "$${INSTDIR_0}_INSTDIR"
-!endif
-!ifdef INSTDIR_1
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_1}_INSTDIR" "$${INSTDIR_1}_INSTDIR"
-!endif
-!ifdef INSTDIR_2
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_2}_INSTDIR" "$${INSTDIR_2}_INSTDIR"
-!endif
-!ifdef INSTDIR_3
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_3}_INSTDIR" "$${INSTDIR_3}_INSTDIR"
-!endif
-!ifdef INSTDIR_4
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_4}_INSTDIR" "$${INSTDIR_4}_INSTDIR"
-!endif
-!ifdef INSTDIR_5
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_5}_INSTDIR" "$${INSTDIR_5}_INSTDIR"
-!endif
-
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "StartMenu" "$STARTMENU_STRING"
- CreateDirectory "$SMPROGRAMS\$STARTMENU_STRING"
-SectionEnd
-
-!insertmacro OPENSOURCE_SECTIONS
-!insertmacro MINGW_SECTIONS
-!insertmacro ENVIRONMENT_SECTIONS
-!insertmacro REGISTERUIEXT_SECTIONS
-!ifndef OPENSOURCE_BUILD
-!insertmacro MSVC_SECTIONS
-!insertmacro ADDIN7X_SECTIONS
-!insertmacro ADDIN60_SECTIONS
-!insertmacro VSIP_SECTIONS
-!insertmacro HELP_SECTIONS
-!insertmacro DEBUGEXT_SECTIONS
-!insertmacro LICENSECHECK_SECTIONS
-!insertmacro QSA_SECTIONS
-!insertmacro EVALUATION_SECTIONS
-!insertmacro ECLIPSE_SECTIONS
-!insertmacro QTJAMBIECLIPSE_SECTIONS
-!endif
-
-!insertmacro INSTDIR_FUNCTIONS
-
-Section -CommonSection
- WriteUninstaller "$INSTDIR\uninst.exe"
-
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "DisplayName" "$(^Name)"
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "UninstallString" "$INSTDIR\uninst.exe"
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "DisplayVersion" "${PRODUCT_VERSION}"
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "Publisher" "${PRODUCT_PUBLISHER}"
-
- WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\qt.nokia.com.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Uninstall ${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk" "$INSTDIR\uninst.exe"
- SetOutPath "$INSTDIR"
-SectionEnd
-
-Function CheckLocalLicenseProduct
-!ifdef MODULE_LICENSECHECK
- !insertmacro QSA_CHECKLICENSEPRODUCT
-!endif
-FunctionEnd
-
-Function .onInit
- StrCpy $STARTMENU_STRING "${DEFAULT_STARTMENU_STRING}"
-
-!ifdef USE_UNINSTALL_PREVIOUS
- push "${PRODUCT_NAME}"
- call GetExistsPreviousInstallationOfProduct
- exch $0
- StrCmp $0 true 0 +3
- MessageBox MB_OK|MB_ICONSTOP "A previous installation of ${PRODUCT_NAME} was detected.$\nPlease uninstall it before running this installer."
- Abort
- pop $0
-!endif
-
- call SetAdminVar
- StrCmp "$RUNNING_AS_ADMIN" "false" 0 common_running_as_admin
-!ifdef USE_ADMIN_CHECK
- MessageBox MB_OK|MB_ICONSTOP "You need to have administrator rights to install this software!"
- Abort
-!endif
- SetShellVarContext current
- goto common_admin_check_done
- common_running_as_admin:
- SetShellVarContext all
- common_admin_check_done:
-
- !insertmacro INSTDIR_STARTUP
-
- !insertmacro OPENSOURCE_STARTUP
- !insertmacro ENVIRONMENT_STARTUP
- !insertmacro REGISTERUIEXT_STARTUP
- !insertmacro MINGW_STARTUP
-!ifndef OPENSOURCE_BUILD
- !insertmacro LICENSECHECK_STARTUP
- !insertmacro MSVC_STARTUP
- !insertmacro EVALUATION_STARTUP
- !insertmacro ADDIN7X_STARTUP
- !insertmacro ADDIN60_STARTUP
- !insertmacro DEBUGEXT_STARTUP
- !insertmacro VSIP_STARTUP
- !insertmacro HELP_STARTUP
- !insertmacro QSA_STARTUP
- !insertmacro ECLIPSE_STARTUP
- !insertmacro QTJAMBIECLIPSE_STARTUP
-!endif
-FunctionEnd
-
-Function .onInstSuccess
- !insertmacro ENVIRONMENT_FINISH
- !insertmacro REGISTERUIEXT_FINISH
- !insertmacro OPENSOURCE_FINISH
- !insertmacro MINGW_FINISH
-!ifndef OPENSOURCE_BUILD
- !insertmacro LICENSECHECK_FINISH
- !insertmacro MSVC_FINISH
- !insertmacro EVALUATION_FINISH
- !insertmacro ADDIN7X_FINISH
- !insertmacro ADDIN60_FINISH
- !insertmacro DEBUGEXT_FINISH
- !insertmacro VSIP_FINISH
- !insertmacro HELP_FINISH
- !insertmacro QSA_FINISH
- !insertmacro ECLIPSE_FINISH
- !insertmacro QTJAMBIECLIPSE_FINISH
-!endif
-FunctionEnd
-
-Function un.onUninstSuccess
- !insertmacro ENVIRONMENT_UNFINISH
- !insertmacro REGISTERUIEXT_UNFINISH
- !insertmacro OPENSOURCE_UNFINISH
- !insertmacro MINGW_UNFINISH
-!ifndef OPENSOURCE_BUILD
- !insertmacro LICENSECHECK_UNFINISH
- !insertmacro MSVC_UNFINISH
- !insertmacro EVALUATION_UNFINISH
- !insertmacro ADDIN7X_UNFINISH
- !insertmacro ADDIN60_UNFINISH
- !insertmacro DEBUGEXT_UNFINISH
- !insertmacro VSIP_UNFINISH
- !insertmacro HELP_UNFINISH
- !insertmacro QSA_UNFINISH
- !insertmacro ECLIPSE_UNFINISH
- !insertmacro QTJAMBIECLIPSE_UNFINISH
-!endif
-FunctionEnd
-
-Function un.onInit
- call un.SetAdminVar
- StrCmp "$RUNNING_AS_ADMIN" "false" 0 common_running_as_admin
-!ifdef USE_ADMIN_CHECK
- MessageBox MB_OK|MB_ICONSTOP "You do not have the required access rights to uninstall this package."
- Abort
-!endif
- SetShellVarContext current
- goto common_admin_check_done
- common_running_as_admin:
- SetShellVarContext all
- common_admin_check_done:
-
- ${UnStrRep} $PRODUCT_UNIQUE_KEY "${PRODUCT_NAME} ${PRODUCT_VERSION} - $INSTDIR" "\" "_"
- strcpy $PRODUCT_UNIQUE_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\$PRODUCT_UNIQUE_KEY"
-
- push $0
- ClearErrors
- ReadRegStr $0 SHCTX "$PRODUCT_UNIQUE_KEY" "DisplayName"
- IfErrors 0 +3
- MessageBox MB_OK|MB_ICONSTOP "The uninstaller was unable to find the product to uninstall."
- Abort
- pop $0
-
- ReadRegStr $STARTMENU_STRING SHCTX "$PRODUCT_UNIQUE_KEY" "StartMenu"
- StrCmp "$STARTMENU_STRING" "" 0 +2
- StrCpy $STARTMENU_STRING "${DEFAULT_STARTMENU_STRING}"
-
-!ifdef INSTDIR_0 ;the default one, must exist
- ReadRegStr $${INSTDIR_0}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_0}_INSTDIR"
-!endif
-!ifdef INSTDIR_1
- ReadRegStr $${INSTDIR_1}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_1}_INSTDIR"
-!endif
-!ifdef INSTDIR_2
- ReadRegStr $${INSTDIR_2}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_2}_INSTDIR"
-!endif
-!ifdef INSTDIR_3
- ReadRegStr $${INSTDIR_3}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_3}_INSTDIR"
-!endif
-!ifdef INSTDIR_4
- ReadRegStr $${INSTDIR_4}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_4}_INSTDIR"
-!endif
-!ifdef INSTDIR_5
- ReadRegStr $${INSTDIR_5}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_5}_INSTDIR"
-!endif
-
- !insertmacro ENVIRONMENT_UNSTARTUP
- !insertmacro REGISTERUIEXT_UNSTARTUP
- !insertmacro OPENSOURCE_UNSTARTUP
- !insertmacro MINGW_UNSTARTUP
-!ifndef OPENSOURCE_BUILD
- !insertmacro LICENSECHECK_UNSTARTUP
- !insertmacro MSVC_UNSTARTUP
- !insertmacro EVALUATION_UNSTARTUP
- !insertmacro ADDIN7X_UNSTARTUP
- !insertmacro ADDIN60_UNSTARTUP
- !insertmacro DEBUGEXT_UNSTARTUP
- !insertmacro VSIP_UNSTARTUP
- !insertmacro HELP_UNSTARTUP
- !insertmacro QSA_UNSTARTUP
- !insertmacro ECLIPSE_UNSTARTUP
- !insertmacro QTJAMBIECLIPSE_UNSTARTUP
-!endif
-
- !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${UNINSTALLER_CONFIRM_PAGE}"
-FunctionEnd
-
-!insertmacro OPENSOURCE_UNINSTALL
-!insertmacro ENVIRONMENT_UNINSTALL
-!insertmacro REGISTERUIEXT_UNINSTALL
-!insertmacro MINGW_UNINSTALL
-!ifndef OPENSOURCE_BUILD
-!insertmacro HELP_UNINSTALL
-!insertmacro DEBUGEXT_UNINSTALL
-!insertmacro MSVC_UNINSTALL
-!insertmacro EVALUATION_UNINSTALL
-!insertmacro QSA_UNINSTALL
-!insertmacro ECLIPSE_UNINSTALL
-!insertmacro QTJAMBIECLIPSE_UNINSTALL
-!endif
-
-Section Uninstall
- !ifndef OPENSOURCE_BUILD
- !insertmacro LICENSECHECK_UNINSTALL
- !insertmacro ADDIN7X_UNINSTALL
- !insertmacro ADDIN60_UNINSTALL
- !insertmacro VSIP_UNINSTALL
- !endif
-
- ; COMMON
- Delete "$INSTDIR\${PRODUCT_NAME}.url"
- Delete "$INSTDIR\uninst.exe"
- Delete "$SMPROGRAMS\$STARTMENU_STRING\Uninstall ${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk"
- Delete "$SMPROGRAMS\$STARTMENU_STRING\qt.nokia.com.lnk"
-
- RMDir "$SMPROGRAMS\$STARTMENU_STRING"
- RMDir "$INSTDIR"
-
- DeleteRegKey SHCTX "$PRODUCT_UNIQUE_KEY"
-SectionEnd
-
-Function CommonRunFunction
- !ifndef OPENSOURCE_BUILD
- !insertmacro MSVC_RUN_FUNCTION
- !insertmacro QSA_RUN_FUNCTION
- !endif
- !insertmacro MINGW_RUN_FUNCTION
- DoneRunFunction:
-FunctionEnd
-
-Function CommonReadmeFunction
- !ifndef OPENSOURCE_BUILD
- !insertmacro MSVC_README_FUNCTION
- !endif
- !insertmacro MINGW_README_FUNCTION
- DoneReadmeFunction:
-FunctionEnd
-
-Function un.UninstallerConfirmPage
- !insertmacro MUI_HEADER_TEXT "Confirm" "Confirm Uninstallation Directories"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${UNINSTALLER_CONFIRM_PAGE}" "Field 2" "Text" "$UninstallerConfirmProduct"
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${UNINSTALLER_CONFIRM_PAGE}"
-FunctionEnd
-
-;pops product name from stack and as result pushes TRUE or FALSE on stack
-Function GetExistsPreviousInstallationOfProduct
- exch $0
- push $1
- push $2
- push $3
-
- StrCpy $1 0
- loop:
- EnumRegKey $2 HKLM Software\Microsoft\Windows\CurrentVersion\Uninstall $1
- StrCmp $2 "" no_reg_key_found
- ${StrStr} $3 $2 $0
- StrCmp $3 $2 reg_key_found
- IntOp $1 $1 + 1
- goto loop
-
- reg_key_found:
- push true
- goto done
-
- no_reg_key_found:
- push false
-
- done:
- exch
- pop $3
- exch
- pop $2
- exch
- pop $1
- exch
- pop $0
-FunctionEnd
-
-;pops product name from stack
-Function WarnIfInstalledProductDetected
- exch $0
- push $0
- call GetExistsPreviousInstallationOfProduct
- exch $1
- StrCmp $1 true +1 +3
- MessageBox MB_YESNO|MB_ICONQUESTION "An existing installation of $0 was detected.$\nIt is recommended to deinstall $0 before continuing.$\nDo you want to continue this installation nevertheless?" IDYES +2 IDNO +1
- Abort
- pop $1
- pop $0
-FunctionEnd
-
-;sets $RUNNING_AS_ADMIN to "true" if Admin or Power user
-!macro SetAdminVar UN
-Function ${UN}SetAdminVar
- push $0
- ClearErrors
- UserInfo::GetAccountType
- IfErrors Admin ;It's probably Win95
- pop $0
- StrCmp $0 "Admin" Admin
- StrCmp $0 "Power" Admin
-
- StrCpy $RUNNING_AS_ADMIN "false"
- goto Done
-
- Admin:
- StrCpy $RUNNING_AS_ADMIN "true"
-
- Done:
- pop $0
-FunctionEnd
-!macroend
-!insertmacro SetAdminVar ""
-!insertmacro SetAdminVar "un."
-
-!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
- !insertmacro OPENSOURCE_DESCRIPTION
- !insertmacro ENVIRONMENT_DESCRIPTION
- !insertmacro REGISTERUIEXT_DESCRIPTION
- !insertmacro MINGW_DESCRIPTION
- !ifndef OPENSOURCE_BUILD
- !insertmacro MSVC_DESCRIPTION
- !insertmacro EVALUATION_DESCRIPTION
- !insertmacro ADDIN7X_DESCRIPTION
- !insertmacro ADDIN60_DESCRIPTION
- !insertmacro DEBUGEXT_DESCRIPTION
- !insertmacro HELP_DESCRIPTION
- !insertmacro VSIP_DESCRIPTION
- !insertmacro QSA_DESCRIPTION
- !insertmacro ECLIPSE_DESCRIPTION
- !insertmacro QTJAMBIECLIPSE_DESCRIPTION
- !endif
-!insertmacro MUI_FUNCTION_DESCRIPTION_END
diff --git a/tools/installer/nsis/modules/environment.nsh b/tools/installer/nsis/modules/environment.nsh
deleted file mode 100644
index fa610a7..0000000
--- a/tools/installer/nsis/modules/environment.nsh
+++ /dev/null
@@ -1,216 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-!ifdef MODULE_ENVIRONMENT
-!macro ENVIRONMENT_INITIALIZE
- !include "includes\writeEnvStr.nsh"
- !include "includes\writePathStr.nsh"
-
- !ifndef MODULE_ENVIRONMENT_QTDIR
- !ifdef MODULE_MINGW
- !define MODULE_ENVIRONMENT_QTDIR $MINGW_INSTDIR
- !endif
-
- !ifdef MODULE_MSVC
- !define MODULE_ENVIRONMENT_QTDIR $MSVC_INSTDIR
- !endif
- !endif
-
- !define MODULE_ENVIRONMENT_PAGE "envpage.ini"
- var MODULE_ENVIRONMENT_SET
- var MODULE_ENVIRONMENT_OLD
- LangString ModuleEnvironmentTitle ${LANG_ENGLISH} "Configure Environment"
- LangString ModuleEnvironmentDescription ${LANG_ENGLISH} "Configure Qt environment variables"
-
- Page custom ModuleEnvironmentPageEnter ModuleEnvironmentPageExit
-!macroend
-!macro ENVIRONMENT_SECTIONS
- Section -ModuleEnvironmentRegister
- push "${MODULE_ENVIRONMENT_QTDIR}"
- call RegisterQtEnvVariables
- SectionEnd
-
- Function ModuleEnvironmentPageEnter
- push $0
- Call IsNT
- pop $0
- strcmp "$0" "1" +2
- abort
- pop $0
-
- !insertmacro MUI_HEADER_TEXT "$(ModuleEnvironmentTitle)" "$(ModuleEnvironmentDescription)"
-
- strcmp $MODULE_ENVIRONMENT_SET "1" 0 envCheckNo
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${MODULE_ENVIRONMENT_PAGE}" "Field 2" "State" "1"
- goto showEnvPage
- envCheckNo:
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${MODULE_ENVIRONMENT_PAGE}" "Field 2" "State" "0"
-
- showEnvPage:
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${MODULE_ENVIRONMENT_PAGE}"
- FunctionEnd
-
- Function ModuleEnvironmentPageExit
- !insertmacro MUI_INSTALLOPTIONS_READ $MODULE_ENVIRONMENT_SET "${MODULE_ENVIRONMENT_PAGE}" "Field 2" "State"
- FunctionEnd
-
- Function RegisterQtEnvVariables
- exch $2 ; the installation path = QTDIR
- push $0 ; I think WriteEnvStr mixes up $0 and $1
- push $1
-
- WriteRegDWORD SHCTX "$PRODUCT_UNIQUE_KEY" "QtEnvSet" $MODULE_ENVIRONMENT_SET
-
- strcmp $MODULE_ENVIRONMENT_SET "1" 0 noenv
-
- StrCmp $MODULE_ENVIRONMENT_OLD "0" +4
- DetailPrint "Removing $MODULE_ENVIRONMENT_OLD\bin from PATH"
- push "$MODULE_ENVIRONMENT_OLD\bin"
- Call RemoveFromPath ; remove old qtdir
-
- DetailPrint "Setting QTDIR to $2"
- push "QTDIR"
- push $2
- Call WriteEnvStr ; set the QTDIR
-
- DetailPrint "Adding $2\bin to PATH"
- push "$2\bin"
- Call AddToPath ; set the PATH
-
-
- push "QMAKESPEC"
- push ${INSTALL_COMPILER}
- Call GetMkSpec
- pop $0
- DetailPrint "Setting QMAKESPEC to $0"
- push $0
- Call WriteEnvStr ; set the QMAKESPEC
-
- noenv:
- pop $1
- pop $0
- pop $2
- FunctionEnd
-
- Function un.RegisterQtEnvVariables
- exch $0 ; QTDIR
- push $1
-
- ClearErrors
- ReadRegDWORD $MODULE_ENVIRONMENT_SET SHCTX "$PRODUCT_UNIQUE_KEY" "QtEnvSet"
- intcmp $MODULE_ENVIRONMENT_SET 0 noenv
-
- DetailPrint "Removing $0\bin from the PATH"
- push "$0\bin"
- Call un.RemoveFromPath ; removes qt from the path
-
- ;Check if QTDIR is equal to installdir
- ExpandEnvStrings $1 "%QTDIR%"
-
- StrCmp "$0" "$1" removeenv
- StrCmp "$0\" "$1" removeenv
- StrCmp "$0" "$1\" removeenv
- Goto noenv
-
- removeenv:
- DetailPrint "Removing QTDIR"
- push "QTDIR"
- Call un.DeleteEnvStr ; removes QTDIR
-
- DetailPrint "Removing QMAKESPEC"
- push "QMAKESPEC"
- Call un.DeleteEnvStr ; removes QMAKESPEC
-
- noenv:
- pop $1
- pop $0
- FunctionEnd
-!macroend
-!macro ENVIRONMENT_DESCRIPTION
-!macroend
-!macro ENVIRONMENT_STARTUP
- !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${MODULE_ENVIRONMENT_PAGE}"
- push $0
- ExpandEnvStrings $0 "%QTDIR%"
-
- StrCmp $0 "%QTDIR%" +4
- strcpy $MODULE_ENVIRONMENT_SET "0" ;QTDIR exists
- strcpy $MODULE_ENVIRONMENT_OLD $0
- Goto +3
- strcpy $MODULE_ENVIRONMENT_SET "1" ;no QTDIR
- strcpy $MODULE_ENVIRONMENT_OLD "0"
-
- Call IsNT
- pop $0
- strcmp "$0" "1" +2
- strcpy $MODULE_ENVIRONMENT_SET "0"
- pop $0
-!macroend
-!macro ENVIRONMENT_FINISH
-!macroend
-!macro ENVIRONMENT_UNSTARTUP
-!macroend
-!macro ENVIRONMENT_UNINSTALL
- Section -un.ModuleEnvironmentRegister
- push "${MODULE_ENVIRONMENT_QTDIR}"
- call un.RegisterQtEnvVariables
- SectionEnd
-!macroend
-!macro ENVIRONMENT_UNFINISH
-!macroend
-!else ;MODULE_ENVIRONMENT
-!macro ENVIRONMENT_INITIALIZE
-!macroend
-!macro ENVIRONMENT_SECTIONS
-!macroend
-!macro ENVIRONMENT_DESCRIPTION
-!macroend
-!macro ENVIRONMENT_STARTUP
-!macroend
-!macro ENVIRONMENT_FINISH
-!macroend
-!macro ENVIRONMENT_UNSTARTUP
-!macroend
-!macro ENVIRONMENT_UNINSTALL
-!macroend
-!macro ENVIRONMENT_UNFINISH
-!macroend
-!endif ;MODULE_ENVIRONMENT
-
diff --git a/tools/installer/nsis/modules/mingw.nsh b/tools/installer/nsis/modules/mingw.nsh
deleted file mode 100644
index 8694790..0000000
--- a/tools/installer/nsis/modules/mingw.nsh
+++ /dev/null
@@ -1,670 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-!ifdef MODULE_MINGW
-!macro MINGW_INITIALIZE
-!include "includes\qtcommon.nsh"
-!ifndef MODULE_MINGW_NAME
- !define MODULE_MINGW_NAME "Qt"
-!endif
-!ifndef MODULE_MINGW_VERSION
- !define MODULE_MINGW_VERSION "${PRODUCT_VERSION}"
-!endif
-!ifndef MODULE_MINGW_BUILDDIR
- !error "MODULE_MINGW_BUILDDIR not defined!"
-!endif
-!ifndef MODULE_MINGW_ROOT
- !error "MODULE_MINGW_ROOT not defined!"
-!endif
-!ifndef MODULE_MINGW_URL
- !define MODULE_MINGW_URL "ftp://ftp.qt.nokia.com/misc"
-!endif
-!ifndef MODULE_MINGW_COMPILERVERSION
- !define MODULE_MINGW_COMPILERVERSION "3.4.2"
-!endif
-!ifndef MODULE_MINGW_LICENSE
- !define MODULE_MINGW_LICENSE "C:\MinGW\COPYING"
-!endif
-
-!define MODULE_MINGW_DOWNLOADPAGE "gwdownload.ini"
-!define MODULE_MINGW_MIRRORPAGE "gwmirror.ini"
-!define MODULE_MINGW_RUNTIME_LIB "mingw*.dll"
-!define MODULE_MINGW_DOWNLOADFILE "MinGW-${MODULE_MINGW_COMPILERVERSION}"
-
-var MODULE_MINGW_DOWNLOAD
-var MODULE_MINGW_SOURCEDOWNLOAD
-var MODULE_MINGW_MIRRORS
-var MODULE_MINGW_INSTOK
-var MODULE_MINGW_COMPILERINSTDIR
-
-LangString ModuleMinGWTitle ${LANG_ENGLISH} "MinGW Installation"
-LangString ModuleMinGWDescription ${LANG_ENGLISH} "You need MinGW to be able to compile Qt applications."
-LangString ModuleMinGWMirrorTitle ${LANG_ENGLISH} "MinGW Download Mirror"
-LangString ModuleMinGWMirrorDescription ${LANG_ENGLISH} "Select a download mirror."
-
-Page custom ModuleMinGWDownloadPageEnter ModuleMinGWDownloadPageExit
-!define MUI_PAGE_CUSTOMFUNCTION_PRE ModuleMinGWLicensePageEnter
-!define MUI_PAGE_HEADER_TEXT "MinGW License Agreement"
-!define MUI_PAGE_HEADER_SUBTEXT "Please review the license terms before installing MinGW."
-!define MUI_LICENSEPAGE_TEXT_TOP "MinGW License Information"
-!insertmacro MUI_PAGE_LICENSE "${MODULE_MINGW_LICENSE}"
-Page custom ModuleMinGWMirrorPageEnter ModuleMinGWMirrorPageExit
-
-!include "includes\qtenv.nsh"
-!macroend
-
-!macro MINGW_SECTIONS
-Section "${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION}" MINGW_SEC01
- strcmp "$MINGW_INSTDIR" "" 0 +5
- StrCpy $MINGW_INSTDIR "$INSTDIR\${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION}"
- push $MINGW_INSTDIR
- call MakeQtDirectory
- pop $MINGW_INSTDIR
-
- WriteRegDWORD SHCTX "$PRODUCT_UNIQUE_KEY" "MINGWInstalled" 1
-
- SetOutPath "$MINGW_INSTDIR"
- SetOverwrite ifnewer
- !insertmacro MODULE_MINGW_INSTALLFILES
-
- push "$MINGW_INSTDIR\bin"
- call AddStartmenuApplication
-
- push ${MODULE_MINGW_BUILDDIR}
- push "$MINGW_INSTDIR"
- call PatchPrlFiles
-
- IfFileExists "$MINGW_INSTDIR\.qmake.cache" 0 +5
- push "$MINGW_INSTDIR\.qmake.cache"
- push ${MODULE_MINGW_BUILDDIR}
- push $MINGW_INSTDIR
- call PatchPath
-
- IfFileExists "$MINGW_INSTDIR\mkspecs\default\qmake.conf" 0 +5
- push "$MINGW_INSTDIR\mkspecs\default\qmake.conf"
- push ${MODULE_MINGW_BUILDDIR}
- push $MINGW_INSTDIR
- call PatchPath
-
- push $MINGW_INSTDIR
- call PatchCommonBinaryFiles
-
- push $MINGW_INSTDIR
- call PatchLicenseInformation
-
- WriteRegStr SHCTX "SOFTWARE\Trolltech\Common\${MODULE_MINGW_VERSION}\$LICENSE_PRODUCT" "Key" "$LICENSE_KEY"
-
- push $MINGW_INSTDIR
- call ModuleMinGWMakeEnvFile
- CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION} Command Prompt.lnk" "%COMSPEC%" '/k "$MINGW_INSTDIR\bin\qtvars.bat"'
- CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION} (Build Debug Libraries).lnk" "%COMSPEC%" '/k "$MINGW_INSTDIR\bin\qtvars.bat compile_debug"'
-
- push $0
- strcmp $MODULE_MINGW_DOWNLOAD "no" DoneMinGWInstall
- DetailPrint "Installing MinGW into $MODULE_MINGW_COMPILERINSTDIR"
- WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "MinGWInstDir" "$MODULE_MINGW_COMPILERINSTDIR"
- nsExec::ExecToLog '"$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.exe" /S /D=$MODULE_MINGW_COMPILERINSTDIR'
- pop $0
- strcmp $MODULE_MINGW_SOURCEDOWNLOAD "no" DoneMinGWInstall
- DetailPrint "Installing MinGW sources into $MODULE_MINGW_COMPILERINSTDIR\src"
- WriteRegDWORD SHCTX "$PRODUCT_UNIQUE_KEY" "MinGWSources" 1
- nsExec::ExecToLog '"$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}-src.exe" /S /D=$MODULE_MINGW_COMPILERINSTDIR\src'
- pop $0
- DoneMinGWInstall:
- pop $0
-
- DetailPrint "Copying MinGW runtime..."
- SetDetailsPrint none
- CopyFiles /SILENT "$MODULE_MINGW_COMPILERINSTDIR\bin\${MODULE_MINGW_RUNTIME_LIB}" "$MINGW_INSTDIR\bin"
- SetDetailsPrint both
-SectionEnd
-
-Function EnableButtons
- Push $0
- GetDlgItem $0 $HWNDPARENT 3
- EnableWindow $0 1
- GetDlgItem $0 $HWNDPARENT 1
- EnableWindow $0 1
- GetDlgItem $0 $HWNDPARENT 2
- EnableWindow $0 1
- Pop $0
-FunctionEnd
-
-Function DisableButtons
- Push $0
- GetDlgItem $0 $HWNDPARENT 3
- EnableWindow $0 0
- GetDlgItem $0 $HWNDPARENT 1
- EnableWindow $0 0
- GetDlgItem $0 $HWNDPARENT 2
- EnableWindow $0 0
- Pop $0
-FunctionEnd
-
-Function ModuleMinGWDownloadPageEnter
- strcmp $MODULE_MINGW_INSTOK "yes" 0 +2
- Abort
-
- !insertmacro MUI_HEADER_TEXT "$(ModuleMinGWTitle)" "$(ModuleMinGWTitleDescription)"
- Call UpdateCtrlStates
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${MODULE_MINGW_DOWNLOADPAGE}"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${MODULE_MINGW_DOWNLOADPAGE}" "Field 8" "State" "0"
-FunctionEnd
-
-Function ModuleMinGWMirrorPageEnter
- strcmp $MODULE_MINGW_DOWNLOAD "yes" +2
- Abort
-
- !insertmacro MUI_HEADER_TEXT "$(ModuleMinGWMirrorTitle)" "$(ModuleMinGWMirrorDescription)"
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${MODULE_MINGW_MIRRORPAGE}"
-FunctionEnd
-
-Function ModuleMinGWLicensePageEnter
- strcmp $MODULE_MINGW_DOWNLOAD "yes" +2
- Abort
-FunctionEnd
-
-Function UpdateCtrlStates
- push $0
- push $1
- push $2
-
- !insertmacro MUI_INSTALLOPTIONS_READ $0 "${MODULE_MINGW_DOWNLOADPAGE}" "Field 8" "State"
- intop $0 $0 !
- FindWindow $2 "#32770" "" $HWNDPARENT
- GetDlgItem $1 $2 1205
- EnableWindow $1 $0
- GetDlgItem $1 $2 1202
- EnableWindow $1 $0
- GetDlgItem $1 $2 1203
- EnableWindow $1 $0
-
- intop $0 $0 !
- GetDlgItem $1 $2 1206
- EnableWindow $1 $0
- GetDlgItem $1 $2 1207
- EnableWindow $1 $0
- GetDlgItem $1 $2 1208
- EnableWindow $1 $0
-
- GetDlgItem $1 $HWNDPARENT 1
- IntCmp $0 0 +3
- SendMessage $1 ${WM_SETTEXT} 0 "STR:Next >"
- Goto +2
- SendMessage $1 ${WM_SETTEXT} 0 "STR:Install"
-
- pop $2
- pop $1
- pop $0
-FunctionEnd
-
-Function ModuleMinGWDownloadPageExit
- push $0
- push $1
-
- !insertmacro MUI_INSTALLOPTIONS_READ $0 "${MODULE_MINGW_DOWNLOADPAGE}" "Settings" "State"
- strcmp "$0" "8" 0 NoNotify
- Call UpdateCtrlStates
- abort
- NoNotify:
-
- !insertmacro MUI_INSTALLOPTIONS_READ $0 "${MODULE_MINGW_DOWNLOADPAGE}" "Field 8" "State"
- strcmp "$0" "0" noDownload doDownload
-
-doDownload:
- !insertmacro MUI_INSTALLOPTIONS_READ $0 "${MODULE_MINGW_DOWNLOADPAGE}" "Field 6" "State"
- strcmp $0 "" 0 +3
- MessageBox MB_ICONEXCLAMATION|MB_OK "You need to specify an installation directory!"
- goto tryAgain
-
- strcpy $MODULE_MINGW_COMPILERINSTDIR $0
- strcpy $MODULE_MINGW_DOWNLOAD "yes"
- CreateDirectory "$MINGW_INSTDIR\downloads"
-
- Call DisableButtons
- InetLoad::load /BANNER "Mirror Download" "Downloading mirrors from server..." "${MODULE_MINGW_URL}/${MODULE_MINGW_DOWNLOADFILE}.mirrors" "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.mirrors" /END
- Pop $1 ;Get the return value
- Call EnableButtons
-
- StrCmp $1 "OK" +3
- MessageBox MB_ICONEXCLAMATION|MB_RETRYCANCEL "Was not able to download mirror list ($1)." IDRETRY tryAgain 0
- Quit
-
- call ModuleMinGWReadMirrors
- !insertmacro MUI_INSTALLOPTIONS_WRITE ${MODULE_MINGW_MIRRORPAGE} "Field 3" "ListItems" "$MODULE_MINGW_MIRRORS"
- goto done
-
-noDownload:
- strcpy $MODULE_MINGW_DOWNLOAD "no"
- strcpy $MODULE_MINGW_SOURCEDOWNLOAD "no"
- call ModuleMinGWChecking
- strcmp $MODULE_MINGW_INSTOK "yes" done
- MessageBox MB_ICONEXCLAMATION|MB_YESNO "There is a problem with your MinGW installation:$\r$\n$MODULE_MINGW_INSTOK$\r$\nDo you still want to continue? (Your installation may not work)" IDNO tryAgain
- goto done
-
-tryAgain:
- pop $1
- pop $0
- Abort
-
-done:
- pop $1
- pop $0
-FunctionEnd
-
-Function ModuleMinGWMirrorPageExit
- push $0
- push $2
- push $1
-
- !insertmacro MUI_INSTALLOPTIONS_READ $0 "${MODULE_MINGW_MIRRORPAGE}" "Field 3" "State"
- strcmp "$0" "" 0 +3
- MessageBox MB_ICONEXCLAMATION|MB_OK "You must select a mirror to download from!"
- goto tryAgain
-
- push $0
- call ModuleMinGWGetMirror
- pop $0
-
- Call DisableButtons
- InetLoad::load /BANNER "MinGW Download" "Downloading MinGW from server..." "$0/${MODULE_MINGW_DOWNLOADFILE}.exe" "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.exe" /END
- Pop $2 ;get the return value
- Call EnableButtons
-
- StrCmp $2 "OK" +3
- MessageBox MB_ICONEXCLAMATION|MB_OK "Was not able to download MinGW ($2). Please try another mirror."
- Goto tryAgain
-
- !insertmacro MUI_INSTALLOPTIONS_READ $1 "${MODULE_MINGW_MIRRORPAGE}" "Field 2" "State"
- strcmp "$1" "0" done
-
- Call DisableButtons
- InetLoad::load /BANNER "MinGW Sources Download" "Downloading MinGW Sources from server..." "$0/${MODULE_MINGW_DOWNLOADFILE}-src.exe" "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}-src.exe" /END
- Pop $2
- Call EnableButtons
-
- strcpy $MODULE_MINGW_SOURCEDOWNLOAD "yes"
-
- StrCmp $2 "OK" +3
- MessageBox MB_ICONEXCLAMATION|MB_RETRYCANCEL "Was not able to download MinGW sources ($2). Please try another mirror?" IDRETRY tryAgain 0
- Quit
-
- goto done
-
-tryAgain:
- pop $1
- pop $2
- pop $0
- Abort
-
-done:
- pop $1
- pop $2
- pop $0
-FunctionEnd
-
-Function ModuleMinGWReadMirrors
- push $0 ;file handle
- push $1 ;line
-
- ClearErrors
- FileOpen $0 "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.mirrors" r
- IfErrors done
-
- strcpy $MODULE_MINGW_MIRRORS ""
-
-nextline:
- FileRead $0 $1
- IfErrors done
- push $1
- call ModuleMinGWRemoveNewLine
- pop $1
- strcpy $MODULE_MINGW_MIRRORS "$MODULE_MINGW_MIRRORS|$1"
- FileRead $0 $1 ;Jump over next line
- IfErrors done
- goto nextline
-
-done:
- FileClose $0
- strlen $1 $MODULE_MINGW_MIRRORS
- intcmp $1 0 failed failed cleanup
-
-failed:
- MessageBox MB_ICONSTOP|MB_OK "Unable to parse mirror list, exiting!"
- Quit
-
-cleanup:
- pop $1
- pop $0
-FunctionEnd
-
-#this just removes the last two chars
-Function ModuleMinGWRemoveNewLine
-exch $0
-push $1
-push $2
-
-strlen $1 $0
-intop $1 $1 - 1
-strcpy $2 $0 1 $1 ;get last char
-
-strcmp "$2" "$\n" 0 +2
-intop $1 $1 - 1
-
-strcpy $2 $0 1 $1 ;get last char
-strcmp "$2" "$\r" 0 +2
-intop $1 $1 - 1
-
-intop $1 $1 + 1
-strcpy $0 $0 $1
-
-pop $2
-pop $1
-exch $0
-FunctionEnd
-
-#push serverid
-#call GetMirror
-#pop server
-Function ModuleMinGWGetMirror
- exch $1 ;id
- push $0 ;file handle
- push $2 ;line
- push $3 ;tmp
-
- strcpy $3 ""
-
- ClearErrors
- FileOpen $0 "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.mirrors" r
- IfErrors done
-
-nextline:
- FileRead $0 $2
- IfErrors done
- push $2
- call ModuleMinGWRemoveNewLine
- pop $2
- strcmp $1 $2 0 nextline
- FileRead $0 $3
- IfErrors done
- push $3
- call ModuleMinGWRemoveNewLine
- pop $3
-
-done:
- strcpy $1 $3
- FileClose $0
- strlen $2 $1
- intcmp $2 0 failed failed cleanup
-
-failed:
- MessageBox MB_ICONSTOP|MB_OK "Unable to parse mirror list, exiting!"
- Quit
-
-cleanup:
- pop $3
- pop $2
- pop $0
- exch $1
-FunctionEnd
-
-Function ModuleMinGWChecking
- push $0
-
- ### update with plugin
- strcpy $MODULE_MINGW_INSTOK "yes"
- strcpy $MODULE_MINGW_COMPILERINSTDIR "C:\MinGW" ;fallback dir
-
- !insertmacro MUI_INSTALLOPTIONS_READ $0 "${MODULE_MINGW_DOWNLOADPAGE}" "Field 3" "State"
- strcmp "$0" "" +2
- strcpy $MODULE_MINGW_COMPILERINSTDIR $0
-
- IfFileExists "$MODULE_MINGW_COMPILERINSTDIR\bin\g++.exe" +3 0
- strcpy $MODULE_MINGW_INSTOK "g++ not found in $MODULE_MINGW_COMPILERINSTDIR\bin\"
- goto DoneChecking
-
-!ifndef OPENSOURCE_BUILD
- ; check w32api.h
- push $MODULE_MINGW_COMPILERINSTDIR
- qtnsisext::HasValidWin32Library
- pop $0
- strcmp "$0" "1" +3 0
- strcpy $MODULE_MINGW_INSTOK "The installer could not find a valid $MODULE_MINGW_COMPILERINSTDIR\include\w32api.h$\r$\n(The supported version is 3.2)"
- goto DoneChecking
-
- ; check version
- push $MODULE_MINGW_COMPILERINSTDIR
- qtnsisext::GetMinGWVersion
- pop $0
- strcmp "$0" "${MODULE_MINGW_COMPILERVERSION}" +3 0
- strcpy $MODULE_MINGW_INSTOK "g++ version found does not match ${MODULE_MINGW_COMPILERVERSION} (Found version $0)."
- goto DoneChecking
-!endif
-
-DoneChecking:
- pop $0
-FunctionEnd
-
-#
-# creates a qtvars.bat file in $QTDIR\bin
-# push "c:\qt" #QTDIR
-# call MakeQtVarsFile
-#
-Function ModuleMinGWMakeEnvFile
- push $0 ; file handle
-
- ClearErrors
- FileOpen $0 "$MINGW_INSTDIR\bin\qtvars.bat" w
- IfErrors WriteMakeFile
- FileWrite $0 "@echo off$\r$\n"
- FileWrite $0 "rem$\r$\n"
- FileWrite $0 "rem This file is generated$\r$\n"
- FileWrite $0 "rem$\r$\n"
- FileWrite $0 "$\r$\n"
- FileWrite $0 "echo Setting up a MinGW/Qt only environment...$\r$\n"
- FileWrite $0 "echo -- QTDIR set to $MINGW_INSTDIR$\r$\n"
- FileWrite $0 "echo -- PATH set to $MINGW_INSTDIR\bin$\r$\n"
- FileWrite $0 "echo -- Adding $MODULE_MINGW_COMPILERINSTDIR\bin to PATH$\r$\n"
- FileWrite $0 "echo -- Adding %SystemRoot%\System32 to PATH$\r$\n"
- FileWrite $0 "echo -- QMAKESPEC set to win32-g++$\r$\n"
- FileWrite $0 "$\r$\n"
- FileWrite $0 "set QTDIR=$MINGW_INSTDIR$\r$\n"
- FileWrite $0 "set PATH=$MINGW_INSTDIR\bin$\r$\n"
- FileWrite $0 "set PATH=%PATH%;$MODULE_MINGW_COMPILERINSTDIR\bin$\r$\n"
- FileWrite $0 "set PATH=%PATH%;%SystemRoot%\System32$\r$\n"
- FileWrite $0 "set QMAKESPEC=win32-g++$\r$\n"
- FileWrite $0 "$\r$\n"
-
- FileWrite $0 'if not "%1"=="compile_debug" goto END$\r$\n'
- FileWrite $0 "cd %QTDIR%$\r$\n"
- FileWrite $0 "echo This will configure and compile qt in debug.$\r$\n"
- FileWrite $0 "echo The release libraries will not be recompiled.$\r$\n"
- FileWrite $0 "pause$\r$\n"
- FileWrite $0 "configure -plugin-sql-sqlite -plugin-sql-odbc -qt-libpng -qt-libjpeg$\r$\n"
- FileWrite $0 "cd %QTDIR%\src$\r$\n"
- FileWrite $0 "qmake$\r$\n"
- FileWrite $0 "mingw32-make debug$\r$\n"
- FileWrite $0 ":END$\r$\n"
- FileClose $0
-
-WriteMakeFile:
- ClearErrors
- FileOpen $0 "$MINGW_INSTDIR\bin\make.bat" w
- IfErrors done
- FileWrite $0 "@echo off$\r$\n"
- FileWrite $0 "mingw32-make %*$\r$\n"
- FileClose $0
-
-done:
-; pop $1
- pop $0
-FunctionEnd
-
-Function MINGW_ValidateDirectoryFunc
- push "${MODULE_MINGW_BUILDDIR}"
- push $MINGW_INSTDIR
- call CommonCheckDirectory
-FunctionEnd
-!macroend
-
-!macro MINGW_DESCRIPTION
- !insertmacro MUI_DESCRIPTION_TEXT ${MINGW_SEC01} "This installs ${MODULE_MINGW_NAME} version ${MODULE_MINGW_VERSION} on your system."
-!macroend
-
-!macro MINGW_STARTUP
- !ifndef MODULE_MINGW_NODEFAULT
- SectionSetFlags ${MINGW_SEC01} 17
- !endif
- strcpy $MINGW_INSTDIR "C:\Qt\${MODULE_MINGW_VERSION}"
- push $MINGW_INSTDIR
- call MakeQtDirectory
- pop $MINGW_INSTDIR
-
- !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${MODULE_MINGW_DOWNLOADPAGE}"
- !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${MODULE_MINGW_MIRRORPAGE}"
-
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${MODULE_MINGW_DOWNLOADPAGE}" "Field 3" "State" "C:\MinGW"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "${MODULE_MINGW_DOWNLOADPAGE}" "Field 6" "State" "C:\MinGW"
-
- strcpy $MODULE_MINGW_DOWNLOAD "no"
- strcpy $MODULE_MINGW_SOURCEDOWNLOAD "no"
-!macroend
-
-!macro MINGW_FINISH
-!macroend
-
-!macro MINGW_RUN_FUNCTION
- ReadRegDWORD $0 SHCTX "$PRODUCT_UNIQUE_KEY" "MINGWInstalled"
- intcmp $0 1 0 DoneRunFunctionMINGW
-
- IfFileExists "$MINGW_INSTDIR\bin\qtdemo.exe" 0 +2
- Exec '$MINGW_INSTDIR\bin\qtdemo.exe'
- goto DoneRunFunction ;don't run more applications
-
- DoneRunFunctionMINGW:
-!macroend
-
-!macro MINGW_README_FUNCTION
- ReadRegDWORD $0 SHCTX "$PRODUCT_UNIQUE_KEY" "MINGWInstalled"
- intcmp $0 1 0 DoneReadmeFunctionMINGW
-
- IfFileExists "$MINGW_INSTDIR\bin\assistant.exe" 0 +2
- Exec '$MINGW_INSTDIR\bin\assistant.exe'
- goto DoneReadmeFunction ;don't run more applications
-
- DoneReadmeFunctionMINGW:
-!macroend
-
-!macro MINGW_UNSTARTUP
- strcmp "$MINGW_INSTDIR" "" 0 +5
- StrCpy $MINGW_INSTDIR "$INSTDIR\${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION}"
- push $MINGW_INSTDIR
- call un.MakeQtDirectory
- pop $MINGW_INSTDIR
-
- !insertmacro ConfirmOnRemove "MINGWInstalled" "- ${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION} in $MINGW_INSTDIR"
-!macroend
-
-!macro MINGW_UNINSTALL
-Section un.ModuleMinGW
- push $0
- push $1
-
- ReadRegDWORD $0 SHCTX "$PRODUCT_UNIQUE_KEY" "MINGWInstalled"
- intcmp $0 1 0 DoneUnInstallMINGW
-
- Delete "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.mirrors"
-
- ReadRegDWORD $0 SHCTX "$PRODUCT_UNIQUE_KEY" "MinGWSources"
- strcmp $0 "" MinGWSourcesUninstallDone ;not installed
- Delete "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}-src.exe"
- nsExec::ExecToLog '"$0\src\uninst.exe"'
- pop $1
- MinGWSourcesUninstallDone:
-
- ReadRegStr $0 SHCTX "$PRODUCT_UNIQUE_KEY" "MinGWInstDir"
- strcmp $0 "" MinGWUninstallDone ;not installed
- Delete "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.exe"
- nsExec::ExecToLog '"$0\uninst.exe"'
- pop $1
- MinGWUninstallDone:
-
- DetailPrint "Removing start menu shortcuts"
- call un.RemoveStartmenuApplication
- Delete "$SMPROGRAMS\$STARTMENU_STRING\${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION} Command Prompt.lnk"
- Delete "$SMPROGRAMS\$STARTMENU_STRING\${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION} (Build Debug Libraries).lnk"
-
- Delete "$MINGW_INSTDIR\bin\${MODULE_MINGW_RUNTIME_LIB}"
- Delete "$MINGW_INSTDIR\bin\make.bat"
- Delete "$MINGW_INSTDIR\bin\qtvars.bat"
-
- !insertmacro MODULE_MINGW_REMOVE "$MINGW_INSTDIR"
- RMDir $MINGW_INSTDIR ;removes it if empty
-
- DoneUnInstallMINGW:
- pop $1
- pop $0
-SectionEnd
-!macroend
-!macro MINGW_UNFINISH
-!macroend
-!else ;MODULE_MINGW
-!macro MINGW_INITIALIZE
-!macroend
-!macro MINGW_SECTIONS
-!macroend
-!macro MINGW_DESCRIPTION
-!macroend
-!macro MINGW_STARTUP
-!macroend
-!macro MINGW_FINISH
-!macroend
-!macro MINGW_RUN_FUNCTION
-!macroend
-!macro MINGW_README_FUNCTION
-!macroend
-!macro MINGW_UNSTARTUP
-!macroend
-!macro MINGW_UNINSTALL
-!macroend
-!macro MINGW_UNFINISH
-!macroend
-!endif ;MODULE_MINGW
-
diff --git a/tools/installer/nsis/modules/opensource.nsh b/tools/installer/nsis/modules/opensource.nsh
deleted file mode 100644
index fbd6ef7..0000000
--- a/tools/installer/nsis/modules/opensource.nsh
+++ /dev/null
@@ -1,94 +0,0 @@
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-!ifdef MODULE_OPENSOURCE
-!macro OPENSOURCE_INITIALIZE
- !define MODULE_OPENSOURCE_PAGE "opensource.ini"
- page custom ModuleOpenSourceShowPage
-!macroend
-!macro OPENSOURCE_SECTIONS
- Section -ModuleOpenSourceSection
- !ifdef MODULE_OPENSOURCE_ROOT
- SetOutPath "$INSTDIR"
- File "${MODULE_OPENSOURCE_ROOT}\OPENSOURCE-NOTICE.TXT"
- !endif
- SectionEnd
-
- Function ModuleOpenSourceShowPage
- !insertmacro MUI_HEADER_TEXT "Open Source Edition" " "
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${MODULE_OPENSOURCE_PAGE}"
- strcpy "$LICENSEE" "Open Source"
- strcpy "$LICENSE_PRODUCT" "OpenSource"
- FunctionEnd
-!macroend
-!macro OPENSOURCE_DESCRIPTION
-!macroend
-!macro OPENSOURCE_STARTUP
- !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${MODULE_OPENSOURCE_PAGE}"
-!macroend
-!macro OPENSOURCE_FINISH
-!macroend
-!macro OPENSOURCE_UNSTARTUP
-!macroend
-!macro OPENSOURCE_UNINSTALL
- Section -un.ModuleOpenSourceSection
- Delete "$SMPROGRAMS\$STARTMENU_STRING\OpenSource Notice.lnk"
- SectionEnd
-!macroend
-!macro OPENSOURCE_UNFINISH
-!macroend
-!else ;MODULE_OPENSOURCE
-!macro OPENSOURCE_INITIALIZE
-!macroend
-!macro OPENSOURCE_SECTIONS
-!macroend
-!macro OPENSOURCE_DESCRIPTION
-!macroend
-!macro OPENSOURCE_STARTUP
-!macroend
-!macro OPENSOURCE_FINISH
-!macroend
-!macro OPENSOURCE_UNSTARTUP
-!macroend
-!macro OPENSOURCE_UNINSTALL
-!macroend
-!macro OPENSOURCE_UNFINISH
-!macroend
-!endif ;MODULE_OPENSOURCE
-
diff --git a/tools/installer/nsis/modules/registeruiext.nsh b/tools/installer/nsis/modules/registeruiext.nsh
deleted file mode 100644
index f895bde..0000000
--- a/tools/installer/nsis/modules/registeruiext.nsh
+++ /dev/null
@@ -1,207 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; UI Extension Module
-
-!ifdef MODULE_REGISTERUIEXT
-
-;------------------------------------------------------------------------------------------------
-!macro REGISTERUIEXT_INITIALIZE
- !include "includes\system.nsh"
-
- !ifndef MODULE_REGISTERUIEXT_QTDIR
- !ifdef MODULE_MINGW
- !define MODULE_REGISTERUIEXT_QTDIR $MINGW_INSTDIR
- !endif
-
- !ifdef MODULE_MSVC
- !define MODULE_REGISTERUIEXT_QTDIR $MSVC_INSTDIR
- !endif
- !endif
-
- !define MODULE_REGISTERUIEXT_INTERNAL_DESC "Trolltech.DesignerForm"
- !define MODULE_REGISTERUIEXT_DESC_DESIGNER "Open with Qt Designer"
- !define MODULE_REGISTERUIEXT_DESC_DEVENV "Open with Visual Studio .NET"
- !define MODULE_REGISTERUIEXT_FILE_DESC "Qt Designer File"
-!macroend
-
-;------------------------------------------------------------------------------------------------
-
-!macro REGISTERUIEXT_SECTIONS
-
-Function GetSelectedVSIP
- Push $0
- Push $1
-
- StrCpy $0 ""
-!ifdef MODULE_VSIP
-!ifdef VSIP_SEC01
- SectionGetFlags ${VSIP_SEC01} $1
- IntOp $1 $1 & 1
- IntCmp $1 0 +2
- StrCpy $0 "7.1"
-!endif
-!ifdef VSIP_SEC02
- SectionGetFlags ${VSIP_SEC02} $1
- IntOp $1 $1 & 1
- IntCmp $1 0 +2
- StrCpy $0 "8.0"
-!endif
-!endif
-
- Pop $1
- Exch $0
-FunctionEnd
-
-SectionGroup "File Associations"
-Section "UI Files (*.ui)" REGISTERUIEXT_SEC01
- call ModuleRegisterUI
-SectionEnd
-SectionGroupEnd
-
-Function ModuleRegisterUI
- push $0
- push $1
-
- WriteRegDWORD SHCTX "$PRODUCT_UNIQUE_KEY" "UIExtRegistered" 1
- WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}" "" "${MODULE_REGISTERUIEXT_FILE_DESC}"
- WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\shell" "" "open"
-
- Call GetSelectedVSIP
- Pop $1
-
- StrCmp "$1" "" 0 RegisterVSIP
- WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\shell\open" "" "${MODULE_REGISTERUIEXT_DESC_DESIGNER}"
- WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\shell\open\command" "" "${MODULE_REGISTERUIEXT_QTDIR}\bin\designer.exe $\"%1$\""
- WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\DefaultIcon" "" "${MODULE_REGISTERUIEXT_QTDIR}\bin\designer.exe,0"
- goto RegisterFinished
-
- RegisterVSIP:
- Push $1
- Call GetVSInstallationDir
- Pop $0
-
- WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\shell\open" "" "${MODULE_REGISTERUIEXT_DESC_DEVENV}"
- WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\shell\${MODULE_REGISTERUIEXT_DESC_DEVENV}\command" "" "$0\devenv.exe $\"%1$\""
- WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\DefaultIcon" "" "$VSIP_INSTDIR\ui.ico"
- RegisterFinished:
- WriteRegStr HKCR ".ui" "" "${MODULE_REGISTERUIEXT_INTERNAL_DESC}"
-
- pop $1
- pop $0
-FunctionEnd
-
-!macroend
-
-;------------------------------------------------------------------------------------------------
-
-!macro REGISTERUIEXT_DESCRIPTION
- !insertmacro MUI_DESCRIPTION_TEXT ${REGISTERUIEXT_SEC01} "This will associate the file extention .ui with the Qt GUI editor."
-!macroend
-
-;------------------------------------------------------------------------------------------------
-
-!macro REGISTERUIEXT_STARTUP
- StrCmp $RUNNING_AS_ADMIN "true" +2
- SectionSetFlags ${REGISTERUIEXT_SEC01} 16
-!macroend
-
-;------------------------------------------------------------------------------------------------
-
-!macro REGISTERUIEXT_FINISH
-!macroend
-
-;------------------------------------------------------------------------------------------------
-
-!macro REGISTERUIEXT_UNSTARTUP
-!macroend
-
-;------------------------------------------------------------------------------------------------
-
-!macro REGISTERUIEXT_UNINSTALL
-Function un.ModuleRegisterUI
- push $1
- ReadRegStr $1 HKCR ".ui" ""
- strcmp $1 "${MODULE_REGISTERUIEXT_INTERNAL_DESC}" 0 continue
- ; do not delete this key since a subkey openwithlist
- ; or open withprogid may exist
- WriteRegStr HKCR ".ui" "" ""
- continue:
- ; just delete it since nobody else is supposed to use it
- DeleteRegKey HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}"
-
- pop $1
-FunctionEnd
-
-Section -un.ModuleRegisterUIExtSection
- push $0
- ReadRegDWORD $0 SHCTX "$PRODUCT_UNIQUE_KEY" "UIExtRegistered"
- intcmp $0 1 0 DoneUnRegister
- call un.ModuleRegisterUI
- DoneUnRegister:
- pop $0
-SectionEnd
-!macroend
-
-;------------------------------------------------------------------------------------------------
-
-!macro REGISTERUIEXT_UNFINISH
-!macroend
-
-;------------------------------------------------------------------------------------------------
-
-!else
-!macro REGISTERUIEXT_INITIALIZE
-!macroend
-!macro REGISTERUIEXT_SECTIONS
-!macroend
-!macro REGISTERUIEXT_DESCRIPTION
-!macroend
-!macro REGISTERUIEXT_STARTUP
-!macroend
-!macro REGISTERUIEXT_FINISH
-!macroend
-!macro REGISTERUIEXT_UNSTARTUP
-!macroend
-!macro REGISTERUIEXT_UNINSTALL
-!macroend
-!macro REGISTERUIEXT_UNFINISH
-!macroend
-!endif
diff --git a/tools/installer/nsis/opensource.ini b/tools/installer/nsis/opensource.ini
deleted file mode 100644
index 4ce40bf..0000000
--- a/tools/installer/nsis/opensource.ini
+++ /dev/null
@@ -1,78 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-;; All rights reserved.
-;; Contact: Nokia Corporation (qt-info@nokia.com)
-;;
-;; This file is part of the tools 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 Technology Preview License Agreement accompanying
-;; this package.
-;;
-;; 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.1, included in the file LGPL_EXCEPTION.txt in this package.
-;;
-;; If you have questions regarding the use of this file, please contact
-;; Nokia at qt-info@nokia.com.
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;;
-;; $QT_END_LICENSE$
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Ini file generated by the HM NIS Edit IO designer.
-[Settings]
-NumFields=4
-
-[Field 1]
-Type=Label
-Text=You are now installing the Open Source Edition of Qt. It is licensed under GNU LGPL version 2.1 and the GPL version 3.
-Left=0
-Right=300
-Top=0
-Bottom=78
-
-[Field 2]
-Type=Link
-Text=http://qt.nokia.com/downloads
-State=http://qt.nokia.com/downloads
-Left=0
-Right=278
-Top=80
-Bottom=88
-
-[Field 3]
-Type=Link
-Text=http://qt.nokia.com/about
-State=http://qt.nokia.com/about
-Left=0
-Right=267
-Top=112
-Bottom=120
-
-[Field 4]
-Type=Label
-Text=To read more about Nokia's licensing, please go to:
-Left=0
-Right=278
-Top=97
-Bottom=105
-
diff --git a/tools/linguist/linguist/messagemodel.cpp b/tools/linguist/linguist/messagemodel.cpp
index 6572059..4e2b473 100644
--- a/tools/linguist/linguist/messagemodel.cpp
+++ b/tools/linguist/linguist/messagemodel.cpp
@@ -584,12 +584,16 @@ void MultiContextItem::putMessageItem(int pos, MessageItem *m)
m_messageLists.last()[pos] = m;
}
-void MultiContextItem::appendMessageItem(MessageItem *m)
+void MultiContextItem::appendMessageItems(const QList<MessageItem *> &m)
{
+ QList<MessageItem *> nullItems = m; // Basically, just a reservation
+ for (int i = 0; i < nullItems.count(); ++i)
+ nullItems[i] = 0;
for (int i = 0; i < m_messageLists.count() - 1; ++i)
- m_messageLists[i].append(0);
- m_messageLists.last().append(m);
- m_multiMessageList.append(MultiMessageItem(m));
+ m_messageLists[i] += nullItems;
+ m_messageLists.last() += m;
+ foreach (MessageItem *mi, m)
+ m_multiMessageList.append(MultiMessageItem(mi));
}
void MultiContextItem::removeMultiMessageItem(int pos)
@@ -710,33 +714,43 @@ void MultiDataModel::append(DataModel *dm, bool readWrite)
m_msgModel->endInsertColumns();
}
m_msgModel->endInsertColumns();
+ int appendedContexts = 0;
for (int i = 0; i < dm->contextCount(); ++i) {
ContextItem *c = dm->contextItem(i);
int mcx = findContextIndex(c->context());
if (mcx >= 0) {
MultiContextItem *mc = multiContextItem(mcx);
mc->assignLastModel(c, readWrite);
+ QList<MessageItem *> appendItems;
for (int j = 0; j < c->messageCount(); ++j) {
MessageItem *m = c->messageItem(j);
int msgIdx = mc->findMessage(m->text(), m->comment());
- if (msgIdx >= 0) {
+ if (msgIdx >= 0)
mc->putMessageItem(msgIdx, m);
- } else {
- int msgCnt = mc->messageCount();
- m_msgModel->beginInsertRows(m_msgModel->createIndex(mcx, 0, 0), msgCnt, msgCnt);
- mc->appendMessageItem(m);
- m_msgModel->endInsertRows();
- ++m_numMessages;
- }
+ else
+ appendItems << m;
+ }
+ if (!appendItems.isEmpty()) {
+ int msgCnt = mc->messageCount();
+ m_msgModel->beginInsertRows(m_msgModel->createIndex(mcx, 0, 0),
+ msgCnt, msgCnt + appendItems.size() - 1);
+ mc->appendMessageItems(appendItems);
+ m_msgModel->endInsertRows();
+ m_numMessages += appendItems.size();
}
} else {
- MultiContextItem item(modelCount() - 1, c, readWrite);
- m_msgModel->beginInsertRows(QModelIndex(), contextCount(), contextCount());
- m_multiContextList.append(item);
- m_msgModel->endInsertRows();
- m_numMessages += item.messageCount();
+ m_multiContextList << MultiContextItem(modelCount() - 1, c, readWrite);
+ m_numMessages += c->messageCount();
+ ++appendedContexts;
}
}
+ if (appendedContexts) {
+ // Do that en block to avoid itemview inefficiency. It doesn't hurt that we
+ // announce the availability of the data "long" after it was actually added.
+ m_msgModel->beginInsertRows(QModelIndex(),
+ contextCount() - appendedContexts, contextCount() - 1);
+ m_msgModel->endInsertRows();
+ }
dm->setWritable(readWrite);
updateCountsOnAdd(modelCount() - 1, readWrite);
connect(dm, SIGNAL(modifiedChanged()), SLOT(onModifiedChanged()));
diff --git a/tools/linguist/linguist/messagemodel.h b/tools/linguist/linguist/messagemodel.h
index 3e0107e..7d98873 100644
--- a/tools/linguist/linguist/messagemodel.h
+++ b/tools/linguist/linguist/messagemodel.h
@@ -332,7 +332,7 @@ private:
void removeModel(int pos);
void moveModel(int oldPos, int newPos); // newPos is *before* removing at oldPos
void putMessageItem(int pos, MessageItem *m);
- void appendMessageItem(MessageItem *m);
+ void appendMessageItems(const QList<MessageItem *> &m);
void removeMultiMessageItem(int pos);
void incrementFinishedCount() { ++m_finishedCount; }
void decrementFinishedCount() { --m_finishedCount; }
diff --git a/tools/runonphone/main.cpp b/tools/runonphone/main.cpp
index a77e713..1a5cdee 100644
--- a/tools/runonphone/main.cpp
+++ b/tools/runonphone/main.cpp
@@ -174,11 +174,7 @@ int main(int argc, char *argv[])
}
if(loglevel > 0)
outstream << "Connecting to target via " << serialPortName << endl;
-#ifdef Q_OS_WIN
- launcher->setTrkServerName(QString("\\\\.\\") + serialPortName);
-#else
launcher->setTrkServerName(serialPortName);
-#endif
launcher->setFileName(QString("c:\\sys\\bin\\") + exeFile);
launcher->setCommandLineArgs(cmdLine);
diff --git a/tools/runonphone/runonphone.pro b/tools/runonphone/runonphone.pro
index 2c1be98..7bed3e5 100644
--- a/tools/runonphone/runonphone.pro
+++ b/tools/runonphone/runonphone.pro
@@ -4,7 +4,7 @@ QT -= gui
CONFIG += console
CONFIG -= app_bundle
-include(trk/trk.pri)
+include(symbianutils/symbianutils.pri)
SOURCES += main.cpp \
trksignalhandler.cpp
@@ -12,6 +12,8 @@ SOURCES += main.cpp \
HEADERS += trksignalhandler.h \
serenum.h
+DEFINES += SYMBIANUTILS_INCLUDE_PRI
+
windows {
SOURCES += serenum_win.cpp
LIBS += -lsetupapi \
diff --git a/tools/runonphone/trk/bluetoothlistener.cpp b/tools/runonphone/symbianutils/bluetoothlistener.cpp
index 8d45fb5..df04288 100644
--- a/tools/runonphone/trk/bluetoothlistener.cpp
+++ b/tools/runonphone/symbianutils/bluetoothlistener.cpp
@@ -184,7 +184,7 @@ bool BluetoothListener::start(const QString &device, QString *errorMessage)
return true;
}
-void BluetoothListener::slotStdOutput()
+void BluetoothListener::slotStdOutput()
{
emitMessage(QString::fromLocal8Bit(d->process.readAllStandardOutput()));
}
diff --git a/tools/runonphone/trk/bluetoothlistener.h b/tools/runonphone/symbianutils/bluetoothlistener.h
index 027f286..36894e7 100644
--- a/tools/runonphone/trk/bluetoothlistener.h
+++ b/tools/runonphone/symbianutils/bluetoothlistener.h
@@ -42,6 +42,8 @@
#ifndef BLUETOOTHLISTENER_H
#define BLUETOOTHLISTENER_H
+#include "symbianutils_global.h"
+
#include <QtCore/QObject>
#include <QtCore/QProcess>
@@ -53,7 +55,7 @@ struct BluetoothListenerPrivate;
* The rfcomm command is used. It process can be started in the background
* while connection attempts (TrkDevice::open()) are made in the foreground. */
-class BluetoothListener : public QObject
+class SYMBIANUTILS_EXPORT BluetoothListener : public QObject
{
Q_OBJECT
Q_DISABLE_COPY(BluetoothListener)
diff --git a/tools/runonphone/trk/bluetoothlistener_gui.cpp b/tools/runonphone/symbianutils/bluetoothlistener_gui.cpp
index 6ffdaef..5994eb5 100644
--- a/tools/runonphone/trk/bluetoothlistener_gui.cpp
+++ b/tools/runonphone/symbianutils/bluetoothlistener_gui.cpp
@@ -50,7 +50,7 @@
namespace trk {
-PromptStartCommunicationResult
+SYMBIANUTILS_EXPORT PromptStartCommunicationResult
promptStartCommunication(BaseCommunicationStarter &starter,
const QString &msgBoxTitle,
const QString &msgBoxText,
@@ -88,7 +88,7 @@ PromptStartCommunicationResult
return PromptStartCommunicationConnected;
}
-PromptStartCommunicationResult
+SYMBIANUTILS_EXPORT PromptStartCommunicationResult
promptStartSerial(BaseCommunicationStarter &starter,
QWidget *msgBoxParent,
QString *errorMessage)
@@ -98,7 +98,7 @@ PromptStartCommunicationResult
return promptStartCommunication(starter, title, message, msgBoxParent, errorMessage);
}
-PromptStartCommunicationResult
+SYMBIANUTILS_EXPORT PromptStartCommunicationResult
promptStartBluetooth(BaseCommunicationStarter &starter,
QWidget *msgBoxParent,
QString *errorMessage)
diff --git a/tools/runonphone/trk/bluetoothlistener_gui.h b/tools/runonphone/symbianutils/bluetoothlistener_gui.h
index d673ffe..10e7145 100644
--- a/tools/runonphone/trk/bluetoothlistener_gui.h
+++ b/tools/runonphone/symbianutils/bluetoothlistener_gui.h
@@ -42,6 +42,8 @@
#ifndef BLUETOOTHLISTENER_GUI_H
#define BLUETOOTHLISTENER_GUI_H
+#include "symbianutils_global.h"
+
#include <QtCore/QtGlobal>
QT_BEGIN_NAMESPACE
@@ -62,7 +64,7 @@ enum PromptStartCommunicationResult {
PromptStartCommunicationError
};
-PromptStartCommunicationResult
+SYMBIANUTILS_EXPORT PromptStartCommunicationResult
promptStartCommunication(BaseCommunicationStarter &starter,
const QString &msgBoxTitle,
const QString &msgBoxText,
@@ -71,14 +73,14 @@ PromptStartCommunicationResult
// Convenience to start a serial connection (messages prompting
// to launch Trk).
-PromptStartCommunicationResult
+SYMBIANUTILS_EXPORT PromptStartCommunicationResult
promptStartSerial(BaseCommunicationStarter &starter,
QWidget *msgBoxParent,
QString *errorMessage);
// Convenience to start blue tooth connection (messages
// prompting to connect).
-PromptStartCommunicationResult
+SYMBIANUTILS_EXPORT PromptStartCommunicationResult
promptStartBluetooth(BaseCommunicationStarter &starter,
QWidget *msgBoxParent,
QString *errorMessage);
diff --git a/tools/runonphone/trk/callback.h b/tools/runonphone/symbianutils/callback.h
index edc2c74..3996d73 100644
--- a/tools/runonphone/trk/callback.h
+++ b/tools/runonphone/symbianutils/callback.h
@@ -42,7 +42,7 @@
#ifndef DEBUGGER_CALLBACK_H
#define DEBUGGER_CALLBACK_H
-#include <QtCore/QtGlobal>
+#include "symbianutils_global.h"
namespace trk {
namespace Internal {
diff --git a/tools/runonphone/trk/communicationstarter.cpp b/tools/runonphone/symbianutils/communicationstarter.cpp
index e5e556e..cdee49f 100644
--- a/tools/runonphone/trk/communicationstarter.cpp
+++ b/tools/runonphone/symbianutils/communicationstarter.cpp
@@ -58,7 +58,6 @@ struct BaseCommunicationStarterPrivate {
int intervalMS;
int attempts;
int n;
- QString device;
QString errorString;
BaseCommunicationStarter::State state;
};
@@ -70,7 +69,6 @@ BaseCommunicationStarterPrivate::BaseCommunicationStarterPrivate(const BaseCommu
intervalMS(1000),
attempts(-1),
n(0),
- device(QLatin1String("/dev/rfcomm0")),
state(BaseCommunicationStarter::TimedOut)
{
}
@@ -108,7 +106,7 @@ BaseCommunicationStarter::StartResult BaseCommunicationStarter::start()
// Before we instantiate timers, and such, try to open the device,
// which should succeed if another listener is already running in
// 'Watch' mode
- if (d->trkDevice->open(d->device , &(d->errorString)))
+ if (d->trkDevice->open(&(d->errorString)))
return ConnectionSucceeded;
// Pull up resources for next attempt
d->n = 0;
@@ -155,12 +153,7 @@ void BaseCommunicationStarter::setAttempts(int a)
QString BaseCommunicationStarter::device() const
{
- return d->device;
-}
-
-void BaseCommunicationStarter::setDevice(const QString &dv)
-{
- d->device = dv;
+ return d->trkDevice->port();
}
QString BaseCommunicationStarter::errorString() const
@@ -175,20 +168,20 @@ void BaseCommunicationStarter::slotTimer()
if (d->attempts >= 0 && d->n >= d->attempts) {
stopTimer();
d->errorString = tr("%1: timed out after %n attempts using an interval of %2ms.", 0, d->n)
- .arg(d->device).arg(d->intervalMS);
+ .arg(d->trkDevice->port()).arg(d->intervalMS);
d->state = TimedOut;
emit timeout();
} else {
// Attempt n to connect?
- if (d->trkDevice->open(d->device , &(d->errorString))) {
+ if (d->trkDevice->open(&(d->errorString))) {
stopTimer();
- const QString msg = tr("%1: Connection attempt %2 succeeded.").arg(d->device).arg(d->n);
+ const QString msg = tr("%1: Connection attempt %2 succeeded.").arg(d->trkDevice->port()).arg(d->n);
emit message(msg);
d->state = Connected;
emit connected();
} else {
const QString msg = tr("%1: Connection attempt %2 failed: %3 (retrying)...")
- .arg(d->device).arg(d->n).arg(d->errorString);
+ .arg(d->trkDevice->port()).arg(d->n).arg(d->errorString);
emit message(msg);
}
}
@@ -228,13 +221,11 @@ BluetoothListener *ConsoleBluetoothStarter::createListener()
bool ConsoleBluetoothStarter::startBluetooth(const TrkDevicePtr &trkDevice,
QObject *listenerParent,
- const QString &device,
int attempts,
QString *errorMessage)
{
// Set up a console starter to print to stdout.
ConsoleBluetoothStarter starter(trkDevice, listenerParent);
- starter.setDevice(device);
starter.setAttempts(attempts);
switch (starter.start()) {
case Started:
diff --git a/tools/runonphone/trk/communicationstarter.h b/tools/runonphone/symbianutils/communicationstarter.h
index 34cf398..0a060ee 100644
--- a/tools/runonphone/trk/communicationstarter.h
+++ b/tools/runonphone/symbianutils/communicationstarter.h
@@ -42,6 +42,8 @@
#ifndef COMMUNICATIONSTARTER_H
#define COMMUNICATIONSTARTER_H
+#include "symbianutils_global.h"
+
#include <QtCore/QSharedPointer>
#include <QtCore/QObject>
@@ -60,7 +62,7 @@ struct BaseCommunicationStarterPrivate;
* The base class can be used as is to prompt the user to launch App TRK for a
* serial communication as this requires no further resource setup. */
-class BaseCommunicationStarter : public QObject {
+class SYMBIANUTILS_EXPORT BaseCommunicationStarter : public QObject {
Q_OBJECT
Q_DISABLE_COPY(BaseCommunicationStarter)
public:
@@ -78,7 +80,6 @@ public:
void setAttempts(int a);
QString device() const;
- void setDevice(const QString &);
State state() const;
QString errorString() const;
@@ -117,7 +118,7 @@ private:
* implement as a factory function that creates and sets up the
* listener (mode, message connection, etc). */
-class AbstractBluetoothStarter : public BaseCommunicationStarter {
+class SYMBIANUTILS_EXPORT AbstractBluetoothStarter : public BaseCommunicationStarter {
Q_OBJECT
Q_DISABLE_COPY(AbstractBluetoothStarter)
public:
@@ -134,13 +135,12 @@ protected:
/* ConsoleBluetoothStarter: Convenience class for console processes. Creates a
* listener in "Listen" mode with the messages redirected to standard output. */
-class ConsoleBluetoothStarter : public AbstractBluetoothStarter {
+class SYMBIANUTILS_EXPORT ConsoleBluetoothStarter : public AbstractBluetoothStarter {
Q_OBJECT
Q_DISABLE_COPY(ConsoleBluetoothStarter)
public:
static bool startBluetooth(const TrkDevicePtr& trkDevice,
QObject *listenerParent,
- const QString &device,
int attempts,
QString *errorMessage);
diff --git a/tools/runonphone/trk/launcher.cpp b/tools/runonphone/symbianutils/launcher.cpp
index 1796fc5..408829b 100644
--- a/tools/runonphone/trk/launcher.cpp
+++ b/tools/runonphone/symbianutils/launcher.cpp
@@ -41,6 +41,7 @@
#include "launcher.h"
#include "trkutils.h"
+#include "trkutils_p.h"
#include "trkdevice.h"
#include "bluetoothlistener.h"
@@ -66,7 +67,6 @@ struct LauncherPrivate {
explicit LauncherPrivate(const TrkDevicePtr &d);
TrkDevicePtr m_device;
- QString m_trkServerName;
QByteArray m_trkReadBuffer;
Launcher::State m_state;
@@ -130,12 +130,12 @@ void Launcher::addStartupActions(trk::Launcher::Actions startupActions)
void Launcher::setTrkServerName(const QString &name)
{
- d->m_trkServerName = name;
+ d->m_device->setPort(name);
}
QString Launcher::trkServerName() const
{
- return d->m_trkServerName;
+ return d->m_device->port();
}
TrkDevicePtr Launcher::trkDevice() const
@@ -190,7 +190,7 @@ bool Launcher::startServer(QString *errorMessage)
errorMessage->clear();
if (d->m_verbose) {
const QString msg = QString::fromLatin1("Port=%1 Executable=%2 Arguments=%3 Package=%4 Remote Package=%5 Install file=%6")
- .arg(d->m_trkServerName, d->m_fileName,
+ .arg(trkServerName(), d->m_fileName,
d->m_commandLineArgs.join(QString(QLatin1Char(' '))),
d->m_copyState.sourceFileName, d->m_copyState.destinationFileName, d->m_installFileName);
logMessage(msg);
@@ -212,7 +212,7 @@ bool Launcher::startServer(QString *errorMessage)
qWarning("No remote executable given for running.");
return false;
}
- if (!d->m_device->isOpen() && !d->m_device->open(d->m_trkServerName, errorMessage))
+ if (!d->m_device->isOpen() && !d->m_device->open(errorMessage))
return false;
if (d->m_closeDevice) {
connect(this, SIGNAL(finished()), d->m_device.data(), SLOT(close()));
@@ -595,17 +595,19 @@ void Launcher::handleSupportMask(const TrkResult &result)
return;
const char *data = result.data.data() + 1;
- QByteArray str;
+ QString str = QLatin1String("SUPPORTED: ");
for (int i = 0; i < 32; ++i) {
//str.append(" [" + formatByte(data[i]) + "]: ");
- for (int j = 0; j < 8; ++j)
- if (data[i] & (1 << j))
- str.append(QByteArray::number(i * 8 + j, 16) + " ");
+ for (int j = 0; j < 8; ++j) {
+ if (data[i] & (1 << j)) {
+ str.append(QString::number(i * 8 + j, 16));
+ str.append(QLatin1Char(' '));
+ }
+ }
}
- logMessage("SUPPORTED: " + str);
+ logMessage(str);
}
-
void Launcher::cleanUp()
{
//
@@ -614,9 +616,7 @@ void Launcher::cleanUp()
// Sub Cmd: Delete Process
//ProcessID: 0x0000071F (1823)
// [41 24 00 00 00 00 07 1F]
- QByteArray ba;
- appendByte(&ba, 0x00);
- appendByte(&ba, 0x00);
+ QByteArray ba(2, char(0));
appendInt(&ba, d->m_session.pid);
d->m_device->sendTrkMessage(TrkDeleteItem, TrkCallback(), ba, "Delete process");
@@ -669,7 +669,7 @@ void Launcher::copyFileToRemote()
{
emit copyingStarted();
QByteArray ba;
- appendByte(&ba, 0x10);
+ ba.append(char(10));
appendString(&ba, d->m_copyState.destinationFileName.toLocal8Bit(), TargetByteOrder, false);
d->m_device->sendTrkMessage(TrkOpenFile, TrkCallback(this, &Launcher::handleFileCreation), ba);
}
@@ -678,7 +678,7 @@ void Launcher::installRemotePackageSilently()
{
emit installingStarted();
QByteArray ba;
- appendByte(&ba, 'C');
+ ba.append('C');
appendString(&ba, d->m_installFileName.toLocal8Bit(), TargetByteOrder, false);
d->m_device->sendTrkMessage(TrkInstallFile, TrkCallback(this, &Launcher::handleInstallPackageFinished), ba);
}
@@ -705,7 +705,7 @@ QByteArray Launcher::startProcessMessage(const QString &executable,
// It's not started yet
QByteArray ba;
appendShort(&ba, 0, TargetByteOrder); // create new process
- appendByte(&ba, 0); // options - currently unused
+ ba.append(char(0)); // options - currently unused
if(arguments.isEmpty()) {
appendString(&ba, executable.toLocal8Bit(), TargetByteOrder);
return ba;
diff --git a/tools/runonphone/trk/launcher.h b/tools/runonphone/symbianutils/launcher.h
index 8dc6ebe..2b23fd8 100644
--- a/tools/runonphone/trk/launcher.h
+++ b/tools/runonphone/symbianutils/launcher.h
@@ -56,7 +56,7 @@ struct LauncherPrivate;
typedef QSharedPointer<TrkDevice> TrkDevicePtr;
-class Launcher : public QObject
+class SYMBIANUTILS_EXPORT Launcher : public QObject
{
Q_OBJECT
Q_DISABLE_COPY(Launcher)
diff --git a/tools/runonphone/symbianutils/symbiandevicemanager.cpp b/tools/runonphone/symbianutils/symbiandevicemanager.cpp
new file mode 100644
index 0000000..f663816
--- /dev/null
+++ b/tools/runonphone/symbianutils/symbiandevicemanager.cpp
@@ -0,0 +1,331 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the tools 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 Technology Preview License Agreement accompanying
+** this package.
+**
+** 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.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "symbiandevicemanager.h"
+
+#include <QtCore/QSettings>
+#include <QtCore/QStringList>
+#include <QtCore/QFileInfo>
+#include <QtCore/QtDebug>
+#include <QtCore/QTextStream>
+#include <QtCore/QSharedData>
+#include <QtCore/QScopedPointer>
+
+namespace SymbianUtils {
+
+enum { debug = 0 };
+
+static const char REGKEY_CURRENT_CONTROL_SET[] = "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet";
+static const char USBSER[] = "Services/usbser/Enum";
+
+const char *SymbianDeviceManager::linuxBlueToothDeviceRootC = "/dev/rfcomm";
+
+// ------------- SymbianDevice
+class SymbianDeviceData : public QSharedData {
+public:
+ SymbianDeviceData() : type(SerialPortCommunication) {}
+
+ QString portName;
+ QString friendlyName;
+ QString deviceDesc;
+ QString manufacturer;
+ DeviceCommunicationType type;
+};
+
+SymbianDevice::SymbianDevice(SymbianDeviceData *data) :
+ m_data(data)
+{
+
+}
+
+SymbianDevice::SymbianDevice() :
+ m_data(new SymbianDeviceData)
+{
+}
+SymbianDevice::SymbianDevice(const SymbianDevice &rhs) :
+ m_data(rhs.m_data)
+{
+}
+
+SymbianDevice &SymbianDevice::operator=(const SymbianDevice &rhs)
+{
+ if (this != &rhs)
+ m_data = rhs.m_data;
+ return *this;
+}
+
+SymbianDevice::~SymbianDevice()
+{
+}
+
+QString SymbianDevice::portName() const
+{
+ return m_data->portName;
+}
+
+QString SymbianDevice::friendlyName() const
+{
+ return m_data->friendlyName;
+}
+
+QString SymbianDevice::deviceDesc() const
+{
+ return m_data->deviceDesc;
+}
+
+QString SymbianDevice::manufacturer() const
+{
+ return m_data->manufacturer;
+}
+
+DeviceCommunicationType SymbianDevice::type() const
+{
+ return m_data->type;
+}
+
+bool SymbianDevice::isNull() const
+{
+ return !m_data->portName.isEmpty();
+}
+
+QString SymbianDevice::toString() const
+{
+ QString rc;
+ QTextStream str(&rc);
+ format(str);
+ return rc;
+}
+
+void SymbianDevice::format(QTextStream &str) const
+{
+ str << (m_data->type == BlueToothCommunication ? "Bluetooth: " : "Serial: ")
+ << m_data->portName;
+ if (!m_data->friendlyName.isEmpty()) {
+ str << " (" << m_data->friendlyName;
+ if (!m_data->deviceDesc.isEmpty())
+ str << " / " << m_data->deviceDesc;
+ str << ')';
+ }
+ if (!m_data->manufacturer.isEmpty())
+ str << " [" << m_data->manufacturer << ']';
+}
+
+// Compare by port and friendly name
+int SymbianDevice::compare(const SymbianDevice &rhs) const
+{
+ if (const int prc = m_data->portName.compare(rhs.m_data->portName))
+ return prc;
+ if (const int frc = m_data->friendlyName.compare(rhs.m_data->friendlyName))
+ return frc;
+ return 0;
+}
+
+QDebug operator<<(QDebug d, const SymbianDevice &cd)
+{
+ d.nospace() << cd.toString();
+ return d;
+}
+
+// ------------- SymbianDeviceManagerPrivate
+struct SymbianDeviceManagerPrivate {
+ SymbianDeviceManagerPrivate() : m_initialized(false) {}
+
+ bool m_initialized;
+ SymbianDeviceManager::SymbianDeviceList m_devices;
+};
+
+SymbianDeviceManager::SymbianDeviceManager(QObject *parent) :
+ QObject(parent),
+ d(new SymbianDeviceManagerPrivate)
+{
+}
+
+SymbianDeviceManager::~SymbianDeviceManager()
+{
+ delete d;
+}
+
+SymbianDeviceManager::SymbianDeviceList SymbianDeviceManager::devices() const
+{
+ if (!d->m_initialized)
+ const_cast<SymbianDeviceManager*>(this)->update(false);
+ return d->m_devices;
+}
+
+QString SymbianDeviceManager::toString() const
+{
+ QString rc;
+ QTextStream str(&rc);
+ const int count = d->m_devices.size();
+ for (int i = 0; i < count; i++) {
+ str << '#' << i << ' ';
+ d->m_devices.at(i).format(str);
+ str << '\n';
+ }
+ return rc;
+}
+
+QString SymbianDeviceManager::friendlyNameForPort(const QString &port) const
+{
+ foreach (const SymbianDevice &device, d->m_devices) {
+ if (device.portName() == port)
+ return device.friendlyName();
+ }
+ return QString();
+}
+
+void SymbianDeviceManager::update()
+{
+ update(true);
+}
+
+void SymbianDeviceManager::update(bool emitSignals)
+{
+ typedef SymbianDeviceList::iterator SymbianDeviceListIterator;
+
+ if (debug)
+ qDebug(">SerialDeviceLister::update(%d)\n%s", int(emitSignals),
+ qPrintable(toString()));
+
+ d->m_initialized = true;
+ // Get ordered new list
+ SymbianDeviceList newDevices = serialPorts() + blueToothDevices();
+ if (newDevices.size() > 1)
+ qStableSort(newDevices.begin(), newDevices.end());
+ if (d->m_devices == newDevices) // Happy, nothing changed.
+ return;
+ // Merge the lists and emit the respective added/removed signals, assuming
+ // no one can plug a different device on the same port at the speed of lightning
+ if (!d->m_devices.isEmpty()) {
+ // Find deleted devices
+ for (SymbianDeviceListIterator oldIt = d->m_devices.begin(); oldIt != d->m_devices.end(); ) {
+ if (newDevices.contains(*oldIt)) {
+ ++oldIt;
+ } else {
+ const SymbianDevice toBeDeleted = *oldIt;
+ oldIt = d->m_devices.erase(oldIt);
+ if (emitSignals)
+ emit deviceRemoved(toBeDeleted);
+ }
+ }
+ }
+ if (!newDevices.isEmpty()) {
+ // Find new devices and insert in order
+ foreach(const SymbianDevice &newDevice, newDevices) {
+ if (!d->m_devices.contains(newDevice)) {
+ d->m_devices.append(newDevice);
+ if (emitSignals)
+ emit deviceAdded(newDevice);
+ }
+ }
+ if (d->m_devices.size() > 1)
+ qStableSort(d->m_devices.begin(), d->m_devices.end());
+ }
+ if (emitSignals)
+ emit updated();
+
+ if (debug)
+ qDebug("<SerialDeviceLister::update\n%s\n", qPrintable(toString()));
+}
+
+SymbianDeviceManager::SymbianDeviceList SymbianDeviceManager::serialPorts() const
+{
+ SymbianDeviceList rc;
+#ifdef Q_OS_WIN
+ const QSettings registry(REGKEY_CURRENT_CONTROL_SET, QSettings::NativeFormat);
+ const QString usbSerialRootKey = QLatin1String(USBSER) + QLatin1Char('/');
+ const int count = registry.value(usbSerialRootKey + QLatin1String("Count")).toInt();
+ for (int i = 0; i < count; ++i) {
+ QString driver = registry.value(usbSerialRootKey + QString::number(i)).toString();
+ if (driver.contains(QLatin1String("JAVACOMM"))) {
+ driver.replace(QLatin1Char('\\'), QLatin1Char('/'));
+ const QString driverRootKey = QLatin1String("Enum/") + driver + QLatin1Char('/');
+ if (debug > 1)
+ qDebug() << "SerialDeviceLister::serialPorts(): Checking " << i << count
+ << REGKEY_CURRENT_CONTROL_SET << usbSerialRootKey << driverRootKey;
+ QScopedPointer<SymbianDeviceData> device(new SymbianDeviceData);
+ device->type = SerialPortCommunication;
+ device->friendlyName = registry.value(driverRootKey + QLatin1String("FriendlyName")).toString();
+ device->portName = registry.value(driverRootKey + QLatin1String("Device Parameters/PortName")).toString();
+ device->deviceDesc = registry.value(driverRootKey + QLatin1String("DeviceDesc")).toString();
+ device->manufacturer = registry.value(driverRootKey + QLatin1String("Mfg")).toString();
+ rc.append(SymbianDevice(device.take()));
+ }
+ }
+#endif
+ return rc;
+}
+
+SymbianDeviceManager::SymbianDeviceList SymbianDeviceManager::blueToothDevices() const
+{
+ SymbianDeviceList rc;
+#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
+ // Bluetooth devices are created on connection. List the existing ones
+ // or at least the first one.
+ const QString prefix = QLatin1String(linuxBlueToothDeviceRootC);
+ const QString friendlyFormat = QLatin1String("Bluetooth device (%1)");
+ for (int d = 0; d < 4; d++) {
+ QScopedPointer<SymbianDeviceData> device(new SymbianDeviceData);
+ device->type = BlueToothCommunication;
+ device->portName = prefix + QString::number(d);
+ if (d == 0 || QFileInfo(device->portName).exists()) {
+ device->friendlyName = friendlyFormat.arg(device->portName);
+ rc.push_back(SymbianDevice(device.take()));
+ }
+ }
+#endif
+ return rc;
+}
+
+Q_GLOBAL_STATIC(SymbianDeviceManager, symbianDeviceManager)
+
+SymbianDeviceManager *SymbianDeviceManager::instance()
+{
+ return symbianDeviceManager();
+}
+
+QDebug operator<<(QDebug d, const SymbianDeviceManager &sdm)
+{
+ d.nospace() << sdm.toString();
+ return d;
+}
+
+} // namespace SymbianUtilsInternal
diff --git a/tools/runonphone/symbianutils/symbiandevicemanager.h b/tools/runonphone/symbianutils/symbiandevicemanager.h
new file mode 100644
index 0000000..dcf131a
--- /dev/null
+++ b/tools/runonphone/symbianutils/symbiandevicemanager.h
@@ -0,0 +1,145 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the tools 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 Technology Preview License Agreement accompanying
+** this package.
+**
+** 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.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SYMBIANDEVICEMANAGER_H
+#define SYMBIANDEVICEMANAGER_H
+
+#include "symbianutils_global.h"
+
+#include <QtCore/QObject>
+#include <QtCore/QExplicitlySharedDataPointer>
+
+QT_BEGIN_NAMESPACE
+class QDebug;
+class QTextStream;
+QT_END_NAMESPACE
+
+namespace SymbianUtils {
+
+struct SymbianDeviceManagerPrivate;
+class SymbianDeviceData;
+
+enum DeviceCommunicationType {
+ SerialPortCommunication = 0,
+ BlueToothCommunication = 1
+};
+
+// SymbianDevice, explicitly shared.
+class SYMBIANUTILS_EXPORT SymbianDevice {
+ explicit SymbianDevice(SymbianDeviceData *data);
+ friend class SymbianDeviceManager;
+public:
+ SymbianDevice();
+ SymbianDevice(const SymbianDevice &rhs);
+ SymbianDevice &operator=(const SymbianDevice &rhs);
+ ~SymbianDevice();
+ int compare(const SymbianDevice &rhs) const;
+
+ DeviceCommunicationType type() const;
+ bool isNull() const;
+ QString portName() const;
+ QString friendlyName() const;
+
+ // Windows only.
+ QString deviceDesc() const;
+ QString manufacturer() const;
+
+ void format(QTextStream &str) const;
+ QString toString() const;
+
+private:
+ QExplicitlySharedDataPointer<SymbianDeviceData> m_data;
+};
+
+QDebug operator<<(QDebug d, const SymbianDevice &);
+
+inline bool operator==(const SymbianDevice &d1, const SymbianDevice &d2)
+ { return d1.compare(d2) == 0; }
+inline bool operator!=(const SymbianDevice &d1, const SymbianDevice &d2)
+ { return d1.compare(d2) != 0; }
+inline bool operator<(const SymbianDevice &d1, const SymbianDevice &d2)
+ { return d1.compare(d2) < 0; }
+
+/* SymbianDeviceManager: Singleton that maintains a list of Symbian devices.
+ * and emits change signals.
+ * On Windows, the update slot must be connected to a signal
+ * emitted from an event handler listening for WM_DEVICECHANGE. */
+class SYMBIANUTILS_EXPORT SymbianDeviceManager : public QObject
+{
+ Q_OBJECT
+public:
+ typedef QList<SymbianDevice> SymbianDeviceList;
+
+ static const char *linuxBlueToothDeviceRootC;
+
+ // Do not use this constructor, it is just public for Q_GLOBAL_STATIC
+ explicit SymbianDeviceManager(QObject *parent = 0);
+ virtual ~SymbianDeviceManager();
+
+ // Singleton access.
+ static SymbianDeviceManager *instance();
+
+ SymbianDeviceList devices() const;
+ QString toString() const;
+
+ QString friendlyNameForPort(const QString &port) const;
+
+public slots:
+ void update();
+
+signals:
+ void deviceRemoved(const SymbianDevice &d);
+ void deviceAdded(const SymbianDevice &d);
+ void updated();
+
+private:
+ void update(bool emitSignals);
+ SymbianDeviceList serialPorts() const;
+ SymbianDeviceList blueToothDevices() const;
+
+ SymbianDeviceManagerPrivate *d;
+};
+
+QDebug operator<<(QDebug d, const SymbianDeviceManager &);
+
+} // namespace SymbianUtils
+
+#endif // SYMBIANDEVICEMANAGER_H
diff --git a/tools/runonphone/trk/trk.pri b/tools/runonphone/symbianutils/symbianutils.pri
index 2ce17c0..6309517 100644
--- a/tools/runonphone/trk/trk.pri
+++ b/tools/runonphone/symbianutils/symbianutils.pri
@@ -1,18 +1,22 @@
INCLUDEPATH *= $$PWD
# Input
-HEADERS += $$PWD/callback.h \
+HEADERS += $$PWD/symbianutils_global.h \
+ $$PWD/callback.h \
$$PWD/trkutils.h \
+ $$PWD/trkutils_p.h \
$$PWD/trkdevice.h \
$$PWD/launcher.h \
$$PWD/bluetoothlistener.h \
- $$PWD/communicationstarter.h
+ $$PWD/communicationstarter.h \
+ $$PWD/symbiandevicemanager.h
SOURCES += $$PWD/trkutils.cpp \
$$PWD/trkdevice.cpp \
$$PWD/launcher.cpp \
$$PWD/bluetoothlistener.cpp \
- $$PWD/communicationstarter.cpp
+ $$PWD/communicationstarter.cpp \
+ $$PWD/symbiandevicemanager.cpp
# Tests/trklauncher is a console application
contains(QT, gui) {
diff --git a/tools/runonphone/symbianutils/symbianutils_global.h b/tools/runonphone/symbianutils/symbianutils_global.h
new file mode 100644
index 0000000..a6ffbe7
--- /dev/null
+++ b/tools/runonphone/symbianutils/symbianutils_global.h
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the tools 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 Technology Preview License Agreement accompanying
+** this package.
+**
+** 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.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SYMBIANUTILS_GLOBAL_H
+#define SYMBIANUTILS_GLOBAL_H
+
+#include <QtCore/qglobal.h>
+
+#if defined(SYMBIANUTILS_BUILD_LIB)
+# define SYMBIANUTILS_EXPORT Q_DECL_EXPORT
+#elif defined(SYMBIANUTILS_BUILD_STATIC_LIB) || defined(SYMBIANUTILS_INCLUDE_PRI)
+# define SYMBIANUTILS_EXPORT
+#else
+# define SYMBIANUTILS_EXPORT Q_DECL_IMPORT
+#endif
+
+#endif // SYMBIANUTILS_GLOBAL_H
diff --git a/tools/runonphone/trk/trkdevice.cpp b/tools/runonphone/symbianutils/trkdevice.cpp
index fe3261b..b327ab3 100644
--- a/tools/runonphone/trk/trkdevice.cpp
+++ b/tools/runonphone/symbianutils/trkdevice.cpp
@@ -41,6 +41,7 @@
#include "trkdevice.h"
#include "trkutils.h"
+#include "trkutils_p.h"
#include <QtCore/QString>
#include <QtCore/QDebug>
@@ -516,7 +517,7 @@ static inline bool overlappedSyncWrite(HANDLE file,
bool WriterThread::write(const QByteArray &data, QString *errorMessage)
{
if (verboseTrk)
- qDebug() << "Write raw data: " << data.toHex();
+ qDebug() << "Write raw data: " << stringFromArray(data).toLatin1();
QMutexLocker locker(&m_context->mutex);
#ifdef Q_OS_WIN
DWORD charsWritten;
@@ -856,8 +857,8 @@ void UnixReaderThread::terminate()
{
// Trigger select() by writing to the pipe
char c = 0;
- int written = write(m_terminatePipeFileDescriptors[1], &c, 1);
- // FIXME: Use result.
+ const int written = write(m_terminatePipeFileDescriptors[1], &c, 1);
+ Q_UNUSED(written)
wait();
}
@@ -882,6 +883,7 @@ struct TrkDevicePrivate
QByteArray trkReadBuffer;
int verbose;
QString errorString;
+ QString port;
};
///////////////////////////////////////////////////////////////////////
@@ -913,13 +915,19 @@ TrkDevice::~TrkDevice()
delete d;
}
-bool TrkDevice::open(const QString &port, QString *errorMessage)
+bool TrkDevice::open(QString *errorMessage)
{
if (d->verbose)
- qDebug() << "Opening" << port << "is open: " << isOpen() << " serialFrame=" << serialFrame();
+ qDebug() << "Opening" << port() << "is open: " << isOpen() << " serialFrame=" << serialFrame();
+ if (d->port.isEmpty()) {
+ *errorMessage = QLatin1String("Internal error: No port set on TrkDevice");
+ return false;
+ }
+
close();
#ifdef Q_OS_WIN
- d->deviceContext->device = CreateFile(port.toStdWString().c_str(),
+ const QString fullPort = QLatin1String("\\\\.\\") + d->port;
+ d->deviceContext->device = CreateFile(reinterpret_cast<const WCHAR*>(fullPort.utf16()),
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
@@ -928,7 +936,7 @@ bool TrkDevice::open(const QString &port, QString *errorMessage)
NULL);
if (INVALID_HANDLE_VALUE == d->deviceContext->device) {
- *errorMessage = QString::fromLatin1("Could not open device '%1': %2").arg(port, winErrorMessage(GetLastError()));
+ *errorMessage = QString::fromLatin1("Could not open device '%1': %2").arg(port(), winErrorMessage(GetLastError()));
return false;
}
memset(&d->deviceContext->readOverlapped, 0, sizeof(OVERLAPPED));
@@ -940,9 +948,9 @@ bool TrkDevice::open(const QString &port, QString *errorMessage)
return false;
}
#else
- d->deviceContext->file.setFileName(port);
+ d->deviceContext->file.setFileName(d->port);
if (!d->deviceContext->file.open(QIODevice::ReadWrite|QIODevice::Unbuffered)) {
- *errorMessage = QString::fromLatin1("Cannot open %1: %2").arg(port, d->deviceContext->file.errorString());
+ *errorMessage = QString::fromLatin1("Cannot open %1: %2").arg(d->port, d->deviceContext->file.errorString());
return false;
}
@@ -981,7 +989,7 @@ bool TrkDevice::open(const QString &port, QString *errorMessage)
d->writerThread->start();
if (d->verbose)
- qDebug() << "Opened" << port;
+ qDebug() << "Opened" << d->port;
return true;
}
@@ -1015,6 +1023,16 @@ bool TrkDevice::isOpen() const
#endif
}
+QString TrkDevice::port() const
+{
+ return d->port;
+}
+
+void TrkDevice::setPort(const QString &p)
+{
+ d->port = p;
+}
+
QString TrkDevice::errorString() const
{
return d->errorString;
@@ -1061,8 +1079,13 @@ void TrkDevice::sendTrkMessage(byte code, TrkCallback callback,
const QByteArray &data, const QVariant &cookie)
{
if (!d->writerThread.isNull()) {
- if (d->verbose > 1)
- qDebug() << "Sending " << code << data.toHex();
+ if (d->verbose > 1) {
+ QByteArray msg = "Sending: ";
+ msg += QByteArray::number(code, 16);
+ msg += ": ";
+ msg += stringFromArray(data).toLatin1();
+ qDebug("%s", msg.data());
+ }
d->writerThread->queueTrkMessage(code, callback, data, cookie);
}
}
diff --git a/tools/runonphone/trk/trkdevice.h b/tools/runonphone/symbianutils/trkdevice.h
index e04f791..78012fd 100644
--- a/tools/runonphone/trk/trkdevice.h
+++ b/tools/runonphone/symbianutils/trkdevice.h
@@ -42,6 +42,7 @@
#ifndef TRKDEVICE_H
#define TRKDEVICE_H
+#include "symbianutils_global.h"
#include "callback.h"
#include <QtCore/QObject>
@@ -74,18 +75,22 @@ enum { TRK_WRITE_QUEUE_NOOP_CODE = 0x7f };
typedef trk::Callback<const TrkResult &> TrkCallback;
-class TrkDevice : public QObject
+class SYMBIANUTILS_EXPORT TrkDevice : public QObject
{
Q_OBJECT
Q_PROPERTY(bool serialFrame READ serialFrame WRITE setSerialFrame)
Q_PROPERTY(bool verbose READ verbose WRITE setVerbose)
+ Q_PROPERTY(QString port READ port WRITE setPort)
public:
explicit TrkDevice(QObject *parent = 0);
virtual ~TrkDevice();
- bool open(const QString &port, QString *errorMessage);
+ bool open(QString *errorMessage);
bool isOpen() const;
+ QString port() const;
+ void setPort(const QString &p);
+
QString errorString() const;
bool serialFrame() const;
diff --git a/tools/runonphone/trk/trkutils.cpp b/tools/runonphone/symbianutils/trkutils.cpp
index 3a96053..9b43c96 100644
--- a/tools/runonphone/trk/trkutils.cpp
+++ b/tools/runonphone/symbianutils/trkutils.cpp
@@ -86,7 +86,7 @@ void Session::reset()
trkAppVersion.reset();
}
-QString formatCpu(int major, int minor)
+static QString formatCpu(int major, int minor)
{
//: CPU description of an S60 device
//: %1 major verison, %2 minor version
@@ -143,14 +143,46 @@ QString Session::deviceDescription(unsigned verbose) const
return msg.arg(formatTrkVersion(trkAppVersion));
}
+// --------------
+
+QByteArray decode7d(const QByteArray &ba)
+{
+ QByteArray res;
+ res.reserve(ba.size());
+ for (int i = 0; i < ba.size(); ++i) {
+ byte c = byte(ba.at(i));
+ if (c == 0x7d) {
+ ++i;
+ c = 0x20 ^ byte(ba.at(i));
+ }
+ res.append(c);
+ }
+ return res;
+}
+
+QByteArray encode7d(const QByteArray &ba)
+{
+ QByteArray res;
+ res.reserve(ba.size() + 2);
+ for (int i = 0; i < ba.size(); ++i) {
+ byte c = byte(ba.at(i));
+ if (c == 0x7e || c == 0x7d) {
+ res.append(0x7d);
+ res.append(0x20 ^ c);
+ } else {
+ res.append(c);
+ }
+ }
+ return res;
+}
// FIXME: Use the QByteArray based version below?
-QString stringFromByte(byte c)
+static inline QString stringFromByte(byte c)
{
- return QString("%1 ").arg(c, 2, 16, QChar('0'));
+ return QString::fromLatin1("%1").arg(c, 2, 16, QChar('0'));
}
-QString stringFromArray(const QByteArray &ba, int maxLen)
+SYMBIANUTILS_EXPORT QString stringFromArray(const QByteArray &ba, int maxLen)
{
QString str;
QString ascii;
@@ -170,7 +202,7 @@ QString stringFromArray(const QByteArray &ba, int maxLen)
return str + " " + ascii;
}
-QByteArray hexNumber(uint n, int digits)
+SYMBIANUTILS_EXPORT QByteArray hexNumber(uint n, int digits)
{
QByteArray ba = QByteArray::number(n, 16);
if (digits == 0 || ba.size() == digits)
@@ -178,7 +210,7 @@ QByteArray hexNumber(uint n, int digits)
return QByteArray(digits - ba.size(), '0') + ba;
}
-QByteArray hexxNumber(uint n, int digits)
+SYMBIANUTILS_EXPORT QByteArray hexxNumber(uint n, int digits)
{
return "0x" + hexNumber(n, digits);
}
@@ -200,9 +232,13 @@ void TrkResult::clear()
QString TrkResult::toString() const
{
- QString res = stringFromByte(code) + "[" + stringFromByte(token);
- res.chop(1);
- return res + "] " + stringFromArray(data);
+ QString res = stringFromByte(code);
+ res += QLatin1String(" [");
+ res += stringFromByte(token);
+ res += QLatin1Char(']');
+ res += QLatin1Char(' ');
+ res += stringFromArray(data);
+ return res;
}
QByteArray frameMessage(byte command, byte token, const QByteArray &data, bool serialFrame)
@@ -303,12 +339,12 @@ bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *result, QByt
return true;
}
-ushort extractShort(const char *data)
+SYMBIANUTILS_EXPORT ushort extractShort(const char *data)
{
return byte(data[0]) * 256 + byte(data[1]);
}
-uint extractInt(const char *data)
+SYMBIANUTILS_EXPORT uint extractInt(const char *data)
{
uint res = byte(data[0]);
res *= 256; res += byte(data[1]);
@@ -317,7 +353,7 @@ uint extractInt(const char *data)
return res;
}
-QString quoteUnprintableLatin1(const QByteArray &ba)
+SYMBIANUTILS_EXPORT QString quoteUnprintableLatin1(const QByteArray &ba)
{
QString res;
char buf[10];
@@ -333,49 +369,7 @@ QString quoteUnprintableLatin1(const QByteArray &ba)
return res;
}
-QByteArray decode7d(const QByteArray &ba)
-{
- QByteArray res;
- res.reserve(ba.size());
- for (int i = 0; i < ba.size(); ++i) {
- byte c = byte(ba.at(i));
- if (c == 0x7d) {
- ++i;
- c = 0x20 ^ byte(ba.at(i));
- }
- res.append(c);
- }
- //if (res != ba)
- // logMessage("DECODED: " << stringFromArray(ba)
- // << " -> " << stringFromArray(res));
- return res;
-}
-
-QByteArray encode7d(const QByteArray &ba)
-{
- QByteArray res;
- res.reserve(ba.size() + 2);
- for (int i = 0; i < ba.size(); ++i) {
- byte c = byte(ba.at(i));
- if (c == 0x7e || c == 0x7d) {
- res.append(0x7d);
- res.append(0x20 ^ c);
- } else {
- res.append(c);
- }
- }
- //if (res != ba)
- // logMessage("ENCODED: " << stringFromArray(ba)
- // << " -> " << stringFromArray(res));
- return res;
-}
-
-void appendByte(QByteArray *ba, byte b)
-{
- ba->append(b);
-}
-
-void appendShort(QByteArray *ba, ushort s, Endianness endian)
+SYMBIANUTILS_EXPORT void appendShort(QByteArray *ba, ushort s, Endianness endian)
{
if (endian == BigEndian) {
ba->append(s / 256);
@@ -386,7 +380,7 @@ void appendShort(QByteArray *ba, ushort s, Endianness endian)
}
}
-void appendInt(QByteArray *ba, uint i, Endianness endian)
+SYMBIANUTILS_EXPORT void appendInt(QByteArray *ba, uint i, Endianness endian)
{
const uchar b3 = i % 256; i /= 256;
const uchar b2 = i % 256; i /= 256;
diff --git a/tools/runonphone/trk/trkutils.h b/tools/runonphone/symbianutils/trkutils.h
index 328dd2b..3a485c7 100644
--- a/tools/runonphone/trk/trkutils.h
+++ b/tools/runonphone/symbianutils/trkutils.h
@@ -42,19 +42,20 @@
#ifndef DEBUGGER_TRK_UTILS
#define DEBUGGER_TRK_UTILS
+#include "symbianutils_global.h"
#include <QtCore/QByteArray>
#include <QtCore/QHash>
#include <QtCore/QStringList>
#include <QtCore/QVariant>
-typedef unsigned char byte;
-
QT_BEGIN_NAMESPACE
class QDateTime;
QT_END_NAMESPACE
namespace trk {
+typedef unsigned char byte;
+
enum Command {
TrkPing = 0x00,
TrkConnect = 0x01,
@@ -85,17 +86,14 @@ enum Command {
TrkNotifyProcessorReset = 0xa7
};
-QByteArray decode7d(const QByteArray &ba);
-QByteArray encode7d(const QByteArray &ba);
-
inline byte extractByte(const char *data) { return *data; }
-ushort extractShort(const char *data);
-uint extractInt(const char *data);
+SYMBIANUTILS_EXPORT ushort extractShort(const char *data);
+SYMBIANUTILS_EXPORT uint extractInt(const char *data);
-QString quoteUnprintableLatin1(const QByteArray &ba);
+SYMBIANUTILS_EXPORT QString quoteUnprintableLatin1(const QByteArray &ba);
// produces "xx xx xx "
-QString stringFromArray(const QByteArray &ba, int maxLen = - 1);
+SYMBIANUTILS_EXPORT QString stringFromArray(const QByteArray &ba, int maxLen = - 1);
enum Endianness
{
@@ -104,13 +102,11 @@ enum Endianness
TargetByteOrder = BigEndian,
};
-void appendByte(QByteArray *ba, byte b);
-void appendShort(QByteArray *ba, ushort s, Endianness = TargetByteOrder);
-void appendInt(QByteArray *ba, uint i, Endianness = TargetByteOrder);
-void appendString(QByteArray *ba, const QByteArray &str, Endianness = TargetByteOrder, bool appendNullTerminator = true);
-void appendDateTime(QByteArray *ba, QDateTime dateTime, Endianness = TargetByteOrder);
+SYMBIANUTILS_EXPORT void appendShort(QByteArray *ba, ushort s, Endianness = TargetByteOrder);
+SYMBIANUTILS_EXPORT void appendInt(QByteArray *ba, uint i, Endianness = TargetByteOrder);
+SYMBIANUTILS_EXPORT void appendString(QByteArray *ba, const QByteArray &str, Endianness = TargetByteOrder, bool appendNullTerminator = true);
-struct Library
+struct SYMBIANUTILS_EXPORT Library
{
Library() {}
@@ -119,7 +115,7 @@ struct Library
uint dataseg;
};
-struct TrkAppVersion
+struct SYMBIANUTILS_EXPORT TrkAppVersion
{
TrkAppVersion();
void reset();
@@ -130,7 +126,7 @@ struct TrkAppVersion
int protocolMinor;
};
-struct Session
+struct SYMBIANUTILS_EXPORT Session
{
Session();
void reset();
@@ -163,7 +159,7 @@ struct Session
QStringList modules;
};
-struct TrkResult
+struct SYMBIANUTILS_EXPORT TrkResult
{
TrkResult();
void clear();
@@ -179,15 +175,10 @@ struct TrkResult
bool isDebugOutput;
};
-// returns a QByteArray containing optionally
-// the serial frame [0x01 0x90 <len>] and 0x7e encoded7d(ba) 0x7e
-QByteArray frameMessage(byte command, byte token, const QByteArray &data, bool serialFrame);
-ushort isValidTrkResult(const QByteArray &buffer, bool serialFrame);
-bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *r, QByteArray *rawData = 0);
-QByteArray errorMessage(byte code);
-QByteArray hexNumber(uint n, int digits = 0);
-QByteArray hexxNumber(uint n, int digits = 0); // prepends '0x', too
-uint swapEndian(uint in);
+SYMBIANUTILS_EXPORT QByteArray errorMessage(byte code);
+SYMBIANUTILS_EXPORT QByteArray hexNumber(uint n, int digits = 0);
+SYMBIANUTILS_EXPORT QByteArray hexxNumber(uint n, int digits = 0); // prepends '0x', too
+SYMBIANUTILS_EXPORT uint swapEndian(uint in);
} // namespace trk
diff --git a/tools/runonphone/symbianutils/trkutils_p.h b/tools/runonphone/symbianutils/trkutils_p.h
new file mode 100644
index 0000000..12b0109
--- /dev/null
+++ b/tools/runonphone/symbianutils/trkutils_p.h
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the tools 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 Technology Preview License Agreement accompanying
+** this package.
+**
+** 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.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DEBUGGER_TRK_PRIVATE_UTILS
+#define DEBUGGER_TRK_PRIVATE_UTILS
+
+#include "trkutils.h"
+#include "symbianutils_global.h"
+
+QT_BEGIN_NAMESPACE
+class QDateTime;
+QT_END_NAMESPACE
+
+namespace trk {
+
+void appendDateTime(QByteArray *ba, QDateTime dateTime, Endianness = TargetByteOrder);
+// returns a QByteArray containing optionally
+// the serial frame [0x01 0x90 <len>] and 0x7e encoded7d(ba) 0x7e
+QByteArray frameMessage(byte command, byte token, const QByteArray &data, bool serialFrame);
+bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *r, QByteArray *rawData = 0);
+
+} // namespace trk
+
+#endif // DEBUGGER_TRK_PRIVATE_UTILS
diff --git a/translations/qt_de.ts b/translations/qt_de.ts
index 8cbf402..6447451 100644
--- a/translations/qt_de.ts
+++ b/translations/qt_de.ts
@@ -7572,7 +7572,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<location line="+2"/>
<source>Play movie in full-screen mode</source>
<comment>Media controller element</comment>
- <translation>FIlm im Vollbildmodus abspielen</translation>
+ <translation>Film im Vollbildmodus abspielen</translation>
</message>
<message>
<location line="+2"/>
@@ -8245,7 +8245,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<message>
<location filename="../src/xmlpatterns/api/qcoloringmessagehandler.cpp" line="+87"/>
<source>Warning in %1, at line %2, column %3: %4</source>
- <translation>Fehler in %1, bei Zeile %2, Spalte %3: %4</translation>
+ <translation>Warnung in %1, bei Zeile %2, Spalte %3: %4</translation>
</message>
<message>
<location line="+7"/>
@@ -9466,7 +9466,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<location line="-470"/>
<location line="+451"/>
<source>%1 is not allowed to derive from %2 by list as the latter defines it as final.</source>
- <translation>%1 darf nicht durch Listen von %2 abgeleitet werden, da sie letzterer sie als final deklariert.</translation>
+ <translation>%1 darf nicht durch Listen von %2 abgeleitet werden, da letzterer sie als final deklariert.</translation>
</message>
<message>
<location line="-431"/>
@@ -9917,7 +9917,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<message>
<location line="+6"/>
<source>Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model.</source>
- <translation>Der komplexe Typ % kann nicht durch Erweiterung von %2 abgeleitet werden, da letzterer ein &apos;%3&apos;-Element in seinem Inhaltsmodell hat.</translation>
+ <translation>Der komplexe Typ %1 kann nicht durch Erweiterung von %2 abgeleitet werden, da letzterer ein &apos;%3&apos;-Element in seinem Inhaltsmodell hat.</translation>
</message>
<message>
<location line="+101"/>
diff --git a/util/qlalr/cppgenerator.cpp b/util/qlalr/cppgenerator.cpp
index a95f5e4..f52a86f 100644
--- a/util/qlalr/cppgenerator.cpp
+++ b/util/qlalr/cppgenerator.cpp
@@ -457,7 +457,7 @@ void CppGenerator::generateDecl (QTextStream &out)
out << "class " << grammar.table_name << endl
<< "{" << endl
<< "public:" << endl
- << " enum {" << endl;
+ << " enum VariousConstants {" << endl;
foreach (Name t, grammar.terminals)
{