summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure20
-rw-r--r--doc/global/externalsites/qt-webpages.qdoc2
-rw-r--r--mkspecs/common/clang.conf2
-rw-r--r--mkspecs/common/g++-macx.conf2
-rw-r--r--mkspecs/common/gcc-base-mac.conf2
-rw-r--r--mkspecs/common/llvm.conf2
-rw-r--r--mkspecs/common/mac.conf2
-rw-r--r--mkspecs/common/macx.conf2
-rw-r--r--mkspecs/features/ctest_testcase.prf97
-rw-r--r--mkspecs/features/ctest_testcase_common.prf97
-rw-r--r--mkspecs/features/ctest_testcase_installed.prf8
-rw-r--r--mkspecs/features/data/android/dx.bat30
-rw-r--r--mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in25
-rw-r--r--mkspecs/features/java.prf8
-rw-r--r--mkspecs/features/qt_docs.prf9
-rw-r--r--mkspecs/features/qt_functions.prf3
-rw-r--r--mkspecs/features/qt_headersclean.prf3
-rw-r--r--mkspecs/features/qt_module.prf12
-rw-r--r--mkspecs/features/qt_module_pris.prf8
-rw-r--r--mkspecs/features/simd.prf40
-rw-r--r--mkspecs/macx-clang-libc++-32/qmake.conf2
-rw-r--r--mkspecs/macx-clang-libc++/qmake.conf2
-rw-r--r--mkspecs/macx-g++-32/qmake.conf2
-rw-r--r--mkspecs/macx-g++/qmake.conf2
-rw-r--r--mkspecs/macx-g++40/qmake.conf2
-rw-r--r--mkspecs/macx-g++42/qmake.conf2
-rw-r--r--mkspecs/macx-icc/qmake.conf2
-rw-r--r--mkspecs/macx-llvm/qmake.conf2
-rw-r--r--mkspecs/macx-xcode/qmake.conf2
-rw-r--r--mkspecs/win32-icc/qplatformdefs.h108
-rw-r--r--mkspecs/win32-msvc2013/qmake.conf98
-rw-r--r--mkspecs/win32-msvc2013/qplatformdefs.h42
-rw-r--r--qmake/Makefile.win324
-rw-r--r--qmake/generators/integrity/gbuild.cpp52
-rw-r--r--qmake/generators/mac/pbuilder_pbx.cpp686
-rw-r--r--qmake/generators/makefile.cpp56
-rw-r--r--qmake/generators/unix/unixmake.cpp4
-rw-r--r--qmake/generators/unix/unixmake2.cpp140
-rw-r--r--qmake/generators/win32/mingw_make.cpp32
-rw-r--r--qmake/generators/win32/msbuild_objectmodel.cpp2
-rw-r--r--qmake/generators/win32/msvc_nmake.cpp22
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp2
-rw-r--r--qmake/generators/win32/msvc_objectmodel.h3
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp15
-rw-r--r--qmake/generators/win32/winmakefile.cpp98
-rw-r--r--qmake/library/qmakeevaluator.cpp13
-rw-r--r--qmake/library/qmakeglobals.cpp3
-rw-r--r--src/corelib/Qt5CTestMacros.cmake8
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_io_qsettings.cpp6
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_kernel_qobject.cpp17
-rw-r--r--src/corelib/global/qcompilerdetection.h2
-rw-r--r--src/corelib/global/qglobal.cpp4
-rw-r--r--src/corelib/global/qlibraryinfo.cpp6
-rw-r--r--src/corelib/io/qfilesystemengine_win.cpp3
-rw-r--r--src/corelib/io/qfilesystemwatcher_win.cpp43
-rw-r--r--src/corelib/io/qfilesystemwatcher_win_p.h20
-rw-r--r--src/corelib/io/qprocess_win.cpp2
-rw-r--r--src/corelib/io/qurl.h6
-rw-r--r--src/corelib/io/qwinoverlappedionotifier.cpp50
-rw-r--r--src/corelib/itemmodels/qabstractitemmodel.h5
-rw-r--r--src/corelib/kernel/qcore_unix.cpp8
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp10
-rw-r--r--src/corelib/kernel/qcoreapplication_p.h2
-rw-r--r--src/corelib/kernel/qeventdispatcher_blackberry.cpp14
-rw-r--r--src/corelib/kernel/qmetatype.h10
-rw-r--r--src/corelib/kernel/qobject.cpp2
-rw-r--r--src/corelib/kernel/qtcore_eval.cpp83
-rw-r--r--src/corelib/kernel/qvariant_p.h2
-rw-r--r--src/corelib/tools/qstring.cpp2
-rw-r--r--src/corelib/xml/qxmlstream.cpp2
-rw-r--r--src/dbus/qdbusabstractadaptor.cpp11
-rw-r--r--src/gui/image/qicon.cpp2
-rw-r--r--src/gui/image/qimagereader.cpp4
-rw-r--r--src/gui/kernel/qevent.cpp1
-rw-r--r--src/gui/kernel/qevent.h7
-rw-r--r--src/gui/kernel/qguiapplication.cpp9
-rw-r--r--src/gui/kernel/qplatformsystemtrayicon_qpa.cpp2
-rw-r--r--src/gui/kernel/qsurfaceformat.cpp4
-rw-r--r--src/gui/kernel/qwindow.cpp5
-rw-r--r--src/gui/kernel/qwindow.h30
-rw-r--r--src/gui/opengl/qopenglpaintengine.cpp50
-rw-r--r--src/gui/opengl/qopenglvertexarrayobject.cpp27
-rw-r--r--src/gui/opengl/qopenglvertexarrayobject.h1
-rw-r--r--src/gui/painting/qbezier.cpp55
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp10
-rw-r--r--src/gui/painting/qpathclipper.cpp10
-rw-r--r--src/gui/painting/qpdf.cpp16
-rw-r--r--src/gui/painting/qpdf_p.h1
-rw-r--r--src/gui/painting/qpdfwriter.cpp4
-rw-r--r--src/gui/text/qfontengine_ft.cpp8
-rw-r--r--src/gui/text/qfontengine_ft_p.h2
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel.cpp16
-rw-r--r--src/network/kernel/qhostaddress.h6
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp50
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp96
-rw-r--r--src/plugins/accessible/widgets/complexwidgets.cpp12
-rw-r--r--src/plugins/platforms/android/src/qandroidplatformintegration.cpp10
-rw-r--r--src/plugins/platforms/android/src/qandroidplatformintegration.h2
-rw-r--r--src/plugins/platforms/cocoa/qcocoacolordialoghelper.h9
-rw-r--r--src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm263
-rw-r--r--src/plugins/platforms/cocoa/qcocoahelpers.h1
-rw-r--r--src/plugins/platforms/cocoa/qcocoahelpers.mm34
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenu.mm2
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenubar.mm5
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenuitem.mm3
-rw-r--r--src/plugins/platforms/cocoa/qcocoatheme.mm3
-rw-r--r--src/plugins/platforms/cocoa/qnsview.mm6
-rw-r--r--src/plugins/platforms/ios/qioscontext.mm3
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp13
-rw-r--r--src/plugins/platforms/windows/qwindowsdialoghelpers.cpp10
-rw-r--r--src/plugins/platforms/windows/qwindowsmousehandler.cpp9
-rw-r--r--src/plugins/platforms/windows/qwindowsservices.cpp18
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.cpp16
-rw-r--r--src/plugins/platforms/xcb/qxcbkeyboard.cpp35
-rw-r--r--src/plugins/platforms/xcb/qxcbkeyboard.h3
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.cpp2
-rw-r--r--src/printsupport/kernel/qcups.cpp9
-rw-r--r--src/sql/drivers/psql/qsql_psql_p.h2
-rw-r--r--src/sql/kernel/qsqlcachedresult.cpp2
-rw-r--r--src/tools/moc/moc.cpp7
-rw-r--r--src/tools/qdoc/htmlgenerator.cpp2
-rw-r--r--src/widgets/dialogs/qcolordialog.cpp11
-rw-r--r--src/widgets/dialogs/qcolordialog.h1
-rw-r--r--src/widgets/dialogs/qcolordialog_p.h1
-rw-r--r--src/widgets/effects/qgraphicseffect.cpp4
-rw-r--r--src/widgets/graphicsview/qgraphicsanchorlayout_p.cpp14
-rw-r--r--src/widgets/graphicsview/qgraphicsitem.cpp2
-rw-r--r--src/widgets/graphicsview/qgraphicsscene.cpp4
-rw-r--r--src/widgets/kernel/qapplication.cpp2
-rw-r--r--src/widgets/kernel/qapplication_qpa.cpp2
-rw-r--r--src/widgets/kernel/qwidget.cpp2
-rw-r--r--src/widgets/kernel/qwidget_qpa.cpp8
-rw-r--r--src/widgets/styles/qfusionstyle.cpp4
-rw-r--r--src/widgets/util/qsystemtrayicon_x11.cpp8
-rw-r--r--src/widgets/widgets/qcombobox.cpp5
-rw-r--r--src/widgets/widgets/qdockarealayout.cpp1
-rw-r--r--src/widgets/widgets/qlineedit.cpp6
-rw-r--r--src/widgets/widgets/qmainwindowlayout.cpp13
-rw-r--r--src/xml/doc/src/xml-processing.qdoc6
-rw-r--r--tests/auto/auto.pro5
-rw-r--r--tests/auto/bic/data/QtConcurrent.5.1.0.linux-gcc-ia32.txt3509
-rw-r--r--tests/auto/bic/data/QtCore.5.1.0.linux-gcc-ia32.txt3467
-rw-r--r--tests/auto/bic/data/QtDBus.5.1.0.linux-gcc-ia32.txt3806
-rw-r--r--tests/auto/bic/data/QtGui.5.1.0.linux-gcc-ia32.txt6598
-rw-r--r--tests/auto/bic/data/QtNetwork.5.1.0.linux-gcc-ia32.txt4279
-rw-r--r--tests/auto/bic/data/QtOpenGL.5.1.0.linux-gcc-ia32.txt17386
-rw-r--r--tests/auto/bic/data/QtPrintSupport.5.1.0.linux-gcc-ia32.txt17637
-rw-r--r--tests/auto/bic/data/QtSql.5.1.0.linux-gcc-ia32.txt3889
-rw-r--r--tests/auto/bic/data/QtTest.5.1.0.linux-gcc-ia32.txt3533
-rw-r--r--tests/auto/bic/data/QtWidgets.5.1.0.linux-gcc-ia32.txt17136
-rw-r--r--tests/auto/bic/data/QtXml.5.1.0.linux-gcc-ia32.txt3907
-rw-r--r--tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp21
-rw-r--r--tests/auto/corelib/io/qprocess/tst_qprocess.cpp10
-rw-r--r--tests/auto/corelib/io/qurl/tst_qurl.cpp5
-rw-r--r--tests/auto/corelib/io/qwinoverlappedionotifier/tst_qwinoverlappedionotifier.cpp1
-rw-r--r--tests/auto/corelib/json/tst_qtjson.cpp62
-rw-r--r--tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp28
-rw-r--r--tests/auto/gui/image/qicon/tst_qicon.cpp6
-rw-r--r--tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp208
-rw-r--r--tests/auto/gui/kernel/qwindow/tst_qwindow.cpp12
-rw-r--r--tests/auto/gui/util/qdesktopservices/tst_qdesktopservices.cpp1
-rw-r--r--tests/auto/installed_cmake/installed_cmake.pro5
-rw-r--r--tests/auto/other/headersclean/headersclean.pro2
-rw-r--r--tests/auto/tools/qmake/qmake.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/bundle-spaces/bundle-spaces.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/comments/comments.pro3
-rw-r--r--tests/auto/tools/qmake/testdata/duplicateLibraryEntries/duplib.pro4
-rw-r--r--tests/auto/tools/qmake/testdata/export_across_file_boundaries/foo.pro4
-rw-r--r--tests/auto/tools/qmake/testdata/findDeps/findDeps.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/findMocs/findMocs.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/func_export/func_export.pro4
-rw-r--r--tests/auto/tools/qmake/testdata/func_variables/func_variables.pro4
-rw-r--r--tests/auto/tools/qmake/testdata/functions/functions.pro3
-rw-r--r--tests/auto/tools/qmake/testdata/functions/infiletest.pro2
-rw-r--r--tests/auto/tools/qmake/testdata/functions/textfile1
-rw-r--r--tests/auto/tools/qmake/testdata/include_dir/foo.pro2
-rw-r--r--tests/auto/tools/qmake/testdata/include_function/include_existing_file.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/include_function/include_missing_file.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/include_function/include_missing_file2.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/install_depends/foo.pro4
-rw-r--r--tests/auto/tools/qmake/testdata/one_space/one_space.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/operators/operators.pro2
-rw-r--r--tests/auto/tools/qmake/testdata/prompt/prompt.pro2
-rw-r--r--tests/auto/tools/qmake/testdata/quotedfilenames/quotedfilenames.pro4
-rw-r--r--tests/auto/tools/qmake/testdata/shadow_files/foo.pro4
-rw-r--r--tests/auto/tools/qmake/testdata/simple_app/simple_app.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/simple_dll/simple_dll.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/simple_lib/simple_lib.pro2
-rw-r--r--tests/auto/tools/qmake/testdata/subdir_via_pro_file_extra_target/simple/simple.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/subdirs/simple_app/simple_app.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/subdirs/simple_dll/simple_dll.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/substitutes/test.pro1
-rw-r--r--tests/auto/tools/qmake/testdata/variables/variables.pro3
-rw-r--r--tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp21
-rw-r--r--tests/auto/widgets/styles/qmacstyle/tst_qmacstyle.cpp12
-rw-r--r--tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp9
-rw-r--r--tests/benchmarks/corelib/io/io.pro2
-rw-r--r--tests/benchmarks/corelib/io/qfileinfo/main.cpp15
-rw-r--r--tests/manual/manual.pro1
-rw-r--r--tests/manual/qdesktopservices/qdesktopservices.pro14
-rw-r--r--tests/manual/qdesktopservices/test.txt1
-rw-r--r--tests/manual/qdesktopservices/tst_qdesktopservices.cpp126
-rw-r--r--tools/configure/configureapp.cpp4
-rw-r--r--tools/configure/environment.cpp7
-rw-r--r--tools/configure/environment.h3
205 files changed, 87269 insertions, 1602 deletions
diff --git a/configure b/configure
index cdff2c4d5f..2f64fa9c18 100755
--- a/configure
+++ b/configure
@@ -5369,7 +5369,18 @@ elif [ "$CFG_XKBCOMMON" = "no" ]; then
fi
# EGL Support
-if [ "$CFG_EGL" != "no" ]; then
+if [ "$CFG_OPENGL" != "es2" ]; then
+ if [ "$CFG_EGL" = "yes" ] && [ "$CFG_OPENGL" = "desktop" ]; then
+ echo "EGL support was requested but Qt is being configured for desktop OpenGL."
+ echo "Either disable EGL support or enable OpenGL ES support."
+ exit 101
+ elif [ "$CFG_EGL" = "yes" ] && [ "$CFG_OPENGL" = "no" ]; then
+ echo "EGL support was requested but OpenGL ES support is disabled."
+ echo "Either disable EGL support or enable OpenGL ES support."
+ exit 101
+ fi
+ CFG_EGL=no
+elif [ "$CFG_EGL" != "no" ]; then
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
@@ -5387,13 +5398,6 @@ if [ "$CFG_EGL" != "no" ]; then
else
CFG_EGL=no
fi
-elif [ "$CFG_OPENGL" = "desktop" ]; then
- if [ "$CFG_EGL" = "yes" ]; then
- echo "EGL support was requested but Qt is being configured for desktop OpenGL."
- echo "Either disable EGL support or enable OpenGL ES support."
- exit 101
- fi
- CFG_EGL=no
fi
if [ "$CFG_EGLFS" != "no" ]; then
diff --git a/doc/global/externalsites/qt-webpages.qdoc b/doc/global/externalsites/qt-webpages.qdoc
index f7bb9b1b89..1bb6228ed1 100644
--- a/doc/global/externalsites/qt-webpages.qdoc
+++ b/doc/global/externalsites/qt-webpages.qdoc
@@ -33,7 +33,7 @@
\title Qt Bug Tracker
*/
/*!
- \externalpage http://qt.digia.com/downloads
+ \externalpage http://qt-project.org/downloads
\title Downloads
*/
/*!
diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf
index c94ee40934..ace2496f10 100644
--- a/mkspecs/common/clang.conf
+++ b/mkspecs/common/clang.conf
@@ -1,5 +1,5 @@
#
-# Qmake configuration for Clang on Linux and Mac
+# Qmake configuration for Clang on Linux, OS X and iOS
#
QMAKE_COMPILER = gcc clang llvm # clang pretends to be gcc
diff --git a/mkspecs/common/g++-macx.conf b/mkspecs/common/g++-macx.conf
index bae8eb0965..086510dd96 100644
--- a/mkspecs/common/g++-macx.conf
+++ b/mkspecs/common/g++-macx.conf
@@ -1,5 +1,5 @@
#
-# Qmake configuration for the GNU C++ compiler on Mac OS X
+# Qmake configuration for the GNU C++ compiler on OS X
#
# Before making changes to this file, please read the comment in
# gcc-base.conf, to make sure the change goes in the right place.
diff --git a/mkspecs/common/gcc-base-mac.conf b/mkspecs/common/gcc-base-mac.conf
index fa2b5765bf..e0469f31cc 100644
--- a/mkspecs/common/gcc-base-mac.conf
+++ b/mkspecs/common/gcc-base-mac.conf
@@ -1,5 +1,5 @@
#
-# Base qmake configuration for GCC on Mac OS X and iOS
+# Base qmake configuration for GCC on OS X and iOS
#
# Before making changes to this file, please read the comment in
# gcc-base.conf, to make sure the change goes in the right place.
diff --git a/mkspecs/common/llvm.conf b/mkspecs/common/llvm.conf
index 8f6946f9a2..c906dce6fc 100644
--- a/mkspecs/common/llvm.conf
+++ b/mkspecs/common/llvm.conf
@@ -1,5 +1,5 @@
#
-# Qmake configuration for LLVM on Linux and Mac
+# Qmake configuration for LLVM on Linux, OS X and iOS
#
QMAKE_COMPILER = gcc llvm
diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf
index 341c74657a..1b480aa267 100644
--- a/mkspecs/common/mac.conf
+++ b/mkspecs/common/mac.conf
@@ -1,5 +1,5 @@
#
-# qmake configuration for common Mac OS (OSX and iOS)
+# qmake configuration common to OS X and iOS
#
!load(device_config): error(Could not successfully load device configuration)
diff --git a/mkspecs/common/macx.conf b/mkspecs/common/macx.conf
index 7f9f54ec12..48efae5d1e 100644
--- a/mkspecs/common/macx.conf
+++ b/mkspecs/common/macx.conf
@@ -1,5 +1,5 @@
#
-# qmake configuration for common Mac OS X
+# qmake configuration for common OS X
#
QMAKE_PLATFORM += macx
diff --git a/mkspecs/features/ctest_testcase.prf b/mkspecs/features/ctest_testcase.prf
index 8eb6f3263e..3b7f3091c5 100644
--- a/mkspecs/features/ctest_testcase.prf
+++ b/mkspecs/features/ctest_testcase.prf
@@ -1,96 +1,9 @@
-win32 {
- CMAKE_VERSION = $$system(cmake --version 2>NUL)
-} else {
- CMAKE_VERSION = $$system(cmake --version 2>/dev/null)
-}
-
-
-check.commands =
-isEmpty(CMAKE_VERSION) {
- message("cmake executable not found. Not running CMake unit tests")
-} else {
- CTEST_VERSION = $$system(ctest --version)
- isEmpty(CTEST_VERSION) {
- message("ctest executable not found. Not running CMake unit tests")
- } else {
- CMAKE_VERSION = $$last(CMAKE_VERSION)
- CMAKE_VERSION_MAJOR = $$section(CMAKE_VERSION, ., 0, 0)
- CMAKE_VERSION_MINOR = $$section(CMAKE_VERSION, ., 1, 1)
- CMAKE_VERSION_PATCH = $$section(CMAKE_VERSION, ., 2, 2)
- # CMake can report versions like 2.8.11-rc1, so strip off the rc part.
- CMAKE_VERSION_PATCH ~= s,-.*,,
-
- VERSION_OK =
- greaterThan(CMAKE_VERSION_MAJOR, 2) {
- VERSION_OK = 1
- } else:greaterThan(CMAKE_VERSION_MAJOR, 1):greaterThan(CMAKE_VERSION_MINOR, 8) {
- VERSION_OK = 1
- } else:greaterThan(CMAKE_VERSION_MAJOR, 1):greaterThan(CMAKE_VERSION_MINOR, 7):greaterThan(CMAKE_VERSION_PATCH, 2) {
- VERSION_OK = 1
- }
-
- isEmpty(VERSION_OK) {
- message("cmake $$CMAKE_VERSION is too old for this test.")
- } else {
- load(cmake_functions)
-
- CMAKE_BUILD_TYPE = Debug
- CONFIG(release, debug|release):CMAKE_BUILD_TYPE = Release
- win32-g++*:isEmpty(CROSS_COMPILE):CMAKE_GENERATOR = -G \"MinGW Makefiles\"
- win32:equals(QT_ARCH, x86_64) {
- win32-msvc2010:CMAKE_GENERATOR = -G \"Visual Studio 10 Win64\"
- win32-msvc2012:CMAKE_GENERATOR = -G \"Visual Studio 11 Win64\"
- }
-
- BUILD_DIR = $$replace($$list($$OUT_PWD/build), /, $$QMAKE_DIR_SEP)
-
- for(d, $$list($$split($$list($$[QMAKE_MKSPECS]), $$DIRLIST_SEPARATOR))) {
- CMAKE_PREFIX_PATH *= $$dirname(d)
- }
- CMAKE_PREFIX_PATH=\"$$join(CMAKE_PREFIX_PATH, ;)\"
-
- !qtHaveModule(widgets): CMAKE_MODULE_DEFINES += -DNO_WIDGETS=True
- !qtHaveModule(dbus): CMAKE_MODULE_DEFINES += -DNO_DBUS=True
-
- dependentmodules = $$resolve_depends(CMAKE_QT_MODULES_UNDER_TEST, "QT.")
- dependentmodules -= $$CMAKE_QT_MODULES_UNDER_TEST
- dependentmodules = $$cmakeModuleList($$dependentmodules)
-
- contains(QT_CONFIG, angle): CMAKE_GL_DEFINES = -DQT_WITH_ANGLE=True
- !contains(QT_CONFIG, egl): CMAKE_GL_DEFINES += -DNO_EGL=True
-
- CMAKE_MODULE_VERSIONS =
- CMAKE_MODULES_UNDER_TEST =
- for (MODULE_UNDER_TEST, CMAKE_QT_MODULES_UNDER_TEST) {
- CMAKE_NAME = $$cmakeModuleName($$MODULE_UNDER_TEST)
- CMAKE_MODULE_VERSIONS += \
- -DCMAKE_$${CMAKE_NAME}_MODULE_MAJOR_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.MAJOR_VERSION) \
- -DCMAKE_$${CMAKE_NAME}_MODULE_MINOR_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.MINOR_VERSION) \
- -DCMAKE_$${CMAKE_NAME}_MODULE_PATCH_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.PATCH_VERSION)
- CMAKE_MODULES_UNDER_TEST += $$CMAKE_NAME
- }
- CMAKE_MODULES_UNDER_TEST = $$join(CMAKE_MODULES_UNDER_TEST, ;)
-
- check.commands = \
- $(MKDIR) $$BUILD_DIR && cd $$BUILD_DIR && \
- cmake $$_PRO_FILE_PWD_ $$CMAKE_GENERATOR \
- -DCMAKE_VERBOSE_MAKEFILE=1 \
- $$CMAKE_MODULE_DEFINES \
- $$CMAKE_GL_DEFINES \
- -DCMAKE_BUILD_TYPE=$${CMAKE_BUILD_TYPE} \
- -DCMAKE_PREFIX_PATH=$$CMAKE_PREFIX_PATH \
- -DQt5_MODULE_TEST_DEPENDS=\"$${dependentmodules}\" \
- $${CMAKE_MODULE_VERSIONS} \
- -DCMAKE_MODULES_UNDER_TEST=\"$$CMAKE_MODULES_UNDER_TEST\" && \
- $(TESTRUNNER) ctest --output-on-failure
-
- }
- }
-}
+CMAKE_TEST_LOCATION = $$_PRO_FILE_PWD_
-insignificant_test:!isEmpty(check.commands) {
- check.commands = -$${check.commands}
+for(d, $$list($$split($$list($$[QMAKE_MKSPECS]), $$DIRLIST_SEPARATOR))) {
+ CMAKE_PREFIX_PATH *= $$clean_path($$dirname(d))
}
+CMAKE_PREFIX_PATH=\"$$join(CMAKE_PREFIX_PATH, ;)\"
-QMAKE_EXTRA_TARGETS *= check
+include(ctest_testcase_common.prf)
diff --git a/mkspecs/features/ctest_testcase_common.prf b/mkspecs/features/ctest_testcase_common.prf
new file mode 100644
index 0000000000..2f66909bb4
--- /dev/null
+++ b/mkspecs/features/ctest_testcase_common.prf
@@ -0,0 +1,97 @@
+
+win32 {
+ CMAKE_VERSION = $$system(cmake --version 2>NUL)
+} else {
+ CMAKE_VERSION = $$system(cmake --version 2>/dev/null)
+}
+
+
+check.commands =
+QMAKE_EXTRA_TARGETS *= check
+
+isEmpty(CMAKE_VERSION) {
+ message("cmake executable not found. Not running CMake unit tests")
+ return()
+}
+
+win32 {
+ CTEST_VERSION = $$system(ctest --version 2>NUL)
+} else {
+ CTEST_VERSION = $$system(ctest --version 2>/dev/null)
+}
+
+isEmpty(CTEST_VERSION) {
+ message("ctest executable not found. Not running CMake unit tests")
+ return()
+}
+
+CMAKE_VERSION = $$last(CMAKE_VERSION)
+CMAKE_VERSION_MAJOR = $$section(CMAKE_VERSION, ., 0, 0)
+CMAKE_VERSION_MINOR = $$section(CMAKE_VERSION, ., 1, 1)
+CMAKE_VERSION_PATCH = $$section(CMAKE_VERSION, ., 2, 2)
+# CMake can report versions like 2.8.11-rc1, so strip off the rc part.
+CMAKE_VERSION_PATCH ~= s,-.*,,
+
+VERSION_OK =
+greaterThan(CMAKE_VERSION_MAJOR, 2) {
+ VERSION_OK = 1
+} else:greaterThan(CMAKE_VERSION_MAJOR, 1):greaterThan(CMAKE_VERSION_MINOR, 8) {
+ VERSION_OK = 1
+} else:greaterThan(CMAKE_VERSION_MAJOR, 1):greaterThan(CMAKE_VERSION_MINOR, 7):greaterThan(CMAKE_VERSION_PATCH, 2) {
+ VERSION_OK = 1
+}
+
+isEmpty(VERSION_OK) {
+ message("cmake $$CMAKE_VERSION is too old for this test.")
+ return()
+}
+
+load(cmake_functions)
+
+CMAKE_BUILD_TYPE = Debug
+CONFIG(release, debug|release):CMAKE_BUILD_TYPE = Release
+win32-g++*:isEmpty(CROSS_COMPILE):CMAKE_GENERATOR = -G \"MinGW Makefiles\"
+win32:equals(QT_ARCH, x86_64) {
+ win32-msvc2010:CMAKE_GENERATOR = -G \"Visual Studio 10 Win64\"
+ win32-msvc2012:CMAKE_GENERATOR = -G \"Visual Studio 11 Win64\"
+}
+
+BUILD_DIR = $$replace($$list($$OUT_PWD/build), /, $$QMAKE_DIR_SEP)
+
+!qtHaveModule(widgets): CMAKE_MODULE_DEFINES += -DNO_WIDGETS=True
+!qtHaveModule(dbus): CMAKE_MODULE_DEFINES += -DNO_DBUS=True
+
+dependentmodules = $$resolve_depends(CMAKE_QT_MODULES_UNDER_TEST, "QT.")
+dependentmodules -= $$CMAKE_QT_MODULES_UNDER_TEST
+dependentmodules = $$cmakeModuleList($$dependentmodules)
+
+contains(QT_CONFIG, angle): CMAKE_GL_DEFINES = -DQT_WITH_ANGLE=True
+!contains(QT_CONFIG, egl): CMAKE_GL_DEFINES += -DNO_EGL=True
+
+CMAKE_MODULE_VERSIONS =
+CMAKE_MODULES_UNDER_TEST =
+for (MODULE_UNDER_TEST, CMAKE_QT_MODULES_UNDER_TEST) {
+ CMAKE_NAME = $$cmakeModuleName($$MODULE_UNDER_TEST)
+ CMAKE_MODULE_VERSIONS += \
+ -DCMAKE_$${CMAKE_NAME}_MODULE_MAJOR_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.MAJOR_VERSION) \
+ -DCMAKE_$${CMAKE_NAME}_MODULE_MINOR_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.MINOR_VERSION) \
+ -DCMAKE_$${CMAKE_NAME}_MODULE_PATCH_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.PATCH_VERSION)
+ CMAKE_MODULES_UNDER_TEST += $$CMAKE_NAME
+}
+CMAKE_MODULES_UNDER_TEST = $$join(CMAKE_MODULES_UNDER_TEST, ;)
+
+check.commands = \
+ $(MKDIR) $$BUILD_DIR && cd $$BUILD_DIR && \
+ cmake $$CMAKE_TEST_LOCATION $$CMAKE_GENERATOR \
+ -DCMAKE_VERBOSE_MAKEFILE=1 \
+ $$CMAKE_MODULE_DEFINES \
+ $$CMAKE_GL_DEFINES \
+ -DCMAKE_BUILD_TYPE=$${CMAKE_BUILD_TYPE} \
+ -DCMAKE_PREFIX_PATH=$$CMAKE_PREFIX_PATH \
+ -DQt5_MODULE_TEST_DEPENDS=\"$${dependentmodules}\" \
+ $${CMAKE_MODULE_VERSIONS} \
+ -DCMAKE_MODULES_UNDER_TEST=\"$$CMAKE_MODULES_UNDER_TEST\" && \
+ $(TESTRUNNER) ctest --output-on-failure
+
+insignificant_test:!isEmpty(check.commands): \
+ check.commands = -$${check.commands}
diff --git a/mkspecs/features/ctest_testcase_installed.prf b/mkspecs/features/ctest_testcase_installed.prf
new file mode 100644
index 0000000000..be741b4a0b
--- /dev/null
+++ b/mkspecs/features/ctest_testcase_installed.prf
@@ -0,0 +1,8 @@
+
+CMAKE_TEST_LOCATION = $$_PRO_FILE_PWD_/../cmake
+
+CMAKE_PREFIX_PATH = $$[QT_INSTALL_PREFIX]
+
+CONFIG += insignificant_test
+
+include(ctest_testcase_common.prf)
diff --git a/mkspecs/features/data/android/dx.bat b/mkspecs/features/data/android/dx.bat
index c4ad0e3ebc..9816f9607d 100644
--- a/mkspecs/features/data/android/dx.bat
+++ b/mkspecs/features/data/android/dx.bat
@@ -27,34 +27,35 @@ REM and set up progdir to be the fully-qualified pathname of its directory.
set prog=%~f0
if [%1]==[] goto badArgs
-set "androidsdk=%1"
+set "dx_jar_path=%1"
shift /1
if [%1]==[] goto badArgs
+REM Use dpZ here to make it more like the Google version.
+for %%F in ("%dx_jar_path%") do set dpZ=%%~dpF
+
rem Check we have a valid Java.exe in the path.
set java_exe=
-call "%androidsdk%\tools\lib\find_java.bat"
+if exist "%dpZ%..\tools\lib\find_java.bat" call "%dpZ%..\tools\lib\find_java.bat"
+if exist "%dpZ%..\..\tools\lib\find_java.bat" call "%dpZ%..\..\tools\lib\find_java.bat"
+
if not defined java_exe goto :EOF
set jarfile=dx.jar
-set "frameworkdir=%androidsdk%\platform-tools"
-
-if exist "%frameworkdir%\%jarfile%" goto JarFileOk
- set "frameworkdir=%frameworkdir%\lib"
+set "frameworkdir=%dpZ%"
+rem frameworkdir must not end with a dir sep.
+set "frameworkdir=%frameworkdir:~0,-1%"
if exist "%frameworkdir%\%jarfile%" goto JarFileOk
- set "frameworkdir=%androidsdk%\framework"
+ set "frameworkdir=%dpZ%lib"
if exist "%frameworkdir%\%jarfile%" goto JarFileOk
- set "frameworkdir=%androidsdk%\build-tools\%ANDROID_BUILD_TOOLS_REVISION%\lib"
-
-if exist "%frameworkdir%\%jarfile%" goto JarFileOk
- set "frameworkdir=%androidsdk%\build-tools\17.0.0\lib"
+ set "frameworkdir=%dpZ%..\framework"
:JarFileOk
-set jarpath=%frameworkdir%\%jarfile%
+set "jarpath=%frameworkdir%\%jarfile%"
set javaOpts=
set args=
@@ -97,12 +98,11 @@ set a=%~1
:endArgs
set javaOpts=%javaOpts% %defaultXmx% %defaultXss%
-
call "%java_exe%" %javaOpts% -Djava.ext.dirs="%frameworkdir%" -jar "%jarpath%" %params%
goto :EOF
:badArgs
-echo Usage: dx (for Qt) <android_sdk_path> <dx_arguments>
-echo Example: dx (for Qt) C:\android-sdk --dex --output=target.jar .classes
+echo Usage: dx (for Qt) ^<android_sdk_dx_jar_path^> ^<dx_arguments^>
+echo Example: dx (for Qt) C:\android-sdk\build-tools\17.0.0\dx.jar --dex --output=target.jar .classes
diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
index 1a2bd4a94d..38623349be 100644
--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
@@ -78,12 +78,26 @@ endmacro()
if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
!!IF !no_module_headers
+!!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK)
+ set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS
+ \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework\"
+ \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Headers\"
+ )
+!!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
+ set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
+ \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/\"
+ \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\"
+ )
+!!ELSE
+ set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS)
+!!ENDIF
+!!ELSE
!!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\")
!!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
- \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}\"
- \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}/$${MODULE_INCNAME}\"
+ \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\"
+ \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\"
)
!!ELSE
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS)
@@ -92,13 +106,14 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR\" \"$${CMAKE_INCLUDE_DIR}Qt$${CMAKE_MODULE_NAME}\")
!!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
- \"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}\"
- \"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}/$${MODULE_INCNAME}\"
+ \"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\"
+ \"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\"
)
!!ELSE
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS)
!!ENDIF
!!ENDIF
+!!ENDIF
!!ELSE
set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS)
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS)
@@ -135,7 +150,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
foreach(_module_dep ${_Qt5$${CMAKE_MODULE_NAME}_MODULE_DEPENDENCIES})
if (NOT Qt5${_module_dep}_FOUND)
find_package(Qt5${_module_dep}
- ${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING} ${_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT}
+ $$VERSION ${_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT}
${_Qt5$${CMAKE_MODULE_NAME}_DEPENDENCIES_FIND_QUIET}
${_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED}
PATHS \"${CMAKE_CURRENT_LIST_DIR}/..\" NO_DEFAULT_PATH
diff --git a/mkspecs/features/java.prf b/mkspecs/features/java.prf
index 411a839ad8..d8ceb536a7 100644
--- a/mkspecs/features/java.prf
+++ b/mkspecs/features/java.prf
@@ -58,7 +58,13 @@ QMAKE_EXTENSION_SHLIB = jar
# Override linker with dex (for distributable Android archives) or jar (for other java builds)
android:!bundled_jar_file {
contains(QMAKE_HOST.os, Windows) {
- DEX_CMD = $$PWD/data/android/dx $$SDK_ROOT
+ # The location where dx.bat expects itself to be found is used as the landmark instead
+ # of the base sdk folder.
+ # Doing it this way makes this logic more similar to the other platforms and
+ # also means that our dx.bat is more like Google's dx.bat
+ DEX_BAT = $$SDK_ROOT/platform-tools/dx.bat
+ !exists($$DEX_BAT): DEX_BAT = $$SDK_ROOT/build-tools/$$BUILD_TOOLS_REVISION/dx.bat
+ DEX_CMD = $$PWD/data/android/dx $$DEX_BAT
} else {
DEX_CMD = $$SDK_ROOT/platform-tools/dx
!exists($$DEX_CMD): DEX_CMD = $$SDK_ROOT/build-tools/$$BUILD_TOOLS_REVISION/dx
diff --git a/mkspecs/features/qt_docs.prf b/mkspecs/features/qt_docs.prf
index a0f765b67f..be3cd5273c 100644
--- a/mkspecs/features/qt_docs.prf
+++ b/mkspecs/features/qt_docs.prf
@@ -19,11 +19,12 @@ isEmpty(QMAKE_DOCS_TARGETDIR): QMAKE_DOCS_TARGETDIR = $$QMAKE_DOCS_TARGET
QMAKE_DOCS_OUTPUTDIR = $$QMAKE_DOCS_BASE_OUTDIR/$$QMAKE_DOCS_TARGETDIR
qtPrepareTool(QDOC, qdoc)
-for(qmod, QMAKEMODULES): \
- QDOC += -indexdir $$section(qmod, /, 0, -3)/doc
QDOC += -outputdir $$QMAKE_DOCS_OUTPUTDIR
!build_online_docs: \
QDOC += -installdir $$[QT_INSTALL_DOCS]
+DOC_INDEXES =
+for(qmod, QMAKEMODULES): \
+ DOC_INDEXES += -indexdir $$section(qmod, /, 0, -3)/doc
qtver.name = QT_VERSION
qtver.value = $$VERSION
isEmpty(qtver.value): qtver.value = $$MODULE_VERSION
@@ -38,9 +39,9 @@ qtAddToolEnv(QDOC, qtver qtmver qtvertag qtdocs)
doc_command = $$QDOC $$QMAKE_DOCS
prepare_docs {
prepare_docs.commands += $$doc_command -prepare -no-link-errors
- generate_docs.commands += $$doc_command -generate
+ generate_docs.commands += $$doc_command -generate $$DOC_INDEXES
} else {
- html_docs.commands += $$doc_command
+ html_docs.commands += $$doc_command $$DOC_INDEXES
}
!build_online_docs {
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index cd74c1d7cf..2f2c94ce06 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -61,6 +61,9 @@ defineTest(qtAddModule) {
MODULE_CONFIG = $$eval(QT.$${1}.module_config)
MODULE_MAJOR_VERSION = $$eval(QT.$${1}.MAJOR_VERSION)
+ contains(MODULE_CONFIG, internal_module):!if(auto_use_privates|isEqual(2, UsePrivate)): \
+ error("Module $$1 has no public API.")
+
qtProcessModuleFlags(CONFIG, QT.$${1}.CONFIG)
qtProcessModuleFlags(DEFINES, QT.$${1}.DEFINES)
diff --git a/mkspecs/features/qt_headersclean.prf b/mkspecs/features/qt_headersclean.prf
index 4128392997..ab0a722628 100644
--- a/mkspecs/features/qt_headersclean.prf
+++ b/mkspecs/features/qt_headersclean.prf
@@ -36,7 +36,8 @@ TARGET = tst_headersclean
includes =
for(q, QT) {
- qn = $$eval(QT.$${q}.name)
+ sq = $$replace(q, -private\$, )
+ qn = $$eval(QT.$${sq}.name)
isEmpty(qn): \
QT -= $$q
else: \
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
index 46f8e56ad5..7f7de85bb6 100644
--- a/mkspecs/features/qt_module.prf
+++ b/mkspecs/features/qt_module.prf
@@ -87,19 +87,19 @@ contains(TARGET, QtAddOn.*): \
else: \
DEFINES += QT_BUILD_$${ucmodule}_LIB
-#mac frameworks
+# OS X and iOS frameworks
mac:CONFIG(shared, static|shared):contains(QT_CONFIG, qt_framework) {
#QMAKE_FRAMEWORK_VERSION = 4.0
- CONFIG += lib_bundle qt_no_framework_direct_includes qt_framework
- CONFIG -= qt_install_headers #no need to install these as well
+ CONFIG += lib_bundle qt_framework
!debug_and_release|if(build_all:CONFIG(release, debug|release)) {
FRAMEWORK_HEADERS.version = Versions
FRAMEWORK_HEADERS.files = $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES
FRAMEWORK_HEADERS.path = Headers
- FRAMEWORK_PRIVATE_HEADERS.version = Versions
FRAMEWORK_PRIVATE_HEADERS.files = $$SYNCQT.PRIVATE_HEADER_FILES
- FRAMEWORK_PRIVATE_HEADERS.path = Headers/$$VERSION/$$MODULE_INCNAME
- QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS FRAMEWORK_PRIVATE_HEADERS
+ FRAMEWORK_PRIVATE_HEADERS.path = Headers/$$VERSION/$$MODULE_INCNAME/private
+ FRAMEWORK_QPA_HEADERS.files = $$SYNCQT.QPA_HEADER_FILES
+ FRAMEWORK_QPA_HEADERS.path = Headers/$$VERSION/$$MODULE_INCNAME/qpa
+ QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS FRAMEWORK_PRIVATE_HEADERS FRAMEWORK_QPA_HEADERS
}
}
diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf
index 81b37f0e92..90e5288524 100644
--- a/mkspecs/features/qt_module_pris.prf
+++ b/mkspecs/features/qt_module_pris.prf
@@ -51,11 +51,15 @@ else: \
else: \
module_rundep =
static: \
- module_build_type = "QT.$${MODULE}.module_config = staticlib"
+ module_build_type = staticlib
else:mac:contains(QT_CONFIG, qt_framework): \
- module_build_type = "QT.$${MODULE}.module_config = lib_bundle"
+ module_build_type = lib_bundle
else: \
module_build_type =
+ internal_module: \
+ module_build_type += internal_module
+ !isEmpty(module_build_type): \
+ module_build_type = "QT.$${MODULE}.module_config = $$module_build_type"
!isEmpty(MODULE_CONFIG): \
module_config = "QT.$${MODULE}.CONFIG = $$MODULE_CONFIG"
else: \
diff --git a/mkspecs/features/simd.prf b/mkspecs/features/simd.prf
index 751f836a2d..e0cd5a3a58 100644
--- a/mkspecs/features/simd.prf
+++ b/mkspecs/features/simd.prf
@@ -119,7 +119,6 @@ QT_CPU_FEATURES = $$eval(QT_CPU_FEATURES.$$QT_ARCH)
}
neon {
HEADERS += $$NEON_HEADERS
- SOURCES += $$NEON_ASM
neon_compiler.commands = $$QMAKE_CXX -c $(CXXFLAGS)
!contains(QT_CPU_FEATURES, neon):neon_compiler.commands += $$QMAKE_CFLAGS_NEON
@@ -130,7 +129,16 @@ QT_CPU_FEATURES = $$eval(QT_CPU_FEATURES.$$QT_ARCH)
neon_compiler.variable_out = OBJECTS
neon_compiler.name = compiling[neon] ${QMAKE_FILE_IN}
silent:neon_compiler.commands = @echo compiling[neon] ${QMAKE_FILE_IN} && $$neon_compiler.commands
- QMAKE_EXTRA_COMPILERS += neon_compiler
+ neon_assembler.commands = $$QMAKE_CC -c $(CFLAGS)
+ !contains(QT_CPU_FEATURES, neon):neon_assembler.commands += $$QMAKE_CFLAGS_NEON
+ neon_assembler.commands += $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+ neon_assembler.dependency_type = TYPE_C
+ neon_assembler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+ neon_assembler.input = NEON_ASM
+ neon_assembler.variable_out = OBJECTS
+ neon_assembler.name = assembling[neon] ${QMAKE_FILE_IN}
+ silent:neon_assembler.commands = @echo assembling[neon] ${QMAKE_FILE_IN} && $$neon_assembler.commands
+ QMAKE_EXTRA_COMPILERS += neon_compiler neon_assembler
}
iwmmxt {
HEADERS += $$IWMMXT_HEADERS
@@ -153,24 +161,32 @@ QT_CPU_FEATURES = $$eval(QT_CPU_FEATURES.$$QT_ARCH)
mips_dsp_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
mips_dsp_compiler.dependency_type = TYPE_C
mips_dsp_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
- mips_dsp_compiler.input = MIPS_DSP_ASM MIPS_DSP_SOURCES
+ mips_dsp_compiler.input = MIPS_DSP_SOURCES
mips_dsp_compiler.variable_out = OBJECTS
mips_dsp_compiler.name = compiling[mips_dsp] ${QMAKE_FILE_IN}
silent:mips_dsp_compiler.commands = @echo compiling[mips_dsp] ${QMAKE_FILE_IN} && $$mips_dsp_compiler.commands
+ mips_dsp_assembler.commands = $$QMAKE_CC -c
+ mips_dsp_assembler.commands += $(CFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+ mips_dsp_assembler.dependency_type = TYPE_C
+ mips_dsp_assembler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+ mips_dsp_assembler.input = MIPS_DSP_ASM
+ mips_dsp_assembler.variable_out = OBJECTS
+ mips_dsp_assembler.name = assembling[mips_dsp] ${QMAKE_FILE_IN}
+ silent:mips_dsp_assembler.commands = @echo assembling[mips_dsp] ${QMAKE_FILE_IN} && $$mips_dsp_assembler.commands
QMAKE_EXTRA_COMPILERS += mips_dsp_compiler
}
mips_dspr2 {
HEADERS += $$MIPS_DSP_HEADERS
- mips_dspr2_compiler.commands = $$QMAKE_CXX -c
- mips_dspr2_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
- mips_dspr2_compiler.dependency_type = TYPE_C
- mips_dspr2_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
- mips_dspr2_compiler.input = MIPS_DSPR2_ASM
- mips_dspr2_compiler.variable_out = OBJECTS
- mips_dspr2_compiler.name = compiling[mips_dspr2] ${QMAKE_FILE_IN}
- silent:mips_dspr2_compiler.commands = @echo compiling[mips_dspr2] ${QMAKE_FILE_IN} && $$mips_dspr2_compiler.commands
- QMAKE_EXTRA_COMPILERS += mips_dspr2_compiler
+ mips_dspr2_assembler.commands = $$QMAKE_CC -c
+ mips_dspr2_assembler.commands += $(CFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+ mips_dspr2_assembler.dependency_type = TYPE_C
+ mips_dspr2_assembler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+ mips_dspr2_assembler.input = MIPS_DSPR2_ASM
+ mips_dspr2_assembler.variable_out = OBJECTS
+ mips_dspr2_assembler.name = assembling[mips_dspr2] ${QMAKE_FILE_IN}
+ silent:mips_dspr2_assembler.commands = @echo assembling[mips_dspr2] ${QMAKE_FILE_IN} && $$mips_dspr2_assembler.commands
+ QMAKE_EXTRA_COMPILERS += mips_dspr2_assembler
}
} else:win32-msvc* {
sse2 {
diff --git a/mkspecs/macx-clang-libc++-32/qmake.conf b/mkspecs/macx-clang-libc++-32/qmake.conf
index aea19a4bc3..3f7342da0b 100644
--- a/mkspecs/macx-clang-libc++-32/qmake.conf
+++ b/mkspecs/macx-clang-libc++-32/qmake.conf
@@ -2,6 +2,8 @@
# qmake configuration for 32-bit Clang on OS X
#
+warning("QMakespec macx-clang-libc++-32 is deprecated. Use macx-clang-32 instead.")
+
MAKEFILE_GENERATOR = UNIX
CONFIG += app_bundle incremental global_init_link_order lib_version_first plugin_no_soname
QMAKE_INCREMENTAL_STYLE = sublib
diff --git a/mkspecs/macx-clang-libc++/qmake.conf b/mkspecs/macx-clang-libc++/qmake.conf
index 94cc0036d2..7f4151e81b 100644
--- a/mkspecs/macx-clang-libc++/qmake.conf
+++ b/mkspecs/macx-clang-libc++/qmake.conf
@@ -2,6 +2,8 @@
# qmake configuration for Clang on OS X
#
+warning("QMakespec macx-clang-libc++ is deprecated. Use macx-clang instead.")
+
MAKEFILE_GENERATOR = UNIX
CONFIG += app_bundle incremental global_init_link_order lib_version_first plugin_no_soname
QMAKE_INCREMENTAL_STYLE = sublib
diff --git a/mkspecs/macx-g++-32/qmake.conf b/mkspecs/macx-g++-32/qmake.conf
index bf8f68c680..6ef78aacbf 100644
--- a/mkspecs/macx-g++-32/qmake.conf
+++ b/mkspecs/macx-g++-32/qmake.conf
@@ -3,7 +3,7 @@
#
# qmake configuration for macx-g++
#
-# Mac OS X + command-line compiler
+# OS X + command-line compiler
#
MAKEFILE_GENERATOR = UNIX
diff --git a/mkspecs/macx-g++/qmake.conf b/mkspecs/macx-g++/qmake.conf
index 96d9f6e487..a6c075a2ce 100644
--- a/mkspecs/macx-g++/qmake.conf
+++ b/mkspecs/macx-g++/qmake.conf
@@ -3,7 +3,7 @@
#
# qmake configuration for macx-g++
#
-# Mac OS X + command-line compiler
+# OS X + command-line compiler
#
MAKEFILE_GENERATOR = UNIX
diff --git a/mkspecs/macx-g++40/qmake.conf b/mkspecs/macx-g++40/qmake.conf
index fe7683e02d..f40315a602 100644
--- a/mkspecs/macx-g++40/qmake.conf
+++ b/mkspecs/macx-g++40/qmake.conf
@@ -3,7 +3,7 @@
#
# qmake configuration for macx-g++
#
-# Mac OS X + command-line compiler
+# OS X + command-line compiler
#
MAKEFILE_GENERATOR = UNIX
diff --git a/mkspecs/macx-g++42/qmake.conf b/mkspecs/macx-g++42/qmake.conf
index 9041d8ba05..25383e9cb6 100644
--- a/mkspecs/macx-g++42/qmake.conf
+++ b/mkspecs/macx-g++42/qmake.conf
@@ -3,7 +3,7 @@
#
# qmake configuration for macx-g++
#
-# Mac OS X + command-line compiler
+# OS X + command-line compiler
#
MAKEFILE_GENERATOR = UNIX
diff --git a/mkspecs/macx-icc/qmake.conf b/mkspecs/macx-icc/qmake.conf
index 2522d5c382..69f0b4cc0c 100644
--- a/mkspecs/macx-icc/qmake.conf
+++ b/mkspecs/macx-icc/qmake.conf
@@ -1,7 +1,7 @@
#
# qmake configuration for macx-icc
#
-# Written for Intel C++ Compiler versions 8.x and 9.x for Mac OS X
+# Written for Intel C++ Compiler versions 8.x and 9.x for OS X
#
# Note: Some of the remarks from the Intel compiler are disabled (even
# with 'warn_on' specified):
diff --git a/mkspecs/macx-llvm/qmake.conf b/mkspecs/macx-llvm/qmake.conf
index 7e6ee1c9de..7bdef70943 100644
--- a/mkspecs/macx-llvm/qmake.conf
+++ b/mkspecs/macx-llvm/qmake.conf
@@ -3,7 +3,7 @@
#
# qmake configuration for macx-g++
#
-# Mac OS X + command-line compiler
+# OS X + command-line compiler
#
MAKEFILE_GENERATOR = UNIX
diff --git a/mkspecs/macx-xcode/qmake.conf b/mkspecs/macx-xcode/qmake.conf
index 7f65d263a3..bfc1c58935 100644
--- a/mkspecs/macx-xcode/qmake.conf
+++ b/mkspecs/macx-xcode/qmake.conf
@@ -1,7 +1,7 @@
#
# qmake configuration for macx-xcode
#
-# Mac OS X + XCode
+# OS X + Xcode
#
include(../$$[QMAKE_XSPEC]/qmake.conf)
diff --git a/mkspecs/win32-icc/qplatformdefs.h b/mkspecs/win32-icc/qplatformdefs.h
index b1950cd71f..e03bce8e6c 100644
--- a/mkspecs/win32-icc/qplatformdefs.h
+++ b/mkspecs/win32-icc/qplatformdefs.h
@@ -39,110 +39,4 @@
**
****************************************************************************/
-#ifndef QPLATFORMDEFS_H
-#define QPLATFORMDEFS_H
-
-#ifdef UNICODE
-#ifndef _UNICODE
-#define _UNICODE
-#endif
-#endif
-
-// Get Qt defines/settings
-
-#include "qglobal.h"
-
-#define _POSIX_
-#include <limits.h>
-#undef _POSIX_
-
-#include <tchar.h>
-#include <io.h>
-#include <direct.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <stdlib.h>
-#include <windows.h>
-
-#ifdef QT_LARGEFILE_SUPPORT
-#define QT_STATBUF struct _stati64 // non-ANSI defs
-#define QT_STATBUF4TSTAT struct _stati64 // non-ANSI defs
-#define QT_STAT ::_stati64
-#define QT_FSTAT ::_fstati64
-#else
-#define QT_STATBUF struct _stat // non-ANSI defs
-#define QT_STATBUF4TSTAT struct _stat // non-ANSI defs
-#define QT_STAT ::_stat
-#define QT_FSTAT ::_fstat
-#endif
-#define QT_STAT_REG _S_IFREG
-#define QT_STAT_DIR _S_IFDIR
-#define QT_STAT_MASK _S_IFMT
-#if defined(_S_IFLNK)
-# define QT_STAT_LNK _S_IFLNK
-#endif
-#define QT_FILENO _fileno
-#define QT_OPEN ::_open
-#define QT_CLOSE ::_close
-#ifdef QT_LARGEFILE_SUPPORT
-#define QT_LSEEK ::_lseeki64
-#define QT_TSTAT ::_tstati64
-#else
-#define QT_LSEEK ::_lseek
-#define QT_TSTAT ::_tstat
-#endif
-#define QT_READ ::_read
-#define QT_WRITE ::_write
-#define QT_ACCESS ::_access
-#define QT_GETCWD ::_getcwd
-#define QT_CHDIR ::_chdir
-#define QT_MKDIR ::_mkdir
-#define QT_RMDIR ::_rmdir
-#define QT_OPEN_LARGEFILE 0
-#define QT_OPEN_RDONLY _O_RDONLY
-#define QT_OPEN_WRONLY _O_WRONLY
-#define QT_OPEN_RDWR _O_RDWR
-#define QT_OPEN_CREAT _O_CREAT
-#define QT_OPEN_TRUNC _O_TRUNC
-#define QT_OPEN_APPEND _O_APPEND
-#if defined(O_TEXT)
-# define QT_OPEN_TEXT _O_TEXT
-# define QT_OPEN_BINARY _O_BINARY
-#endif
-
-#include "../common/c89/qplatformdefs.h"
-
-#if defined(QT_LARGEFILE_SUPPORT) && _MSC_VER > 1310
-#undef QT_FSEEK
-#undef QT_FTELL
-
-#define QT_FSEEK ::_fseeki64
-#define QT_FTELL ::_ftelli64
-#endif
-
-#if defined(QT_LARGEFILE_SUPPORT)
-#undef QT_OFF_T
-#define QT_OFF_T __int64
-#endif
-
-#define QT_SIGNAL_ARGS int
-
-#if _MSC_VER>=1400
-# define QT_VSNPRINTF(buffer, count, format, arg) \
- ::vsnprintf_s(buffer, count, count-1, format, arg)
-#else
-# define QT_VSNPRINTF ::_vsnprintf
-#endif
-#define QT_SNPRINTF ::_snprintf
-
-# define F_OK 0
-# define X_OK 1
-# define W_OK 2
-# define R_OK 4
-
-typedef int mode_t;
-
-
-#endif // QPLATFORMDEFS_H
+#include "../win32-msvc2005/qplatformdefs.h"
diff --git a/mkspecs/win32-msvc2013/qmake.conf b/mkspecs/win32-msvc2013/qmake.conf
new file mode 100644
index 0000000000..89d2dd45a4
--- /dev/null
+++ b/mkspecs/win32-msvc2013/qmake.conf
@@ -0,0 +1,98 @@
+#
+# qmake configuration for win32-msvc2013
+#
+# Written for Microsoft Visual C++ 2013
+#
+
+MAKEFILE_GENERATOR = MSBUILD
+QMAKE_PLATFORM = win32
+CONFIG += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe
+DEFINES += UNICODE WIN32
+QMAKE_COMPILER_DEFINES += _MSC_VER=1800 _WIN32
+contains(QMAKE_TARGET.arch, x86_64) {
+ DEFINES += WIN64
+ QMAKE_COMPILER_DEFINES += _WIN64
+}
+
+QMAKE_COMPILER = msvc
+
+QMAKE_CC = cl
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = byacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t
+QMAKE_CFLAGS_WARN_ON = -W3
+QMAKE_CFLAGS_WARN_OFF = -W0
+QMAKE_CFLAGS_RELEASE = -O2 -MD
+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
+QMAKE_CFLAGS_DEBUG = -Zi -MDd
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_LTCG = -GL
+QMAKE_CFLAGS_MP = -MP
+QMAKE_CFLAGS_SSE2 = -arch:SSE2
+QMAKE_CFLAGS_SSE3 = -arch:SSE2
+QMAKE_CFLAGS_SSSE3 = -arch:SSE2
+QMAKE_CFLAGS_SSE4_1 = -arch:SSE2
+QMAKE_CFLAGS_SSE4_2 = -arch:SSE2
+QMAKE_CFLAGS_AVX = -arch:AVX
+QMAKE_CFLAGS_AVX2 = -arch:AVX
+
+QMAKE_CXX = $$QMAKE_CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
+QMAKE_CXXFLAGS_MP = $$QMAKE_CFLAGS_MP
+QMAKE_CXXFLAGS_STL_ON = -EHsc
+QMAKE_CXXFLAGS_STL_OFF =
+QMAKE_CXXFLAGS_RTTI_ON = -GR
+QMAKE_CXXFLAGS_RTTI_OFF =
+QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
+
+QMAKE_INCDIR =
+
+QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
+QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
+QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
+QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
+QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
+QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
+
+QMAKE_LINK = link
+QMAKE_LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT
+QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO
+QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF
+QMAKE_LFLAGS_DEBUG = /DEBUG
+QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE
+QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS
+QMAKE_LFLAGS_EXE = \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
+QMAKE_LFLAGS_DLL = /DLL
+QMAKE_LFLAGS_LTCG = /LTCG
+QMAKE_EXTENSION_STATICLIB = lib
+
+QMAKE_LIBS_CORE = kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib
+QMAKE_LIBS_GUI = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib user32.lib advapi32.lib
+QMAKE_LIBS_NETWORK = ws2_32.lib
+QMAKE_LIBS_OPENGL = glu32.lib opengl32.lib gdi32.lib user32.lib
+QMAKE_LIBS_OPENGL_ES2 = libEGL.lib libGLESv2.lib gdi32.lib user32.lib
+QMAKE_LIBS_OPENGL_ES2_DEBUG = libEGLd.lib libGLESv2d.lib gdi32.lib user32.lib
+QMAKE_LIBS_COMPAT = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib
+
+QMAKE_LIBS_QT_ENTRY = -lqtmain
+
+QMAKE_IDL = midl
+QMAKE_LIB = lib /NOLOGO
+QMAKE_RC = rc
+
+include(../common/shell-win32.conf)
+
+VCPROJ_EXTENSION = .vcxproj
+VCSOLUTION_EXTENSION = .sln
+VCPROJ_KEYWORD = Qt4VSv1.0
+load(qt_config)
diff --git a/mkspecs/win32-msvc2013/qplatformdefs.h b/mkspecs/win32-msvc2013/qplatformdefs.h
new file mode 100644
index 0000000000..e03bce8e6c
--- /dev/null
+++ b/mkspecs/win32-msvc2013/qplatformdefs.h
@@ -0,0 +1,42 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** 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, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "../win32-msvc2005/qplatformdefs.h"
diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32
index 761cf78975..22375ef94a 100644
--- a/qmake/Makefile.win32
+++ b/qmake/Makefile.win32
@@ -1,4 +1,4 @@
-!IF "$(QMAKESPEC)" == "win32-msvc" || "$(QMAKESPEC)" == "win32-msvc.net" || "$(QMAKESPEC)" == "win32-msvc2002" || "$(QMAKESPEC)" == "win32-msvc2003" || "$(QMAKESPEC)" == "win32-msvc2005" || "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012" || "$(QMAKESPEC)" == "win32-icc"
+!IF "$(QMAKESPEC)" == "win32-msvc" || "$(QMAKESPEC)" == "win32-msvc.net" || "$(QMAKESPEC)" == "win32-msvc2002" || "$(QMAKESPEC)" == "win32-msvc2003" || "$(QMAKESPEC)" == "win32-msvc2005" || "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012" || "$(QMAKESPEC)" == "win32-msvc2013" || "$(QMAKESPEC)" == "win32-icc"
!if "$(SOURCE_PATH)" == ""
SOURCE_PATH = ..
@@ -26,7 +26,7 @@ LINKER = link
#
!if "$(QMAKESPEC)" == "win32-msvc2005"
CFLAGS_EXTRA = /Zc:wchar_t-
-!elseif "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012"
+!elseif "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012" || "$(QMAKESPEC)" == "win32-msvc2013"
CFLAGS_EXTRA = /MP
!endif
diff --git a/qmake/generators/integrity/gbuild.cpp b/qmake/generators/integrity/gbuild.cpp
index ace3558d7d..f6bd448cba 100644
--- a/qmake/generators/integrity/gbuild.cpp
+++ b/qmake/generators/integrity/gbuild.cpp
@@ -113,8 +113,8 @@ GBuildMakefileGenerator::write()
/* this is for bulding an INTEGRITY application.
* generate the .int integrate file and the .gpj INTEGRITY Application
* project file, then go on with regular files */
- t << "#!gbuild" << "\n";
- t << "[INTEGRITY Application]" << "\n";
+ t << "#!gbuild\n";
+ t << "[INTEGRITY Application]\n";
t << "\t:binDirRelative=.\n";
t << "\t-o " << strtarget << "\n";
t << intname << "\n";
@@ -125,24 +125,24 @@ GBuildMakefileGenerator::write()
QFile f(intname);
f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate);
QTextStream ti(&f);
- ti << "# This is a file automatically generated by qmake" << "\n";
- ti << "# Modifications will be lost next time you run qmake" << "\n";
- ti << "Kernel" << "\n";
- ti << "\tFilename\tDynamicDownload" << "\n";
- ti << "EndKernel" << "\n" << "\n";
- ti << "AddressSpace" << "\n";
+ ti << "# This is a file automatically generated by qmake\n";
+ ti << "# Modifications will be lost next time you run qmake\n";
+ ti << "Kernel\n";
+ ti << "\tFilename\tDynamicDownload\n";
+ ti << "EndKernel\n\n";
+ ti << "AddressSpace\n";
ti << "\tName\t" << strtarget << "\n";
- ti << "\tFilename\t" << strtarget << "_app" << "\n";
- ti << "\tMemoryPoolSize\t0x100000" << "\n";
- ti << "\tLanguage\tC++" << "\n";
+ ti << "\tFilename\t" << strtarget << "_app\n";
+ ti << "\tMemoryPoolSize\t0x100000\n";
+ ti << "\tLanguage\tC++\n";
/* FIXME : heap size is huge to be big enough for every example
* it should probably be tailored for each example, btu there is no
* good way to guess that */
- ti << "\tHeapSize\t0x00D00000" << "\n";
- ti << "\tTask\tInitial" << "\n";
- ti << "\t\tStackSize\t0x30000" << "\n";
- ti << "\tEndTask" << "\n";
- ti << "EndAddressSpace" << "\n";
+ ti << "\tHeapSize\t0x00D00000\n";
+ ti << "\tTask\tInitial\n";
+ ti << "\t\tStackSize\t0x30000\n";
+ ti << "\tEndTask\n";
+ ti << "EndAddressSpace\n";
ti.flush();
/* change current project file to <projectname>_app.gpj and continue
@@ -220,19 +220,19 @@ GBuildMakefileGenerator::write()
filename.remove(qmake_getpwd());
//HEADER
- t << "#!gbuild" << "\n";
+ t << "#!gbuild\n";
/* find the architecture out of the compiler name */
if (filename.endsWith("projects.gpj")) {
primaryTarget.remove(0, 5);
t << "macro QT_BUILD_DIR=%expand_path(.)\n";
t << "macro __OS_DIR=" << project->values("INTEGRITY_DIR").first() << "\n";
- t << "primaryTarget=" << primaryTarget << "_integrity.tgt" << "\n";
+ t << "primaryTarget=" << primaryTarget << "_integrity.tgt\n";
t << "customization=util/integrity/qt.bod\n";
}
/* project type */
if (project->first("TEMPLATE") == "app") {
- t << "[Program]" << "\n";
+ t << "[Program]\n";
if (isnativebin) {
t << "\t:binDir=bin\n";
t << "\t-o " << strtarget << "\n";
@@ -241,16 +241,16 @@ GBuildMakefileGenerator::write()
t << "\t-o " << strtarget << "_app\n";
}
} else if (project->first("TEMPLATE") == "lib") {
- t << "[Library]" << "\n";
- t << "\t:binDir=lib" << "\n";
- t << "\t-o lib" << strtarget << ".a" << "\n";
+ t << "[Library]\n";
+ t << "\t:binDir=lib\n";
+ t << "\t-o lib" << strtarget << ".a\n";
} else if (project->first("TEMPLATE") == "subdirs")
- t << "[Project]" << "\n";
+ t << "[Project]\n";
else
t << project->first("TEMPLATE") << "\n";
/* compilations options */
- t << "\t:sourceDir=." << "\n";
+ t << "\t:sourceDir=.\n";
t << "\t:outputDir=work" << relpath << "\n";
if (filename.endsWith("projects.gpj")) {
@@ -261,7 +261,7 @@ GBuildMakefileGenerator::write()
const ProStringList &l = project->values("QMAKE_CXXFLAGS");
for (ProStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
if ((*it).startsWith("-"))
- t << "\n" << "\t" << (*it);
+ t << "\n\t" << (*it);
else
t << " " << (*it);
}
@@ -287,7 +287,7 @@ GBuildMakefileGenerator::write()
const ProStringList &l = project->values(src[i]);
for (ProStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
if ((*it).startsWith("-"))
- t << "\n" << "\t" << (*it);
+ t << "\n\t" << (*it);
else
t << " " << (*it);
}
diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp
index f0e139b137..b4ae89c0a9 100644
--- a/qmake/generators/mac/pbuilder_pbx.cpp
+++ b/qmake/generators/mac/pbuilder_pbx.cpp
@@ -126,12 +126,12 @@ ProjectBuilderMakefileGenerator::writeSubDirs(QTextStream &t)
//HEADER
const int pbVersion = pbuilderVersion();
- t << "// !$*UTF8*$!" << "\n"
- << "{" << "\n"
- << "\t" << writeSettings("archiveVersion", "1", SettingsNoQuote) << ";" << "\n"
- << "\t" << "classes = {" << "\n" << "\t" << "};" << "\n"
- << "\t" << writeSettings("objectVersion", QString::number(pbVersion), SettingsNoQuote) << ";" << "\n"
- << "\t" << "objects = {" << endl;
+ t << "// !$*UTF8*$!\n"
+ << "{\n"
+ << "\t" << writeSettings("archiveVersion", "1", SettingsNoQuote) << ";\n"
+ << "\tclasses = {\n\t};\n"
+ << "\t" << writeSettings("objectVersion", QString::number(pbVersion), SettingsNoQuote) << ";\n"
+ << "\tobjects = {\n";
//SUBDIRS
QList<ProjectBuilderSubDirs*> pb_subdirs;
@@ -220,60 +220,60 @@ ProjectBuilderMakefileGenerator::writeSubDirs(QTextStream &t)
}
if(in_root)
project->values("QMAKE_SUBDIR_PBX_GROUPS") += project_key;
- t << "\t\t" << project_key << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("lastKnownFileType", "wrapper.pb-project") << ";" << "\n"
- << "\t\t\t" << writeSettings("name", escapeFilePath(tmp_proj.first("TARGET") + projectSuffix())) << ";" << "\n"
- << "\t\t\t" << writeSettings("path", pbxproj) << ";" << "\n"
- << "\t\t\t" << writeSettings("sourceTree", "<absolute>") << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << project_key << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("lastKnownFileType", "wrapper.pb-project") << ";\n"
+ << "\t\t\t" << writeSettings("name", escapeFilePath(tmp_proj.first("TARGET") + projectSuffix())) << ";\n"
+ << "\t\t\t" << writeSettings("path", pbxproj) << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", "<absolute>") << ";\n"
+ << "\t\t};\n";
//WRAPPER
- t << "\t\t" << keyFor(pbxproj + "_WRAPPER") << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXReferenceProxy", SettingsNoQuote) << ";" << "\n";
+ t << "\t\t" << keyFor(pbxproj + "_WRAPPER") << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "PBXReferenceProxy", SettingsNoQuote) << ";\n";
if(tmp_proj.first("TEMPLATE") == "app") {
- t << "\t\t\t" << writeSettings("fileType", "wrapper.application") << ";" << "\n"
- << "\t\t\t" << writeSettings("path", tmp_proj.first("TARGET") + ".app") << ";" << "\n";
+ t << "\t\t\t" << writeSettings("fileType", "wrapper.application") << ";\n"
+ << "\t\t\t" << writeSettings("path", tmp_proj.first("TARGET") + ".app") << ";\n";
} else {
- t << "\t\t\t" << writeSettings("fileType", "compiled.mach-o.dylib") << ";" << "\n"
- << "\t\t\t" << writeSettings("path", tmp_proj.first("TARGET") + ".dylib") << ";" << "\n";
+ t << "\t\t\t" << writeSettings("fileType", "compiled.mach-o.dylib") << ";\n"
+ << "\t\t\t" << writeSettings("path", tmp_proj.first("TARGET") + ".dylib") << ";\n";
}
- t << "\t\t\t" << writeSettings("remoteRef", keyFor(pbxproj + "_WRAPPERREF")) << ";" << "\n"
- << "\t\t\t" << writeSettings("sourceTree", "BUILT_PRODUCTS_DIR", SettingsNoQuote) << ";" << "\n"
- << "\t\t" << "};" << "\n";
- t << "\t\t" << keyFor(pbxproj + "_WRAPPERREF") << " = {" << "\n"
- << "\t\t\t" << writeSettings("containerPortal", project_key) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXContainerItemProxy", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("proxyType", "2") << ";" << "\n"
-// << "\t\t\t" << writeSettings("remoteGlobalIDString", keyFor(pbxproj + "QMAKE_PBX_REFERENCE")) << ";" << "\n"
- << "\t\t\t" << writeSettings("remoteGlobalIDString", keyFor(pbxproj + "QMAKE_PBX_REFERENCE!!!")) << ";" << "\n"
- << "\t\t\t" << writeSettings("remoteInfo", tmp_proj.first("TARGET")) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t\t" << writeSettings("remoteRef", keyFor(pbxproj + "_WRAPPERREF")) << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", "BUILT_PRODUCTS_DIR", SettingsNoQuote) << ";\n"
+ << "\t\t};\n";
+ t << "\t\t" << keyFor(pbxproj + "_WRAPPERREF") << " = {\n"
+ << "\t\t\t" << writeSettings("containerPortal", project_key) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXContainerItemProxy", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("proxyType", "2") << ";\n"
+// << "\t\t\t" << writeSettings("remoteGlobalIDString", keyFor(pbxproj + "QMAKE_PBX_REFERENCE")) << ";\n"
+ << "\t\t\t" << writeSettings("remoteGlobalIDString", keyFor(pbxproj + "QMAKE_PBX_REFERENCE!!!")) << ";\n"
+ << "\t\t\t" << writeSettings("remoteInfo", tmp_proj.first("TARGET")) << ";\n"
+ << "\t\t};\n";
//PRODUCTGROUP
- t << "\t\t" << keyFor(pbxproj + "_PRODUCTGROUP") << " = {" << "\n"
- << "\t\t\t" << writeSettings("children", project->values(ProKey(pbxproj + "_WRAPPER")), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", "Products") << ";" << "\n"
- << "\t\t\t" << writeSettings("sourceTree", "<group>") << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << keyFor(pbxproj + "_PRODUCTGROUP") << " = {\n"
+ << "\t\t\t" << writeSettings("children", project->values(ProKey(pbxproj + "_WRAPPER")), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", "Products") << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", "<group>") << ";\n"
+ << "\t\t};\n";
}
#ifdef GENERATE_AGGREGRATE_SUBDIR
//TARGET (for aggregate)
{
//container
const QString container_proxy = keyFor(pbxproj + "_CONTAINERPROXY");
- t << "\t\t" << container_proxy << " = {" << "\n"
- << "\t\t\t" << writeSettings("containerPortal", project_key) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXContainerItemProxy", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("proxyType", "1") << ";" << "\n"
- << "\t\t\t" << writeSettings("remoteGlobalIDString", keyFor(pbxproj + "QMAKE_PBX_TARGET")) << ";" << "\n"
- << "\t\t\t" << writeSettings("remoteInfo", tmp_proj.first("TARGET")) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << container_proxy << " = {\n"
+ << "\t\t\t" << writeSettings("containerPortal", project_key) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXContainerItemProxy", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("proxyType", "1") << ";\n"
+ << "\t\t\t" << writeSettings("remoteGlobalIDString", keyFor(pbxproj + "QMAKE_PBX_TARGET")) << ";\n"
+ << "\t\t\t" << writeSettings("remoteInfo", tmp_proj.first("TARGET")) << ";\n"
+ << "\t\t};\n";
//targetref
- t << "\t\t" << keyFor(pbxproj + "_TARGETREF") << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXTargetDependency", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", fixForOutput(tmp_proj.first("TARGET") +" (from " + tmp_proj.first("TARGET") + projectSuffix() + ")")) << ";" << "\n"
- << "\t\t\t" << writeSettings("targetProxy", container_proxy) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << keyFor(pbxproj + "_TARGETREF") << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "PBXTargetDependency", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", fixForOutput(tmp_proj.first("TARGET") +" (from " + tmp_proj.first("TARGET") + projectSuffix() + ")")) << ";\n"
+ << "\t\t\t" << writeSettings("targetProxy", container_proxy) << ";\n"
+ << "\t\t};\n";
}
#endif
}
@@ -288,12 +288,12 @@ ProjectBuilderMakefileGenerator::writeSubDirs(QTextStream &t)
pb_subdirs.clear();
for (QMap<QString, ProStringList>::Iterator grp_it = groups.begin(); grp_it != groups.end(); ++grp_it) {
- t << "\t\t" << keyFor(grp_it.key()) << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("children", grp_it.value(), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", escapeFilePath(grp_it.key().section(Option::dir_sep, -1))) << ";" << "\n"
- << "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << keyFor(grp_it.key()) << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("children", grp_it.value(), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("name", escapeFilePath(grp_it.key().section(Option::dir_sep, -1))) << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";\n"
+ << "\t\t};\n";
}
//DUMP EVERYTHING THAT TIES THE ABOVE TOGETHER
@@ -324,84 +324,84 @@ ProjectBuilderMakefileGenerator::writeSubDirs(QTextStream &t)
defaultConfig = name;
QString key = keyFor("QMAKE_SUBDIR_PBX_BUILDCONFIG_" + name);
project->values("QMAKE_SUBDIR_PBX_BUILDCONFIGS").append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "XCBuildConfiguration", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << "buildSettings = {" << "\n";
+ t << "\t\t" << key << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "XCBuildConfiguration", SettingsNoQuote) << ";\n"
+ << "\t\t\tbuildSettings = {\n";
for (QMap<QString, QString>::Iterator set_it = settings.begin(); set_it != settings.end(); ++set_it)
- t << "\t\t\t\t" << writeSettings(set_it.key(), set_it.value()) << ";" << "\n";
- t << "\t\t\t" << "};" << "\n"
- << "\t\t\t" << writeSettings("name", name) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t\t\t" << writeSettings(set_it.key(), set_it.value()) << ";\n";
+ t << "\t\t\t};\n"
+ << "\t\t\t" << writeSettings("name", name) << ";\n"
+ << "\t\t};\n";
}
- t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_BUILDCONFIG_LIST") << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "XCConfigurationList", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("buildConfigurations", project->values("QMAKE_SUBDIR_PBX_BUILDCONFIGS"), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("defaultConfigurationIsVisible", "0", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("defaultConfigurationName", defaultConfig, SettingsNoQuote) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_BUILDCONFIG_LIST") << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "XCConfigurationList", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("buildConfigurations", project->values("QMAKE_SUBDIR_PBX_BUILDCONFIGS"), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("defaultConfigurationIsVisible", "0", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("defaultConfigurationName", defaultConfig, SettingsNoQuote) << ";\n"
+ << "\t\t};\n";
#ifdef GENERATE_AGGREGRATE_SUBDIR
//target
- t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_AGGREGATE_TARGET") << " = {" << "\n"
- << "\t\t\t" << writeSettings("buildPhases", ProStringList(), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << "buildSettings = {" << "\n"
- << "\t\t\t\t" << writeSettings("PRODUCT_NAME", project->values("TARGET").first()) << ";" << "\n"
- << "\t\t\t" << "};" << "\n";
+ t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_AGGREGATE_TARGET") << " = {\n"
+ << "\t\t\t" << writeSettings("buildPhases", ProStringList(), SettingsAsList, 4) << ";\n"
+ << "\t\t\tbuildSettings = {\n"
+ << "\t\t\t\t" << writeSettings("PRODUCT_NAME", project->values("TARGET").first()) << ";\n"
+ << "\t\t\t};\n";
{
ProStringList dependencies;
const ProStringList &qmake_subdirs = project->values("QMAKE_PBX_SUBDIRS");
for(int i = 0; i < qmake_subdirs.count(); i++)
dependencies += keyFor(qmake_subdirs[i] + "_TARGETREF");
- t << "\t\t\t" << writeSettings("dependencies", dependencies, SettingsAsList, 4) << ";" << "\n"
+ t << "\t\t\t" << writeSettings("dependencies", dependencies, SettingsAsList, 4) << ";\n"
}
- t << "\t\t\t" << writeSettings("isa", "PBXAggregateTarget", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", project->values("TARGET").first()) << ";" << "\n"
- << "\t\t\t" << writeSettings("productName", project->values("TARGET").first()) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t\t" << writeSettings("isa", "PBXAggregateTarget", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", project->values("TARGET").first()) << ";\n"
+ << "\t\t\t" << writeSettings("productName", project->values("TARGET").first()) << ";\n"
+ << "\t\t};\n";
#endif
//ROOT_GROUP
- t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_ROOT_GROUP") << " = {" << "\n"
- << "\t\t\t" << writeSettings("children", project->values("QMAKE_SUBDIR_PBX_GROUPS"), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("sourceTree", "<group>") << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_ROOT_GROUP") << " = {\n"
+ << "\t\t\t" << writeSettings("children", project->values("QMAKE_SUBDIR_PBX_GROUPS"), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", "<group>") << ";\n"
+ << "\t\t};\n";
//ROOT
- t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_ROOT") << " = {" << "\n"
- << "\t\t\t" << "buildSettings = {" << "\n"
- << "\t\t\t" << "};" << "\n"
- << "\t\t\t" << writeSettings("buildStyles", project->values("QMAKE_SUBDIR_PBX_BUILDSTYLES"), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXProject", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("mainGroup", keyFor("QMAKE_SUBDIR_PBX_ROOT_GROUP")) << ";" << "\n"
- << "\t\t\t" << writeSettings("projectDirPath", ProStringList()) << ";" << "\n";
- t << "\t\t\t" << writeSettings("buildConfigurationList", keyFor("QMAKE_SUBDIR_PBX_BUILDCONFIG_LIST")) << ";" << "\n";
- t << "\t\t\t" << "projectReferences = (" << "\n";
+ t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_ROOT") << " = {\n"
+ << "\t\t\tbuildSettings = {\n"
+ << "\t\t\t};\n"
+ << "\t\t\t" << writeSettings("buildStyles", project->values("QMAKE_SUBDIR_PBX_BUILDSTYLES"), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXProject", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("mainGroup", keyFor("QMAKE_SUBDIR_PBX_ROOT_GROUP")) << ";\n"
+ << "\t\t\t" << writeSettings("projectDirPath", ProStringList()) << ";\n";
+ t << "\t\t\t" << writeSettings("buildConfigurationList", keyFor("QMAKE_SUBDIR_PBX_BUILDCONFIG_LIST")) << ";\n";
+ t << "\t\t\tprojectReferences = (\n";
{
const ProStringList &qmake_subdirs = project->values("QMAKE_PBX_SUBDIRS");
for(int i = 0; i < qmake_subdirs.count(); i++) {
const ProString &subdir = qmake_subdirs[i];
- t << "\t\t\t\t" << "{" << "\n"
- << "\t\t\t\t\t" << writeSettings("ProductGroup", keyFor(subdir + "_PRODUCTGROUP")) << ";" << "\n"
- << "\t\t\t\t\t" << writeSettings("ProjectRef", keyFor(subdir + "_PROJECTREF")) << ";" << "\n"
- << "\t\t\t\t" << "}," << "\n";
+ t << "\t\t\t\t{\n"
+ << "\t\t\t\t\t" << writeSettings("ProductGroup", keyFor(subdir + "_PRODUCTGROUP")) << ";\n"
+ << "\t\t\t\t\t" << writeSettings("ProjectRef", keyFor(subdir + "_PROJECTREF")) << ";\n"
+ << "\t\t\t\t},\n";
}
}
- t << "\t\t\t" << ");" << "\n"
+ t << "\t\t\t);\n"
<< "\t\t\t" << writeSettings("targets",
#ifdef GENERATE_AGGREGRATE_SUBDIR
project->values("QMAKE_SUBDIR_AGGREGATE_TARGET"),
#else
ProStringList(),
#endif
- SettingsAsList, 4) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ SettingsAsList, 4) << ";\n"
+ << "\t\t};\n";
//FOOTER
- t << "\t" << "};" << "\n"
- << "\t" << writeSettings("rootObject", keyFor("QMAKE_SUBDIR_PBX_ROOT")) << ";" << "\n"
- << "}" << endl;
+ t << "\t};\n"
+ << "\t" << writeSettings("rootObject", keyFor("QMAKE_SUBDIR_PBX_ROOT")) << ";\n"
+ << "}\n";
return true;
}
@@ -516,14 +516,14 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
//HEADER
const int pbVersion = pbuilderVersion();
ProStringList buildConfigGroups;
- buildConfigGroups << "PROJECT" << "TARGET";
+ buildConfigGroups << "PROJECTTARGET";
- t << "// !$*UTF8*$!" << "\n"
- << "{" << "\n"
- << "\t" << writeSettings("archiveVersion", "1", SettingsNoQuote) << ";" << "\n"
- << "\t" << "classes = {" << "\n" << "\t" << "};" << "\n"
- << "\t" << writeSettings("objectVersion", QString::number(pbVersion), SettingsNoQuote) << ";" << "\n"
- << "\t" << "objects = {" << endl;
+ t << "// !$*UTF8*$!\n"
+ << "{\n"
+ << "\t" << writeSettings("archiveVersion", "1", SettingsNoQuote) << ";\n"
+ << "\tclasses = {\n\t};\n"
+ << "\t" << writeSettings("objectVersion", QString::number(pbVersion), SettingsNoQuote) << ";\n"
+ << "\tobjects = {\n";
//MAKE QMAKE equivelant
if (!project->isActiveConfig("no_autoqmake")) {
@@ -545,15 +545,15 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
QString phase_key = keyFor("QMAKE_PBX_MAKEQMAKE_BUILDPHASE");
mkfile = fileFixify(mkfile, qmake_getpwd());
project->values("QMAKE_PBX_PRESCRIPT_BUILDPHASES").append(phase_key);
- t << "\t\t" << phase_key << " = {" << "\n"
- << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("files", ProStringList(), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXShellScriptBuildPhase", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", "Qt Qmake") << ";" << "\n"
- << "\t\t\t" << writeSettings("shellPath", "/bin/sh") << ";" << "\n"
- << "\t\t\t" << writeSettings("shellScript", "make -C " + IoUtils::shellQuoteUnix(qmake_getpwd()) + " -f " + IoUtils::shellQuoteUnix(mkfile)) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << phase_key << " = {\n"
+ << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("files", ProStringList(), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXShellScriptBuildPhase", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", "Qt Qmake") << ";\n"
+ << "\t\t\t" << writeSettings("shellPath", "/bin/sh") << ";\n"
+ << "\t\t\t" << writeSettings("shellScript", "make -C " + IoUtils::shellQuoteUnix(qmake_getpwd()) + " -f " + IoUtils::shellQuoteUnix(mkfile)) << ";\n"
+ << "\t\t};\n";
}
// FIXME: Move all file resolving logic out of ProjectBuilderSources::files(), as it
@@ -664,25 +664,25 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
src_list.append(src_key);
}
//source reference
- t << "\t\t" << src_key << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("path", escapeFilePath(file)) << ";" << "\n";
+ t << "\t\t" << src_key << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("path", escapeFilePath(file)) << ";\n";
if (name != file)
- t << "\t\t\t" << writeSettings("name", escapeFilePath(name)) << ";" << "\n";
- t << "\t\t\t" << writeSettings("sourceTree", sourceTreeForFile(file)) << ";" << "\n";
+ t << "\t\t\t" << writeSettings("name", escapeFilePath(name)) << ";\n";
+ t << "\t\t\t" << writeSettings("sourceTree", sourceTreeForFile(file)) << ";\n";
QString filetype = xcodeFiletypeForFilename(file);
if (!filetype.isNull())
- t << "\t\t\t" << writeSettings("lastKnownFileType", filetype) << ";" << "\n";
- t << "\t\t" << "};" << "\n";
+ t << "\t\t\t" << writeSettings("lastKnownFileType", filetype) << ";\n";
+ t << "\t\t};\n";
if (sources.at(source).isBuildable() && sources.at(source).isObjectOutput(file)) { //build reference
QString build_key = keyFor(file + ".BUILDABLE");
- t << "\t\t" << build_key << " = {" << "\n"
- << "\t\t\t" << writeSettings("fileRef", src_key) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXBuildFile", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << "settings = {" << "\n"
- << "\t\t\t\t" << writeSettings("ATTRIBUTES", ProStringList(), SettingsAsList, 5) << ";" << "\n"
- << "\t\t\t" << "};" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << build_key << " = {\n"
+ << "\t\t\t" << writeSettings("fileRef", src_key) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXBuildFile", SettingsNoQuote) << ";\n"
+ << "\t\t\tsettings = {\n"
+ << "\t\t\t\t" << writeSettings("ATTRIBUTES", ProStringList(), SettingsAsList, 5) << ";\n"
+ << "\t\t\t};\n"
+ << "\t\t};\n";
project->values("QMAKE_PBX_OBJ").append(build_key);
}
}
@@ -699,12 +699,12 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
}
}
for (QMap<QString, ProStringList>::Iterator grp_it = groups.begin(); grp_it != groups.end(); ++grp_it) {
- t << "\t\t" << keyFor(grp_it.key()) << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("children", grp_it.value(), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", escapeFilePath(grp_it.key().section(Option::dir_sep, -1))) << ";" << "\n"
- << "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << keyFor(grp_it.key()) << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("children", grp_it.value(), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("name", escapeFilePath(grp_it.key().section(Option::dir_sep, -1))) << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";\n"
+ << "\t\t};\n";
}
//PREPROCESS BUILDPHASE (just a makefile)
@@ -726,7 +726,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
mkt << "DEFINES = "
<< varGlue("PRL_EXPORT_DEFINES","-D"," -D"," ")
<< varGlue("DEFINES","-D"," -D","") << endl;
- mkt << "INCPATH = " << "-I" << specdir();
+ mkt << "INCPATH = -I" << specdir();
if(!project->isActiveConfig("no_include_pwd")) {
QString pwd = escapeFilePath(fileFixify(qmake_getpwd()));
if(pwd.isEmpty())
@@ -736,7 +736,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
{
const ProStringList &incs = project->values("INCLUDEPATH");
for (ProStringList::ConstIterator incit = incs.begin(); incit != incs.end(); ++incit)
- mkt << " " << "-I" << escapeFilePath((*incit));
+ mkt << " -I" << escapeFilePath((*incit));
}
if(!project->isEmpty("QMAKE_FRAMEWORKPATH_FLAGS"))
mkt << " " << var("QMAKE_FRAMEWORKPATH_FLAGS");
@@ -762,11 +762,11 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
}
}
mkt << "\n";
- mkt << "preprocess: $(PARSERS) compilers" << endl;
- mkt << "clean preprocess_clean: parser_clean compiler_clean" << endl << endl;
- mkt << "parser_clean:" << "\n";
+ mkt << "preprocess: $(PARSERS) compilers\n";
+ mkt << "clean preprocess_clean: parser_clean compiler_clean\n\n";
+ mkt << "parser_clean:\n";
if(!project->isEmpty("YACCSOURCES") || !project->isEmpty("LEXSOURCES"))
- mkt << "\t-rm -f $(PARSERS)" << "\n";
+ mkt << "\t-rm -f $(PARSERS)\n";
writeExtraTargets(mkt);
if(!project->isEmpty("QMAKE_EXTRA_COMPILERS")) {
mkt << "compilers:";
@@ -803,28 +803,28 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
QString phase_key = keyFor("QMAKE_PBX_PREPROCESS_TARGET");
// project->values("QMAKE_PBX_BUILDPHASES").append(phase_key);
project->values("QMAKE_PBX_PRESCRIPT_BUILDPHASES").append(phase_key);
- t << "\t\t" << phase_key << " = {" << "\n"
- << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("files", ProStringList(), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXShellScriptBuildPhase", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", "Qt Preprocessors") << ";" << "\n"
- << "\t\t\t" << writeSettings("shellPath", "/bin/sh") << ";" << "\n"
- << "\t\t\t" << writeSettings("shellScript", "make -C " + IoUtils::shellQuoteUnix(qmake_getpwd()) + " -f " + IoUtils::shellQuoteUnix(mkfile)) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << phase_key << " = {\n"
+ << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("files", ProStringList(), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXShellScriptBuildPhase", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", "Qt Preprocessors") << ";\n"
+ << "\t\t\t" << writeSettings("shellPath", "/bin/sh") << ";\n"
+ << "\t\t\t" << writeSettings("shellScript", "make -C " + IoUtils::shellQuoteUnix(qmake_getpwd()) + " -f " + IoUtils::shellQuoteUnix(mkfile)) << ";\n"
+ << "\t\t};\n";
}
//SOURCE BUILDPHASE
if(!project->isEmpty("QMAKE_PBX_OBJ")) {
QString grp = "Compile Sources", key = keyFor(grp);
project->values("QMAKE_PBX_BUILDPHASES").append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("files", fixListForOutput("QMAKE_PBX_OBJ"), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXSourcesBuildPhase", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", grp) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << key << " = {\n"
+ << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("files", fixListForOutput("QMAKE_PBX_OBJ"), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXSourcesBuildPhase", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", grp) << ";\n"
+ << "\t\t};\n";
}
if(!project->isActiveConfig("staticlib")) { //DUMP LIBRARIES
@@ -934,23 +934,23 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
QString key = keyFor(library);
if (!project->values("QMAKE_PBX_LIBRARIES").contains(key)) {
bool is_frmwrk = (library.endsWith(".framework"));
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", escapeFilePath(name)) << ";" << "\n"
- << "\t\t\t" << writeSettings("path", escapeFilePath(library)) << ";" << "\n"
- << "\t\t\t" << writeSettings("refType", QString::number(reftypeForFile(library)), SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("sourceTree", sourceTreeForFile(library)) << ";" << "\n";
+ t << "\t\t" << key << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", escapeFilePath(name)) << ";\n"
+ << "\t\t\t" << writeSettings("path", escapeFilePath(library)) << ";\n"
+ << "\t\t\t" << writeSettings("refType", QString::number(reftypeForFile(library)), SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", sourceTreeForFile(library)) << ";\n";
if (is_frmwrk)
- t << "\t\t\t" << writeSettings("lastKnownFileType", "wrapper.framework") << ";" << "\n";
- t << "\t\t" << "};" << "\n";
+ t << "\t\t\t" << writeSettings("lastKnownFileType", "wrapper.framework") << ";\n";
+ t << "\t\t};\n";
project->values("QMAKE_PBX_LIBRARIES").append(key);
QString build_key = keyFor(library + ".BUILDABLE");
- t << "\t\t" << build_key << " = {" << "\n"
- << "\t\t\t" << writeSettings("fileRef", key) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXBuildFile", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << "settings = {" << "\n"
- << "\t\t\t" << "};" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << build_key << " = {\n"
+ << "\t\t\t" << writeSettings("fileRef", key) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXBuildFile", SettingsNoQuote) << ";\n"
+ << "\t\t\tsettings = {\n"
+ << "\t\t\t};\n"
+ << "\t\t};\n";
project->values("QMAKE_PBX_BUILD_LIBRARIES").append(build_key);
}
}
@@ -976,10 +976,10 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
for(int i = 0; i < tmp.count(); i++)
t << "tmp/lib" << tmp[i] << ".a ";
t << endl << endl;
- mkt << "sublibs: $(SUBLIBS)" << endl << endl;
+ mkt << "sublibs: $(SUBLIBS)\n\n";
tmp = project->values("SUBLIBS");
for(int i = 0; i < tmp.count(); i++)
- t << "tmp/lib" << tmp[i] << ".a" << ":\n\t"
+ t << "tmp/lib" << tmp[i] << ".a:\n\t"
<< var(ProKey("MAKELIB" + tmp[i])) << endl << endl;
mkt.flush();
mkf.close();
@@ -988,15 +988,15 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
QString phase_key = keyFor("QMAKE_PBX_SUBLIBS_BUILDPHASE");
mkfile = fileFixify(mkfile, qmake_getpwd());
project->values("QMAKE_PBX_PRESCRIPT_BUILDPHASES").append(phase_key);
- t << "\t\t" << phase_key << " = {" << "\n"
- << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("files", ProStringList(), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXShellScriptBuildPhase", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", "Qt Sublibs") << ";" << "\n"
+ t << "\t\t" << phase_key << " = {\n"
+ << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("files", ProStringList(), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXShellScriptBuildPhase", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", "Qt Sublibs") << ";\n"
<< "\t\t\t" << writeSettings("shellPath", "/bin/sh") << "\n"
- << "\t\t\t" << writeSettings("shellScript", "make -C " + IoUtils::shellQuoteUnix(qmake_getpwd()) + " -f " + IoUtils::shellQuoteUnix(mkfile)) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ << "\t\t\t" << writeSettings("shellScript", "make -C " + IoUtils::shellQuoteUnix(qmake_getpwd()) + " -f " + IoUtils::shellQuoteUnix(mkfile)) << ";\n"
+ << "\t\t};\n";
}
//LIBRARY BUILDPHASE
if(!project->isEmpty("QMAKE_PBX_LIBRARIES")) {
@@ -1004,24 +1004,24 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
if(!tmp.isEmpty()) {
QString grp("Frameworks"), key = keyFor(grp);
project->values("QMAKE_PBX_GROUPS").append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << writeSettings("children", project->values("QMAKE_PBX_LIBRARIES"), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", escapeFilePath(grp)) << ";" << "\n"
- << "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << key << " = {\n"
+ << "\t\t\t" << writeSettings("children", project->values("QMAKE_PBX_LIBRARIES"), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", escapeFilePath(grp)) << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";\n"
+ << "\t\t};\n";
}
}
{
QString grp("Link Binary With Libraries"), key = keyFor(grp);
project->values("QMAKE_PBX_BUILDPHASES").append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("files", project->values("QMAKE_PBX_BUILD_LIBRARIES"), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXFrameworksBuildPhase", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", escapeFilePath(grp)) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << key << " = {\n"
+ << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("files", project->values("QMAKE_PBX_BUILD_LIBRARIES"), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXFrameworksBuildPhase", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", escapeFilePath(grp)) << ";\n"
+ << "\t\t};\n";
}
if (!project->isEmpty("DESTDIR")) {
QString phase_key = keyFor("QMAKE_PBX_TARGET_COPY_PHASE");
@@ -1030,16 +1030,16 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
destDir = fileInfo(Option::fixPathToLocalOS(destDir)).absoluteFilePath();
project->values("QMAKE_PBX_BUILDPHASES").append(phase_key);
t << "\t\t" << phase_key << " = {\n"
- << "\t\t\t" << writeSettings("isa", "PBXShellScriptBuildPhase", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", "Project Copy") << ";" << "\n"
- << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("files", ProStringList(), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("inputPaths", ProStringList(), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("outputPaths", ProStringList(), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("shellPath", "/bin/sh") << ";" << "\n"
- << "\t\t\t" << writeSettings("shellScript", fixForOutput("cp -r $BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME " + escapeFilePath(destDir))) << ";" << "\n"
- << "\t\t" << "};\n";
+ << "\t\t\t" << writeSettings("isa", "PBXShellScriptBuildPhase", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", "Project Copy") << ";\n"
+ << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("files", ProStringList(), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("inputPaths", ProStringList(), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("outputPaths", ProStringList(), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("shellPath", "/bin/sh") << ";\n"
+ << "\t\t\t" << writeSettings("shellScript", fixForOutput("cp -r $BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME " + escapeFilePath(destDir))) << ";\n"
+ << "\t\t};\n";
}
// Copy Bundle Resources
if (!project->isEmpty("QMAKE_BUNDLE_DATA")) {
@@ -1059,17 +1059,17 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
QString fn = files[file].toQString();
QString file_ref_key = keyFor("QMAKE_PBX_BUNDLE_DATA_FILE_REF." + bundle_data[i] + "-" + fn);
bundle_file_refs += file_ref_key;
- t << "\t\t" << file_ref_key << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("path", escapeFilePath(fn)) << ";" << "\n"
- << "\t\t\t" << writeSettings("sourceTree", sourceTreeForFile(fn)) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << file_ref_key << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("path", escapeFilePath(fn)) << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", sourceTreeForFile(fn)) << ";\n"
+ << "\t\t};\n";
QString file_key = keyFor("QMAKE_PBX_BUNDLE_DATA_FILE." + bundle_data[i] + "-" + fn);
bundle_files += file_key;
t << "\t\t" << file_key << " = {\n"
- << "\t\t\t" << writeSettings("fileRef", file_ref_key) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXBuildFile", SettingsNoQuote) << ";" << "\n"
- << "\t\t" << "}" << ";" << "\n";
+ << "\t\t\t" << writeSettings("fileRef", file_ref_key) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXBuildFile", SettingsNoQuote) << ";\n"
+ << "\t\t};\n";
}
if (!useCopyResourcesPhase || !path.isEmpty()) {
@@ -1082,14 +1082,14 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
project->values("QMAKE_PBX_PRESCRIPT_BUILDPHASES").append(phase_key);
t << "\t\t" << phase_key << " = {\n"
- << "\t\t\t" << writeSettings("name", "Copy '" + bundle_data[i] + "' Files to Bundle") << ";" << "\n"
- << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("dstPath", escapeFilePath(path)) << ";" << "\n"
- << "\t\t\t" << writeSettings("dstSubfolderSpec", "1", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("files", bundle_files, SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXCopyFilesBuildPhase", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";" << "\n"
- << "\t\t" << "}" << ";" << "\n";
+ << "\t\t\t" << writeSettings("name", "Copy '" + bundle_data[i] + "' Files to Bundle") << ";\n"
+ << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("dstPath", escapeFilePath(path)) << ";\n"
+ << "\t\t\t" << writeSettings("dstSubfolderSpec", "1", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("files", bundle_files, SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXCopyFilesBuildPhase", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n"
+ << "\t\t};\n";
} else {
// Otherwise we leave it to the resource copy phase below
bundle_resources_files += bundle_files;
@@ -1107,30 +1107,30 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
QString grp("Copy Bundle Resources"), key = keyFor(grp);
project->values("QMAKE_PBX_BUILDPHASES").append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("files", bundle_resources_files, SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXResourcesBuildPhase", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", escapeFilePath(grp)) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << key << " = {\n"
+ << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("files", bundle_resources_files, SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXResourcesBuildPhase", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", escapeFilePath(grp)) << ";\n"
+ << "\t\t};\n";
}
QString bundle_data_key = keyFor("QMAKE_PBX_BUNDLE_DATA");
project->values("QMAKE_PBX_GROUPS").append(bundle_data_key);
- t << "\t\t" << bundle_data_key << " = {" << "\n"
- << "\t\t\t" << writeSettings("children", bundle_file_refs, SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", "Bundle Resources") << ";" << "\n"
- << "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << bundle_data_key << " = {\n"
+ << "\t\t\t" << writeSettings("children", bundle_file_refs, SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", "Bundle Resources") << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";\n"
+ << "\t\t};\n";
}
//REFERENCE
project->values("QMAKE_PBX_PRODUCTS").append(keyFor(pbx_dir + "QMAKE_PBX_REFERENCE"));
- t << "\t\t" << keyFor(pbx_dir + "QMAKE_PBX_REFERENCE") << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("includeInIndex", "0", SettingsNoQuote) << ";" << "\n";
+ t << "\t\t" << keyFor(pbx_dir + "QMAKE_PBX_REFERENCE") << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("includeInIndex", "0", SettingsNoQuote) << ";\n";
if(project->first("TEMPLATE") == "app") {
ProString targ = project->first("QMAKE_ORIG_TARGET");
if(project->isActiveConfig("bundle") && !project->isEmpty("QMAKE_BUNDLE_EXTENSION")) {
@@ -1138,18 +1138,18 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
targ = project->first("QMAKE_BUNDLE_NAME");
targ += project->first("QMAKE_BUNDLE_EXTENSION");
if(!project->isEmpty("QMAKE_PBX_BUNDLE_TYPE"))
- t << "\t\t\t" << writeSettings("explicitFileType", project->first("QMAKE_PBX_BUNDLE_TYPE")) + ";" << "\n";
+ t << "\t\t\t" << writeSettings("explicitFileType", project->first("QMAKE_PBX_BUNDLE_TYPE")) + ";\n";
} else if(project->isActiveConfig("app_bundle")) {
if(!project->isEmpty("QMAKE_APPLICATION_BUNDLE_NAME"))
targ = project->first("QMAKE_APPLICATION_BUNDLE_NAME");
targ += ".app";
- t << "\t\t\t" << writeSettings("explicitFileType", "wrapper.application") << ";" << "\n";
+ t << "\t\t\t" << writeSettings("explicitFileType", "wrapper.application") << ";\n";
} else {
- t << "\t\t\t" << writeSettings("explicitFileType", "compiled.mach-o.executable") << ";" << "\n";
+ t << "\t\t\t" << writeSettings("explicitFileType", "compiled.mach-o.executable") << ";\n";
}
QString app = (!project->isEmpty("DESTDIR") ? project->first("DESTDIR") + project->first("QMAKE_ORIG_TARGET") :
qmake_getpwd()) + Option::dir_sep + targ;
- t << "\t\t\t" << writeSettings("path", escapeFilePath(targ)) << ";" << "\n";
+ t << "\t\t\t" << writeSettings("path", escapeFilePath(targ)) << ";\n";
} else {
ProString lib = project->first("QMAKE_ORIG_TARGET");
if(project->isActiveConfig("staticlib")) {
@@ -1168,79 +1168,79 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
lib = project->first("QMAKE_BUNDLE_NAME");
lib += project->first("QMAKE_BUNDLE_EXTENSION");
if(!project->isEmpty("QMAKE_PBX_BUNDLE_TYPE"))
- t << "\t\t\t" << writeSettings("explicitFileType", project->first("QMAKE_PBX_BUNDLE_TYPE")) << ";" << "\n";
+ t << "\t\t\t" << writeSettings("explicitFileType", project->first("QMAKE_PBX_BUNDLE_TYPE")) << ";\n";
} else if(!project->isActiveConfig("staticlib") && project->isActiveConfig("lib_bundle")) {
if(!project->isEmpty("QMAKE_FRAMEWORK_BUNDLE_NAME"))
lib = project->first("QMAKE_FRAMEWORK_BUNDLE_NAME");
lib += ".framework";
- t << "\t\t\t" << writeSettings("explicitFileType", "wrapper.framework") << ";" << "\n";
+ t << "\t\t\t" << writeSettings("explicitFileType", "wrapper.framework") << ";\n";
} else {
- t << "\t\t\t" << writeSettings("explicitFileType", "compiled.mach-o.dylib") << ";" << "\n";
+ t << "\t\t\t" << writeSettings("explicitFileType", "compiled.mach-o.dylib") << ";\n";
}
- t << "\t\t\t" << writeSettings("path", escapeFilePath(lib)) << ";" << "\n";
+ t << "\t\t\t" << writeSettings("path", escapeFilePath(lib)) << ";\n";
}
- t << "\t\t\t" << writeSettings("sourceTree", "BUILT_PRODUCTS_DIR", SettingsNoQuote) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t\t" << writeSettings("sourceTree", "BUILT_PRODUCTS_DIR", SettingsNoQuote) << ";\n"
+ << "\t\t};\n";
{ //Products group
QString grp("Products"), key = keyFor(grp);
project->values("QMAKE_PBX_GROUPS").append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << writeSettings("children", project->values("QMAKE_PBX_PRODUCTS"), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", "Products") << ";" << "\n"
- << "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << key << " = {\n"
+ << "\t\t\t" << writeSettings("children", project->values("QMAKE_PBX_PRODUCTS"), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", "Products") << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";\n"
+ << "\t\t};\n";
}
//DUMP EVERYTHING THAT TIES THE ABOVE TOGETHER
//ROOT_GROUP
- t << "\t\t" << keyFor("QMAKE_PBX_ROOT_GROUP") << " = {" << "\n"
- << "\t\t\t" << writeSettings("children", project->values("QMAKE_PBX_GROUPS"), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("name", escapeFilePath(project->first("QMAKE_ORIG_TARGET"))) << ";" << "\n"
- << "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << keyFor("QMAKE_PBX_ROOT_GROUP") << " = {\n"
+ << "\t\t\t" << writeSettings("children", project->values("QMAKE_PBX_GROUPS"), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", escapeFilePath(project->first("QMAKE_ORIG_TARGET"))) << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";\n"
+ << "\t\t};\n";
//TARGET
QString target_key = keyFor(pbx_dir + "QMAKE_PBX_TARGET");
project->values("QMAKE_PBX_TARGETS").append(target_key);
- t << "\t\t" << target_key << " = {" << "\n"
+ t << "\t\t" << target_key << " = {\n"
<< "\t\t\t" << writeSettings("buildPhases", project->values("QMAKE_PBX_PRESCRIPT_BUILDPHASES") + project->values("QMAKE_PBX_BUILDPHASES"),
- SettingsAsList, 4) << ";" << "\n";
- t << "\t\t\t" << writeSettings("dependencies", project->values("QMAKE_PBX_TARGET_DEPENDS"), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("productReference", keyFor(pbx_dir + "QMAKE_PBX_REFERENCE")) << ";" << "\n";
- t << "\t\t\t" << writeSettings("buildConfigurationList", keyFor("QMAKE_PBX_BUILDCONFIG_LIST_TARGET"), SettingsNoQuote) << ";" << "\n";
- t << "\t\t\t" << writeSettings("isa", "PBXNativeTarget", SettingsNoQuote) << ";" << "\n";
- t << "\t\t\t" << writeSettings("buildRules", ProStringList(), SettingsAsList) << ";" << "\n";
+ SettingsAsList, 4) << ";\n";
+ t << "\t\t\t" << writeSettings("dependencies", project->values("QMAKE_PBX_TARGET_DEPENDS"), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("productReference", keyFor(pbx_dir + "QMAKE_PBX_REFERENCE")) << ";\n";
+ t << "\t\t\t" << writeSettings("buildConfigurationList", keyFor("QMAKE_PBX_BUILDCONFIG_LIST_TARGET"), SettingsNoQuote) << ";\n";
+ t << "\t\t\t" << writeSettings("isa", "PBXNativeTarget", SettingsNoQuote) << ";\n";
+ t << "\t\t\t" << writeSettings("buildRules", ProStringList(), SettingsAsList) << ";\n";
if(project->first("TEMPLATE") == "app") {
if (!project->isEmpty("QMAKE_PBX_PRODUCT_TYPE")) {
- t << "\t\t\t" << writeSettings("productType", project->first("QMAKE_PBX_PRODUCT_TYPE")) << ";" << "\n";
+ t << "\t\t\t" << writeSettings("productType", project->first("QMAKE_PBX_PRODUCT_TYPE")) << ";\n";
} else {
if (project->isActiveConfig("app_bundle"))
- t << "\t\t\t" << writeSettings("productType", "com.apple.product-type.application") << ";" << "\n";
+ t << "\t\t\t" << writeSettings("productType", "com.apple.product-type.application") << ";\n";
else
- t << "\t\t\t" << writeSettings("productType", "com.apple.product-type.tool") << ";" << "\n";
+ t << "\t\t\t" << writeSettings("productType", "com.apple.product-type.tool") << ";\n";
}
- t << "\t\t\t" << writeSettings("name", escapeFilePath(project->first("QMAKE_ORIG_TARGET"))) << ";" << "\n"
- << "\t\t\t" << writeSettings("productName", escapeFilePath(project->first("QMAKE_ORIG_TARGET"))) << ";" << "\n";
+ t << "\t\t\t" << writeSettings("name", escapeFilePath(project->first("QMAKE_ORIG_TARGET"))) << ";\n"
+ << "\t\t\t" << writeSettings("productName", escapeFilePath(project->first("QMAKE_ORIG_TARGET"))) << ";\n";
} else {
ProString lib = project->first("QMAKE_ORIG_TARGET");
if(!project->isActiveConfig("lib_bundle") && !project->isActiveConfig("staticlib"))
lib.prepend("lib");
- t << "\t\t\t" << writeSettings("name", escapeFilePath(lib)) << ";" << "\n"
- << "\t\t\t" << writeSettings("productName", escapeFilePath(lib)) << ";" << "\n";
+ t << "\t\t\t" << writeSettings("name", escapeFilePath(lib)) << ";\n"
+ << "\t\t\t" << writeSettings("productName", escapeFilePath(lib)) << ";\n";
if (!project->isEmpty("QMAKE_PBX_PRODUCT_TYPE"))
- t << "\t\t\t" << writeSettings("productType", project->first("QMAKE_PBX_PRODUCT_TYPE")) << ";" << "\n";
+ t << "\t\t\t" << writeSettings("productType", project->first("QMAKE_PBX_PRODUCT_TYPE")) << ";\n";
else if (project->isActiveConfig("staticlib"))
- t << "\t\t\t" << writeSettings("productType", "com.apple.product-type.library.static") << ";" << "\n";
+ t << "\t\t\t" << writeSettings("productType", "com.apple.product-type.library.static") << ";\n";
else if (project->isActiveConfig("lib_bundle"))
- t << "\t\t\t" << writeSettings("productType", "com.apple.product-type.framework") << ";" << "\n";
+ t << "\t\t\t" << writeSettings("productType", "com.apple.product-type.framework") << ";\n";
else
- t << "\t\t\t" << writeSettings("productType", "com.apple.product-type.library.dynamic") << ";" << "\n";
+ t << "\t\t\t" << writeSettings("productType", "com.apple.product-type.library.dynamic") << ";\n";
}
if(!project->isEmpty("DESTDIR"))
- t << "\t\t\t" << writeSettings("productInstallPath", escapeFilePath(project->first("DESTDIR"))) << ";" << "\n";
- t << "\t\t" << "};" << "\n";
+ t << "\t\t\t" << writeSettings("productInstallPath", escapeFilePath(project->first("DESTDIR"))) << ";\n";
+ t << "\t\t};\n";
//DEBUG/RELEASE
QString defaultConfig;
for(int as_release = 0; as_release < 2; as_release++)
@@ -1278,25 +1278,25 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
for (int i = 0; i < buildConfigGroups.size(); i++) {
QString key = keyFor("QMAKE_PBX_BUILDCONFIG_" + name + buildConfigGroups.at(i));
project->values(ProKey("QMAKE_PBX_BUILDCONFIGS_" + buildConfigGroups.at(i))).append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "XCBuildConfiguration", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << "buildSettings = {" << "\n";
+ t << "\t\t" << key << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "XCBuildConfiguration", SettingsNoQuote) << ";\n"
+ << "\t\t\tbuildSettings = {\n";
for (QMap<QString, QString>::Iterator set_it = settings.begin(); set_it != settings.end(); ++set_it)
t << "\t\t\t\t" << writeSettings(set_it.key(), set_it.value()) << ";\n";
if (buildConfigGroups.at(i) == QLatin1String("PROJECT")) {
if (!project->isEmpty("QMAKE_XCODE_GCC_VERSION"))
- t << "\t\t\t\t" << writeSettings("GCC_VERSION", project->first("QMAKE_XCODE_GCC_VERSION"), SettingsNoQuote) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("GCC_VERSION", project->first("QMAKE_XCODE_GCC_VERSION"), SettingsNoQuote) << ";\n";
ProString program = project->first("QMAKE_CC");
if (!program.isEmpty())
- t << "\t\t\t\t" << writeSettings("CC", fixForOutput(findProgram(program))) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("CC", fixForOutput(findProgram(program))) << ";\n";
program = project->first("QMAKE_CXX");
// Xcode will automatically take care of using CC with the right -x option,
// and will actually break if we pass CPLUSPLUS, by adding an additional set of "++"
if (!program.isEmpty() && !program.contains("clang++"))
- t << "\t\t\t\t" << writeSettings("CPLUSPLUS", fixForOutput(findProgram(program))) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("CPLUSPLUS", fixForOutput(findProgram(program))) << ";\n";
program = project->first("QMAKE_LINK");
if (!program.isEmpty())
- t << "\t\t\t\t" << writeSettings("LDPLUSPLUS", fixForOutput(findProgram(program))) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("LDPLUSPLUS", fixForOutput(findProgram(program))) << ";\n";
if ((project->first("TEMPLATE") == "app" && project->isActiveConfig("app_bundle")) ||
(project->first("TEMPLATE") == "lib" && !project->isActiveConfig("staticlib") &&
@@ -1328,58 +1328,58 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
if (plist_out_file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream plist_out(&plist_out_file);
plist_out << plist_in_text;
- t << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", "Info.plist") << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", "Info.plist") << ";\n";
}
}
}
}
- t << "\t\t\t\t" << writeSettings("SYMROOT", escapeFilePath(qmake_getpwd())) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("SYMROOT", escapeFilePath(qmake_getpwd())) << ";\n";
if (!project->isEmpty("DESTDIR")) {
ProString dir = project->first("DESTDIR");
if (QDir::isRelativePath(dir.toQString()))
dir.prepend(qmake_getpwd() + Option::dir_sep);
- t << "\t\t\t\t" << writeSettings("INSTALL_DIR", dir) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("INSTALL_DIR", dir) << ";\n";
}
if (project->first("TEMPLATE") == "lib")
- t << "\t\t\t\t" << writeSettings("INSTALL_PATH", ProStringList()) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("INSTALL_PATH", ProStringList()) << ";\n";
if (!project->isEmpty("VERSION") && project->first("VERSION") != "0.0.0") {
- t << "\t\t\t\t" << writeSettings("DYLIB_CURRENT_VERSION", project->first("VER_MAJ")+"."+project->first("VER_MIN")+"."+project->first("VER_PAT")) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("DYLIB_CURRENT_VERSION", project->first("VER_MAJ")+"."+project->first("VER_MIN")+"."+project->first("VER_PAT")) << ";\n";
if (project->isEmpty("COMPAT_VERSION"))
- t << "\t\t\t\t" << writeSettings("DYLIB_COMPATIBILITY_VERSION", project->first("VER_MAJ")+"."+project->first("VER_MIN")) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("DYLIB_COMPATIBILITY_VERSION", project->first("VER_MAJ")+"."+project->first("VER_MIN")) << ";\n";
if (project->first("TEMPLATE") == "lib" && !project->isActiveConfig("staticlib") &&
project->isActiveConfig("lib_bundle"))
- t << "\t\t\t\t" << writeSettings("FRAMEWORK_VERSION", project->first("QMAKE_FRAMEWORK_VERSION")) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("FRAMEWORK_VERSION", project->first("QMAKE_FRAMEWORK_VERSION")) << ";\n";
}
if (!project->isEmpty("COMPAT_VERSION"))
- t << "\t\t\t\t" << writeSettings("DYLIB_COMPATIBILITY_VERSION", project->first("COMPAT_VERSION")) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("DYLIB_COMPATIBILITY_VERSION", project->first("COMPAT_VERSION")) << ";\n";
if (!project->isEmpty("QMAKE_MACOSX_DEPLOYMENT_TARGET"))
- t << "\t\t\t\t" << writeSettings("MACOSX_DEPLOYMENT_TARGET", project->first("QMAKE_MACOSX_DEPLOYMENT_TARGET")) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("MACOSX_DEPLOYMENT_TARGET", project->first("QMAKE_MACOSX_DEPLOYMENT_TARGET")) << ";\n";
if (!project->isEmpty("QMAKE_IOS_DEPLOYMENT_TARGET"))
- t << "\t\t\t\t" << writeSettings("IPHONEOS_DEPLOYMENT_TARGET", project->first("QMAKE_IOS_DEPLOYMENT_TARGET")) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("IPHONEOS_DEPLOYMENT_TARGET", project->first("QMAKE_IOS_DEPLOYMENT_TARGET")) << ";\n";
if (!project->isEmpty("QMAKE_XCODE_CODE_SIGN_IDENTITY"))
- t << "\t\t\t\t" << writeSettings("CODE_SIGN_IDENTITY", project->first("QMAKE_XCODE_CODE_SIGN_IDENTITY")) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("CODE_SIGN_IDENTITY", project->first("QMAKE_XCODE_CODE_SIGN_IDENTITY")) << ";\n";
tmp = project->values("QMAKE_PBX_VARS");
for (int i = 0; i < tmp.count(); i++) {
QString var = tmp[i].toQString(), val = QString::fromLocal8Bit(qgetenv(var.toLatin1().constData()));
if (val.isEmpty() && var == "TB")
val = "/usr/bin/";
- t << "\t\t\t\t" << writeSettings(var, escapeFilePath(val)) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings(var, escapeFilePath(val)) << ";\n";
}
if (!project->isEmpty("PRECOMPILED_HEADER")) {
- t << "\t\t\t\t" << writeSettings("GCC_PRECOMPILE_PREFIX_HEADER", "YES") << ";" << "\n"
- << "\t\t\t\t" << writeSettings("GCC_PREFIX_HEADER", escapeFilePath(project->first("PRECOMPILED_HEADER"))) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("GCC_PRECOMPILE_PREFIX_HEADER", "YES") << ";\n"
+ << "\t\t\t\t" << writeSettings("GCC_PREFIX_HEADER", escapeFilePath(project->first("PRECOMPILED_HEADER"))) << ";\n";
}
- t << "\t\t\t\t" << writeSettings("HEADER_SEARCH_PATHS", fixListForOutput("INCLUDEPATH") + ProStringList(fixForOutput(specdir())), SettingsAsList, 5) << ";" << "\n"
- << "\t\t\t\t" << writeSettings("LIBRARY_SEARCH_PATHS", fixListForOutput("QMAKE_PBX_LIBPATHS"), SettingsAsList, 5) << ";" << "\n"
+ t << "\t\t\t\t" << writeSettings("HEADER_SEARCH_PATHS", fixListForOutput("INCLUDEPATH") + ProStringList(fixForOutput(specdir())), SettingsAsList, 5) << ";\n"
+ << "\t\t\t\t" << writeSettings("LIBRARY_SEARCH_PATHS", fixListForOutput("QMAKE_PBX_LIBPATHS"), SettingsAsList, 5) << ";\n"
<< "\t\t\t\t" << writeSettings("FRAMEWORK_SEARCH_PATHS", fixListForOutput("QMAKE_FRAMEWORKPATH"),
- !project->values("QMAKE_FRAMEWORKPATH").isEmpty() ? SettingsAsList : 0, 5) << ";" << "\n";
+ !project->values("QMAKE_FRAMEWORKPATH").isEmpty() ? SettingsAsList : 0, 5) << ";\n";
{
ProStringList cflags = project->values("QMAKE_CFLAGS");
@@ -1389,7 +1389,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
const ProStringList &defines = project->values("DEFINES");
for (int i = 0; i < defines.size(); ++i)
cflags += "-D" + defines.at(i);
- t << "\t\t\t\t" << writeSettings("OTHER_CFLAGS", fixListForOutput(cflags), SettingsAsList, 5) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("OTHER_CFLAGS", fixListForOutput(cflags), SettingsAsList, 5) << ";\n";
}
{
ProStringList cxxflags = project->values("QMAKE_CXXFLAGS");
@@ -1399,7 +1399,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
const ProStringList &defines = project->values("DEFINES");
for (int i = 0; i < defines.size(); ++i)
cxxflags += "-D" + defines.at(i);
- t << "\t\t\t\t" << writeSettings("OTHER_CPLUSPLUSFLAGS", fixListForOutput(cxxflags), SettingsAsList, 5) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("OTHER_CPLUSPLUSFLAGS", fixListForOutput(cxxflags), SettingsAsList, 5) << ";\n";
}
if (!project->isActiveConfig("staticlib")) {
t << "\t\t\t\t" << writeSettings("OTHER_LDFLAGS",
@@ -1407,60 +1407,60 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
+ fixListForOutput("QMAKE_LFLAGS")
+ fixListForOutput("QMAKE_LIBS")
+ fixListForOutput("QMAKE_LIBS_PRIVATE"),
- SettingsAsList, 6) << ";" << "\n";
+ SettingsAsList, 6) << ";\n";
}
const ProStringList &archs = !project->values("QMAKE_XCODE_ARCHS").isEmpty() ?
project->values("QMAKE_XCODE_ARCHS") : project->values("QT_ARCH");
if (!archs.isEmpty())
- t << "\t\t\t\t" << writeSettings("ARCHS", archs) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("ARCHS", archs) << ";\n";
if (!project->isEmpty("OBJECTS_DIR"))
- t << "\t\t\t\t" << writeSettings("OBJROOT", escapeFilePath(project->first("OBJECTS_DIR").toQString())) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("OBJROOT", escapeFilePath(project->first("OBJECTS_DIR").toQString())) << ";\n";
} else {
if (project->first("TEMPLATE") == "app") {
- t << "\t\t\t\t" << writeSettings("PRODUCT_NAME", fixForOutput(project->first("QMAKE_ORIG_TARGET").toQString())) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("PRODUCT_NAME", fixForOutput(project->first("QMAKE_ORIG_TARGET").toQString())) << ";\n";
} else {
if (!project->isActiveConfig("plugin") && project->isActiveConfig("staticlib"))
- t << "\t\t\t\t" << writeSettings("LIBRARY_STYLE", "STATIC") << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("LIBRARY_STYLE", "STATIC") << ";\n";
else
- t << "\t\t\t\t" << writeSettings("LIBRARY_STYLE", "DYNAMIC") << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("LIBRARY_STYLE", "DYNAMIC") << ";\n";
ProString lib = project->first("QMAKE_ORIG_TARGET");
if (!project->isActiveConfig("lib_bundle") && !project->isActiveConfig("staticlib"))
lib.prepend("lib");
- t << "\t\t\t\t" << writeSettings("PRODUCT_NAME", escapeFilePath(lib)) << ";" << "\n";
+ t << "\t\t\t\t" << writeSettings("PRODUCT_NAME", escapeFilePath(lib)) << ";\n";
}
}
- t << "\t\t\t" << "};" << "\n"
- << "\t\t\t" << writeSettings("name", name) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t\t};\n"
+ << "\t\t\t" << writeSettings("name", name) << ";\n"
+ << "\t\t};\n";
}
}
for (int i = 0; i < buildConfigGroups.size(); i++) {
- t << "\t\t" << keyFor("QMAKE_PBX_BUILDCONFIG_LIST_" + buildConfigGroups.at(i)) << " = {" << "\n"
- << "\t\t\t" << writeSettings("isa", "XCConfigurationList", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("buildConfigurations", project->values(ProKey("QMAKE_PBX_BUILDCONFIGS_" + buildConfigGroups.at(i))), SettingsAsList, 4) << ";" << "\n"
- << "\t\t\t" << writeSettings("defaultConfigurationIsVisible", "0", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("defaultConfigurationName", defaultConfig) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << keyFor("QMAKE_PBX_BUILDCONFIG_LIST_" + buildConfigGroups.at(i)) << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "XCConfigurationList", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("buildConfigurations", project->values(ProKey("QMAKE_PBX_BUILDCONFIGS_" + buildConfigGroups.at(i))), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("defaultConfigurationIsVisible", "0", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("defaultConfigurationName", defaultConfig) << ";\n"
+ << "\t\t};\n";
}
//ROOT
- t << "\t\t" << keyFor("QMAKE_PBX_ROOT") << " = {" << "\n"
- << "\t\t\t" << writeSettings("hasScannedForEncodings", "1", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("compatibilityVersion", "Xcode 3.2") << ";" << "\n"
- << "\t\t\t" << writeSettings("isa", "PBXProject", SettingsNoQuote) << ";" << "\n"
- << "\t\t\t" << writeSettings("mainGroup", keyFor("QMAKE_PBX_ROOT_GROUP")) << ";" << "\n"
- << "\t\t\t" << writeSettings("productRefGroup", keyFor("Products")) << ";" << "\n";
- t << "\t\t\t" << writeSettings("buildConfigurationList", keyFor("QMAKE_PBX_BUILDCONFIG_LIST_PROJECT")) << ";" << "\n";
- t << "\t\t\t" << writeSettings("projectDirPath", ProStringList()) << ";" << "\n"
- << "\t\t\t" << writeSettings("projectRoot", "") << ";" << "\n"
- << "\t\t\t" << writeSettings("targets", project->values("QMAKE_PBX_TARGETS"), SettingsAsList, 4) << ";" << "\n"
- << "\t\t" << "};" << "\n";
+ t << "\t\t" << keyFor("QMAKE_PBX_ROOT") << " = {\n"
+ << "\t\t\t" << writeSettings("hasScannedForEncodings", "1", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("compatibilityVersion", "Xcode 3.2") << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXProject", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("mainGroup", keyFor("QMAKE_PBX_ROOT_GROUP")) << ";\n"
+ << "\t\t\t" << writeSettings("productRefGroup", keyFor("Products")) << ";\n";
+ t << "\t\t\t" << writeSettings("buildConfigurationList", keyFor("QMAKE_PBX_BUILDCONFIG_LIST_PROJECT")) << ";\n";
+ t << "\t\t\t" << writeSettings("projectDirPath", ProStringList()) << ";\n"
+ << "\t\t\t" << writeSettings("projectRoot", "") << ";\n"
+ << "\t\t\t" << writeSettings("targets", project->values("QMAKE_PBX_TARGETS"), SettingsAsList, 4) << ";\n"
+ << "\t\t};\n";
// FIXME: Deal with developmentRegion and knownRegions for QMAKE_PBX_ROOT
//FOOTER
- t << "\t" << "};" << "\n"
- << "\t" << writeSettings("rootObject", keyFor("QMAKE_PBX_ROOT")) << ";" << "\n"
- << "}" << endl;
+ t << "\t};\n"
+ << "\t" << writeSettings("rootObject", keyFor("QMAKE_PBX_ROOT")) << ";\n"
+ << "}\n";
if(project->isActiveConfig("generate_pbxbuild_makefile")) {
QString mkwrap = fileFixify(pbx_dir + Option::dir_sep + ".." + Option::dir_sep + project->first("MAKEFILE"),
@@ -1473,17 +1473,17 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
writeHeader(mkwrapt);
const char cleans[] = "preprocess_clean ";
mkwrapt << "#This is a makefile wrapper for PROJECT BUILDER\n"
- << "all:" << "\n\t"
+ << "all:\n\t"
<< "cd " << project->first("QMAKE_ORIG_TARGET") << projectSuffix() << "/ && " << pbxbuild() << "\n"
- << "install: all" << "\n\t"
+ << "install: all\n\t"
<< "cd " << project->first("QMAKE_ORIG_TARGET") << projectSuffix() << "/ && " << pbxbuild() << " install\n"
- << "distclean clean: preprocess_clean" << "\n\t"
- << "cd " << project->first("QMAKE_ORIG_TARGET") << projectSuffix() << "/ && " << pbxbuild() << " clean" << "\n"
- << (!did_preprocess ? cleans : "") << ":" << "\n";
+ << "distclean clean: preprocess_clean\n\t"
+ << "cd " << project->first("QMAKE_ORIG_TARGET") << projectSuffix() << "/ && " << pbxbuild() << " clean\n"
+ << (!did_preprocess ? cleans : "") << ":\n";
if(did_preprocess)
- mkwrapt << cleans << ":" << "\n\t"
+ mkwrapt << cleans << ":\n\t"
<< "make -f "
- << pbx_dir << Option::dir_sep << "qt_preprocess.mak $@" << endl;
+ << pbx_dir << Option::dir_sep << "qt_preprocess.mak $@\n";
writingUnixMakefileGenerator = false;
}
}
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 72aa1ffeb9..0264dbf37e 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -317,6 +317,10 @@ MakefileGenerator::findFilesInVPATH(ProStringList l, uchar flags, const QString
if(!val.isEmpty()) {
QString qval = val.toQString();
QString file = fixEnvVariables(qval);
+ if (file.isEmpty()) {
+ ++val_it;
+ continue;
+ }
if(!(flags & VPATH_NoFixify))
file = fileFixify(file, qmake_getpwd(), Option::output_dir);
if (file.at(0) == '\"' && file.at(file.length() - 1) == '\"')
@@ -1037,7 +1041,7 @@ MakefileGenerator::writeProjectMakefile()
}
}
if(project->isActiveConfig("build_all")) {
- t << "first: all" << endl;
+ t << "first: all\n";
QList<SubTarget*>::Iterator it;
//install
@@ -1053,8 +1057,8 @@ MakefileGenerator::writeProjectMakefile()
t << endl;
} else {
t << "first: " << targets.first()->target << endl
- << "install: " << targets.first()->target << "-install" << endl
- << "uninstall: " << targets.first()->target << "-uninstall" << endl;
+ << "install: " << targets.first()->target << "-install\n"
+ << "uninstall: " << targets.first()->target << "-uninstall\n";
}
writeSubTargets(t, targets, SubTargetsNoFlags);
@@ -1393,7 +1397,7 @@ MakefileGenerator::writeInstalls(QTextStream &t, bool noBuild)
t << "uninstall_" << (*it) << ": FORCE";
for (int i = uninst.size(); --i >= 0; )
t << "\n\t" << uninst.at(i);
- t << "\n\t-$(DEL_DIR) " << filePrefixRoot(root, dst) << " " << endl << endl;
+ t << "\n\t-$(DEL_DIR) " << filePrefixRoot(root, dst) << " \n\n";
}
t << endl;
@@ -1906,7 +1910,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
if(tmp_clean.isEmpty())
tmp_clean = tmp_out;
if(tmp_clean.indexOf("${QMAKE_") == -1) {
- t << "\n\t" << "-$(DEL_FILE) " << tmp_clean;
+ t << "\n\t-$(DEL_FILE) " << tmp_clean;
wrote_clean = true;
}
if(!wrote_clean_cmds || !wrote_clean) {
@@ -2142,7 +2146,7 @@ MakefileGenerator::writeExtraCompilerVariables(QTextStream &t)
const ProStringList &vars = project->values(ProKey(*it + ".variables"));
for (ProStringList::ConstIterator varit = vars.begin(); varit != vars.end(); ++varit) {
if(first) {
- t << "\n####### Custom Compiler Variables" << endl;
+ t << "\n####### Custom Compiler Variables\n";
first = false;
}
t << "QMAKE_COMP_" << (*varit) << " = "
@@ -2169,7 +2173,7 @@ MakefileGenerator::writeExtraVariables(QTextStream &t)
}
}
if (!outlist.isEmpty()) {
- t << "####### Custom Variables" << endl;
+ t << "####### Custom Variables\n";
t << outlist.join("\n") << endl << endl;
}
}
@@ -2182,24 +2186,24 @@ MakefileGenerator::writeStubMakefile(QTextStream &t)
for (ProStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
t << *it << " ";
//const QString ofile = Option::fixPathToTargetOS(fileFixify(Option::output.fileName()));
- t << "first all clean install distclean uninstall: " << "qmake" << endl
- << "qmake_all:" << endl;
+ t << "first all clean install distclean uninstall: qmake\n"
+ << "qmake_all:\n";
writeMakeQmake(t);
- t << "FORCE:" << endl << endl;
+ t << "FORCE:\n\n";
return true;
}
bool
MakefileGenerator::writeMakefile(QTextStream &t)
{
- t << "####### Compile" << endl << endl;
+ t << "####### Compile\n\n";
writeObj(t, "SOURCES");
writeObj(t, "GENERATED_SOURCES");
- t << "####### Install" << endl << endl;
+ t << "####### Install\n\n";
writeInstalls(t);
- t << "FORCE:" << endl << endl;
+ t << "FORCE:\n\n";
return true;
}
@@ -2242,14 +2246,14 @@ QString MakefileGenerator::build_args(const QString &outdir)
void
MakefileGenerator::writeHeader(QTextStream &t)
{
- t << "#############################################################################" << endl;
+ t << "#############################################################################\n";
t << "# Makefile for building: " << escapeFilePath(var("TARGET")) << endl;
- t << "# Generated by qmake (" QMAKE_VERSION_STR ") (Qt " QT_VERSION_STR ")" << endl;
+ t << "# Generated by qmake (" QMAKE_VERSION_STR ") (Qt " QT_VERSION_STR ")\n";
t << "# Project: " << fileFixify(project->projectFile()) << endl;
t << "# Template: " << var("TEMPLATE") << endl;
if(!project->isActiveConfig("build_pass"))
t << "# Command: " << build_args().replace("$(QMAKE)", var("QMAKE_QMAKE")) << endl;
- t << "#############################################################################" << endl;
+ t << "#############################################################################\n";
t << endl;
QString ofile = Option::fixPathToTargetOS(Option::output.fileName());
if (ofile.lastIndexOf(Option::dir_sep) != -1)
@@ -2374,7 +2378,7 @@ void
MakefileGenerator::writeSubDirs(QTextStream &t)
{
QList<SubTarget*> targets = findSubDirsSubTargets();
- t << "first: make_first" << endl;
+ t << "first: make_first\n";
int flags = SubTargetInstalls;
if(project->isActiveConfig("ordered"))
flags |= SubTargetOrdered;
@@ -2534,10 +2538,10 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT
if(!targets.isEmpty()) {
for(QList<SubTarget*>::Iterator it = targets.begin(); it != targets.end(); ++it) {
if(!(*it)->profile.isEmpty())
- t << " " << (*it)->target << "-" << "qmake_all";
+ t << " " << (*it)->target << "-qmake_all";
}
}
- t << " FORCE" << endl << endl;
+ t << " FORCE\n\n";
}
for(int s = 0; s < targetSuffixes.size(); ++s) {
@@ -2566,7 +2570,7 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT
t << varGlue("ALL_DEPS"," "," ","");
if(suffix == "clean")
t << varGlue("CLEAN_DEPS"," "," ","");
- t << " FORCE" << endl;
+ t << " FORCE\n";
if(suffix == "clean") {
t << fileVarGlue("QMAKE_CLEAN", "\t-$(DEL_FILE) ", "\n\t-$(DEL_FILE) ", "\n");
} else if(suffix == "distclean") {
@@ -2667,7 +2671,7 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT
project->values("UNINSTALLDEPS") += "uninstall_subtargets";
writeInstalls(t, true);
}
- t << "FORCE:" << endl << endl;
+ t << "FORCE:\n\n";
}
void
@@ -2676,7 +2680,7 @@ MakefileGenerator::writeMakeQmake(QTextStream &t, bool noDummyQmakeAll)
QString ofile = Option::fixPathToTargetOS(fileFixify(Option::output.fileName()));
if(project->isEmpty("QMAKE_FAILED_REQUIREMENTS") && !project->isEmpty("QMAKE_INTERNAL_PRL_FILE")) {
QStringList files = fileFixify(Option::mkfile::project_files);
- t << escapeDependencyPath(project->first("QMAKE_INTERNAL_PRL_FILE").toQString()) << ": " << "\n\t"
+ t << escapeDependencyPath(project->first("QMAKE_INTERNAL_PRL_FILE").toQString()) << ": \n\t"
<< "@$(QMAKE) -prl " << buildArgs() << " " << files.join(' ') << endl;
}
@@ -2700,13 +2704,13 @@ MakefileGenerator::writeMakeQmake(QTextStream &t, bool noDummyQmakeAll)
for(int include = 0; include < included.size(); ++include) {
const ProString &i = included.at(include);
if(!i.isEmpty())
- t << i << ":" << endl;
+ t << i << ":\n";
}
}
if(project->first("QMAKE_ORIG_TARGET") != "qmake") {
t << "qmake: FORCE\n\t@" << qmake << endl << endl;
if (!noDummyQmakeAll)
- t << "qmake_all: FORCE" << endl << endl;
+ t << "qmake_all: FORCE\n\n";
}
}
@@ -3249,7 +3253,7 @@ MakefileGenerator::writePkgConfigFile()
if (project->isActiveConfig("shared"))
pkgConfiglibName += project->first("TARGET_VERSION_EXT").toQString();
}
- t << pkgConfiglibDir << " " << pkgConfiglibName << " " << endl;
+ t << pkgConfiglibDir << " " << pkgConfiglibName << " \n";
ProStringList libs;
if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS")) {
@@ -3273,7 +3277,7 @@ MakefileGenerator::writePkgConfigFile()
<< varGlue("PRL_EXPORT_CXXFLAGS", "", " ", " ")
<< varGlue("QMAKE_PKGCONFIG_CFLAGS", "", " ", " ")
// << varGlue("DEFINES","-D"," -D"," ")
- << "-I${includedir}" << endl;
+ << "-I${includedir}\n";
// requires
const QString requires = project->values("QMAKE_PKGCONFIG_REQUIRES").join(' ');
diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp
index 9adcc3af7c..948fd2b79c 100644
--- a/qmake/generators/unix/unixmake.cpp
+++ b/qmake/generators/unix/unixmake.cpp
@@ -154,7 +154,7 @@ UnixMakefileGenerator::init()
}
}
ldadd += project->values("QMAKE_LIBDIR_FLAGS");
- if (project->isActiveConfig("macx")) {
+ if (project->isActiveConfig("mac")) {
if (!project->isEmpty("QMAKE_FRAMEWORKPATH")) {
const ProStringList &fwdirs = project->values("QMAKE_FRAMEWORKPATH");
for (int i = 0; i < fwdirs.size(); ++i)
@@ -262,7 +262,7 @@ UnixMakefileGenerator::init()
project->values(runCompImp).append("$(" + compiler + ") " + compile_flag + " " + var("QMAKE_CC_O_FLAG") + "\"$@\" \"$<\"");
}
- if(project->isActiveConfig("macx") && !project->isEmpty("TARGET") && !project->isActiveConfig("compile_libtool") &&
+ if (project->isActiveConfig("mac") && !project->isEmpty("TARGET") && !project->isActiveConfig("compile_libtool") &&
((project->isActiveConfig("build_pass") || project->isEmpty("BUILDS")))) {
ProString bundle;
if(project->isActiveConfig("bundle") && !project->isEmpty("QMAKE_BUNDLE_EXTENSION")) {
diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
index 2a99b5dd34..c81b7d8d12 100644
--- a/qmake/generators/unix/unixmake2.cpp
+++ b/qmake/generators/unix/unixmake2.cpp
@@ -85,12 +85,12 @@ UnixMakefileGenerator::writeMakefile(QTextStream &t)
const ProStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
for (ProStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
t << *it << " ";
- t << "first all clean install distclean uninstall qmake_all:" << "\n\t"
+ t << "first all clean install distclean uninstall qmake_all:\n\t"
<< "@echo \"Some of the required modules ("
- << var("QMAKE_FAILED_REQUIREMENTS") << ") are not available.\"" << "\n\t"
- << "@echo \"Skipped.\"" << endl << endl;
+ << var("QMAKE_FAILED_REQUIREMENTS") << ") are not available.\"\n\t"
+ << "@echo \"Skipped.\"\n\n";
writeMakeQmake(t);
- t << "FORCE:" << endl << endl;
+ t << "FORCE:\n\n";
return true;
}
@@ -118,15 +118,15 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
(!project->isActiveConfig("staticlib")))),
src_incremental=false;
- t << "####### Compiler, tools and options" << endl << endl;
+ t << "####### Compiler, tools and options\n\n";
t << "CC = " << var("QMAKE_CC") << endl;
t << "CXX = " << var("QMAKE_CXX") << endl;
t << "DEFINES = "
<< varGlue("PRL_EXPORT_DEFINES","-D"," -D"," ")
<< varGlue("DEFINES","-D"," -D","") << endl;
- t << "CFLAGS = " << var("QMAKE_CFLAGS") << " $(DEFINES)" << endl;
- t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " $(DEFINES)" << endl;
- t << "INCPATH = " << "-I" << specdir();
+ t << "CFLAGS = " << var("QMAKE_CFLAGS") << " $(DEFINES)\n";
+ t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " $(DEFINES)\n";
+ t << "INCPATH = -I" << specdir();
if(!project->isActiveConfig("no_include_pwd")) {
QString pwd = escapeFilePath(fileFixify(qmake_getpwd()));
if(pwd.isEmpty())
@@ -138,7 +138,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
for(int i = 0; i < incs.size(); ++i) {
ProString inc = escapeFilePath(incs.at(i));
if(!inc.isEmpty())
- t << " " << "-I" << inc;
+ t << " -I" << inc;
}
}
if(!project->isEmpty("QMAKE_FRAMEWORKPATH_FLAGS"))
@@ -148,7 +148,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
if(!project->isActiveConfig("staticlib")) {
t << "LINK = " << var("QMAKE_LINK") << endl;
t << "LFLAGS = " << var("QMAKE_LFLAGS") << endl;
- t << "LIBS = " << "$(SUBLIBS) " << var("QMAKE_LIBS") << " " << var("QMAKE_LIBS_PRIVATE") << endl;
+ t << "LIBS = $(SUBLIBS) " << var("QMAKE_LIBS") << " " << var("QMAKE_LIBS_PRIVATE") << endl;
}
t << "AR = " << var("QMAKE_AR") << endl;
@@ -176,15 +176,15 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
t << endl;
- t << "####### Output directory" << endl << endl;
+ t << "####### Output directory\n\n";
if (! project->values("OBJECTS_DIR").isEmpty())
t << "OBJECTS_DIR = " << var("OBJECTS_DIR") << endl;
else
- t << "OBJECTS_DIR = ./" << endl;
+ t << "OBJECTS_DIR = ./\n";
t << endl;
/* files */
- t << "####### Files" << endl << endl;
+ t << "####### Files\n\n";
t << "SOURCES = " << valList(escapeFilePaths(project->values("SOURCES"))) << " "
<< valList(escapeFilePaths(project->values("GENERATED_SOURCES"))) << endl;
if(do_incremental) {
@@ -225,7 +225,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
// would be interpreted as line continuation. The lack of spacing between the value and the
// comment is also important as otherwise quoted use of "$(DESTDIR)" would include this
// spacing.
- t << "DESTDIR = " << var("DESTDIR") << "#avoid trailing-slash linebreak" << endl;
+ t << "DESTDIR = " << var("DESTDIR") << "#avoid trailing-slash linebreak\n";
if(project->isActiveConfig("compile_libtool"))
t << "TARGETL = " << var("TARGET_la") << endl;
t << "TARGET = " << escapeFilePath(var("TARGET")) << endl;
@@ -257,8 +257,8 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
t << "include " << (*it) << endl;
/* rules */
- t << "first: all" << endl;
- t << "####### Implicit rules" << endl << endl;
+ t << "first: all\n";
+ t << "####### Implicit rules\n\n";
t << ".SUFFIXES: " << Option::obj_ext;
for(QStringList::Iterator cit = Option::c_ext.begin(); cit != Option::c_ext.end(); ++cit)
t << " " << (*cit);
@@ -290,18 +290,18 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
QString pwd = escapeFilePath(fileFixify(qmake_getpwd()));
- t << "###### Dependencies" << endl << endl;
+ t << "###### Dependencies\n\n";
t << odir << ".deps/%.d: " << pwd << "/%.cpp\n\t";
if(project->isActiveConfig("echo_depend_creation"))
- t << "@echo Creating depend for $<" << "\n\t";
+ t << "@echo Creating depend for $<\n\t";
t << mkdir_p_asstring("$(@D)") << "\n\t"
- << "@$(CXX) " << cmd << " $< | sed \"s,^\\($(*F).o\\):," << odir << "\\1:,g\" >$@" << endl << endl;
+ << "@$(CXX) " << cmd << " $< | sed \"s,^\\($(*F).o\\):," << odir << "\\1:,g\" >$@\n\n";
t << odir << ".deps/%.d: " << pwd << "/%.c\n\t";
if(project->isActiveConfig("echo_depend_creation"))
- t << "@echo Creating depend for $<" << "\n\t";
+ t << "@echo Creating depend for $<\n\t";
t << mkdir_p_asstring("$(@D)") << "\n\t"
- << "@$(CC) " << cmd << " $< | sed \"s,^\\($(*F).o\\):," << odir << "\\1:,g\" >$@" << endl << endl;
+ << "@$(CC) " << cmd << " $< | sed \"s,^\\($(*F).o\\):," << odir << "\\1:,g\" >$@\n\n";
static const char * const src[] = { "SOURCES", "GENERATED_SOURCES", 0 };
for (int x = 0; src[x]; x++) {
@@ -341,7 +341,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
}
}
- t << "####### Build rules" << endl << endl;
+ t << "####### Build rules\n\n";
if(!project->values("SUBLIBS").isEmpty()) {
ProString libdir = "tmp/";
if(!project->isEmpty("SUBLIBS_DIR"))
@@ -371,9 +371,9 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
t << ":\n\t@echo \"Creating '";
else
t << ": FORCE\n\t@echo \"Creating/updating '";
- t << targ << "'\"" << "\n\t"
+ t << targ << "'\"\n\t"
<< "(cd " << libinfo.first("QMAKE_PRL_BUILD_DIR") << ";"
- << "$(MAKE))" << endl;
+ << "$(MAKE))\n";
}
}
}
@@ -397,8 +397,8 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
if(project->first("QMAKE_INCREMENTAL_STYLE") == "ld") {
QString incr_target_dir = var("OBJECTS_DIR") + incr_target + Option::obj_ext;
//actual target
- t << incr_target_dir << ": $(OBJECTS)" << "\n\t"
- << "ld -r -o "<< incr_target_dir << " $(OBJECTS)" << endl;
+ t << incr_target_dir << ": $(OBJECTS)\n\t"
+ << "ld -r -o "<< incr_target_dir << " $(OBJECTS)\n";
//communicated below
deps.prepend(incr_target_dir + " ");
incr_deps = "$(INCREMENTAL_OBJECTS)";
@@ -414,11 +414,11 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
incr_lflags += var("QMAKE_LFLAGS_DEBUG");
else
incr_lflags += var("QMAKE_LFLAGS_RELEASE");
- t << incr_target_dir << ": $(INCREMENTAL_OBJECTS)" << "\n\t";
+ t << incr_target_dir << ": $(INCREMENTAL_OBJECTS)\n\t";
if(!destdir.isEmpty())
t << "\n\t" << mkdir_p_asstring(destdir) << "\n\t";
t << "$(LINK) " << incr_lflags << " -o "<< incr_target_dir <<
- " $(INCREMENTAL_OBJECTS)" << endl;
+ " $(INCREMENTAL_OBJECTS)\n";
//communicated below
if(!destdir.isEmpty()) {
if(!incr_objs.isEmpty())
@@ -509,11 +509,11 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
incr_lflags += var("QMAKE_LFLAGS_DEBUG");
else
incr_lflags += var("QMAKE_LFLAGS_RELEASE");
- t << incr_target_dir << ": $(INCREMENTAL_OBJECTS)" << "\n\t";
+ t << incr_target_dir << ": $(INCREMENTAL_OBJECTS)\n\t";
if(!destdir.isEmpty())
t << mkdir_p_asstring(destdir) << "\n\t";
t << "$(LINK) " << incr_lflags << " " << var("QMAKE_LINK_O_FLAG") << incr_target_dir <<
- " $(INCREMENTAL_OBJECTS)" << endl;
+ " $(INCREMENTAL_OBJECTS)\n";
//communicated below
ProStringList &cmd = project->values("QMAKE_LINK_SHLIB_CMD");
if(!destdir.isEmpty())
@@ -523,15 +523,15 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
incr_deps = "$(OBJECTS)";
}
- t << "all: " << " " << escapeDependencyPath(deps) << " " << valGlue(escapeDependencyPaths(project->values("ALL_DEPS")),""," "," ")
- << " " << destdir << "$(TARGET)" << endl << endl;
+ t << "all: " << escapeDependencyPath(deps) << " " << valGlue(escapeDependencyPaths(project->values("ALL_DEPS")),""," "," ")
+ << " " << destdir << "$(TARGET)\n\n";
//real target
t << destdir << "$(TARGET): " << var("PRE_TARGETDEPS") << " "
<< incr_deps << " $(SUBLIBS) " << target_deps << " " << var("POST_TARGETDEPS");
} else {
t << "all: " << escapeDependencyPath(deps) << " " << valGlue(escapeDependencyPaths(project->values("ALL_DEPS")),""," "," ") << " " <<
- destdir << "$(TARGET)" << endl << endl;
+ destdir << "$(TARGET)\n\n";
t << destdir << "$(TARGET): " << var("PRE_TARGETDEPS")
<< " $(OBJECTS) $(SUBLIBS) $(OBJCOMP) " << target_deps
<< " " << var("POST_TARGETDEPS");
@@ -546,7 +546,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
<< var("QMAKE_LINK_SHLIB_CMD");
} else if(project->isActiveConfig("plugin")) {
t << "\n\t"
- << "-$(DEL_FILE) $(TARGET)" << "\n\t"
+ << "-$(DEL_FILE) $(TARGET)\n\t"
<< var("QMAKE_LINK_SHLIB_CMD");
if(!destdir.isEmpty())
t << "\n\t"
@@ -556,15 +556,15 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
t << endl << endl;
} else if(!project->isEmpty("QMAKE_BUNDLE")) {
t << "\n\t"
- << "-$(DEL_FILE) $(TARGET) $(TARGET0) $(DESTDIR)$(TARGET0)" << "\n\t"
+ << "-$(DEL_FILE) $(TARGET) $(TARGET0) $(DESTDIR)$(TARGET0)\n\t"
<< var("QMAKE_LINK_SHLIB_CMD") << "\n\t"
<< mkdir_p_asstring("\"`dirname $(DESTDIR)$(TARGETD)`\"", false) << "\n\t"
- << "-$(MOVE) $(TARGET) $(DESTDIR)$(TARGETD)" << "\n\t"
+ << "-$(MOVE) $(TARGET) $(DESTDIR)$(TARGETD)\n\t"
<< mkdir_p_asstring("\"`dirname $(DESTDIR)$(TARGET0)`\"", false) << "\n\t"
<< varGlue("QMAKE_LN_SHLIB","-"," "," Versions/" +
project->first("QMAKE_FRAMEWORK_VERSION") +
"/$(TARGET) $(DESTDIR)$(TARGET0)") << "\n\t"
- << "-$(DEL_FILE) " << destdir << "Versions/Current" << "\n\t"
+ << "-$(DEL_FILE) " << destdir << "Versions/Current\n\t"
<< varGlue("QMAKE_LN_SHLIB","-"," ", " " + project->first("QMAKE_FRAMEWORK_VERSION") +
" " + destdir + "Versions/Current") << "\n\t";
if(!project->isEmpty("QMAKE_POST_LINK"))
@@ -572,7 +572,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
t << endl << endl;
} else if(project->isEmpty("QMAKE_HPUX_SHLIB")) {
t << "\n\t"
- << "-$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)" << "\n\t"
+ << "-$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)\n\t"
<< var("QMAKE_LINK_SHLIB_CMD") << "\n\t";
t << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET0)") << "\n\t"
<< varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET1)") << "\n\t"
@@ -592,7 +592,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
t << endl << endl;
} else {
t << "\n\t"
- << "-$(DEL_FILE) $(TARGET) $(TARGET0)" << "\n\t"
+ << "-$(DEL_FILE) $(TARGET) $(TARGET0)\n\t"
<< var("QMAKE_LINK_SHLIB_CMD") << "\n\t";
t << varGlue("QMAKE_LN_SHLIB",""," "," $(TARGET) $(TARGET0)");
if(!destdir.isEmpty())
@@ -608,38 +608,38 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
t << endl << endl;
if (! project->isActiveConfig("plugin")) {
- t << "staticlib: $(TARGETA)" << endl << endl;
+ t << "staticlib: $(TARGETA)\n\n";
t << "$(TARGETA): " << var("PRE_TARGETDEPS") << " $(OBJECTS) $(OBJCOMP)";
if(do_incremental)
t << " $(INCREMENTAL_OBJECTS)";
t << " " << var("POST_TARGETDEPS") << "\n\t"
- << "-$(DEL_FILE) $(TARGETA) " << "\n\t"
+ << "-$(DEL_FILE) $(TARGETA) \n\t"
<< var("QMAKE_AR_CMD");
if(do_incremental)
t << " $(INCREMENTAL_OBJECTS)";
if(!project->isEmpty("QMAKE_RANLIB"))
- t << "\n\t" << "$(RANLIB) $(TARGETA)";
+ t << "\n\t$(RANLIB) $(TARGETA)";
t << endl << endl;
}
} else {
QString destdir = project->first("DESTDIR").toQString();
t << "all: " << escapeDependencyPath(deps) << " " << valGlue(escapeDependencyPaths(project->values("ALL_DEPS")),""," "," ") << destdir << "$(TARGET) "
<< varGlue("QMAKE_AR_SUBLIBS", destdir, " " + destdir, "") << "\n\n"
- << "staticlib: " << destdir << "$(TARGET)" << "\n\n";
+ << "staticlib: " << destdir << "$(TARGET)\n\n";
if(project->isEmpty("QMAKE_AR_SUBLIBS")) {
t << destdir << "$(TARGET): " << var("PRE_TARGETDEPS")
<< " $(OBJECTS) $(OBJCOMP) " << var("POST_TARGETDEPS") << "\n\t";
if(!destdir.isEmpty())
t << mkdir_p_asstring(destdir) << "\n\t";
- t << "-$(DEL_FILE) $(TARGET)" << "\n\t"
+ t << "-$(DEL_FILE) $(TARGET)\n\t"
<< var("QMAKE_AR_CMD") << "\n";
if(!project->isEmpty("QMAKE_POST_LINK"))
t << "\t" << var("QMAKE_POST_LINK") << "\n";
if(!project->isEmpty("QMAKE_RANLIB"))
- t << "\t" << "$(RANLIB) $(TARGET)" << "\n";
+ t << "\t$(RANLIB) $(TARGET)\n";
if(!destdir.isEmpty())
- t << "\t" << "-$(DEL_FILE) " << destdir << "$(TARGET)" << "\n"
- << "\t" << "-$(MOVE) $(TARGET) " << destdir << " \n";
+ t << "\t-$(DEL_FILE) " << destdir << "$(TARGET)\n"
+ << "\t-$(MOVE) $(TARGET) " << destdir << " \n";
} else {
int max_files = project->first("QMAKE_MAX_FILES_PER_AR").toInt();
ProStringList objs = project->values("OBJECTS") + project->values("OBJCOMP"),
@@ -667,10 +667,10 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
if(!project->isEmpty("QMAKE_POST_LINK"))
t << "\t" << var("QMAKE_POST_LINK") << "\n";
if(!project->isEmpty("QMAKE_RANLIB"))
- t << "\t" << "$(RANLIB) " << (*libit) << "\n";
+ t << "\t$(RANLIB) " << (*libit) << "\n";
if(!destdir.isEmpty())
- t << "\t" << "-$(DEL_FILE) " << destdir << (*libit) << "\n"
- << "\t" << "-$(MOVE) " << (*libit) << " " << destdir << " \n";
+ t << "\t-$(DEL_FILE) " << destdir << (*libit) << "\n"
+ << "\t-$(MOVE) " << (*libit) << " " << destdir << " \n";
}
}
t << endl << endl;
@@ -687,14 +687,14 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
meta_files += pkgConfigFileName();
}
if(!meta_files.isEmpty())
- t << escapeDependencyPaths(meta_files).join(" ") << ": " << "\n\t"
+ t << escapeDependencyPaths(meta_files).join(" ") << ": \n\t"
<< "@$(QMAKE) -prl " << buildArgs() << " " << project->projectFile() << endl;
}
if(!project->first("QMAKE_PKGINFO").isEmpty()) {
ProString pkginfo = escapeFilePath(project->first("QMAKE_PKGINFO"));
QString destdir = escapeFilePath(project->first("DESTDIR") + project->first("QMAKE_BUNDLE") + "/Contents");
- t << pkginfo << ": " << "\n\t";
+ t << pkginfo << ": \n\t";
if(!destdir.isEmpty())
t << mkdir_p_asstring(destdir) << "\n\t";
t << "@$(DEL_FILE) " << pkginfo << "\n\t"
@@ -705,16 +705,16 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
if(!project->first("QMAKE_BUNDLE_RESOURCE_FILE").isEmpty()) {
ProString resources = escapeFilePath(project->first("QMAKE_BUNDLE_RESOURCE_FILE"));
QString destdir = escapeFilePath(project->first("DESTDIR") + project->first("QMAKE_BUNDLE") + "/Contents/Resources");
- t << resources << ": " << "\n\t";
+ t << resources << ": \n\t";
t << mkdir_p_asstring(destdir) << "\n\t";
- t << "@touch " << resources << "\n\t" << endl;
+ t << "@touch " << resources << "\n\t\n";
}
if(!project->isEmpty("QMAKE_BUNDLE")) {
//copy the plist
QString info_plist = escapeFilePath(fileFixify(project->first("QMAKE_INFO_PLIST").toQString())),
info_plist_out = escapeFilePath(project->first("QMAKE_INFO_PLIST_OUT").toQString());
QString destdir = info_plist_out.section(Option::dir_sep, 0, -2);
- t << info_plist_out << ": " << "\n\t";
+ t << info_plist_out << ": \n\t";
if(!destdir.isEmpty())
t << mkdir_p_asstring(destdir) << "\n\t";
ProStringList commonSedArgs;
@@ -765,7 +765,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
if (!project->isEmpty(vkey)) {
QString version = project->first(vkey) + "/" +
project->first("QMAKE_FRAMEWORK_VERSION") + "/";
- t << Option::fixPathToLocalOS(path + project->first(pkey)) << ": " << "\n\t"
+ t << Option::fixPathToLocalOS(path + project->first(pkey)) << ": \n\t"
<< mkdir_p_asstring(path) << "\n\t"
<< "@$(SYMLINK) " << version << project->first(pkey) << " " << path << endl;
path += version;
@@ -805,7 +805,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
QString ddir_c = escapeFilePath(fileFixify((project->isEmpty("OBJECTS_DIR") ? ProString(".tmp/") :
project->first("OBJECTS_DIR")) + ddir,
Option::output_dir, Option::output_dir));
- t << "dist: " << "\n\t"
+ t << "dist: \n\t"
<< mkdir_p_asstring(ddir_c) << "\n\t"
<< "$(COPY_FILE) --parents $(SOURCES) $(DIST) " << ddir_c << Option::dir_sep << " && ";
if(!project->isEmpty("QMAKE_EXTRA_COMPILERS")) {
@@ -833,18 +833,18 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
QString clean_targets = "compiler_clean " + var("CLEAN_DEPS");
if(do_incremental) {
- t << "incrclean:" << "\n";
+ t << "incrclean:\n";
if(src_incremental)
- t << "\t-$(DEL_FILE) $(INCREMENTAL_OBJECTS)" << "\n";
+ t << "\t-$(DEL_FILE) $(INCREMENTAL_OBJECTS)\n";
t << endl;
}
t << "clean:" << clean_targets << "\n\t";
if(!project->isEmpty("OBJECTS")) {
if(project->isActiveConfig("compile_libtool"))
- t << "-$(LIBTOOL) --mode=clean $(DEL_FILE) $(OBJECTS)" << "\n\t";
+ t << "-$(LIBTOOL) --mode=clean $(DEL_FILE) $(OBJECTS)\n\t";
else
- t << "-$(DEL_FILE) $(OBJECTS)" << "\n\t";
+ t << "-$(DEL_FILE) $(OBJECTS)\n\t";
}
if(doPrecompiledHeaders() && !project->isEmpty("PRECOMPILED_HEADER")) {
ProStringList precomp_files;
@@ -891,11 +891,11 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
if(!project->isEmpty("IMAGES"))
t << varGlue("QMAKE_IMAGE_COLLECTION", "\t-$(DEL_FILE) ", " ", "") << "\n\t";
if(src_incremental)
- t << "-$(DEL_FILE) $(INCREMENTAL_OBJECTS)" << "\n\t";
+ t << "-$(DEL_FILE) $(INCREMENTAL_OBJECTS)\n\t";
t << varGlue("QMAKE_CLEAN","-$(DEL_FILE) "," ","\n\t")
- << "-$(DEL_FILE) *~ core *.core" << "\n"
+ << "-$(DEL_FILE) *~ core *.core\n"
<< varGlue("CLEAN_FILES","\t-$(DEL_FILE) "," ","") << endl << endl;
- t << "####### Sub-libraries" << endl << endl;
+ t << "####### Sub-libraries\n\n";
if (!project->values("SUBLIBS").isEmpty()) {
ProString libdir = "tmp/";
if(!project->isEmpty("SUBLIBS_DIR"))
@@ -910,19 +910,19 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
ProString destdir = project->first("DESTDIR");
if (!destdir.isEmpty() && !destdir.endsWith(Option::dir_sep))
destdir += Option::dir_sep;
- t << "distclean: " << "clean\n";
+ t << "distclean: clean\n";
if(!project->isEmpty("QMAKE_BUNDLE")) {
QString bundlePath = escapeFilePath(destdir + project->first("QMAKE_BUNDLE"));
t << "\t-$(DEL_FILE) -r " << bundlePath << endl;
} else if(project->isActiveConfig("compile_libtool")) {
- t << "\t-$(LIBTOOL) --mode=clean $(DEL_FILE) " << "$(TARGET)" << endl;
+ t << "\t-$(LIBTOOL) --mode=clean $(DEL_FILE) $(TARGET)\n";
} else if(!project->isActiveConfig("staticlib") && project->values("QMAKE_APP_FLAG").isEmpty() &&
!project->isActiveConfig("plugin")) {
- t << "\t-$(DEL_FILE) " << destdir << "$(TARGET)" << " " << endl;
+ t << "\t-$(DEL_FILE) " << destdir << "$(TARGET) \n";
t << "\t-$(DEL_FILE) " << destdir << "$(TARGET0) " << destdir << "$(TARGET1) "
- << destdir << "$(TARGET2) $(TARGETA)" << endl;
+ << destdir << "$(TARGET2) $(TARGETA)\n";
} else {
- t << "\t-$(DEL_FILE) " << "$(TARGET)" << " " << endl;
+ t << "\t-$(DEL_FILE) $(TARGET) \n";
}
t << varGlue("QMAKE_DISTCLEAN","\t-$(DEL_FILE) "," ","\n");
{
@@ -934,7 +934,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
if(doPrecompiledHeaders() && !project->isEmpty("PRECOMPILED_HEADER")) {
QString pchInput = project->first("PRECOMPILED_HEADER").toQString();
- t << "###### Prefix headers" << endl;
+ t << "###### Prefix headers\n";
QString comps[] = { "C", "CXX", "OBJC", "OBJCXX", QString() };
for(int i = 0; !comps[i].isNull(); i++) {
QString pchFlags = var(ProKey("QMAKE_" + comps[i] + "FLAGS_PRECOMPILE"));
diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp
index be4f203f01..38e6c56bb5 100644
--- a/qmake/generators/win32/mingw_make.cpp
+++ b/qmake/generators/win32/mingw_make.cpp
@@ -115,10 +115,10 @@ bool MingwMakefileGenerator::writeMakefile(QTextStream &t)
{
writeHeader(t);
if(!project->values("QMAKE_FAILED_REQUIREMENTS").isEmpty()) {
- t << "all clean:" << "\n\t"
+ t << "all clean:\n\t"
<< "@echo \"Some of the required modules ("
- << var("QMAKE_FAILED_REQUIREMENTS") << ") are not available.\"" << "\n\t"
- << "@echo \"Skipped.\"" << endl << endl;
+ << var("QMAKE_FAILED_REQUIREMENTS") << ") are not available.\"\n\t"
+ << "@echo \"Skipped.\"\n\n";
writeMakeQmake(t);
return true;
}
@@ -134,10 +134,10 @@ bool MingwMakefileGenerator::writeMakefile(QTextStream &t)
const ProStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
for (ProStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
t << *it << " ";
- t << "first all clean install distclean uninstall: qmake" << endl
- << "qmake_all:" << endl;
+ t << "first all clean install distclean uninstall: qmake\n"
+ << "qmake_all:\n";
writeMakeQmake(t);
- t << "FORCE:" << endl << endl;
+ t << "FORCE:\n\n";
return true;
}
writeMingwParts(t);
@@ -156,7 +156,7 @@ void createLdObjectScriptFile(const QString &fileName, const ProStringList &objL
QFile file(filePath);
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream t(&file);
- t << "INPUT(" << endl;
+ t << "INPUT(\n";
for (ProStringList::ConstIterator it = objList.constBegin(); it != objList.constEnd(); ++it) {
QString path = (*it).toQString();
if (QDir::isRelativePath(path))
@@ -164,7 +164,7 @@ void createLdObjectScriptFile(const QString &fileName, const ProStringList &objL
else
t << path << endl;
}
- t << ");" << endl;
+ t << ");\n";
t.flush();
file.close();
}
@@ -180,7 +180,7 @@ void createArObjectScriptFile(const QString &fileName, const QString &target, co
for (ProStringList::ConstIterator it = objList.constBegin(); it != objList.constEnd(); ++it) {
t << "ADDMOD " << *it << endl;
}
- t << "SAVE" << endl;
+ t << "SAVE\n";
t.flush();
file.close();
}
@@ -214,13 +214,13 @@ void MingwMakefileGenerator::writeMingwParts(QTextStream &t)
t << escapeDependencyPath(cHeader) << ": " << escapeDependencyPath(header) << " "
<< escapeDependencyPaths(findDependencies(header)).join(" \\\n\t\t")
<< "\n\t" << mkdir_p_asstring(preCompHeaderOut)
- << "\n\t" << "$(CC) -x c-header -c $(CFLAGS) $(INCPATH) -o " << cHeader << " " << header
+ << "\n\t$(CC) -x c-header -c $(CFLAGS) $(INCPATH) -o " << cHeader << " " << header
<< endl << endl;
QString cppHeader = preCompHeaderOut + Option::dir_sep + "c++";
t << escapeDependencyPath(cppHeader) << ": " << escapeDependencyPath(header) << " "
<< escapeDependencyPaths(findDependencies(header)).join(" \\\n\t\t")
<< "\n\t" << mkdir_p_asstring(preCompHeaderOut)
- << "\n\t" << "$(CXX) -x c++-header -c $(CXXFLAGS) $(INCPATH) -o " << cppHeader << " " << header
+ << "\n\t$(CXX) -x c++-header -c $(CXXFLAGS) $(INCPATH) -o " << cppHeader << " " << header
<< endl << endl;
}
}
@@ -393,19 +393,19 @@ void MingwMakefileGenerator::writeObjectsPart(QTextStream &t)
void MingwMakefileGenerator::writeBuildRulesPart(QTextStream &t)
{
- t << "first: all" << endl;
- t << "all: " << escapeDependencyPath(fileFixify(Option::output.fileName())) << " " << valGlue(escapeDependencyPaths(project->values("ALL_DEPS"))," "," "," ") << " $(DESTDIR_TARGET)" << endl << endl;
+ t << "first: all\n";
+ t << "all: " << escapeDependencyPath(fileFixify(Option::output.fileName())) << " " << valGlue(escapeDependencyPaths(project->values("ALL_DEPS"))," "," "," ") << " $(DESTDIR_TARGET)\n\n";
t << "$(DESTDIR_TARGET): " << var("PRE_TARGETDEPS") << " $(OBJECTS) " << var("POST_TARGETDEPS");
if(!project->isEmpty("QMAKE_PRE_LINK"))
t << "\n\t" <<var("QMAKE_PRE_LINK");
if(project->isActiveConfig("staticlib") && project->first("TEMPLATE") == "lib") {
if (project->values("OBJECTS").count() < var("QMAKE_LINK_OBJECT_MAX").toInt()) {
- t << "\n\t" << "$(LIB) $(DESTDIR_TARGET) " << objectsLinkLine << " " ;
+ t << "\n\t$(LIB) $(DESTDIR_TARGET) " << objectsLinkLine << " " ;
} else {
t << "\n\t" << objectsLinkLine << " " ;
}
} else if (project->first("TEMPLATE") != "aux") {
- t << "\n\t" << "$(LINKER) $(LFLAGS) " << var("QMAKE_LINK_O_FLAG") << "$(DESTDIR_TARGET) " << objectsLinkLine << " " << " $(LIBS)";
+ t << "\n\t$(LINKER) $(LFLAGS) " << var("QMAKE_LINK_O_FLAG") << "$(DESTDIR_TARGET) " << objectsLinkLine << " $(LIBS)";
}
if(!project->isEmpty("QMAKE_POST_LINK"))
t << "\n\t" <<var("QMAKE_POST_LINK");
@@ -432,7 +432,7 @@ void MingwMakefileGenerator::writeRcFilePart(QTextStream &t)
if (!rc_file.isEmpty()) {
t << escapeDependencyPath(var("RES_FILE")) << ": " << rc_file << "\n\t"
<< var("QMAKE_RC") << " -i " << rc_file << " -o " << var("RES_FILE")
- << incPathStr << " $(DEFINES)" << endl << endl;
+ << incPathStr << " $(DEFINES)\n\n";
}
}
diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp
index 49b601e7e5..b20f3c5ec4 100644
--- a/qmake/generators/win32/msbuild_objectmodel.cpp
+++ b/qmake/generators/win32/msbuild_objectmodel.cpp
@@ -2053,6 +2053,8 @@ QString VCXProjectWriter::platformToolSetVersion(const DotNET version)
{
case NET2012:
return "v110";
+ case NET2013:
+ return "v120";
}
return QString();
}
diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp
index e2c9fdbf37..8af80e572e 100644
--- a/qmake/generators/win32/msvc_nmake.cpp
+++ b/qmake/generators/win32/msvc_nmake.cpp
@@ -62,10 +62,10 @@ NmakeMakefileGenerator::writeMakefile(QTextStream &t)
const ProStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
for (ProStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
t << *it << " ";
- t << "all first clean:" << "\n\t"
+ t << "all first clean:\n\t"
<< "@echo \"Some of the required modules ("
- << var("QMAKE_FAILED_REQUIREMENTS") << ") are not available.\"" << "\n\t"
- << "@echo \"Skipped.\"" << endl << endl;
+ << var("QMAKE_FAILED_REQUIREMENTS") << ") are not available.\"\n\t"
+ << "@echo \"Skipped.\"\n\n";
writeMakeQmake(t);
return true;
}
@@ -193,7 +193,7 @@ void NmakeMakefileGenerator::writeNmakeParts(QTextStream &t)
if(usePCH) {
QString precompRule = QString("-c -Yc -Fp%1 -Fo%2").arg(precompPch).arg(precompObj);
t << precompObj << ": " << precompH << " " << escapeDependencyPaths(findDependencies(precompH)).join(" \\\n\t\t")
- << "\n\t" << "$(CXX) " + precompRule +" $(CXXFLAGS) $(INCPATH) -TP " << precompH << endl << endl;
+ << "\n\t$(CXX) " + precompRule +" $(CXXFLAGS) $(INCPATH) -TP " << precompH << endl << endl;
}
}
@@ -359,10 +359,10 @@ void NmakeMakefileGenerator::writeImplicitRulesPart(QTextStream &t)
objDir = "";
for(QStringList::Iterator cppit = Option::cpp_ext.begin(); cppit != Option::cpp_ext.end(); ++cppit)
t << "{" << it.key() << "}" << (*cppit) << "{" << objDir << "}" << Option::obj_ext << "::\n\t"
- << var("QMAKE_RUN_CXX_IMP_BATCH").replace(QRegExp("\\$@"), var("OBJECTS_DIR")) << endl << "\t$<" << endl << "<<" << endl << endl;
+ << var("QMAKE_RUN_CXX_IMP_BATCH").replace(QRegExp("\\$@"), var("OBJECTS_DIR")) << endl << "\t$<\n<<\n\n";
for(QStringList::Iterator cit = Option::c_ext.begin(); cit != Option::c_ext.end(); ++cit)
t << "{" << it.key() << "}" << (*cit) << "{" << objDir << "}" << Option::obj_ext << "::\n\t"
- << var("QMAKE_RUN_CC_IMP_BATCH").replace(QRegExp("\\$@"), var("OBJECTS_DIR")) << endl << "\t$<" << endl << "<<" << endl << endl;
+ << var("QMAKE_RUN_CC_IMP_BATCH").replace(QRegExp("\\$@"), var("OBJECTS_DIR")) << endl << "\t$<\n<<\n\n";
}
} else {
for(QStringList::Iterator cppit = Option::cpp_ext.begin(); cppit != Option::cpp_ext.end(); ++cppit)
@@ -377,14 +377,14 @@ void NmakeMakefileGenerator::writeBuildRulesPart(QTextStream &t)
{
const ProString templateName = project->first("TEMPLATE");
- t << "first: all" << endl;
- t << "all: " << fileFixify(Option::output.fileName()) << " " << varGlue("ALL_DEPS"," "," "," ") << "$(DESTDIR_TARGET)" << endl << endl;
+ t << "first: all\n";
+ t << "all: " << fileFixify(Option::output.fileName()) << " " << varGlue("ALL_DEPS"," "," "," ") << "$(DESTDIR_TARGET)\n\n";
t << "$(DESTDIR_TARGET): " << var("PRE_TARGETDEPS") << " $(OBJECTS) " << var("POST_TARGETDEPS");
if(!project->isEmpty("QMAKE_PRE_LINK"))
t << "\n\t" <<var("QMAKE_PRE_LINK");
if(project->isActiveConfig("staticlib")) {
- t << "\n\t" << "$(LIBAPP) $(LIBFLAGS) " << var("QMAKE_LINK_O_FLAG") << "$(DESTDIR_TARGET) @<<" << "\n\t "
+ t << "\n\t$(LIBAPP) $(LIBFLAGS) " << var("QMAKE_LINK_O_FLAG") << "$(DESTDIR_TARGET) @<<\n\t "
<< "$(OBJECTS)"
<< "\n<<";
} else if (templateName != "aux") {
@@ -433,7 +433,7 @@ void NmakeMakefileGenerator::writeBuildRulesPart(QTextStream &t)
writeLinkCommand(t, extraLFlags, manifest_res);
t << "\n\tif exist " << manifest_bak << " del " << manifest_bak;
} else {
- t << "\n\t" << "rc.exe /fo" << manifest_res << " " << manifest_rc;
+ t << "\n\trc.exe /fo" << manifest_res << " " << manifest_rc;
t << "\n\t";
writeLinkCommand(t, extraLFlags, manifest_res);
}
@@ -441,7 +441,7 @@ void NmakeMakefileGenerator::writeBuildRulesPart(QTextStream &t)
// directly embed the manifest in the executable after linking
t << "\n\t";
writeLinkCommand(t, extraLFlags);
- t << "\n\t" << "mt.exe /nologo /manifest " << manifest
+ t << "\n\tmt.exe /nologo /manifest " << manifest
<< " /outputresource:$(DESTDIR_TARGET);" << resourceId;
}
} else {
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index 4dbba6d974..8c25ab6f9b 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -235,6 +235,7 @@ const char _WarningLevel[] = "WarningLevel";
const char _WholeProgramOptimization[] = "WholeProgramOptimization";
const char _CompileForArchitecture[] = "CompileForArchitecture";
const char _InterworkCalls[] = "InterworkCalls";
+const char _GenerateManifest[] = "GenerateManifest";
// XmlOutput stream functions ------------------------------
inline XmlOutput::xml_output attrT(const char *name, const triState v)
@@ -2649,6 +2650,7 @@ void VCProjectWriter::write(XmlOutput &xml, const VCLinkerTool &tool)
<< attrS(_TypeLibraryFile, tool.TypeLibraryFile)
<< attrL(_TypeLibraryResourceID, tool.TypeLibraryResourceID, /*ifNot*/ rcUseDefault)
<< attrS(_Version, tool.Version)
+ << attrT(_GenerateManifest, tool.GenerateManifest)
<< closetag(_Tool);
}
diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h
index e60fb1dfca..034825ed44 100644
--- a/qmake/generators/win32/msvc_objectmodel.h
+++ b/qmake/generators/win32/msvc_objectmodel.h
@@ -63,7 +63,8 @@ enum DotNET {
NET2005 = 0x80,
NET2008 = 0x90,
NET2010 = 0xa0,
- NET2012 = 0xb0
+ NET2012 = 0xb0,
+ NET2013 = 0xc0
};
/*
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index 20ff9073f9..dfcb0ec352 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -77,6 +77,8 @@ struct DotNetCombo {
const char *regKey;
} dotNetCombo[] = {
#ifdef Q_OS_WIN64
+ {NET2013, "MSVC.NET 2013 (12.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\12.0\\Setup\\VC\\ProductDir"},
+ {NET2013, "MSVC.NET 2013 Express Edition (12.0)", "Software\\Wow6432Node\\Microsoft\\VCExpress\\12.0\\Setup\\VC\\ProductDir"},
{NET2012, "MSVC.NET 2012 (11.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\11.0\\Setup\\VC\\ProductDir"},
{NET2012, "MSVC.NET 2012 Express Edition (11.0)", "Software\\Wow6432Node\\Microsoft\\VCExpress\\11.0\\Setup\\VC\\ProductDir"},
{NET2010, "MSVC.NET 2010 (10.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\10.0\\Setup\\VC\\ProductDir"},
@@ -88,6 +90,8 @@ struct DotNetCombo {
{NET2003, "MSVC.NET 2003 (7.1)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\7.1\\Setup\\VC\\ProductDir"},
{NET2002, "MSVC.NET 2002 (7.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\7.0\\Setup\\VC\\ProductDir"},
#else
+ {NET2013, "MSVC.NET 2013 (12.0)", "Software\\Microsoft\\VisualStudio\\12.0\\Setup\\VC\\ProductDir"},
+ {NET2013, "MSVC.NET 2013 Express Edition (12.0)", "Software\\Microsoft\\VCExpress\\12.0\\Setup\\VC\\ProductDir"},
{NET2012, "MSVC.NET 2012 (11.0)", "Software\\Microsoft\\VisualStudio\\11.0\\Setup\\VC\\ProductDir"},
{NET2012, "MSVC.NET 2012 Express Edition (11.0)", "Software\\Microsoft\\VCExpress\\11.0\\Setup\\VC\\ProductDir"},
{NET2010, "MSVC.NET 2010 (10.0)", "Software\\Microsoft\\VisualStudio\\10.0\\Setup\\VC\\ProductDir"},
@@ -183,6 +187,8 @@ const char _slnHeader100[] = "Microsoft Visual Studio Solution File, Format
"\n# Visual Studio 2010";
const char _slnHeader110[] = "Microsoft Visual Studio Solution File, Format Version 12.00"
"\n# Visual Studio 2012";
+const char _slnHeader120[] = "Microsoft Visual Studio Solution File, Format Version 12.00"
+ "\n# Visual Studio 2013";
// The following UUID _may_ change for later servicepacks...
// If so we need to search through the registry at
// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Projects
@@ -592,6 +598,9 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
}
switch(which_dotnet_version()) {
+ case NET2013:
+ t << _slnHeader120;
+ break;
case NET2012:
t << _slnHeader110;
break;
@@ -868,6 +877,9 @@ void VcprojGenerator::initProject()
// Own elements -----------------------------
vcProject.Name = unescapeFilePath(project->first("QMAKE_ORIG_TARGET").toQString());
switch(which_dotnet_version()) {
+ case NET2013:
+ vcProject.Version = "13.00";
+ break;
case NET2012:
vcProject.Version = "12.00";
break;
@@ -1322,7 +1334,8 @@ void VcprojGenerator::initGeneratedFiles()
vcProject.GeneratedFiles.addFiles(project->values("GENERATED_SOURCES"));
vcProject.GeneratedFiles.addFiles(project->values("GENERATED_FILES"));
vcProject.GeneratedFiles.addFiles(project->values("IDLSOURCES"));
- vcProject.GeneratedFiles.addFiles(project->values("RES_FILE"));
+ if (project->values("RC_FILE").isEmpty())
+ vcProject.GeneratedFiles.addFiles(project->values("RES_FILE"));
vcProject.GeneratedFiles.addFiles(project->values("QMAKE_IMAGE_COLLECTION")); // compat
if(!extraCompilerOutputs.isEmpty())
vcProject.GeneratedFiles.addFiles(extraCompilerOutputs.keys());
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index 08674a323c..fe85efc8ba 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -423,56 +423,56 @@ void Win32MakefileGenerator::processRcFileVar()
int rcLang = project->intValue("RC_LANG", 1033); // default: English(USA)
int rcCodePage = project->intValue("RC_CODEPAGE", 1200); // default: Unicode
- ts << "# if defined(UNDER_CE)" << endl;
- ts << "# include <winbase.h>" << endl;
- ts << "# else" << endl;
- ts << "# include <winver.h>" << endl;
- ts << "# endif" << endl;
+ ts << "# if defined(UNDER_CE)\n";
+ ts << "# include <winbase.h>\n";
+ ts << "# else\n";
+ ts << "# include <winver.h>\n";
+ ts << "# endif\n";
ts << endl;
if (!rcIcons.isEmpty()) {
for (int i = 0; i < rcIcons.size(); ++i)
ts << QString("IDI_ICON%1\tICON\tDISCARDABLE\t%2").arg(i + 1).arg(cQuoted(rcIcons[i])) << endl;
ts << endl;
}
- ts << "VS_VERSION_INFO VERSIONINFO" << endl;
+ ts << "VS_VERSION_INFO VERSIONINFO\n";
ts << "\tFILEVERSION " << QString(versionString).replace(".", ",") << endl;
ts << "\tPRODUCTVERSION " << QString(versionString).replace(".", ",") << endl;
- ts << "\tFILEFLAGSMASK 0x3fL" << endl;
- ts << "#ifdef _DEBUG" << endl;
- ts << "\tFILEFLAGS VS_FF_DEBUG" << endl;
- ts << "#else" << endl;
- ts << "\tFILEFLAGS 0x0L" << endl;
- ts << "#endif" << endl;
- ts << "\tFILEOS VOS__WINDOWS32" << endl;
+ ts << "\tFILEFLAGSMASK 0x3fL\n";
+ ts << "#ifdef _DEBUG\n";
+ ts << "\tFILEFLAGS VS_FF_DEBUG\n";
+ ts << "#else\n";
+ ts << "\tFILEFLAGS 0x0L\n";
+ ts << "#endif\n";
+ ts << "\tFILEOS VOS__WINDOWS32\n";
if (project->isActiveConfig("shared"))
- ts << "\tFILETYPE VFT_DLL" << endl;
+ ts << "\tFILETYPE VFT_DLL\n";
else
- ts << "\tFILETYPE VFT_APP" << endl;
- ts << "\tFILESUBTYPE 0x0L" << endl;
- ts << "\tBEGIN" << endl;
- ts << "\t\tBLOCK \"StringFileInfo\"" << endl;
- ts << "\t\tBEGIN" << endl;
+ ts << "\tFILETYPE VFT_APP\n";
+ ts << "\tFILESUBTYPE 0x0L\n";
+ ts << "\tBEGIN\n";
+ ts << "\t\tBLOCK \"StringFileInfo\"\n";
+ ts << "\t\tBEGIN\n";
ts << "\t\t\tBLOCK \""
<< QString("%1%2").arg(rcLang, 4, 16, QLatin1Char('0')).arg(rcCodePage, 4, 16, QLatin1Char('0'))
- << "\"" << endl;
- ts << "\t\t\tBEGIN" << endl;
- ts << "\t\t\t\tVALUE \"CompanyName\", \"" << companyName << "\\0\"" << endl;
- ts << "\t\t\t\tVALUE \"FileDescription\", \"" << description << "\\0\"" << endl;
- ts << "\t\t\t\tVALUE \"FileVersion\", \"" << versionString << "\\0\"" << endl;
- ts << "\t\t\t\tVALUE \"LegalCopyright\", \"" << copyright << "\\0\"" << endl;
- ts << "\t\t\t\tVALUE \"OriginalFilename\", \"" << originalName << "\\0\"" << endl;
- ts << "\t\t\t\tVALUE \"ProductName\", \"" << productName << "\\0\"" << endl;
- ts << "\t\t\t\tVALUE \"ProductVersion\", \"" << versionString << "\\0\"" << endl;
- ts << "\t\t\tEND" << endl;
- ts << "\t\tEND" << endl;
- ts << "\t\tBLOCK \"VarFileInfo\"" << endl;
- ts << "\t\tBEGIN" << endl;
+ << "\"\n";
+ ts << "\t\t\tBEGIN\n";
+ ts << "\t\t\t\tVALUE \"CompanyName\", \"" << companyName << "\\0\"\n";
+ ts << "\t\t\t\tVALUE \"FileDescription\", \"" << description << "\\0\"\n";
+ ts << "\t\t\t\tVALUE \"FileVersion\", \"" << versionString << "\\0\"\n";
+ ts << "\t\t\t\tVALUE \"LegalCopyright\", \"" << copyright << "\\0\"\n";
+ ts << "\t\t\t\tVALUE \"OriginalFilename\", \"" << originalName << "\\0\"\n";
+ ts << "\t\t\t\tVALUE \"ProductName\", \"" << productName << "\\0\"\n";
+ ts << "\t\t\t\tVALUE \"ProductVersion\", \"" << versionString << "\\0\"\n";
+ ts << "\t\t\tEND\n";
+ ts << "\t\tEND\n";
+ ts << "\t\tBLOCK \"VarFileInfo\"\n";
+ ts << "\t\tBEGIN\n";
ts << "\t\t\tVALUE \"Translation\", "
<< QString("0x%1").arg(rcLang, 4, 16, QLatin1Char('0'))
<< ", " << QString("%1").arg(rcCodePage, 4) << endl;
- ts << "\t\tEND" << endl;
- ts << "\tEND" << endl;
- ts << "/* End of Version info */" << endl;
+ ts << "\t\tEND\n";
+ ts << "\tEND\n";
+ ts << "/* End of Version info */\n";
ts << endl;
ts.flush();
@@ -598,7 +598,7 @@ void Win32MakefileGenerator::writeCleanParts(QTextStream &t)
}
}
}
- t << "\n\t-$(DEL_FILE) $(DESTDIR_TARGET)" << endl;
+ t << "\n\t-$(DEL_FILE) $(DESTDIR_TARGET)\n";
{
QString ofile = Option::fixPathToTargetOS(fileFixify(Option::output.fileName()));
if(!ofile.isEmpty())
@@ -617,7 +617,7 @@ void Win32MakefileGenerator::writeIncPart(QTextStream &t)
inc.replace(QRegExp("\\\\$"), "");
inc.replace(QRegExp("\""), "");
if(!inc.isEmpty())
- t << "-I" << "\"" << inc << "\" ";
+ t << "-I\"" << inc << "\" ";
}
t << "-I\"" << specdir() << "\""
<< endl;
@@ -625,14 +625,14 @@ void Win32MakefileGenerator::writeIncPart(QTextStream &t)
void Win32MakefileGenerator::writeStandardParts(QTextStream &t)
{
- t << "####### Compiler, tools and options" << endl << endl;
+ t << "####### Compiler, tools and options\n\n";
t << "CC = " << var("QMAKE_CC") << endl;
t << "CXX = " << var("QMAKE_CXX") << endl;
t << "DEFINES = "
<< varGlue("PRL_EXPORT_DEFINES","-D"," -D"," ")
<< varGlue("DEFINES","-D"," -D","") << endl;
- t << "CFLAGS = " << var("QMAKE_CFLAGS") << " $(DEFINES)" << endl;
- t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " $(DEFINES)" << endl;
+ t << "CFLAGS = " << var("QMAKE_CFLAGS") << " $(DEFINES)\n";
+ t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " $(DEFINES)\n";
writeIncPart(t);
writeLibsPart(t);
@@ -659,14 +659,14 @@ void Win32MakefileGenerator::writeStandardParts(QTextStream &t)
t << "INSTALL_DIR = " << var("QMAKE_INSTALL_DIR") << endl;
t << endl;
- t << "####### Output directory" << endl << endl;
+ t << "####### Output directory\n\n";
if(!project->values("OBJECTS_DIR").isEmpty())
t << "OBJECTS_DIR = " << var("OBJECTS_DIR").replace(QRegExp("\\\\$"),"") << endl;
else
- t << "OBJECTS_DIR = . " << endl;
+ t << "OBJECTS_DIR = . \n";
t << endl;
- t << "####### Files" << endl << endl;
+ t << "####### Files\n\n";
t << "SOURCES = " << valList(escapeFilePaths(project->values("SOURCES")))
<< " " << valList(escapeFilePaths(project->values("GENERATED_SOURCES"))) << endl;
@@ -688,21 +688,21 @@ void Win32MakefileGenerator::writeStandardParts(QTextStream &t)
t << "QMAKE_TARGET = " << var("QMAKE_ORIG_TARGET") << endl;
// The comment is important to maintain variable compatibility with Unix
// Makefiles, while not interpreting a trailing-slash as a linebreak
- t << "DESTDIR = " << escapeFilePath(destDir) << " #avoid trailing-slash linebreak" << endl;
+ t << "DESTDIR = " << escapeFilePath(destDir) << " #avoid trailing-slash linebreak\n";
t << "TARGET = " << escapeFilePath(target) << endl;
t << "DESTDIR_TARGET = " << escapeFilePath(var("DEST_TARGET")) << endl;
t << endl;
- t << "####### Implicit rules" << endl << endl;
+ t << "####### Implicit rules\n\n";
writeImplicitRulesPart(t);
- t << "####### Build rules" << endl << endl;
+ t << "####### Build rules\n\n";
writeBuildRulesPart(t);
if(project->isActiveConfig("shared") && !project->values("DLLDESTDIR").isEmpty()) {
const ProStringList &dlldirs = project->values("DLLDESTDIR");
for (ProStringList::ConstIterator dlldir = dlldirs.begin(); dlldir != dlldirs.end(); ++dlldir) {
- t << "\t" << "-$(COPY_FILE) \"$(DESTDIR_TARGET)\" "
+ t << "\t-$(COPY_FILE) \"$(DESTDIR_TARGET)\" "
<< Option::fixPathToTargetOS((*dlldir).toQString(), false) << endl;
}
}
@@ -725,8 +725,8 @@ void Win32MakefileGenerator::writeStandardParts(QTextStream &t)
dist_files << ui_h;
}
}
- t << "dist:" << "\n\t"
- << "$(ZIP) " << var("QMAKE_ORIG_TARGET") << ".zip " << "$(SOURCES) $(DIST) "
+ t << "dist:\n\t"
+ << "$(ZIP) " << var("QMAKE_ORIG_TARGET") << ".zip $(SOURCES) $(DIST) "
<< dist_files.join(' ') << " " << var("TRANSLATIONS") << " ";
if(!project->isEmpty("QMAKE_EXTRA_COMPILERS")) {
const ProStringList &quc = project->values("QMAKE_EXTRA_COMPILERS");
diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp
index c8a97dd893..3efebda8c2 100644
--- a/qmake/library/qmakeevaluator.cpp
+++ b/qmake/library/qmakeevaluator.cpp
@@ -276,6 +276,8 @@ ProStringList QMakeEvaluator::split_value_list(const QString &vals, const ProFil
ushort unicode = vals_data[x].unicode();
if (unicode == quote) {
quote = 0;
+ hadWord = true;
+ build += QChar(unicode);
continue;
}
switch (unicode) {
@@ -283,7 +285,7 @@ ProStringList QMakeEvaluator::split_value_list(const QString &vals, const ProFil
case '\'':
quote = unicode;
hadWord = true;
- continue;
+ break;
case ' ':
case '\t':
if (!quote) {
@@ -294,22 +296,23 @@ ProStringList QMakeEvaluator::split_value_list(const QString &vals, const ProFil
}
continue;
}
- build += QChar(unicode);
break;
case '\\':
if (x + 1 != vals_len) {
ushort next = vals_data[++x].unicode();
- if (next == '\'' || next == '"' || next == '\\')
+ if (next == '\'' || next == '"' || next == '\\') {
+ build += QChar(unicode);
unicode = next;
- else
+ } else {
--x;
+ }
}
// fallthrough
default:
hadWord = true;
- build += QChar(unicode);
break;
}
+ build += QChar(unicode);
}
if (hadWord)
ret << ProString(build).setSource(source);
diff --git a/qmake/library/qmakeglobals.cpp b/qmake/library/qmakeglobals.cpp
index e47a4efe0b..bf37d51c40 100644
--- a/qmake/library/qmakeglobals.cpp
+++ b/qmake/library/qmakeglobals.cpp
@@ -249,7 +249,8 @@ void QMakeGlobals::setDirectories(const QString &input_dir, const QString &outpu
int srcLen = srcpath.length();
int dstLen = dstpath.length();
int lastSl = -1;
- while (++lastSl, srcpath.at(--srcLen) == dstpath.at(--dstLen))
+ while (++lastSl, --srcLen, --dstLen,
+ srcLen && dstLen && srcpath.at(srcLen) == dstpath.at(dstLen))
if (srcpath.at(srcLen) == QLatin1Char('/'))
lastSl = 0;
source_root = srcpath.left(srcLen + lastSl);
diff --git a/src/corelib/Qt5CTestMacros.cmake b/src/corelib/Qt5CTestMacros.cmake
index 126a348b47..71097aadbf 100644
--- a/src/corelib/Qt5CTestMacros.cmake
+++ b/src/corelib/Qt5CTestMacros.cmake
@@ -8,6 +8,14 @@
#
# We mean it.
+message("CMAKE_VERSION: ${CMAKE_VERSION}")
+message("CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")
+message("CMAKE_MODULES_UNDER_TEST: ${CMAKE_MODULES_UNDER_TEST}")
+foreach(_mod ${CMAKE_MODULES_UNDER_TEST})
+ message("CMAKE_${_mod}_MODULE_MAJOR_VERSION: ${CMAKE_${_mod}_MODULE_MAJOR_VERSION}")
+ message("CMAKE_${_mod}_MODULE_MINOR_VERSION: ${CMAKE_${_mod}_MODULE_MINOR_VERSION}")
+ message("CMAKE_${_mod}_MODULE_PATCH_VERSION: ${CMAKE_${_mod}_MODULE_PATCH_VERSION}")
+endforeach()
set(BUILD_OPTIONS_LIST)
diff --git a/src/corelib/doc/snippets/code/src_corelib_io_qsettings.cpp b/src/corelib/doc/snippets/code/src_corelib_io_qsettings.cpp
index ca3f8eb8d3..bdbd4a4be3 100644
--- a/src/corelib/doc/snippets/code/src_corelib_io_qsettings.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_io_qsettings.cpp
@@ -186,7 +186,7 @@ settings.endArray();
//! [17]
QSettings settings;
-settings.setValue("fridge/color", Qt::white);
+settings.setValue("fridge/color", QColor(Qt::white));
settings.setValue("fridge/size", QSize(32, 96));
settings.setValue("sofa", true);
settings.setValue("tv", false);
@@ -205,7 +205,7 @@ keys = settings.allKeys();
//! [19]
QSettings settings;
-settings.setValue("fridge/color", Qt::white);
+settings.setValue("fridge/color", QColor(Qt::white));
settings.setValue("fridge/size", QSize(32, 96));
settings.setValue("sofa", true);
settings.setValue("tv", false);
@@ -224,7 +224,7 @@ keys = settings.childKeys();
//! [21]
QSettings settings;
-settings.setValue("fridge/color", Qt::white);
+settings.setValue("fridge/color", QColor(Qt::white));
settings.setValue("fridge/size", QSize(32, 96));
settings.setValue("sofa", true);
settings.setValue("tv", false);
diff --git a/src/corelib/doc/snippets/code/src_corelib_kernel_qobject.cpp b/src/corelib/doc/snippets/code/src_corelib_kernel_qobject.cpp
index 68df53e0da..6a2305cc85 100644
--- a/src/corelib/doc/snippets/code/src_corelib_kernel_qobject.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_kernel_qobject.cpp
@@ -367,23 +367,6 @@ public:
};
//! [35]
-
-//! [36]
-Q_PROPERTY(type name
- READ getFunction
- [WRITE setFunction]
- [RESET resetFunction]
- [NOTIFY notifySignal]
- [REVISION int]
- [DESIGNABLE bool]
- [SCRIPTABLE bool]
- [STORED bool]
- [USER bool]
- [CONSTANT]
- [FINAL])
-//! [36]
-
-
//! [37]
Q_PROPERTY(QString title READ title WRITE setTitle USER true)
//! [37]
diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h
index fb96ad2732..27fc2d4038 100644
--- a/src/corelib/global/qcompilerdetection.h
+++ b/src/corelib/global/qcompilerdetection.h
@@ -467,7 +467,7 @@
# if __INTEL_COMPILER < 1200
# define Q_NO_TEMPLATE_FRIENDS
# endif
-# if defined(_CHAR16T) || __cplusplus >= 201103L
+# if __cplusplus >= 201103L
# define Q_COMPILER_VARIADIC_MACROS
# if __INTEL_COMPILER >= 1200
# define Q_COMPILER_AUTO_TYPE
diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp
index 067154033c..ac347655bc 100644
--- a/src/corelib/global/qglobal.cpp
+++ b/src/corelib/global/qglobal.cpp
@@ -2068,11 +2068,11 @@ namespace {
// version in portable code. However, it's impossible to do that if
// _GNU_SOURCE is defined so we use C++ overloading to decide what to do
// depending on the return type
- static inline QString fromstrerror_helper(int, const QByteArray &buf)
+ static inline Q_DECL_UNUSED QString fromstrerror_helper(int, const QByteArray &buf)
{
return QString::fromLocal8Bit(buf);
}
- static inline QString fromstrerror_helper(const char *str, const QByteArray &)
+ static inline Q_DECL_UNUSED QString fromstrerror_helper(const char *str, const QByteArray &)
{
return QString::fromLocal8Bit(str);
}
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
index e7554e14f7..18f293bba5 100644
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
@@ -494,6 +494,8 @@ QT_END_NAMESPACE
# include <stdio.h>
# include <stdlib.h>
+#include "private/qcoreapplication_p.h"
+
extern const char qt_core_interpreter[] __attribute__((section(".interp")))
= ELF_INTERPRETER;
@@ -516,8 +518,8 @@ void qt_core_boilerplate()
QT_PREPEND_NAMESPACE(qDumpCPUFeatures)();
#ifdef QT_EVAL
- extern void qt_core_eval_init(uint);
- qt_core_eval_init(1);
+ extern void qt_core_eval_init(QCoreApplicationPrivate::Type);
+ qt_core_eval_init(QCoreApplicationPrivate::Tty);
#endif
exit(0);
diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp
index 2c9ed9da3d..e8904b0ab7 100644
--- a/src/corelib/io/qfilesystemengine_win.cpp
+++ b/src/corelib/io/qfilesystemengine_win.cpp
@@ -1049,7 +1049,8 @@ bool QFileSystemEngine::createDirectory(const QFileSystemEntry &entry, bool crea
if (slash) {
QString chunk = dirName.left(slash);
if (!mkDir(chunk)) {
- if (GetLastError() == ERROR_ALREADY_EXISTS) {
+ const DWORD lastError = GetLastError();
+ if (lastError == ERROR_ALREADY_EXISTS || lastError == ERROR_ACCESS_DENIED) {
bool existed = false;
if (isDirPath(chunk, &existed) && existed)
continue;
diff --git a/src/corelib/io/qfilesystemwatcher_win.cpp b/src/corelib/io/qfilesystemwatcher_win.cpp
index 6ac6a3fbd9..bb16df04ad 100644
--- a/src/corelib/io/qfilesystemwatcher_win.cpp
+++ b/src/corelib/io/qfilesystemwatcher_win.cpp
@@ -95,7 +95,7 @@ QStringList QWindowsFileSystemWatcherEngine::addPaths(const QStringList &paths,
)
#endif
normalPath.chop(1);
- QFileInfo fileInfo(normalPath.toLower());
+ QFileInfo fileInfo(normalPath);
if (!fileInfo.exists())
continue;
@@ -136,15 +136,16 @@ QStringList QWindowsFileSystemWatcherEngine::addPaths(const QStringList &paths,
thread = *jt;
QMutexLocker locker(&(thread->mutex));
- handle = thread->handleForDir.value(absolutePath);
+ handle = thread->handleForDir.value(QFileSystemWatcherPathKey(absolutePath));
if (handle.handle != INVALID_HANDLE_VALUE && handle.flags == flags) {
// found a thread now insert...
DEBUG() << "Found a thread" << thread;
- QHash<QString, QWindowsFileSystemWatcherEngine::PathInfo> &h
- = thread->pathInfoForHandle[handle.handle];
- if (!h.contains(fileInfo.absoluteFilePath())) {
- thread->pathInfoForHandle[handle.handle].insert(fileInfo.absoluteFilePath(), pathInfo);
+ QWindowsFileSystemWatcherEngineThread::PathInfoHash &h =
+ thread->pathInfoForHandle[handle.handle];
+ const QFileSystemWatcherPathKey key(fileInfo.absoluteFilePath());
+ if (!h.contains(key)) {
+ thread->pathInfoForHandle[handle.handle].insert(key, pathInfo);
if (isDir)
directories->append(path);
else
@@ -177,9 +178,9 @@ QStringList QWindowsFileSystemWatcherEngine::addPaths(const QStringList &paths,
DEBUG() << "Added handle" << handle.handle << "for" << absolutePath << "to watch" << fileInfo.absoluteFilePath()
<< "to existing thread " << thread;
thread->handles.append(handle.handle);
- thread->handleForDir.insert(absolutePath, handle);
+ thread->handleForDir.insert(QFileSystemWatcherPathKey(absolutePath), handle);
- thread->pathInfoForHandle[handle.handle].insert(fileInfo.absoluteFilePath(), pathInfo);
+ thread->pathInfoForHandle[handle.handle].insert(QFileSystemWatcherPathKey(fileInfo.absoluteFilePath()), pathInfo);
if (isDir)
directories->append(path);
else
@@ -195,9 +196,9 @@ QStringList QWindowsFileSystemWatcherEngine::addPaths(const QStringList &paths,
QWindowsFileSystemWatcherEngineThread *thread = new QWindowsFileSystemWatcherEngineThread();
DEBUG() << " ###Creating new thread" << thread << "(" << (threads.count()+1) << "threads)";
thread->handles.append(handle.handle);
- thread->handleForDir.insert(absolutePath, handle);
+ thread->handleForDir.insert(QFileSystemWatcherPathKey(absolutePath), handle);
- thread->pathInfoForHandle[handle.handle].insert(fileInfo.absoluteFilePath(), pathInfo);
+ thread->pathInfoForHandle[handle.handle].insert(QFileSystemWatcherPathKey(fileInfo.absoluteFilePath()), pathInfo);
if (isDir)
directories->append(path);
else
@@ -230,7 +231,7 @@ QStringList QWindowsFileSystemWatcherEngine::removePaths(const QStringList &path
QString normalPath = path;
if (normalPath.endsWith(QLatin1Char('/')) || normalPath.endsWith(QLatin1Char('\\')))
normalPath.chop(1);
- QFileInfo fileInfo(normalPath.toLower());
+ QFileInfo fileInfo(normalPath);
DEBUG() << "removing" << normalPath;
QString absolutePath = fileInfo.absoluteFilePath();
QList<QWindowsFileSystemWatcherEngineThread *>::iterator jt, end;
@@ -242,16 +243,16 @@ QStringList QWindowsFileSystemWatcherEngine::removePaths(const QStringList &path
QMutexLocker locker(&(thread->mutex));
- QWindowsFileSystemWatcherEngine::Handle handle = thread->handleForDir.value(absolutePath);
+ QWindowsFileSystemWatcherEngine::Handle handle = thread->handleForDir.value(QFileSystemWatcherPathKey(absolutePath));
if (handle.handle == INVALID_HANDLE_VALUE) {
// perhaps path is a file?
absolutePath = fileInfo.absolutePath();
- handle = thread->handleForDir.value(absolutePath);
+ handle = thread->handleForDir.value(QFileSystemWatcherPathKey(absolutePath));
}
if (handle.handle != INVALID_HANDLE_VALUE) {
- QHash<QString, QWindowsFileSystemWatcherEngine::PathInfo> &h =
+ QWindowsFileSystemWatcherEngineThread::PathInfoHash &h =
thread->pathInfoForHandle[handle.handle];
- if (h.remove(fileInfo.absoluteFilePath())) {
+ if (h.remove(QFileSystemWatcherPathKey(fileInfo.absoluteFilePath()))) {
// ###
files->removeAll(path);
directories->removeAll(path);
@@ -264,7 +265,7 @@ QStringList QWindowsFileSystemWatcherEngine::removePaths(const QStringList &path
Q_ASSERT(indexOfHandle != -1);
thread->handles.remove(indexOfHandle);
- thread->handleForDir.remove(absolutePath);
+ thread->handleForDir.remove(QFileSystemWatcherPathKey(absolutePath));
// h is now invalid
it.remove();
@@ -326,7 +327,7 @@ QWindowsFileSystemWatcherEngineThread::~QWindowsFileSystemWatcherEngineThread()
}
}
-static inline QString msgFindNextFailed(const QHash<QString, QWindowsFileSystemWatcherEngine::PathInfo> &pathInfos)
+static inline QString msgFindNextFailed(const QWindowsFileSystemWatcherEngineThread::PathInfoHash &pathInfos)
{
QString result;
QTextStream str(&result);
@@ -366,7 +367,7 @@ void QWindowsFileSystemWatcherEngineThread::run()
// for some reason, so we must check if the handle exist in the handles vector
if (handles.contains(handle)) {
DEBUG() << "thread" << this << "Acknowledged handle:" << at << handle;
- QHash<QString, QWindowsFileSystemWatcherEngine::PathInfo> &h = pathInfoForHandle[handle];
+ QWindowsFileSystemWatcherEngineThread::PathInfoHash &h = pathInfoForHandle[handle];
bool fakeRemove = false;
if (!FindNextChangeNotification(handle)) {
@@ -381,9 +382,9 @@ void QWindowsFileSystemWatcherEngineThread::run()
qErrnoWarning(error, "%s", qPrintable(msgFindNextFailed(h)));
}
- QMutableHashIterator<QString, QWindowsFileSystemWatcherEngine::PathInfo> it(h);
+ QMutableHashIterator<QFileSystemWatcherPathKey, QWindowsFileSystemWatcherEngine::PathInfo> it(h);
while (it.hasNext()) {
- QHash<QString, QWindowsFileSystemWatcherEngine::PathInfo>::iterator x = it.next();
+ QWindowsFileSystemWatcherEngineThread::PathInfoHash::iterator x = it.next();
QString absolutePath = x.value().absolutePath;
QFileInfo fileInfo(x.value().path);
DEBUG() << "checking" << x.key();
@@ -407,7 +408,7 @@ void QWindowsFileSystemWatcherEngineThread::run()
Q_ASSERT(indexOfHandle != -1);
handles.remove(indexOfHandle);
- handleForDir.remove(absolutePath);
+ handleForDir.remove(QFileSystemWatcherPathKey(absolutePath));
// h is now invalid
}
} else if (x.value().isDir) {
diff --git a/src/corelib/io/qfilesystemwatcher_win_p.h b/src/corelib/io/qfilesystemwatcher_win_p.h
index 8937910d10..790fb954d9 100644
--- a/src/corelib/io/qfilesystemwatcher_win_p.h
+++ b/src/corelib/io/qfilesystemwatcher_win_p.h
@@ -128,11 +128,27 @@ private:
};
+class QFileSystemWatcherPathKey : public QString
+{
+public:
+ QFileSystemWatcherPathKey() {}
+ explicit QFileSystemWatcherPathKey(const QString &other) : QString(other) {}
+ QFileSystemWatcherPathKey(const QFileSystemWatcherPathKey &other) : QString(other) {}
+ bool operator==(const QFileSystemWatcherPathKey &other) const { return !compare(other, Qt::CaseInsensitive); }
+};
+
+Q_DECLARE_TYPEINFO(QFileSystemWatcherPathKey, Q_MOVABLE_TYPE);
+
+inline uint qHash(const QFileSystemWatcherPathKey &key) { return qHash(key.toCaseFolded()); }
+
class QWindowsFileSystemWatcherEngineThread : public QThread
{
Q_OBJECT
public:
+ typedef QHash<QFileSystemWatcherPathKey, QWindowsFileSystemWatcherEngine::Handle> HandleForDirHash;
+ typedef QHash<QFileSystemWatcherPathKey, QWindowsFileSystemWatcherEngine::PathInfo> PathInfoHash;
+
QWindowsFileSystemWatcherEngineThread();
~QWindowsFileSystemWatcherEngineThread();
void run();
@@ -143,9 +159,9 @@ public:
QVector<Qt::HANDLE> handles;
int msg;
- QHash<QString, QWindowsFileSystemWatcherEngine::Handle> handleForDir;
+ HandleForDirHash handleForDir;
- QHash<Qt::HANDLE, QHash<QString, QWindowsFileSystemWatcherEngine::PathInfo> > pathInfoForHandle;
+ QHash<Qt::HANDLE, PathInfoHash> pathInfoForHandle;
Q_SIGNALS:
void fileChanged(const QString &path, bool removed);
diff --git a/src/corelib/io/qprocess_win.cpp b/src/corelib/io/qprocess_win.cpp
index 7776852277..bcc3fe0b0d 100644
--- a/src/corelib/io/qprocess_win.cpp
+++ b/src/corelib/io/qprocess_win.cpp
@@ -641,7 +641,7 @@ bool QProcessPrivate::drainOutputPipes()
readyReadEmitted |= stderrReader->waitForReadyRead(0);
readOperationActive |= stderrReader->isReadOperationActive();
}
- if (!readOperationActive)
+ if (!readOperationActive || !readyReadEmitted)
break;
Sleep(100);
}
diff --git a/src/corelib/io/qurl.h b/src/corelib/io/qurl.h
index 98cf760dec..453e0be1d2 100644
--- a/src/corelib/io/qurl.h
+++ b/src/corelib/io/qurl.h
@@ -114,6 +114,10 @@ public:
template<typename E1, typename E2>
class QTypeInfo<QUrlTwoFlags<E1, E2> > : public QTypeInfoMerger<QUrlTwoFlags<E1, E2>, E1, E2> {};
+class QUrl;
+// qHash is a friend, but we can't use default arguments for friends (§8.3.6.4)
+Q_CORE_EXPORT uint qHash(const QUrl &url, uint seed = 0) Q_DECL_NOTHROW;
+
class Q_CORE_EXPORT QUrl
{
public:
@@ -326,7 +330,7 @@ public:
static QList<QUrl> fromStringList(const QStringList &uris, ParsingMode mode = TolerantMode);
static void setIdnWhitelist(const QStringList &);
- friend Q_CORE_EXPORT uint qHash(const QUrl &url, uint seed = 0) Q_DECL_NOTHROW;
+ friend Q_CORE_EXPORT uint qHash(const QUrl &url, uint seed) Q_DECL_NOTHROW;
private:
QUrlPrivate *d;
diff --git a/src/corelib/io/qwinoverlappedionotifier.cpp b/src/corelib/io/qwinoverlappedionotifier.cpp
index 8f4b8be9a3..914264e69e 100644
--- a/src/corelib/io/qwinoverlappedionotifier.cpp
+++ b/src/corelib/io/qwinoverlappedionotifier.cpp
@@ -83,7 +83,9 @@ class QWinIoCompletionPort : protected QThread
{
public:
QWinIoCompletionPort()
- : hPort(INVALID_HANDLE_VALUE)
+ : finishThreadKey(reinterpret_cast<ULONG_PTR>(this)),
+ drainQueueKey(reinterpret_cast<ULONG_PTR>(this + 1)),
+ hPort(INVALID_HANDLE_VALUE)
{
setObjectName(QLatin1String("I/O completion port thread"));
HANDLE hIOCP = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0);
@@ -92,13 +94,19 @@ public:
return;
}
hPort = hIOCP;
+ hQueueDrainedEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
+ if (!hQueueDrainedEvent) {
+ qErrnoWarning("CreateEvent failed.");
+ return;
+ }
}
~QWinIoCompletionPort()
{
- PostQueuedCompletionStatus(hPort, 0, 0, NULL);
+ PostQueuedCompletionStatus(hPort, 0, finishThreadKey, NULL);
QThread::wait();
CloseHandle(hPort);
+ CloseHandle(hQueueDrainedEvent);
}
void registerNotifier(QWinOverlappedIoNotifier *notifier)
@@ -122,29 +130,50 @@ public:
mutex.unlock();
}
+ void drainQueue()
+ {
+ QMutexLocker locker(&drainQueueMutex);
+ ResetEvent(hQueueDrainedEvent);
+ PostQueuedCompletionStatus(hPort, 0, drainQueueKey, NULL);
+ WaitForSingleObject(hQueueDrainedEvent, INFINITE);
+ }
+
+ using QThread::isRunning;
+
protected:
void run()
{
DWORD dwBytesRead;
ULONG_PTR pulCompletionKey;
OVERLAPPED *overlapped;
+ DWORD msecs = INFINITE;
forever {
BOOL success = GetQueuedCompletionStatus(hPort,
&dwBytesRead,
&pulCompletionKey,
&overlapped,
- INFINITE);
+ msecs);
DWORD errorCode = success ? ERROR_SUCCESS : GetLastError();
if (!success && !overlapped) {
+ if (!msecs) {
+ // Time out in drain mode. The completion status queue is empty.
+ msecs = INFINITE;
+ SetEvent(hQueueDrainedEvent);
+ continue;
+ }
qErrnoWarning(errorCode, "GetQueuedCompletionStatus failed.");
return;
}
- if (success && !(dwBytesRead || pulCompletionKey || overlapped)) {
- // We've posted null values via PostQueuedCompletionStatus to end this thread.
+ if (pulCompletionKey == finishThreadKey)
return;
+ if (pulCompletionKey == drainQueueKey) {
+ // Enter drain mode.
+ Q_ASSERT(msecs == INFINITE);
+ msecs = 0;
+ continue;
}
QWinOverlappedIoNotifier *notifier = reinterpret_cast<QWinOverlappedIoNotifier *>(pulCompletionKey);
@@ -156,9 +185,13 @@ protected:
}
private:
+ const ULONG_PTR finishThreadKey;
+ const ULONG_PTR drainQueueKey;
HANDLE hPort;
QSet<QWinOverlappedIoNotifier *> notifiers;
QMutex mutex;
+ QMutex drainQueueMutex;
+ HANDLE hQueueDrainedEvent;
};
QWinIoCompletionPort *QWinOverlappedIoNotifier::iocp = 0;
@@ -216,7 +249,14 @@ void QWinOverlappedIoNotifier::setEnabled(bool enabled)
*/
bool QWinOverlappedIoNotifier::waitForNotified(int msecs, OVERLAPPED *overlapped)
{
+ if (!iocp->isRunning()) {
+ qWarning("Called QWinOverlappedIoNotifier::waitForNotified on inactive notifier.");
+ return false;
+ }
+
forever {
+ if (msecs == 0)
+ iocp->drainQueue();
DWORD result = WaitForSingleObject(hSemaphore, msecs == -1 ? INFINITE : DWORD(msecs));
if (result == WAIT_OBJECT_0) {
ReleaseSemaphore(hSemaphore, 1, NULL);
diff --git a/src/corelib/itemmodels/qabstractitemmodel.h b/src/corelib/itemmodels/qabstractitemmodel.h
index 0284ab4830..ac98476492 100644
--- a/src/corelib/itemmodels/qabstractitemmodel.h
+++ b/src/corelib/itemmodels/qabstractitemmodel.h
@@ -98,6 +98,9 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QModelIndex &);
class QPersistentModelIndexData;
+// qHash is a friend, but we can't use default arguments for friends (§8.3.6.4)
+uint qHash(const QPersistentModelIndex &index, uint seed = 0);
+
class Q_CORE_EXPORT QPersistentModelIndex
{
public:
@@ -133,7 +136,7 @@ public:
bool isValid() const;
private:
QPersistentModelIndexData *d;
- friend uint qHash(const QPersistentModelIndex &, uint seed = 0);
+ friend uint qHash(const QPersistentModelIndex &, uint seed);
#ifndef QT_NO_DEBUG_STREAM
friend Q_CORE_EXPORT QDebug operator<<(QDebug, const QPersistentModelIndex &);
#endif
diff --git a/src/corelib/kernel/qcore_unix.cpp b/src/corelib/kernel/qcore_unix.cpp
index 98e697eb57..e4181b5c86 100644
--- a/src/corelib/kernel/qcore_unix.cpp
+++ b/src/corelib/kernel/qcore_unix.cpp
@@ -63,12 +63,8 @@ QT_BEGIN_NAMESPACE
static inline bool time_update(struct timespec *tv, const struct timespec &start,
const struct timespec &timeout)
{
- if (!QElapsedTimer::isMonotonic()) {
- // we cannot recalculate the timeout without a monotonic clock as the time may have changed
- return false;
- }
-
- // clock source is monotonic, so we can recalculate how much timeout is left
+ // clock source is (hopefully) monotonic, so we can recalculate how much timeout is left;
+ // if it isn't monotonic, we'll simply hope that it hasn't jumped, because we have no alternative
struct timespec now = qt_gettime();
*tv = timeout + start - now;
return tv->tv_sec >= 0;
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
index c9f4ab23ec..386ee9cbda 100644
--- a/src/corelib/kernel/qcoreapplication.cpp
+++ b/src/corelib/kernel/qcoreapplication.cpp
@@ -381,7 +381,7 @@ QCoreApplicationPrivate::QCoreApplicationPrivate(int &aargc, char **aargv, uint
, origArgc(aargc)
, origArgv(new char *[aargc])
#endif
- , application_type(0)
+ , application_type(QCoreApplicationPrivate::Tty)
#ifndef QT_NO_QOBJECT
, in_exec(false)
, aboutToQuitEmitted(false)
@@ -724,7 +724,7 @@ void QCoreApplication::init()
#endif
#ifdef QT_EVAL
- extern void qt_core_eval_init(uint);
+ extern void qt_core_eval_init(QCoreApplicationPrivate::Type);
qt_core_eval_init(d->application_type);
#endif
@@ -1451,7 +1451,7 @@ void QCoreApplicationPrivate::sendPostedEvents(QObject *receiver, int event_type
// first, we diddle the event so that we can deliver
// it, and that no one will try to touch it later.
pe.event->posted = false;
- QScopedPointer<QEvent> e(pe.event);
+ QEvent *e = pe.event;
QObject * r = pe.receiver;
--r->d_func()->postedEvents;
@@ -1469,8 +1469,10 @@ void QCoreApplicationPrivate::sendPostedEvents(QObject *receiver, int event_type
};
MutexUnlocker unlocker(locker);
+ QScopedPointer<QEvent> event_deleter(e); // will delete the event (with the mutex unlocked)
+
// after all that work, it's time to deliver the event.
- QCoreApplication::sendEvent(r, e.data());
+ QCoreApplication::sendEvent(r, e);
// careful when adding anything below this point - the
// sendEvent() call might invalidate any invariants this
diff --git a/src/corelib/kernel/qcoreapplication_p.h b/src/corelib/kernel/qcoreapplication_p.h
index 563a3b2093..6a3bea9c9e 100644
--- a/src/corelib/kernel/qcoreapplication_p.h
+++ b/src/corelib/kernel/qcoreapplication_p.h
@@ -135,7 +135,7 @@ public:
static bool isTranslatorInstalled(QTranslator *translator);
#endif
- uint application_type;
+ QCoreApplicationPrivate::Type application_type;
QString cachedApplicationDirPath;
QString cachedApplicationFilePath;
diff --git a/src/corelib/kernel/qeventdispatcher_blackberry.cpp b/src/corelib/kernel/qeventdispatcher_blackberry.cpp
index 4cf1db18b4..d9e38b68b2 100644
--- a/src/corelib/kernel/qeventdispatcher_blackberry.cpp
+++ b/src/corelib/kernel/qeventdispatcher_blackberry.cpp
@@ -43,6 +43,7 @@
#include "qsocketnotifier.h"
#include "qdebug.h"
#include "qelapsedtimer.h"
+#include "private/qthread_p.h"
#include <bps/bps.h>
#include <bps/event.h>
@@ -352,11 +353,16 @@ int QEventDispatcherBlackberry::select(int nfds, fd_set *readfds, fd_set *writef
}
}
- // Wait for event or file to be ready
event = 0;
- const int result = bps_get_event(&event, timeoutLeft);
- if (Q_UNLIKELY(result != BPS_SUCCESS))
- qWarning("QEventDispatcherBlackberry bps_get_event failed");
+ { // We need to increase loop level in this scope,
+ // because bps_get_event can also invoke callbacks
+ QScopedLoopLevelCounter loopLevelCounter(d->threadData);
+
+ // Wait for event or file to be ready
+ const int result = bps_get_event(&event, timeoutLeft);
+ if (Q_UNLIKELY(result != BPS_SUCCESS))
+ qWarning("QEventDispatcherBlackberry: bps_get_event failed");
+ }
if (!event) // In case of !event, we break out of the loop to let Qt process the timers
break; // (since timeout has expired) and socket notifiers that are now ready.
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index 35cb589843..005199080d 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -1582,7 +1582,7 @@ int qRegisterNormalizedMetaType(const QT_PREPEND_NAMESPACE(QByteArray) &normaliz
QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Create,
QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Destruct,
QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Construct,
- sizeof(T),
+ int(sizeof(T)),
flags,
QtPrivate::MetaObjectForType<T>::value());
@@ -1753,8 +1753,8 @@ struct QMetaTypeId< SINGLE_ARG_TEMPLATE<T> > \
Q_ASSERT(tName); \
const int tNameLen = qstrlen(tName); \
QByteArray typeName; \
- typeName.reserve(sizeof(#SINGLE_ARG_TEMPLATE) + 1 + tNameLen + 1 + 1); \
- typeName.append(#SINGLE_ARG_TEMPLATE, sizeof(#SINGLE_ARG_TEMPLATE) - 1) \
+ typeName.reserve(int(sizeof(#SINGLE_ARG_TEMPLATE)) + 1 + tNameLen + 1 + 1); \
+ typeName.append(#SINGLE_ARG_TEMPLATE, int(sizeof(#SINGLE_ARG_TEMPLATE)) - 1) \
.append('<').append(tName, tNameLen); \
if (typeName.endsWith('>')) \
typeName.append(' '); \
@@ -1786,8 +1786,8 @@ struct QMetaTypeId< DOUBLE_ARG_TEMPLATE<T, U> > \
const int tNameLen = qstrlen(tName); \
const int uNameLen = qstrlen(uName); \
QByteArray typeName; \
- typeName.reserve(sizeof(#DOUBLE_ARG_TEMPLATE) + 1 + tNameLen + 1 + uNameLen + 1 + 1); \
- typeName.append(#DOUBLE_ARG_TEMPLATE, sizeof(#DOUBLE_ARG_TEMPLATE) - 1) \
+ typeName.reserve(int(sizeof(#DOUBLE_ARG_TEMPLATE)) + 1 + tNameLen + 1 + uNameLen + 1 + 1); \
+ typeName.append(#DOUBLE_ARG_TEMPLATE, int(sizeof(#DOUBLE_ARG_TEMPLATE)) - 1) \
.append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); \
if (typeName.endsWith('>')) \
typeName.append(' '); \
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index 495ce7c948..997a65169d 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -3921,7 +3921,7 @@ QDebug operator<<(QDebug dbg, const QObject *o) {
they have additional features accessible through the \l
{Meta-Object System}.
- \snippet code/src_corelib_kernel_qobject.cpp 36
+ \snippet code/doc_src_properties.cpp 0
The property name and type and the \c READ function are required.
The type can be any type supported by QVariant, or it can be a
diff --git a/src/corelib/kernel/qtcore_eval.cpp b/src/corelib/kernel/qtcore_eval.cpp
index e9ff786074..59656883f1 100644
--- a/src/corelib/kernel/qtcore_eval.cpp
+++ b/src/corelib/kernel/qtcore_eval.cpp
@@ -44,6 +44,7 @@
#include <qlibraryinfo.h>
#include <qobject.h>
#include <qcoreapplication.h>
+#include <private/qcoreapplication_p.h>
#include "stdio.h"
#include "stdlib.h"
@@ -52,7 +53,7 @@ QT_BEGIN_NAMESPACE
#include "qconfig_eval.cpp"
-static const char boilerplate_unsuported[] =
+static const char boilerplate_supported_but_time_limited[] =
"\nQt %1 Evaluation License\n"
"Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).\n"
"This trial version may only be used for evaluation purposes\n"
@@ -86,13 +87,19 @@ static const char will_shutdown_now[] =
"timeout and will shut down.\n"
"Contact http://qt.digia.com/contact-us for pricing and purchasing information.\n";
-static int qt_eval_is_supported()
+enum EvaluationStatus {
+ EvaluationNotSupported = 0,
+ EvaluationSupportedButTimeLimited,
+ EvaluationSupported
+};
+
+static EvaluationStatus qt_eval_is_supported()
{
const volatile char *const license_key = qt_eval_key_data + 12;
// fast fail
if (!qt_eval_key_data[0] || !*license_key)
- return -1;
+ return EvaluationNotSupported;
// is this an unsupported evaluation?
const volatile char *typecode = license_key;
@@ -103,31 +110,33 @@ static int qt_eval_is_supported()
if (!field && typecode[1] == '4' && typecode[2] == 'M') {
if (typecode[0] == 'Q')
- return 0;
+ return EvaluationSupportedButTimeLimited;
else if (typecode[0] == 'R' || typecode[0] == 'Z')
- return 1;
+ return EvaluationSupported;
}
- return -1;
+ return EvaluationNotSupported;
}
static int qt_eval_days_left()
{
- if (qt_eval_is_supported() < 0)
- return -2;
-
QDate today = QDate::currentDate();
QDate build = QLibraryInfo::buildDate();
return qMax<qint64>(-1, today.daysTo(build) + 30);
}
+static bool qt_eval_is_expired()
+{
+ return qt_eval_days_left() < 0;
+}
+
static QString qt_eval_string()
{
const char *msg;
switch (qt_eval_is_supported()) {
- case 0:
- msg = boilerplate_unsuported;
+ case EvaluationSupportedButTimeLimited:
+ msg = boilerplate_supported_but_time_limited;
break;
- case 1:
+ case EvaluationSupported:
msg = boilerplate_supported;
break;
default:
@@ -153,7 +162,7 @@ public:
QCoreFuriCuri() : QObject(), warn(-1), kill(-1)
{
- if (!qt_eval_is_supported()) {
+ if (qt_eval_is_supported() == EvaluationSupportedButTimeLimited) {
warn = startTimer(WARN_TIMEOUT);
kill = 0;
}
@@ -173,27 +182,20 @@ public:
#if defined(QT_BUILD_CORE_LIB) || defined (QT_BOOTSTRAPPED)
-void qt_core_eval_init(uint type)
+void qt_core_eval_init(QCoreApplicationPrivate::Type type)
{
- if (!type)
- return; // GUI app
+ if (type != QCoreApplicationPrivate::Tty)
+ return;
- switch (qt_eval_days_left()) {
- case -2:
+ if (!qt_eval_is_supported())
return;
- case -1:
+ if (qt_eval_is_expired()) {
fprintf(stderr, "%s\n", boilerplate_expired);
- if (type == 0) {
- // if we're a console app only.
- exit(0);
- }
-
- default:
+ exit(0);
+ } else {
fprintf(stderr, "%s\n", qPrintable(qt_eval_string()));
- if (type == 0) {
- Q_UNUSED(new QCoreFuriCuri());
- }
+ Q_UNUSED(new QCoreFuriCuri());
}
}
#endif
@@ -453,12 +455,7 @@ public:
{
setWindowTitle(QLatin1String(" "));
- QString str = qt_eval_string();
- if (expired) {
- str = QLatin1String(boilerplate_expired);
- } else {
- str = qt_eval_string();
- }
+ QString str = expired ? QLatin1String(boilerplate_expired) : qt_eval_string();
str = str.trimmed();
QFrame *border = new QFrame(this);
@@ -520,24 +517,22 @@ public:
};
-void qt_gui_eval_init(uint)
+void qt_gui_eval_init(QCoreApplicationPrivate::Type type)
{
- switch (qt_eval_days_left()) {
- case -2:
+ Q_UNUSED(type);
+
+ if (!qt_eval_is_supported())
return;
- case -1: {
+ if (qt_eval_is_expired()) {
EvalMessageBox box(true);
box.exec();
::exit(0);
- }
-
- default: {
+ } else {
EvalMessageBox *box = new EvalMessageBox(false);
box->show();
Q_UNUSED(new QGuiFuriCuri());
}
- }
}
static QString qt_eval_title_prefix()
@@ -547,14 +542,14 @@ static QString qt_eval_title_prefix()
QString qt_eval_adapt_window_title(const QString &title)
{
- if (qt_eval_days_left() == -2)
+ if (!qt_eval_is_supported())
return title;
return qt_eval_title_prefix() + title;
}
void qt_eval_init_widget(QWidget *w)
{
- if (qt_eval_days_left() == -2)
+ if (!qt_eval_is_supported())
return;
if (w->isTopLevel() && w->windowTitle().isEmpty() && w->windowType() != Qt::Desktop ) {
w->setWindowTitle(QLatin1String(" "));
diff --git a/src/corelib/kernel/qvariant_p.h b/src/corelib/kernel/qvariant_p.h
index 04b9d92f55..4ec049e20d 100644
--- a/src/corelib/kernel/qvariant_p.h
+++ b/src/corelib/kernel/qvariant_p.h
@@ -224,7 +224,7 @@ class QVariantIsNull
public:
static const bool Value = (sizeof(test<T>(0)) == sizeof(Yes));
};
-#elif defined(Q_CC_MSVC) && _MSC_VER >= 1400 // MSVC 2005, 2008 version: no decltype, but 'sealed' classes (>=2010 has decltype)
+#elif defined(Q_CC_MSVC) && _MSC_VER >= 1400 && !defined(Q_CC_INTEL) // MSVC 2005, 2008 version: no decltype, but 'sealed' classes (>=2010 has decltype)
template<typename T>
class HasIsNullMethod {
struct Yes { char unused[1]; };
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index de09e5bbe0..37d28b0904 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -3873,7 +3873,7 @@ static inline __m128i mergeQuestionMarks(__m128i chunk)
// SSE has no compare instruction for unsigned comparison.
// The variables must be shiffted + 0x8000 to be compared
const __m128i signedBitOffset = _mm_set1_epi16(0x8000);
- const __m128i thresholdMask = _mm_set1_epi16(0xff + 0x8000);
+ const __m128i thresholdMask = _mm_set1_epi16(short(0xff + 0x8000));
const __m128i signedChunk = _mm_add_epi16(chunk, signedBitOffset);
const __m128i offLimitMask = _mm_cmpgt_epi16(signedChunk, thresholdMask);
diff --git a/src/corelib/xml/qxmlstream.cpp b/src/corelib/xml/qxmlstream.cpp
index 372b1d91fe..d3579497eb 100644
--- a/src/corelib/xml/qxmlstream.cpp
+++ b/src/corelib/xml/qxmlstream.cpp
@@ -2038,7 +2038,7 @@ QStringRef QXmlStreamReader::dtdSystemId() const
element's namespace declarations. Otherwise an empty vector is
returned.
- The QXmlStreamNamespaceDeclaration class is defined to be a QVector
+ The QXmlStreamNamespaceDeclarations class is defined to be a QVector
of QXmlStreamNamespaceDeclaration.
\sa addExtraNamespaceDeclaration(), addExtraNamespaceDeclarations()
diff --git a/src/dbus/qdbusabstractadaptor.cpp b/src/dbus/qdbusabstractadaptor.cpp
index 1dbc79d6ec..04accee037 100644
--- a/src/dbus/qdbusabstractadaptor.cpp
+++ b/src/dbus/qdbusabstractadaptor.cpp
@@ -279,7 +279,16 @@ void QDBusAdaptorConnector::polish()
void QDBusAdaptorConnector::relaySlot(void **argv)
{
- relay(sender(), senderSignalIndex(), argv);
+ QObject *sndr = sender();
+ if (Q_LIKELY(sndr)) {
+ relay(sndr, senderSignalIndex(), argv);
+ } else {
+ qWarning("QtDBus: cannot relay signals from parent %s(%p \"%s\") unless they are emitted in the object's thread %s(%p \"%s\"). "
+ "Current thread is %s(%p \"%s\").",
+ parent()->metaObject()->className(), parent(), qPrintable(parent()->objectName()),
+ parent()->thread()->metaObject()->className(), parent()->thread(), qPrintable(parent()->thread()->objectName()),
+ QThread::currentThread()->metaObject()->className(), QThread::currentThread(), qPrintable(QThread::currentThread()->objectName()));
+ }
}
void QDBusAdaptorConnector::relay(QObject *senderObj, int lastSignalIdx, void **argv)
diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp
index f2f822331d..cb508ae6c7 100644
--- a/src/gui/image/qicon.cpp
+++ b/src/gui/image/qicon.cpp
@@ -181,7 +181,7 @@ void QPixmapIconEngine::paint(QPainter *painter, const QRect &rect, QIcon::Mode
{
QSize pixmapSize = rect.size() * qt_effective_device_pixel_ratio(0);
QPixmap px = pixmap(pixmapSize, mode, state);
- painter->drawPixmap(rect, pixmap(pixmapSize, mode, state));
+ painter->drawPixmap(rect, px);
}
static inline int area(const QSize &s) { return s.width() * s.height(); }
diff --git a/src/gui/image/qimagereader.cpp b/src/gui/image/qimagereader.cpp
index 5dd51843fb..ec55cb85a3 100644
--- a/src/gui/image/qimagereader.cpp
+++ b/src/gui/image/qimagereader.cpp
@@ -311,7 +311,7 @@ static QImageIOHandler *createReadHandlerHelper(QIODevice *device,
QImageIOPlugin *plugin = qobject_cast<QImageIOPlugin *>(l->instance(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" << keyMap.keys().at(i) << "plugin can read this format";
#endif
handler = plugin->create(device, testFormat);
break;
@@ -392,7 +392,7 @@ static QImageIOHandler *createReadHandlerHelper(QIODevice *device,
if (plugin && plugin->capabilities(device, QByteArray()) & QImageIOPlugin::CanRead) {
handler = plugin->create(device, testFormat);
#ifdef QIMAGEREADER_DEBUG
- qDebug() << "QImageReader::createReadHandler: the" << keys.at(i) << "plugin can read this data";
+ qDebug() << "QImageReader::createReadHandler: the" << keyMap.keys().at(i) << "plugin can read this data";
#endif
break;
}
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index ba97db4d39..fa289bbf8b 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -4217,6 +4217,7 @@ void QTouchEvent::TouchPoint::setFlags(InfoFlags flags)
QScrollPrepareEvent::QScrollPrepareEvent(const QPointF &startPos)
: QEvent(QEvent::ScrollPrepare), m_target(0), m_startPos(startPos)
{
+ Q_UNUSED(m_target);
}
/*!
diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h
index 82276c5342..7142450322 100644
--- a/src/gui/kernel/qevent.h
+++ b/src/gui/kernel/qevent.h
@@ -860,14 +860,7 @@ public:
void setContentPos(const QPointF &pos);
private:
-#ifdef Q_CC_CLANG
-# pragma clang diagnostic push
-# pragma clang diagnostic ignored "-Wunused-private-field"
-#endif // Q_CC_CLANG
QObject* m_target; // Qt 6 remove.
-#ifdef Q_CC_CLANG
-# pragma clang diagnostic pop
-#endif // Q_CC_CLANG
QPointF m_startPos;
QSizeF m_viewportSize;
QRectF m_contentPosRange;
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index 89664447c4..118b481fa3 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -787,11 +787,12 @@ static void init_platform(const QString &pluginArgument, const QString &platform
QStringList keys = QPlatformIntegrationFactory::keys(platformPluginPath);
QString fatalMessage
- = QStringLiteral("Failed to find or load platform plugin \"%1\".\n").arg(name);
- if (!keys.isEmpty())
- fatalMessage += QStringLiteral("Available platforms are: %1\n").arg(
+ = QStringLiteral("This application failed to start because it could not find or load the Qt platform plugin \"%1\".\n\n").arg(name);
+ if (!keys.isEmpty()) {
+ fatalMessage += QStringLiteral("Available platform plugins are: %1.\n\n").arg(
keys.join(QStringLiteral(", ")));
- fatalMessage += QStringLiteral("GUI applications require a platform plugin. Terminating.");
+ }
+ fatalMessage += QStringLiteral("Reinstalling the application may fix this problem.");
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
// Windows: Display message box unless it is a console application
// or debug build showing an assert box.
diff --git a/src/gui/kernel/qplatformsystemtrayicon_qpa.cpp b/src/gui/kernel/qplatformsystemtrayicon_qpa.cpp
index 13de2c658a..b47b657361 100644
--- a/src/gui/kernel/qplatformsystemtrayicon_qpa.cpp
+++ b/src/gui/kernel/qplatformsystemtrayicon_qpa.cpp
@@ -51,7 +51,7 @@ QT_BEGIN_NAMESPACE
\inmodule QtGui
\brief The QPlatformSystemTrayIcon class abstracts the system tray icon and interaction.
- \sa QSystemTray
+ \sa QSystemTrayIcon
*/
/*!
diff --git a/src/gui/kernel/qsurfaceformat.cpp b/src/gui/kernel/qsurfaceformat.cpp
index 25b603bb9c..9b8ed4a289 100644
--- a/src/gui/kernel/qsurfaceformat.cpp
+++ b/src/gui/kernel/qsurfaceformat.cpp
@@ -119,7 +119,7 @@ public:
the size of the alpha buffer; the size of the depth and stencil buffers;
and number of samples per pixel for multisampling. In addition, the format
contains surface configuration parameters such as OpenGL profile and
- version for rendering, whether or not enable stereo buffers, and swap
+ version for rendering, whether or not to enable stereo buffers, and swap
behaviour.
*/
@@ -361,7 +361,7 @@ int QSurfaceFormat::depthBufferSize() const
Set the swap \a behavior of the surface.
The swap behavior specifies whether single, double, or triple
- buffering is desired. The default, SwapBehavior::DefaultSwapBehavior,
+ buffering is desired. The default, DefaultSwapBehavior,
gives the default swap behavior of the platform.
*/
void QSurfaceFormat::setSwapBehavior(SwapBehavior behavior)
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp
index eff057c4cb..392407d86d 100644
--- a/src/gui/kernel/qwindow.cpp
+++ b/src/gui/kernel/qwindow.cpp
@@ -933,7 +933,6 @@ bool QWindow::isActive() const
/*!
\property QWindow::contentOrientation
\brief the orientation of the window's contents
- \since 5.1
This is a hint to the window manager in case it needs to display
additional content like popups, dialogs, status bars, or similar
@@ -1190,7 +1189,6 @@ void QWindow::setHeight(int arg)
/*!
\property QWindow::minimumWidth
\brief the minimum width of the window's geometry
- \since 5.1
*/
void QWindow::setMinimumWidth(int w)
{
@@ -1200,7 +1198,6 @@ void QWindow::setMinimumWidth(int w)
/*!
\property QWindow::minimumHeight
\brief the minimum height of the window's geometry
- \since 5.1
*/
void QWindow::setMinimumHeight(int h)
{
@@ -1233,7 +1230,6 @@ void QWindow::setMaximumSize(const QSize &size)
/*!
\property QWindow::maximumWidth
\brief the maximum width of the window's geometry
- \since 5.1
*/
void QWindow::setMaximumWidth(int w)
{
@@ -1243,7 +1239,6 @@ void QWindow::setMaximumWidth(int w)
/*!
\property QWindow::maximumHeight
\brief the maximum height of the window's geometry
- \since 5.1
*/
void QWindow::setMaximumHeight(int h)
{
diff --git a/src/gui/kernel/qwindow.h b/src/gui/kernel/qwindow.h
index efdfd497a6..ca261ff7ce 100644
--- a/src/gui/kernel/qwindow.h
+++ b/src/gui/kernel/qwindow.h
@@ -110,14 +110,14 @@ class Q_GUI_EXPORT QWindow : public QObject, public QSurface
Q_PROPERTY(int y READ y WRITE setY NOTIFY yChanged)
Q_PROPERTY(int width READ width WRITE setWidth NOTIFY widthChanged)
Q_PROPERTY(int height READ height WRITE setHeight NOTIFY heightChanged)
- Q_PROPERTY(int minimumWidth READ minimumWidth WRITE setMinimumWidth NOTIFY minimumWidthChanged REVISION 1)
- Q_PROPERTY(int minimumHeight READ minimumHeight WRITE setMinimumHeight NOTIFY minimumHeightChanged REVISION 1)
- Q_PROPERTY(int maximumWidth READ maximumWidth WRITE setMaximumWidth NOTIFY maximumWidthChanged REVISION 1)
- Q_PROPERTY(int maximumHeight READ maximumHeight WRITE setMaximumHeight NOTIFY maximumHeightChanged REVISION 1)
+ Q_PROPERTY(int minimumWidth READ minimumWidth WRITE setMinimumWidth NOTIFY minimumWidthChanged)
+ Q_PROPERTY(int minimumHeight READ minimumHeight WRITE setMinimumHeight NOTIFY minimumHeightChanged)
+ Q_PROPERTY(int maximumWidth READ maximumWidth WRITE setMaximumWidth NOTIFY maximumWidthChanged)
+ Q_PROPERTY(int maximumHeight READ maximumHeight WRITE setMaximumHeight NOTIFY maximumHeightChanged)
Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged)
Q_PROPERTY(bool active READ isActive NOTIFY activeChanged REVISION 1)
Q_PROPERTY(Visibility visibility READ visibility WRITE setVisibility NOTIFY visibilityChanged REVISION 1)
- Q_PROPERTY(Qt::ScreenOrientation contentOrientation READ contentOrientation WRITE reportContentOrientationChange NOTIFY contentOrientationChanged REVISION 1)
+ Q_PROPERTY(Qt::ScreenOrientation contentOrientation READ contentOrientation WRITE reportContentOrientationChange NOTIFY contentOrientationChanged)
Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity NOTIFY opacityChanged REVISION 1)
public:
@@ -286,12 +286,12 @@ public Q_SLOTS:
void setWidth(int arg);
void setHeight(int arg);
- Q_REVISION(1) void setMinimumWidth(int w);
- Q_REVISION(1) void setMinimumHeight(int h);
- Q_REVISION(1) void setMaximumWidth(int w);
- Q_REVISION(1) void setMaximumHeight(int h);
+ void setMinimumWidth(int w);
+ void setMinimumHeight(int h);
+ void setMaximumWidth(int w);
+ void setMaximumHeight(int h);
- void alert(int msec);
+ Q_REVISION(1) void alert(int msec);
Q_SIGNALS:
void screenChanged(QScreen *screen);
@@ -304,15 +304,15 @@ Q_SIGNALS:
void widthChanged(int arg);
void heightChanged(int arg);
- Q_REVISION(1) void minimumWidthChanged(int arg);
- Q_REVISION(1) void minimumHeightChanged(int arg);
- Q_REVISION(1) void maximumWidthChanged(int arg);
- Q_REVISION(1) void maximumHeightChanged(int arg);
+ void minimumWidthChanged(int arg);
+ void minimumHeightChanged(int arg);
+ void maximumWidthChanged(int arg);
+ void maximumHeightChanged(int arg);
void visibleChanged(bool arg);
Q_REVISION(1) void visibilityChanged(QWindow::Visibility visibility);
Q_REVISION(1) void activeChanged();
- Q_REVISION(1) void contentOrientationChanged(Qt::ScreenOrientation orientation);
+ void contentOrientationChanged(Qt::ScreenOrientation orientation);
void focusObjectChanged(QObject *object);
diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp
index 0782e42531..78f5080caf 100644
--- a/src/gui/opengl/qopenglpaintengine.cpp
+++ b/src/gui/opengl/qopenglpaintengine.cpp
@@ -549,8 +549,10 @@ void QOpenGL2PaintEngineEx::beginNativePainting()
#ifndef QT_OPENGL_ES_2
Q_ASSERT(QOpenGLContext::currentContext());
+ const QOpenGLContext *ctx = d->ctx;
const QSurfaceFormat &fmt = d->device->context()->format();
if (fmt.majorVersion() < 3 || (fmt.majorVersion() == 3 && fmt.minorVersion() < 1)
+ || (fmt.majorVersion() == 3 && fmt.minorVersion() == 1 && ctx->hasExtension(QByteArrayLiteral("GL_ARB_compatibility")))
|| fmt.profile() == QSurfaceFormat::CompatibilityProfile)
{
// be nice to people who mix OpenGL 1.x code with QPainter commands
@@ -1548,8 +1550,28 @@ namespace {
bool QOpenGL2PaintEngineEx::shouldDrawCachedGlyphs(QFontEngine *fontEngine, const QTransform &t) const
{
- // Don't try to cache vastly transformed fonts
- return t.type() < QTransform::TxProject && QPaintEngineEx::shouldDrawCachedGlyphs(fontEngine, t);
+ // The paint engine does not support projected cached glyph drawing
+ if (t.type() == QTransform::TxProject)
+ return false;
+
+ // The font engine might not support filling the glyph cache
+ // with the given transform applied, in which case we need to
+ // fall back to the QPainterPath code-path.
+ if (!fontEngine->supportsTransformation(t)) {
+ // Except that drawing paths is slow, so for scales between
+ // 0.5 and 2.0 we leave the glyph cache untransformed and deal
+ // with the transform ourselves when painting, resulting in
+ // drawing 1x cached glyphs with a smooth-scale.
+ float det = t.determinant();
+ if (det >= 0.25f && det <= 4.f) {
+ // Assuming the baseclass still agrees
+ return QPaintEngineEx::shouldDrawCachedGlyphs(fontEngine, t);
+ }
+
+ return false; // Fall back to path-drawing
+ }
+
+ return QPaintEngineEx::shouldDrawCachedGlyphs(fontEngine, t);
}
void QOpenGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyphType,
@@ -1561,20 +1583,24 @@ void QOpenGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type
void *cacheKey = ctx->shareGroup();
bool recreateVertexArrays = false;
- QFontEngine *fe = staticTextItem->fontEngine();
- // We allow scaling, so that the glyph-cache will contain glyphs with the
- // appropriate resolution in the case of displays with a device-pixel-ratio != 1.
- QTransform transform = s->matrix.type() < QTransform::TxRotate ?
- QTransform::fromScale(qAbs(s->matrix.m11()), qAbs(s->matrix.m22())) :
- QTransform::fromScale(
- QVector2D(s->matrix.m11(), s->matrix.m12()).length(),
- QVector2D(s->matrix.m21(), s->matrix.m22()).length());
+ QTransform glyphCacheTransform;
+ QFontEngine *fe = staticTextItem->fontEngine();
+ if (fe->supportsTransformation(s->matrix)) {
+ // The font-engine supports rendering glyphs with the current transform, so we
+ // build a glyph-cache with the scale pre-applied, so that the cache contains
+ // glyphs with the appropriate resolution in the case of retina displays.
+ glyphCacheTransform = s->matrix.type() < QTransform::TxRotate ?
+ QTransform::fromScale(qAbs(s->matrix.m11()), qAbs(s->matrix.m22())) :
+ QTransform::fromScale(
+ QVector2D(s->matrix.m11(), s->matrix.m12()).length(),
+ QVector2D(s->matrix.m21(), s->matrix.m22()).length());
+ }
QOpenGLTextureGlyphCache *cache =
- (QOpenGLTextureGlyphCache *) fe->glyphCache(cacheKey, glyphType, transform);
+ (QOpenGLTextureGlyphCache *) fe->glyphCache(cacheKey, glyphType, glyphCacheTransform);
if (!cache || cache->cacheType() != glyphType || cache->contextGroup() == 0) {
- cache = new QOpenGLTextureGlyphCache(glyphType, transform);
+ cache = new QOpenGLTextureGlyphCache(glyphType, glyphCacheTransform);
fe->setGlyphCache(cacheKey, cache);
recreateVertexArrays = true;
}
diff --git a/src/gui/opengl/qopenglvertexarrayobject.cpp b/src/gui/opengl/qopenglvertexarrayobject.cpp
index e450fe708f..eb7a42f749 100644
--- a/src/gui/opengl/qopenglvertexarrayobject.cpp
+++ b/src/gui/opengl/qopenglvertexarrayobject.cpp
@@ -118,6 +118,9 @@ public:
void destroy();
void bind();
void release();
+ void _q_contextAboutToBeDestroyed();
+
+ Q_DECLARE_PUBLIC(QOpenGLVertexArrayObject)
GLuint vao;
@@ -141,12 +144,22 @@ public:
bool QOpenGLVertexArrayObjectPrivate::create()
{
+ if (vao) {
+ qWarning("QOpenGLVertexArrayObject::create() VAO is already created");
+ return false;
+ }
+
+ Q_Q(QOpenGLVertexArrayObject);
+ if (context)
+ QObject::disconnect(context, SIGNAL(aboutToBeDestroyed()), q, SLOT(_q_contextAboutToBeDestroyed()));
+
QOpenGLContext *ctx = QOpenGLContext::currentContext();
if (!ctx) {
qWarning("QOpenGLVertexArrayObject::create() requires a valid current OpenGL context");
return false;
}
context = ctx;
+ QObject::connect(context, SIGNAL(aboutToBeDestroyed()), q, SLOT(_q_contextAboutToBeDestroyed()));
#if defined(QT_OPENGL_ES_2)
if (ctx->hasExtension("GL_OES_vertex_array_object")) {
@@ -197,8 +210,16 @@ void QOpenGLVertexArrayObjectPrivate::destroy()
case NotSupported:
break;
}
- vao = 0;
#endif
+ vao = 0;
+}
+
+/*!
+ \internal
+*/
+void QOpenGLVertexArrayObjectPrivate::_q_contextAboutToBeDestroyed()
+{
+ destroy();
}
void QOpenGLVertexArrayObjectPrivate::bind()
@@ -327,7 +348,7 @@ QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject()
Q_D(QOpenGLVertexArrayObject);
QOpenGLContext *oldContext = 0;
- if (d->context && d->context != ctx) {
+ if (d->context && ctx && d->context != ctx) {
oldContext = ctx;
if (d->context->makeCurrent(oldContext->surface())) {
ctx = d->context;
@@ -471,3 +492,5 @@ void QOpenGLVertexArrayObject::release()
*/
QT_END_NAMESPACE
+
+#include "moc_qopenglvertexarrayobject.cpp"
diff --git a/src/gui/opengl/qopenglvertexarrayobject.h b/src/gui/opengl/qopenglvertexarrayobject.h
index 569aeea730..8369497660 100644
--- a/src/gui/opengl/qopenglvertexarrayobject.h
+++ b/src/gui/opengl/qopenglvertexarrayobject.h
@@ -102,6 +102,7 @@ public:
private:
Q_DISABLE_COPY(QOpenGLVertexArrayObject)
Q_DECLARE_PRIVATE(QOpenGLVertexArrayObject)
+ Q_PRIVATE_SLOT(d_func(), void _q_contextAboutToBeDestroyed())
QOpenGLVertexArrayObject(QOpenGLVertexArrayObjectPrivate &dd);
};
diff --git a/src/gui/painting/qbezier.cpp b/src/gui/painting/qbezier.cpp
index 6cef7cc501..2762560da7 100644
--- a/src/gui/painting/qbezier.cpp
+++ b/src/gui/painting/qbezier.cpp
@@ -150,33 +150,6 @@ static inline int quadraticRoots(qreal a, qreal b, qreal c,
}
}
-static inline bool findInflections(qreal a, qreal b, qreal c,
- qreal *t1 , qreal *t2, qreal *tCups)
-{
- qreal r1 = 0, r2 = 0;
-
- short rootsCount = quadraticRoots(a, b, c, &r1, &r2);
-
- if (rootsCount >= 1) {
- if (r1 < r2) {
- *t1 = r1;
- *t2 = r2;
- } else {
- *t1 = r2;
- *t2 = r1;
- }
- if (!qFuzzyIsNull(a))
- *tCups = qreal(0.5) * (-b / a);
- else
- *tCups = 2;
-
- return true;
- }
-
- return false;
-}
-
-
void QBezier::addToPolygon(QPolygonF *polygon, qreal bezier_flattening_threshold) const
{
QBezier beziers[10];
@@ -531,34 +504,6 @@ static QDebug operator<<(QDebug dbg, const QBezier &bz)
}
#endif
-static inline void splitBezierAt(const QBezier &bez, qreal t,
- QBezier *left, QBezier *right)
-{
- left->x1 = bez.x1;
- left->y1 = bez.y1;
-
- left->x2 = bez.x1 + t * ( bez.x2 - bez.x1 );
- left->y2 = bez.y1 + t * ( bez.y2 - bez.y1 );
-
- left->x3 = bez.x2 + t * ( bez.x3 - bez.x2 ); // temporary holding spot
- left->y3 = bez.y2 + t * ( bez.y3 - bez.y2 ); // temporary holding spot
-
- right->x3 = bez.x3 + t * ( bez.x4 - bez.x3 );
- right->y3 = bez.y3 + t * ( bez.y4 - bez.y3 );
-
- right->x2 = left->x3 + t * ( right->x3 - left->x3);
- right->y2 = left->y3 + t * ( right->y3 - left->y3);
-
- left->x3 = left->x2 + t * ( left->x3 - left->x2 );
- left->y3 = left->y2 + t * ( left->y3 - left->y2 );
-
- left->x4 = right->x1 = left->x3 + t * (right->x2 - left->x3);
- left->y4 = right->y1 = left->y3 + t * (right->y2 - left->y3);
-
- right->x4 = bez.x4;
- right->y4 = bez.y4;
-}
-
qreal QBezier::length(qreal error) const
{
qreal length = qreal(0.0);
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 66a4a43cba..d1e9b81faa 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -3327,10 +3327,16 @@ bool QRasterPaintEngine::requiresPretransformedGlyphPositions(QFontEngine *fontE
bool QRasterPaintEngine::shouldDrawCachedGlyphs(QFontEngine *fontEngine, const QTransform &m) const
{
+ // The raster engine does not support projected cached glyph drawing
+ if (m.type() >= QTransform::TxProject)
+ return false;
+
// The font engine might not support filling the glyph cache
// with the given transform applied, in which case we need to
- // fall back to the QPainterPath code-path.
- if (!fontEngine->supportsTransformation(m))
+ // fall back to the QPainterPath code-path. This does not apply
+ // for engines with internal caching, as we don't use the engine
+ // to fill up our cache in that case.
+ if (!fontEngine->hasInternalCaching() && !fontEngine->supportsTransformation(m))
return false;
return QPaintEngineEx::shouldDrawCachedGlyphs(fontEngine, m);
diff --git a/src/gui/painting/qpathclipper.cpp b/src/gui/painting/qpathclipper.cpp
index 2702b56e73..243c99e671 100644
--- a/src/gui/painting/qpathclipper.cpp
+++ b/src/gui/painting/qpathclipper.cpp
@@ -1036,16 +1036,6 @@ qreal QWingedEdge::delta(int vertex, int a, int b) const
return result;
}
-static inline QPointF midPoint(const QWingedEdge &list, int ei)
-{
- const QPathEdge *ep = list.edge(ei);
- Q_ASSERT(ep);
-
- const QPointF a = *list.vertex(ep->first);
- const QPointF b = *list.vertex(ep->second);
- return a + 0.5 * (b - a);
-}
-
QWingedEdge::TraversalStatus QWingedEdge::findInsertStatus(int vi, int ei) const
{
const QPathVertex *vp = vertex(vi);
diff --git a/src/gui/painting/qpdf.cpp b/src/gui/painting/qpdf.cpp
index 345ebefea7..9105e8b396 100644
--- a/src/gui/painting/qpdf.cpp
+++ b/src/gui/painting/qpdf.cpp
@@ -1469,7 +1469,12 @@ int QPdfEngine::metric(QPaintDevice::PaintDeviceMetric metricType) const
return val;
}
+static inline QSizeF pageSizeToPostScriptPoints(const QSizeF &pageSizeMM)
+{
#define Q_MM(n) int((n * 720 + 127) / 254)
+ return QSizeF(Q_MM(pageSizeMM.width()), Q_MM(pageSizeMM.height()));
+#undef Q_MM
+}
QPdfEnginePrivate::QPdfEnginePrivate()
: clipEnabled(false), allClipped(false), hasPen(true), hasBrush(false), simplePen(false),
@@ -1477,7 +1482,7 @@ QPdfEnginePrivate::QPdfEnginePrivate()
fullPage(false), embedFonts(true),
landscape(false),
grayscale(false),
- paperSize(Q_MM(210), Q_MM(297)), // A4
+ paperSize(pageSizeToPostScriptPoints(QSizeF(210, 297))), // A4
leftMargin(10), topMargin(10), rightMargin(10), bottomMargin(10) // ~3.5 mm
{
resolution = 1200;
@@ -1491,6 +1496,11 @@ QPdfEnginePrivate::QPdfEnginePrivate()
stream = new QDataStream;
}
+void QPdfEnginePrivate::setPaperSize(const QSizeF &pageSizeMM)
+{
+ paperSize = pageSizeToPostScriptPoints(pageSizeMM);
+}
+
bool QPdfEngine::begin(QPaintDevice *pdev)
{
Q_D(QPdfEngine);
@@ -2518,6 +2528,10 @@ void QPdfEnginePrivate::drawTextItem(const QPointF &p, const QTextItemInt &ti)
qreal size = ti.fontEngine->fontDef.pixelSize;
+#if defined(Q_OS_WIN)
+ size = (ti.fontEngine->ascent() + ti.fontEngine->descent()).toReal();
+#endif
+
QVarLengthArray<glyph_t> glyphs;
QVarLengthArray<QFixedPoint> positions;
QTransform m = QTransform::fromTranslate(p.x(), p.y());
diff --git a/src/gui/painting/qpdf_p.h b/src/gui/painting/qpdf_p.h
index 560621775b..54530d0f78 100644
--- a/src/gui/painting/qpdf_p.h
+++ b/src/gui/painting/qpdf_p.h
@@ -226,6 +226,7 @@ public:
QRect paperRect() const;
QRect pageRect() const;
+ void setPaperSize(const QSizeF &pageSizeMM);
int width() const {
QRect r = paperRect();
diff --git a/src/gui/painting/qpdfwriter.cpp b/src/gui/painting/qpdfwriter.cpp
index 136654cb5d..a783aad66a 100644
--- a/src/gui/painting/qpdfwriter.cpp
+++ b/src/gui/painting/qpdfwriter.cpp
@@ -166,7 +166,7 @@ void QPdfWriter::setPageSize(PageSize size)
Q_D(const QPdfWriter);
QPagedPaintDevice::setPageSize(size);
- d->engine->d_func()->paperSize = pageSizeMM() * 25.4/72.;
+ d->engine->d_func()->setPaperSize(pageSizeMM());
}
/*!
@@ -177,7 +177,7 @@ void QPdfWriter::setPageSizeMM(const QSizeF &size)
Q_D(const QPdfWriter);
QPagedPaintDevice::setPageSizeMM(size);
- d->engine->d_func()->paperSize = pageSizeMM() * 25.4/72.;
+ d->engine->d_func()->setPaperSize(pageSizeMM());
}
/*!
diff --git a/src/gui/text/qfontengine_ft.cpp b/src/gui/text/qfontengine_ft.cpp
index 4545645dc6..7b4925a9c8 100644
--- a/src/gui/text/qfontengine_ft.cpp
+++ b/src/gui/text/qfontengine_ft.cpp
@@ -1437,6 +1437,14 @@ void QFontEngineFT::getUnscaledGlyph(glyph_t glyph, QPainterPath *path, glyph_me
unlockFace();
}
+bool QFontEngineFT::supportsTransformation(const QTransform &transform) const
+{
+ // The freetype engine falls back to QFontEngine for tranformed glyphs,
+ // which uses fast-tranform and produces very ugly results, so we claim
+ // to support just translations.
+ return transform.type() <= QTransform::TxTranslate;
+}
+
static inline unsigned int getChar(const QChar *str, int &i, const int len)
{
uint ucs4 = str[i].unicode();
diff --git a/src/gui/text/qfontengine_ft_p.h b/src/gui/text/qfontengine_ft_p.h
index e09fa6f94f..bd4c855b91 100644
--- a/src/gui/text/qfontengine_ft_p.h
+++ b/src/gui/text/qfontengine_ft_p.h
@@ -233,6 +233,8 @@ private:
virtual void getUnscaledGlyph(glyph_t glyph, QPainterPath *path, glyph_metrics_t *metrics);
+ virtual bool supportsTransformation(const QTransform &transform) const;
+
virtual bool canRender(const QChar *string, int len);
virtual void addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, int nglyphs,
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
index 1c7a61dca6..7aee9aa38a 100644
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
@@ -1185,6 +1185,22 @@ void QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError socket
case QAbstractSocket::SslHandshakeFailedError:
errorCode = QNetworkReply::SslHandshakeFailedError;
break;
+ case QAbstractSocket::ProxyConnectionClosedError:
+ // try to reconnect/resend before sending an error.
+ if (reconnectAttempts-- > 0) {
+ closeAndResendCurrentRequest();
+ return;
+ }
+ errorCode = QNetworkReply::ProxyConnectionClosedError;
+ break;
+ case QAbstractSocket::ProxyConnectionTimeoutError:
+ // try to reconnect/resend before sending an error.
+ if (reconnectAttempts-- > 0) {
+ closeAndResendCurrentRequest();
+ return;
+ }
+ errorCode = QNetworkReply::ProxyTimeoutError;
+ break;
default:
// all other errors are treated as NetworkError
errorCode = QNetworkReply::UnknownNetworkError;
diff --git a/src/network/kernel/qhostaddress.h b/src/network/kernel/qhostaddress.h
index 77a2ec4105..49032850be 100644
--- a/src/network/kernel/qhostaddress.h
+++ b/src/network/kernel/qhostaddress.h
@@ -64,6 +64,10 @@ public:
typedef QIPv6Address Q_IPV6ADDR;
+class QHostAddress;
+// qHash is a friend, but we can't use default arguments for friends (§8.3.6.4)
+Q_NETWORK_EXPORT uint qHash(const QHostAddress &key, uint seed = 0);
+
class Q_NETWORK_EXPORT QHostAddress
{
public:
@@ -121,7 +125,7 @@ public:
static QPair<QHostAddress, int> parseSubnet(const QString &subnet);
- friend Q_NETWORK_EXPORT uint qHash(const QHostAddress &key, uint seed = 0);
+ friend Q_NETWORK_EXPORT uint qHash(const QHostAddress &key, uint seed);
protected:
QScopedPointer<QHostAddressPrivate> d;
};
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index 4e198cf550..80660041b7 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -545,8 +545,10 @@ void QGL2PaintEngineEx::beginNativePainting()
d->funcs.glDisableVertexAttribArray(i);
#ifndef QT_OPENGL_ES_2
+ const QGLContext *ctx = d->ctx;
const QGLFormat &fmt = d->device->format();
if (fmt.majorVersion() < 3 || (fmt.majorVersion() == 3 && fmt.minorVersion() < 1)
+ || (fmt.majorVersion() == 3 && fmt.minorVersion() == 1 && ctx->contextHandle()->hasExtension(QByteArrayLiteral("GL_ARB_compatibility")))
|| fmt.profile() == QGLFormat::CompatibilityProfile)
{
// be nice to people who mix OpenGL 1.x code with QPainter commands
@@ -625,8 +627,28 @@ bool QGL2PaintEngineEx::isNativePaintingActive() const {
bool QGL2PaintEngineEx::shouldDrawCachedGlyphs(QFontEngine *fontEngine, const QTransform &t) const
{
- // Don't try to cache vastly transformed fonts
- return t.type() < QTransform::TxProject && QPaintEngineEx::shouldDrawCachedGlyphs(fontEngine, t);
+ // The paint engine does not support projected cached glyph drawing
+ if (t.type() == QTransform::TxProject)
+ return false;
+
+ // The font engine might not support filling the glyph cache
+ // with the given transform applied, in which case we need to
+ // fall back to the QPainterPath code-path.
+ if (!fontEngine->supportsTransformation(t)) {
+ // Except that drawing paths is slow, so for scales between
+ // 0.5 and 2.0 we leave the glyph cache untransformed and deal
+ // with the transform ourselves when painting, resulting in
+ // drawing 1x cached glyphs with a smooth-scale.
+ float det = t.determinant();
+ if (det >= 0.25f && det <= 4.f) {
+ // Assuming the baseclass still agrees
+ return QPaintEngineEx::shouldDrawCachedGlyphs(fontEngine, t);
+ }
+
+ return false; // Fall back to path-drawing
+ }
+
+ return QPaintEngineEx::shouldDrawCachedGlyphs(fontEngine, t);
}
void QGL2PaintEngineExPrivate::transferMode(EngineMode newMode)
@@ -1584,19 +1606,23 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp
void *cacheKey = const_cast<QGLContext *>(QGLContextPrivate::contextGroup(ctx)->context());
bool recreateVertexArrays = false;
- // We allow scaling, so that the glyph-cache will contain glyphs with the
- // appropriate resolution in the case of displays with a device-pixel-ratio != 1.
- QTransform transform = s->matrix.type() < QTransform::TxRotate ?
- QTransform::fromScale(qAbs(s->matrix.m11()), qAbs(s->matrix.m22())) :
- QTransform::fromScale(
- QVector2D(s->matrix.m11(), s->matrix.m12()).length(),
- QVector2D(s->matrix.m21(), s->matrix.m22()).length());
-
+ QTransform glyphCacheTransform;
QFontEngine *fe = staticTextItem->fontEngine();
+ if (fe->supportsTransformation(s->matrix)) {
+ // The font-engine supports rendering glyphs with the current transform, so we
+ // build a glyph-cache with the scale pre-applied, so that the cache contains
+ // glyphs with the appropriate resolution in the case of retina displays.
+ glyphCacheTransform = s->matrix.type() < QTransform::TxRotate ?
+ QTransform::fromScale(qAbs(s->matrix.m11()), qAbs(s->matrix.m22())) :
+ QTransform::fromScale(
+ QVector2D(s->matrix.m11(), s->matrix.m12()).length(),
+ QVector2D(s->matrix.m21(), s->matrix.m22()).length());
+ }
+
QGLTextureGlyphCache *cache =
- (QGLTextureGlyphCache *) fe->glyphCache(cacheKey, glyphType, transform);
+ (QGLTextureGlyphCache *) fe->glyphCache(cacheKey, glyphType, glyphCacheTransform);
if (!cache || cache->cacheType() != glyphType || cache->contextGroup() == 0) {
- cache = new QGLTextureGlyphCache(glyphType, transform);
+ cache = new QGLTextureGlyphCache(glyphType, glyphCacheTransform);
fe->setGlyphCache(cacheKey, cache);
recreateVertexArrays = true;
}
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
index f4cfa3ca40..1cc85bd0dc 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
@@ -250,45 +250,6 @@ static const char *languageForWritingSystem[] = {
};
enum { LanguageCount = sizeof(languageForWritingSystem) / sizeof(const char *) };
-// Unfortunately FontConfig doesn't know about some languages. We have to test these through the
-// charset. The lists below contain the systems where we need to do this.
-static const ushort sampleCharForWritingSystem[] = {
- 0, // Any
- 0, // Latin
- 0, // Greek
- 0, // Cyrillic
- 0, // Armenian
- 0, // Hebrew
- 0, // Arabic
- 0, // Syriac
- 0, // Thaana
- 0, // Devanagari
- 0, // Bengali
- 0, // Gurmukhi
- 0, // Gujarati
- 0, // Oriya
- 0, // Tamil
- 0xc15, // Telugu
- 0xc95, // Kannada
- 0xd15, // Malayalam
- 0xd9a, // Sinhala
- 0, // Thai
- 0, // Lao
- 0, // Tibetan
- 0x1000, // Myanmar
- 0, // Georgian
- 0, // Khmer
- 0, // SimplifiedChinese
- 0, // TraditionalChinese
- 0, // Japanese
- 0, // Korean
- 0, // Vietnamese
- 0, // Symbol
- 0x1681, // Ogham
- 0x16a0, // Runic
- 0x7ca // N'Ko
-};
-enum { SampleCharCount = sizeof(sampleCharForWritingSystem) / sizeof(ushort) };
// Newer FontConfig let's us sort out fonts that contain certain glyphs, but no
// open type tables for is directly. Do this so we don't pick some strange
@@ -356,26 +317,6 @@ static const char *getFcFamilyForStyleHint(const QFont::StyleHint style)
return stylehint;
}
-static bool isSymbolFont(FontFile *fontFile)
-{
- if (fontFile == 0 || fontFile->fileName.isEmpty())
- return false;
-
- QFontEngine::FaceId id;
- id.filename = QFile::encodeName(fontFile->fileName);
- id.index = fontFile->indexValue;
-
- QFreetypeFace *f = QFreetypeFace::getFace(id);
- if (f == 0) {
- qWarning("isSymbolFont: Couldn't open face %s/%d", id.filename.data(), id.index);
- return false;
- }
-
- bool hasSymbolMap = f->symbol_map;
- f->release(id);
- return hasSymbolMap;
-}
-
Q_GUI_EXPORT void qt_registerAliasToFontFamily(const QString &familyName, const QString &alias);
void QFontconfigDatabase::populateFontDatabase()
@@ -453,14 +394,20 @@ void QFontconfigDatabase::populateFontDatabase()
FcLangSet *langset = 0;
FcResult res = FcPatternGetLangSet(fonts->fonts[i], FC_LANG, 0, &langset);
if (res == FcResultMatch) {
+ bool hasLang = false;
for (int i = 1; i < LanguageCount; ++i) {
const FcChar8 *lang = (const FcChar8*) languageForWritingSystem[i];
if (lang) {
FcLangResult langRes = FcLangSetHasLang(langset, lang);
- if (langRes != FcLangDifferentLang)
+ if (langRes != FcLangDifferentLang) {
writingSystems.setSupported(QFontDatabase::WritingSystem(i));
+ hasLang = true;
+ }
}
}
+ if (!hasLang)
+ // none of our known languages, add it to the other set
+ writingSystems.setSupported(QFontDatabase::Other);
} else {
// we set Other to supported for symbol fonts. It makes no
// sense to merge these with other ones, as they are
@@ -468,18 +415,6 @@ void QFontconfigDatabase::populateFontDatabase()
writingSystems.setSupported(QFontDatabase::Other);
}
- FcCharSet *cs = 0;
- res = FcPatternGetCharSet(fonts->fonts[i], FC_CHARSET, 0, &cs);
- if (res == FcResultMatch) {
- // some languages are not supported by FontConfig, we rather check the
- // charset to detect these
- for (int i = 1; i < SampleCharCount; ++i) {
- if (!sampleCharForWritingSystem[i] || writingSystems.supported(QFontDatabase::WritingSystem(i)))
- continue;
- if (FcCharSetHasChar(cs, sampleCharForWritingSystem[i]))
- writingSystems.setSupported(QFontDatabase::WritingSystem(i));
- }
- }
#if FC_VERSION >= 20297
for (int j = 1; j < LanguageCount; ++j) {
@@ -497,23 +432,6 @@ void QFontconfigDatabase::populateFontDatabase()
fontFile->fileName = QLatin1String((const char *)file_value);
fontFile->indexValue = indexValue;
- if (!writingSystems.supported(QFontDatabase::Symbol)) {
- // Symbol encoding used to encode various crap in the 32..255 character
- // code range, which belongs to Latin character code range.
- // Symbol fonts usually don't have any other code ranges support.
- bool mightBeSymbolFont = true;
- for (int j = 2; j < QFontDatabase::WritingSystemsCount; ++j) {
- if (writingSystems.supported(QFontDatabase::WritingSystem(j))) {
- mightBeSymbolFont = false;
- break;
- }
- }
- if (mightBeSymbolFont && isSymbolFont(fontFile)) {
- writingSystems.setSupported(QFontDatabase::Latin, false);
- writingSystems.setSupported(QFontDatabase::Symbol);
- }
- }
-
QFont::Style style = (slant_value == FC_SLANT_ITALIC)
? QFont::StyleItalic
: ((slant_value == FC_SLANT_OBLIQUE)
diff --git a/src/plugins/accessible/widgets/complexwidgets.cpp b/src/plugins/accessible/widgets/complexwidgets.cpp
index 9dbf7d7e0f..819ef6923f 100644
--- a/src/plugins/accessible/widgets/complexwidgets.cpp
+++ b/src/plugins/accessible/widgets/complexwidgets.cpp
@@ -370,18 +370,6 @@ QStringList QAccessibleComboBox::keyBindingsForAction(const QString &/*actionNam
#endif // QT_NO_COMBOBOX
-static inline void removeInvisibleWidgetsFromList(QWidgetList *list)
-{
- if (!list || list->isEmpty())
- return;
-
- for (int i = 0; i < list->count(); ++i) {
- QWidget *widget = list->at(i);
- if (!widget->isVisible())
- list->removeAt(i);
- }
-}
-
#ifndef QT_NO_SCROLLAREA
// ======================= QAccessibleAbstractScrollArea =======================
QAccessibleAbstractScrollArea::QAccessibleAbstractScrollArea(QWidget *widget)
diff --git a/src/plugins/platforms/android/src/qandroidplatformintegration.cpp b/src/plugins/platforms/android/src/qandroidplatformintegration.cpp
index 03503ec632..8899d98795 100644
--- a/src/plugins/platforms/android/src/qandroidplatformintegration.cpp
+++ b/src/plugins/platforms/android/src/qandroidplatformintegration.cpp
@@ -220,6 +220,16 @@ QPlatformServices *QAndroidPlatformIntegration::services() const
return m_androidPlatformServices;
}
+QVariant QAndroidPlatformIntegration::styleHint(StyleHint hint) const
+{
+ switch (hint) {
+ case ShowIsFullScreen:
+ return true;
+ default:
+ return QPlatformIntegration::styleHint(hint);
+ }
+}
+
static const QLatin1String androidThemeName("android");
QStringList QAndroidPlatformIntegration::themeNames() const
{
diff --git a/src/plugins/platforms/android/src/qandroidplatformintegration.h b/src/plugins/platforms/android/src/qandroidplatformintegration.h
index 0e3a48c9f0..346d0c0953 100644
--- a/src/plugins/platforms/android/src/qandroidplatformintegration.h
+++ b/src/plugins/platforms/android/src/qandroidplatformintegration.h
@@ -113,6 +113,8 @@ public:
QPlatformNativeInterface *nativeInterface() const;
QPlatformServices *services() const;
+ QVariant styleHint(StyleHint hint) const;
+
QStringList themeNames() const;
QPlatformTheme *createPlatformTheme(const QString &name) const;
diff --git a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.h b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.h
index e30f1d7425..59e029769d 100644
--- a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.h
+++ b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.h
@@ -59,15 +59,6 @@ public:
void setCurrentColor(const QColor&);
QColor currentColor() const;
-
-public:
- bool showCocoaColorPanel(Qt::WindowModality windowModality, QWindow *parent);
- bool hideCocoaColorPanel();
-
- void createNSColorPanelDelegate();
-
-private:
- void *mDelegate;
};
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
index 13b4203f7f..d90d77ec1d 100644
--- a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
+++ b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
@@ -91,11 +91,14 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSColorPanelDelegate);
@implementation QNSColorPanelDelegate
-- (id)initWithDialogHelper:(QCocoaColorDialogHelper *)helper
+- (id)init
{
self = [super init];
mColorPanel = [NSColorPanel sharedColorPanel];
- mHelper = helper;
+ mHelper = 0;
+ mStolenContentView = 0;
+ mOkButton = 0;
+ mCancelButton = 0;
mResultCode = NSCancelButton;
mDialogIsExecuting = false;
mResultSet = false;
@@ -105,11 +108,31 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSColorPanelDelegate);
[mColorPanel setRestorable:NO];
#endif
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(colorChanged:)
+ name:NSColorPanelColorDidChangeNotification
+ object:mColorPanel];
+
+ [mColorPanel retain];
+ return self;
+}
+
+- (void)dealloc
+{
+ [self restoreOriginalContentView];
+ [mColorPanel setDelegate:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
+
+ [super dealloc];
+}
+
+- (void)setDialogHelper:(QCocoaColorDialogHelper *)helper
+{
+ mHelper = helper;
+ [mColorPanel setShowsAlpha:mHelper->options()->testOption(QColorDialogOptions::ShowAlphaChannel)];
if (mHelper->options()->testOption(QColorDialogOptions::NoButtons)) {
- mStolenContentView = 0;
- mOkButton = 0;
- mCancelButton = 0;
- } else {
+ [self restoreOriginalContentView];
+ } else if (!mStolenContentView) {
// steal the color panel's contents view
mStolenContentView = [mColorPanel contentView];
[mStolenContentView retain];
@@ -134,33 +157,6 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSColorPanelDelegate);
[mCancelButton setAction:@selector(onCancelClicked)];
[mCancelButton setTarget:self];
}
-
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(colorChanged:)
- name:NSColorPanelColorDidChangeNotification
- object:mColorPanel];
-
- [mColorPanel retain];
- return self;
-}
-
-- (void)dealloc
-{
- if (mOkButton) {
- NSView *ourContentView = [mColorPanel contentView];
-
- // return stolen stuff to its rightful owner
- [mStolenContentView removeFromSuperview];
- [mColorPanel setContentView:mStolenContentView];
- [mOkButton release];
- [mCancelButton release];
- [ourContentView release];
- }
-
- [mColorPanel setDelegate:nil];
- [[NSNotificationCenter defaultCenter] removeObserver:self];
-
- [super dealloc];
}
- (void)closePanel
@@ -178,7 +174,25 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSColorPanelDelegate);
{
Q_UNUSED(notification);
[self updateQtColor];
- emit mHelper->colorSelected(mQtColor);
+ if (mHelper)
+ emit mHelper->colorSelected(mQtColor);
+}
+
+- (void)restoreOriginalContentView
+{
+ if (mStolenContentView) {
+ NSView *ourContentView = [mColorPanel contentView];
+
+ // return stolen stuff to its rightful owner
+ [mStolenContentView removeFromSuperview];
+ [mColorPanel setContentView:mStolenContentView];
+ [mOkButton release];
+ [mCancelButton release];
+ [ourContentView release];
+ mOkButton = 0;
+ mCancelButton = 0;
+ mStolenContentView = 0;
+ }
}
- (void)relayout
@@ -275,7 +289,8 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSColorPanelDelegate);
mQtColor.setRgbF(red, green, blue, alpha);
}
}
- emit mHelper->currentColorChanged(mQtColor);
+ if (mHelper)
+ emit mHelper->currentColorChanged(mQtColor);
}
- (void)showModelessPanel
@@ -313,7 +328,8 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSColorPanelDelegate);
[self finishOffWithCode:NSCancelButton];
} else {
mResultSet = true;
- emit mHelper->reject();
+ if (mHelper)
+ emit mHelper->reject();
}
return true;
}
@@ -348,27 +364,101 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSColorPanelDelegate);
QT_BEGIN_NAMESPACE
-QCocoaColorDialogHelper::QCocoaColorDialogHelper() :
- mDelegate(0)
+class QCocoaColorPanel
+{
+public:
+ QCocoaColorPanel()
+ {
+ mDelegate = [[QT_MANGLE_NAMESPACE(QNSColorPanelDelegate) alloc] init];
+ }
+
+ ~QCocoaColorPanel()
+ {
+ [mDelegate release];
+ }
+
+ void init(QCocoaColorDialogHelper *helper)
+ {
+ [mDelegate setDialogHelper:helper];
+ }
+
+ void cleanup(QCocoaColorDialogHelper *helper)
+ {
+ if (mDelegate->mHelper == helper)
+ mDelegate->mHelper = 0;
+ }
+
+ bool exec()
+ {
+ // Note: If NSApp is not running (which is the case if e.g a top-most
+ // QEventLoop has been interrupted, and the second-most event loop has not
+ // yet been reactivated (regardless if [NSApp run] is still on the stack)),
+ // showing a native modal dialog will fail.
+ return [mDelegate runApplicationModalPanel];
+ }
+
+ bool show(Qt::WindowModality windowModality, QWindow *parent)
+ {
+ Q_UNUSED(parent);
+ if (windowModality != Qt::WindowModal)
+ [mDelegate showModelessPanel];
+ // no need to show a Qt::WindowModal dialog here, because it's necessary to call exec() in that case
+ return true;
+ }
+
+ void hide()
+ {
+ [mDelegate closePanel];
+ }
+
+ QColor currentColor() const
+ {
+ return mDelegate->mQtColor;
+ }
+
+ void setCurrentColor(const QColor &color)
+ {
+ // make sure that if ShowAlphaChannel option is set then also setShowsAlpha
+ // needs to be set, otherwise alpha value is omitted
+ if (color.alpha() < 255)
+ [mDelegate->mColorPanel setShowsAlpha:YES];
+
+ NSColor *nsColor;
+ const QColor::Spec spec = color.spec();
+ if (spec == QColor::Cmyk) {
+ nsColor = [NSColor colorWithDeviceCyan:color.cyanF()
+ magenta:color.magentaF()
+ yellow:color.yellowF()
+ black:color.blackF()
+ alpha:color.alphaF()];
+ } else {
+ nsColor = [NSColor colorWithCalibratedRed:color.redF()
+ green:color.greenF()
+ blue:color.blueF()
+ alpha:color.alphaF()];
+ }
+ mDelegate->mQtColor = color;
+ [mDelegate->mColorPanel setColor:nsColor];
+ }
+
+private:
+ QT_MANGLE_NAMESPACE(QNSColorPanelDelegate) *mDelegate;
+};
+
+Q_GLOBAL_STATIC(QCocoaColorPanel, sharedColorPanel)
+
+QCocoaColorDialogHelper::QCocoaColorDialogHelper()
{
}
QCocoaColorDialogHelper::~QCocoaColorDialogHelper()
{
- if (!mDelegate)
- return;
- [reinterpret_cast<QNSColorPanelDelegate *>(mDelegate) release];
- mDelegate = 0;
+ sharedColorPanel()->cleanup(this);
}
void QCocoaColorDialogHelper::exec()
{
- // Note: If NSApp is not running (which is the case if e.g a top-most
- // QEventLoop has been interrupted, and the second-most event loop has not
- // yet been reactivated (regardless if [NSApp run] is still on the stack)),
- // showing a native modal dialog will fail.
- QNSColorPanelDelegate *delegate = static_cast<QNSColorPanelDelegate *>(mDelegate);
- if ([delegate runApplicationModalPanel])
+ if (sharedColorPanel()->exec())
emit accept();
else
emit reject();
@@ -378,89 +468,24 @@ bool QCocoaColorDialogHelper::show(Qt::WindowFlags, Qt::WindowModality windowMod
{
if (windowModality == Qt::WindowModal)
windowModality = Qt::ApplicationModal;
- return showCocoaColorPanel(windowModality, parent);
+ sharedColorPanel()->init(this);
+ return sharedColorPanel()->show(windowModality, parent);
}
void QCocoaColorDialogHelper::hide()
{
- if (!mDelegate)
- return;
- QNSColorPanelDelegate *delegate = static_cast<QNSColorPanelDelegate *>(mDelegate);
- if (![delegate->mColorPanel isVisible])
- return;
- if (delegate->mDialogIsExecuting)
- [delegate->mColorPanel performClose:delegate];
- else
- [delegate->mColorPanel close];
+ sharedColorPanel()->hide();
}
void QCocoaColorDialogHelper::setCurrentColor(const QColor &color)
{
- if (!mDelegate)
- createNSColorPanelDelegate();
- QNSColorPanelDelegate *delegate = static_cast<QNSColorPanelDelegate *>(mDelegate);
-
- // make sure that if ShowAlphaChannel option is set then also setShowsAlpha
- // needs to be set, otherwise alpha value is omitted
- [delegate->mColorPanel setShowsAlpha:options()->testOption(QColorDialogOptions::ShowAlphaChannel)];
-
- NSColor *nsColor;
- const QColor::Spec spec = color.spec();
- if (spec == QColor::Cmyk) {
- nsColor = [NSColor colorWithDeviceCyan:color.cyanF()
- magenta:color.magentaF()
- yellow:color.yellowF()
- black:color.blackF()
- alpha:color.alphaF()];
- } else {
- nsColor = [NSColor colorWithCalibratedRed:color.redF()
- green:color.greenF()
- blue:color.blueF()
- alpha:color.alphaF()];
- }
- delegate->mQtColor = color;
- [delegate->mColorPanel setColor:nsColor];
+ sharedColorPanel()->init(this);
+ sharedColorPanel()->setCurrentColor(color);
}
QColor QCocoaColorDialogHelper::currentColor() const
{
- if (!mDelegate)
- return QColor();
- return reinterpret_cast<QNSColorPanelDelegate *>(mDelegate)->mQtColor;
-}
-
-void QCocoaColorDialogHelper::createNSColorPanelDelegate()
-{
- if (mDelegate)
- return;
-
- QNSColorPanelDelegate *delegate = [[QNSColorPanelDelegate alloc]
- initWithDialogHelper:this];
-
- mDelegate = delegate;
-}
-
-bool QCocoaColorDialogHelper::showCocoaColorPanel(Qt::WindowModality windowModality, QWindow *parent)
-{
- Q_UNUSED(parent);
- createNSColorPanelDelegate();
- QNSColorPanelDelegate *delegate = static_cast<QNSColorPanelDelegate *>(mDelegate);
- [delegate->mColorPanel setShowsAlpha:options()->testOption(QColorDialogOptions::ShowAlphaChannel)];
- if (windowModality != Qt::WindowModal)
- [delegate showModelessPanel];
- // no need to show a Qt::WindowModal dialog here, because it's necessary to call exec() in that case
- return true;
-}
-
-bool QCocoaColorDialogHelper::hideCocoaColorPanel()
-{
- if (!mDelegate){
- return false;
- } else {
- QNSColorPanelDelegate *delegate = static_cast<QNSColorPanelDelegate *>(mDelegate);
- [delegate closePanel];
- return true;
- }
+ return sharedColorPanel()->currentColor();
}
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/cocoa/qcocoahelpers.h b/src/plugins/platforms/cocoa/qcocoahelpers.h
index c801d9d926..3e402673f3 100644
--- a/src/plugins/platforms/cocoa/qcocoahelpers.h
+++ b/src/plugins/platforms/cocoa/qcocoahelpers.h
@@ -71,6 +71,7 @@ inline NSMutableArray *qt_mac_QStringListToNSMutableArray(const QStringList &qst
CGImageRef qt_mac_image_to_cgimage(const QImage &image);
NSImage *qt_mac_cgimage_to_nsimage(CGImageRef iamge);
NSImage *qt_mac_create_nsimage(const QPixmap &pm);
+NSImage *qt_mac_create_nsimage(const QIcon &icon);
NSSize qt_mac_toNSSize(const QSize &qtSize);
NSRect qt_mac_toNSRect(const QRect &rect);
diff --git a/src/plugins/platforms/cocoa/qcocoahelpers.mm b/src/plugins/platforms/cocoa/qcocoahelpers.mm
index 8ab1d9b579..3be294de7e 100644
--- a/src/plugins/platforms/cocoa/qcocoahelpers.mm
+++ b/src/plugins/platforms/cocoa/qcocoahelpers.mm
@@ -84,11 +84,8 @@ static void drawImageReleaseData (void *info, const void *, size_t)
CGImageRef qt_mac_image_to_cgimage(const QImage &img)
{
- if (img.width() <= 0 || img.height() <= 0) {
- qWarning() << Q_FUNC_INFO <<
- "trying to set" << img.width() << "x" << img.height() << "size for CGImage";
+ if (img.isNull())
return 0;
- }
QImage *image;
if (img.depth() != 32)
@@ -124,16 +121,7 @@ CGImageRef qt_mac_image_to_cgimage(const QImage &img)
NSImage *qt_mac_cgimage_to_nsimage(CGImageRef image)
{
- QCocoaAutoReleasePool pool;
- NSImage *newImage = 0;
- NSRect imageRect = NSMakeRect(0.0, 0.0, CGImageGetWidth(image), CGImageGetHeight(image));
- newImage = [[NSImage alloc] initWithSize:imageRect.size];
- [newImage lockFocus];
- {
- CGContextRef imageContext = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];
- CGContextDrawImage(imageContext, *(CGRect*)&imageRect, image);
- }
- [newImage unlockFocus];
+ NSImage *newImage = [[NSImage alloc] initWithCGImage:image size:NSZeroSize];
return newImage;
}
@@ -148,6 +136,24 @@ NSImage *qt_mac_create_nsimage(const QPixmap &pm)
return nsImage;
}
+NSImage *qt_mac_create_nsimage(const QIcon &icon)
+{
+ if (icon.isNull())
+ return nil;
+
+ NSImage *nsImage = [[NSImage alloc] init];
+ foreach (QSize size, icon.availableSizes()) {
+ QPixmap pm = icon.pixmap(size);
+ QImage image = pm.toImage();
+ CGImageRef cgImage = qt_mac_image_to_cgimage(image);
+ NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithCGImage:cgImage];
+ [nsImage addRepresentation:imageRep];
+ [imageRep release];
+ CGImageRelease(cgImage);
+ }
+ return nsImage;
+}
+
HIMutableShapeRef qt_mac_QRegionToHIMutableShape(const QRegion &region)
{
HIMutableShapeRef shape = HIShapeCreateMutable();
diff --git a/src/plugins/platforms/cocoa/qcocoamenu.mm b/src/plugins/platforms/cocoa/qcocoamenu.mm
index f6378d126f..8c4325a775 100644
--- a/src/plugins/platforms/cocoa/qcocoamenu.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenu.mm
@@ -49,6 +49,7 @@
#include <QtGui/private/qguiapplication_p.h>
#include "qcocoaapplication.h"
#include "qcocoamenuloader.h"
+#include "qcocoamenubar.h"
#include "qcocoawindow.h"
#import "qnsview.h"
@@ -540,6 +541,7 @@ void QCocoaMenu::syncModalState(bool modal)
void QCocoaMenu::setMenuBar(QCocoaMenuBar *menuBar)
{
m_menuBar = menuBar;
+ setParent(menuBar);
}
QCocoaMenuBar *QCocoaMenu::menuBar() const
diff --git a/src/plugins/platforms/cocoa/qcocoamenubar.mm b/src/plugins/platforms/cocoa/qcocoamenubar.mm
index 52bfdfa385..da2704f19c 100644
--- a/src/plugins/platforms/cocoa/qcocoamenubar.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenubar.mm
@@ -203,6 +203,11 @@ void QCocoaMenuBar::updateMenuBarImmediately()
QCocoaAutoReleasePool pool;
QCocoaMenuBar *mb = findGlobalMenubar();
QCocoaWindow *cw = findWindowForMenubar();
+
+ QWindow *win = cw ? cw->window() : 0;
+ if (win && (win->flags() & Qt::Popup) == Qt::Popup)
+ return; // context menus, comboboxes, etc. don't need to update the menubar
+
if (cw && cw->menubar())
mb = cw->menubar();
diff --git a/src/plugins/platforms/cocoa/qcocoamenuitem.mm b/src/plugins/platforms/cocoa/qcocoamenuitem.mm
index 4fb79f6c93..013f9931ff 100644
--- a/src/plugins/platforms/cocoa/qcocoamenuitem.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenuitem.mm
@@ -310,7 +310,8 @@ NSMenuItem *QCocoaMenuItem::sync()
}
if (!m_icon.isNull()) {
- NSImage *img = static_cast<NSImage *>(qt_mac_create_nsimage(m_icon.pixmap(16, QIcon::Normal)));
+ NSImage *img = qt_mac_create_nsimage(m_icon);
+ [img setSize:NSMakeSize(16, 16)];
[m_native setImage: img];
[img release];
}
diff --git a/src/plugins/platforms/cocoa/qcocoatheme.mm b/src/plugins/platforms/cocoa/qcocoatheme.mm
index 5a5b2bc51f..1484ae2ba3 100644
--- a/src/plugins/platforms/cocoa/qcocoatheme.mm
+++ b/src/plugins/platforms/cocoa/qcocoatheme.mm
@@ -260,8 +260,9 @@ QPixmap QCocoaTheme::fileIconPixmap(const QFileInfo &fileInfo, const QSizeF &siz
return QPixmap();
NSRect iconRect = NSMakeRect(0, 0, size.width(), size.height());
+ NSGraphicsContext *gc = [NSGraphicsContext currentContext];
CGImageRef cgImage = [iconImage CGImageForProposedRect:&iconRect
- context:[NSGraphicsContext currentContext]
+ context:([gc graphicsPort] ? gc : nil)
hints:nil];
QPixmap pixmap = QPixmap::fromImage(qt_mac_toQImage(cgImage));
return pixmap;
diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm
index 70b08c7feb..288d4b4742 100644
--- a/src/plugins/platforms/cocoa/qnsview.mm
+++ b/src/plugins/platforms/cocoa/qnsview.mm
@@ -916,6 +916,7 @@ static QTouchDevice *touchDevice = 0;
ulong timestamp = [nsevent timestamp] * 1000;
ulong nativeModifiers = [nsevent modifierFlags];
Qt::KeyboardModifiers modifiers = [QNSView convertKeyModifiers: nativeModifiers];
+ NSString *charactersIgnoringModifiers = [nsevent charactersIgnoringModifiers];
NSString *characters = [nsevent characters];
// There is no way to get the scan code from carbon/cocoa. But we cannot
@@ -927,7 +928,10 @@ static QTouchDevice *touchDevice = 0;
QChar ch = QChar::ReplacementCharacter;
int keyCode = Qt::Key_unknown;
if ([characters length] != 0) {
- ch = QChar([characters characterAtIndex:0]);
+ if ((modifiers & Qt::MetaModifier) && ([charactersIgnoringModifiers length] != 0))
+ ch = QChar([charactersIgnoringModifiers characterAtIndex:0]);
+ else
+ ch = QChar([characters characterAtIndex:0]);
keyCode = [self convertKeyCode:ch];
}
diff --git a/src/plugins/platforms/ios/qioscontext.mm b/src/plugins/platforms/ios/qioscontext.mm
index 07368f6ab6..85f560a722 100644
--- a/src/plugins/platforms/ios/qioscontext.mm
+++ b/src/plugins/platforms/ios/qioscontext.mm
@@ -190,8 +190,11 @@ void QIOSContext::windowDestroyed(QObject *object)
{
QWindow *window = static_cast<QWindow *>(object);
if (m_framebufferObjects.contains(window)) {
+ EAGLContext *originalContext = [EAGLContext currentContext];
+ [EAGLContext setCurrentContext:m_eaglContext];
deleteBuffers(m_framebufferObjects[window]);
m_framebufferObjects.remove(window);
+ [EAGLContext setCurrentContext:originalContext];
}
}
diff --git a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
index ce61a8b092..93592eb969 100644
--- a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
+++ b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
@@ -564,15 +564,10 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::accLocation(long *pxLeft, long
if (!accessible)
return E_FAIL;
- QRect rect;
- if (varID.lVal) {
- QAccessibleInterface *child = accessible->child(varID.lVal - 1);
- if (!child || !child->isValid())
- return E_FAIL;
- rect = child->rect();
- } else {
- rect = accessible->rect();
- }
+ QAccessibleInterface *acc = childPointer(accessible, varID);
+ if (!acc || !acc->isValid())
+ return E_FAIL;
+ const QRect rect = acc->rect();
*pxLeft = rect.x();
*pyTop = rect.y();
diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
index 12dd00f104..33bed61398 100644
--- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
@@ -2023,7 +2023,7 @@ void QWindowsNativeColorDialog::exec(HWND owner)
qCustomColors[c] = COLORREFToQColor(m_customColors[c]).rgb();
emit accepted();
if (QWindowsContext::verboseDialogs)
- qDebug() << '<' << __FUNCTION__ << m_color;
+ qDebug() << '<' << __FUNCTION__ << *m_color;
} else {
emit rejected();
}
@@ -2044,7 +2044,7 @@ void QWindowsNativeColorDialog::exec(HWND owner)
class QWindowsColorDialogHelper : public QWindowsDialogHelperBase<QPlatformColorDialogHelper>
{
public:
- QWindowsColorDialogHelper() {}
+ QWindowsColorDialogHelper() : m_currentColor(new QColor) {}
virtual bool supportsNonModalDialog()
{ return false; }
@@ -2064,6 +2064,8 @@ QWindowsNativeDialogBase *QWindowsColorDialogHelper::createNativeDialog()
{
QWindowsNativeColorDialog *nativeDialog = new QWindowsNativeColorDialog(m_currentColor);
nativeDialog->setWindowTitle(options()->windowTitle());
+ connect(nativeDialog, SIGNAL(accepted()), this, SIGNAL(accept()));
+ connect(nativeDialog, SIGNAL(rejected()), this, SIGNAL(reject()));
return nativeDialog;
}
#endif // USE_NATIVE_COLOR_DIALOG
@@ -2096,9 +2098,9 @@ QPlatformDialogHelper *createHelper(QPlatformTheme::DialogType type)
return 0;
switch (type) {
case QPlatformTheme::FileDialog:
-#ifndef Q_OS_WINCE
+#ifndef Q_OS_WINCE // Note: "Windows XP Professional x64 Edition has version number WV_5_2 (WV_2003).
if (QWindowsIntegration::instance()->options() & QWindowsIntegration::XpNativeDialogs
- || QSysInfo::windowsVersion() == QSysInfo::WV_XP) {
+ || QSysInfo::windowsVersion() <= QSysInfo::WV_2003) {
return new QWindowsXpFileDialogHelper();
}
if (QSysInfo::windowsVersion() > QSysInfo::WV_XP)
diff --git a/src/plugins/platforms/windows/qwindowsmousehandler.cpp b/src/plugins/platforms/windows/qwindowsmousehandler.cpp
index c6cfa4dbbc..43286eadf3 100644
--- a/src/plugins/platforms/windows/qwindowsmousehandler.cpp
+++ b/src/plugins/platforms/windows/qwindowsmousehandler.cpp
@@ -157,14 +157,19 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd,
QtWindows::WindowsEventType et,
MSG msg, LRESULT *result)
{
- enum { signatureMask = 0xffffff00, miWpSignature = 0xff515700 };
+#ifdef Q_COMPILER_CLASS_ENUM
+ enum : quint64 { signatureMask = 0xffffff00, miWpSignature = 0xff515700 };
+#else
+ static const quint64 signatureMask = 0xffffff00;
+ static const quint64 miWpSignature = 0xff515700;
+#endif // !Q_COMPILER_CLASS_ENUM
if (et == QtWindows::MouseWheelEvent)
return translateMouseWheelEvent(window, hwnd, msg, result);
#ifndef Q_OS_WINCE
// Check for events synthesized from touch. Lower byte is touch index, 0 means pen.
- const LPARAM extraInfo = GetMessageExtraInfo();
+ const quint64 extraInfo = GetMessageExtraInfo();
const bool fromTouch = (extraInfo & signatureMask) == miWpSignature && (extraInfo & 0xff);
if (fromTouch)
return false;
diff --git a/src/plugins/platforms/windows/qwindowsservices.cpp b/src/plugins/platforms/windows/qwindowsservices.cpp
index 250fea56b1..546957a043 100644
--- a/src/plugins/platforms/windows/qwindowsservices.cpp
+++ b/src/plugins/platforms/windows/qwindowsservices.cpp
@@ -39,6 +39,7 @@
**
****************************************************************************/
+#define QT_NO_URL_CAST_FROM_STRING
#include "qwindowsservices.h"
#include "qtwindows_additional.h"
@@ -55,19 +56,20 @@ QT_BEGIN_NAMESPACE
enum { debug = 0 };
-static inline bool shellExecute(const QString &file)
+static inline bool shellExecute(const QUrl &url)
{
#ifndef Q_OS_WINCE
- const QString nativeFilePath = QDir::toNativeSeparators(file);
+ const QString nativeFilePath =
+ url.isLocalFile() ? QDir::toNativeSeparators(url.toLocalFile()) : url.toString(QUrl::FullyEncoded);
const quintptr result = (quintptr)ShellExecute(0, 0, (wchar_t*)nativeFilePath.utf16(), 0, 0, SW_SHOWNORMAL);
// ShellExecute returns a value greater than 32 if successful
if (result <= 32) {
- qWarning("ShellExecute '%s' failed (error %s).", qPrintable(file), qPrintable(QString::number(result)));
+ qWarning("ShellExecute '%s' failed (error %s).", qPrintable(url.toString()), qPrintable(QString::number(result)));
return false;
}
return true;
#else
- Q_UNUSED(file)
+ Q_UNUSED(url);
return false;
#endif
}
@@ -131,7 +133,7 @@ static inline bool launchMail(const QUrl &url)
}
// Pass the url as the parameter. Should use QProcess::startDetached(),
// but that cannot handle a Windows command line [yet].
- command.replace(QStringLiteral("%1"), url.toString());
+ command.replace(QStringLiteral("%1"), url.toString(QUrl::FullyEncoded));
if (debug)
qDebug() << __FUNCTION__ << "Launching" << command;
//start the process
@@ -152,16 +154,14 @@ static inline bool launchMail(const QUrl &url)
bool QWindowsServices::openUrl(const QUrl &url)
{
const QString scheme = url.scheme();
- if (scheme.isEmpty())
- return openDocument(url);
if (scheme == QStringLiteral("mailto") && launchMail(url))
return true;
- return shellExecute(QLatin1String(url.toEncoded()));
+ return shellExecute(url);
}
bool QWindowsServices::openDocument(const QUrl &url)
{
- return shellExecute(url.isLocalFile() ? url.toLocalFile() : url.toString());
+ return shellExecute(url);
}
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp
index 08ff7123eb..c3ec949eef 100644
--- a/src/plugins/platforms/windows/qwindowswindow.cpp
+++ b/src/plugins/platforms/windows/qwindowswindow.cpp
@@ -845,7 +845,6 @@ QWindowsWindow::QWindowsWindow(QWindow *aWindow, const WindowData &data) :
QWindowsWindow::~QWindowsWindow()
{
#ifndef Q_OS_WINCE
- QWindowSystemInterface::flushWindowSystemEvents();
if (testFlag(TouchRegistered))
QWindowsContext::user32dll.unregisterTouchWindow(m_data.hwnd);
#endif // !Q_OS_WINCE
@@ -1390,9 +1389,22 @@ void QWindowsWindow::handleWindowStateChange(Qt::WindowState state)
setFlag(FrameDirty);
m_windowState = state;
QWindowSystemInterface::handleWindowStateChanged(window(), state);
- if (state == Qt::WindowMinimized) {
+ switch (state) {
+ case Qt::WindowMinimized:
handleHidden();
QWindowSystemInterface::flushWindowSystemEvents(); // Tell QQuickWindow to stop rendering now.
+ break;
+ case Qt::WindowNoState:
+ // QTBUG-17548: We send expose events when receiving WM_Paint, but for
+ // layered windows, we won't receive any WM_Paint.
+ if (GetWindowLongPtr(m_data.hwnd, GWL_EXSTYLE) & WS_EX_LAYERED) {
+ fireExpose(QRegion(0, 0, window()->width(), window()->height()));
+ if (!QWindowsContext::instance()->asyncExpose())
+ QWindowSystemInterface::flushWindowSystemEvents();
+ }
+ break;
+ default:
+ break;
}
}
diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.cpp b/src/plugins/platforms/xcb/qxcbkeyboard.cpp
index 751bd168f6..5fbc23c049 100644
--- a/src/plugins/platforms/xcb/qxcbkeyboard.cpp
+++ b/src/plugins/platforms/xcb/qxcbkeyboard.cpp
@@ -1043,6 +1043,10 @@ void QXcbKeyboard::updateVModMapping()
vmod_masks.meta = bit;
else if (qstrcmp(vmod_name, "AltGr") == 0)
vmod_masks.altgr = bit;
+ else if (qstrcmp(vmod_name, "Super") == 0)
+ vmod_masks.super = bit;
+ else if (qstrcmp(vmod_name, "Hyper") == 0)
+ vmod_masks.hyper = bit;
}
free(name_reply);
@@ -1104,9 +1108,14 @@ void QXcbKeyboard::updateVModToRModMapping()
rmod_masks.meta = modmap;
else if (vmod_masks.altgr == bit)
rmod_masks.altgr = modmap;
+ else if (vmod_masks.super == bit)
+ rmod_masks.super = modmap;
+ else if (vmod_masks.hyper == bit)
+ rmod_masks.hyper = modmap;
}
free(map_reply);
+ resolveMaskConflicts();
}
#else
void QXcbKeyboard::updateModifiers()
@@ -1131,7 +1140,8 @@ void QXcbKeyboard::updateModifiers()
// for Alt and Meta L and R are the same
static const xcb_keysym_t symbols[] = {
- XK_Alt_L, XK_Meta_L, XK_Mode_switch
+ XK_Alt_L, XK_Meta_L, XK_Mode_switch, XK_Super_L, XK_Super_R,
+ XK_Hyper_L, XK_Hyper_R
};
static const size_t numSymbols = sizeof symbols / sizeof *symbols;
@@ -1157,6 +1167,10 @@ void QXcbKeyboard::updateModifiers()
rmod_masks.meta = mask;
if (sym == XK_Mode_switch)
rmod_masks.altgr = mask;
+ if ((sym == XK_Super_L) || (sym == XK_Super_R))
+ rmod_masks.super = mask;
+ if ((sym == XK_Hyper_L) || (sym == XK_Hyper_R))
+ rmod_masks.hyper = mask;
}
}
}
@@ -1165,9 +1179,28 @@ void QXcbKeyboard::updateModifiers()
for (size_t i = 0; i < numSymbols; ++i)
free(modKeyCodes[i]);
free(modMapReply);
+ resolveMaskConflicts();
}
#endif
+void QXcbKeyboard::resolveMaskConflicts()
+{
+ // if we don't have a meta key (or it's hidden behind alt), use super or hyper to generate
+ // Qt::Key_Meta and Qt::MetaModifier, since most newer XFree86/Xorg installations map the Windows
+ // key to Super
+ if (rmod_masks.alt == rmod_masks.meta)
+ rmod_masks.meta = 0;
+
+ if (rmod_masks.meta == 0) {
+ // no meta keys... s/meta/super,
+ rmod_masks.meta = rmod_masks.super;
+ if (rmod_masks.meta == 0) {
+ // no super keys either? guess we'll use hyper then
+ rmod_masks.meta = rmod_masks.hyper;
+ }
+ }
+}
+
class KeyChecker
{
public:
diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.h b/src/plugins/platforms/xcb/qxcbkeyboard.h
index af6677c20f..770a7eabea 100644
--- a/src/plugins/platforms/xcb/qxcbkeyboard.h
+++ b/src/plugins/platforms/xcb/qxcbkeyboard.h
@@ -84,6 +84,7 @@ public:
protected:
void handleKeyEvent(QWindow *window, QEvent::Type type, xcb_keycode_t code, quint16 state, xcb_timestamp_t time);
+ void resolveMaskConflicts();
QString keysymToUnicode(xcb_keysym_t sym) const;
@@ -111,6 +112,8 @@ private:
uint alt;
uint altgr;
uint meta;
+ uint super;
+ uint hyper;
};
_mod_masks rmod_masks;
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index b9a2b0d37b..3a19788316 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -239,7 +239,7 @@ void QXcbWindow::create()
// XCB_CW_BACK_PIXMAP
XCB_NONE,
// XCB_CW_OVERRIDE_REDIRECT
- type == Qt::Popup || type == Qt::ToolTip,
+ type == Qt::Popup || type == Qt::ToolTip || (window()->flags() & Qt::BypassWindowManagerHint),
// XCB_CW_SAVE_UNDER
type == Qt::Popup || type == Qt::Tool || type == Qt::SplashScreen || type == Qt::ToolTip || type == Qt::Drawer,
// XCB_CW_EVENT_MASK
diff --git a/src/printsupport/kernel/qcups.cpp b/src/printsupport/kernel/qcups.cpp
index d2deee1db3..49a97e327c 100644
--- a/src/printsupport/kernel/qcups.cpp
+++ b/src/printsupport/kernel/qcups.cpp
@@ -478,15 +478,6 @@ static inline QPrinter::PaperSize string2PaperSize(const char *name)
return QPrinter::Custom;
}
-static inline const char *paperSize2String(QPrinter::PaperSize size)
-{
- for (int i = 0; i < QPrinter::NPageSize; ++i) {
- if (size == named_sizes_map[i].size)
- return named_sizes_map[i].name;
- }
- return 0;
-}
-
QList<QPrinter::PaperSize> QCUPSSupport::getCupsPrinterPaperSizes(int cupsPrinterIndex)
{
QList<QPrinter::PaperSize> result;
diff --git a/src/sql/drivers/psql/qsql_psql_p.h b/src/sql/drivers/psql/qsql_psql_p.h
index 5f4aa68b9e..d5dbda4058 100644
--- a/src/sql/drivers/psql/qsql_psql_p.h
+++ b/src/sql/drivers/psql/qsql_psql_p.h
@@ -119,7 +119,7 @@ public:
Version82 = 13,
Version83 = 14,
Version84 = 15,
- Version9 = 16,
+ Version9 = 16
};
explicit QPSQLDriver(QObject *parent=0);
diff --git a/src/sql/kernel/qsqlcachedresult.cpp b/src/sql/kernel/qsqlcachedresult.cpp
index 6456186bd2..2ec7e4e20f 100644
--- a/src/sql/kernel/qsqlcachedresult.cpp
+++ b/src/sql/kernel/qsqlcachedresult.cpp
@@ -253,7 +253,7 @@ QVariant QSqlCachedResult::data(int i)
bool QSqlCachedResult::isNull(int i)
{
int idx = d->forwardOnly ? i : at() * d->colCount + i;
- if (i > d->colCount || i < 0 || at() < 0 || idx >= d->rowCacheEnd)
+ if (i >= d->colCount || i < 0 || at() < 0 || idx >= d->rowCacheEnd)
return true;
return d->cache.at(idx).isNull();
diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp
index f3bfcc3144..fd1d2155fc 100644
--- a/src/tools/moc/moc.cpp
+++ b/src/tools/moc/moc.cpp
@@ -870,7 +870,12 @@ void Moc::generate(FILE *out)
findRequiredContainers(&classList[i], &requiredQtContainers);
}
- foreach (const QByteArray &qtContainer, requiredQtContainers) {
+ // after finding the containers, we sort them into a list to avoid
+ // non-deterministic behavior which may cause rebuilds unnecessarily.
+ QList<QByteArray> requiredContainerList = requiredQtContainers.toList();
+ std::sort(requiredContainerList.begin(), requiredContainerList.end());
+
+ foreach (const QByteArray &qtContainer, requiredContainerList) {
fprintf(out, "#include <QtCore/%s>\n", qtContainer.constData());
}
diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp
index 8afc1c749a..64c2e02a35 100644
--- a/src/tools/qdoc/htmlgenerator.cpp
+++ b/src/tools/qdoc/htmlgenerator.cpp
@@ -493,7 +493,7 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark
else if (atom->string() == "classes") {
generateCompactList(Generic, relative, qdb_->getCppClasses(), true);
}
- else if (atom->string() == "qmlclasses") {
+ else if (atom->string() == "qmltypes") {
generateCompactList(Generic, relative, qdb_->getQmlTypes(), true);
}
else if (atom->string().contains("classesbymodule")) {
diff --git a/src/widgets/dialogs/qcolordialog.cpp b/src/widgets/dialogs/qcolordialog.cpp
index 3d720e59e6..5da41aa0a5 100644
--- a/src/widgets/dialogs/qcolordialog.cpp
+++ b/src/widgets/dialogs/qcolordialog.cpp
@@ -136,6 +136,7 @@ public:
signals:
void selected(int row, int col);
+ void currentChanged(int row, int col);
protected:
virtual void paintCell(QPainter *, int row, int col, const QRect&);
@@ -311,6 +312,8 @@ void QWellArray::setCurrent(int row, int col)
updateCell(oldRow, oldCol);
updateCell(curRow, curCol);
+
+ emit currentChanged(curRow, curCol);
}
/*
@@ -344,6 +347,7 @@ void QWellArray::setSelected(int row, int col)
void QWellArray::focusInEvent(QFocusEvent*)
{
updateCell(curRow, curCol);
+ emit currentChanged(curRow, curCol);
}
void QWellArray::setCellBrush(int row, int col, const QBrush &b)
@@ -1493,11 +1497,15 @@ void QColorDialogPrivate::_q_newColorTypedIn(QRgb rgb)
}
}
+void QColorDialogPrivate::_q_nextCustom(int r, int c)
+{
+ nextCust = r + 2 * c;
+}
+
void QColorDialogPrivate::_q_newCustom(int r, int c)
{
const int i = r + 2 * c;
setCurrentColor(QColorDialogOptions::customColor(i));
- nextCust = i;
if (standard)
standard->setSelected(-1,-1);
}
@@ -1627,6 +1635,7 @@ void QColorDialogPrivate::initWidgets()
custom->setAcceptDrops(true);
q->connect(custom, SIGNAL(selected(int,int)), SLOT(_q_newCustom(int,int)));
+ q->connect(custom, SIGNAL(currentChanged(int,int)), SLOT(_q_nextCustom(int,int)));
lblCustomColors = new QLabel(q);
#ifndef QT_NO_SHORTCUT
lblCustomColors->setBuddy(custom);
diff --git a/src/widgets/dialogs/qcolordialog.h b/src/widgets/dialogs/qcolordialog.h
index e76a120c3a..c7a1d6f400 100644
--- a/src/widgets/dialogs/qcolordialog.h
+++ b/src/widgets/dialogs/qcolordialog.h
@@ -123,6 +123,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_addCustom())
Q_PRIVATE_SLOT(d_func(), void _q_newHsv(int h, int s, int v))
Q_PRIVATE_SLOT(d_func(), void _q_newColorTypedIn(QRgb rgb))
+ Q_PRIVATE_SLOT(d_func(), void _q_nextCustom(int, int))
Q_PRIVATE_SLOT(d_func(), void _q_newCustom(int, int))
Q_PRIVATE_SLOT(d_func(), void _q_newStandard(int, int))
Q_PRIVATE_SLOT(d_func(), void _q_pickScreenColor())
diff --git a/src/widgets/dialogs/qcolordialog_p.h b/src/widgets/dialogs/qcolordialog_p.h
index 71be0e61d3..08199cc7c1 100644
--- a/src/widgets/dialogs/qcolordialog_p.h
+++ b/src/widgets/dialogs/qcolordialog_p.h
@@ -100,6 +100,7 @@ public:
void _q_newHsv(int h, int s, int v);
void _q_newColorTypedIn(QRgb rgb);
+ void _q_nextCustom(int, int);
void _q_newCustom(int, int);
void _q_newStandard(int, int);
void _q_pickScreenColor();
diff --git a/src/widgets/effects/qgraphicseffect.cpp b/src/widgets/effects/qgraphicseffect.cpp
index ac873709e1..420392c0fb 100644
--- a/src/widgets/effects/qgraphicseffect.cpp
+++ b/src/widgets/effects/qgraphicseffect.cpp
@@ -864,8 +864,6 @@ void QGraphicsBlurEffect::draw(QPainter *painter)
}
PixmapPadMode mode = PadToEffectiveBoundingRect;
- if (painter->paintEngine()->type() == QPaintEngine::OpenGL2)
- mode = NoPad;
QPoint offset;
QPixmap pixmap = sourcePixmap(Qt::LogicalCoordinates, &offset, mode);
@@ -1057,8 +1055,6 @@ void QGraphicsDropShadowEffect::draw(QPainter *painter)
}
PixmapPadMode mode = PadToEffectiveBoundingRect;
- if (painter->paintEngine()->type() == QPaintEngine::OpenGL2)
- mode = NoPad;
// Draw pixmap in device coordinates to avoid pixmap scaling.
QPoint offset;
diff --git a/src/widgets/graphicsview/qgraphicsanchorlayout_p.cpp b/src/widgets/graphicsview/qgraphicsanchorlayout_p.cpp
index e281e4a7a3..93fb968d69 100644
--- a/src/widgets/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/widgets/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -661,20 +661,6 @@ Qt::AnchorPoint QGraphicsAnchorLayoutPrivate::oppositeEdge(Qt::AnchorPoint edge)
/*!
- * \internal
- *
- * helper function in order to avoid overflowing anchor sizes
- * the returned size will never be larger than FLT_MAX
- *
- */
-inline static qreal checkAdd(qreal a, qreal b)
-{
- if (FLT_MAX - b < a)
- return FLT_MAX;
- return a + b;
-}
-
-/*!
\internal
Adds \a newAnchor to the graph.
diff --git a/src/widgets/graphicsview/qgraphicsitem.cpp b/src/widgets/graphicsview/qgraphicsitem.cpp
index 668436c1a2..1c15905ff0 100644
--- a/src/widgets/graphicsview/qgraphicsitem.cpp
+++ b/src/widgets/graphicsview/qgraphicsitem.cpp
@@ -2741,7 +2741,7 @@ QGraphicsEffect *QGraphicsItem::graphicsEffect() const
the new \a effect. You can delete an existing effect by calling
setGraphicsEffect(0).
- If \a effect is the installed on a different item, setGraphicsEffect() will remove
+ If \a effect is the installed effect on a different item, setGraphicsEffect() will remove
the effect from the item and install it on this item.
QGraphicsItem takes ownership of \a effect.
diff --git a/src/widgets/graphicsview/qgraphicsscene.cpp b/src/widgets/graphicsview/qgraphicsscene.cpp
index 88cccb5118..394c24d671 100644
--- a/src/widgets/graphicsview/qgraphicsscene.cpp
+++ b/src/widgets/graphicsview/qgraphicsscene.cpp
@@ -1810,10 +1810,6 @@ void QGraphicsScene::render(QPainter *painter, const QRectF &target, const QRect
.translate(-sourceRect.left(), -sourceRect.top());
painter->setWorldTransform(painterTransform, true);
- // Two unit vectors.
- QLineF v1(0, 0, 1, 0);
- QLineF v2(0, 0, 0, 1);
-
// Generate the style options
QStyleOptionGraphicsItem *styleOptionArray = new QStyleOptionGraphicsItem[numItems];
for (int i = 0; i < numItems; ++i)
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp
index cb2eab8468..27a152b706 100644
--- a/src/widgets/kernel/qapplication.cpp
+++ b/src/widgets/kernel/qapplication.cpp
@@ -556,7 +556,7 @@ void QApplicationPrivate::construct()
eventDispatcher->startingUp();
#ifdef QT_EVAL
- extern void qt_gui_eval_init(uint);
+ extern void qt_gui_eval_init(QCoreApplicationPrivate::Type);
qt_gui_eval_init(application_type);
#endif
diff --git a/src/widgets/kernel/qapplication_qpa.cpp b/src/widgets/kernel/qapplication_qpa.cpp
index f6a8a3af3d..0fc065e74b 100644
--- a/src/widgets/kernel/qapplication_qpa.cpp
+++ b/src/widgets/kernel/qapplication_qpa.cpp
@@ -126,6 +126,8 @@ bool QApplicationPrivate::modalState()
QWidget *qt_tlw_for_window(QWindow *wnd)
{
+ while (wnd && !wnd->isTopLevel()) // QTBUG-32177, wnd might be a QQuickView embedded via window container.
+ wnd = wnd->parent();
if (wnd)
foreach (QWidget *tlw, qApp->topLevelWidgets())
if (tlw->windowHandle() == wnd)
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index 2d19175725..869362654c 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -4840,7 +4840,7 @@ QGraphicsEffect *QWidget::graphicsEffect() const
on this widget, QWidget will delete the existing effect before installing
the new \a effect.
- If \a effect is the installed on a different widget, setGraphicsEffect() will remove
+ If \a effect is the installed effect on a different widget, setGraphicsEffect() will remove
the effect from the widget and install it on this widget.
QWidget takes ownership of \a effect.
diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp
index dafe7dc42a..f0846bea6b 100644
--- a/src/widgets/kernel/qwidget_qpa.cpp
+++ b/src/widgets/kernel/qwidget_qpa.cpp
@@ -887,6 +887,10 @@ void QWidgetPrivate::deleteSysExtra()
}
+#ifdef Q_OS_WIN
+static const char activeXNativeParentHandleProperty[] = "_q_embedded_native_parent_handle";
+#endif
+
void QWidgetPrivate::createTLSysExtra()
{
Q_Q(QWidget);
@@ -897,6 +901,10 @@ void QWidgetPrivate::createTLSysExtra()
if (extra->maxw != QWIDGETSIZE_MAX || extra->maxh != QWIDGETSIZE_MAX)
extra->topextra->window->setMaximumSize(QSize(extra->maxw, extra->maxh));
#ifdef Q_OS_WIN
+ // Pass on native parent handle for Widget embedded into Active X.
+ const QVariant activeXNativeParentHandle = q->property(activeXNativeParentHandleProperty);
+ if (activeXNativeParentHandle.isValid())
+ extra->topextra->window->setProperty(activeXNativeParentHandleProperty, activeXNativeParentHandle);
if (q->inherits("QTipLabel") || q->inherits("QAlphaWidget"))
extra->topextra->window->setProperty("_q_windowsDropShadow", QVariant(true));
#endif
diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp
index 41046a1254..149a5c6674 100644
--- a/src/widgets/styles/qfusionstyle.cpp
+++ b/src/widgets/styles/qfusionstyle.cpp
@@ -1219,6 +1219,10 @@ void QFusionStyle::drawControl(ControlElement element, const QStyleOption *optio
- titleRect.bottom(),
r.top() + titleRect.left() - rect.left(),
titleRect.height(), titleRect.width());
+
+ painter->translate(r.left(), r.top() + r.width());
+ painter->rotate(-90);
+ painter->translate(-r.left(), -r.top());
}
if (!dwOpt->title.isEmpty()) {
diff --git a/src/widgets/util/qsystemtrayicon_x11.cpp b/src/widgets/util/qsystemtrayicon_x11.cpp
index e04656974d..5204b85a9a 100644
--- a/src/widgets/util/qsystemtrayicon_x11.cpp
+++ b/src/widgets/util/qsystemtrayicon_x11.cpp
@@ -153,16 +153,17 @@ private:
QSystemTrayIcon *q;
};
-QSystemTrayIconSys::QSystemTrayIconSys(QSystemTrayIcon *qIn) :
- q(qIn)
+QSystemTrayIconSys::QSystemTrayIconSys(QSystemTrayIcon *qIn)
+ : QWidget(0, Qt::Window | Qt::FramelessWindowHint | Qt::BypassWindowManagerHint)
+ , q(qIn)
{
+ setObjectName(QStringLiteral("QSystemTrayIconSys"));
setToolTip(q->toolTip());
QX11SystemTrayContext *context = qX11SystemTrayContext();
Q_ASSERT(context->isValid());
setAttribute(Qt::WA_AlwaysShowToolTips, true);
setAttribute(Qt::WA_TranslucentBackground, true);
setAttribute(Qt::WA_QuitOnClose, false);
- setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
const QSize size(22, 22); // Gnome, standard size
setGeometry(QRect(QPoint(0, 0), size));
setMinimumSize(size);
@@ -182,7 +183,6 @@ QSystemTrayIconSys::QSystemTrayIconSys(QSystemTrayIcon *qIn) :
ev.xclient.format = 32;
memcpy((char *)&ev.xclient.data, (const char *) l, sizeof(l));
XSendEvent(display, ev.xclient.window, False, 0, &ev);
- XSync(display, False);
show();
}
diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp
index 6424ee41f1..b89067155d 100644
--- a/src/widgets/widgets/qcombobox.cpp
+++ b/src/widgets/widgets/qcombobox.cpp
@@ -1136,10 +1136,9 @@ Qt::MatchFlags QComboBoxPrivate::matchFlags() const
void QComboBoxPrivate::_q_editingFinished()
{
Q_Q(QComboBox);
- if (lineEdit && !lineEdit->text().isEmpty()) {
- //here we just check if the current item was entered
+ if (lineEdit && !lineEdit->text().isEmpty() && itemText(currentIndex) != lineEdit->text()) {
const int index = q_func()->findText(lineEdit->text(), matchFlags());
- if (index != -1 && itemText(currentIndex) != lineEdit->text()) {
+ if (index != -1) {
q->setCurrentIndex(index);
emitActivated(currentIndex);
}
diff --git a/src/widgets/widgets/qdockarealayout.cpp b/src/widgets/widgets/qdockarealayout.cpp
index ca831f5a39..ac061e7071 100644
--- a/src/widgets/widgets/qdockarealayout.cpp
+++ b/src/widgets/widgets/qdockarealayout.cpp
@@ -2577,7 +2577,6 @@ void QDockAreaLayout::remove(const QList<int> &path)
docks[index].remove(path.mid(1));
}
-static inline int qMin(int i1, int i2, int i3) { return qMin(i1, qMin(i2, i3)); }
static inline int qMax(int i1, int i2, int i3) { return qMax(i1, qMax(i2, i3)); }
void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list,
diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp
index 7cc783fecc..4254ef2b27 100644
--- a/src/widgets/widgets/qlineedit.cpp
+++ b/src/widgets/widgets/qlineedit.cpp
@@ -1808,9 +1808,9 @@ void QLineEdit::paintEvent(QPaintEvent *)
col.setAlpha(128);
QPen oldpen = p.pen();
p.setPen(col);
- lineRect.adjust(minLB, 0, 0, 0);
- QString elidedText = fm.elidedText(d->placeholderText, Qt::ElideRight, lineRect.width());
- p.drawText(lineRect, va, elidedText);
+ QRect ph = lineRect.adjusted(minLB, 0, 0, 0);
+ QString elidedText = fm.elidedText(d->placeholderText, Qt::ElideRight, ph.width());
+ p.drawText(ph, va, elidedText);
p.setPen(oldpen);
}
}
diff --git a/src/widgets/widgets/qmainwindowlayout.cpp b/src/widgets/widgets/qmainwindowlayout.cpp
index cfeb0e2c67..92a1274d7c 100644
--- a/src/widgets/widgets/qmainwindowlayout.cpp
+++ b/src/widgets/widgets/qmainwindowlayout.cpp
@@ -1016,19 +1016,6 @@ void QMainWindowLayout::toggleToolBarsVisible()
#ifndef QT_NO_DOCKWIDGET
-static inline void validateDockWidgetArea(Qt::DockWidgetArea &area)
-{
- switch (area) {
- case Qt::LeftDockWidgetArea:
- case Qt::RightDockWidgetArea:
- case Qt::TopDockWidgetArea:
- case Qt::BottomDockWidgetArea:
- break;
- default:
- area = Qt::LeftDockWidgetArea;
- }
-}
-
static QInternal::DockPosition toDockPos(Qt::DockWidgetArea area)
{
switch (area) {
diff --git a/src/xml/doc/src/xml-processing.qdoc b/src/xml/doc/src/xml-processing.qdoc
index c7c3edeeb0..8f534fe7a0 100644
--- a/src/xml/doc/src/xml-processing.qdoc
+++ b/src/xml/doc/src/xml-processing.qdoc
@@ -233,7 +233,7 @@
{hasError()} can be used to check and view the errors.
An example of QXmlStreamReader implementation would be the \c XbelReader in
- \l{QXmlStream Bookmarks Example}, which is a subclass of QXmlStreamReader.
+ \l{QXmlStream Bookmarks Example}, which wraps a QXmlStreamReader.
The constructor takes \a treeWidget as a parameter and the class has Xbel
specific functions:
@@ -278,8 +278,8 @@
or subsequent calls to \l{QXmlStreamWriter::writeStartElement()}
{writeStartElement()}.
- The \c XbelWriter class from \l{QXmlStream Bookmarks Example} is a subclass
- of QXmlStreamWriter. Its \c writeFile() function illustrates the core
+ The \c XbelWriter class from \l{QXmlStream Bookmarks Example} wraps a
+ QXmlStreamWriter. Its \c writeFile() function illustrates the core
functions of QXmlStreamWriter mentioned above:
\snippet streambookmarks/xbelwriter.cpp 1
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 758d89ab72..e16f229c4e 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -14,7 +14,10 @@ SUBDIRS += \
other \
widgets \
printsupport \
- cmake
+ cmake \
+ installed_cmake
+
+installed_cmake.depends = cmake
wince*: SUBDIRS -= printsupport
cross_compile: SUBDIRS -= tools
diff --git a/tests/auto/bic/data/QtConcurrent.5.1.0.linux-gcc-ia32.txt b/tests/auto/bic/data/QtConcurrent.5.1.0.linux-gcc-ia32.txt
new file mode 100644
index 0000000000..f00403c366
--- /dev/null
+++ b/tests/auto/bic/data/QtConcurrent.5.1.0.linux-gcc-ia32.txt
@@ -0,0 +1,3509 @@
+Class std::__true_type
+ size=1 align=1
+ base size=0 base align=1
+std::__true_type (0xb726d620) 0 empty
+
+Class std::__false_type
+ size=1 align=1
+ base size=0 base align=1
+std::__false_type (0xb726d658) 0 empty
+
+Class std::input_iterator_tag
+ size=1 align=1
+ base size=0 base align=1
+std::input_iterator_tag (0xb5fa76c8) 0 empty
+
+Class std::output_iterator_tag
+ size=1 align=1
+ base size=0 base align=1
+std::output_iterator_tag (0xb5fa7700) 0 empty
+
+Class std::forward_iterator_tag
+ size=1 align=1
+ base size=1 base align=1
+std::forward_iterator_tag (0xb719ea50) 0 empty
+ std::input_iterator_tag (0xb5fa7738) 0 empty
+
+Class std::bidirectional_iterator_tag
+ size=1 align=1
+ base size=1 base align=1
+std::bidirectional_iterator_tag (0xb719ea8c) 0 empty
+ std::forward_iterator_tag (0xb719eac8) 0 empty
+ std::input_iterator_tag (0xb5fa7770) 0 empty
+
+Class std::random_access_iterator_tag
+ size=1 align=1
+ base size=1 base align=1
+std::random_access_iterator_tag (0xb719eb04) 0 empty
+ std::bidirectional_iterator_tag (0xb719eb40) 0 empty
+ std::forward_iterator_tag (0xb719eb7c) 0 empty
+ std::input_iterator_tag (0xb5fa77a8) 0 empty
+
+Class wait
+ size=4 align=4
+ base size=4 base align=4
+wait (0xb6009dc8) 0
+
+Class __locale_struct
+ size=116 align=4
+ base size=116 base align=4
+__locale_struct (0xb6009f18) 0
+
+Class timespec
+ size=8 align=4
+ base size=8 base align=4
+timespec (0xb6009fc0) 0
+
+Class timeval
+ size=8 align=4
+ base size=8 base align=4
+timeval (0xb6009a48) 0
+
+Class __pthread_internal_slist
+ size=4 align=4
+ base size=4 base align=4
+__pthread_internal_slist (0xb6052070) 0
+
+Class random_data
+ size=28 align=4
+ base size=28 base align=4
+random_data (0xb6052380) 0
+
+Class drand48_data
+ size=24 align=4
+ base size=24 base align=4
+drand48_data (0xb60523b8) 0
+
+Vtable for std::exception
+std::exception::_ZTVSt9exception: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTISt9exception)
+8 (int (*)(...))std::exception::~exception
+12 (int (*)(...))std::exception::~exception
+16 (int (*)(...))std::exception::what
+
+Class std::exception
+ size=4 align=4
+ base size=4 base align=4
+std::exception (0xb6052af0) 0 nearly-empty
+ vptr=((& std::exception::_ZTVSt9exception) + 8u)
+
+Vtable for std::bad_exception
+std::bad_exception::_ZTVSt13bad_exception: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTISt13bad_exception)
+8 (int (*)(...))std::bad_exception::~bad_exception
+12 (int (*)(...))std::bad_exception::~bad_exception
+16 (int (*)(...))std::bad_exception::what
+
+Class std::bad_exception
+ size=4 align=4
+ base size=4 base align=4
+std::bad_exception (0xb719ed98) 0 nearly-empty
+ vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 8u)
+ std::exception (0xb6052d20) 0 nearly-empty
+ primary-for std::bad_exception (0xb719ed98)
+
+Vtable for std::bad_alloc
+std::bad_alloc::_ZTVSt9bad_alloc: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTISt9bad_alloc)
+8 (int (*)(...))std::bad_alloc::~bad_alloc
+12 (int (*)(...))std::bad_alloc::~bad_alloc
+16 (int (*)(...))std::bad_alloc::what
+
+Class std::bad_alloc
+ size=4 align=4
+ base size=4 base align=4
+std::bad_alloc (0xb719edd4) 0 nearly-empty
+ vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 8u)
+ std::exception (0xb6052f50) 0 nearly-empty
+ primary-for std::bad_alloc (0xb719edd4)
+
+Class std::nothrow_t
+ size=1 align=1
+ base size=0 base align=1
+std::nothrow_t (0xb5ed30e0) 0 empty
+
+Class qIsNull(double)::U
+ size=8 align=4
+ base size=8 base align=4
+qIsNull(double)::U (0xb5db48f8) 0
+
+Class qIsNull(float)::U
+ size=4 align=4
+ base size=4 base align=4
+qIsNull(float)::U (0xb5db49a0) 0
+
+Class QAtomicInt
+ size=4 align=4
+ base size=4 base align=4
+QAtomicInt (0xb5f59564) 0
+ QBasicAtomicInteger<int> (0xb5e649a0) 0
+
+Class QMessageLogContext
+ size=20 align=4
+ base size=20 base align=4
+QMessageLogContext (0xb5e7b578) 0
+
+Class QMessageLogger
+ size=20 align=4
+ base size=20 base align=4
+QMessageLogger (0xb5e7bd58) 0
+
+Class QtPrivate::big_
+ size=2 align=1
+ base size=2 base align=1
+QtPrivate::big_ (0xb5cb42a0) 0
+
+Class QFlag
+ size=4 align=4
+ base size=4 base align=4
+QFlag (0xb5cffc08) 0
+
+Class QIncompatibleFlag
+ size=4 align=4
+ base size=4 base align=4
+QIncompatibleFlag (0xb5cfff88) 0
+
+Class QSysInfo
+ size=1 align=1
+ base size=0 base align=1
+QSysInfo (0xb5d097e0) 0 empty
+
+Class QInternal
+ size=1 align=1
+ base size=0 base align=1
+QInternal (0xb5c5f268) 0 empty
+
+Class QGenericArgument
+ size=8 align=4
+ base size=8 base align=4
+QGenericArgument (0xb5a9ec08) 0
+
+Class QGenericReturnArgument
+ size=8 align=4
+ base size=8 base align=4
+QGenericReturnArgument (0xb5bfe294) 0
+ QGenericArgument (0xb5ad7000) 0
+
+Class QMetaObject
+ size=24 align=4
+ base size=24 base align=4
+QMetaObject (0xb5ad73f0) 0
+
+Class QMetaObject::Connection
+ size=4 align=4
+ base size=4 base align=4
+QMetaObject::Connection (0xb5aea540) 0
+
+Class QLatin1Char
+ size=1 align=1
+ base size=1 base align=1
+QLatin1Char (0xb5aeaee0) 0
+
+Class QChar
+ size=2 align=2
+ base size=2 base align=2
+QChar (0xb5af5310) 0
+
+Class QtPrivate::RefCount
+ size=4 align=4
+ base size=4 base align=4
+QtPrivate::RefCount (0xb5b3c818) 0
+
+Class QArrayData
+ size=16 align=4
+ base size=16 base align=4
+QArrayData (0xb5b47268) 0
+
+Class QByteArrayDataPtr
+ size=4 align=4
+ base size=4 base align=4
+QByteArrayDataPtr (0xb59851f8) 0
+
+Class QByteArray
+ size=4 align=4
+ base size=4 base align=4
+QByteArray (0xb5985230) 0
+
+Class QByteRef
+ size=8 align=4
+ base size=8 base align=4
+QByteRef (0xb59ca9d8) 0
+
+Class lconv
+ size=56 align=4
+ base size=56 base align=4
+lconv (0xb5a42ee0) 0
+
+Vtable for __cxxabiv1::__forced_unwind
+__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE)
+8 (int (*)(...))__cxxabiv1::__forced_unwind::~__forced_unwind
+12 (int (*)(...))__cxxabiv1::__forced_unwind::~__forced_unwind
+16 (int (*)(...))__cxa_pure_virtual
+
+Class __cxxabiv1::__forced_unwind
+ size=4 align=4
+ base size=4 base align=4
+__cxxabiv1::__forced_unwind (0xb5a42f88) 0 nearly-empty
+ vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 8u)
+
+Class sched_param
+ size=4 align=4
+ base size=4 base align=4
+sched_param (0xb58bbf18) 0
+
+Class __sched_param
+ size=4 align=4
+ base size=4 base align=4
+__sched_param (0xb58bbf50) 0
+
+Class timex
+ size=128 align=4
+ base size=128 base align=4
+timex (0xb58bbfc0) 0
+
+Class tm
+ size=44 align=4
+ base size=44 base align=4
+tm (0xb58e5000) 0
+
+Class itimerspec
+ size=16 align=4
+ base size=16 base align=4
+itimerspec (0xb58e5070) 0
+
+Class _pthread_cleanup_buffer
+ size=16 align=4
+ base size=16 base align=4
+_pthread_cleanup_buffer (0xb58e50a8) 0
+
+Class __pthread_cleanup_frame
+ size=16 align=4
+ base size=16 base align=4
+__pthread_cleanup_frame (0xb58e5150) 0
+
+Class __pthread_cleanup_class
+ size=16 align=4
+ base size=16 base align=4
+__pthread_cleanup_class (0xb58e5188) 0
+
+Class QLatin1String
+ size=8 align=4
+ base size=8 base align=4
+QLatin1String (0xb57ee8f8) 0
+
+Class QStringDataPtr
+ size=4 align=4
+ base size=4 base align=4
+QStringDataPtr (0xb5691380) 0
+
+Class QString::Null
+ size=1 align=1
+ base size=0 base align=1
+QString::Null (0xb56d98f8) 0 empty
+
+Class QString
+ size=4 align=4
+ base size=4 base align=4
+QString (0xb56913b8) 0
+
+Class QCharRef
+ size=8 align=4
+ base size=8 base align=4
+QCharRef (0xb574aaf0) 0
+
+Class QStringRef
+ size=12 align=4
+ base size=12 base align=4
+QStringRef (0xb55cf9d8) 0
+
+Class std::locale
+ size=4 align=4
+ base size=4 base align=4
+std::locale (0xb5618c40) 0
+
+Vtable for std::locale::facet
+std::locale::facet::_ZTVNSt6locale5facetE: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTINSt6locale5facetE)
+8 (int (*)(...))std::locale::facet::~facet
+12 (int (*)(...))std::locale::facet::~facet
+
+Class std::locale::facet
+ size=8 align=4
+ base size=8 base align=4
+std::locale::facet (0xb5645f88) 0
+ vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 8u)
+
+Class std::locale::id
+ size=4 align=4
+ base size=4 base align=4
+std::locale::id (0xb5651658) 0
+
+Class std::locale::_Impl
+ size=20 align=4
+ base size=20 base align=4
+std::locale::_Impl (0xb5651968) 0
+
+Vtable for std::ios_base::failure
+std::ios_base::failure::_ZTVNSt8ios_base7failureE: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTINSt8ios_base7failureE)
+8 (int (*)(...))std::ios_base::failure::~failure
+12 (int (*)(...))std::ios_base::failure::~failure
+16 (int (*)(...))std::ios_base::failure::what
+
+Class std::ios_base::failure
+ size=8 align=4
+ base size=8 base align=4
+std::ios_base::failure (0xb56f8438) 0
+ vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureE) + 8u)
+ std::exception (0xb566a118) 0 nearly-empty
+ primary-for std::ios_base::failure (0xb56f8438)
+
+Class std::ios_base::_Callback_list
+ size=16 align=4
+ base size=16 base align=4
+std::ios_base::_Callback_list (0xb548ff88) 0
+
+Class std::ios_base::_Words
+ size=8 align=4
+ base size=8 base align=4
+std::ios_base::_Words (0xb54934d0) 0
+
+Class std::ios_base::Init
+ size=1 align=1
+ base size=0 base align=1
+std::ios_base::Init (0xb5493850) 0 empty
+
+Vtable for std::ios_base
+std::ios_base::_ZTVSt8ios_base: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTISt8ios_base)
+8 (int (*)(...))std::ios_base::~ios_base
+12 (int (*)(...))std::ios_base::~ios_base
+
+Class std::ios_base
+ size=112 align=4
+ base size=112 base align=4
+std::ios_base (0xb566afc0) 0
+ vptr=((& std::ios_base::_ZTVSt8ios_base) + 8u)
+
+Class std::ctype_base
+ size=1 align=1
+ base size=0 base align=1
+std::ctype_base (0xb54b2bd0) 0 empty
+
+Class std::__num_base
+ size=1 align=1
+ base size=0 base align=1
+std::__num_base (0xb5562e70) 0 empty
+
+VTT for std::basic_ostream<char>
+std::basic_ostream<char>::_ZTTSo: 2u entries
+0 ((& std::basic_ostream<char>::_ZTVSo) + 12u)
+4 ((& std::basic_ostream<char>::_ZTVSo) + 32u)
+
+VTT for std::basic_ostream<wchar_t>
+std::basic_ostream<wchar_t>::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2u entries
+0 ((& std::basic_ostream<wchar_t>::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 12u)
+4 ((& std::basic_ostream<wchar_t>::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 32u)
+
+VTT for std::basic_istream<char>
+std::basic_istream<char>::_ZTTSi: 2u entries
+0 ((& std::basic_istream<char>::_ZTVSi) + 12u)
+4 ((& std::basic_istream<char>::_ZTVSi) + 32u)
+
+VTT for std::basic_istream<wchar_t>
+std::basic_istream<wchar_t>::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2u entries
+0 ((& std::basic_istream<wchar_t>::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 12u)
+4 ((& std::basic_istream<wchar_t>::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 32u)
+
+Construction vtable for std::basic_istream<char> (0xb56f8fb4 instance) in std::basic_iostream<char>
+std::basic_iostream<char>::_ZTCSd0_Si: 10u entries
+0 12u
+4 (int (*)(...))0
+8 (int (*)(...))(& _ZTISi)
+12 (int (*)(...))std::basic_istream<_CharT, _Traits>::~basic_istream [with _CharT = char, _Traits = std::char_traits<char>]
+16 (int (*)(...))std::basic_istream<_CharT, _Traits>::~basic_istream [with _CharT = char, _Traits = std::char_traits<char>]
+20 4294967284u
+24 (int (*)(...))-0x0000000000000000c
+28 (int (*)(...))(& _ZTISi)
+32 (int (*)(...))std::basic_istream<char>::_ZTv0_n12_NSiD1Ev
+36 (int (*)(...))std::basic_istream<char>::_ZTv0_n12_NSiD0Ev
+
+Construction vtable for std::basic_ostream<char> (0xb534403c instance) in std::basic_iostream<char>
+std::basic_iostream<char>::_ZTCSd8_So: 10u entries
+0 4u
+4 (int (*)(...))0
+8 (int (*)(...))(& _ZTISo)
+12 (int (*)(...))std::basic_ostream<_CharT, _Traits>::~basic_ostream [with _CharT = char, _Traits = std::char_traits<char>]
+16 (int (*)(...))std::basic_ostream<_CharT, _Traits>::~basic_ostream [with _CharT = char, _Traits = std::char_traits<char>]
+20 4294967292u
+24 (int (*)(...))-0x00000000000000004
+28 (int (*)(...))(& _ZTISo)
+32 (int (*)(...))std::basic_ostream<char>::_ZTv0_n12_NSoD1Ev
+36 (int (*)(...))std::basic_ostream<char>::_ZTv0_n12_NSoD0Ev
+
+VTT for std::basic_iostream<char>
+std::basic_iostream<char>::_ZTTSd: 7u entries
+0 ((& std::basic_iostream<char>::_ZTVSd) + 12u)
+4 ((& std::basic_iostream<char>::_ZTCSd0_Si) + 12u)
+8 ((& std::basic_iostream<char>::_ZTCSd0_Si) + 32u)
+12 ((& std::basic_iostream<char>::_ZTCSd8_So) + 12u)
+16 ((& std::basic_iostream<char>::_ZTCSd8_So) + 32u)
+20 ((& std::basic_iostream<char>::_ZTVSd) + 52u)
+24 ((& std::basic_iostream<char>::_ZTVSd) + 32u)
+
+Construction vtable for std::basic_istream<wchar_t> (0xb5344078 instance) in std::basic_iostream<wchar_t>
+std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10u entries
+0 12u
+4 (int (*)(...))0
+8 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE)
+12 (int (*)(...))std::basic_istream<_CharT, _Traits>::~basic_istream [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]
+16 (int (*)(...))std::basic_istream<_CharT, _Traits>::~basic_istream [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]
+20 4294967284u
+24 (int (*)(...))-0x0000000000000000c
+28 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE)
+32 (int (*)(...))std::basic_istream<wchar_t>::_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev
+36 (int (*)(...))std::basic_istream<wchar_t>::_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev
+
+Construction vtable for std::basic_ostream<wchar_t> (0xb53440f0 instance) in std::basic_iostream<wchar_t>
+std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE8_St13basic_ostreamIwS1_E: 10u entries
+0 4u
+4 (int (*)(...))0
+8 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE)
+12 (int (*)(...))std::basic_ostream<_CharT, _Traits>::~basic_ostream [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]
+16 (int (*)(...))std::basic_ostream<_CharT, _Traits>::~basic_ostream [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]
+20 4294967292u
+24 (int (*)(...))-0x00000000000000004
+28 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE)
+32 (int (*)(...))std::basic_ostream<wchar_t>::_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev
+36 (int (*)(...))std::basic_ostream<wchar_t>::_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev
+
+VTT for std::basic_iostream<wchar_t>
+std::basic_iostream<wchar_t>::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7u entries
+0 ((& std::basic_iostream<wchar_t>::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 12u)
+4 ((& std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 12u)
+8 ((& std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 32u)
+12 ((& std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE8_St13basic_ostreamIwS1_E) + 12u)
+16 ((& std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE8_St13basic_ostreamIwS1_E) + 32u)
+20 ((& std::basic_iostream<wchar_t>::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 52u)
+24 ((& std::basic_iostream<wchar_t>::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 32u)
+
+Class std::__detail::_List_node_base
+ size=8 align=4
+ base size=8 base align=4
+std::__detail::_List_node_base (0xb53457e0) 0
+
+Class QListData::Data
+ size=20 align=4
+ base size=20 base align=4
+QListData::Data (0xb51ba0e0) 0
+
+Class QListData
+ size=4 align=4
+ base size=4 base align=4
+QListData (0xb51ba0a8) 0
+
+Class QScopedPointerPodDeleter
+ size=1 align=1
+ base size=0 base align=1
+QScopedPointerPodDeleter (0xb524c3b8) 0 empty
+
+Class QMetaType
+ size=48 align=4
+ base size=48 base align=4
+QMetaType (0xb50816c8) 0
+
+Class QtPrivate::QSlotObjectBase
+ size=8 align=4
+ base size=8 base align=4
+QtPrivate::QSlotObjectBase (0xb4f7fa48) 0
+
+Vtable for QObjectData
+QObjectData::_ZTV11QObjectData: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QObjectData)
+8 (int (*)(...))__cxa_pure_virtual
+12 (int (*)(...))__cxa_pure_virtual
+
+Class QObjectData
+ size=28 align=4
+ base size=28 base align=4
+QObjectData (0xb4fa09a0) 0
+ vptr=((& QObjectData::_ZTV11QObjectData) + 8u)
+
+Class QObject::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QObject::QPrivateSignal (0xb4fa0c08) 0 empty
+
+Vtable for QObject
+QObject::_ZTV7QObject: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI7QObject)
+8 (int (*)(...))QObject::metaObject
+12 (int (*)(...))QObject::qt_metacast
+16 (int (*)(...))QObject::qt_metacall
+20 (int (*)(...))QObject::~QObject
+24 (int (*)(...))QObject::~QObject
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QObject
+ size=8 align=4
+ base size=8 base align=4
+QObject (0xb4fa0b28) 0
+ vptr=((& QObject::_ZTV7QObject) + 8u)
+
+Vtable for QObjectUserData
+QObjectUserData::_ZTV15QObjectUserData: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI15QObjectUserData)
+8 (int (*)(...))QObjectUserData::~QObjectUserData
+12 (int (*)(...))QObjectUserData::~QObjectUserData
+
+Class QObjectUserData
+ size=4 align=4
+ base size=4 base align=4
+QObjectUserData (0xb4fe4cb0) 0 nearly-empty
+ vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 8u)
+
+Class QAbstractAnimation::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractAnimation::QPrivateSignal (0xb4fe4fc0) 0 empty
+
+Vtable for QAbstractAnimation
+QAbstractAnimation::_ZTV18QAbstractAnimation: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QAbstractAnimation)
+8 (int (*)(...))QAbstractAnimation::metaObject
+12 (int (*)(...))QAbstractAnimation::qt_metacast
+16 (int (*)(...))QAbstractAnimation::qt_metacall
+20 (int (*)(...))QAbstractAnimation::~QAbstractAnimation
+24 (int (*)(...))QAbstractAnimation::~QAbstractAnimation
+28 (int (*)(...))QAbstractAnimation::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+64 (int (*)(...))QAbstractAnimation::updateState
+68 (int (*)(...))QAbstractAnimation::updateDirection
+
+Class QAbstractAnimation
+ size=8 align=4
+ base size=8 base align=4
+QAbstractAnimation (0xb5344690) 0
+ vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 8u)
+ QObject (0xb4fe4ee0) 0
+ primary-for QAbstractAnimation (0xb5344690)
+
+Class QAnimationDriver::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAnimationDriver::QPrivateSignal (0xb5006e70) 0 empty
+
+Vtable for QAnimationDriver
+QAnimationDriver::_ZTV16QAnimationDriver: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI16QAnimationDriver)
+8 (int (*)(...))QAnimationDriver::metaObject
+12 (int (*)(...))QAnimationDriver::qt_metacast
+16 (int (*)(...))QAnimationDriver::qt_metacall
+20 (int (*)(...))QAnimationDriver::~QAnimationDriver
+24 (int (*)(...))QAnimationDriver::~QAnimationDriver
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QAnimationDriver::advance
+60 (int (*)(...))QAnimationDriver::elapsed
+64 (int (*)(...))QAnimationDriver::start
+68 (int (*)(...))QAnimationDriver::stop
+
+Class QAnimationDriver
+ size=8 align=4
+ base size=8 base align=4
+QAnimationDriver (0xb53446cc) 0
+ vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 8u)
+ QObject (0xb5006d90) 0
+ primary-for QAnimationDriver (0xb53446cc)
+
+Class QAnimationGroup::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAnimationGroup::QPrivateSignal (0xb5019460) 0 empty
+
+Vtable for QAnimationGroup
+QAnimationGroup::_ZTV15QAnimationGroup: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI15QAnimationGroup)
+8 (int (*)(...))QAnimationGroup::metaObject
+12 (int (*)(...))QAnimationGroup::qt_metacast
+16 (int (*)(...))QAnimationGroup::qt_metacall
+20 (int (*)(...))QAnimationGroup::~QAnimationGroup
+24 (int (*)(...))QAnimationGroup::~QAnimationGroup
+28 (int (*)(...))QAnimationGroup::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+64 (int (*)(...))QAbstractAnimation::updateState
+68 (int (*)(...))QAbstractAnimation::updateDirection
+
+Class QAnimationGroup
+ size=8 align=4
+ base size=8 base align=4
+QAnimationGroup (0xb5344708) 0
+ vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 8u)
+ QAbstractAnimation (0xb5344744) 0
+ primary-for QAnimationGroup (0xb5344708)
+ QObject (0xb5019380) 0
+ primary-for QAbstractAnimation (0xb5344744)
+
+Class QParallelAnimationGroup::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QParallelAnimationGroup::QPrivateSignal (0xb5019f18) 0 empty
+
+Vtable for QParallelAnimationGroup
+QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI23QParallelAnimationGroup)
+8 (int (*)(...))QParallelAnimationGroup::metaObject
+12 (int (*)(...))QParallelAnimationGroup::qt_metacast
+16 (int (*)(...))QParallelAnimationGroup::qt_metacall
+20 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup
+24 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup
+28 (int (*)(...))QParallelAnimationGroup::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QParallelAnimationGroup::duration
+60 (int (*)(...))QParallelAnimationGroup::updateCurrentTime
+64 (int (*)(...))QParallelAnimationGroup::updateState
+68 (int (*)(...))QParallelAnimationGroup::updateDirection
+
+Class QParallelAnimationGroup
+ size=8 align=4
+ base size=8 base align=4
+QParallelAnimationGroup (0xb5344780) 0
+ vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 8u)
+ QAnimationGroup (0xb53447bc) 0
+ primary-for QParallelAnimationGroup (0xb5344780)
+ QAbstractAnimation (0xb53447f8) 0
+ primary-for QAnimationGroup (0xb53447bc)
+ QObject (0xb5019e38) 0
+ primary-for QAbstractAnimation (0xb53447f8)
+
+Class QPauseAnimation::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QPauseAnimation::QPrivateSignal (0xb5029968) 0 empty
+
+Vtable for QPauseAnimation
+QPauseAnimation::_ZTV15QPauseAnimation: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI15QPauseAnimation)
+8 (int (*)(...))QPauseAnimation::metaObject
+12 (int (*)(...))QPauseAnimation::qt_metacast
+16 (int (*)(...))QPauseAnimation::qt_metacall
+20 (int (*)(...))QPauseAnimation::~QPauseAnimation
+24 (int (*)(...))QPauseAnimation::~QPauseAnimation
+28 (int (*)(...))QPauseAnimation::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QPauseAnimation::duration
+60 (int (*)(...))QPauseAnimation::updateCurrentTime
+64 (int (*)(...))QAbstractAnimation::updateState
+68 (int (*)(...))QAbstractAnimation::updateDirection
+
+Class QPauseAnimation
+ size=8 align=4
+ base size=8 base align=4
+QPauseAnimation (0xb5344834) 0
+ vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 8u)
+ QAbstractAnimation (0xb5344870) 0
+ primary-for QPauseAnimation (0xb5344834)
+ QObject (0xb5029888) 0
+ primary-for QAbstractAnimation (0xb5344870)
+
+Class std::_Bit_reference
+ size=8 align=4
+ base size=8 base align=4
+std::_Bit_reference (0xb4e78620) 0
+
+Class std::_Bit_iterator_base
+ size=8 align=4
+ base size=8 base align=4
+std::_Bit_iterator_base (0xb5344924) 0
+ std::iterator<std::random_access_iterator_tag, bool> (0xb4e8b4d0) 0 empty
+
+Class std::_Bit_iterator
+ size=8 align=4
+ base size=8 base align=4
+std::_Bit_iterator (0xb5344a14) 0
+ std::_Bit_iterator_base (0xb5344a50) 0
+ std::iterator<std::random_access_iterator_tag, bool> (0xb4e95b60) 0 empty
+
+Class std::_Bit_const_iterator
+ size=8 align=4
+ base size=8 base align=4
+std::_Bit_const_iterator (0xb5344a8c) 0
+ std::_Bit_iterator_base (0xb5344ac8) 0
+ std::iterator<std::random_access_iterator_tag, bool> (0xb4ea2540) 0 empty
+
+Class QEasingCurve
+ size=4 align=4
+ base size=4 base align=4
+QEasingCurve (0xb4d84428) 0
+
+Class std::_Rb_tree_node_base
+ size=16 align=4
+ base size=16 base align=4
+std::_Rb_tree_node_base (0xb4d972a0) 0
+
+Class QMapNodeBase
+ size=12 align=4
+ base size=12 base align=4
+QMapNodeBase (0xb4e3cc08) 0
+
+Class QMapDataBase
+ size=24 align=4
+ base size=24 base align=4
+QMapDataBase (0xb4c674d0) 0
+
+Class QHashData::Node
+ size=8 align=4
+ base size=8 base align=4
+QHashData::Node (0xb4ce4f18) 0
+
+Class QHashData
+ size=36 align=4
+ base size=36 base align=4
+QHashData (0xb4ce4ee0) 0
+
+Class QHashDummyValue
+ size=1 align=1
+ base size=0 base align=1
+QHashDummyValue (0xb4d0e348) 0 empty
+
+Class QVariant::PrivateShared
+ size=8 align=4
+ base size=8 base align=4
+QVariant::PrivateShared (0xb4ba0af0) 0
+
+Class QVariant::Private::Data
+ size=8 align=4
+ base size=8 base align=4
+QVariant::Private::Data (0xb4ba0cb0) 0
+
+Class QVariant::Private
+ size=12 align=4
+ base size=12 base align=4
+QVariant::Private (0xb4ba0b60) 0
+
+Class QVariant::Handler
+ size=36 align=4
+ base size=36 base align=4
+QVariant::Handler (0xb4bae2a0) 0
+
+Class QVariant
+ size=12 align=4
+ base size=12 base align=4
+QVariant (0xb4b7f770) 0
+
+Class QVariantComparisonHelper
+ size=4 align=4
+ base size=4 base align=4
+QVariantComparisonHelper (0xb4bdc7a8) 0
+
+Class QVariantAnimation::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QVariantAnimation::QPrivateSignal (0xb4c13038) 0 empty
+
+Vtable for QVariantAnimation
+QVariantAnimation::_ZTV17QVariantAnimation: 20u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI17QVariantAnimation)
+8 (int (*)(...))QVariantAnimation::metaObject
+12 (int (*)(...))QVariantAnimation::qt_metacast
+16 (int (*)(...))QVariantAnimation::qt_metacall
+20 (int (*)(...))QVariantAnimation::~QVariantAnimation
+24 (int (*)(...))QVariantAnimation::~QVariantAnimation
+28 (int (*)(...))QVariantAnimation::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QVariantAnimation::duration
+60 (int (*)(...))QVariantAnimation::updateCurrentTime
+64 (int (*)(...))QVariantAnimation::updateState
+68 (int (*)(...))QAbstractAnimation::updateDirection
+72 (int (*)(...))QVariantAnimation::updateCurrentValue
+76 (int (*)(...))QVariantAnimation::interpolated
+
+Class QVariantAnimation
+ size=8 align=4
+ base size=8 base align=4
+QVariantAnimation (0xb5344f3c) 0
+ vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 8u)
+ QAbstractAnimation (0xb5344f78) 0
+ primary-for QVariantAnimation (0xb5344f3c)
+ QObject (0xb4bdcf50) 0
+ primary-for QAbstractAnimation (0xb5344f78)
+
+Class QPropertyAnimation::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QPropertyAnimation::QPrivateSignal (0xb4c13d20) 0 empty
+
+Vtable for QPropertyAnimation
+QPropertyAnimation::_ZTV18QPropertyAnimation: 20u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QPropertyAnimation)
+8 (int (*)(...))QPropertyAnimation::metaObject
+12 (int (*)(...))QPropertyAnimation::qt_metacast
+16 (int (*)(...))QPropertyAnimation::qt_metacall
+20 (int (*)(...))QPropertyAnimation::~QPropertyAnimation
+24 (int (*)(...))QPropertyAnimation::~QPropertyAnimation
+28 (int (*)(...))QPropertyAnimation::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QVariantAnimation::duration
+60 (int (*)(...))QVariantAnimation::updateCurrentTime
+64 (int (*)(...))QPropertyAnimation::updateState
+68 (int (*)(...))QAbstractAnimation::updateDirection
+72 (int (*)(...))QPropertyAnimation::updateCurrentValue
+76 (int (*)(...))QVariantAnimation::interpolated
+
+Class QPropertyAnimation
+ size=8 align=4
+ base size=8 base align=4
+QPropertyAnimation (0xb5344fb4) 0
+ vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 8u)
+ QVariantAnimation (0xb4c22000) 0
+ primary-for QPropertyAnimation (0xb5344fb4)
+ QAbstractAnimation (0xb4c2203c) 0
+ primary-for QVariantAnimation (0xb4c22000)
+ QObject (0xb4c13c40) 0
+ primary-for QAbstractAnimation (0xb4c2203c)
+
+Class QSequentialAnimationGroup::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSequentialAnimationGroup::QPrivateSignal (0xb4c27818) 0 empty
+
+Vtable for QSequentialAnimationGroup
+QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI25QSequentialAnimationGroup)
+8 (int (*)(...))QSequentialAnimationGroup::metaObject
+12 (int (*)(...))QSequentialAnimationGroup::qt_metacast
+16 (int (*)(...))QSequentialAnimationGroup::qt_metacall
+20 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup
+24 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup
+28 (int (*)(...))QSequentialAnimationGroup::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QSequentialAnimationGroup::duration
+60 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime
+64 (int (*)(...))QSequentialAnimationGroup::updateState
+68 (int (*)(...))QSequentialAnimationGroup::updateDirection
+
+Class QSequentialAnimationGroup
+ size=8 align=4
+ base size=8 base align=4
+QSequentialAnimationGroup (0xb4c22078) 0
+ vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 8u)
+ QAnimationGroup (0xb4c220b4) 0
+ primary-for QSequentialAnimationGroup (0xb4c22078)
+ QAbstractAnimation (0xb4c220f0) 0
+ primary-for QAnimationGroup (0xb4c220b4)
+ QObject (0xb4c27738) 0
+ primary-for QAbstractAnimation (0xb4c220f0)
+
+Class QTextCodec::ConverterState
+ size=28 align=4
+ base size=28 base align=4
+QTextCodec::ConverterState (0xb4c35c08) 0
+
+Vtable for QTextCodec
+QTextCodec::_ZTV10QTextCodec: 9u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI10QTextCodec)
+8 (int (*)(...))__cxa_pure_virtual
+12 (int (*)(...))QTextCodec::aliases
+16 (int (*)(...))__cxa_pure_virtual
+20 (int (*)(...))__cxa_pure_virtual
+24 (int (*)(...))__cxa_pure_virtual
+28 (int (*)(...))QTextCodec::~QTextCodec
+32 (int (*)(...))QTextCodec::~QTextCodec
+
+Class QTextCodec
+ size=4 align=4
+ base size=4 base align=4
+QTextCodec (0xb4c35230) 0 nearly-empty
+ vptr=((& QTextCodec::_ZTV10QTextCodec) + 8u)
+
+Class QTextEncoder
+ size=32 align=4
+ base size=32 base align=4
+QTextEncoder (0xb4c4e7a8) 0
+
+Class QTextDecoder
+ size=32 align=4
+ base size=32 base align=4
+QTextDecoder (0xb4c4ece8) 0
+
+Class QSharedData
+ size=4 align=4
+ base size=4 base align=4
+QSharedData (0xb4c5ef18) 0
+
+Class QtSharedPointer::NormalDeleter
+ size=1 align=1
+ base size=0 base align=1
+QtSharedPointer::NormalDeleter (0xb4a9b1f8) 0 empty
+
+Class QtSharedPointer::ExternalRefCountData
+ size=12 align=4
+ base size=12 base align=4
+QtSharedPointer::ExternalRefCountData (0xb4a9b2d8) 0
+
+Class std::__numeric_limits_base
+ size=1 align=1
+ base size=0 base align=1
+std::__numeric_limits_base (0xb4ae6a80) 0 empty
+
+Class QDate
+ size=8 align=4
+ base size=8 base align=4
+QDate (0xb4b46d90) 0
+
+Class QTime
+ size=4 align=4
+ base size=4 base align=4
+QTime (0xb4b5f9a0) 0
+
+Class QDateTime
+ size=4 align=4
+ base size=4 base align=4
+QDateTime (0xb4948dc8) 0
+
+Class QLibraryInfo
+ size=1 align=1
+ base size=0 base align=1
+QLibraryInfo (0xb4969578) 0 empty
+
+Class QIODevice::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QIODevice::QPrivateSignal (0xb4969700) 0 empty
+
+Vtable for QIODevice
+QIODevice::_ZTV9QIODevice: 30u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI9QIODevice)
+8 (int (*)(...))QIODevice::metaObject
+12 (int (*)(...))QIODevice::qt_metacast
+16 (int (*)(...))QIODevice::qt_metacall
+20 (int (*)(...))QIODevice::~QIODevice
+24 (int (*)(...))QIODevice::~QIODevice
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QIODevice::isSequential
+60 (int (*)(...))QIODevice::open
+64 (int (*)(...))QIODevice::close
+68 (int (*)(...))QIODevice::pos
+72 (int (*)(...))QIODevice::size
+76 (int (*)(...))QIODevice::seek
+80 (int (*)(...))QIODevice::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QIODevice::bytesAvailable
+92 (int (*)(...))QIODevice::bytesToWrite
+96 (int (*)(...))QIODevice::canReadLine
+100 (int (*)(...))QIODevice::waitForReadyRead
+104 (int (*)(...))QIODevice::waitForBytesWritten
+108 (int (*)(...))__cxa_pure_virtual
+112 (int (*)(...))QIODevice::readLineData
+116 (int (*)(...))__cxa_pure_virtual
+
+Class QIODevice
+ size=8 align=4
+ base size=8 base align=4
+QIODevice (0xb4c2221c) 0
+ vptr=((& QIODevice::_ZTV9QIODevice) + 8u)
+ QObject (0xb4969620) 0
+ primary-for QIODevice (0xb4c2221c)
+
+Class QBuffer::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QBuffer::QPrivateSignal (0xb499e188) 0 empty
+
+Vtable for QBuffer
+QBuffer::_ZTV7QBuffer: 30u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI7QBuffer)
+8 (int (*)(...))QBuffer::metaObject
+12 (int (*)(...))QBuffer::qt_metacast
+16 (int (*)(...))QBuffer::qt_metacall
+20 (int (*)(...))QBuffer::~QBuffer
+24 (int (*)(...))QBuffer::~QBuffer
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QBuffer::connectNotify
+52 (int (*)(...))QBuffer::disconnectNotify
+56 (int (*)(...))QIODevice::isSequential
+60 (int (*)(...))QBuffer::open
+64 (int (*)(...))QBuffer::close
+68 (int (*)(...))QBuffer::pos
+72 (int (*)(...))QBuffer::size
+76 (int (*)(...))QBuffer::seek
+80 (int (*)(...))QBuffer::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QIODevice::bytesAvailable
+92 (int (*)(...))QIODevice::bytesToWrite
+96 (int (*)(...))QBuffer::canReadLine
+100 (int (*)(...))QIODevice::waitForReadyRead
+104 (int (*)(...))QIODevice::waitForBytesWritten
+108 (int (*)(...))QBuffer::readData
+112 (int (*)(...))QIODevice::readLineData
+116 (int (*)(...))QBuffer::writeData
+
+Class QBuffer
+ size=8 align=4
+ base size=8 base align=4
+QBuffer (0xb4c22294) 0
+ vptr=((& QBuffer::_ZTV7QBuffer) + 8u)
+ QIODevice (0xb4c222d0) 0
+ primary-for QBuffer (0xb4c22294)
+ QObject (0xb499e0a8) 0
+ primary-for QIODevice (0xb4c222d0)
+
+Class QDataStream
+ size=24 align=4
+ base size=24 base align=4
+QDataStream (0xb499ea10) 0
+
+Class QLocale
+ size=4 align=4
+ base size=4 base align=4
+QLocale (0xb49dd0e0) 0
+
+Class _IO_marker
+ size=12 align=4
+ base size=12 base align=4
+_IO_marker (0xb4a3e0e0) 0
+
+Class _IO_FILE
+ size=148 align=4
+ base size=148 base align=4
+_IO_FILE (0xb4a3e118) 0
+
+Vtable for QTextStream
+QTextStream::_ZTV11QTextStream: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QTextStream)
+8 (int (*)(...))QTextStream::~QTextStream
+12 (int (*)(...))QTextStream::~QTextStream
+
+Class QTextStream
+ size=8 align=4
+ base size=8 base align=4
+QTextStream (0xb4a3e188) 0
+ vptr=((& QTextStream::_ZTV11QTextStream) + 8u)
+
+Class QTextStreamManipulator
+ size=24 align=4
+ base size=22 base align=4
+QTextStreamManipulator (0xb4882380) 0
+
+Class QContiguousCacheData
+ size=24 align=4
+ base size=24 base align=4
+QContiguousCacheData (0xb48bce00) 0
+
+Class QDebug::Stream
+ size=44 align=4
+ base size=44 base align=4
+QDebug::Stream (0xb48dda48) 0
+
+Class QDebug
+ size=4 align=4
+ base size=4 base align=4
+QDebug (0xb48dda10) 0
+
+Class QDebugStateSaver
+ size=4 align=4
+ base size=4 base align=4
+QDebugStateSaver (0xb47471c0) 0
+
+Class QNoDebug
+ size=1 align=1
+ base size=0 base align=1
+QNoDebug (0xb47474d0) 0 empty
+
+Class QFileDevice::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QFileDevice::QPrivateSignal (0xb476e000) 0 empty
+
+Vtable for QFileDevice
+QFileDevice::_ZTV11QFileDevice: 34u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QFileDevice)
+8 (int (*)(...))QFileDevice::metaObject
+12 (int (*)(...))QFileDevice::qt_metacast
+16 (int (*)(...))QFileDevice::qt_metacall
+20 (int (*)(...))QFileDevice::~QFileDevice
+24 (int (*)(...))QFileDevice::~QFileDevice
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QFileDevice::isSequential
+60 (int (*)(...))QIODevice::open
+64 (int (*)(...))QFileDevice::close
+68 (int (*)(...))QFileDevice::pos
+72 (int (*)(...))QFileDevice::size
+76 (int (*)(...))QFileDevice::seek
+80 (int (*)(...))QFileDevice::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QIODevice::bytesAvailable
+92 (int (*)(...))QIODevice::bytesToWrite
+96 (int (*)(...))QIODevice::canReadLine
+100 (int (*)(...))QIODevice::waitForReadyRead
+104 (int (*)(...))QIODevice::waitForBytesWritten
+108 (int (*)(...))QFileDevice::readData
+112 (int (*)(...))QFileDevice::readLineData
+116 (int (*)(...))QFileDevice::writeData
+120 (int (*)(...))QFileDevice::fileName
+124 (int (*)(...))QFileDevice::resize
+128 (int (*)(...))QFileDevice::permissions
+132 (int (*)(...))QFileDevice::setPermissions
+
+Class QFileDevice
+ size=8 align=4
+ base size=8 base align=4
+QFileDevice (0xb4c22474) 0
+ vptr=((& QFileDevice::_ZTV11QFileDevice) + 8u)
+ QIODevice (0xb4c224b0) 0
+ primary-for QFileDevice (0xb4c22474)
+ QObject (0xb4747f18) 0
+ primary-for QIODevice (0xb4c224b0)
+
+Class QFile::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QFile::QPrivateSignal (0xb4785b28) 0 empty
+
+Vtable for QFile
+QFile::_ZTV5QFile: 34u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI5QFile)
+8 (int (*)(...))QFile::metaObject
+12 (int (*)(...))QFile::qt_metacast
+16 (int (*)(...))QFile::qt_metacall
+20 (int (*)(...))QFile::~QFile
+24 (int (*)(...))QFile::~QFile
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QFileDevice::isSequential
+60 (int (*)(...))QFile::open
+64 (int (*)(...))QFileDevice::close
+68 (int (*)(...))QFileDevice::pos
+72 (int (*)(...))QFile::size
+76 (int (*)(...))QFileDevice::seek
+80 (int (*)(...))QFileDevice::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QIODevice::bytesAvailable
+92 (int (*)(...))QIODevice::bytesToWrite
+96 (int (*)(...))QIODevice::canReadLine
+100 (int (*)(...))QIODevice::waitForReadyRead
+104 (int (*)(...))QIODevice::waitForBytesWritten
+108 (int (*)(...))QFileDevice::readData
+112 (int (*)(...))QFileDevice::readLineData
+116 (int (*)(...))QFileDevice::writeData
+120 (int (*)(...))QFile::fileName
+124 (int (*)(...))QFile::resize
+128 (int (*)(...))QFile::permissions
+132 (int (*)(...))QFile::setPermissions
+
+Class QFile
+ size=8 align=4
+ base size=8 base align=4
+QFile (0xb4c22528) 0
+ vptr=((& QFile::_ZTV5QFile) + 8u)
+ QFileDevice (0xb4c22564) 0
+ primary-for QFile (0xb4c22528)
+ QIODevice (0xb4c225a0) 0
+ primary-for QFileDevice (0xb4c22564)
+ QObject (0xb4785a48) 0
+ primary-for QIODevice (0xb4c225a0)
+
+Class QFileInfo
+ size=4 align=4
+ base size=4 base align=4
+QFileInfo (0xb479aaf0) 0
+
+Class QRegExp
+ size=4 align=4
+ base size=4 base align=4
+QRegExp (0xb47bd850) 0
+
+Class QStringMatcher::Data
+ size=264 align=4
+ base size=264 base align=4
+QStringMatcher::Data (0xb47d3498) 0
+
+Class QStringMatcher
+ size=1036 align=4
+ base size=1036 base align=4
+QStringMatcher (0xb47d3188) 0
+
+Class QStringList
+ size=4 align=4
+ base size=4 base align=4
+QStringList (0xb4c22654) 0
+ QList<QString> (0xb47d3738) 0
+
+Class QDir
+ size=4 align=4
+ base size=4 base align=4
+QDir (0xb480f2d8) 0
+
+Class QDirIterator
+ size=4 align=4
+ base size=4 base align=4
+QDirIterator (0xb464ff88) 0
+
+Class QFileSystemWatcher::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QFileSystemWatcher::QPrivateSignal (0xb4674690) 0 empty
+
+Vtable for QFileSystemWatcher
+QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QFileSystemWatcher)
+8 (int (*)(...))QFileSystemWatcher::metaObject
+12 (int (*)(...))QFileSystemWatcher::qt_metacast
+16 (int (*)(...))QFileSystemWatcher::qt_metacall
+20 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher
+24 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QFileSystemWatcher
+ size=8 align=4
+ base size=8 base align=4
+QFileSystemWatcher (0xb4c227bc) 0
+ vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 8u)
+ QObject (0xb46745b0) 0
+ primary-for QFileSystemWatcher (0xb4c227bc)
+
+Class QLockFile
+ size=4 align=4
+ base size=4 base align=4
+QLockFile (0xb4674c78) 0
+
+Class QProcessEnvironment
+ size=4 align=4
+ base size=4 base align=4
+QProcessEnvironment (0xb468b230) 0
+
+Class QProcess::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QProcess::QPrivateSignal (0xb468bbd0) 0 empty
+
+Vtable for QProcess
+QProcess::_ZTV8QProcess: 31u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI8QProcess)
+8 (int (*)(...))QProcess::metaObject
+12 (int (*)(...))QProcess::qt_metacast
+16 (int (*)(...))QProcess::qt_metacall
+20 (int (*)(...))QProcess::~QProcess
+24 (int (*)(...))QProcess::~QProcess
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QProcess::isSequential
+60 (int (*)(...))QProcess::open
+64 (int (*)(...))QProcess::close
+68 (int (*)(...))QIODevice::pos
+72 (int (*)(...))QIODevice::size
+76 (int (*)(...))QIODevice::seek
+80 (int (*)(...))QProcess::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QProcess::bytesAvailable
+92 (int (*)(...))QProcess::bytesToWrite
+96 (int (*)(...))QProcess::canReadLine
+100 (int (*)(...))QProcess::waitForReadyRead
+104 (int (*)(...))QProcess::waitForBytesWritten
+108 (int (*)(...))QProcess::readData
+112 (int (*)(...))QIODevice::readLineData
+116 (int (*)(...))QProcess::writeData
+120 (int (*)(...))QProcess::setupChildProcess
+
+Class QProcess
+ size=8 align=4
+ base size=8 base align=4
+QProcess (0xb4c227f8) 0
+ vptr=((& QProcess::_ZTV8QProcess) + 8u)
+ QIODevice (0xb4c22834) 0
+ primary-for QProcess (0xb4c227f8)
+ QObject (0xb468baf0) 0
+ primary-for QIODevice (0xb4c22834)
+
+Class QResource
+ size=4 align=4
+ base size=4 base align=4
+QResource (0xb46b72a0) 0
+
+Class QSaveFile::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSaveFile::QPrivateSignal (0xb46b7930) 0 empty
+
+Vtable for QSaveFile
+QSaveFile::_ZTV9QSaveFile: 34u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI9QSaveFile)
+8 (int (*)(...))QSaveFile::metaObject
+12 (int (*)(...))QSaveFile::qt_metacast
+16 (int (*)(...))QSaveFile::qt_metacall
+20 (int (*)(...))QSaveFile::~QSaveFile
+24 (int (*)(...))QSaveFile::~QSaveFile
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QFileDevice::isSequential
+60 (int (*)(...))QSaveFile::open
+64 (int (*)(...))QSaveFile::close
+68 (int (*)(...))QFileDevice::pos
+72 (int (*)(...))QFileDevice::size
+76 (int (*)(...))QFileDevice::seek
+80 (int (*)(...))QFileDevice::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QIODevice::bytesAvailable
+92 (int (*)(...))QIODevice::bytesToWrite
+96 (int (*)(...))QIODevice::canReadLine
+100 (int (*)(...))QIODevice::waitForReadyRead
+104 (int (*)(...))QIODevice::waitForBytesWritten
+108 (int (*)(...))QFileDevice::readData
+112 (int (*)(...))QFileDevice::readLineData
+116 (int (*)(...))QSaveFile::writeData
+120 (int (*)(...))QSaveFile::fileName
+124 (int (*)(...))QFileDevice::resize
+128 (int (*)(...))QFileDevice::permissions
+132 (int (*)(...))QFileDevice::setPermissions
+
+Class QSaveFile
+ size=8 align=4
+ base size=8 base align=4
+QSaveFile (0xb4c22870) 0
+ vptr=((& QSaveFile::_ZTV9QSaveFile) + 8u)
+ QFileDevice (0xb4c228ac) 0
+ primary-for QSaveFile (0xb4c22870)
+ QIODevice (0xb4c228e8) 0
+ primary-for QFileDevice (0xb4c228ac)
+ QObject (0xb46b7850) 0
+ primary-for QIODevice (0xb4c228e8)
+
+Class QSettings::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSettings::QPrivateSignal (0xb46ce1c0) 0 empty
+
+Vtable for QSettings
+QSettings::_ZTV9QSettings: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI9QSettings)
+8 (int (*)(...))QSettings::metaObject
+12 (int (*)(...))QSettings::qt_metacast
+16 (int (*)(...))QSettings::qt_metacall
+20 (int (*)(...))QSettings::~QSettings
+24 (int (*)(...))QSettings::~QSettings
+28 (int (*)(...))QSettings::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QSettings
+ size=8 align=4
+ base size=8 base align=4
+QSettings (0xb4c22924) 0
+ vptr=((& QSettings::_ZTV9QSettings) + 8u)
+ QObject (0xb46ce0e0) 0
+ primary-for QSettings (0xb4c22924)
+
+Class QStandardPaths
+ size=1 align=1
+ base size=0 base align=1
+QStandardPaths (0xb46e21c0) 0 empty
+
+Class QTemporaryDir
+ size=4 align=4
+ base size=4 base align=4
+QTemporaryDir (0xb46e2770) 0
+
+Class QTemporaryFile::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QTemporaryFile::QPrivateSignal (0xb46e2b98) 0 empty
+
+Vtable for QTemporaryFile
+QTemporaryFile::_ZTV14QTemporaryFile: 34u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI14QTemporaryFile)
+8 (int (*)(...))QTemporaryFile::metaObject
+12 (int (*)(...))QTemporaryFile::qt_metacast
+16 (int (*)(...))QTemporaryFile::qt_metacall
+20 (int (*)(...))QTemporaryFile::~QTemporaryFile
+24 (int (*)(...))QTemporaryFile::~QTemporaryFile
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QFileDevice::isSequential
+60 (int (*)(...))QTemporaryFile::open
+64 (int (*)(...))QFileDevice::close
+68 (int (*)(...))QFileDevice::pos
+72 (int (*)(...))QFile::size
+76 (int (*)(...))QFileDevice::seek
+80 (int (*)(...))QFileDevice::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QIODevice::bytesAvailable
+92 (int (*)(...))QIODevice::bytesToWrite
+96 (int (*)(...))QIODevice::canReadLine
+100 (int (*)(...))QIODevice::waitForReadyRead
+104 (int (*)(...))QIODevice::waitForBytesWritten
+108 (int (*)(...))QFileDevice::readData
+112 (int (*)(...))QFileDevice::readLineData
+116 (int (*)(...))QFileDevice::writeData
+120 (int (*)(...))QTemporaryFile::fileName
+124 (int (*)(...))QFile::resize
+128 (int (*)(...))QFile::permissions
+132 (int (*)(...))QFile::setPermissions
+
+Class QTemporaryFile
+ size=8 align=4
+ base size=8 base align=4
+QTemporaryFile (0xb4c2299c) 0
+ vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 8u)
+ QFile (0xb4c229d8) 0
+ primary-for QTemporaryFile (0xb4c2299c)
+ QFileDevice (0xb4c22a14) 0
+ primary-for QFile (0xb4c229d8)
+ QIODevice (0xb4c22a50) 0
+ primary-for QFileDevice (0xb4c22a14)
+ QObject (0xb46e2ab8) 0
+ primary-for QIODevice (0xb4c22a50)
+
+Class QUrl
+ size=4 align=4
+ base size=4 base align=4
+QUrl (0xb4713188) 0
+
+Class QUrlQuery
+ size=4 align=4
+ base size=4 base align=4
+QUrlQuery (0xb45753b8) 0
+
+Class QModelIndex
+ size=16 align=4
+ base size=16 base align=4
+QModelIndex (0xb4595268) 0
+
+Class QPersistentModelIndex
+ size=4 align=4
+ base size=4 base align=4
+QPersistentModelIndex (0xb45a4498) 0
+
+Class QAbstractItemModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractItemModel::QPrivateSignal (0xb45be000) 0 empty
+
+Vtable for QAbstractItemModel
+QAbstractItemModel::_ZTV18QAbstractItemModel: 48u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QAbstractItemModel)
+8 (int (*)(...))QAbstractItemModel::metaObject
+12 (int (*)(...))QAbstractItemModel::qt_metacast
+16 (int (*)(...))QAbstractItemModel::qt_metacall
+20 (int (*)(...))QAbstractItemModel::~QAbstractItemModel
+24 (int (*)(...))QAbstractItemModel::~QAbstractItemModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+64 (int (*)(...))QAbstractItemModel::sibling
+68 (int (*)(...))__cxa_pure_virtual
+72 (int (*)(...))__cxa_pure_virtual
+76 (int (*)(...))QAbstractItemModel::hasChildren
+80 (int (*)(...))__cxa_pure_virtual
+84 (int (*)(...))QAbstractItemModel::setData
+88 (int (*)(...))QAbstractItemModel::headerData
+92 (int (*)(...))QAbstractItemModel::setHeaderData
+96 (int (*)(...))QAbstractItemModel::itemData
+100 (int (*)(...))QAbstractItemModel::setItemData
+104 (int (*)(...))QAbstractItemModel::mimeTypes
+108 (int (*)(...))QAbstractItemModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QAbstractItemModel::dropMimeData
+120 (int (*)(...))QAbstractItemModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QAbstractItemModel::insertRows
+132 (int (*)(...))QAbstractItemModel::insertColumns
+136 (int (*)(...))QAbstractItemModel::removeRows
+140 (int (*)(...))QAbstractItemModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QAbstractItemModel::fetchMore
+156 (int (*)(...))QAbstractItemModel::canFetchMore
+160 (int (*)(...))QAbstractItemModel::flags
+164 (int (*)(...))QAbstractItemModel::sort
+168 (int (*)(...))QAbstractItemModel::buddy
+172 (int (*)(...))QAbstractItemModel::match
+176 (int (*)(...))QAbstractItemModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractItemModel::submit
+188 (int (*)(...))QAbstractItemModel::revert
+
+Class QAbstractItemModel
+ size=8 align=4
+ base size=8 base align=4
+QAbstractItemModel (0xb4c22b40) 0
+ vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 8u)
+ QObject (0xb45a4f88) 0
+ primary-for QAbstractItemModel (0xb4c22b40)
+
+Class QAbstractTableModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractTableModel::QPrivateSignal (0xb4607c78) 0 empty
+
+Vtable for QAbstractTableModel
+QAbstractTableModel::_ZTV19QAbstractTableModel: 48u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI19QAbstractTableModel)
+8 (int (*)(...))QAbstractTableModel::metaObject
+12 (int (*)(...))QAbstractTableModel::qt_metacast
+16 (int (*)(...))QAbstractTableModel::qt_metacall
+20 (int (*)(...))QAbstractTableModel::~QAbstractTableModel
+24 (int (*)(...))QAbstractTableModel::~QAbstractTableModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QAbstractTableModel::index
+60 (int (*)(...))QAbstractTableModel::parent
+64 (int (*)(...))QAbstractItemModel::sibling
+68 (int (*)(...))__cxa_pure_virtual
+72 (int (*)(...))__cxa_pure_virtual
+76 (int (*)(...))QAbstractTableModel::hasChildren
+80 (int (*)(...))__cxa_pure_virtual
+84 (int (*)(...))QAbstractItemModel::setData
+88 (int (*)(...))QAbstractItemModel::headerData
+92 (int (*)(...))QAbstractItemModel::setHeaderData
+96 (int (*)(...))QAbstractItemModel::itemData
+100 (int (*)(...))QAbstractItemModel::setItemData
+104 (int (*)(...))QAbstractItemModel::mimeTypes
+108 (int (*)(...))QAbstractItemModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QAbstractTableModel::dropMimeData
+120 (int (*)(...))QAbstractItemModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QAbstractItemModel::insertRows
+132 (int (*)(...))QAbstractItemModel::insertColumns
+136 (int (*)(...))QAbstractItemModel::removeRows
+140 (int (*)(...))QAbstractItemModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QAbstractItemModel::fetchMore
+156 (int (*)(...))QAbstractItemModel::canFetchMore
+160 (int (*)(...))QAbstractTableModel::flags
+164 (int (*)(...))QAbstractItemModel::sort
+168 (int (*)(...))QAbstractItemModel::buddy
+172 (int (*)(...))QAbstractItemModel::match
+176 (int (*)(...))QAbstractItemModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractItemModel::submit
+188 (int (*)(...))QAbstractItemModel::revert
+
+Class QAbstractTableModel
+ size=8 align=4
+ base size=8 base align=4
+QAbstractTableModel (0xb4c22c6c) 0
+ vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 8u)
+ QAbstractItemModel (0xb4c22ca8) 0
+ primary-for QAbstractTableModel (0xb4c22c6c)
+ QObject (0xb4607b98) 0
+ primary-for QAbstractItemModel (0xb4c22ca8)
+
+Class QAbstractListModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractListModel::QPrivateSignal (0xb4613380) 0 empty
+
+Vtable for QAbstractListModel
+QAbstractListModel::_ZTV18QAbstractListModel: 48u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QAbstractListModel)
+8 (int (*)(...))QAbstractListModel::metaObject
+12 (int (*)(...))QAbstractListModel::qt_metacast
+16 (int (*)(...))QAbstractListModel::qt_metacall
+20 (int (*)(...))QAbstractListModel::~QAbstractListModel
+24 (int (*)(...))QAbstractListModel::~QAbstractListModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QAbstractListModel::index
+60 (int (*)(...))QAbstractListModel::parent
+64 (int (*)(...))QAbstractItemModel::sibling
+68 (int (*)(...))__cxa_pure_virtual
+72 (int (*)(...))QAbstractListModel::columnCount
+76 (int (*)(...))QAbstractListModel::hasChildren
+80 (int (*)(...))__cxa_pure_virtual
+84 (int (*)(...))QAbstractItemModel::setData
+88 (int (*)(...))QAbstractItemModel::headerData
+92 (int (*)(...))QAbstractItemModel::setHeaderData
+96 (int (*)(...))QAbstractItemModel::itemData
+100 (int (*)(...))QAbstractItemModel::setItemData
+104 (int (*)(...))QAbstractItemModel::mimeTypes
+108 (int (*)(...))QAbstractItemModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QAbstractListModel::dropMimeData
+120 (int (*)(...))QAbstractItemModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QAbstractItemModel::insertRows
+132 (int (*)(...))QAbstractItemModel::insertColumns
+136 (int (*)(...))QAbstractItemModel::removeRows
+140 (int (*)(...))QAbstractItemModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QAbstractItemModel::fetchMore
+156 (int (*)(...))QAbstractItemModel::canFetchMore
+160 (int (*)(...))QAbstractListModel::flags
+164 (int (*)(...))QAbstractItemModel::sort
+168 (int (*)(...))QAbstractItemModel::buddy
+172 (int (*)(...))QAbstractItemModel::match
+176 (int (*)(...))QAbstractItemModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractItemModel::submit
+188 (int (*)(...))QAbstractItemModel::revert
+
+Class QAbstractListModel
+ size=8 align=4
+ base size=8 base align=4
+QAbstractListModel (0xb4c22ce4) 0
+ vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 8u)
+ QAbstractItemModel (0xb4c22d20) 0
+ primary-for QAbstractListModel (0xb4c22ce4)
+ QObject (0xb46132a0) 0
+ primary-for QAbstractItemModel (0xb4c22d20)
+
+Class QAbstractProxyModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractProxyModel::QPrivateSignal (0xb46254d0) 0 empty
+
+Vtable for QAbstractProxyModel
+QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI19QAbstractProxyModel)
+8 (int (*)(...))QAbstractProxyModel::metaObject
+12 (int (*)(...))QAbstractProxyModel::qt_metacast
+16 (int (*)(...))QAbstractProxyModel::qt_metacall
+20 (int (*)(...))QAbstractProxyModel::~QAbstractProxyModel
+24 (int (*)(...))QAbstractProxyModel::~QAbstractProxyModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+64 (int (*)(...))QAbstractProxyModel::sibling
+68 (int (*)(...))__cxa_pure_virtual
+72 (int (*)(...))__cxa_pure_virtual
+76 (int (*)(...))QAbstractProxyModel::hasChildren
+80 (int (*)(...))QAbstractProxyModel::data
+84 (int (*)(...))QAbstractProxyModel::setData
+88 (int (*)(...))QAbstractProxyModel::headerData
+92 (int (*)(...))QAbstractProxyModel::setHeaderData
+96 (int (*)(...))QAbstractProxyModel::itemData
+100 (int (*)(...))QAbstractProxyModel::setItemData
+104 (int (*)(...))QAbstractProxyModel::mimeTypes
+108 (int (*)(...))QAbstractProxyModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QAbstractItemModel::dropMimeData
+120 (int (*)(...))QAbstractProxyModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QAbstractItemModel::insertRows
+132 (int (*)(...))QAbstractItemModel::insertColumns
+136 (int (*)(...))QAbstractItemModel::removeRows
+140 (int (*)(...))QAbstractItemModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QAbstractProxyModel::fetchMore
+156 (int (*)(...))QAbstractProxyModel::canFetchMore
+160 (int (*)(...))QAbstractProxyModel::flags
+164 (int (*)(...))QAbstractProxyModel::sort
+168 (int (*)(...))QAbstractProxyModel::buddy
+172 (int (*)(...))QAbstractItemModel::match
+176 (int (*)(...))QAbstractProxyModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractProxyModel::submit
+188 (int (*)(...))QAbstractProxyModel::revert
+192 (int (*)(...))QAbstractProxyModel::setSourceModel
+196 (int (*)(...))__cxa_pure_virtual
+200 (int (*)(...))__cxa_pure_virtual
+204 (int (*)(...))QAbstractProxyModel::mapSelectionToSource
+208 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource
+
+Class QAbstractProxyModel
+ size=8 align=4
+ base size=8 base align=4
+QAbstractProxyModel (0xb4c22d5c) 0
+ vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 8u)
+ QAbstractItemModel (0xb4c22d98) 0
+ primary-for QAbstractProxyModel (0xb4c22d5c)
+ QObject (0xb46253f0) 0
+ primary-for QAbstractItemModel (0xb4c22d98)
+
+Class QIdentityProxyModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QIdentityProxyModel::QPrivateSignal (0xb4625ea8) 0 empty
+
+Vtable for QIdentityProxyModel
+QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI19QIdentityProxyModel)
+8 (int (*)(...))QIdentityProxyModel::metaObject
+12 (int (*)(...))QIdentityProxyModel::qt_metacast
+16 (int (*)(...))QIdentityProxyModel::qt_metacall
+20 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel
+24 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QIdentityProxyModel::index
+60 (int (*)(...))QIdentityProxyModel::parent
+64 (int (*)(...))QIdentityProxyModel::sibling
+68 (int (*)(...))QIdentityProxyModel::rowCount
+72 (int (*)(...))QIdentityProxyModel::columnCount
+76 (int (*)(...))QAbstractProxyModel::hasChildren
+80 (int (*)(...))QAbstractProxyModel::data
+84 (int (*)(...))QAbstractProxyModel::setData
+88 (int (*)(...))QIdentityProxyModel::headerData
+92 (int (*)(...))QAbstractProxyModel::setHeaderData
+96 (int (*)(...))QAbstractProxyModel::itemData
+100 (int (*)(...))QAbstractProxyModel::setItemData
+104 (int (*)(...))QAbstractProxyModel::mimeTypes
+108 (int (*)(...))QAbstractProxyModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QIdentityProxyModel::dropMimeData
+120 (int (*)(...))QAbstractProxyModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QIdentityProxyModel::insertRows
+132 (int (*)(...))QIdentityProxyModel::insertColumns
+136 (int (*)(...))QIdentityProxyModel::removeRows
+140 (int (*)(...))QIdentityProxyModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QAbstractProxyModel::fetchMore
+156 (int (*)(...))QAbstractProxyModel::canFetchMore
+160 (int (*)(...))QAbstractProxyModel::flags
+164 (int (*)(...))QAbstractProxyModel::sort
+168 (int (*)(...))QAbstractProxyModel::buddy
+172 (int (*)(...))QIdentityProxyModel::match
+176 (int (*)(...))QAbstractProxyModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractProxyModel::submit
+188 (int (*)(...))QAbstractProxyModel::revert
+192 (int (*)(...))QIdentityProxyModel::setSourceModel
+196 (int (*)(...))QIdentityProxyModel::mapToSource
+200 (int (*)(...))QIdentityProxyModel::mapFromSource
+204 (int (*)(...))QIdentityProxyModel::mapSelectionToSource
+208 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource
+
+Class QIdentityProxyModel
+ size=8 align=4
+ base size=8 base align=4
+QIdentityProxyModel (0xb4c22dd4) 0
+ vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 8u)
+ QAbstractProxyModel (0xb4c22e10) 0
+ primary-for QIdentityProxyModel (0xb4c22dd4)
+ QAbstractItemModel (0xb4c22e4c) 0
+ primary-for QAbstractProxyModel (0xb4c22e10)
+ QObject (0xb4625dc8) 0
+ primary-for QAbstractItemModel (0xb4c22e4c)
+
+Class QItemSelectionRange
+ size=8 align=4
+ base size=8 base align=4
+QItemSelectionRange (0xb4440818) 0
+
+Class QItemSelectionModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QItemSelectionModel::QPrivateSignal (0xb44654d0) 0 empty
+
+Vtable for QItemSelectionModel
+QItemSelectionModel::_ZTV19QItemSelectionModel: 20u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI19QItemSelectionModel)
+8 (int (*)(...))QItemSelectionModel::metaObject
+12 (int (*)(...))QItemSelectionModel::qt_metacast
+16 (int (*)(...))QItemSelectionModel::qt_metacall
+20 (int (*)(...))QItemSelectionModel::~QItemSelectionModel
+24 (int (*)(...))QItemSelectionModel::~QItemSelectionModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QItemSelectionModel::setCurrentIndex
+60 (int (*)(...))QItemSelectionModel::select
+64 (int (*)(...))QItemSelectionModel::select
+68 (int (*)(...))QItemSelectionModel::clear
+72 (int (*)(...))QItemSelectionModel::reset
+76 (int (*)(...))QItemSelectionModel::clearCurrentIndex
+
+Class QItemSelectionModel
+ size=8 align=4
+ base size=8 base align=4
+QItemSelectionModel (0xb4c22e88) 0
+ vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 8u)
+ QObject (0xb44653f0) 0
+ primary-for QItemSelectionModel (0xb4c22e88)
+
+Class QItemSelection
+ size=4 align=4
+ base size=4 base align=4
+QItemSelection (0xb4c22f00) 0
+ QList<QItemSelectionRange> (0xb448c0e0) 0
+
+Class QSortFilterProxyModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSortFilterProxyModel::QPrivateSignal (0xb448c498) 0 empty
+
+Vtable for QSortFilterProxyModel
+QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI21QSortFilterProxyModel)
+8 (int (*)(...))QSortFilterProxyModel::metaObject
+12 (int (*)(...))QSortFilterProxyModel::qt_metacast
+16 (int (*)(...))QSortFilterProxyModel::qt_metacall
+20 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel
+24 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QSortFilterProxyModel::index
+60 (int (*)(...))QSortFilterProxyModel::parent
+64 (int (*)(...))QSortFilterProxyModel::sibling
+68 (int (*)(...))QSortFilterProxyModel::rowCount
+72 (int (*)(...))QSortFilterProxyModel::columnCount
+76 (int (*)(...))QSortFilterProxyModel::hasChildren
+80 (int (*)(...))QSortFilterProxyModel::data
+84 (int (*)(...))QSortFilterProxyModel::setData
+88 (int (*)(...))QSortFilterProxyModel::headerData
+92 (int (*)(...))QSortFilterProxyModel::setHeaderData
+96 (int (*)(...))QAbstractProxyModel::itemData
+100 (int (*)(...))QAbstractProxyModel::setItemData
+104 (int (*)(...))QSortFilterProxyModel::mimeTypes
+108 (int (*)(...))QSortFilterProxyModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QSortFilterProxyModel::dropMimeData
+120 (int (*)(...))QSortFilterProxyModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QSortFilterProxyModel::insertRows
+132 (int (*)(...))QSortFilterProxyModel::insertColumns
+136 (int (*)(...))QSortFilterProxyModel::removeRows
+140 (int (*)(...))QSortFilterProxyModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QSortFilterProxyModel::fetchMore
+156 (int (*)(...))QSortFilterProxyModel::canFetchMore
+160 (int (*)(...))QSortFilterProxyModel::flags
+164 (int (*)(...))QSortFilterProxyModel::sort
+168 (int (*)(...))QSortFilterProxyModel::buddy
+172 (int (*)(...))QSortFilterProxyModel::match
+176 (int (*)(...))QSortFilterProxyModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractProxyModel::submit
+188 (int (*)(...))QAbstractProxyModel::revert
+192 (int (*)(...))QSortFilterProxyModel::setSourceModel
+196 (int (*)(...))QSortFilterProxyModel::mapToSource
+200 (int (*)(...))QSortFilterProxyModel::mapFromSource
+204 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource
+208 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource
+212 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow
+216 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn
+220 (int (*)(...))QSortFilterProxyModel::lessThan
+
+Class QSortFilterProxyModel
+ size=8 align=4
+ base size=8 base align=4
+QSortFilterProxyModel (0xb4c22f3c) 0
+ vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 8u)
+ QAbstractProxyModel (0xb4c22f78) 0
+ primary-for QSortFilterProxyModel (0xb4c22f3c)
+ QAbstractItemModel (0xb4c22fb4) 0
+ primary-for QAbstractProxyModel (0xb4c22f78)
+ QObject (0xb448c3b8) 0
+ primary-for QAbstractItemModel (0xb4c22fb4)
+
+Class QStringListModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QStringListModel::QPrivateSignal (0xb448cf50) 0 empty
+
+Vtable for QStringListModel
+QStringListModel::_ZTV16QStringListModel: 48u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI16QStringListModel)
+8 (int (*)(...))QStringListModel::metaObject
+12 (int (*)(...))QStringListModel::qt_metacast
+16 (int (*)(...))QStringListModel::qt_metacall
+20 (int (*)(...))QStringListModel::~QStringListModel
+24 (int (*)(...))QStringListModel::~QStringListModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QAbstractListModel::index
+60 (int (*)(...))QAbstractListModel::parent
+64 (int (*)(...))QStringListModel::sibling
+68 (int (*)(...))QStringListModel::rowCount
+72 (int (*)(...))QAbstractListModel::columnCount
+76 (int (*)(...))QAbstractListModel::hasChildren
+80 (int (*)(...))QStringListModel::data
+84 (int (*)(...))QStringListModel::setData
+88 (int (*)(...))QAbstractItemModel::headerData
+92 (int (*)(...))QAbstractItemModel::setHeaderData
+96 (int (*)(...))QAbstractItemModel::itemData
+100 (int (*)(...))QAbstractItemModel::setItemData
+104 (int (*)(...))QAbstractItemModel::mimeTypes
+108 (int (*)(...))QAbstractItemModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QAbstractListModel::dropMimeData
+120 (int (*)(...))QStringListModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QStringListModel::insertRows
+132 (int (*)(...))QAbstractItemModel::insertColumns
+136 (int (*)(...))QStringListModel::removeRows
+140 (int (*)(...))QAbstractItemModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QAbstractItemModel::fetchMore
+156 (int (*)(...))QAbstractItemModel::canFetchMore
+160 (int (*)(...))QStringListModel::flags
+164 (int (*)(...))QStringListModel::sort
+168 (int (*)(...))QAbstractItemModel::buddy
+172 (int (*)(...))QAbstractItemModel::match
+176 (int (*)(...))QAbstractItemModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractItemModel::submit
+188 (int (*)(...))QAbstractItemModel::revert
+
+Class QStringListModel
+ size=12 align=4
+ base size=12 base align=4
+QStringListModel (0xb44bf000) 0
+ vptr=((& QStringListModel::_ZTV16QStringListModel) + 8u)
+ QAbstractListModel (0xb44bf03c) 0
+ primary-for QStringListModel (0xb44bf000)
+ QAbstractItemModel (0xb44bf078) 0
+ primary-for QAbstractListModel (0xb44bf03c)
+ QObject (0xb448ce70) 0
+ primary-for QAbstractItemModel (0xb44bf078)
+
+Class QJsonValue
+ size=16 align=4
+ base size=16 base align=4
+QJsonValue (0xb44c2578) 0
+
+Class QJsonValueRef
+ size=8 align=4
+ base size=8 base align=4
+QJsonValueRef (0xb44d98f8) 0
+
+Class QJsonArray::iterator
+ size=8 align=4
+ base size=8 base align=4
+QJsonArray::iterator (0xb44f54d0) 0
+
+Class QJsonArray::const_iterator
+ size=8 align=4
+ base size=8 base align=4
+QJsonArray::const_iterator (0xb44fd3b8) 0
+
+Class QJsonArray
+ size=8 align=4
+ base size=8 base align=4
+QJsonArray (0xb44e3fc0) 0
+
+Class QJsonParseError
+ size=8 align=4
+ base size=8 base align=4
+QJsonParseError (0xb4527770) 0
+
+Class QJsonDocument
+ size=4 align=4
+ base size=4 base align=4
+QJsonDocument (0xb4527850) 0
+
+Class QJsonObject::iterator
+ size=8 align=4
+ base size=8 base align=4
+QJsonObject::iterator (0xb4531620) 0
+
+Class QJsonObject::const_iterator
+ size=8 align=4
+ base size=8 base align=4
+QJsonObject::const_iterator (0xb433e000) 0
+
+Class QJsonObject
+ size=8 align=4
+ base size=8 base align=4
+QJsonObject (0xb45311c0) 0
+
+Class QEventLoop::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QEventLoop::QPrivateSignal (0xb435eab8) 0 empty
+
+Vtable for QEventLoop
+QEventLoop::_ZTV10QEventLoop: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI10QEventLoop)
+8 (int (*)(...))QEventLoop::metaObject
+12 (int (*)(...))QEventLoop::qt_metacast
+16 (int (*)(...))QEventLoop::qt_metacall
+20 (int (*)(...))QEventLoop::~QEventLoop
+24 (int (*)(...))QEventLoop::~QEventLoop
+28 (int (*)(...))QEventLoop::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QEventLoop
+ size=8 align=4
+ base size=8 base align=4
+QEventLoop (0xb44bf0b4) 0
+ vptr=((& QEventLoop::_ZTV10QEventLoop) + 8u)
+ QObject (0xb435e9d8) 0
+ primary-for QEventLoop (0xb44bf0b4)
+
+Class QEventLoopLocker
+ size=4 align=4
+ base size=4 base align=4
+QEventLoopLocker (0xb437e038) 0
+
+Class QAbstractEventDispatcher::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractEventDispatcher::QPrivateSignal (0xb437e428) 0 empty
+
+Class QAbstractEventDispatcher::TimerInfo
+ size=12 align=4
+ base size=12 base align=4
+QAbstractEventDispatcher::TimerInfo (0xb437e460) 0
+
+Vtable for QAbstractEventDispatcher
+QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI24QAbstractEventDispatcher)
+8 (int (*)(...))QAbstractEventDispatcher::metaObject
+12 (int (*)(...))QAbstractEventDispatcher::qt_metacast
+16 (int (*)(...))QAbstractEventDispatcher::qt_metacall
+20 (int (*)(...))QAbstractEventDispatcher::~QAbstractEventDispatcher
+24 (int (*)(...))QAbstractEventDispatcher::~QAbstractEventDispatcher
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+64 (int (*)(...))__cxa_pure_virtual
+68 (int (*)(...))__cxa_pure_virtual
+72 (int (*)(...))__cxa_pure_virtual
+76 (int (*)(...))__cxa_pure_virtual
+80 (int (*)(...))__cxa_pure_virtual
+84 (int (*)(...))__cxa_pure_virtual
+88 (int (*)(...))__cxa_pure_virtual
+92 (int (*)(...))__cxa_pure_virtual
+96 (int (*)(...))__cxa_pure_virtual
+100 (int (*)(...))__cxa_pure_virtual
+104 (int (*)(...))QAbstractEventDispatcher::startingUp
+108 (int (*)(...))QAbstractEventDispatcher::closingDown
+
+Class QAbstractEventDispatcher
+ size=8 align=4
+ base size=8 base align=4
+QAbstractEventDispatcher (0xb44bf168) 0
+ vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 8u)
+ QObject (0xb437e348) 0
+ primary-for QAbstractEventDispatcher (0xb44bf168)
+
+Vtable for QAbstractNativeEventFilter
+QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter)
+8 (int (*)(...))QAbstractNativeEventFilter::~QAbstractNativeEventFilter
+12 (int (*)(...))QAbstractNativeEventFilter::~QAbstractNativeEventFilter
+16 (int (*)(...))__cxa_pure_virtual
+
+Class QAbstractNativeEventFilter
+ size=8 align=4
+ base size=8 base align=4
+QAbstractNativeEventFilter (0xb437efc0) 0
+ vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 8u)
+
+Class QBasicTimer
+ size=4 align=4
+ base size=4 base align=4
+QBasicTimer (0xb4392268) 0
+
+Vtable for QEvent
+QEvent::_ZTV6QEvent: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI6QEvent)
+8 (int (*)(...))QEvent::~QEvent
+12 (int (*)(...))QEvent::~QEvent
+
+Class QEvent
+ size=12 align=4
+ base size=12 base align=4
+QEvent (0xb4392a10) 0
+ vptr=((& QEvent::_ZTV6QEvent) + 8u)
+
+Vtable for QTimerEvent
+QTimerEvent::_ZTV11QTimerEvent: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QTimerEvent)
+8 (int (*)(...))QTimerEvent::~QTimerEvent
+12 (int (*)(...))QTimerEvent::~QTimerEvent
+
+Class QTimerEvent
+ size=16 align=4
+ base size=16 base align=4
+QTimerEvent (0xb44bf258) 0
+ vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 8u)
+ QEvent (0xb43aa578) 0
+ primary-for QTimerEvent (0xb44bf258)
+
+Vtable for QChildEvent
+QChildEvent::_ZTV11QChildEvent: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QChildEvent)
+8 (int (*)(...))QChildEvent::~QChildEvent
+12 (int (*)(...))QChildEvent::~QChildEvent
+
+Class QChildEvent
+ size=16 align=4
+ base size=16 base align=4
+QChildEvent (0xb44bf294) 0
+ vptr=((& QChildEvent::_ZTV11QChildEvent) + 8u)
+ QEvent (0xb43aa738) 0
+ primary-for QChildEvent (0xb44bf294)
+
+Vtable for QDynamicPropertyChangeEvent
+QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent)
+8 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent
+12 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent
+
+Class QDynamicPropertyChangeEvent
+ size=16 align=4
+ base size=16 base align=4
+QDynamicPropertyChangeEvent (0xb44bf2d0) 0
+ vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 8u)
+ QEvent (0xb43aad58) 0
+ primary-for QDynamicPropertyChangeEvent (0xb44bf2d0)
+
+Vtable for QDeferredDeleteEvent
+QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI20QDeferredDeleteEvent)
+8 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent
+12 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent
+
+Class QDeferredDeleteEvent
+ size=16 align=4
+ base size=16 base align=4
+QDeferredDeleteEvent (0xb44bf30c) 0
+ vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 8u)
+ QEvent (0xb43aaf18) 0
+ primary-for QDeferredDeleteEvent (0xb44bf30c)
+
+Class QCoreApplication::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QCoreApplication::QPrivateSignal (0xb43b80e0) 0 empty
+
+Vtable for QCoreApplication
+QCoreApplication::_ZTV16QCoreApplication: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI16QCoreApplication)
+8 (int (*)(...))QCoreApplication::metaObject
+12 (int (*)(...))QCoreApplication::qt_metacast
+16 (int (*)(...))QCoreApplication::qt_metacall
+20 (int (*)(...))QCoreApplication::~QCoreApplication
+24 (int (*)(...))QCoreApplication::~QCoreApplication
+28 (int (*)(...))QCoreApplication::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QCoreApplication::notify
+60 (int (*)(...))QCoreApplication::compressEvent
+
+Class QCoreApplication
+ size=8 align=4
+ base size=8 base align=4
+QCoreApplication (0xb44bf348) 0
+ vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 8u)
+ QObject (0xb43b8000) 0
+ primary-for QCoreApplication (0xb44bf348)
+
+Class __exception
+ size=32 align=4
+ base size=32 base align=4
+__exception (0xb43c7150) 0
+
+Class QMetaMethod
+ size=8 align=4
+ base size=8 base align=4
+QMetaMethod (0xb43c7a48) 0
+
+Class QMetaEnum
+ size=8 align=4
+ base size=8 base align=4
+QMetaEnum (0xb4411e38) 0
+
+Class QMetaProperty
+ size=20 align=4
+ base size=20 base align=4
+QMetaProperty (0xb441d2d8) 0
+
+Class QMetaClassInfo
+ size=8 align=4
+ base size=8 base align=4
+QMetaClassInfo (0xb441d578) 0
+
+Class QMimeData::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QMimeData::QPrivateSignal (0xb441da10) 0 empty
+
+Vtable for QMimeData
+QMimeData::_ZTV9QMimeData: 17u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI9QMimeData)
+8 (int (*)(...))QMimeData::metaObject
+12 (int (*)(...))QMimeData::qt_metacast
+16 (int (*)(...))QMimeData::qt_metacall
+20 (int (*)(...))QMimeData::~QMimeData
+24 (int (*)(...))QMimeData::~QMimeData
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QMimeData::hasFormat
+60 (int (*)(...))QMimeData::formats
+64 (int (*)(...))QMimeData::retrieveData
+
+Class QMimeData
+ size=8 align=4
+ base size=8 base align=4
+QMimeData (0xb44bf384) 0
+ vptr=((& QMimeData::_ZTV9QMimeData) + 8u)
+ QObject (0xb441d930) 0
+ primary-for QMimeData (0xb44bf384)
+
+Class QObjectCleanupHandler::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QObjectCleanupHandler::QPrivateSignal (0xb44341c0) 0 empty
+
+Vtable for QObjectCleanupHandler
+QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI21QObjectCleanupHandler)
+8 (int (*)(...))QObjectCleanupHandler::metaObject
+12 (int (*)(...))QObjectCleanupHandler::qt_metacast
+16 (int (*)(...))QObjectCleanupHandler::qt_metacall
+20 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler
+24 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QObjectCleanupHandler
+ size=12 align=4
+ base size=12 base align=4
+QObjectCleanupHandler (0xb44bf3c0) 0
+ vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 8u)
+ QObject (0xb44340e0) 0
+ primary-for QObjectCleanupHandler (0xb44bf3c0)
+
+Class QSharedMemory::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSharedMemory::QPrivateSignal (0xb4434cb0) 0 empty
+
+Vtable for QSharedMemory
+QSharedMemory::_ZTV13QSharedMemory: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI13QSharedMemory)
+8 (int (*)(...))QSharedMemory::metaObject
+12 (int (*)(...))QSharedMemory::qt_metacast
+16 (int (*)(...))QSharedMemory::qt_metacall
+20 (int (*)(...))QSharedMemory::~QSharedMemory
+24 (int (*)(...))QSharedMemory::~QSharedMemory
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QSharedMemory
+ size=8 align=4
+ base size=8 base align=4
+QSharedMemory (0xb44bf3fc) 0
+ vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 8u)
+ QObject (0xb4434bd0) 0
+ primary-for QSharedMemory (0xb44bf3fc)
+
+Class QSignalMapper::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSignalMapper::QPrivateSignal (0xb4254700) 0 empty
+
+Vtable for QSignalMapper
+QSignalMapper::_ZTV13QSignalMapper: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI13QSignalMapper)
+8 (int (*)(...))QSignalMapper::metaObject
+12 (int (*)(...))QSignalMapper::qt_metacast
+16 (int (*)(...))QSignalMapper::qt_metacall
+20 (int (*)(...))QSignalMapper::~QSignalMapper
+24 (int (*)(...))QSignalMapper::~QSignalMapper
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QSignalMapper
+ size=8 align=4
+ base size=8 base align=4
+QSignalMapper (0xb44bf438) 0
+ vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 8u)
+ QObject (0xb4254620) 0
+ primary-for QSignalMapper (0xb44bf438)
+
+Class QSocketNotifier::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSocketNotifier::QPrivateSignal (0xb4263380) 0 empty
+
+Vtable for QSocketNotifier
+QSocketNotifier::_ZTV15QSocketNotifier: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI15QSocketNotifier)
+8 (int (*)(...))QSocketNotifier::metaObject
+12 (int (*)(...))QSocketNotifier::qt_metacast
+16 (int (*)(...))QSocketNotifier::qt_metacall
+20 (int (*)(...))QSocketNotifier::~QSocketNotifier
+24 (int (*)(...))QSocketNotifier::~QSocketNotifier
+28 (int (*)(...))QSocketNotifier::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QSocketNotifier
+ size=8 align=4
+ base size=8 base align=4
+QSocketNotifier (0xb44bf474) 0
+ vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 8u)
+ QObject (0xb42632a0) 0
+ primary-for QSocketNotifier (0xb44bf474)
+
+Class QSystemSemaphore
+ size=4 align=4
+ base size=4 base align=4
+QSystemSemaphore (0xb4263b98) 0
+
+Class QTimer::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QTimer::QPrivateSignal (0xb427a118) 0 empty
+
+Vtable for QTimer
+QTimer::_ZTV6QTimer: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI6QTimer)
+8 (int (*)(...))QTimer::metaObject
+12 (int (*)(...))QTimer::qt_metacast
+16 (int (*)(...))QTimer::qt_metacall
+20 (int (*)(...))QTimer::~QTimer
+24 (int (*)(...))QTimer::~QTimer
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QTimer::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QTimer
+ size=24 align=4
+ base size=21 base align=4
+QTimer (0xb44bf4ec) 0
+ vptr=((& QTimer::_ZTV6QTimer) + 8u)
+ QObject (0xb427a038) 0
+ primary-for QTimer (0xb44bf4ec)
+
+Class QTranslator::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QTranslator::QPrivateSignal (0xb427afc0) 0 empty
+
+Vtable for QTranslator
+QTranslator::_ZTV11QTranslator: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QTranslator)
+8 (int (*)(...))QTranslator::metaObject
+12 (int (*)(...))QTranslator::qt_metacast
+16 (int (*)(...))QTranslator::qt_metacall
+20 (int (*)(...))QTranslator::~QTranslator
+24 (int (*)(...))QTranslator::~QTranslator
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QTranslator::translate
+60 (int (*)(...))QTranslator::isEmpty
+
+Class QTranslator
+ size=8 align=4
+ base size=8 base align=4
+QTranslator (0xb44bf528) 0
+ vptr=((& QTranslator::_ZTV11QTranslator) + 8u)
+ QObject (0xb427aee0) 0
+ primary-for QTranslator (0xb44bf528)
+
+Class QMimeType
+ size=4 align=4
+ base size=4 base align=4
+QMimeType (0xb428c850) 0
+
+Class QMimeDatabase
+ size=4 align=4
+ base size=4 base align=4
+QMimeDatabase (0xb428cc40) 0
+
+Vtable for QFactoryInterface
+QFactoryInterface::_ZTV17QFactoryInterface: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI17QFactoryInterface)
+8 (int (*)(...))QFactoryInterface::~QFactoryInterface
+12 (int (*)(...))QFactoryInterface::~QFactoryInterface
+16 (int (*)(...))__cxa_pure_virtual
+
+Class QFactoryInterface
+ size=4 align=4
+ base size=4 base align=4
+QFactoryInterface (0xb42a53b8) 0 nearly-empty
+ vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 8u)
+
+Class QLibrary::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QLibrary::QPrivateSignal (0xb42a5888) 0 empty
+
+Vtable for QLibrary
+QLibrary::_ZTV8QLibrary: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI8QLibrary)
+8 (int (*)(...))QLibrary::metaObject
+12 (int (*)(...))QLibrary::qt_metacast
+16 (int (*)(...))QLibrary::qt_metacall
+20 (int (*)(...))QLibrary::~QLibrary
+24 (int (*)(...))QLibrary::~QLibrary
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QLibrary
+ size=16 align=4
+ base size=13 base align=4
+QLibrary (0xb44bf618) 0
+ vptr=((& QLibrary::_ZTV8QLibrary) + 8u)
+ QObject (0xb42a57a8) 0
+ primary-for QLibrary (0xb44bf618)
+
+Class QStaticPlugin
+ size=8 align=4
+ base size=8 base align=4
+QStaticPlugin (0xb42bdf18) 0
+
+Class QPluginLoader::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QPluginLoader::QPrivateSignal (0xb42d2000) 0 empty
+
+Vtable for QPluginLoader
+QPluginLoader::_ZTV13QPluginLoader: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI13QPluginLoader)
+8 (int (*)(...))QPluginLoader::metaObject
+12 (int (*)(...))QPluginLoader::qt_metacast
+16 (int (*)(...))QPluginLoader::qt_metacall
+20 (int (*)(...))QPluginLoader::~QPluginLoader
+24 (int (*)(...))QPluginLoader::~QPluginLoader
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QPluginLoader
+ size=16 align=4
+ base size=13 base align=4
+QPluginLoader (0xb44bf690) 0
+ vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 8u)
+ QObject (0xb42bdf50) 0
+ primary-for QPluginLoader (0xb44bf690)
+
+Class QUuid
+ size=16 align=4
+ base size=16 base align=4
+QUuid (0xb42d2738) 0
+
+Class QAbstractState::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractState::QPrivateSignal (0xb42e5b98) 0 empty
+
+Vtable for QAbstractState
+QAbstractState::_ZTV14QAbstractState: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI14QAbstractState)
+8 (int (*)(...))QAbstractState::metaObject
+12 (int (*)(...))QAbstractState::qt_metacast
+16 (int (*)(...))QAbstractState::qt_metacall
+20 (int (*)(...))QAbstractState::~QAbstractState
+24 (int (*)(...))QAbstractState::~QAbstractState
+28 (int (*)(...))QAbstractState::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+
+Class QAbstractState
+ size=8 align=4
+ base size=8 base align=4
+QAbstractState (0xb44bf6cc) 0
+ vptr=((& QAbstractState::_ZTV14QAbstractState) + 8u)
+ QObject (0xb42e5ab8) 0
+ primary-for QAbstractState (0xb44bf6cc)
+
+Class QAbstractTransition::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractTransition::QPrivateSignal (0xb42f93b8) 0 empty
+
+Vtable for QAbstractTransition
+QAbstractTransition::_ZTV19QAbstractTransition: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI19QAbstractTransition)
+8 (int (*)(...))QAbstractTransition::metaObject
+12 (int (*)(...))QAbstractTransition::qt_metacast
+16 (int (*)(...))QAbstractTransition::qt_metacall
+20 (int (*)(...))QAbstractTransition::~QAbstractTransition
+24 (int (*)(...))QAbstractTransition::~QAbstractTransition
+28 (int (*)(...))QAbstractTransition::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+
+Class QAbstractTransition
+ size=8 align=4
+ base size=8 base align=4
+QAbstractTransition (0xb44bf708) 0
+ vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 8u)
+ QObject (0xb42f92d8) 0
+ primary-for QAbstractTransition (0xb44bf708)
+
+Class QEventTransition::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QEventTransition::QPrivateSignal (0xb42f9bd0) 0 empty
+
+Vtable for QEventTransition
+QEventTransition::_ZTV16QEventTransition: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI16QEventTransition)
+8 (int (*)(...))QEventTransition::metaObject
+12 (int (*)(...))QEventTransition::qt_metacast
+16 (int (*)(...))QEventTransition::qt_metacall
+20 (int (*)(...))QEventTransition::~QEventTransition
+24 (int (*)(...))QEventTransition::~QEventTransition
+28 (int (*)(...))QEventTransition::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QEventTransition::eventTest
+60 (int (*)(...))QEventTransition::onTransition
+
+Class QEventTransition
+ size=8 align=4
+ base size=8 base align=4
+QEventTransition (0xb44bf744) 0
+ vptr=((& QEventTransition::_ZTV16QEventTransition) + 8u)
+ QAbstractTransition (0xb44bf780) 0
+ primary-for QEventTransition (0xb44bf744)
+ QObject (0xb42f9af0) 0
+ primary-for QAbstractTransition (0xb44bf780)
+
+Class QFinalState::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QFinalState::QPrivateSignal (0xb430a690) 0 empty
+
+Vtable for QFinalState
+QFinalState::_ZTV11QFinalState: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QFinalState)
+8 (int (*)(...))QFinalState::metaObject
+12 (int (*)(...))QFinalState::qt_metacast
+16 (int (*)(...))QFinalState::qt_metacall
+20 (int (*)(...))QFinalState::~QFinalState
+24 (int (*)(...))QFinalState::~QFinalState
+28 (int (*)(...))QFinalState::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QFinalState::onEntry
+60 (int (*)(...))QFinalState::onExit
+
+Class QFinalState
+ size=8 align=4
+ base size=8 base align=4
+QFinalState (0xb44bf7bc) 0
+ vptr=((& QFinalState::_ZTV11QFinalState) + 8u)
+ QAbstractState (0xb44bf7f8) 0
+ primary-for QFinalState (0xb44bf7bc)
+ QObject (0xb430a5b0) 0
+ primary-for QAbstractState (0xb44bf7f8)
+
+Class QHistoryState::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QHistoryState::QPrivateSignal (0xb430ae38) 0 empty
+
+Vtable for QHistoryState
+QHistoryState::_ZTV13QHistoryState: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI13QHistoryState)
+8 (int (*)(...))QHistoryState::metaObject
+12 (int (*)(...))QHistoryState::qt_metacast
+16 (int (*)(...))QHistoryState::qt_metacall
+20 (int (*)(...))QHistoryState::~QHistoryState
+24 (int (*)(...))QHistoryState::~QHistoryState
+28 (int (*)(...))QHistoryState::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QHistoryState::onEntry
+60 (int (*)(...))QHistoryState::onExit
+
+Class QHistoryState
+ size=8 align=4
+ base size=8 base align=4
+QHistoryState (0xb44bf834) 0
+ vptr=((& QHistoryState::_ZTV13QHistoryState) + 8u)
+ QAbstractState (0xb44bf870) 0
+ primary-for QHistoryState (0xb44bf834)
+ QObject (0xb430ad58) 0
+ primary-for QAbstractState (0xb44bf870)
+
+Class QSignalTransition::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSignalTransition::QPrivateSignal (0xb431b7e0) 0 empty
+
+Vtable for QSignalTransition
+QSignalTransition::_ZTV17QSignalTransition: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI17QSignalTransition)
+8 (int (*)(...))QSignalTransition::metaObject
+12 (int (*)(...))QSignalTransition::qt_metacast
+16 (int (*)(...))QSignalTransition::qt_metacall
+20 (int (*)(...))QSignalTransition::~QSignalTransition
+24 (int (*)(...))QSignalTransition::~QSignalTransition
+28 (int (*)(...))QSignalTransition::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QSignalTransition::eventTest
+60 (int (*)(...))QSignalTransition::onTransition
+
+Class QSignalTransition
+ size=8 align=4
+ base size=8 base align=4
+QSignalTransition (0xb44bf8ac) 0
+ vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 8u)
+ QAbstractTransition (0xb44bf8e8) 0
+ primary-for QSignalTransition (0xb44bf8ac)
+ QObject (0xb431b700) 0
+ primary-for QAbstractTransition (0xb44bf8e8)
+
+Class QState::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QState::QPrivateSignal (0xb432c0e0) 0 empty
+
+Vtable for QState
+QState::_ZTV6QState: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI6QState)
+8 (int (*)(...))QState::metaObject
+12 (int (*)(...))QState::qt_metacast
+16 (int (*)(...))QState::qt_metacall
+20 (int (*)(...))QState::~QState
+24 (int (*)(...))QState::~QState
+28 (int (*)(...))QState::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QState::onEntry
+60 (int (*)(...))QState::onExit
+
+Class QState
+ size=8 align=4
+ base size=8 base align=4
+QState (0xb44bf924) 0
+ vptr=((& QState::_ZTV6QState) + 8u)
+ QAbstractState (0xb44bf960) 0
+ primary-for QState (0xb44bf924)
+ QObject (0xb432c000) 0
+ primary-for QAbstractState (0xb44bf960)
+
+Class QStateMachine::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QStateMachine::QPrivateSignal (0xb432cee0) 0 empty
+
+Vtable for QStateMachine::SignalEvent
+QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE)
+8 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent
+12 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent
+
+Class QStateMachine::SignalEvent
+ size=24 align=4
+ base size=24 base align=4
+QStateMachine::SignalEvent (0xb44bfa50) 0
+ vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 8u)
+ QEvent (0xb432cf18) 0
+ primary-for QStateMachine::SignalEvent (0xb44bfa50)
+
+Vtable for QStateMachine::WrappedEvent
+QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE)
+8 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent
+12 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent
+
+Class QStateMachine::WrappedEvent
+ size=20 align=4
+ base size=20 base align=4
+QStateMachine::WrappedEvent (0xb44bfa8c) 0
+ vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 8u)
+ QEvent (0xb413e188) 0
+ primary-for QStateMachine::WrappedEvent (0xb44bfa8c)
+
+Vtable for QStateMachine
+QStateMachine::_ZTV13QStateMachine: 20u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI13QStateMachine)
+8 (int (*)(...))QStateMachine::metaObject
+12 (int (*)(...))QStateMachine::qt_metacast
+16 (int (*)(...))QStateMachine::qt_metacall
+20 (int (*)(...))QStateMachine::~QStateMachine
+24 (int (*)(...))QStateMachine::~QStateMachine
+28 (int (*)(...))QStateMachine::event
+32 (int (*)(...))QStateMachine::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QStateMachine::onEntry
+60 (int (*)(...))QStateMachine::onExit
+64 (int (*)(...))QStateMachine::beginSelectTransitions
+68 (int (*)(...))QStateMachine::endSelectTransitions
+72 (int (*)(...))QStateMachine::beginMicrostep
+76 (int (*)(...))QStateMachine::endMicrostep
+
+Class QStateMachine
+ size=8 align=4
+ base size=8 base align=4
+QStateMachine (0xb44bf99c) 0
+ vptr=((& QStateMachine::_ZTV13QStateMachine) + 8u)
+ QState (0xb44bf9d8) 0
+ primary-for QStateMachine (0xb44bf99c)
+ QAbstractState (0xb44bfa14) 0
+ primary-for QState (0xb44bf9d8)
+ QObject (0xb432ce00) 0
+ primary-for QAbstractState (0xb44bfa14)
+
+Vtable for QException
+QException::_ZTV10QException: 7u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI10QException)
+8 (int (*)(...))QException::~QException
+12 (int (*)(...))QException::~QException
+16 (int (*)(...))std::exception::what
+20 (int (*)(...))QException::raise
+24 (int (*)(...))QException::clone
+
+Class QException
+ size=4 align=4
+ base size=4 base align=4
+QException (0xb44bfac8) 0 nearly-empty
+ vptr=((& QException::_ZTV10QException) + 8u)
+ std::exception (0xb414da10) 0 nearly-empty
+ primary-for QException (0xb44bfac8)
+
+Vtable for QUnhandledException
+QUnhandledException::_ZTV19QUnhandledException: 7u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI19QUnhandledException)
+8 (int (*)(...))QUnhandledException::~QUnhandledException
+12 (int (*)(...))QUnhandledException::~QUnhandledException
+16 (int (*)(...))std::exception::what
+20 (int (*)(...))QUnhandledException::raise
+24 (int (*)(...))QUnhandledException::clone
+
+Class QUnhandledException
+ size=4 align=4
+ base size=4 base align=4
+QUnhandledException (0xb44bfb04) 0 nearly-empty
+ vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 8u)
+ QException (0xb44bfb40) 0 nearly-empty
+ primary-for QUnhandledException (0xb44bfb04)
+ std::exception (0xb414db28) 0 nearly-empty
+ primary-for QException (0xb44bfb40)
+
+Class QtPrivate::ExceptionHolder
+ size=4 align=4
+ base size=4 base align=4
+QtPrivate::ExceptionHolder (0xb414dc40) 0
+
+Class QtPrivate::ExceptionStore
+ size=4 align=4
+ base size=4 base align=4
+QtPrivate::ExceptionStore (0xb414de70) 0
+
+Vtable for QRunnable
+QRunnable::_ZTV9QRunnable: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI9QRunnable)
+8 (int (*)(...))__cxa_pure_virtual
+12 (int (*)(...))QRunnable::~QRunnable
+16 (int (*)(...))QRunnable::~QRunnable
+
+Class QRunnable
+ size=8 align=4
+ base size=8 base align=4
+QRunnable (0xb414dea8) 0
+ vptr=((& QRunnable::_ZTV9QRunnable) + 8u)
+
+Class QBasicMutex
+ size=4 align=4
+ base size=4 base align=4
+QBasicMutex (0xb4167428) 0
+
+Class QMutex
+ size=4 align=4
+ base size=4 base align=4
+QMutex (0xb44bfbf4) 0
+ QBasicMutex (0xb4167d58) 0
+
+Class QMutexLocker
+ size=4 align=4
+ base size=4 base align=4
+QMutexLocker (0xb4174150) 0
+
+Class QtPrivate::ResultItem
+ size=8 align=4
+ base size=8 base align=4
+QtPrivate::ResultItem (0xb417b1f8) 0
+
+Class QtPrivate::ResultIteratorBase
+ size=8 align=4
+ base size=8 base align=4
+QtPrivate::ResultIteratorBase (0xb417bc08) 0
+
+Vtable for QtPrivate::ResultStoreBase
+QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE)
+8 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase
+12 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase
+
+Class QtPrivate::ResultStoreBase
+ size=28 align=4
+ base size=28 base align=4
+QtPrivate::ResultStoreBase (0xb4199118) 0
+ vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 8u)
+
+Vtable for QFutureInterfaceBase
+QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI20QFutureInterfaceBase)
+8 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase
+12 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase
+
+Class QFutureInterfaceBase
+ size=8 align=4
+ base size=8 base align=4
+QFutureInterfaceBase (0xb4199850) 0
+ vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 8u)
+
+Class QFutureWatcherBase::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QFutureWatcherBase::QPrivateSignal (0xb420d1f8) 0 empty
+
+Vtable for QFutureWatcherBase
+QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QFutureWatcherBase)
+8 (int (*)(...))QFutureWatcherBase::metaObject
+12 (int (*)(...))QFutureWatcherBase::qt_metacast
+16 (int (*)(...))QFutureWatcherBase::qt_metacall
+20 (int (*)(...))QFutureWatcherBase::~QFutureWatcherBase
+24 (int (*)(...))QFutureWatcherBase::~QFutureWatcherBase
+28 (int (*)(...))QFutureWatcherBase::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QFutureWatcherBase::connectNotify
+52 (int (*)(...))QFutureWatcherBase::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+
+Class QFutureWatcherBase
+ size=8 align=4
+ base size=8 base align=4
+QFutureWatcherBase (0xb44bfdd4) 0
+ vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 8u)
+ QObject (0xb420d118) 0
+ primary-for QFutureWatcherBase (0xb44bfdd4)
+
+Class QReadWriteLock
+ size=4 align=4
+ base size=4 base align=4
+QReadWriteLock (0xb4227690) 0
+
+Class QReadLocker
+ size=4 align=4
+ base size=4 base align=4
+QReadLocker (0xb4227a10) 0
+
+Class QWriteLocker
+ size=4 align=4
+ base size=4 base align=4
+QWriteLocker (0xb4231c40) 0
+
+Class QSemaphore
+ size=4 align=4
+ base size=4 base align=4
+QSemaphore (0xb4239e70) 0
+
+Class QThread::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QThread::QPrivateSignal (0xb403b1f8) 0 empty
+
+Vtable for QThread
+QThread::_ZTV7QThread: 15u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI7QThread)
+8 (int (*)(...))QThread::metaObject
+12 (int (*)(...))QThread::qt_metacast
+16 (int (*)(...))QThread::qt_metacall
+20 (int (*)(...))QThread::~QThread
+24 (int (*)(...))QThread::~QThread
+28 (int (*)(...))QThread::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QThread::run
+
+Class QThread
+ size=8 align=4
+ base size=8 base align=4
+QThread (0xb44bff78) 0
+ vptr=((& QThread::_ZTV7QThread) + 8u)
+ QObject (0xb403b118) 0
+ primary-for QThread (0xb44bff78)
+
+Class QThreadPool::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QThreadPool::QPrivateSignal (0xb403baf0) 0 empty
+
+Vtable for QThreadPool
+QThreadPool::_ZTV11QThreadPool: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QThreadPool)
+8 (int (*)(...))QThreadPool::metaObject
+12 (int (*)(...))QThreadPool::qt_metacast
+16 (int (*)(...))QThreadPool::qt_metacall
+20 (int (*)(...))QThreadPool::~QThreadPool
+24 (int (*)(...))QThreadPool::~QThreadPool
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QThreadPool
+ size=8 align=4
+ base size=8 base align=4
+QThreadPool (0xb404a000) 0
+ vptr=((& QThreadPool::_ZTV11QThreadPool) + 8u)
+ QObject (0xb403ba10) 0
+ primary-for QThreadPool (0xb404a000)
+
+Class QThreadStorageData
+ size=4 align=4
+ base size=4 base align=4
+QThreadStorageData (0xb4053038) 0
+
+Class QWaitCondition
+ size=4 align=4
+ base size=4 base align=4
+QWaitCondition (0xb4053460) 0
+
+Class QBitArray
+ size=4 align=4
+ base size=4 base align=4
+QBitArray (0xb408f428) 0
+
+Class QBitRef
+ size=8 align=4
+ base size=8 base align=4
+QBitRef (0xb40aaf88) 0
+
+Class QByteArrayMatcher::Data
+ size=264 align=4
+ base size=264 base align=4
+QByteArrayMatcher::Data (0xb40c6000) 0
+
+Class QByteArrayMatcher
+ size=1032 align=4
+ base size=1032 base align=4
+QByteArrayMatcher (0xb40bace8) 0
+
+Class QCryptographicHash
+ size=4 align=4
+ base size=4 base align=4
+QCryptographicHash (0xb40c68f8) 0
+
+Class QElapsedTimer
+ size=16 align=4
+ base size=16 base align=4
+QElapsedTimer (0xb40c6c40) 0
+
+Class QPoint
+ size=8 align=4
+ base size=8 base align=4
+QPoint (0xb40e8150) 0
+
+Class QPointF
+ size=16 align=4
+ base size=16 base align=4
+QPointF (0xb40ffc78) 0
+
+Class QLine
+ size=16 align=4
+ base size=16 base align=4
+QLine (0xb411fb60) 0
+
+Class QLineF
+ size=32 align=4
+ base size=32 base align=4
+QLineF (0xb3f39ce8) 0
+
+Class QLinkedListData
+ size=20 align=4
+ base size=20 base align=4
+QLinkedListData (0xb3f641f8) 0
+
+Class QSize
+ size=8 align=4
+ base size=8 base align=4
+QSize (0xb3fc00e0) 0
+
+Class QSizeF
+ size=16 align=4
+ base size=16 base align=4
+QSizeF (0xb3fd9b98) 0
+
+Class QRect
+ size=16 align=4
+ base size=16 base align=4
+QRect (0xb40017e0) 0
+
+Class QRectF
+ size=32 align=4
+ base size=32 base align=4
+QRectF (0xb3e48070) 0
+
+Class QMargins
+ size=16 align=4
+ base size=16 base align=4
+QMargins (0xb3e8b0e0) 0
+
+Class QMessageAuthenticationCode
+ size=4 align=4
+ base size=4 base align=4
+QMessageAuthenticationCode (0xb3ea4f18) 0
+
+Class QRegularExpression
+ size=4 align=4
+ base size=4 base align=4
+QRegularExpression (0xb3eb7268) 0
+
+Class QRegularExpressionMatch
+ size=4 align=4
+ base size=4 base align=4
+QRegularExpressionMatch (0xb3eeed90) 0
+
+Class QRegularExpressionMatchIterator
+ size=4 align=4
+ base size=4 base align=4
+QRegularExpressionMatchIterator (0xb3eff4d0) 0
+
+Class QAbstractConcatenable
+ size=1 align=1
+ base size=0 base align=1
+QAbstractConcatenable (0xb3efff18) 0 empty
+
+Class QTextBoundaryFinder
+ size=28 align=4
+ base size=28 base align=4
+QTextBoundaryFinder (0xb3d5a9a0) 0
+
+Class QTimeLine::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QTimeLine::QPrivateSignal (0xb3d8c150) 0 empty
+
+Vtable for QTimeLine
+QTimeLine::_ZTV9QTimeLine: 15u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI9QTimeLine)
+8 (int (*)(...))QTimeLine::metaObject
+12 (int (*)(...))QTimeLine::qt_metacast
+16 (int (*)(...))QTimeLine::qt_metacall
+20 (int (*)(...))QTimeLine::~QTimeLine
+24 (int (*)(...))QTimeLine::~QTimeLine
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QTimeLine::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QTimeLine::valueForTime
+
+Class QTimeLine
+ size=8 align=4
+ base size=8 base align=4
+QTimeLine (0xb404a8e8) 0
+ vptr=((& QTimeLine::_ZTV9QTimeLine) + 8u)
+ QObject (0xb3d8c070) 0
+ primary-for QTimeLine (0xb404a8e8)
+
+Class QXmlStreamStringRef
+ size=12 align=4
+ base size=12 base align=4
+QXmlStreamStringRef (0xb3d8cc40) 0
+
+Class QXmlStreamAttribute
+ size=56 align=4
+ base size=53 base align=4
+QXmlStreamAttribute (0xb3da2b98) 0
+
+Class QXmlStreamAttributes
+ size=4 align=4
+ base size=4 base align=4
+QXmlStreamAttributes (0xb404a960) 0
+ QVector<QXmlStreamAttribute> (0xb3dabe70) 0
+
+Class QXmlStreamNamespaceDeclaration
+ size=28 align=4
+ base size=28 base align=4
+QXmlStreamNamespaceDeclaration (0xb3dd4150) 0
+
+Class QXmlStreamNotationDeclaration
+ size=40 align=4
+ base size=40 base align=4
+QXmlStreamNotationDeclaration (0xb3dd4ab8) 0
+
+Class QXmlStreamEntityDeclaration
+ size=64 align=4
+ base size=64 base align=4
+QXmlStreamEntityDeclaration (0xb3de0508) 0
+
+Vtable for QXmlStreamEntityResolver
+QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver)
+8 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver
+12 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver
+16 (int (*)(...))QXmlStreamEntityResolver::resolveEntity
+20 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity
+
+Class QXmlStreamEntityResolver
+ size=4 align=4
+ base size=4 base align=4
+QXmlStreamEntityResolver (0xb3df61c0) 0 nearly-empty
+ vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 8u)
+
+Class QXmlStreamReader
+ size=4 align=4
+ base size=4 base align=4
+QXmlStreamReader (0xb3df6268) 0
+
+Class QXmlStreamWriter
+ size=4 align=4
+ base size=4 base align=4
+QXmlStreamWriter (0xb3e17850) 0
+
+Class QtConcurrent::ThreadEngineBarrier
+ size=8 align=4
+ base size=8 base align=4
+QtConcurrent::ThreadEngineBarrier (0xb3e34038) 0
+
+Vtable for QtConcurrent::ThreadEngineBase
+QtConcurrent::ThreadEngineBase::_ZTVN12QtConcurrent16ThreadEngineBaseE: 11u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTIN12QtConcurrent16ThreadEngineBaseE)
+8 (int (*)(...))QtConcurrent::ThreadEngineBase::run
+12 (int (*)(...))QtConcurrent::ThreadEngineBase::~ThreadEngineBase
+16 (int (*)(...))QtConcurrent::ThreadEngineBase::~ThreadEngineBase
+20 (int (*)(...))QtConcurrent::ThreadEngineBase::start
+24 (int (*)(...))QtConcurrent::ThreadEngineBase::finish
+28 (int (*)(...))QtConcurrent::ThreadEngineBase::threadFunction
+32 (int (*)(...))QtConcurrent::ThreadEngineBase::shouldStartThread
+36 (int (*)(...))QtConcurrent::ThreadEngineBase::shouldThrottleThread
+40 (int (*)(...))__cxa_pure_virtual
+
+Class QtConcurrent::ThreadEngineBase
+ size=28 align=4
+ base size=28 base align=4
+QtConcurrent::ThreadEngineBase (0xb404a9d8) 0
+ vptr=((& QtConcurrent::ThreadEngineBase::_ZTVN12QtConcurrent16ThreadEngineBaseE) + 8u)
+ QRunnable (0xb3e340a8) 0
+ primary-for QtConcurrent::ThreadEngineBase (0xb404a9d8)
+
+VTT for QtConcurrent::ThreadEngine<void>
+QtConcurrent::ThreadEngine<void>::_ZTTN12QtConcurrent12ThreadEngineIvEE: 2u entries
+0 ((& QtConcurrent::ThreadEngine<void>::_ZTVN12QtConcurrent12ThreadEngineIvEE) + 12u)
+4 ((& QtConcurrent::ThreadEngine<void>::_ZTVN12QtConcurrent12ThreadEngineIvEE) + 68u)
+
+Class QtConcurrent::BlockSizeManager
+ size=72 align=4
+ base size=72 base align=4
+QtConcurrent::BlockSizeManager (0xb3e34f18) 0
+
+Class QtPrivate::PushBackWrapper
+ size=1 align=1
+ base size=0 base align=1
+QtPrivate::PushBackWrapper (0xb3cc1968) 0 empty
+
diff --git a/tests/auto/bic/data/QtCore.5.1.0.linux-gcc-ia32.txt b/tests/auto/bic/data/QtCore.5.1.0.linux-gcc-ia32.txt
new file mode 100644
index 0000000000..8aedc2454e
--- /dev/null
+++ b/tests/auto/bic/data/QtCore.5.1.0.linux-gcc-ia32.txt
@@ -0,0 +1,3467 @@
+Class std::__true_type
+ size=1 align=1
+ base size=0 base align=1
+std::__true_type (0xb7255620) 0 empty
+
+Class std::__false_type
+ size=1 align=1
+ base size=0 base align=1
+std::__false_type (0xb7255658) 0 empty
+
+Class std::input_iterator_tag
+ size=1 align=1
+ base size=0 base align=1
+std::input_iterator_tag (0xb5f886c8) 0 empty
+
+Class std::output_iterator_tag
+ size=1 align=1
+ base size=0 base align=1
+std::output_iterator_tag (0xb5f88700) 0 empty
+
+Class std::forward_iterator_tag
+ size=1 align=1
+ base size=1 base align=1
+std::forward_iterator_tag (0xb7186a50) 0 empty
+ std::input_iterator_tag (0xb5f88738) 0 empty
+
+Class std::bidirectional_iterator_tag
+ size=1 align=1
+ base size=1 base align=1
+std::bidirectional_iterator_tag (0xb7186a8c) 0 empty
+ std::forward_iterator_tag (0xb7186ac8) 0 empty
+ std::input_iterator_tag (0xb5f88770) 0 empty
+
+Class std::random_access_iterator_tag
+ size=1 align=1
+ base size=1 base align=1
+std::random_access_iterator_tag (0xb7186b04) 0 empty
+ std::bidirectional_iterator_tag (0xb7186b40) 0 empty
+ std::forward_iterator_tag (0xb7186b7c) 0 empty
+ std::input_iterator_tag (0xb5f887a8) 0 empty
+
+Class wait
+ size=4 align=4
+ base size=4 base align=4
+wait (0xb5febdc8) 0
+
+Class __locale_struct
+ size=116 align=4
+ base size=116 base align=4
+__locale_struct (0xb5febf18) 0
+
+Class timespec
+ size=8 align=4
+ base size=8 base align=4
+timespec (0xb5febfc0) 0
+
+Class timeval
+ size=8 align=4
+ base size=8 base align=4
+timeval (0xb5feba48) 0
+
+Class __pthread_internal_slist
+ size=4 align=4
+ base size=4 base align=4
+__pthread_internal_slist (0xb6034070) 0
+
+Class random_data
+ size=28 align=4
+ base size=28 base align=4
+random_data (0xb6034380) 0
+
+Class drand48_data
+ size=24 align=4
+ base size=24 base align=4
+drand48_data (0xb60343b8) 0
+
+Vtable for std::exception
+std::exception::_ZTVSt9exception: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTISt9exception)
+8 (int (*)(...))std::exception::~exception
+12 (int (*)(...))std::exception::~exception
+16 (int (*)(...))std::exception::what
+
+Class std::exception
+ size=4 align=4
+ base size=4 base align=4
+std::exception (0xb6034af0) 0 nearly-empty
+ vptr=((& std::exception::_ZTVSt9exception) + 8u)
+
+Vtable for std::bad_exception
+std::bad_exception::_ZTVSt13bad_exception: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTISt13bad_exception)
+8 (int (*)(...))std::bad_exception::~bad_exception
+12 (int (*)(...))std::bad_exception::~bad_exception
+16 (int (*)(...))std::bad_exception::what
+
+Class std::bad_exception
+ size=4 align=4
+ base size=4 base align=4
+std::bad_exception (0xb7186d98) 0 nearly-empty
+ vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 8u)
+ std::exception (0xb6034d20) 0 nearly-empty
+ primary-for std::bad_exception (0xb7186d98)
+
+Vtable for std::bad_alloc
+std::bad_alloc::_ZTVSt9bad_alloc: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTISt9bad_alloc)
+8 (int (*)(...))std::bad_alloc::~bad_alloc
+12 (int (*)(...))std::bad_alloc::~bad_alloc
+16 (int (*)(...))std::bad_alloc::what
+
+Class std::bad_alloc
+ size=4 align=4
+ base size=4 base align=4
+std::bad_alloc (0xb7186dd4) 0 nearly-empty
+ vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 8u)
+ std::exception (0xb6034f50) 0 nearly-empty
+ primary-for std::bad_alloc (0xb7186dd4)
+
+Class std::nothrow_t
+ size=1 align=1
+ base size=0 base align=1
+std::nothrow_t (0xb5eb40e0) 0 empty
+
+Class qIsNull(double)::U
+ size=8 align=4
+ base size=8 base align=4
+qIsNull(double)::U (0xb5d978f8) 0
+
+Class qIsNull(float)::U
+ size=4 align=4
+ base size=4 base align=4
+qIsNull(float)::U (0xb5d979a0) 0
+
+Class QAtomicInt
+ size=4 align=4
+ base size=4 base align=4
+QAtomicInt (0xb5f3a564) 0
+ QBasicAtomicInteger<int> (0xb5e459a0) 0
+
+Class QMessageLogContext
+ size=20 align=4
+ base size=20 base align=4
+QMessageLogContext (0xb5e5d578) 0
+
+Class QMessageLogger
+ size=20 align=4
+ base size=20 base align=4
+QMessageLogger (0xb5e5dd58) 0
+
+Class QtPrivate::big_
+ size=2 align=1
+ base size=2 base align=1
+QtPrivate::big_ (0xb5c972a0) 0
+
+Class QFlag
+ size=4 align=4
+ base size=4 base align=4
+QFlag (0xb5ce2c08) 0
+
+Class QIncompatibleFlag
+ size=4 align=4
+ base size=4 base align=4
+QIncompatibleFlag (0xb5ce2f88) 0
+
+Class QSysInfo
+ size=1 align=1
+ base size=0 base align=1
+QSysInfo (0xb5ceb7e0) 0 empty
+
+Class QInternal
+ size=1 align=1
+ base size=0 base align=1
+QInternal (0xb5c40268) 0 empty
+
+Class QGenericArgument
+ size=8 align=4
+ base size=8 base align=4
+QGenericArgument (0xb5a80c08) 0
+
+Class QGenericReturnArgument
+ size=8 align=4
+ base size=8 base align=4
+QGenericReturnArgument (0xb5bdd294) 0
+ QGenericArgument (0xb5aba000) 0
+
+Class QMetaObject
+ size=24 align=4
+ base size=24 base align=4
+QMetaObject (0xb5aba3f0) 0
+
+Class QMetaObject::Connection
+ size=4 align=4
+ base size=4 base align=4
+QMetaObject::Connection (0xb5ace540) 0
+
+Class QLatin1Char
+ size=1 align=1
+ base size=1 base align=1
+QLatin1Char (0xb5aceee0) 0
+
+Class QChar
+ size=2 align=2
+ base size=2 base align=2
+QChar (0xb5ad9310) 0
+
+Class QtPrivate::RefCount
+ size=4 align=4
+ base size=4 base align=4
+QtPrivate::RefCount (0xb5b1f818) 0
+
+Class QArrayData
+ size=16 align=4
+ base size=16 base align=4
+QArrayData (0xb5b2a268) 0
+
+Class QByteArrayDataPtr
+ size=4 align=4
+ base size=4 base align=4
+QByteArrayDataPtr (0xb5b6c1f8) 0
+
+Class QByteArray
+ size=4 align=4
+ base size=4 base align=4
+QByteArray (0xb5b6c230) 0
+
+Class QByteRef
+ size=8 align=4
+ base size=8 base align=4
+QByteRef (0xb59ab9d8) 0
+
+Class lconv
+ size=56 align=4
+ base size=56 base align=4
+lconv (0xb5a24ee0) 0
+
+Vtable for __cxxabiv1::__forced_unwind
+__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE)
+8 (int (*)(...))__cxxabiv1::__forced_unwind::~__forced_unwind
+12 (int (*)(...))__cxxabiv1::__forced_unwind::~__forced_unwind
+16 (int (*)(...))__cxa_pure_virtual
+
+Class __cxxabiv1::__forced_unwind
+ size=4 align=4
+ base size=4 base align=4
+__cxxabiv1::__forced_unwind (0xb5a24f88) 0 nearly-empty
+ vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 8u)
+
+Class sched_param
+ size=4 align=4
+ base size=4 base align=4
+sched_param (0xb589ef18) 0
+
+Class __sched_param
+ size=4 align=4
+ base size=4 base align=4
+__sched_param (0xb589ef50) 0
+
+Class timex
+ size=128 align=4
+ base size=128 base align=4
+timex (0xb589efc0) 0
+
+Class tm
+ size=44 align=4
+ base size=44 base align=4
+tm (0xb58c5000) 0
+
+Class itimerspec
+ size=16 align=4
+ base size=16 base align=4
+itimerspec (0xb58c5070) 0
+
+Class _pthread_cleanup_buffer
+ size=16 align=4
+ base size=16 base align=4
+_pthread_cleanup_buffer (0xb58c50a8) 0
+
+Class __pthread_cleanup_frame
+ size=16 align=4
+ base size=16 base align=4
+__pthread_cleanup_frame (0xb58c5150) 0
+
+Class __pthread_cleanup_class
+ size=16 align=4
+ base size=16 base align=4
+__pthread_cleanup_class (0xb58c5188) 0
+
+Class QLatin1String
+ size=8 align=4
+ base size=8 base align=4
+QLatin1String (0xb57ce8f8) 0
+
+Class QStringDataPtr
+ size=4 align=4
+ base size=4 base align=4
+QStringDataPtr (0xb5675380) 0
+
+Class QString::Null
+ size=1 align=1
+ base size=0 base align=1
+QString::Null (0xb56bc8f8) 0 empty
+
+Class QString
+ size=4 align=4
+ base size=4 base align=4
+QString (0xb56753b8) 0
+
+Class QCharRef
+ size=8 align=4
+ base size=8 base align=4
+QCharRef (0xb572caf0) 0
+
+Class QStringRef
+ size=12 align=4
+ base size=12 base align=4
+QStringRef (0xb55af9d8) 0
+
+Class std::locale
+ size=4 align=4
+ base size=4 base align=4
+std::locale (0xb55f8c40) 0
+
+Vtable for std::locale::facet
+std::locale::facet::_ZTVNSt6locale5facetE: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTINSt6locale5facetE)
+8 (int (*)(...))std::locale::facet::~facet
+12 (int (*)(...))std::locale::facet::~facet
+
+Class std::locale::facet
+ size=8 align=4
+ base size=8 base align=4
+std::locale::facet (0xb5627f88) 0
+ vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 8u)
+
+Class std::locale::id
+ size=4 align=4
+ base size=4 base align=4
+std::locale::id (0xb5632658) 0
+
+Class std::locale::_Impl
+ size=20 align=4
+ base size=20 base align=4
+std::locale::_Impl (0xb5632968) 0
+
+Vtable for std::ios_base::failure
+std::ios_base::failure::_ZTVNSt8ios_base7failureE: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTINSt8ios_base7failureE)
+8 (int (*)(...))std::ios_base::failure::~failure
+12 (int (*)(...))std::ios_base::failure::~failure
+16 (int (*)(...))std::ios_base::failure::what
+
+Class std::ios_base::failure
+ size=8 align=4
+ base size=8 base align=4
+std::ios_base::failure (0xb56d8438) 0
+ vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureE) + 8u)
+ std::exception (0xb5649118) 0 nearly-empty
+ primary-for std::ios_base::failure (0xb56d8438)
+
+Class std::ios_base::_Callback_list
+ size=16 align=4
+ base size=16 base align=4
+std::ios_base::_Callback_list (0xb546ff88) 0
+
+Class std::ios_base::_Words
+ size=8 align=4
+ base size=8 base align=4
+std::ios_base::_Words (0xb54744d0) 0
+
+Class std::ios_base::Init
+ size=1 align=1
+ base size=0 base align=1
+std::ios_base::Init (0xb5474850) 0 empty
+
+Vtable for std::ios_base
+std::ios_base::_ZTVSt8ios_base: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTISt8ios_base)
+8 (int (*)(...))std::ios_base::~ios_base
+12 (int (*)(...))std::ios_base::~ios_base
+
+Class std::ios_base
+ size=112 align=4
+ base size=112 base align=4
+std::ios_base (0xb5649fc0) 0
+ vptr=((& std::ios_base::_ZTVSt8ios_base) + 8u)
+
+Class std::ctype_base
+ size=1 align=1
+ base size=0 base align=1
+std::ctype_base (0xb5495bd0) 0 empty
+
+Class std::__num_base
+ size=1 align=1
+ base size=0 base align=1
+std::__num_base (0xb5542e70) 0 empty
+
+VTT for std::basic_ostream<char>
+std::basic_ostream<char>::_ZTTSo: 2u entries
+0 ((& std::basic_ostream<char>::_ZTVSo) + 12u)
+4 ((& std::basic_ostream<char>::_ZTVSo) + 32u)
+
+VTT for std::basic_ostream<wchar_t>
+std::basic_ostream<wchar_t>::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2u entries
+0 ((& std::basic_ostream<wchar_t>::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 12u)
+4 ((& std::basic_ostream<wchar_t>::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 32u)
+
+VTT for std::basic_istream<char>
+std::basic_istream<char>::_ZTTSi: 2u entries
+0 ((& std::basic_istream<char>::_ZTVSi) + 12u)
+4 ((& std::basic_istream<char>::_ZTVSi) + 32u)
+
+VTT for std::basic_istream<wchar_t>
+std::basic_istream<wchar_t>::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2u entries
+0 ((& std::basic_istream<wchar_t>::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 12u)
+4 ((& std::basic_istream<wchar_t>::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 32u)
+
+Construction vtable for std::basic_istream<char> (0xb56d8fb4 instance) in std::basic_iostream<char>
+std::basic_iostream<char>::_ZTCSd0_Si: 10u entries
+0 12u
+4 (int (*)(...))0
+8 (int (*)(...))(& _ZTISi)
+12 (int (*)(...))std::basic_istream<_CharT, _Traits>::~basic_istream [with _CharT = char, _Traits = std::char_traits<char>]
+16 (int (*)(...))std::basic_istream<_CharT, _Traits>::~basic_istream [with _CharT = char, _Traits = std::char_traits<char>]
+20 4294967284u
+24 (int (*)(...))-0x0000000000000000c
+28 (int (*)(...))(& _ZTISi)
+32 (int (*)(...))std::basic_istream<char>::_ZTv0_n12_NSiD1Ev
+36 (int (*)(...))std::basic_istream<char>::_ZTv0_n12_NSiD0Ev
+
+Construction vtable for std::basic_ostream<char> (0xb532703c instance) in std::basic_iostream<char>
+std::basic_iostream<char>::_ZTCSd8_So: 10u entries
+0 4u
+4 (int (*)(...))0
+8 (int (*)(...))(& _ZTISo)
+12 (int (*)(...))std::basic_ostream<_CharT, _Traits>::~basic_ostream [with _CharT = char, _Traits = std::char_traits<char>]
+16 (int (*)(...))std::basic_ostream<_CharT, _Traits>::~basic_ostream [with _CharT = char, _Traits = std::char_traits<char>]
+20 4294967292u
+24 (int (*)(...))-0x00000000000000004
+28 (int (*)(...))(& _ZTISo)
+32 (int (*)(...))std::basic_ostream<char>::_ZTv0_n12_NSoD1Ev
+36 (int (*)(...))std::basic_ostream<char>::_ZTv0_n12_NSoD0Ev
+
+VTT for std::basic_iostream<char>
+std::basic_iostream<char>::_ZTTSd: 7u entries
+0 ((& std::basic_iostream<char>::_ZTVSd) + 12u)
+4 ((& std::basic_iostream<char>::_ZTCSd0_Si) + 12u)
+8 ((& std::basic_iostream<char>::_ZTCSd0_Si) + 32u)
+12 ((& std::basic_iostream<char>::_ZTCSd8_So) + 12u)
+16 ((& std::basic_iostream<char>::_ZTCSd8_So) + 32u)
+20 ((& std::basic_iostream<char>::_ZTVSd) + 52u)
+24 ((& std::basic_iostream<char>::_ZTVSd) + 32u)
+
+Construction vtable for std::basic_istream<wchar_t> (0xb5327078 instance) in std::basic_iostream<wchar_t>
+std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10u entries
+0 12u
+4 (int (*)(...))0
+8 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE)
+12 (int (*)(...))std::basic_istream<_CharT, _Traits>::~basic_istream [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]
+16 (int (*)(...))std::basic_istream<_CharT, _Traits>::~basic_istream [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]
+20 4294967284u
+24 (int (*)(...))-0x0000000000000000c
+28 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE)
+32 (int (*)(...))std::basic_istream<wchar_t>::_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev
+36 (int (*)(...))std::basic_istream<wchar_t>::_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev
+
+Construction vtable for std::basic_ostream<wchar_t> (0xb53270f0 instance) in std::basic_iostream<wchar_t>
+std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE8_St13basic_ostreamIwS1_E: 10u entries
+0 4u
+4 (int (*)(...))0
+8 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE)
+12 (int (*)(...))std::basic_ostream<_CharT, _Traits>::~basic_ostream [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]
+16 (int (*)(...))std::basic_ostream<_CharT, _Traits>::~basic_ostream [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]
+20 4294967292u
+24 (int (*)(...))-0x00000000000000004
+28 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE)
+32 (int (*)(...))std::basic_ostream<wchar_t>::_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev
+36 (int (*)(...))std::basic_ostream<wchar_t>::_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev
+
+VTT for std::basic_iostream<wchar_t>
+std::basic_iostream<wchar_t>::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7u entries
+0 ((& std::basic_iostream<wchar_t>::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 12u)
+4 ((& std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 12u)
+8 ((& std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 32u)
+12 ((& std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE8_St13basic_ostreamIwS1_E) + 12u)
+16 ((& std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE8_St13basic_ostreamIwS1_E) + 32u)
+20 ((& std::basic_iostream<wchar_t>::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 52u)
+24 ((& std::basic_iostream<wchar_t>::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 32u)
+
+Class std::__detail::_List_node_base
+ size=8 align=4
+ base size=8 base align=4
+std::__detail::_List_node_base (0xb53287e0) 0
+
+Class QListData::Data
+ size=20 align=4
+ base size=20 base align=4
+QListData::Data (0xb519d0e0) 0
+
+Class QListData
+ size=4 align=4
+ base size=4 base align=4
+QListData (0xb519d0a8) 0
+
+Class QScopedPointerPodDeleter
+ size=1 align=1
+ base size=0 base align=1
+QScopedPointerPodDeleter (0xb522f3b8) 0 empty
+
+Class QMetaType
+ size=48 align=4
+ base size=48 base align=4
+QMetaType (0xb50626c8) 0
+
+Class QtPrivate::QSlotObjectBase
+ size=8 align=4
+ base size=8 base align=4
+QtPrivate::QSlotObjectBase (0xb4f5ea48) 0
+
+Vtable for QObjectData
+QObjectData::_ZTV11QObjectData: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QObjectData)
+8 (int (*)(...))__cxa_pure_virtual
+12 (int (*)(...))__cxa_pure_virtual
+
+Class QObjectData
+ size=28 align=4
+ base size=28 base align=4
+QObjectData (0xb4f829a0) 0
+ vptr=((& QObjectData::_ZTV11QObjectData) + 8u)
+
+Class QObject::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QObject::QPrivateSignal (0xb4f82c08) 0 empty
+
+Vtable for QObject
+QObject::_ZTV7QObject: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI7QObject)
+8 (int (*)(...))QObject::metaObject
+12 (int (*)(...))QObject::qt_metacast
+16 (int (*)(...))QObject::qt_metacall
+20 (int (*)(...))QObject::~QObject
+24 (int (*)(...))QObject::~QObject
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QObject
+ size=8 align=4
+ base size=8 base align=4
+QObject (0xb4f82b28) 0
+ vptr=((& QObject::_ZTV7QObject) + 8u)
+
+Vtable for QObjectUserData
+QObjectUserData::_ZTV15QObjectUserData: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI15QObjectUserData)
+8 (int (*)(...))QObjectUserData::~QObjectUserData
+12 (int (*)(...))QObjectUserData::~QObjectUserData
+
+Class QObjectUserData
+ size=4 align=4
+ base size=4 base align=4
+QObjectUserData (0xb4fc6cb0) 0 nearly-empty
+ vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 8u)
+
+Class QAbstractAnimation::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractAnimation::QPrivateSignal (0xb4fc6fc0) 0 empty
+
+Vtable for QAbstractAnimation
+QAbstractAnimation::_ZTV18QAbstractAnimation: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QAbstractAnimation)
+8 (int (*)(...))QAbstractAnimation::metaObject
+12 (int (*)(...))QAbstractAnimation::qt_metacast
+16 (int (*)(...))QAbstractAnimation::qt_metacall
+20 (int (*)(...))QAbstractAnimation::~QAbstractAnimation
+24 (int (*)(...))QAbstractAnimation::~QAbstractAnimation
+28 (int (*)(...))QAbstractAnimation::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+64 (int (*)(...))QAbstractAnimation::updateState
+68 (int (*)(...))QAbstractAnimation::updateDirection
+
+Class QAbstractAnimation
+ size=8 align=4
+ base size=8 base align=4
+QAbstractAnimation (0xb5327690) 0
+ vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 8u)
+ QObject (0xb4fc6ee0) 0
+ primary-for QAbstractAnimation (0xb5327690)
+
+Class QAnimationDriver::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAnimationDriver::QPrivateSignal (0xb4fe7e70) 0 empty
+
+Vtable for QAnimationDriver
+QAnimationDriver::_ZTV16QAnimationDriver: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI16QAnimationDriver)
+8 (int (*)(...))QAnimationDriver::metaObject
+12 (int (*)(...))QAnimationDriver::qt_metacast
+16 (int (*)(...))QAnimationDriver::qt_metacall
+20 (int (*)(...))QAnimationDriver::~QAnimationDriver
+24 (int (*)(...))QAnimationDriver::~QAnimationDriver
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QAnimationDriver::advance
+60 (int (*)(...))QAnimationDriver::elapsed
+64 (int (*)(...))QAnimationDriver::start
+68 (int (*)(...))QAnimationDriver::stop
+
+Class QAnimationDriver
+ size=8 align=4
+ base size=8 base align=4
+QAnimationDriver (0xb53276cc) 0
+ vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 8u)
+ QObject (0xb4fe7d90) 0
+ primary-for QAnimationDriver (0xb53276cc)
+
+Class QAnimationGroup::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAnimationGroup::QPrivateSignal (0xb4ffa460) 0 empty
+
+Vtable for QAnimationGroup
+QAnimationGroup::_ZTV15QAnimationGroup: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI15QAnimationGroup)
+8 (int (*)(...))QAnimationGroup::metaObject
+12 (int (*)(...))QAnimationGroup::qt_metacast
+16 (int (*)(...))QAnimationGroup::qt_metacall
+20 (int (*)(...))QAnimationGroup::~QAnimationGroup
+24 (int (*)(...))QAnimationGroup::~QAnimationGroup
+28 (int (*)(...))QAnimationGroup::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+64 (int (*)(...))QAbstractAnimation::updateState
+68 (int (*)(...))QAbstractAnimation::updateDirection
+
+Class QAnimationGroup
+ size=8 align=4
+ base size=8 base align=4
+QAnimationGroup (0xb5327708) 0
+ vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 8u)
+ QAbstractAnimation (0xb5327744) 0
+ primary-for QAnimationGroup (0xb5327708)
+ QObject (0xb4ffa380) 0
+ primary-for QAbstractAnimation (0xb5327744)
+
+Class QParallelAnimationGroup::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QParallelAnimationGroup::QPrivateSignal (0xb4ffaf18) 0 empty
+
+Vtable for QParallelAnimationGroup
+QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI23QParallelAnimationGroup)
+8 (int (*)(...))QParallelAnimationGroup::metaObject
+12 (int (*)(...))QParallelAnimationGroup::qt_metacast
+16 (int (*)(...))QParallelAnimationGroup::qt_metacall
+20 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup
+24 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup
+28 (int (*)(...))QParallelAnimationGroup::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QParallelAnimationGroup::duration
+60 (int (*)(...))QParallelAnimationGroup::updateCurrentTime
+64 (int (*)(...))QParallelAnimationGroup::updateState
+68 (int (*)(...))QParallelAnimationGroup::updateDirection
+
+Class QParallelAnimationGroup
+ size=8 align=4
+ base size=8 base align=4
+QParallelAnimationGroup (0xb5327780) 0
+ vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 8u)
+ QAnimationGroup (0xb53277bc) 0
+ primary-for QParallelAnimationGroup (0xb5327780)
+ QAbstractAnimation (0xb53277f8) 0
+ primary-for QAnimationGroup (0xb53277bc)
+ QObject (0xb4ffae38) 0
+ primary-for QAbstractAnimation (0xb53277f8)
+
+Class QPauseAnimation::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QPauseAnimation::QPrivateSignal (0xb500b968) 0 empty
+
+Vtable for QPauseAnimation
+QPauseAnimation::_ZTV15QPauseAnimation: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI15QPauseAnimation)
+8 (int (*)(...))QPauseAnimation::metaObject
+12 (int (*)(...))QPauseAnimation::qt_metacast
+16 (int (*)(...))QPauseAnimation::qt_metacall
+20 (int (*)(...))QPauseAnimation::~QPauseAnimation
+24 (int (*)(...))QPauseAnimation::~QPauseAnimation
+28 (int (*)(...))QPauseAnimation::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QPauseAnimation::duration
+60 (int (*)(...))QPauseAnimation::updateCurrentTime
+64 (int (*)(...))QAbstractAnimation::updateState
+68 (int (*)(...))QAbstractAnimation::updateDirection
+
+Class QPauseAnimation
+ size=8 align=4
+ base size=8 base align=4
+QPauseAnimation (0xb5327834) 0
+ vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 8u)
+ QAbstractAnimation (0xb5327870) 0
+ primary-for QPauseAnimation (0xb5327834)
+ QObject (0xb500b888) 0
+ primary-for QAbstractAnimation (0xb5327870)
+
+Class std::_Bit_reference
+ size=8 align=4
+ base size=8 base align=4
+std::_Bit_reference (0xb4e5a620) 0
+
+Class std::_Bit_iterator_base
+ size=8 align=4
+ base size=8 base align=4
+std::_Bit_iterator_base (0xb5327924) 0
+ std::iterator<std::random_access_iterator_tag, bool> (0xb4e6e4d0) 0 empty
+
+Class std::_Bit_iterator
+ size=8 align=4
+ base size=8 base align=4
+std::_Bit_iterator (0xb5327a14) 0
+ std::_Bit_iterator_base (0xb5327a50) 0
+ std::iterator<std::random_access_iterator_tag, bool> (0xb4e76b60) 0 empty
+
+Class std::_Bit_const_iterator
+ size=8 align=4
+ base size=8 base align=4
+std::_Bit_const_iterator (0xb5327a8c) 0
+ std::_Bit_iterator_base (0xb5327ac8) 0
+ std::iterator<std::random_access_iterator_tag, bool> (0xb4e83540) 0 empty
+
+Class QEasingCurve
+ size=4 align=4
+ base size=4 base align=4
+QEasingCurve (0xb4d64428) 0
+
+Class std::_Rb_tree_node_base
+ size=16 align=4
+ base size=16 base align=4
+std::_Rb_tree_node_base (0xb4d792a0) 0
+
+Class QMapNodeBase
+ size=12 align=4
+ base size=12 base align=4
+QMapNodeBase (0xb4e1fc08) 0
+
+Class QMapDataBase
+ size=24 align=4
+ base size=24 base align=4
+QMapDataBase (0xb4e4b4d0) 0
+
+Class QHashData::Node
+ size=8 align=4
+ base size=8 base align=4
+QHashData::Node (0xb4cc4f18) 0
+
+Class QHashData
+ size=36 align=4
+ base size=36 base align=4
+QHashData (0xb4cc4ee0) 0
+
+Class QHashDummyValue
+ size=1 align=1
+ base size=0 base align=1
+QHashDummyValue (0xb4cf1348) 0 empty
+
+Class QVariant::PrivateShared
+ size=8 align=4
+ base size=8 base align=4
+QVariant::PrivateShared (0xb4b80af0) 0
+
+Class QVariant::Private::Data
+ size=8 align=4
+ base size=8 base align=4
+QVariant::Private::Data (0xb4b80cb0) 0
+
+Class QVariant::Private
+ size=12 align=4
+ base size=12 base align=4
+QVariant::Private (0xb4b80b60) 0
+
+Class QVariant::Handler
+ size=36 align=4
+ base size=36 base align=4
+QVariant::Handler (0xb4b902a0) 0
+
+Class QVariant
+ size=12 align=4
+ base size=12 base align=4
+QVariant (0xb4b60770) 0
+
+Class QVariantComparisonHelper
+ size=4 align=4
+ base size=4 base align=4
+QVariantComparisonHelper (0xb4bbf7a8) 0
+
+Class QVariantAnimation::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QVariantAnimation::QPrivateSignal (0xb4bf6038) 0 empty
+
+Vtable for QVariantAnimation
+QVariantAnimation::_ZTV17QVariantAnimation: 20u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI17QVariantAnimation)
+8 (int (*)(...))QVariantAnimation::metaObject
+12 (int (*)(...))QVariantAnimation::qt_metacast
+16 (int (*)(...))QVariantAnimation::qt_metacall
+20 (int (*)(...))QVariantAnimation::~QVariantAnimation
+24 (int (*)(...))QVariantAnimation::~QVariantAnimation
+28 (int (*)(...))QVariantAnimation::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QVariantAnimation::duration
+60 (int (*)(...))QVariantAnimation::updateCurrentTime
+64 (int (*)(...))QVariantAnimation::updateState
+68 (int (*)(...))QAbstractAnimation::updateDirection
+72 (int (*)(...))QVariantAnimation::updateCurrentValue
+76 (int (*)(...))QVariantAnimation::interpolated
+
+Class QVariantAnimation
+ size=8 align=4
+ base size=8 base align=4
+QVariantAnimation (0xb5327f3c) 0
+ vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 8u)
+ QAbstractAnimation (0xb5327f78) 0
+ primary-for QVariantAnimation (0xb5327f3c)
+ QObject (0xb4bbff50) 0
+ primary-for QAbstractAnimation (0xb5327f78)
+
+Class QPropertyAnimation::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QPropertyAnimation::QPrivateSignal (0xb4bf6d20) 0 empty
+
+Vtable for QPropertyAnimation
+QPropertyAnimation::_ZTV18QPropertyAnimation: 20u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QPropertyAnimation)
+8 (int (*)(...))QPropertyAnimation::metaObject
+12 (int (*)(...))QPropertyAnimation::qt_metacast
+16 (int (*)(...))QPropertyAnimation::qt_metacall
+20 (int (*)(...))QPropertyAnimation::~QPropertyAnimation
+24 (int (*)(...))QPropertyAnimation::~QPropertyAnimation
+28 (int (*)(...))QPropertyAnimation::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QVariantAnimation::duration
+60 (int (*)(...))QVariantAnimation::updateCurrentTime
+64 (int (*)(...))QPropertyAnimation::updateState
+68 (int (*)(...))QAbstractAnimation::updateDirection
+72 (int (*)(...))QPropertyAnimation::updateCurrentValue
+76 (int (*)(...))QVariantAnimation::interpolated
+
+Class QPropertyAnimation
+ size=8 align=4
+ base size=8 base align=4
+QPropertyAnimation (0xb5327fb4) 0
+ vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 8u)
+ QVariantAnimation (0xb4c03000) 0
+ primary-for QPropertyAnimation (0xb5327fb4)
+ QAbstractAnimation (0xb4c0303c) 0
+ primary-for QVariantAnimation (0xb4c03000)
+ QObject (0xb4bf6c40) 0
+ primary-for QAbstractAnimation (0xb4c0303c)
+
+Class QSequentialAnimationGroup::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSequentialAnimationGroup::QPrivateSignal (0xb4c09818) 0 empty
+
+Vtable for QSequentialAnimationGroup
+QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI25QSequentialAnimationGroup)
+8 (int (*)(...))QSequentialAnimationGroup::metaObject
+12 (int (*)(...))QSequentialAnimationGroup::qt_metacast
+16 (int (*)(...))QSequentialAnimationGroup::qt_metacall
+20 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup
+24 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup
+28 (int (*)(...))QSequentialAnimationGroup::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QSequentialAnimationGroup::duration
+60 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime
+64 (int (*)(...))QSequentialAnimationGroup::updateState
+68 (int (*)(...))QSequentialAnimationGroup::updateDirection
+
+Class QSequentialAnimationGroup
+ size=8 align=4
+ base size=8 base align=4
+QSequentialAnimationGroup (0xb4c03078) 0
+ vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 8u)
+ QAnimationGroup (0xb4c030b4) 0
+ primary-for QSequentialAnimationGroup (0xb4c03078)
+ QAbstractAnimation (0xb4c030f0) 0
+ primary-for QAnimationGroup (0xb4c030b4)
+ QObject (0xb4c09738) 0
+ primary-for QAbstractAnimation (0xb4c030f0)
+
+Class QTextCodec::ConverterState
+ size=28 align=4
+ base size=28 base align=4
+QTextCodec::ConverterState (0xb4c16c08) 0
+
+Vtable for QTextCodec
+QTextCodec::_ZTV10QTextCodec: 9u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI10QTextCodec)
+8 (int (*)(...))__cxa_pure_virtual
+12 (int (*)(...))QTextCodec::aliases
+16 (int (*)(...))__cxa_pure_virtual
+20 (int (*)(...))__cxa_pure_virtual
+24 (int (*)(...))__cxa_pure_virtual
+28 (int (*)(...))QTextCodec::~QTextCodec
+32 (int (*)(...))QTextCodec::~QTextCodec
+
+Class QTextCodec
+ size=4 align=4
+ base size=4 base align=4
+QTextCodec (0xb4c16230) 0 nearly-empty
+ vptr=((& QTextCodec::_ZTV10QTextCodec) + 8u)
+
+Class QTextEncoder
+ size=32 align=4
+ base size=32 base align=4
+QTextEncoder (0xb4c2d7a8) 0
+
+Class QTextDecoder
+ size=32 align=4
+ base size=32 base align=4
+QTextDecoder (0xb4c2dce8) 0
+
+Class QSharedData
+ size=4 align=4
+ base size=4 base align=4
+QSharedData (0xb4c3ff18) 0
+
+Class QtSharedPointer::NormalDeleter
+ size=1 align=1
+ base size=0 base align=1
+QtSharedPointer::NormalDeleter (0xb4a7e1f8) 0 empty
+
+Class QtSharedPointer::ExternalRefCountData
+ size=12 align=4
+ base size=12 base align=4
+QtSharedPointer::ExternalRefCountData (0xb4a7e2d8) 0
+
+Class std::__numeric_limits_base
+ size=1 align=1
+ base size=0 base align=1
+std::__numeric_limits_base (0xb4ac5a80) 0 empty
+
+Class QDate
+ size=8 align=4
+ base size=8 base align=4
+QDate (0xb4b29d90) 0
+
+Class QTime
+ size=4 align=4
+ base size=4 base align=4
+QTime (0xb4b439a0) 0
+
+Class QDateTime
+ size=4 align=4
+ base size=4 base align=4
+QDateTime (0xb4b4bdc8) 0
+
+Class QLibraryInfo
+ size=1 align=1
+ base size=0 base align=1
+QLibraryInfo (0xb494b578) 0 empty
+
+Class QIODevice::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QIODevice::QPrivateSignal (0xb494b700) 0 empty
+
+Vtable for QIODevice
+QIODevice::_ZTV9QIODevice: 30u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI9QIODevice)
+8 (int (*)(...))QIODevice::metaObject
+12 (int (*)(...))QIODevice::qt_metacast
+16 (int (*)(...))QIODevice::qt_metacall
+20 (int (*)(...))QIODevice::~QIODevice
+24 (int (*)(...))QIODevice::~QIODevice
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QIODevice::isSequential
+60 (int (*)(...))QIODevice::open
+64 (int (*)(...))QIODevice::close
+68 (int (*)(...))QIODevice::pos
+72 (int (*)(...))QIODevice::size
+76 (int (*)(...))QIODevice::seek
+80 (int (*)(...))QIODevice::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QIODevice::bytesAvailable
+92 (int (*)(...))QIODevice::bytesToWrite
+96 (int (*)(...))QIODevice::canReadLine
+100 (int (*)(...))QIODevice::waitForReadyRead
+104 (int (*)(...))QIODevice::waitForBytesWritten
+108 (int (*)(...))__cxa_pure_virtual
+112 (int (*)(...))QIODevice::readLineData
+116 (int (*)(...))__cxa_pure_virtual
+
+Class QIODevice
+ size=8 align=4
+ base size=8 base align=4
+QIODevice (0xb4c0321c) 0
+ vptr=((& QIODevice::_ZTV9QIODevice) + 8u)
+ QObject (0xb494b620) 0
+ primary-for QIODevice (0xb4c0321c)
+
+Class QBuffer::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QBuffer::QPrivateSignal (0xb497c188) 0 empty
+
+Vtable for QBuffer
+QBuffer::_ZTV7QBuffer: 30u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI7QBuffer)
+8 (int (*)(...))QBuffer::metaObject
+12 (int (*)(...))QBuffer::qt_metacast
+16 (int (*)(...))QBuffer::qt_metacall
+20 (int (*)(...))QBuffer::~QBuffer
+24 (int (*)(...))QBuffer::~QBuffer
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QBuffer::connectNotify
+52 (int (*)(...))QBuffer::disconnectNotify
+56 (int (*)(...))QIODevice::isSequential
+60 (int (*)(...))QBuffer::open
+64 (int (*)(...))QBuffer::close
+68 (int (*)(...))QBuffer::pos
+72 (int (*)(...))QBuffer::size
+76 (int (*)(...))QBuffer::seek
+80 (int (*)(...))QBuffer::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QIODevice::bytesAvailable
+92 (int (*)(...))QIODevice::bytesToWrite
+96 (int (*)(...))QBuffer::canReadLine
+100 (int (*)(...))QIODevice::waitForReadyRead
+104 (int (*)(...))QIODevice::waitForBytesWritten
+108 (int (*)(...))QBuffer::readData
+112 (int (*)(...))QIODevice::readLineData
+116 (int (*)(...))QBuffer::writeData
+
+Class QBuffer
+ size=8 align=4
+ base size=8 base align=4
+QBuffer (0xb4c03294) 0
+ vptr=((& QBuffer::_ZTV7QBuffer) + 8u)
+ QIODevice (0xb4c032d0) 0
+ primary-for QBuffer (0xb4c03294)
+ QObject (0xb497c0a8) 0
+ primary-for QIODevice (0xb4c032d0)
+
+Class QDataStream
+ size=24 align=4
+ base size=24 base align=4
+QDataStream (0xb497ca10) 0
+
+Class QLocale
+ size=4 align=4
+ base size=4 base align=4
+QLocale (0xb49be0e0) 0
+
+Class _IO_marker
+ size=12 align=4
+ base size=12 base align=4
+_IO_marker (0xb4a200e0) 0
+
+Class _IO_FILE
+ size=148 align=4
+ base size=148 base align=4
+_IO_FILE (0xb4a20118) 0
+
+Vtable for QTextStream
+QTextStream::_ZTV11QTextStream: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QTextStream)
+8 (int (*)(...))QTextStream::~QTextStream
+12 (int (*)(...))QTextStream::~QTextStream
+
+Class QTextStream
+ size=8 align=4
+ base size=8 base align=4
+QTextStream (0xb4a20188) 0
+ vptr=((& QTextStream::_ZTV11QTextStream) + 8u)
+
+Class QTextStreamManipulator
+ size=24 align=4
+ base size=22 base align=4
+QTextStreamManipulator (0xb4864380) 0
+
+Class QContiguousCacheData
+ size=24 align=4
+ base size=24 base align=4
+QContiguousCacheData (0xb489de00) 0
+
+Class QDebug::Stream
+ size=44 align=4
+ base size=44 base align=4
+QDebug::Stream (0xb48bea48) 0
+
+Class QDebug
+ size=4 align=4
+ base size=4 base align=4
+QDebug (0xb48bea10) 0
+
+Class QDebugStateSaver
+ size=4 align=4
+ base size=4 base align=4
+QDebugStateSaver (0xb47281c0) 0
+
+Class QNoDebug
+ size=1 align=1
+ base size=0 base align=1
+QNoDebug (0xb47284d0) 0 empty
+
+Class QFileDevice::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QFileDevice::QPrivateSignal (0xb4750000) 0 empty
+
+Vtable for QFileDevice
+QFileDevice::_ZTV11QFileDevice: 34u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QFileDevice)
+8 (int (*)(...))QFileDevice::metaObject
+12 (int (*)(...))QFileDevice::qt_metacast
+16 (int (*)(...))QFileDevice::qt_metacall
+20 (int (*)(...))QFileDevice::~QFileDevice
+24 (int (*)(...))QFileDevice::~QFileDevice
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QFileDevice::isSequential
+60 (int (*)(...))QIODevice::open
+64 (int (*)(...))QFileDevice::close
+68 (int (*)(...))QFileDevice::pos
+72 (int (*)(...))QFileDevice::size
+76 (int (*)(...))QFileDevice::seek
+80 (int (*)(...))QFileDevice::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QIODevice::bytesAvailable
+92 (int (*)(...))QIODevice::bytesToWrite
+96 (int (*)(...))QIODevice::canReadLine
+100 (int (*)(...))QIODevice::waitForReadyRead
+104 (int (*)(...))QIODevice::waitForBytesWritten
+108 (int (*)(...))QFileDevice::readData
+112 (int (*)(...))QFileDevice::readLineData
+116 (int (*)(...))QFileDevice::writeData
+120 (int (*)(...))QFileDevice::fileName
+124 (int (*)(...))QFileDevice::resize
+128 (int (*)(...))QFileDevice::permissions
+132 (int (*)(...))QFileDevice::setPermissions
+
+Class QFileDevice
+ size=8 align=4
+ base size=8 base align=4
+QFileDevice (0xb4c03474) 0
+ vptr=((& QFileDevice::_ZTV11QFileDevice) + 8u)
+ QIODevice (0xb4c034b0) 0
+ primary-for QFileDevice (0xb4c03474)
+ QObject (0xb4728f18) 0
+ primary-for QIODevice (0xb4c034b0)
+
+Class QFile::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QFile::QPrivateSignal (0xb4768b28) 0 empty
+
+Vtable for QFile
+QFile::_ZTV5QFile: 34u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI5QFile)
+8 (int (*)(...))QFile::metaObject
+12 (int (*)(...))QFile::qt_metacast
+16 (int (*)(...))QFile::qt_metacall
+20 (int (*)(...))QFile::~QFile
+24 (int (*)(...))QFile::~QFile
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QFileDevice::isSequential
+60 (int (*)(...))QFile::open
+64 (int (*)(...))QFileDevice::close
+68 (int (*)(...))QFileDevice::pos
+72 (int (*)(...))QFile::size
+76 (int (*)(...))QFileDevice::seek
+80 (int (*)(...))QFileDevice::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QIODevice::bytesAvailable
+92 (int (*)(...))QIODevice::bytesToWrite
+96 (int (*)(...))QIODevice::canReadLine
+100 (int (*)(...))QIODevice::waitForReadyRead
+104 (int (*)(...))QIODevice::waitForBytesWritten
+108 (int (*)(...))QFileDevice::readData
+112 (int (*)(...))QFileDevice::readLineData
+116 (int (*)(...))QFileDevice::writeData
+120 (int (*)(...))QFile::fileName
+124 (int (*)(...))QFile::resize
+128 (int (*)(...))QFile::permissions
+132 (int (*)(...))QFile::setPermissions
+
+Class QFile
+ size=8 align=4
+ base size=8 base align=4
+QFile (0xb4c03528) 0
+ vptr=((& QFile::_ZTV5QFile) + 8u)
+ QFileDevice (0xb4c03564) 0
+ primary-for QFile (0xb4c03528)
+ QIODevice (0xb4c035a0) 0
+ primary-for QFileDevice (0xb4c03564)
+ QObject (0xb4768a48) 0
+ primary-for QIODevice (0xb4c035a0)
+
+Class QFileInfo
+ size=4 align=4
+ base size=4 base align=4
+QFileInfo (0xb477caf0) 0
+
+Class QRegExp
+ size=4 align=4
+ base size=4 base align=4
+QRegExp (0xb479e850) 0
+
+Class QStringMatcher::Data
+ size=264 align=4
+ base size=264 base align=4
+QStringMatcher::Data (0xb47b6498) 0
+
+Class QStringMatcher
+ size=1036 align=4
+ base size=1036 base align=4
+QStringMatcher (0xb47b6188) 0
+
+Class QStringList
+ size=4 align=4
+ base size=4 base align=4
+QStringList (0xb4c03654) 0
+ QList<QString> (0xb47b6738) 0
+
+Class QDir
+ size=4 align=4
+ base size=4 base align=4
+QDir (0xb47f22d8) 0
+
+Class QDirIterator
+ size=4 align=4
+ base size=4 base align=4
+QDirIterator (0xb4631f88) 0
+
+Class QFileSystemWatcher::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QFileSystemWatcher::QPrivateSignal (0xb4657690) 0 empty
+
+Vtable for QFileSystemWatcher
+QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QFileSystemWatcher)
+8 (int (*)(...))QFileSystemWatcher::metaObject
+12 (int (*)(...))QFileSystemWatcher::qt_metacast
+16 (int (*)(...))QFileSystemWatcher::qt_metacall
+20 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher
+24 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QFileSystemWatcher
+ size=8 align=4
+ base size=8 base align=4
+QFileSystemWatcher (0xb4c037bc) 0
+ vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 8u)
+ QObject (0xb46575b0) 0
+ primary-for QFileSystemWatcher (0xb4c037bc)
+
+Class QLockFile
+ size=4 align=4
+ base size=4 base align=4
+QLockFile (0xb4657c78) 0
+
+Class QProcessEnvironment
+ size=4 align=4
+ base size=4 base align=4
+QProcessEnvironment (0xb466c230) 0
+
+Class QProcess::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QProcess::QPrivateSignal (0xb466cbd0) 0 empty
+
+Vtable for QProcess
+QProcess::_ZTV8QProcess: 31u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI8QProcess)
+8 (int (*)(...))QProcess::metaObject
+12 (int (*)(...))QProcess::qt_metacast
+16 (int (*)(...))QProcess::qt_metacall
+20 (int (*)(...))QProcess::~QProcess
+24 (int (*)(...))QProcess::~QProcess
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QProcess::isSequential
+60 (int (*)(...))QProcess::open
+64 (int (*)(...))QProcess::close
+68 (int (*)(...))QIODevice::pos
+72 (int (*)(...))QIODevice::size
+76 (int (*)(...))QIODevice::seek
+80 (int (*)(...))QProcess::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QProcess::bytesAvailable
+92 (int (*)(...))QProcess::bytesToWrite
+96 (int (*)(...))QProcess::canReadLine
+100 (int (*)(...))QProcess::waitForReadyRead
+104 (int (*)(...))QProcess::waitForBytesWritten
+108 (int (*)(...))QProcess::readData
+112 (int (*)(...))QIODevice::readLineData
+116 (int (*)(...))QProcess::writeData
+120 (int (*)(...))QProcess::setupChildProcess
+
+Class QProcess
+ size=8 align=4
+ base size=8 base align=4
+QProcess (0xb4c037f8) 0
+ vptr=((& QProcess::_ZTV8QProcess) + 8u)
+ QIODevice (0xb4c03834) 0
+ primary-for QProcess (0xb4c037f8)
+ QObject (0xb466caf0) 0
+ primary-for QIODevice (0xb4c03834)
+
+Class QResource
+ size=4 align=4
+ base size=4 base align=4
+QResource (0xb46972a0) 0
+
+Class QSaveFile::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSaveFile::QPrivateSignal (0xb4697930) 0 empty
+
+Vtable for QSaveFile
+QSaveFile::_ZTV9QSaveFile: 34u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI9QSaveFile)
+8 (int (*)(...))QSaveFile::metaObject
+12 (int (*)(...))QSaveFile::qt_metacast
+16 (int (*)(...))QSaveFile::qt_metacall
+20 (int (*)(...))QSaveFile::~QSaveFile
+24 (int (*)(...))QSaveFile::~QSaveFile
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QFileDevice::isSequential
+60 (int (*)(...))QSaveFile::open
+64 (int (*)(...))QSaveFile::close
+68 (int (*)(...))QFileDevice::pos
+72 (int (*)(...))QFileDevice::size
+76 (int (*)(...))QFileDevice::seek
+80 (int (*)(...))QFileDevice::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QIODevice::bytesAvailable
+92 (int (*)(...))QIODevice::bytesToWrite
+96 (int (*)(...))QIODevice::canReadLine
+100 (int (*)(...))QIODevice::waitForReadyRead
+104 (int (*)(...))QIODevice::waitForBytesWritten
+108 (int (*)(...))QFileDevice::readData
+112 (int (*)(...))QFileDevice::readLineData
+116 (int (*)(...))QSaveFile::writeData
+120 (int (*)(...))QSaveFile::fileName
+124 (int (*)(...))QFileDevice::resize
+128 (int (*)(...))QFileDevice::permissions
+132 (int (*)(...))QFileDevice::setPermissions
+
+Class QSaveFile
+ size=8 align=4
+ base size=8 base align=4
+QSaveFile (0xb4c03870) 0
+ vptr=((& QSaveFile::_ZTV9QSaveFile) + 8u)
+ QFileDevice (0xb4c038ac) 0
+ primary-for QSaveFile (0xb4c03870)
+ QIODevice (0xb4c038e8) 0
+ primary-for QFileDevice (0xb4c038ac)
+ QObject (0xb4697850) 0
+ primary-for QIODevice (0xb4c038e8)
+
+Class QSettings::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSettings::QPrivateSignal (0xb46af1c0) 0 empty
+
+Vtable for QSettings
+QSettings::_ZTV9QSettings: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI9QSettings)
+8 (int (*)(...))QSettings::metaObject
+12 (int (*)(...))QSettings::qt_metacast
+16 (int (*)(...))QSettings::qt_metacall
+20 (int (*)(...))QSettings::~QSettings
+24 (int (*)(...))QSettings::~QSettings
+28 (int (*)(...))QSettings::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QSettings
+ size=8 align=4
+ base size=8 base align=4
+QSettings (0xb4c03924) 0
+ vptr=((& QSettings::_ZTV9QSettings) + 8u)
+ QObject (0xb46af0e0) 0
+ primary-for QSettings (0xb4c03924)
+
+Class QStandardPaths
+ size=1 align=1
+ base size=0 base align=1
+QStandardPaths (0xb46c51c0) 0 empty
+
+Class QTemporaryDir
+ size=4 align=4
+ base size=4 base align=4
+QTemporaryDir (0xb46c5770) 0
+
+Class QTemporaryFile::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QTemporaryFile::QPrivateSignal (0xb46c5b98) 0 empty
+
+Vtable for QTemporaryFile
+QTemporaryFile::_ZTV14QTemporaryFile: 34u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI14QTemporaryFile)
+8 (int (*)(...))QTemporaryFile::metaObject
+12 (int (*)(...))QTemporaryFile::qt_metacast
+16 (int (*)(...))QTemporaryFile::qt_metacall
+20 (int (*)(...))QTemporaryFile::~QTemporaryFile
+24 (int (*)(...))QTemporaryFile::~QTemporaryFile
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QFileDevice::isSequential
+60 (int (*)(...))QTemporaryFile::open
+64 (int (*)(...))QFileDevice::close
+68 (int (*)(...))QFileDevice::pos
+72 (int (*)(...))QFile::size
+76 (int (*)(...))QFileDevice::seek
+80 (int (*)(...))QFileDevice::atEnd
+84 (int (*)(...))QIODevice::reset
+88 (int (*)(...))QIODevice::bytesAvailable
+92 (int (*)(...))QIODevice::bytesToWrite
+96 (int (*)(...))QIODevice::canReadLine
+100 (int (*)(...))QIODevice::waitForReadyRead
+104 (int (*)(...))QIODevice::waitForBytesWritten
+108 (int (*)(...))QFileDevice::readData
+112 (int (*)(...))QFileDevice::readLineData
+116 (int (*)(...))QFileDevice::writeData
+120 (int (*)(...))QTemporaryFile::fileName
+124 (int (*)(...))QFile::resize
+128 (int (*)(...))QFile::permissions
+132 (int (*)(...))QFile::setPermissions
+
+Class QTemporaryFile
+ size=8 align=4
+ base size=8 base align=4
+QTemporaryFile (0xb4c0399c) 0
+ vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 8u)
+ QFile (0xb4c039d8) 0
+ primary-for QTemporaryFile (0xb4c0399c)
+ QFileDevice (0xb4c03a14) 0
+ primary-for QFile (0xb4c039d8)
+ QIODevice (0xb4c03a50) 0
+ primary-for QFileDevice (0xb4c03a14)
+ QObject (0xb46c5ab8) 0
+ primary-for QIODevice (0xb4c03a50)
+
+Class QUrl
+ size=4 align=4
+ base size=4 base align=4
+QUrl (0xb46f2188) 0
+
+Class QUrlQuery
+ size=4 align=4
+ base size=4 base align=4
+QUrlQuery (0xb45563b8) 0
+
+Class QModelIndex
+ size=16 align=4
+ base size=16 base align=4
+QModelIndex (0xb4578268) 0
+
+Class QPersistentModelIndex
+ size=4 align=4
+ base size=4 base align=4
+QPersistentModelIndex (0xb4588498) 0
+
+Class QAbstractItemModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractItemModel::QPrivateSignal (0xb459f000) 0 empty
+
+Vtable for QAbstractItemModel
+QAbstractItemModel::_ZTV18QAbstractItemModel: 48u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QAbstractItemModel)
+8 (int (*)(...))QAbstractItemModel::metaObject
+12 (int (*)(...))QAbstractItemModel::qt_metacast
+16 (int (*)(...))QAbstractItemModel::qt_metacall
+20 (int (*)(...))QAbstractItemModel::~QAbstractItemModel
+24 (int (*)(...))QAbstractItemModel::~QAbstractItemModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+64 (int (*)(...))QAbstractItemModel::sibling
+68 (int (*)(...))__cxa_pure_virtual
+72 (int (*)(...))__cxa_pure_virtual
+76 (int (*)(...))QAbstractItemModel::hasChildren
+80 (int (*)(...))__cxa_pure_virtual
+84 (int (*)(...))QAbstractItemModel::setData
+88 (int (*)(...))QAbstractItemModel::headerData
+92 (int (*)(...))QAbstractItemModel::setHeaderData
+96 (int (*)(...))QAbstractItemModel::itemData
+100 (int (*)(...))QAbstractItemModel::setItemData
+104 (int (*)(...))QAbstractItemModel::mimeTypes
+108 (int (*)(...))QAbstractItemModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QAbstractItemModel::dropMimeData
+120 (int (*)(...))QAbstractItemModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QAbstractItemModel::insertRows
+132 (int (*)(...))QAbstractItemModel::insertColumns
+136 (int (*)(...))QAbstractItemModel::removeRows
+140 (int (*)(...))QAbstractItemModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QAbstractItemModel::fetchMore
+156 (int (*)(...))QAbstractItemModel::canFetchMore
+160 (int (*)(...))QAbstractItemModel::flags
+164 (int (*)(...))QAbstractItemModel::sort
+168 (int (*)(...))QAbstractItemModel::buddy
+172 (int (*)(...))QAbstractItemModel::match
+176 (int (*)(...))QAbstractItemModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractItemModel::submit
+188 (int (*)(...))QAbstractItemModel::revert
+
+Class QAbstractItemModel
+ size=8 align=4
+ base size=8 base align=4
+QAbstractItemModel (0xb4c03b40) 0
+ vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 8u)
+ QObject (0xb4588f88) 0
+ primary-for QAbstractItemModel (0xb4c03b40)
+
+Class QAbstractTableModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractTableModel::QPrivateSignal (0xb45e8c78) 0 empty
+
+Vtable for QAbstractTableModel
+QAbstractTableModel::_ZTV19QAbstractTableModel: 48u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI19QAbstractTableModel)
+8 (int (*)(...))QAbstractTableModel::metaObject
+12 (int (*)(...))QAbstractTableModel::qt_metacast
+16 (int (*)(...))QAbstractTableModel::qt_metacall
+20 (int (*)(...))QAbstractTableModel::~QAbstractTableModel
+24 (int (*)(...))QAbstractTableModel::~QAbstractTableModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QAbstractTableModel::index
+60 (int (*)(...))QAbstractTableModel::parent
+64 (int (*)(...))QAbstractItemModel::sibling
+68 (int (*)(...))__cxa_pure_virtual
+72 (int (*)(...))__cxa_pure_virtual
+76 (int (*)(...))QAbstractTableModel::hasChildren
+80 (int (*)(...))__cxa_pure_virtual
+84 (int (*)(...))QAbstractItemModel::setData
+88 (int (*)(...))QAbstractItemModel::headerData
+92 (int (*)(...))QAbstractItemModel::setHeaderData
+96 (int (*)(...))QAbstractItemModel::itemData
+100 (int (*)(...))QAbstractItemModel::setItemData
+104 (int (*)(...))QAbstractItemModel::mimeTypes
+108 (int (*)(...))QAbstractItemModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QAbstractTableModel::dropMimeData
+120 (int (*)(...))QAbstractItemModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QAbstractItemModel::insertRows
+132 (int (*)(...))QAbstractItemModel::insertColumns
+136 (int (*)(...))QAbstractItemModel::removeRows
+140 (int (*)(...))QAbstractItemModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QAbstractItemModel::fetchMore
+156 (int (*)(...))QAbstractItemModel::canFetchMore
+160 (int (*)(...))QAbstractTableModel::flags
+164 (int (*)(...))QAbstractItemModel::sort
+168 (int (*)(...))QAbstractItemModel::buddy
+172 (int (*)(...))QAbstractItemModel::match
+176 (int (*)(...))QAbstractItemModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractItemModel::submit
+188 (int (*)(...))QAbstractItemModel::revert
+
+Class QAbstractTableModel
+ size=8 align=4
+ base size=8 base align=4
+QAbstractTableModel (0xb4c03c6c) 0
+ vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 8u)
+ QAbstractItemModel (0xb4c03ca8) 0
+ primary-for QAbstractTableModel (0xb4c03c6c)
+ QObject (0xb45e8b98) 0
+ primary-for QAbstractItemModel (0xb4c03ca8)
+
+Class QAbstractListModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractListModel::QPrivateSignal (0xb45f7380) 0 empty
+
+Vtable for QAbstractListModel
+QAbstractListModel::_ZTV18QAbstractListModel: 48u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QAbstractListModel)
+8 (int (*)(...))QAbstractListModel::metaObject
+12 (int (*)(...))QAbstractListModel::qt_metacast
+16 (int (*)(...))QAbstractListModel::qt_metacall
+20 (int (*)(...))QAbstractListModel::~QAbstractListModel
+24 (int (*)(...))QAbstractListModel::~QAbstractListModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QAbstractListModel::index
+60 (int (*)(...))QAbstractListModel::parent
+64 (int (*)(...))QAbstractItemModel::sibling
+68 (int (*)(...))__cxa_pure_virtual
+72 (int (*)(...))QAbstractListModel::columnCount
+76 (int (*)(...))QAbstractListModel::hasChildren
+80 (int (*)(...))__cxa_pure_virtual
+84 (int (*)(...))QAbstractItemModel::setData
+88 (int (*)(...))QAbstractItemModel::headerData
+92 (int (*)(...))QAbstractItemModel::setHeaderData
+96 (int (*)(...))QAbstractItemModel::itemData
+100 (int (*)(...))QAbstractItemModel::setItemData
+104 (int (*)(...))QAbstractItemModel::mimeTypes
+108 (int (*)(...))QAbstractItemModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QAbstractListModel::dropMimeData
+120 (int (*)(...))QAbstractItemModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QAbstractItemModel::insertRows
+132 (int (*)(...))QAbstractItemModel::insertColumns
+136 (int (*)(...))QAbstractItemModel::removeRows
+140 (int (*)(...))QAbstractItemModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QAbstractItemModel::fetchMore
+156 (int (*)(...))QAbstractItemModel::canFetchMore
+160 (int (*)(...))QAbstractListModel::flags
+164 (int (*)(...))QAbstractItemModel::sort
+168 (int (*)(...))QAbstractItemModel::buddy
+172 (int (*)(...))QAbstractItemModel::match
+176 (int (*)(...))QAbstractItemModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractItemModel::submit
+188 (int (*)(...))QAbstractItemModel::revert
+
+Class QAbstractListModel
+ size=8 align=4
+ base size=8 base align=4
+QAbstractListModel (0xb4c03ce4) 0
+ vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 8u)
+ QAbstractItemModel (0xb4c03d20) 0
+ primary-for QAbstractListModel (0xb4c03ce4)
+ QObject (0xb45f72a0) 0
+ primary-for QAbstractItemModel (0xb4c03d20)
+
+Class QAbstractProxyModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractProxyModel::QPrivateSignal (0xb46074d0) 0 empty
+
+Vtable for QAbstractProxyModel
+QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI19QAbstractProxyModel)
+8 (int (*)(...))QAbstractProxyModel::metaObject
+12 (int (*)(...))QAbstractProxyModel::qt_metacast
+16 (int (*)(...))QAbstractProxyModel::qt_metacall
+20 (int (*)(...))QAbstractProxyModel::~QAbstractProxyModel
+24 (int (*)(...))QAbstractProxyModel::~QAbstractProxyModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+64 (int (*)(...))QAbstractProxyModel::sibling
+68 (int (*)(...))__cxa_pure_virtual
+72 (int (*)(...))__cxa_pure_virtual
+76 (int (*)(...))QAbstractProxyModel::hasChildren
+80 (int (*)(...))QAbstractProxyModel::data
+84 (int (*)(...))QAbstractProxyModel::setData
+88 (int (*)(...))QAbstractProxyModel::headerData
+92 (int (*)(...))QAbstractProxyModel::setHeaderData
+96 (int (*)(...))QAbstractProxyModel::itemData
+100 (int (*)(...))QAbstractProxyModel::setItemData
+104 (int (*)(...))QAbstractProxyModel::mimeTypes
+108 (int (*)(...))QAbstractProxyModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QAbstractItemModel::dropMimeData
+120 (int (*)(...))QAbstractProxyModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QAbstractItemModel::insertRows
+132 (int (*)(...))QAbstractItemModel::insertColumns
+136 (int (*)(...))QAbstractItemModel::removeRows
+140 (int (*)(...))QAbstractItemModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QAbstractProxyModel::fetchMore
+156 (int (*)(...))QAbstractProxyModel::canFetchMore
+160 (int (*)(...))QAbstractProxyModel::flags
+164 (int (*)(...))QAbstractProxyModel::sort
+168 (int (*)(...))QAbstractProxyModel::buddy
+172 (int (*)(...))QAbstractItemModel::match
+176 (int (*)(...))QAbstractProxyModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractProxyModel::submit
+188 (int (*)(...))QAbstractProxyModel::revert
+192 (int (*)(...))QAbstractProxyModel::setSourceModel
+196 (int (*)(...))__cxa_pure_virtual
+200 (int (*)(...))__cxa_pure_virtual
+204 (int (*)(...))QAbstractProxyModel::mapSelectionToSource
+208 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource
+
+Class QAbstractProxyModel
+ size=8 align=4
+ base size=8 base align=4
+QAbstractProxyModel (0xb4c03d5c) 0
+ vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 8u)
+ QAbstractItemModel (0xb4c03d98) 0
+ primary-for QAbstractProxyModel (0xb4c03d5c)
+ QObject (0xb46073f0) 0
+ primary-for QAbstractItemModel (0xb4c03d98)
+
+Class QIdentityProxyModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QIdentityProxyModel::QPrivateSignal (0xb4607ea8) 0 empty
+
+Vtable for QIdentityProxyModel
+QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI19QIdentityProxyModel)
+8 (int (*)(...))QIdentityProxyModel::metaObject
+12 (int (*)(...))QIdentityProxyModel::qt_metacast
+16 (int (*)(...))QIdentityProxyModel::qt_metacall
+20 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel
+24 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QIdentityProxyModel::index
+60 (int (*)(...))QIdentityProxyModel::parent
+64 (int (*)(...))QIdentityProxyModel::sibling
+68 (int (*)(...))QIdentityProxyModel::rowCount
+72 (int (*)(...))QIdentityProxyModel::columnCount
+76 (int (*)(...))QAbstractProxyModel::hasChildren
+80 (int (*)(...))QAbstractProxyModel::data
+84 (int (*)(...))QAbstractProxyModel::setData
+88 (int (*)(...))QIdentityProxyModel::headerData
+92 (int (*)(...))QAbstractProxyModel::setHeaderData
+96 (int (*)(...))QAbstractProxyModel::itemData
+100 (int (*)(...))QAbstractProxyModel::setItemData
+104 (int (*)(...))QAbstractProxyModel::mimeTypes
+108 (int (*)(...))QAbstractProxyModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QIdentityProxyModel::dropMimeData
+120 (int (*)(...))QAbstractProxyModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QIdentityProxyModel::insertRows
+132 (int (*)(...))QIdentityProxyModel::insertColumns
+136 (int (*)(...))QIdentityProxyModel::removeRows
+140 (int (*)(...))QIdentityProxyModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QAbstractProxyModel::fetchMore
+156 (int (*)(...))QAbstractProxyModel::canFetchMore
+160 (int (*)(...))QAbstractProxyModel::flags
+164 (int (*)(...))QAbstractProxyModel::sort
+168 (int (*)(...))QAbstractProxyModel::buddy
+172 (int (*)(...))QIdentityProxyModel::match
+176 (int (*)(...))QAbstractProxyModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractProxyModel::submit
+188 (int (*)(...))QAbstractProxyModel::revert
+192 (int (*)(...))QIdentityProxyModel::setSourceModel
+196 (int (*)(...))QIdentityProxyModel::mapToSource
+200 (int (*)(...))QIdentityProxyModel::mapFromSource
+204 (int (*)(...))QIdentityProxyModel::mapSelectionToSource
+208 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource
+
+Class QIdentityProxyModel
+ size=8 align=4
+ base size=8 base align=4
+QIdentityProxyModel (0xb4c03dd4) 0
+ vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 8u)
+ QAbstractProxyModel (0xb4c03e10) 0
+ primary-for QIdentityProxyModel (0xb4c03dd4)
+ QAbstractItemModel (0xb4c03e4c) 0
+ primary-for QAbstractProxyModel (0xb4c03e10)
+ QObject (0xb4607dc8) 0
+ primary-for QAbstractItemModel (0xb4c03e4c)
+
+Class QItemSelectionRange
+ size=8 align=4
+ base size=8 base align=4
+QItemSelectionRange (0xb4622818) 0
+
+Class QItemSelectionModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QItemSelectionModel::QPrivateSignal (0xb44464d0) 0 empty
+
+Vtable for QItemSelectionModel
+QItemSelectionModel::_ZTV19QItemSelectionModel: 20u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI19QItemSelectionModel)
+8 (int (*)(...))QItemSelectionModel::metaObject
+12 (int (*)(...))QItemSelectionModel::qt_metacast
+16 (int (*)(...))QItemSelectionModel::qt_metacall
+20 (int (*)(...))QItemSelectionModel::~QItemSelectionModel
+24 (int (*)(...))QItemSelectionModel::~QItemSelectionModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QItemSelectionModel::setCurrentIndex
+60 (int (*)(...))QItemSelectionModel::select
+64 (int (*)(...))QItemSelectionModel::select
+68 (int (*)(...))QItemSelectionModel::clear
+72 (int (*)(...))QItemSelectionModel::reset
+76 (int (*)(...))QItemSelectionModel::clearCurrentIndex
+
+Class QItemSelectionModel
+ size=8 align=4
+ base size=8 base align=4
+QItemSelectionModel (0xb4c03e88) 0
+ vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 8u)
+ QObject (0xb44463f0) 0
+ primary-for QItemSelectionModel (0xb4c03e88)
+
+Class QItemSelection
+ size=4 align=4
+ base size=4 base align=4
+QItemSelection (0xb4c03f00) 0
+ QList<QItemSelectionRange> (0xb446c0e0) 0
+
+Class QSortFilterProxyModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSortFilterProxyModel::QPrivateSignal (0xb446c498) 0 empty
+
+Vtable for QSortFilterProxyModel
+QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI21QSortFilterProxyModel)
+8 (int (*)(...))QSortFilterProxyModel::metaObject
+12 (int (*)(...))QSortFilterProxyModel::qt_metacast
+16 (int (*)(...))QSortFilterProxyModel::qt_metacall
+20 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel
+24 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QSortFilterProxyModel::index
+60 (int (*)(...))QSortFilterProxyModel::parent
+64 (int (*)(...))QSortFilterProxyModel::sibling
+68 (int (*)(...))QSortFilterProxyModel::rowCount
+72 (int (*)(...))QSortFilterProxyModel::columnCount
+76 (int (*)(...))QSortFilterProxyModel::hasChildren
+80 (int (*)(...))QSortFilterProxyModel::data
+84 (int (*)(...))QSortFilterProxyModel::setData
+88 (int (*)(...))QSortFilterProxyModel::headerData
+92 (int (*)(...))QSortFilterProxyModel::setHeaderData
+96 (int (*)(...))QAbstractProxyModel::itemData
+100 (int (*)(...))QAbstractProxyModel::setItemData
+104 (int (*)(...))QSortFilterProxyModel::mimeTypes
+108 (int (*)(...))QSortFilterProxyModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QSortFilterProxyModel::dropMimeData
+120 (int (*)(...))QSortFilterProxyModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QSortFilterProxyModel::insertRows
+132 (int (*)(...))QSortFilterProxyModel::insertColumns
+136 (int (*)(...))QSortFilterProxyModel::removeRows
+140 (int (*)(...))QSortFilterProxyModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QSortFilterProxyModel::fetchMore
+156 (int (*)(...))QSortFilterProxyModel::canFetchMore
+160 (int (*)(...))QSortFilterProxyModel::flags
+164 (int (*)(...))QSortFilterProxyModel::sort
+168 (int (*)(...))QSortFilterProxyModel::buddy
+172 (int (*)(...))QSortFilterProxyModel::match
+176 (int (*)(...))QSortFilterProxyModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractProxyModel::submit
+188 (int (*)(...))QAbstractProxyModel::revert
+192 (int (*)(...))QSortFilterProxyModel::setSourceModel
+196 (int (*)(...))QSortFilterProxyModel::mapToSource
+200 (int (*)(...))QSortFilterProxyModel::mapFromSource
+204 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource
+208 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource
+212 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow
+216 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn
+220 (int (*)(...))QSortFilterProxyModel::lessThan
+
+Class QSortFilterProxyModel
+ size=8 align=4
+ base size=8 base align=4
+QSortFilterProxyModel (0xb4c03f3c) 0
+ vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 8u)
+ QAbstractProxyModel (0xb4c03f78) 0
+ primary-for QSortFilterProxyModel (0xb4c03f3c)
+ QAbstractItemModel (0xb4c03fb4) 0
+ primary-for QAbstractProxyModel (0xb4c03f78)
+ QObject (0xb446c3b8) 0
+ primary-for QAbstractItemModel (0xb4c03fb4)
+
+Class QStringListModel::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QStringListModel::QPrivateSignal (0xb446cf50) 0 empty
+
+Vtable for QStringListModel
+QStringListModel::_ZTV16QStringListModel: 48u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI16QStringListModel)
+8 (int (*)(...))QStringListModel::metaObject
+12 (int (*)(...))QStringListModel::qt_metacast
+16 (int (*)(...))QStringListModel::qt_metacall
+20 (int (*)(...))QStringListModel::~QStringListModel
+24 (int (*)(...))QStringListModel::~QStringListModel
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QAbstractListModel::index
+60 (int (*)(...))QAbstractListModel::parent
+64 (int (*)(...))QStringListModel::sibling
+68 (int (*)(...))QStringListModel::rowCount
+72 (int (*)(...))QAbstractListModel::columnCount
+76 (int (*)(...))QAbstractListModel::hasChildren
+80 (int (*)(...))QStringListModel::data
+84 (int (*)(...))QStringListModel::setData
+88 (int (*)(...))QAbstractItemModel::headerData
+92 (int (*)(...))QAbstractItemModel::setHeaderData
+96 (int (*)(...))QAbstractItemModel::itemData
+100 (int (*)(...))QAbstractItemModel::setItemData
+104 (int (*)(...))QAbstractItemModel::mimeTypes
+108 (int (*)(...))QAbstractItemModel::mimeData
+112 (int (*)(...))QAbstractItemModel::canDropMimeData
+116 (int (*)(...))QAbstractListModel::dropMimeData
+120 (int (*)(...))QStringListModel::supportedDropActions
+124 (int (*)(...))QAbstractItemModel::supportedDragActions
+128 (int (*)(...))QStringListModel::insertRows
+132 (int (*)(...))QAbstractItemModel::insertColumns
+136 (int (*)(...))QStringListModel::removeRows
+140 (int (*)(...))QAbstractItemModel::removeColumns
+144 (int (*)(...))QAbstractItemModel::moveRows
+148 (int (*)(...))QAbstractItemModel::moveColumns
+152 (int (*)(...))QAbstractItemModel::fetchMore
+156 (int (*)(...))QAbstractItemModel::canFetchMore
+160 (int (*)(...))QStringListModel::flags
+164 (int (*)(...))QStringListModel::sort
+168 (int (*)(...))QAbstractItemModel::buddy
+172 (int (*)(...))QAbstractItemModel::match
+176 (int (*)(...))QAbstractItemModel::span
+180 (int (*)(...))QAbstractItemModel::roleNames
+184 (int (*)(...))QAbstractItemModel::submit
+188 (int (*)(...))QAbstractItemModel::revert
+
+Class QStringListModel
+ size=12 align=4
+ base size=12 base align=4
+QStringListModel (0xb449f000) 0
+ vptr=((& QStringListModel::_ZTV16QStringListModel) + 8u)
+ QAbstractListModel (0xb449f03c) 0
+ primary-for QStringListModel (0xb449f000)
+ QAbstractItemModel (0xb449f078) 0
+ primary-for QAbstractListModel (0xb449f03c)
+ QObject (0xb446ce70) 0
+ primary-for QAbstractItemModel (0xb449f078)
+
+Class QJsonValue
+ size=16 align=4
+ base size=16 base align=4
+QJsonValue (0xb44a3578) 0
+
+Class QJsonValueRef
+ size=8 align=4
+ base size=8 base align=4
+QJsonValueRef (0xb44b98f8) 0
+
+Class QJsonArray::iterator
+ size=8 align=4
+ base size=8 base align=4
+QJsonArray::iterator (0xb44d44d0) 0
+
+Class QJsonArray::const_iterator
+ size=8 align=4
+ base size=8 base align=4
+QJsonArray::const_iterator (0xb44de3b8) 0
+
+Class QJsonArray
+ size=8 align=4
+ base size=8 base align=4
+QJsonArray (0xb44c5fc0) 0
+
+Class QJsonParseError
+ size=8 align=4
+ base size=8 base align=4
+QJsonParseError (0xb4508770) 0
+
+Class QJsonDocument
+ size=4 align=4
+ base size=4 base align=4
+QJsonDocument (0xb4508850) 0
+
+Class QJsonObject::iterator
+ size=8 align=4
+ base size=8 base align=4
+QJsonObject::iterator (0xb4513620) 0
+
+Class QJsonObject::const_iterator
+ size=8 align=4
+ base size=8 base align=4
+QJsonObject::const_iterator (0xb4520000) 0
+
+Class QJsonObject
+ size=8 align=4
+ base size=8 base align=4
+QJsonObject (0xb45131c0) 0
+
+Class QEventLoop::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QEventLoop::QPrivateSignal (0xb433eab8) 0 empty
+
+Vtable for QEventLoop
+QEventLoop::_ZTV10QEventLoop: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI10QEventLoop)
+8 (int (*)(...))QEventLoop::metaObject
+12 (int (*)(...))QEventLoop::qt_metacast
+16 (int (*)(...))QEventLoop::qt_metacall
+20 (int (*)(...))QEventLoop::~QEventLoop
+24 (int (*)(...))QEventLoop::~QEventLoop
+28 (int (*)(...))QEventLoop::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QEventLoop
+ size=8 align=4
+ base size=8 base align=4
+QEventLoop (0xb449f0b4) 0
+ vptr=((& QEventLoop::_ZTV10QEventLoop) + 8u)
+ QObject (0xb433e9d8) 0
+ primary-for QEventLoop (0xb449f0b4)
+
+Class QEventLoopLocker
+ size=4 align=4
+ base size=4 base align=4
+QEventLoopLocker (0xb4361038) 0
+
+Class QAbstractEventDispatcher::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractEventDispatcher::QPrivateSignal (0xb4361428) 0 empty
+
+Class QAbstractEventDispatcher::TimerInfo
+ size=12 align=4
+ base size=12 base align=4
+QAbstractEventDispatcher::TimerInfo (0xb4361460) 0
+
+Vtable for QAbstractEventDispatcher
+QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI24QAbstractEventDispatcher)
+8 (int (*)(...))QAbstractEventDispatcher::metaObject
+12 (int (*)(...))QAbstractEventDispatcher::qt_metacast
+16 (int (*)(...))QAbstractEventDispatcher::qt_metacall
+20 (int (*)(...))QAbstractEventDispatcher::~QAbstractEventDispatcher
+24 (int (*)(...))QAbstractEventDispatcher::~QAbstractEventDispatcher
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+64 (int (*)(...))__cxa_pure_virtual
+68 (int (*)(...))__cxa_pure_virtual
+72 (int (*)(...))__cxa_pure_virtual
+76 (int (*)(...))__cxa_pure_virtual
+80 (int (*)(...))__cxa_pure_virtual
+84 (int (*)(...))__cxa_pure_virtual
+88 (int (*)(...))__cxa_pure_virtual
+92 (int (*)(...))__cxa_pure_virtual
+96 (int (*)(...))__cxa_pure_virtual
+100 (int (*)(...))__cxa_pure_virtual
+104 (int (*)(...))QAbstractEventDispatcher::startingUp
+108 (int (*)(...))QAbstractEventDispatcher::closingDown
+
+Class QAbstractEventDispatcher
+ size=8 align=4
+ base size=8 base align=4
+QAbstractEventDispatcher (0xb449f168) 0
+ vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 8u)
+ QObject (0xb4361348) 0
+ primary-for QAbstractEventDispatcher (0xb449f168)
+
+Vtable for QAbstractNativeEventFilter
+QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter)
+8 (int (*)(...))QAbstractNativeEventFilter::~QAbstractNativeEventFilter
+12 (int (*)(...))QAbstractNativeEventFilter::~QAbstractNativeEventFilter
+16 (int (*)(...))__cxa_pure_virtual
+
+Class QAbstractNativeEventFilter
+ size=8 align=4
+ base size=8 base align=4
+QAbstractNativeEventFilter (0xb4361fc0) 0
+ vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 8u)
+
+Class QBasicTimer
+ size=4 align=4
+ base size=4 base align=4
+QBasicTimer (0xb4372268) 0
+
+Vtable for QEvent
+QEvent::_ZTV6QEvent: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI6QEvent)
+8 (int (*)(...))QEvent::~QEvent
+12 (int (*)(...))QEvent::~QEvent
+
+Class QEvent
+ size=12 align=4
+ base size=12 base align=4
+QEvent (0xb4372a10) 0
+ vptr=((& QEvent::_ZTV6QEvent) + 8u)
+
+Vtable for QTimerEvent
+QTimerEvent::_ZTV11QTimerEvent: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QTimerEvent)
+8 (int (*)(...))QTimerEvent::~QTimerEvent
+12 (int (*)(...))QTimerEvent::~QTimerEvent
+
+Class QTimerEvent
+ size=16 align=4
+ base size=16 base align=4
+QTimerEvent (0xb449f258) 0
+ vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 8u)
+ QEvent (0xb438c578) 0
+ primary-for QTimerEvent (0xb449f258)
+
+Vtable for QChildEvent
+QChildEvent::_ZTV11QChildEvent: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QChildEvent)
+8 (int (*)(...))QChildEvent::~QChildEvent
+12 (int (*)(...))QChildEvent::~QChildEvent
+
+Class QChildEvent
+ size=16 align=4
+ base size=16 base align=4
+QChildEvent (0xb449f294) 0
+ vptr=((& QChildEvent::_ZTV11QChildEvent) + 8u)
+ QEvent (0xb438c738) 0
+ primary-for QChildEvent (0xb449f294)
+
+Vtable for QDynamicPropertyChangeEvent
+QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent)
+8 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent
+12 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent
+
+Class QDynamicPropertyChangeEvent
+ size=16 align=4
+ base size=16 base align=4
+QDynamicPropertyChangeEvent (0xb449f2d0) 0
+ vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 8u)
+ QEvent (0xb438cd58) 0
+ primary-for QDynamicPropertyChangeEvent (0xb449f2d0)
+
+Vtable for QDeferredDeleteEvent
+QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI20QDeferredDeleteEvent)
+8 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent
+12 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent
+
+Class QDeferredDeleteEvent
+ size=16 align=4
+ base size=16 base align=4
+QDeferredDeleteEvent (0xb449f30c) 0
+ vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 8u)
+ QEvent (0xb438cf18) 0
+ primary-for QDeferredDeleteEvent (0xb449f30c)
+
+Class QCoreApplication::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QCoreApplication::QPrivateSignal (0xb43980e0) 0 empty
+
+Vtable for QCoreApplication
+QCoreApplication::_ZTV16QCoreApplication: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI16QCoreApplication)
+8 (int (*)(...))QCoreApplication::metaObject
+12 (int (*)(...))QCoreApplication::qt_metacast
+16 (int (*)(...))QCoreApplication::qt_metacall
+20 (int (*)(...))QCoreApplication::~QCoreApplication
+24 (int (*)(...))QCoreApplication::~QCoreApplication
+28 (int (*)(...))QCoreApplication::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QCoreApplication::notify
+60 (int (*)(...))QCoreApplication::compressEvent
+
+Class QCoreApplication
+ size=8 align=4
+ base size=8 base align=4
+QCoreApplication (0xb449f348) 0
+ vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 8u)
+ QObject (0xb4398000) 0
+ primary-for QCoreApplication (0xb449f348)
+
+Class __exception
+ size=32 align=4
+ base size=32 base align=4
+__exception (0xb43a9150) 0
+
+Class QMetaMethod
+ size=8 align=4
+ base size=8 base align=4
+QMetaMethod (0xb43a9a48) 0
+
+Class QMetaEnum
+ size=8 align=4
+ base size=8 base align=4
+QMetaEnum (0xb43f3e38) 0
+
+Class QMetaProperty
+ size=20 align=4
+ base size=20 base align=4
+QMetaProperty (0xb43ff2d8) 0
+
+Class QMetaClassInfo
+ size=8 align=4
+ base size=8 base align=4
+QMetaClassInfo (0xb43ff578) 0
+
+Class QMimeData::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QMimeData::QPrivateSignal (0xb43ffa10) 0 empty
+
+Vtable for QMimeData
+QMimeData::_ZTV9QMimeData: 17u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI9QMimeData)
+8 (int (*)(...))QMimeData::metaObject
+12 (int (*)(...))QMimeData::qt_metacast
+16 (int (*)(...))QMimeData::qt_metacall
+20 (int (*)(...))QMimeData::~QMimeData
+24 (int (*)(...))QMimeData::~QMimeData
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QMimeData::hasFormat
+60 (int (*)(...))QMimeData::formats
+64 (int (*)(...))QMimeData::retrieveData
+
+Class QMimeData
+ size=8 align=4
+ base size=8 base align=4
+QMimeData (0xb449f384) 0
+ vptr=((& QMimeData::_ZTV9QMimeData) + 8u)
+ QObject (0xb43ff930) 0
+ primary-for QMimeData (0xb449f384)
+
+Class QObjectCleanupHandler::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QObjectCleanupHandler::QPrivateSignal (0xb44171c0) 0 empty
+
+Vtable for QObjectCleanupHandler
+QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI21QObjectCleanupHandler)
+8 (int (*)(...))QObjectCleanupHandler::metaObject
+12 (int (*)(...))QObjectCleanupHandler::qt_metacast
+16 (int (*)(...))QObjectCleanupHandler::qt_metacall
+20 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler
+24 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QObjectCleanupHandler
+ size=12 align=4
+ base size=12 base align=4
+QObjectCleanupHandler (0xb449f3c0) 0
+ vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 8u)
+ QObject (0xb44170e0) 0
+ primary-for QObjectCleanupHandler (0xb449f3c0)
+
+Class QSharedMemory::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSharedMemory::QPrivateSignal (0xb4417cb0) 0 empty
+
+Vtable for QSharedMemory
+QSharedMemory::_ZTV13QSharedMemory: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI13QSharedMemory)
+8 (int (*)(...))QSharedMemory::metaObject
+12 (int (*)(...))QSharedMemory::qt_metacast
+16 (int (*)(...))QSharedMemory::qt_metacall
+20 (int (*)(...))QSharedMemory::~QSharedMemory
+24 (int (*)(...))QSharedMemory::~QSharedMemory
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QSharedMemory
+ size=8 align=4
+ base size=8 base align=4
+QSharedMemory (0xb449f3fc) 0
+ vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 8u)
+ QObject (0xb4417bd0) 0
+ primary-for QSharedMemory (0xb449f3fc)
+
+Class QSignalMapper::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSignalMapper::QPrivateSignal (0xb4238700) 0 empty
+
+Vtable for QSignalMapper
+QSignalMapper::_ZTV13QSignalMapper: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI13QSignalMapper)
+8 (int (*)(...))QSignalMapper::metaObject
+12 (int (*)(...))QSignalMapper::qt_metacast
+16 (int (*)(...))QSignalMapper::qt_metacall
+20 (int (*)(...))QSignalMapper::~QSignalMapper
+24 (int (*)(...))QSignalMapper::~QSignalMapper
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QSignalMapper
+ size=8 align=4
+ base size=8 base align=4
+QSignalMapper (0xb449f438) 0
+ vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 8u)
+ QObject (0xb4238620) 0
+ primary-for QSignalMapper (0xb449f438)
+
+Class QSocketNotifier::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSocketNotifier::QPrivateSignal (0xb4244380) 0 empty
+
+Vtable for QSocketNotifier
+QSocketNotifier::_ZTV15QSocketNotifier: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI15QSocketNotifier)
+8 (int (*)(...))QSocketNotifier::metaObject
+12 (int (*)(...))QSocketNotifier::qt_metacast
+16 (int (*)(...))QSocketNotifier::qt_metacall
+20 (int (*)(...))QSocketNotifier::~QSocketNotifier
+24 (int (*)(...))QSocketNotifier::~QSocketNotifier
+28 (int (*)(...))QSocketNotifier::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QSocketNotifier
+ size=8 align=4
+ base size=8 base align=4
+QSocketNotifier (0xb449f474) 0
+ vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 8u)
+ QObject (0xb42442a0) 0
+ primary-for QSocketNotifier (0xb449f474)
+
+Class QSystemSemaphore
+ size=4 align=4
+ base size=4 base align=4
+QSystemSemaphore (0xb4244b98) 0
+
+Class QTimer::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QTimer::QPrivateSignal (0xb425c118) 0 empty
+
+Vtable for QTimer
+QTimer::_ZTV6QTimer: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI6QTimer)
+8 (int (*)(...))QTimer::metaObject
+12 (int (*)(...))QTimer::qt_metacast
+16 (int (*)(...))QTimer::qt_metacall
+20 (int (*)(...))QTimer::~QTimer
+24 (int (*)(...))QTimer::~QTimer
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QTimer::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QTimer
+ size=24 align=4
+ base size=21 base align=4
+QTimer (0xb449f4ec) 0
+ vptr=((& QTimer::_ZTV6QTimer) + 8u)
+ QObject (0xb425c038) 0
+ primary-for QTimer (0xb449f4ec)
+
+Class QTranslator::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QTranslator::QPrivateSignal (0xb425cfc0) 0 empty
+
+Vtable for QTranslator
+QTranslator::_ZTV11QTranslator: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QTranslator)
+8 (int (*)(...))QTranslator::metaObject
+12 (int (*)(...))QTranslator::qt_metacast
+16 (int (*)(...))QTranslator::qt_metacall
+20 (int (*)(...))QTranslator::~QTranslator
+24 (int (*)(...))QTranslator::~QTranslator
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QTranslator::translate
+60 (int (*)(...))QTranslator::isEmpty
+
+Class QTranslator
+ size=8 align=4
+ base size=8 base align=4
+QTranslator (0xb449f528) 0
+ vptr=((& QTranslator::_ZTV11QTranslator) + 8u)
+ QObject (0xb425cee0) 0
+ primary-for QTranslator (0xb449f528)
+
+Class QMimeType
+ size=4 align=4
+ base size=4 base align=4
+QMimeType (0xb426e850) 0
+
+Class QMimeDatabase
+ size=4 align=4
+ base size=4 base align=4
+QMimeDatabase (0xb426ec40) 0
+
+Vtable for QFactoryInterface
+QFactoryInterface::_ZTV17QFactoryInterface: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI17QFactoryInterface)
+8 (int (*)(...))QFactoryInterface::~QFactoryInterface
+12 (int (*)(...))QFactoryInterface::~QFactoryInterface
+16 (int (*)(...))__cxa_pure_virtual
+
+Class QFactoryInterface
+ size=4 align=4
+ base size=4 base align=4
+QFactoryInterface (0xb42853b8) 0 nearly-empty
+ vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 8u)
+
+Class QLibrary::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QLibrary::QPrivateSignal (0xb4285888) 0 empty
+
+Vtable for QLibrary
+QLibrary::_ZTV8QLibrary: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI8QLibrary)
+8 (int (*)(...))QLibrary::metaObject
+12 (int (*)(...))QLibrary::qt_metacast
+16 (int (*)(...))QLibrary::qt_metacall
+20 (int (*)(...))QLibrary::~QLibrary
+24 (int (*)(...))QLibrary::~QLibrary
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QLibrary
+ size=16 align=4
+ base size=13 base align=4
+QLibrary (0xb449f618) 0
+ vptr=((& QLibrary::_ZTV8QLibrary) + 8u)
+ QObject (0xb42857a8) 0
+ primary-for QLibrary (0xb449f618)
+
+Class QStaticPlugin
+ size=8 align=4
+ base size=8 base align=4
+QStaticPlugin (0xb429df18) 0
+
+Class QPluginLoader::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QPluginLoader::QPrivateSignal (0xb42b4000) 0 empty
+
+Vtable for QPluginLoader
+QPluginLoader::_ZTV13QPluginLoader: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI13QPluginLoader)
+8 (int (*)(...))QPluginLoader::metaObject
+12 (int (*)(...))QPluginLoader::qt_metacast
+16 (int (*)(...))QPluginLoader::qt_metacall
+20 (int (*)(...))QPluginLoader::~QPluginLoader
+24 (int (*)(...))QPluginLoader::~QPluginLoader
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QPluginLoader
+ size=16 align=4
+ base size=13 base align=4
+QPluginLoader (0xb449f690) 0
+ vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 8u)
+ QObject (0xb429df50) 0
+ primary-for QPluginLoader (0xb449f690)
+
+Class QUuid
+ size=16 align=4
+ base size=16 base align=4
+QUuid (0xb42b4738) 0
+
+Class QAbstractState::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractState::QPrivateSignal (0xb42c7b98) 0 empty
+
+Vtable for QAbstractState
+QAbstractState::_ZTV14QAbstractState: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI14QAbstractState)
+8 (int (*)(...))QAbstractState::metaObject
+12 (int (*)(...))QAbstractState::qt_metacast
+16 (int (*)(...))QAbstractState::qt_metacall
+20 (int (*)(...))QAbstractState::~QAbstractState
+24 (int (*)(...))QAbstractState::~QAbstractState
+28 (int (*)(...))QAbstractState::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+
+Class QAbstractState
+ size=8 align=4
+ base size=8 base align=4
+QAbstractState (0xb449f6cc) 0
+ vptr=((& QAbstractState::_ZTV14QAbstractState) + 8u)
+ QObject (0xb42c7ab8) 0
+ primary-for QAbstractState (0xb449f6cc)
+
+Class QAbstractTransition::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractTransition::QPrivateSignal (0xb42d83b8) 0 empty
+
+Vtable for QAbstractTransition
+QAbstractTransition::_ZTV19QAbstractTransition: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI19QAbstractTransition)
+8 (int (*)(...))QAbstractTransition::metaObject
+12 (int (*)(...))QAbstractTransition::qt_metacast
+16 (int (*)(...))QAbstractTransition::qt_metacall
+20 (int (*)(...))QAbstractTransition::~QAbstractTransition
+24 (int (*)(...))QAbstractTransition::~QAbstractTransition
+28 (int (*)(...))QAbstractTransition::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+
+Class QAbstractTransition
+ size=8 align=4
+ base size=8 base align=4
+QAbstractTransition (0xb449f708) 0
+ vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 8u)
+ QObject (0xb42d82d8) 0
+ primary-for QAbstractTransition (0xb449f708)
+
+Class QEventTransition::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QEventTransition::QPrivateSignal (0xb42d8bd0) 0 empty
+
+Vtable for QEventTransition
+QEventTransition::_ZTV16QEventTransition: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI16QEventTransition)
+8 (int (*)(...))QEventTransition::metaObject
+12 (int (*)(...))QEventTransition::qt_metacast
+16 (int (*)(...))QEventTransition::qt_metacall
+20 (int (*)(...))QEventTransition::~QEventTransition
+24 (int (*)(...))QEventTransition::~QEventTransition
+28 (int (*)(...))QEventTransition::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QEventTransition::eventTest
+60 (int (*)(...))QEventTransition::onTransition
+
+Class QEventTransition
+ size=8 align=4
+ base size=8 base align=4
+QEventTransition (0xb449f744) 0
+ vptr=((& QEventTransition::_ZTV16QEventTransition) + 8u)
+ QAbstractTransition (0xb449f780) 0
+ primary-for QEventTransition (0xb449f744)
+ QObject (0xb42d8af0) 0
+ primary-for QAbstractTransition (0xb449f780)
+
+Class QFinalState::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QFinalState::QPrivateSignal (0xb42ee690) 0 empty
+
+Vtable for QFinalState
+QFinalState::_ZTV11QFinalState: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QFinalState)
+8 (int (*)(...))QFinalState::metaObject
+12 (int (*)(...))QFinalState::qt_metacast
+16 (int (*)(...))QFinalState::qt_metacall
+20 (int (*)(...))QFinalState::~QFinalState
+24 (int (*)(...))QFinalState::~QFinalState
+28 (int (*)(...))QFinalState::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QFinalState::onEntry
+60 (int (*)(...))QFinalState::onExit
+
+Class QFinalState
+ size=8 align=4
+ base size=8 base align=4
+QFinalState (0xb449f7bc) 0
+ vptr=((& QFinalState::_ZTV11QFinalState) + 8u)
+ QAbstractState (0xb449f7f8) 0
+ primary-for QFinalState (0xb449f7bc)
+ QObject (0xb42ee5b0) 0
+ primary-for QAbstractState (0xb449f7f8)
+
+Class QHistoryState::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QHistoryState::QPrivateSignal (0xb42eee38) 0 empty
+
+Vtable for QHistoryState
+QHistoryState::_ZTV13QHistoryState: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI13QHistoryState)
+8 (int (*)(...))QHistoryState::metaObject
+12 (int (*)(...))QHistoryState::qt_metacast
+16 (int (*)(...))QHistoryState::qt_metacall
+20 (int (*)(...))QHistoryState::~QHistoryState
+24 (int (*)(...))QHistoryState::~QHistoryState
+28 (int (*)(...))QHistoryState::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QHistoryState::onEntry
+60 (int (*)(...))QHistoryState::onExit
+
+Class QHistoryState
+ size=8 align=4
+ base size=8 base align=4
+QHistoryState (0xb449f834) 0
+ vptr=((& QHistoryState::_ZTV13QHistoryState) + 8u)
+ QAbstractState (0xb449f870) 0
+ primary-for QHistoryState (0xb449f834)
+ QObject (0xb42eed58) 0
+ primary-for QAbstractState (0xb449f870)
+
+Class QSignalTransition::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QSignalTransition::QPrivateSignal (0xb42ff7e0) 0 empty
+
+Vtable for QSignalTransition
+QSignalTransition::_ZTV17QSignalTransition: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI17QSignalTransition)
+8 (int (*)(...))QSignalTransition::metaObject
+12 (int (*)(...))QSignalTransition::qt_metacast
+16 (int (*)(...))QSignalTransition::qt_metacall
+20 (int (*)(...))QSignalTransition::~QSignalTransition
+24 (int (*)(...))QSignalTransition::~QSignalTransition
+28 (int (*)(...))QSignalTransition::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QSignalTransition::eventTest
+60 (int (*)(...))QSignalTransition::onTransition
+
+Class QSignalTransition
+ size=8 align=4
+ base size=8 base align=4
+QSignalTransition (0xb449f8ac) 0
+ vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 8u)
+ QAbstractTransition (0xb449f8e8) 0
+ primary-for QSignalTransition (0xb449f8ac)
+ QObject (0xb42ff700) 0
+ primary-for QAbstractTransition (0xb449f8e8)
+
+Class QState::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QState::QPrivateSignal (0xb430e0e0) 0 empty
+
+Vtable for QState
+QState::_ZTV6QState: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI6QState)
+8 (int (*)(...))QState::metaObject
+12 (int (*)(...))QState::qt_metacast
+16 (int (*)(...))QState::qt_metacall
+20 (int (*)(...))QState::~QState
+24 (int (*)(...))QState::~QState
+28 (int (*)(...))QState::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QState::onEntry
+60 (int (*)(...))QState::onExit
+
+Class QState
+ size=8 align=4
+ base size=8 base align=4
+QState (0xb449f924) 0
+ vptr=((& QState::_ZTV6QState) + 8u)
+ QAbstractState (0xb449f960) 0
+ primary-for QState (0xb449f924)
+ QObject (0xb430e000) 0
+ primary-for QAbstractState (0xb449f960)
+
+Class QStateMachine::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QStateMachine::QPrivateSignal (0xb430eee0) 0 empty
+
+Vtable for QStateMachine::SignalEvent
+QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE)
+8 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent
+12 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent
+
+Class QStateMachine::SignalEvent
+ size=24 align=4
+ base size=24 base align=4
+QStateMachine::SignalEvent (0xb449fa50) 0
+ vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 8u)
+ QEvent (0xb430ef18) 0
+ primary-for QStateMachine::SignalEvent (0xb449fa50)
+
+Vtable for QStateMachine::WrappedEvent
+QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE)
+8 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent
+12 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent
+
+Class QStateMachine::WrappedEvent
+ size=20 align=4
+ base size=20 base align=4
+QStateMachine::WrappedEvent (0xb449fa8c) 0
+ vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 8u)
+ QEvent (0xb4320188) 0
+ primary-for QStateMachine::WrappedEvent (0xb449fa8c)
+
+Vtable for QStateMachine
+QStateMachine::_ZTV13QStateMachine: 20u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI13QStateMachine)
+8 (int (*)(...))QStateMachine::metaObject
+12 (int (*)(...))QStateMachine::qt_metacast
+16 (int (*)(...))QStateMachine::qt_metacall
+20 (int (*)(...))QStateMachine::~QStateMachine
+24 (int (*)(...))QStateMachine::~QStateMachine
+28 (int (*)(...))QStateMachine::event
+32 (int (*)(...))QStateMachine::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QStateMachine::onEntry
+60 (int (*)(...))QStateMachine::onExit
+64 (int (*)(...))QStateMachine::beginSelectTransitions
+68 (int (*)(...))QStateMachine::endSelectTransitions
+72 (int (*)(...))QStateMachine::beginMicrostep
+76 (int (*)(...))QStateMachine::endMicrostep
+
+Class QStateMachine
+ size=8 align=4
+ base size=8 base align=4
+QStateMachine (0xb449f99c) 0
+ vptr=((& QStateMachine::_ZTV13QStateMachine) + 8u)
+ QState (0xb449f9d8) 0
+ primary-for QStateMachine (0xb449f99c)
+ QAbstractState (0xb449fa14) 0
+ primary-for QState (0xb449f9d8)
+ QObject (0xb430ee00) 0
+ primary-for QAbstractState (0xb449fa14)
+
+Vtable for QException
+QException::_ZTV10QException: 7u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI10QException)
+8 (int (*)(...))QException::~QException
+12 (int (*)(...))QException::~QException
+16 (int (*)(...))std::exception::what
+20 (int (*)(...))QException::raise
+24 (int (*)(...))QException::clone
+
+Class QException
+ size=4 align=4
+ base size=4 base align=4
+QException (0xb449fac8) 0 nearly-empty
+ vptr=((& QException::_ZTV10QException) + 8u)
+ std::exception (0xb412ea10) 0 nearly-empty
+ primary-for QException (0xb449fac8)
+
+Vtable for QUnhandledException
+QUnhandledException::_ZTV19QUnhandledException: 7u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI19QUnhandledException)
+8 (int (*)(...))QUnhandledException::~QUnhandledException
+12 (int (*)(...))QUnhandledException::~QUnhandledException
+16 (int (*)(...))std::exception::what
+20 (int (*)(...))QUnhandledException::raise
+24 (int (*)(...))QUnhandledException::clone
+
+Class QUnhandledException
+ size=4 align=4
+ base size=4 base align=4
+QUnhandledException (0xb449fb04) 0 nearly-empty
+ vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 8u)
+ QException (0xb449fb40) 0 nearly-empty
+ primary-for QUnhandledException (0xb449fb04)
+ std::exception (0xb412eb28) 0 nearly-empty
+ primary-for QException (0xb449fb40)
+
+Class QtPrivate::ExceptionHolder
+ size=4 align=4
+ base size=4 base align=4
+QtPrivate::ExceptionHolder (0xb412ec40) 0
+
+Class QtPrivate::ExceptionStore
+ size=4 align=4
+ base size=4 base align=4
+QtPrivate::ExceptionStore (0xb412ee70) 0
+
+Vtable for QRunnable
+QRunnable::_ZTV9QRunnable: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI9QRunnable)
+8 (int (*)(...))__cxa_pure_virtual
+12 (int (*)(...))QRunnable::~QRunnable
+16 (int (*)(...))QRunnable::~QRunnable
+
+Class QRunnable
+ size=8 align=4
+ base size=8 base align=4
+QRunnable (0xb412eea8) 0
+ vptr=((& QRunnable::_ZTV9QRunnable) + 8u)
+
+Class QBasicMutex
+ size=4 align=4
+ base size=4 base align=4
+QBasicMutex (0xb414a428) 0
+
+Class QMutex
+ size=4 align=4
+ base size=4 base align=4
+QMutex (0xb449fbf4) 0
+ QBasicMutex (0xb414ad58) 0
+
+Class QMutexLocker
+ size=4 align=4
+ base size=4 base align=4
+QMutexLocker (0xb4155150) 0
+
+Class QtPrivate::ResultItem
+ size=8 align=4
+ base size=8 base align=4
+QtPrivate::ResultItem (0xb415e1f8) 0
+
+Class QtPrivate::ResultIteratorBase
+ size=8 align=4
+ base size=8 base align=4
+QtPrivate::ResultIteratorBase (0xb415ec08) 0
+
+Vtable for QtPrivate::ResultStoreBase
+QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE)
+8 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase
+12 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase
+
+Class QtPrivate::ResultStoreBase
+ size=28 align=4
+ base size=28 base align=4
+QtPrivate::ResultStoreBase (0xb417b118) 0
+ vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 8u)
+
+Vtable for QFutureInterfaceBase
+QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI20QFutureInterfaceBase)
+8 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase
+12 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase
+
+Class QFutureInterfaceBase
+ size=8 align=4
+ base size=8 base align=4
+QFutureInterfaceBase (0xb417b850) 0
+ vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 8u)
+
+Class QFutureWatcherBase::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QFutureWatcherBase::QPrivateSignal (0xb41f01f8) 0 empty
+
+Vtable for QFutureWatcherBase
+QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QFutureWatcherBase)
+8 (int (*)(...))QFutureWatcherBase::metaObject
+12 (int (*)(...))QFutureWatcherBase::qt_metacast
+16 (int (*)(...))QFutureWatcherBase::qt_metacall
+20 (int (*)(...))QFutureWatcherBase::~QFutureWatcherBase
+24 (int (*)(...))QFutureWatcherBase::~QFutureWatcherBase
+28 (int (*)(...))QFutureWatcherBase::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QFutureWatcherBase::connectNotify
+52 (int (*)(...))QFutureWatcherBase::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+
+Class QFutureWatcherBase
+ size=8 align=4
+ base size=8 base align=4
+QFutureWatcherBase (0xb449fdd4) 0
+ vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 8u)
+ QObject (0xb41f0118) 0
+ primary-for QFutureWatcherBase (0xb449fdd4)
+
+Class QReadWriteLock
+ size=4 align=4
+ base size=4 base align=4
+QReadWriteLock (0xb420b690) 0
+
+Class QReadLocker
+ size=4 align=4
+ base size=4 base align=4
+QReadLocker (0xb420ba10) 0
+
+Class QWriteLocker
+ size=4 align=4
+ base size=4 base align=4
+QWriteLocker (0xb4214c40) 0
+
+Class QSemaphore
+ size=4 align=4
+ base size=4 base align=4
+QSemaphore (0xb4219e70) 0
+
+Class QThread::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QThread::QPrivateSignal (0xb42201f8) 0 empty
+
+Vtable for QThread
+QThread::_ZTV7QThread: 15u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI7QThread)
+8 (int (*)(...))QThread::metaObject
+12 (int (*)(...))QThread::qt_metacast
+16 (int (*)(...))QThread::qt_metacall
+20 (int (*)(...))QThread::~QThread
+24 (int (*)(...))QThread::~QThread
+28 (int (*)(...))QThread::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QThread::run
+
+Class QThread
+ size=8 align=4
+ base size=8 base align=4
+QThread (0xb449ff78) 0
+ vptr=((& QThread::_ZTV7QThread) + 8u)
+ QObject (0xb4220118) 0
+ primary-for QThread (0xb449ff78)
+
+Class QThreadPool::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QThreadPool::QPrivateSignal (0xb4220af0) 0 empty
+
+Vtable for QThreadPool
+QThreadPool::_ZTV11QThreadPool: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QThreadPool)
+8 (int (*)(...))QThreadPool::metaObject
+12 (int (*)(...))QThreadPool::qt_metacast
+16 (int (*)(...))QThreadPool::qt_metacall
+20 (int (*)(...))QThreadPool::~QThreadPool
+24 (int (*)(...))QThreadPool::~QThreadPool
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QThreadPool
+ size=8 align=4
+ base size=8 base align=4
+QThreadPool (0xb402a000) 0
+ vptr=((& QThreadPool::_ZTV11QThreadPool) + 8u)
+ QObject (0xb4220a10) 0
+ primary-for QThreadPool (0xb402a000)
+
+Class QThreadStorageData
+ size=4 align=4
+ base size=4 base align=4
+QThreadStorageData (0xb4036038) 0
+
+Class QWaitCondition
+ size=4 align=4
+ base size=4 base align=4
+QWaitCondition (0xb4036460) 0
+
+Class QBitArray
+ size=4 align=4
+ base size=4 base align=4
+QBitArray (0xb406e428) 0
+
+Class QBitRef
+ size=8 align=4
+ base size=8 base align=4
+QBitRef (0xb408df88) 0
+
+Class QByteArrayMatcher::Data
+ size=264 align=4
+ base size=264 base align=4
+QByteArrayMatcher::Data (0xb40a9000) 0
+
+Class QByteArrayMatcher
+ size=1032 align=4
+ base size=1032 base align=4
+QByteArrayMatcher (0xb409ace8) 0
+
+Class QCryptographicHash
+ size=4 align=4
+ base size=4 base align=4
+QCryptographicHash (0xb40a98f8) 0
+
+Class QElapsedTimer
+ size=16 align=4
+ base size=16 base align=4
+QElapsedTimer (0xb40a9c40) 0
+
+Class QPoint
+ size=8 align=4
+ base size=8 base align=4
+QPoint (0xb40ca150) 0
+
+Class QPointF
+ size=16 align=4
+ base size=16 base align=4
+QPointF (0xb40e1c78) 0
+
+Class QLine
+ size=16 align=4
+ base size=16 base align=4
+QLine (0xb4100b60) 0
+
+Class QLineF
+ size=32 align=4
+ base size=32 base align=4
+QLineF (0xb411bce8) 0
+
+Class QLinkedListData
+ size=20 align=4
+ base size=20 base align=4
+QLinkedListData (0xb3f471f8) 0
+
+Class QSize
+ size=8 align=4
+ base size=8 base align=4
+QSize (0xb3fa00e0) 0
+
+Class QSizeF
+ size=16 align=4
+ base size=16 base align=4
+QSizeF (0xb3fbab98) 0
+
+Class QRect
+ size=16 align=4
+ base size=16 base align=4
+QRect (0xb3fe37e0) 0
+
+Class QRectF
+ size=32 align=4
+ base size=32 base align=4
+QRectF (0xb3e27070) 0
+
+Class QMargins
+ size=16 align=4
+ base size=16 base align=4
+QMargins (0xb3e6c0e0) 0
+
+Class QMessageAuthenticationCode
+ size=4 align=4
+ base size=4 base align=4
+QMessageAuthenticationCode (0xb3e86f18) 0
+
+Class QRegularExpression
+ size=4 align=4
+ base size=4 base align=4
+QRegularExpression (0xb3e99268) 0
+
+Class QRegularExpressionMatch
+ size=4 align=4
+ base size=4 base align=4
+QRegularExpressionMatch (0xb3eced90) 0
+
+Class QRegularExpressionMatchIterator
+ size=4 align=4
+ base size=4 base align=4
+QRegularExpressionMatchIterator (0xb3edf4d0) 0
+
+Class QAbstractConcatenable
+ size=1 align=1
+ base size=0 base align=1
+QAbstractConcatenable (0xb3edff18) 0 empty
+
+Class QTextBoundaryFinder
+ size=28 align=4
+ base size=28 base align=4
+QTextBoundaryFinder (0xb3d399a0) 0
+
+Class QTimeLine::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QTimeLine::QPrivateSignal (0xb3d6d150) 0 empty
+
+Vtable for QTimeLine
+QTimeLine::_ZTV9QTimeLine: 15u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI9QTimeLine)
+8 (int (*)(...))QTimeLine::metaObject
+12 (int (*)(...))QTimeLine::qt_metacast
+16 (int (*)(...))QTimeLine::qt_metacall
+20 (int (*)(...))QTimeLine::~QTimeLine
+24 (int (*)(...))QTimeLine::~QTimeLine
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QTimeLine::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))QTimeLine::valueForTime
+
+Class QTimeLine
+ size=8 align=4
+ base size=8 base align=4
+QTimeLine (0xb402a8e8) 0
+ vptr=((& QTimeLine::_ZTV9QTimeLine) + 8u)
+ QObject (0xb3d6d070) 0
+ primary-for QTimeLine (0xb402a8e8)
+
+Class QXmlStreamStringRef
+ size=12 align=4
+ base size=12 base align=4
+QXmlStreamStringRef (0xb3d6dc40) 0
+
+Class QXmlStreamAttribute
+ size=56 align=4
+ base size=53 base align=4
+QXmlStreamAttribute (0xb3d81b98) 0
+
+Class QXmlStreamAttributes
+ size=4 align=4
+ base size=4 base align=4
+QXmlStreamAttributes (0xb402a960) 0
+ QVector<QXmlStreamAttribute> (0xb3d8ce70) 0
+
+Class QXmlStreamNamespaceDeclaration
+ size=28 align=4
+ base size=28 base align=4
+QXmlStreamNamespaceDeclaration (0xb3db7150) 0
+
+Class QXmlStreamNotationDeclaration
+ size=40 align=4
+ base size=40 base align=4
+QXmlStreamNotationDeclaration (0xb3db7ab8) 0
+
+Class QXmlStreamEntityDeclaration
+ size=64 align=4
+ base size=64 base align=4
+QXmlStreamEntityDeclaration (0xb3dc2508) 0
+
+Vtable for QXmlStreamEntityResolver
+QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver)
+8 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver
+12 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver
+16 (int (*)(...))QXmlStreamEntityResolver::resolveEntity
+20 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity
+
+Class QXmlStreamEntityResolver
+ size=4 align=4
+ base size=4 base align=4
+QXmlStreamEntityResolver (0xb3dd81c0) 0 nearly-empty
+ vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 8u)
+
+Class QXmlStreamReader
+ size=4 align=4
+ base size=4 base align=4
+QXmlStreamReader (0xb3dd8268) 0
+
+Class QXmlStreamWriter
+ size=4 align=4
+ base size=4 base align=4
+QXmlStreamWriter (0xb3df8850) 0
+
diff --git a/tests/auto/bic/data/QtDBus.5.1.0.linux-gcc-ia32.txt b/tests/auto/bic/data/QtDBus.5.1.0.linux-gcc-ia32.txt
new file mode 100644
index 0000000000..7c952fe8b7
--- /dev/null
+++ b/tests/auto/bic/data/QtDBus.5.1.0.linux-gcc-ia32.txt
@@ -0,0 +1,3806 @@
+Class std::__true_type
+ size=1 align=1
+ base size=0 base align=1
+std::__true_type (0xb72b3620) 0 empty
+
+Class std::__false_type
+ size=1 align=1
+ base size=0 base align=1
+std::__false_type (0xb72b3658) 0 empty
+
+Class std::input_iterator_tag
+ size=1 align=1
+ base size=0 base align=1
+std::input_iterator_tag (0xb5feb6c8) 0 empty
+
+Class std::output_iterator_tag
+ size=1 align=1
+ base size=0 base align=1
+std::output_iterator_tag (0xb5feb700) 0 empty
+
+Class std::forward_iterator_tag
+ size=1 align=1
+ base size=1 base align=1
+std::forward_iterator_tag (0xb71e4a50) 0 empty
+ std::input_iterator_tag (0xb5feb738) 0 empty
+
+Class std::bidirectional_iterator_tag
+ size=1 align=1
+ base size=1 base align=1
+std::bidirectional_iterator_tag (0xb71e4a8c) 0 empty
+ std::forward_iterator_tag (0xb71e4ac8) 0 empty
+ std::input_iterator_tag (0xb5feb770) 0 empty
+
+Class std::random_access_iterator_tag
+ size=1 align=1
+ base size=1 base align=1
+std::random_access_iterator_tag (0xb71e4b04) 0 empty
+ std::bidirectional_iterator_tag (0xb71e4b40) 0 empty
+ std::forward_iterator_tag (0xb71e4b7c) 0 empty
+ std::input_iterator_tag (0xb5feb7a8) 0 empty
+
+Class wait
+ size=4 align=4
+ base size=4 base align=4
+wait (0xb6050dc8) 0
+
+Class __locale_struct
+ size=116 align=4
+ base size=116 base align=4
+__locale_struct (0xb6050f18) 0
+
+Class timespec
+ size=8 align=4
+ base size=8 base align=4
+timespec (0xb6050fc0) 0
+
+Class timeval
+ size=8 align=4
+ base size=8 base align=4
+timeval (0xb6050a48) 0
+
+Class __pthread_internal_slist
+ size=4 align=4
+ base size=4 base align=4
+__pthread_internal_slist (0xb6097070) 0
+
+Class random_data
+ size=28 align=4
+ base size=28 base align=4
+random_data (0xb6097380) 0
+
+Class drand48_data
+ size=24 align=4
+ base size=24 base align=4
+drand48_data (0xb60973b8) 0
+
+Vtable for std::exception
+std::exception::_ZTVSt9exception: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTISt9exception)
+8 (int (*)(...))std::exception::~exception
+12 (int (*)(...))std::exception::~exception
+16 (int (*)(...))std::exception::what
+
+Class std::exception
+ size=4 align=4
+ base size=4 base align=4
+std::exception (0xb6097af0) 0 nearly-empty
+ vptr=((& std::exception::_ZTVSt9exception) + 8u)
+
+Vtable for std::bad_exception
+std::bad_exception::_ZTVSt13bad_exception: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTISt13bad_exception)
+8 (int (*)(...))std::bad_exception::~bad_exception
+12 (int (*)(...))std::bad_exception::~bad_exception
+16 (int (*)(...))std::bad_exception::what
+
+Class std::bad_exception
+ size=4 align=4
+ base size=4 base align=4
+std::bad_exception (0xb71e4d98) 0 nearly-empty
+ vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 8u)
+ std::exception (0xb6097d20) 0 nearly-empty
+ primary-for std::bad_exception (0xb71e4d98)
+
+Vtable for std::bad_alloc
+std::bad_alloc::_ZTVSt9bad_alloc: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTISt9bad_alloc)
+8 (int (*)(...))std::bad_alloc::~bad_alloc
+12 (int (*)(...))std::bad_alloc::~bad_alloc
+16 (int (*)(...))std::bad_alloc::what
+
+Class std::bad_alloc
+ size=4 align=4
+ base size=4 base align=4
+std::bad_alloc (0xb71e4dd4) 0 nearly-empty
+ vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 8u)
+ std::exception (0xb6097f50) 0 nearly-empty
+ primary-for std::bad_alloc (0xb71e4dd4)
+
+Class std::nothrow_t
+ size=1 align=1
+ base size=0 base align=1
+std::nothrow_t (0xb5f190e0) 0 empty
+
+Class qIsNull(double)::U
+ size=8 align=4
+ base size=8 base align=4
+qIsNull(double)::U (0xb5dfa8f8) 0
+
+Class qIsNull(float)::U
+ size=4 align=4
+ base size=4 base align=4
+qIsNull(float)::U (0xb5dfa9a0) 0
+
+Class QAtomicInt
+ size=4 align=4
+ base size=4 base align=4
+QAtomicInt (0xb5f9d564) 0
+ QBasicAtomicInteger<int> (0xb5eab9a0) 0
+
+Class QMessageLogContext
+ size=20 align=4
+ base size=20 base align=4
+QMessageLogContext (0xb5ec1578) 0
+
+Class QMessageLogger
+ size=20 align=4
+ base size=20 base align=4
+QMessageLogger (0xb5ec1d58) 0
+
+Class QtPrivate::big_
+ size=2 align=1
+ base size=2 base align=1
+QtPrivate::big_ (0xb5cfb2a0) 0
+
+Class QFlag
+ size=4 align=4
+ base size=4 base align=4
+QFlag (0xb5d46c08) 0
+
+Class QIncompatibleFlag
+ size=4 align=4
+ base size=4 base align=4
+QIncompatibleFlag (0xb5d46f88) 0
+
+Class QSysInfo
+ size=1 align=1
+ base size=0 base align=1
+QSysInfo (0xb5d507e0) 0 empty
+
+Class QInternal
+ size=1 align=1
+ base size=0 base align=1
+QInternal (0xb5ca5268) 0 empty
+
+Class QGenericArgument
+ size=8 align=4
+ base size=8 base align=4
+QGenericArgument (0xb5ae4c08) 0
+
+Class QGenericReturnArgument
+ size=8 align=4
+ base size=8 base align=4
+QGenericReturnArgument (0xb5c44294) 0
+ QGenericArgument (0xb5b1d000) 0
+
+Class QMetaObject
+ size=24 align=4
+ base size=24 base align=4
+QMetaObject (0xb5b1d3f0) 0
+
+Class QMetaObject::Connection
+ size=4 align=4
+ base size=4 base align=4
+QMetaObject::Connection (0xb5b30540) 0
+
+Class QLatin1Char
+ size=1 align=1
+ base size=1 base align=1
+QLatin1Char (0xb5b30ee0) 0
+
+Class QChar
+ size=2 align=2
+ base size=2 base align=2
+QChar (0xb5b3b310) 0
+
+Class QtPrivate::RefCount
+ size=4 align=4
+ base size=4 base align=4
+QtPrivate::RefCount (0xb5b84818) 0
+
+Class QArrayData
+ size=16 align=4
+ base size=16 base align=4
+QArrayData (0xb5b8d268) 0
+
+Class QByteArrayDataPtr
+ size=4 align=4
+ base size=4 base align=4
+QByteArrayDataPtr (0xb59cc1f8) 0
+
+Class QByteArray
+ size=4 align=4
+ base size=4 base align=4
+QByteArray (0xb59cc230) 0
+
+Class QByteRef
+ size=8 align=4
+ base size=8 base align=4
+QByteRef (0xb5a0f9d8) 0
+
+Class lconv
+ size=56 align=4
+ base size=56 base align=4
+lconv (0xb5a87ee0) 0
+
+Vtable for __cxxabiv1::__forced_unwind
+__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE)
+8 (int (*)(...))__cxxabiv1::__forced_unwind::~__forced_unwind
+12 (int (*)(...))__cxxabiv1::__forced_unwind::~__forced_unwind
+16 (int (*)(...))__cxa_pure_virtual
+
+Class __cxxabiv1::__forced_unwind
+ size=4 align=4
+ base size=4 base align=4
+__cxxabiv1::__forced_unwind (0xb5a87f88) 0 nearly-empty
+ vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 8u)
+
+Class sched_param
+ size=4 align=4
+ base size=4 base align=4
+sched_param (0xb5902f18) 0
+
+Class __sched_param
+ size=4 align=4
+ base size=4 base align=4
+__sched_param (0xb5902f50) 0
+
+Class timex
+ size=128 align=4
+ base size=128 base align=4
+timex (0xb5902fc0) 0
+
+Class tm
+ size=44 align=4
+ base size=44 base align=4
+tm (0xb592a000) 0
+
+Class itimerspec
+ size=16 align=4
+ base size=16 base align=4
+itimerspec (0xb592a070) 0
+
+Class _pthread_cleanup_buffer
+ size=16 align=4
+ base size=16 base align=4
+_pthread_cleanup_buffer (0xb592a0a8) 0
+
+Class __pthread_cleanup_frame
+ size=16 align=4
+ base size=16 base align=4
+__pthread_cleanup_frame (0xb592a150) 0
+
+Class __pthread_cleanup_class
+ size=16 align=4
+ base size=16 base align=4
+__pthread_cleanup_class (0xb592a188) 0
+
+Class QLatin1String
+ size=8 align=4
+ base size=8 base align=4
+QLatin1String (0xb58318f8) 0
+
+Class QStringDataPtr
+ size=4 align=4
+ base size=4 base align=4
+QStringDataPtr (0xb56d7380) 0
+
+Class QString::Null
+ size=1 align=1
+ base size=0 base align=1
+QString::Null (0xb57218f8) 0 empty
+
+Class QString
+ size=4 align=4
+ base size=4 base align=4
+QString (0xb56d73b8) 0
+
+Class QCharRef
+ size=8 align=4
+ base size=8 base align=4
+QCharRef (0xb5791af0) 0
+
+Class QStringRef
+ size=12 align=4
+ base size=12 base align=4
+QStringRef (0xb56139d8) 0
+
+Class std::locale
+ size=4 align=4
+ base size=4 base align=4
+std::locale (0xb565ec40) 0
+
+Vtable for std::locale::facet
+std::locale::facet::_ZTVNSt6locale5facetE: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTINSt6locale5facetE)
+8 (int (*)(...))std::locale::facet::~facet
+12 (int (*)(...))std::locale::facet::~facet
+
+Class std::locale::facet
+ size=8 align=4
+ base size=8 base align=4
+std::locale::facet (0xb568bf88) 0
+ vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 8u)
+
+Class std::locale::id
+ size=4 align=4
+ base size=4 base align=4
+std::locale::id (0xb5696658) 0
+
+Class std::locale::_Impl
+ size=20 align=4
+ base size=20 base align=4
+std::locale::_Impl (0xb5696968) 0
+
+Vtable for std::ios_base::failure
+std::ios_base::failure::_ZTVNSt8ios_base7failureE: 5u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTINSt8ios_base7failureE)
+8 (int (*)(...))std::ios_base::failure::~failure
+12 (int (*)(...))std::ios_base::failure::~failure
+16 (int (*)(...))std::ios_base::failure::what
+
+Class std::ios_base::failure
+ size=8 align=4
+ base size=8 base align=4
+std::ios_base::failure (0xb573e438) 0
+ vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureE) + 8u)
+ std::exception (0xb56af118) 0 nearly-empty
+ primary-for std::ios_base::failure (0xb573e438)
+
+Class std::ios_base::_Callback_list
+ size=16 align=4
+ base size=16 base align=4
+std::ios_base::_Callback_list (0xb54d3f88) 0
+
+Class std::ios_base::_Words
+ size=8 align=4
+ base size=8 base align=4
+std::ios_base::_Words (0xb54d74d0) 0
+
+Class std::ios_base::Init
+ size=1 align=1
+ base size=0 base align=1
+std::ios_base::Init (0xb54d7850) 0 empty
+
+Vtable for std::ios_base
+std::ios_base::_ZTVSt8ios_base: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTISt8ios_base)
+8 (int (*)(...))std::ios_base::~ios_base
+12 (int (*)(...))std::ios_base::~ios_base
+
+Class std::ios_base
+ size=112 align=4
+ base size=112 base align=4
+std::ios_base (0xb56affc0) 0
+ vptr=((& std::ios_base::_ZTVSt8ios_base) + 8u)
+
+Class std::ctype_base
+ size=1 align=1
+ base size=0 base align=1
+std::ctype_base (0xb54f8bd0) 0 empty
+
+Class std::__num_base
+ size=1 align=1
+ base size=0 base align=1
+std::__num_base (0xb55a8e70) 0 empty
+
+VTT for std::basic_ostream<char>
+std::basic_ostream<char>::_ZTTSo: 2u entries
+0 ((& std::basic_ostream<char>::_ZTVSo) + 12u)
+4 ((& std::basic_ostream<char>::_ZTVSo) + 32u)
+
+VTT for std::basic_ostream<wchar_t>
+std::basic_ostream<wchar_t>::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2u entries
+0 ((& std::basic_ostream<wchar_t>::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 12u)
+4 ((& std::basic_ostream<wchar_t>::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 32u)
+
+VTT for std::basic_istream<char>
+std::basic_istream<char>::_ZTTSi: 2u entries
+0 ((& std::basic_istream<char>::_ZTVSi) + 12u)
+4 ((& std::basic_istream<char>::_ZTVSi) + 32u)
+
+VTT for std::basic_istream<wchar_t>
+std::basic_istream<wchar_t>::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2u entries
+0 ((& std::basic_istream<wchar_t>::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 12u)
+4 ((& std::basic_istream<wchar_t>::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 32u)
+
+Construction vtable for std::basic_istream<char> (0xb573efb4 instance) in std::basic_iostream<char>
+std::basic_iostream<char>::_ZTCSd0_Si: 10u entries
+0 12u
+4 (int (*)(...))0
+8 (int (*)(...))(& _ZTISi)
+12 (int (*)(...))std::basic_istream<_CharT, _Traits>::~basic_istream [with _CharT = char, _Traits = std::char_traits<char>]
+16 (int (*)(...))std::basic_istream<_CharT, _Traits>::~basic_istream [with _CharT = char, _Traits = std::char_traits<char>]
+20 4294967284u
+24 (int (*)(...))-0x0000000000000000c
+28 (int (*)(...))(& _ZTISi)
+32 (int (*)(...))std::basic_istream<char>::_ZTv0_n12_NSiD1Ev
+36 (int (*)(...))std::basic_istream<char>::_ZTv0_n12_NSiD0Ev
+
+Construction vtable for std::basic_ostream<char> (0xb538b03c instance) in std::basic_iostream<char>
+std::basic_iostream<char>::_ZTCSd8_So: 10u entries
+0 4u
+4 (int (*)(...))0
+8 (int (*)(...))(& _ZTISo)
+12 (int (*)(...))std::basic_ostream<_CharT, _Traits>::~basic_ostream [with _CharT = char, _Traits = std::char_traits<char>]
+16 (int (*)(...))std::basic_ostream<_CharT, _Traits>::~basic_ostream [with _CharT = char, _Traits = std::char_traits<char>]
+20 4294967292u
+24 (int (*)(...))-0x00000000000000004
+28 (int (*)(...))(& _ZTISo)
+32 (int (*)(...))std::basic_ostream<char>::_ZTv0_n12_NSoD1Ev
+36 (int (*)(...))std::basic_ostream<char>::_ZTv0_n12_NSoD0Ev
+
+VTT for std::basic_iostream<char>
+std::basic_iostream<char>::_ZTTSd: 7u entries
+0 ((& std::basic_iostream<char>::_ZTVSd) + 12u)
+4 ((& std::basic_iostream<char>::_ZTCSd0_Si) + 12u)
+8 ((& std::basic_iostream<char>::_ZTCSd0_Si) + 32u)
+12 ((& std::basic_iostream<char>::_ZTCSd8_So) + 12u)
+16 ((& std::basic_iostream<char>::_ZTCSd8_So) + 32u)
+20 ((& std::basic_iostream<char>::_ZTVSd) + 52u)
+24 ((& std::basic_iostream<char>::_ZTVSd) + 32u)
+
+Construction vtable for std::basic_istream<wchar_t> (0xb538b078 instance) in std::basic_iostream<wchar_t>
+std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10u entries
+0 12u
+4 (int (*)(...))0
+8 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE)
+12 (int (*)(...))std::basic_istream<_CharT, _Traits>::~basic_istream [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]
+16 (int (*)(...))std::basic_istream<_CharT, _Traits>::~basic_istream [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]
+20 4294967284u
+24 (int (*)(...))-0x0000000000000000c
+28 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE)
+32 (int (*)(...))std::basic_istream<wchar_t>::_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev
+36 (int (*)(...))std::basic_istream<wchar_t>::_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev
+
+Construction vtable for std::basic_ostream<wchar_t> (0xb538b0f0 instance) in std::basic_iostream<wchar_t>
+std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE8_St13basic_ostreamIwS1_E: 10u entries
+0 4u
+4 (int (*)(...))0
+8 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE)
+12 (int (*)(...))std::basic_ostream<_CharT, _Traits>::~basic_ostream [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]
+16 (int (*)(...))std::basic_ostream<_CharT, _Traits>::~basic_ostream [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]
+20 4294967292u
+24 (int (*)(...))-0x00000000000000004
+28 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE)
+32 (int (*)(...))std::basic_ostream<wchar_t>::_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev
+36 (int (*)(...))std::basic_ostream<wchar_t>::_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev
+
+VTT for std::basic_iostream<wchar_t>
+std::basic_iostream<wchar_t>::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7u entries
+0 ((& std::basic_iostream<wchar_t>::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 12u)
+4 ((& std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 12u)
+8 ((& std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 32u)
+12 ((& std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE8_St13basic_ostreamIwS1_E) + 12u)
+16 ((& std::basic_iostream<wchar_t>::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE8_St13basic_ostreamIwS1_E) + 32u)
+20 ((& std::basic_iostream<wchar_t>::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 52u)
+24 ((& std::basic_iostream<wchar_t>::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 32u)
+
+Class std::__detail::_List_node_base
+ size=8 align=4
+ base size=8 base align=4
+std::__detail::_List_node_base (0xb538c7e0) 0
+
+Class QListData::Data
+ size=20 align=4
+ base size=20 base align=4
+QListData::Data (0xb52000e0) 0
+
+Class QListData
+ size=4 align=4
+ base size=4 base align=4
+QListData (0xb52000a8) 0
+
+Class QScopedPointerPodDeleter
+ size=1 align=1
+ base size=0 base align=1
+QScopedPointerPodDeleter (0xb52913b8) 0 empty
+
+Class QMetaType
+ size=48 align=4
+ base size=48 base align=4
+QMetaType (0xb50c86c8) 0
+
+Class QtPrivate::QSlotObjectBase
+ size=8 align=4
+ base size=8 base align=4
+QtPrivate::QSlotObjectBase (0xb4fc4a48) 0
+
+Vtable for QObjectData
+QObjectData::_ZTV11QObjectData: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI11QObjectData)
+8 (int (*)(...))__cxa_pure_virtual
+12 (int (*)(...))__cxa_pure_virtual
+
+Class QObjectData
+ size=28 align=4
+ base size=28 base align=4
+QObjectData (0xb4fe69a0) 0
+ vptr=((& QObjectData::_ZTV11QObjectData) + 8u)
+
+Class QObject::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QObject::QPrivateSignal (0xb4fe6c08) 0 empty
+
+Vtable for QObject
+QObject::_ZTV7QObject: 14u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI7QObject)
+8 (int (*)(...))QObject::metaObject
+12 (int (*)(...))QObject::qt_metacast
+16 (int (*)(...))QObject::qt_metacall
+20 (int (*)(...))QObject::~QObject
+24 (int (*)(...))QObject::~QObject
+28 (int (*)(...))QObject::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+
+Class QObject
+ size=8 align=4
+ base size=8 base align=4
+QObject (0xb4fe6b28) 0
+ vptr=((& QObject::_ZTV7QObject) + 8u)
+
+Vtable for QObjectUserData
+QObjectUserData::_ZTV15QObjectUserData: 4u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI15QObjectUserData)
+8 (int (*)(...))QObjectUserData::~QObjectUserData
+12 (int (*)(...))QObjectUserData::~QObjectUserData
+
+Class QObjectUserData
+ size=4 align=4
+ base size=4 base align=4
+QObjectUserData (0xb502acb0) 0 nearly-empty
+ vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 8u)
+
+Class QAbstractAnimation::QPrivateSignal
+ size=1 align=1
+ base size=0 base align=1
+QAbstractAnimation::QPrivateSignal (0xb502afc0) 0 empty
+
+Vtable for QAbstractAnimation
+QAbstractAnimation::_ZTV18QAbstractAnimation: 18u entries
+0 (int (*)(...))0
+4 (int (*)(...))(& _ZTI18QAbstractAnimation)
+8 (int (*)(...))QAbstractAnimation::metaObject
+12 (int (*)(...))QAbstractAnimation::qt_metacast
+16 (int (*)(...))QAbstractAnimation::qt_metacall
+20 (int (*)(...))QAbstractAnimation::~QAbstractAnimation
+24 (int (*)(...))QAbstractAnimation::~QAbstractAnimation
+28 (int (*)(...))QAbstractAnimation::event
+32 (int (*)(...))QObject::eventFilter
+36 (int (*)(...))QObject::timerEvent
+40 (int (*)(...))QObject::childEvent
+44 (int (*)(...))QObject::customEvent
+48 (int (*)(...))QObject::connectNotify
+52 (int (*)(...))QObject::disconnectNotify
+56 (int (*)(...))__cxa_pure_virtual
+60 (int (*)(...))__cxa_pure_virtual
+64 (int (*)(...))QAbstractAnimation::updateState
+68 (int (*)(...))QAbstractAnimation::updateDirection
+
+Class QAbstractAnimation
+ size=8 align=4
+ base size=8 base align=4
+QAbstractAnimation (0xb538b690) 0
+ vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 8u)
+ QObject (0xb502aee0) 0
+ primary-for QAbstractAnimation (0xb538b690)
+