diff options
author | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-07-11 15:14:13 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2013-07-11 16:42:01 +0200 |
commit | 3ef6cf060e984bca43956a23b61b32ec7347cfc7 (patch) | |
tree | 14810e4d0168c0cc3d69cb286574bf28375c07bc | |
parent | b06304e164ba47351fa292662c1e6383c081b5ca (diff) | |
parent | 7b9d6cf844ece18fef884f51117e25ad4ac31db5 (diff) |
Merge branch 'stable' into dev
Conflicts:
qmake/generators/mac/pbuilder_pbx.cpp
src/corelib/json/qjsonwriter.cpp
src/corelib/kernel/qeventdispatcher_blackberry.cpp
src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
Change-Id: I24df576c4cbd18fa51b03122f71e32bb83b9028f
205 files changed, 87269 insertions, 1602 deletions
@@ -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 ®ion) { 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 |