From 2bd11da4b50f401c9c49975aeedaaafa6a59d08b Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Thu, 7 Jan 2016 15:57:45 +0100 Subject: recipes: remove recipes using or depending on qt4 bbclasses or recipes * anki is removed because it runtime depends on python-pyqt, other recipes are inheriting one of bbclasses removed from oe-core in: commit cb89d2b25b4edb1241bc5426a69a6bc44df9be2c Author: Alexander Kanavin Date: Fri Nov 27 15:48:20 2015 +0200 qt4: remove recipes and classes * if you're still using one of these recipes add it to meta-qt4 layer Signed-off-by: Martin Jansa --- .../recipes-devtools/python/python-pyqt_4.11.3.bb | 59 - meta-oe/recipes-extended/anki/anki-0.4.3.inc | 8 - meta-oe/recipes-extended/anki/anki.inc | 9 - .../anki/anki/no-need-for-pyqt-at-buildtime.patch | 28 - meta-oe/recipes-extended/anki/anki_0.4.3.bb | 4 - .../libanki/no-need-for-pyqt-at-buildtime.patch | 14 - meta-oe/recipes-extended/anki/libanki_0.4.3.bb | 3 - meta-oe/recipes-extended/sip/sip_4.16.4.bb | 54 - .../recipes-navigation/monav/monav/monav.desktop | 10 - meta-oe/recipes-navigation/monav/monav/monav.png | Bin 21543 -> 0 bytes meta-oe/recipes-navigation/monav/monav_0.3.bb | 37 - meta-oe/recipes-qt/fingerterm/fingerterm_1.0.2.bb | 43 - meta-oe/recipes-qt/libconnman-qt/libconnman-qt.inc | 53 - .../recipes-qt/libconnman-qt/libconnman-qt_git.bb | 3 - ...n.pro-fix-build-with-custom-target-suffix.patch | 42 - .../recipes-qt/libconnman-qt/libconnman-qte_git.bb | 5 - meta-oe/recipes-qt/libqofono/libqofono_0.4.bb | 84 - .../qcanobserver/qcanobserver-socketcan_svn.bb | 31 - .../recipes-qt/qcanobserver/qcanobserver_svn.bb | 43 - meta-oe/recipes-qt/qconnman/qconnman-e_git.bb | 12 - meta-oe/recipes-qt/qconnman/qconnman.inc | 15 - meta-oe/recipes-qt/qconnman/qconnman_git.bb | 10 - .../qextserialport/qextserialport_1.2rc.bb | 54 - meta-oe/recipes-qt/qt-creator/qt-creator_2.8.1.bb | 54 - ...embedded-usage-doesn-t-work-outside-of-Qt.patch | 73 - ...stvideoconnector-fixed-buffers-allocation.patch | 34 - ...nnecessary-rpaths-from-qml_device-example.patch | 28 - .../fix-compile-error-no-bluez.patch | 338 -- .../fix_metaobjectbuilder_build_err.patch | 4707 -------------------- .../qt-mobility/qt-mobility-1.2.0/gcc-scope.patch | 48 - .../qt-mobility-1.2.0/qt-mobility-configure.patch | 17 - .../qt-mobility-1.2.0/qt-mobility-no-opengl.patch | 38 - .../qt-mobility-1.2.0/qt-mobility-no-xvideo.patch | 26 - .../qt-mobility/qt-mobility-embedded_1.2.0.bb | 10 - .../qt-mobility/qt-mobility-x11_1.2.0.bb | 10 - .../recipes-qt/qt-mobility/qt-mobility_1.2.0.inc | 121 - .../qtserialport/qtserialport-e_5.1.0.bb | 5 - .../qwt/files/qwt6-fix-linking-with-ld-gold.patch | 34 - meta-oe/recipes-qt/qwt/files/qwt6.patch | 86 - meta-oe/recipes-qt/qwt/qwt-e_6.0.1.bb | 14 - meta-oe/recipes-qt/qwt/qwt.inc | 40 - meta-oe/recipes-qt/qwt/qwt_6.0.1.bb | 10 - ...INSTALL_PRF-to-allow-the-build-with-opene.patch | 34 - ...LUGIN_PATH-to-allow-openembedded-to-build.patch | 34 - ...k-to-libmaliit-1-0-in-inputcontext-plugin.patch | 23 - ...iit_glib_settings-fix-build-for-glib-2.36.patch | 33 - .../maliit/maliit-framework/maliit-server.desktop | 6 - .../recipes-support/maliit/maliit-framework_git.bb | 101 - .../recipes-support/maliit/maliit-plugins_git.bb | 35 - 49 files changed, 6580 deletions(-) delete mode 100644 meta-oe/recipes-devtools/python/python-pyqt_4.11.3.bb delete mode 100644 meta-oe/recipes-extended/anki/anki-0.4.3.inc delete mode 100644 meta-oe/recipes-extended/anki/anki.inc delete mode 100644 meta-oe/recipes-extended/anki/anki/no-need-for-pyqt-at-buildtime.patch delete mode 100644 meta-oe/recipes-extended/anki/anki_0.4.3.bb delete mode 100644 meta-oe/recipes-extended/anki/libanki/no-need-for-pyqt-at-buildtime.patch delete mode 100644 meta-oe/recipes-extended/anki/libanki_0.4.3.bb delete mode 100644 meta-oe/recipes-extended/sip/sip_4.16.4.bb delete mode 100644 meta-oe/recipes-navigation/monav/monav/monav.desktop delete mode 100644 meta-oe/recipes-navigation/monav/monav/monav.png delete mode 100644 meta-oe/recipes-navigation/monav/monav_0.3.bb delete mode 100644 meta-oe/recipes-qt/fingerterm/fingerterm_1.0.2.bb delete mode 100644 meta-oe/recipes-qt/libconnman-qt/libconnman-qt.inc delete mode 100644 meta-oe/recipes-qt/libconnman-qt/libconnman-qt_git.bb delete mode 100644 meta-oe/recipes-qt/libconnman-qt/libconnman-qte/plugin.pro-fix-build-with-custom-target-suffix.patch delete mode 100644 meta-oe/recipes-qt/libconnman-qt/libconnman-qte_git.bb delete mode 100644 meta-oe/recipes-qt/libqofono/libqofono_0.4.bb delete mode 100644 meta-oe/recipes-qt/qcanobserver/qcanobserver-socketcan_svn.bb delete mode 100644 meta-oe/recipes-qt/qcanobserver/qcanobserver_svn.bb delete mode 100644 meta-oe/recipes-qt/qconnman/qconnman-e_git.bb delete mode 100644 meta-oe/recipes-qt/qconnman/qconnman.inc delete mode 100644 meta-oe/recipes-qt/qconnman/qconnman_git.bb delete mode 100644 meta-oe/recipes-qt/qextserialport/qextserialport_1.2rc.bb delete mode 100644 meta-oe/recipes-qt/qt-creator/qt-creator_2.8.1.bb delete mode 100644 meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/0001-fix-embedded-usage-doesn-t-work-outside-of-Qt.patch delete mode 100644 meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/0001-gstvideoconnector-fixed-buffers-allocation.patch delete mode 100644 meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/0002-Remove-unnecessary-rpaths-from-qml_device-example.patch delete mode 100644 meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/fix-compile-error-no-bluez.patch delete mode 100644 meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/fix_metaobjectbuilder_build_err.patch delete mode 100644 meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/gcc-scope.patch delete mode 100644 meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/qt-mobility-configure.patch delete mode 100644 meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/qt-mobility-no-opengl.patch delete mode 100644 meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/qt-mobility-no-xvideo.patch delete mode 100644 meta-oe/recipes-qt/qt-mobility/qt-mobility-embedded_1.2.0.bb delete mode 100644 meta-oe/recipes-qt/qt-mobility/qt-mobility-x11_1.2.0.bb delete mode 100644 meta-oe/recipes-qt/qt-mobility/qt-mobility_1.2.0.inc delete mode 100644 meta-oe/recipes-qt/qtserialport/qtserialport-e_5.1.0.bb delete mode 100644 meta-oe/recipes-qt/qwt/files/qwt6-fix-linking-with-ld-gold.patch delete mode 100644 meta-oe/recipes-qt/qwt/files/qwt6.patch delete mode 100644 meta-oe/recipes-qt/qwt/qwt-e_6.0.1.bb delete mode 100644 meta-oe/recipes-qt/qwt/qwt.inc delete mode 100644 meta-oe/recipes-qt/qwt/qwt_6.0.1.bb delete mode 100644 meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch delete mode 100644 meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-QT_IM_PLUGIN_PATH-to-allow-openembedded-to-build.patch delete mode 100644 meta-oe/recipes-support/maliit/maliit-framework/0001-Link-to-libmaliit-1-0-in-inputcontext-plugin.patch delete mode 100644 meta-oe/recipes-support/maliit/maliit-framework/0002-ut_maliit_glib_settings-fix-build-for-glib-2.36.patch delete mode 100644 meta-oe/recipes-support/maliit/maliit-framework/maliit-server.desktop delete mode 100644 meta-oe/recipes-support/maliit/maliit-framework_git.bb delete mode 100644 meta-oe/recipes-support/maliit/maliit-plugins_git.bb diff --git a/meta-oe/recipes-devtools/python/python-pyqt_4.11.3.bb b/meta-oe/recipes-devtools/python/python-pyqt_4.11.3.bb deleted file mode 100644 index cfddee8698..0000000000 --- a/meta-oe/recipes-devtools/python/python-pyqt_4.11.3.bb +++ /dev/null @@ -1,59 +0,0 @@ -SUMMARY = "Python Qt4 Bindings" -AUTHOR = "Phil Thomson @ riverbank.co.uk" -HOMEPAGE = "http://riverbankcomputing.co.uk" -SECTION = "devel/python" -LICENSE = "GPLv2 & GPLv3 & GPL_EXCEPTION" -LIC_FILES_CHKSUM = "\ - file://GPL_EXCEPTION.TXT;md5=b73b0be471db679533dc94781c14af58 \ - file://GPL_EXCEPTION_ADDENDUM.TXT;md5=c1e04ec2aa0911061005a801abf81e40 \ - file://OPENSOURCE-NOTICE.TXT;md5=6ad9123620cc04a22c394753ad4767d7 \ - file://LICENSE.GPL2;md5=577ff65f6653562af318bfc3944b1f20 \ - file://LICENSE.GPL3;md5=feee51612c3c1191a1d5f41156fa2c75 \ -" -DEPENDS = "sip sip-native qt4-x11-free python" - -SRC_URI = "\ - ${SOURCEFORGE_MIRROR}/pyqt/PyQt-x11-gpl-${PV}.tar.gz \ -" -SRC_URI[md5sum] = "997c3e443165a89a559e0d96b061bf70" -SRC_URI[sha256sum] = "853780dcdbe2e6ba785d703d059b096e1fc49369d3e8d41a060be874b8745686" - -S = "${WORKDIR}/PyQt-x11-gpl-${PV}" - -PARALLEL_MAKE = "" - -inherit qmake2 pythonnative python-dir distro_features_check -# depends on qt4-x11-free -REQUIRED_DISTRO_FEATURES = "x11" - -DISABLED_FEATURES = "PyQt_Desktop_OpenGL PyQt_Accessibility PyQt_SessionManager" - -DISABLED_FEATURES_append_arm = " PyQt_qreal_double" - -PYQT_MODULES = "QtCore QtGui QtDeclarative QtNetwork QtSvg QtWebKit" -PYQT_MODULES_aarch64 = "QtCore QtGui QtDeclarative QtNetwork QtSvg" - -do_configure() { - echo "py_platform = linux" > pyqt.cfg - echo "py_inc_dir = %(sysroot)/$includedir/python%(py_major).%(py_minor)" >> pyqt.cfg - echo "py_pylib_dir = %(sysroot)/${libdir}/python%(py_major).%(py_minor)" >> pyqt.cfg - echo "py_pylib_lib = python%(py_major).%(py_minor)mu" >> pyqt.cfg - echo "pyqt_module_dir = ${D}/${libdir}/python%(py_major).%(py_minor)/site-packages" >> pyqt.cfg - echo "pyqt_bin_dir = ${D}/${bindir}" >> pyqt.cfg - echo "pyqt_sip_dir = ${D}/${datadir}/sip/PyQt4" >> pyqt.cfg - echo "pyuic_interpreter = ${D}/${bindir}/python%(py_major).%(py_minor)" >> pyqt.cfg - echo "pyqt_disabled_features = ${DISABLED_FEATURES}" >> pyqt.cfg - echo "qt_shared = True" >> pyqt.cfg - echo "[Qt 4.8]" >> pyqt.cfg - echo "pyqt_modules = ${PYQT_MODULES}" >> pyqt.cfg - echo yes | python configure-ng.py --verbose --qmake ${STAGING_BINDIR_NATIVE}/qmake2 --configuration pyqt.cfg --sysroot ${STAGING_DIR_HOST} -} -do_install() { - oe_runmake install -} - -RDEPENDS_${PN} = "python-core python-sip" - -FILES_${PN} += "${libdir}/${PYTHON_DIR}/site-packages ${datadir}/sip/PyQt4/" -FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/*/.debug/" - diff --git a/meta-oe/recipes-extended/anki/anki-0.4.3.inc b/meta-oe/recipes-extended/anki/anki-0.4.3.inc deleted file mode 100644 index 072e7f1e4e..0000000000 --- a/meta-oe/recipes-extended/anki/anki-0.4.3.inc +++ /dev/null @@ -1,8 +0,0 @@ -require anki.inc - -SRC_URI = "${SOURCEFORGE_MIRROR}/anki/anki-${PV}.tgz" -SRC_URI[md5sum] = "90434860945de4c09d55cdb5dbe984fc" -SRC_URI[sha256sum] = "18a93fb46363ca34963fc2588cadf7415dd799dd647efa681859eb8b1b22f104" - -export BUILD_PV := "${PV}" -SRC_URI += "file://no-need-for-pyqt-at-buildtime.patch" diff --git a/meta-oe/recipes-extended/anki/anki.inc b/meta-oe/recipes-extended/anki/anki.inc deleted file mode 100644 index 3092539ec4..0000000000 --- a/meta-oe/recipes-extended/anki/anki.inc +++ /dev/null @@ -1,9 +0,0 @@ -DESCRIPTION = "Anki is a program designed to help you remember facts \ -(such as words and phrases in a foreign language) \ -as easily, quickly and efficiently as possible" -HOMEPAGE = "http://ichi2.net/anki/" -AUTHOR = "Damien Elmes" -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949" - -inherit setuptools diff --git a/meta-oe/recipes-extended/anki/anki/no-need-for-pyqt-at-buildtime.patch b/meta-oe/recipes-extended/anki/anki/no-need-for-pyqt-at-buildtime.patch deleted file mode 100644 index 9eac1dc7be..0000000000 --- a/meta-oe/recipes-extended/anki/anki/no-need-for-pyqt-at-buildtime.patch +++ /dev/null @@ -1,28 +0,0 @@ -# -# (C) Michael 'Mickey' Lauer -# -Index: anki-0.4.3/setup.py -=================================================================== ---- anki-0.4.3.orig/setup.py 2008-02-12 19:17:56.000000000 +0000 -+++ anki-0.4.3/setup.py 2008-02-12 19:19:29.000000000 +0000 -@@ -3,10 +3,8 @@ - from setuptools import setup, find_packages - import sys, os - --import ankiqt -- - setup(name='ankiqt', -- version=ankiqt.appVersion, -+ version=os.environ["BUILD_PV"], - description='An intelligent spaced-repetition memory training program', - long_description="", - # Get strings from http://www.python.org/pypi?%3Aaction=list_classifiers -@@ -24,7 +22,7 @@ - license='GPLv2', - packages=find_packages(), - include_package_data=True, -- install_requires = 'anki >= ' + ankiqt.appVersion, -+ install_requires = 'anki >= ' + os.environ["BUILD_PV"], - zip_safe=False, - package_data={'ankiqt': - ['locale/*/*/*']}, diff --git a/meta-oe/recipes-extended/anki/anki_0.4.3.bb b/meta-oe/recipes-extended/anki/anki_0.4.3.bb deleted file mode 100644 index 61e063d958..0000000000 --- a/meta-oe/recipes-extended/anki/anki_0.4.3.bb +++ /dev/null @@ -1,4 +0,0 @@ -require ${PN}-${PV}.inc - -RDEPENDS_${PN} = "python-pyqt libanki" -RRECOMMENDS_${PN} = "virtual-japanese-font" diff --git a/meta-oe/recipes-extended/anki/libanki/no-need-for-pyqt-at-buildtime.patch b/meta-oe/recipes-extended/anki/libanki/no-need-for-pyqt-at-buildtime.patch deleted file mode 100644 index 92583e59f1..0000000000 --- a/meta-oe/recipes-extended/anki/libanki/no-need-for-pyqt-at-buildtime.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- libanki.orig/setup.py 2008-01-02 13:22:22.000000000 +0100 -+++ libanki/setup.py 2012-08-02 11:39:13.604173933 +0200 -@@ -3,10 +3,8 @@ - from setuptools import setup, find_packages - import sys, os - --import anki -- - setup(name='anki', -- version=anki.version, -+ version=os.environ["BUILD_PV"], - description='An intelligent spaced-repetition memory training library', - long_description="", - # Get strings from http://www.python.org/pypi?%3Aaction=list_classifiers diff --git a/meta-oe/recipes-extended/anki/libanki_0.4.3.bb b/meta-oe/recipes-extended/anki/libanki_0.4.3.bb deleted file mode 100644 index 636932f3ad..0000000000 --- a/meta-oe/recipes-extended/anki/libanki_0.4.3.bb +++ /dev/null @@ -1,3 +0,0 @@ -require anki-${PV}.inc - -S = "${WORKDIR}/anki-${PV}/libanki" diff --git a/meta-oe/recipes-extended/sip/sip_4.16.4.bb b/meta-oe/recipes-extended/sip/sip_4.16.4.bb deleted file mode 100644 index 032d1258ba..0000000000 --- a/meta-oe/recipes-extended/sip/sip_4.16.4.bb +++ /dev/null @@ -1,54 +0,0 @@ -SUMMARY = "SIP is a C++/Python Wrapper Generator" -AUTHOR = "Phil Thompson" -HOMEPAGE = "http://www.riverbankcomputing.co.uk/sip" -SECTION = "devel" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://LICENSE-GPL2;md5=e91355d8a6f8bd8f7c699d62863c7303" -DEPENDS_class-target = "qt4-x11-free python" - -# riverbankcomputing is upstream, but keeps only latest version, sf usually have few older -#SRC_URI = "http://www.riverbankcomputing.com/static/Downloads/sip4/sip-${PV}.tar.gz" -SRC_URI = "${SOURCEFORGE_MIRROR}/project/pyqt/sip/sip-${PV}/sip-${PV}.tar.gz" -SRC_URI[md5sum] = "a9840670a064dbf8f63a8f653776fec9" -SRC_URI[sha256sum] = "ceda443fc5e129e67a067e2cd7b73ff037f8b10b50e407baa2b1d9f2199d57f5" - -BBCLASSEXTEND = "native" - -PACKAGES += "python-sip" - -inherit qmake2 python-dir pythonnative distro_features_check -# depends on qt4-x11-free -REQUIRED_DISTRO_FEATURES = "x11" - -EXTRA_QMAKEVARS_POST += "CONFIG=console" - -export BUILD_SYS -export HOST_SYS -export STAGING_LIBDIR -export STAGING_INCDIR - -do_configure_prepend_class-target() { - echo "py_platform = linux" > sip.cfg - echo "py_inc_dir = %(sysroot)/${includedir}/python%(py_major).%(py_minor)" >> sip.cfg - echo "sip_bin_dir = ${D}/${bindir}" >> sip.cfg - echo "sip_inc_dir = ${D}/${includedir}" >> sip.cfg - echo "sip_module_dir = ${D}/${libdir}/python%(py_major).%(py_minor)/site-packages" >> sip.cfg - echo "sip_sip_dir = ${D}/${datadir}/sip" >> sip.cfg - python configure.py --use-qmake --configuration sip.cfg --sysroot ${STAGING_DIR_HOST} -} -do_configure_prepend_class-native() { - echo "py_platform = linux" > sip.cfg - echo "py_inc_dir = ${includedir}/python%(py_major).%(py_minor)" >> sip.cfg - echo "sip_bin_dir = ${D}/${bindir}" >> sip.cfg - echo "sip_inc_dir = ${D}/${includedir}" >> sip.cfg - echo "sip_module_dir = ${D}/${libdir}/python%(py_major).%(py_minor)/site-packages" >> sip.cfg - echo "sip_sip_dir = ${D}/${datadir}/sip" >> sip.cfg - python configure.py --use-qmake --configuration sip.cfg --sysroot ${STAGING_DIR_NATIVE} -} -do_install() { - oe_runmake install -} - -FILES_python-${BPN} = "${libdir}/${PYTHON_DIR}/site-packages/" -FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug" - diff --git a/meta-oe/recipes-navigation/monav/monav/monav.desktop b/meta-oe/recipes-navigation/monav/monav/monav.desktop deleted file mode 100644 index 5e861136f0..0000000000 --- a/meta-oe/recipes-navigation/monav/monav/monav.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Name=MoNav -Exec=monav -Icon=monav -Terminal=false -Type=Application -Categories=Utility;Geography; -X-MB-SingleInstance=true -StartupNotify=true -Comment=Fast navigation system featuring exact routing. diff --git a/meta-oe/recipes-navigation/monav/monav/monav.png b/meta-oe/recipes-navigation/monav/monav/monav.png deleted file mode 100644 index 75b5a79623..0000000000 Binary files a/meta-oe/recipes-navigation/monav/monav/monav.png and /dev/null differ diff --git a/meta-oe/recipes-navigation/monav/monav_0.3.bb b/meta-oe/recipes-navigation/monav/monav_0.3.bb deleted file mode 100644 index 982d682721..0000000000 --- a/meta-oe/recipes-navigation/monav/monav_0.3.bb +++ /dev/null @@ -1,37 +0,0 @@ -DESCRIPTION = "MoNav is a fast navigation system featuring exact routing with OpenStreetMap data." -HOMEPAGE = "http://code.google.com/p/monav" -SECTION = "x11/applications" -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://misc/license_template_christian;md5=d99c9b3bafdde80adee296762376348d" - -DEPENDS = "qt-mobility-x11" -PR = "r1" - -SRC_URI = "http://monav.googlecode.com/files/${BPN}-${PV}.tar.gz \ - file://monav.png \ - file://monav.desktop" - -SRC_URI[md5sum] = "d048ccef8c6a21e8656aa4af3fcb8329" -SRC_URI[sha256sum] = "5a3bf9e9f7368b81ba8e2f755960082fc42a2e2c78f9de645f99ba293c77ee7f" - -inherit qmake2 qt4x11 - -EXTRA_QMAKEVARS_PRE="CONFIG+="release"" -QMAKE_PROFILES="monavclient.pro" - -do_install_append() { - install -d ${D}${datadir}/monav - install -d ${D}${datadir}/monav/images - cp -a ${S}/images/* ${D}${datadir}/monav/images - - install -d ${D}${datadir}/icons - install -m 0644 ${WORKDIR}/monav.png ${D}${datadir}/icons - - install -d ${D}${bindir} - install -m 0755 ${S}/bin/monav ${D}${bindir}/monav - - install -d ${D}/${datadir}/applications - install -m 0644 ${WORKDIR}/monav.desktop ${D}/${datadir}/applications -} - -FILES_${PN} += "${bindir}/monav ${datadir}/icons/monav.png" diff --git a/meta-oe/recipes-qt/fingerterm/fingerterm_1.0.2.bb b/meta-oe/recipes-qt/fingerterm/fingerterm_1.0.2.bb deleted file mode 100644 index 167d141e00..0000000000 --- a/meta-oe/recipes-qt/fingerterm/fingerterm_1.0.2.bb +++ /dev/null @@ -1,43 +0,0 @@ -DESCRIPTION = "A terminal emulator for Harmattan (Nokia N9/N950) with a custom \ -virtual keyboard and usability-enhancing features such as URL grabber, pan \ -gestures and customizable shortcut menu. Designed especially to be used with \ -screen and irssi." -HOMEPAGE = "http://hqh.unlink.org/harmattan" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SECTION = "qt/app" - - -inherit qt4x11 pkgconfig - -SRC_URI = " \ - http://hqh.unlink.org/harmattan/fingerterm-${PV}.tar.gz \ -" - -SRC_URI[md5sum] = "d53b0f463c025583cd52accf95715448" -SRC_URI[sha256sum] = "c21a07cc411d09739bd7fa248eba2bf96427b3f032382a044b6674dd82d95150" - -S = "${WORKDIR}/${BPN}" - -FILES_${PN} = " \ - ${bindir}/${BPN} \ - ${datadir}/applications/${BPN}.desktop \ - ${datadir}/pixmaps/${BPN}.png \ -" - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${S}/${BPN} ${D}${bindir} - - sed -i -e '/Exec.*/d' fingerterm.desktop - sed -i -e '/Icon.*/d' fingerterm.desktop - - echo 'Exec=${bindir}/${BPN}' >> fingerterm.desktop - echo 'Icon=${BPN}' >> fingerterm.desktop - - install -d ${D}${datadir}/applications - install -m 0644 ${S}/${BPN}.desktop ${D}${datadir}/applications - - install -d ${D}${datadir}/pixmaps - install -m 0644 ${S}/${BPN}.png ${D}${datadir}/pixmaps -} diff --git a/meta-oe/recipes-qt/libconnman-qt/libconnman-qt.inc b/meta-oe/recipes-qt/libconnman-qt/libconnman-qt.inc deleted file mode 100644 index 859c854749..0000000000 --- a/meta-oe/recipes-qt/libconnman-qt/libconnman-qt.inc +++ /dev/null @@ -1,53 +0,0 @@ -DESCRIPTION = "Qt Library for ConnMan" -HOMEPAGE = "https://github.com/nemomobile/libconnman-qt" -SECTION = "qt/lib" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://libconnman-qt/clockmodel.h;endline=8;md5=ea9f724050803f15d2d900ce3c5dac88" -SRCREV = "80ac184d859ea90c026403f5a520644945a5081a" -PV = "1.0.50+git${SRCPV}" - -SRC_URI = "git://github.com/nemomobile/libconnman-qt.git;branch=master" - -S = "${WORKDIR}/git" - -inherit pkgconfig - -EXTRA_QMAKEVARS_PRE += "CONFIG+=notests TARGET_SUFFIX=${QT_DIR_NAME}" - -do_configure_prepend() { - # Hack *.pro variables - find ${S}/plugin/*.pro -exec sed -i -e 's,$$\[QT_INSTALL_IMPORTS\],${QT_IMPORTS_DIR},g' '{}' ';' - find ${S} -iname '*.pro' -exec sed -i -e 's,$$INSTALL_ROOT$$PREFIX/lib,$$INSTALL_ROOT$$PREFIX/${baselib},g' '{}' ';' -} -do_install() { - oe_runmake install INSTALL_ROOT=${D} -} - -PACKAGES =+ "${PN}-plugin ${PN}-plugin-dbg" - -RDEPENDS_${PN} = "connman" -RDEPENDS_${PN}-plugin = "${PN}" - -RRECOMMENDS_${PN} = "${PN}-plugin" - -FILES_${PN} = " \ - ${libdir}/libconnman-qt*${SOLIBS} \ -" -FILES_${PN}-dev = " \ - ${includedir}/connman-qt*/* \ - ${libdir}/libconnman-qt*${SOLIBSDEV} \ - ${libdir}/libconnman-qt*.prl \ - ${libdir}/pkgconfig/connman-qt*.pc \ -" -FILES_${PN}-plugin = " \ - ${PLUGINS_TARGET}/qmldir \ - ${PLUGINS_TARGET}/lib*.so \ -" -FILES_${PN}-plugin-dbg = " \ - ${PLUGINS_TARGET}/.debug \ - ${PLUGINS_TARGET}/.debug/* \ -" - -QT_IMPORTS_DIR = "${libdir}/${QT_DIR_NAME}/imports" -# the plugin target needs to be the same as 'target.path' and 'qmldir.path' in ${S}/plugin/plugin.pro -PLUGINS_TARGET = "${QT_IMPORTS_DIR}/MeeGo/Connman" diff --git a/meta-oe/recipes-qt/libconnman-qt/libconnman-qt_git.bb b/meta-oe/recipes-qt/libconnman-qt/libconnman-qt_git.bb deleted file mode 100644 index 8d8822c5e1..0000000000 --- a/meta-oe/recipes-qt/libconnman-qt/libconnman-qt_git.bb +++ /dev/null @@ -1,3 +0,0 @@ -inherit qt4x11 - -require libconnman-qt.inc diff --git a/meta-oe/recipes-qt/libconnman-qt/libconnman-qte/plugin.pro-fix-build-with-custom-target-suffix.patch b/meta-oe/recipes-qt/libconnman-qt/libconnman-qte/plugin.pro-fix-build-with-custom-target-suffix.patch deleted file mode 100644 index 3ff68c8dc5..0000000000 --- a/meta-oe/recipes-qt/libconnman-qt/libconnman-qte/plugin.pro-fix-build-with-custom-target-suffix.patch +++ /dev/null @@ -1,42 +0,0 @@ -Upstream-Status: Submitted [https://github.com/nemomobile/libconnman-qt/pull/105] - -From 48da520b971af69d22e691a0ef6ff1c3ce901f0d Mon Sep 17 00:00:00 2001 -From: Andreas Oberritter -Date: Tue, 11 Mar 2014 21:55:37 +0100 -Subject: [PATCH] plugin.pro: fix build with custom target suffix - -This went unnoticed because of a previously installed libconnman-qt4. - -Signed-off-by: Andreas Oberritter ---- - plugin/plugin.pro | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/plugin/plugin.pro b/plugin/plugin.pro -index c9534cf..9cdaa63 100644 ---- a/plugin/plugin.pro -+++ b/plugin/plugin.pro -@@ -8,14 +8,18 @@ INCLUDEPATH += ../libconnman-qt - LIBS += -L../libconnman-qt - QT -= gui - -+isEmpty(TARGET_SUFFIX) { -+ TARGET_SUFFIX = qt$$QT_MAJOR_VERSION -+} -+ -+LIBS += -l$$qtLibraryTarget(connman-$$TARGET_SUFFIX) -+ - equals(QT_MAJOR_VERSION, 4): { - QT += declarative -- LIBS += -lconnman-qt4 - } - - equals(QT_MAJOR_VERSION, 5): { - QT += qml -- LIBS += -lconnman-qt5 - OTHER_FILES += plugin.json qmldirs - } - --- -1.8.3.2 - diff --git a/meta-oe/recipes-qt/libconnman-qt/libconnman-qte_git.bb b/meta-oe/recipes-qt/libconnman-qt/libconnman-qte_git.bb deleted file mode 100644 index 9d44957ac2..0000000000 --- a/meta-oe/recipes-qt/libconnman-qt/libconnman-qte_git.bb +++ /dev/null @@ -1,5 +0,0 @@ -inherit qt4e - -require libconnman-qt.inc - -SRC_URI += "file://plugin.pro-fix-build-with-custom-target-suffix.patch" diff --git a/meta-oe/recipes-qt/libqofono/libqofono_0.4.bb b/meta-oe/recipes-qt/libqofono/libqofono_0.4.bb deleted file mode 100644 index 9349372075..0000000000 --- a/meta-oe/recipes-qt/libqofono/libqofono_0.4.bb +++ /dev/null @@ -1,84 +0,0 @@ -SUMMARY = "Qt Library for oFono" -HOMEPAGE = "https://github.com/nemomobile/libqofono" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://README;endline=3;md5=8a15bce3921d1238d9a9f23828612947" - -SECTION = "qt/lib" - -BRANCH = "master" -PV = "0.4+gitr${SRCPV}" -SRCREV = "05055a4b4a579facd007a0a128696030228e0b88" - -inherit qt4x11 pkgconfig - -RDEPENDS_${PN} = "ofono" -RDEPENDS_${PN}-plugin = "${PN}" - -PACKAGES =+ "${PN}-plugin ${PN}-plugin-dbg ${PN}-test" -RRECOMMENDS_${PN} = "${PN}-plugin" - -SRC_URI = " \ - git://github.com/nemomobile/${BPN}.git;branch=${BRANCH} \ -" -S = "${WORKDIR}/git" - -QT_IMPORTS_DIR = "${libdir}/qt4/imports" -PLUGINS_TARGET = "${QT_IMPORTS_DIR}/MeeGo/QOfono" - -FILES_${PN} = " \ - ${libdir}/libqofono${SOLIBS} \ -" - -FILES_${PN}-dev = " \ - ${includedir}/qofono/* \ - ${includedir}/qofono/dbus/* \ - ${libdir}/libqofono${SOLIBSDEV} \ - ${libdir}/libqofono.prl \ - ${libdir}/pkgconfig/qofono.pc \ - ${datadir}/qt4/mkspecs/features/qofono.prf \ -" - -FILES_${PN}-plugin = " \ - ${PLUGINS_TARGET}/qmldir \ - ${PLUGINS_TARGET}/lib*.so \ -" - -FILES_${PN}-plugin-dbg = " \ - ${PLUGINS_TARGET}/.debug \ -" - -FILES_${PN}-test = " \ - /opt/ofonotest/bin/ofonotest \ - /opt/ofonotest/qml/ofonotest \ - ${libdir}/libqofono/tests/tst_qofonotest \ -" - -FILES_${PN}-dbg += " \ - /opt/ofonotest/bin/.debug \ - ${libdir}/libqofono/tests/.debug \ -" - -EXTRA_QMAKEVARS_PRE = " \ - PREFIX=${prefix} \ -" - -do_configure_prepend() { - # Hack *.pro variables - find . -iname '*.pro' -exec sed -i -e 's,$$\[QT_INSTALL_IMPORTS\],${QT_IMPORTS_DIR},g' '{}' ';' - find . -iname '*.pro' -exec sed -i -e 's,$$\[QT_INSTALL_PREFIX\],$$INSTALL_ROOT$$PREFIX,g' '{}' ';' - find . -iname '*.pro' -exec sed -i -e 's,$$INSTALL_ROOT$$PREFIX/lib,$$INSTALL_ROOT$$PREFIX/${baselib},g' '{}' ';' -} - -do_install() { - export INSTALL_ROOT=${D} - oe_runmake install - - cd ${D}/${datadir}/qt4/mkspecs/features - - sed -i -e '/DEPENDPATH.*/d; /INCLUDEPATH.*/d; /LIBS.*/d' ${D}/${datadir}/qt4/mkspecs/features/qofono.prf - - # to make it work with the SDK - echo 'DEPENDPATH += $(OE_QMAKE_INCDIR_QT)/../qofono' >> ${D}/${datadir}/qt4/mkspecs/features/qofono.prf - echo 'INCLUDEPATH += $(OE_QMAKE_INCDIR_QT)/../qofono' >> ${D}/${datadir}/qt4/mkspecs/features/qofono.prf - echo 'LIBS += -lqofono' >> ${D}/${datadir}/qt4/mkspecs/features/qofono.prf -} diff --git a/meta-oe/recipes-qt/qcanobserver/qcanobserver-socketcan_svn.bb b/meta-oe/recipes-qt/qcanobserver/qcanobserver-socketcan_svn.bb deleted file mode 100644 index 19ea1ea575..0000000000 --- a/meta-oe/recipes-qt/qcanobserver/qcanobserver-socketcan_svn.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "The Linux CAN Sniffer - SocketCAN driver" - -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://../../../modeltest/LICENSE.GPL;md5=34337af480a8c452bfafe22a78fa20cb" - -inherit qt4x11 - -DEPENDS += "qwt libsocketcan" - -PV = "0.5+svnr${SRCPV}" -SRCREV = "48" -SRC_URI = "svn://qcanobserver.svn.sourceforge.net/svnroot;module=qcanobserver;protocol=https" - -S = "${WORKDIR}/qcanobserver/DeviceLib/linux/SocketCAN" - -CXXFLAGS += " -DPF_CAN=29 -DAF_CAN=PF_CAN" - -do_configure_prepend() { - sed -i s:/usr/include/qwt5/:${STAGING_INCDIR}:g *.pro -} - -do_install() { - install -d ${D}${datadir}/qcanobserver/lib - - install -m 0755 ${S}/lib* ${D}${datadir}/qcanobserver/lib/ -} - -FILES_${PN} += "${datadir}/qcanobserver/lib" -FILES_${PN}-dbg += "${datadir}/qcanobserver/lib/.debug" - -PNBLACKLIST[qcanobserver-socketcan] ?= "depends on qwt-5 APIs" diff --git a/meta-oe/recipes-qt/qcanobserver/qcanobserver_svn.bb b/meta-oe/recipes-qt/qcanobserver/qcanobserver_svn.bb deleted file mode 100644 index 54e7fc16be..0000000000 --- a/meta-oe/recipes-qt/qcanobserver/qcanobserver_svn.bb +++ /dev/null @@ -1,43 +0,0 @@ -SUMMARY = "The Linux CAN Sniffer" - -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://modeltest/LICENSE.GPL;md5=34337af480a8c452bfafe22a78fa20cb" - -inherit qt4x11 - -DEPENDS += "qwt" - -PV = "0.5+svnr${SRCPV}" -SRCREV = "48" -SRC_URI = "svn://qcanobserver.svn.sourceforge.net/svnroot;module=qcanobserver;protocol=https \ - file://0001-messagebufferinterface.cpp-add-sys-socket.h-as-inclu.patch \ - file://0002-qconsole-writethread-gcc-4.5-fixes.patch \ - file://candemo.xml" - -S = "${WORKDIR}/qcanobserver/" - -CXXFLAGS += " -DPF_CAN=29 -DAF_CAN=PF_CAN" - -do_configure_prepend() { - sed -i -e s:/usr/include/qwt5/:${STAGING_INCDIR}:g -e 's:-L/usr/lib/:-L${STAGING_DIR_TARGET}/lib -ldl:g' *.pro -} - -do_configure_append() { - sed -i -e s:-L/usr/lib::g Makefile -} - -do_install() { - install -d ${D}${datadir}/qcanobserver - install -d ${D}${datadir}/qcanobserver/cfg - install -d ${D}${datadir}/qcanobserver/lib - install -d ${D}${datadir}/qcanobserver/db - - install -m 0755 ${S}/QCanObserver ${D}${datadir}/qcanobserver - - install -m 0644 ${WORKDIR}/candemo.xml ${D}${datadir}/qcanobserver/db - install -m 0644 ${S}/db/*.xml ${D}${datadir}/qcanobserver/db -} - -FILES_${PN}-dbg += "${datadir}/qcanobserver/.debug" - -PNBLACKLIST[qcanobserver] ?= "depends on qwt-5 APIs" diff --git a/meta-oe/recipes-qt/qconnman/qconnman-e_git.bb b/meta-oe/recipes-qt/qconnman/qconnman-e_git.bb deleted file mode 100644 index e307a72c19..0000000000 --- a/meta-oe/recipes-qt/qconnman/qconnman-e_git.bb +++ /dev/null @@ -1,12 +0,0 @@ -require qconnman.inc - -RCONFLICTS_${PN} = "qconnman" - -inherit qt4e - -PNBLACKLIST[qconnman-e] ?= "BROKEN: doesn't work with B!=S, ls: cannot access *.pro: No such file or directory" - -EXTRA_QMAKEVARS_PRE += "PREFIX=/usr" -EXTRA_OEMAKE += "INSTALL_ROOT=${D}" - -FILES_${PN} += "${datadir}/qconnman/" diff --git a/meta-oe/recipes-qt/qconnman/qconnman.inc b/meta-oe/recipes-qt/qconnman/qconnman.inc deleted file mode 100644 index 664f2a02fd..0000000000 --- a/meta-oe/recipes-qt/qconnman/qconnman.inc +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "ConnMan management interface done in Qt" -DEPENDS = "connman" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -PR = "r2" - -inherit autotools - -PV = "0.0+gitr${SRCPV}" -SRCREV = "f976b18c7c5584627224784801803e9fd3ebe0ff" -SRC_URI = "git://github.com/OSSystems/qconnman-ui.git;branch=stable" - -S = "${WORKDIR}/git/" diff --git a/meta-oe/recipes-qt/qconnman/qconnman_git.bb b/meta-oe/recipes-qt/qconnman/qconnman_git.bb deleted file mode 100644 index 2f8cca25a0..0000000000 --- a/meta-oe/recipes-qt/qconnman/qconnman_git.bb +++ /dev/null @@ -1,10 +0,0 @@ -require qconnman.inc - -RCONFLICTS_${PN} = "qconnman-e" - -inherit qt4x11 - -PNBLACKLIST[qconnman] ?= "BROKEN: doesn't work with B!=S, ls: cannot access *.pro: No such file or directory" - -EXTRA_QMAKEVARS_PRE += "PREFIX=/usr" -EXTRA_OEMAKE += "INSTALL_ROOT=${D}" diff --git a/meta-oe/recipes-qt/qextserialport/qextserialport_1.2rc.bb b/meta-oe/recipes-qt/qextserialport/qextserialport_1.2rc.bb deleted file mode 100644 index abf48cfc2f..0000000000 --- a/meta-oe/recipes-qt/qextserialport/qextserialport_1.2rc.bb +++ /dev/null @@ -1,54 +0,0 @@ -SUMMARY = "Qt Ext Serial Port Library" -HOMEPAGE = "http://http://code.google.com/p/qextserialport/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b866a28cda707ec714878bd933f46251" -SECTION = "qt/libs" - - -# 1.2rc as version will sort lower then 1.2 when it's released -REAL_PV = "1.2rc" -PV = "1.1+${REAL_PV}" - -inherit qt4x11 pkgconfig - -DEPENDS = "udev" - -SRC_URI = " \ - http://qextserialport.googlecode.com/files/qextserialport-${REAL_PV}.zip \ -" - -SRC_URI[md5sum] = "ffa061edb9f64666468d18402eee6108" -SRC_URI[sha256sum] = "9cbee267aac9830f9944bb1d13872e51fba400aa9afe158e64f0fe265a0176bc" - -S = "${WORKDIR}/qextserialport-${REAL_PV}" - -FILES_${PN} = "${libdir}/libqextserialport${SOLIBS}" - -FILES_${PN}-dev = " \ - ${libdir}/libqextserialport${SOLIBSDEV} \ - ${libdir}/libqextserialport.prl \ - ${includedir}/QtExtSerialPort/*.h \ - ${datadir}/qt4/mkspecs/features/extserialport.prf \ -" - -FILES_${PN}-dbg += " \ - ${libdir}/.debug/libqextserialport.so* \ -" - -do_configure_prepend() { - # based on the documentation, this line make sure we use udev in linux - cd ${S} && echo "linux*:CONFIG += qesp_linux_udev" > .qmake.cache - - # Hacking hardcoded qmake variables - find *.pro -exec sed -i -e 's,$$\[QT_INSTALL_HEADERS\],${includedir},g' '{}' ';' - find *.pro -exec sed -i -e 's,$$\[QT_INSTALL_LIBS\],${libdir},g' '{}' ';' - find *.pro -exec sed -i -e 's,$$\[QMAKE_MKSPECS\],${datadir}/qt4/mkspecs/,g' '{}' ';' -} - -do_install() { - export INSTALL_ROOT=${D} - oe_runmake install - - # This is necessary to make it work with the qt based SDK - cd ${D}/${datadir}/qt4/mkspecs/features && sed -i -e "s|${STAGING_INCDIR_NATIVE}/qt4|\$(OE_QMAKE_INCDIR_QT)/..|" ./extserialport.prf -} diff --git a/meta-oe/recipes-qt/qt-creator/qt-creator_2.8.1.bb b/meta-oe/recipes-qt/qt-creator/qt-creator_2.8.1.bb deleted file mode 100644 index 88f7a45f59..0000000000 --- a/meta-oe/recipes-qt/qt-creator/qt-creator_2.8.1.bb +++ /dev/null @@ -1,54 +0,0 @@ -SUMMARY = "Lightweight, cross-platform integrated development environment" - -HOMEPAGE = "http://qt-project.org/" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://LGPL_EXCEPTION.TXT;md5=eb6c371255e1262c55ae9b652a90b528 \ - file://LICENSE.LGPL;md5=243b725d71bb5df4a1e5920b344b86ad" -SECTION = "qt/app" - -SRC_URI = "http://download.qt-project.org/official_releases/qtcreator/2.8/${PV}/${BP}-src.tar.gz \ - file://fix.missing.cpuid.h.patch \ - file://qbs_transformer_product.patch" -SRC_URI[md5sum] = "79ef6c6ece0c00035ef744c9d6e3bd3b" -SRC_URI[sha256sum] = "d5ae007a297a4288d0e95fd605edbfb8aee80f6788c7a6cfb9cb297f50c364b9" - -S = "${WORKDIR}/${BP}-src" - -inherit qt4x11 - -EXTRA_QMAKEVARS_PRE += "IDE_LIBRARY_BASENAME=${baselib}" - -do_install() { - oe_runmake INSTALL_ROOT=${D}${prefix} install - oe_runmake INSTALL_ROOT=${D}${prefix} install_docs - rm -f ${D}${libdir}/qtcreator/lib*.so -} - -FILES_${PN} += "${datadir}/icons \ - ${datadir}/qtcreator \ - ${libdir}/qtcreator/*" -FILES_${PN}-dbg += "${datadir}/qtcreator/*/*/*/*/.debug \ - ${libdir}/qtcreator/.debug \ - ${libdir}/qtcreator/*/*/.debug" -RRECOMMENDS_${PN} += "packagegroup-core-buildessential \ - packagegroup-qt-toolchain-target \ - qt4-plugin-sqldriver-sqlite \ -" - -# avoid conflicts with meta-qt5's qt-creator and do install nothing to sysroot -# this does no harm cause nothing depends on qt-creator -sysroot_stage_all() { -} - -# the regexp in insane.bbclass doesn't allow this valid path: -# qt-creator-2.8.1: qt-creator: found library in wrong location: /usr/share/qtcreator/qbs/lib/qbs/plugins/libqbs_cpp_scanner.so -# qt-creator: found library in wrong location: /usr/share/qtcreator/qbs/lib/qbs/plugins/libqbs_qt_scanner.so -# qt-creator-dbg: found library in wrong location: /usr/share/qtcreator/qbs/lib/qbs/plugins/.debug/libqbs_cpp_scanner.so -# qt-creator-dbg: found library in wrong location: /usr/share/qtcreator/qbs/lib/qbs/plugins/.debug/libqbs_qt_scanner.so -INSANE_SKIP_${PN} += "libdir" -INSANE_SKIP_${PN}-dbg += "libdir" - -RDEPENDS_${PN} += "perl" - -# /usr/include/qt4/QtCore/qsharedpointer_impl.h:336:11: error: 'product' may be used uninitialized in this function [-Werror=maybe-uninitialized] -PNBLACKLIST[qt-creator] ?= "BROKEN: fails to build with gcc-5 and conflicts with qt5-creator" diff --git a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/0001-fix-embedded-usage-doesn-t-work-outside-of-Qt.patch b/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/0001-fix-embedded-usage-doesn-t-work-outside-of-Qt.patch deleted file mode 100644 index d8d88c2cfc..0000000000 --- a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/0001-fix-embedded-usage-doesn-t-work-outside-of-Qt.patch +++ /dev/null @@ -1,73 +0,0 @@ -From de2b568a4f14f38ae26960f543277bd2ac57c9d6 Mon Sep 17 00:00:00 2001 -From: Alex -Date: Tue, 10 May 2011 14:54:49 +1000 -Subject: [PATCH] fix !embedded usage (doesn't work outside of Qt) - -embedded is part of QT_CONFIG and not CONFIG - -Task-number: QTMOBILITY-1586 ---- -Upstream-Status: Backport -https://qt.gitorious.org/qt-mobility/qt-mobility/commit/de2b568a4f14f38ae26960f543277bd2ac57c9d6 -EB: refreshed the patch for it to apply properly - - plugins/multimedia/gstreamer/gstreamer.pro | 2 +- - src/systeminfo/systeminfo.pro | 6 +++--- - tests/auto/auto.pro | 2 +- - 3 files changed, 5 insertions(+), 5 deletions(-) - -Index: qt-mobility-opensource-src-1.2.0/plugins/multimedia/gstreamer/gstreamer.pro -=================================================================== ---- qt-mobility-opensource-src-1.2.0.orig/plugins/multimedia/gstreamer/gstreamer.pro 2013-09-19 10:34:40.880862884 +0200 -+++ qt-mobility-opensource-src-1.2.0/plugins/multimedia/gstreamer/gstreamer.pro 2013-09-19 10:35:22.844862550 +0200 -@@ -85,7 +85,7 @@ - qgstutils.cpp - - --!win32:!embedded:!mac:!symbian:!simulator:!contains(QT_CONFIG, qpa) { -+!win32:!contains(QT_CONFIG,embedded):!mac:!symbian:!simulator:!contains(QT_CONFIG, qpa) { - LIBS += -lXv -lX11 -lXext - - HEADERS += \ -Index: qt-mobility-opensource-src-1.2.0/src/systeminfo/systeminfo.pro -=================================================================== ---- qt-mobility-opensource-src-1.2.0.orig/src/systeminfo/systeminfo.pro 2013-09-19 10:34:40.884862884 +0200 -+++ qt-mobility-opensource-src-1.2.0/src/systeminfo/systeminfo.pro 2013-09-19 10:36:05.480862210 +0200 -@@ -101,7 +101,7 @@ - LIBS += -lblkid - } - -- !embedded:!contains(QT_CONFIG,qpa): { -+ !contains(QT_CONFIG,embedded):!contains(QT_CONFIG,qpa): { - LIBS += -lX11 -lXrandr - } - -@@ -154,7 +154,7 @@ - #for now... udisks - } else { - DEFINES += QT_NO_UDISKS -- !embedded:!contains(QT_CONFIG,qpa): LIBS += -lX11 -lXrandr -+ !contains(QT_CONFIG,embedded):!contains(QT_CONFIG,qpa): LIBS += -lX11 -lXrandr - } - - contains(connman_enabled, yes): { -@@ -165,7 +165,7 @@ - } - } else { - DEFINES += QT_NO_NETWORKMANAGER QT_NO_UDISKS QT_NO_CONNMAN -- !embedded:!contains(QT_CONFIG,qpa): LIBS += -lX11 -lXrandr -+ !contains(QT_CONFIG,embedded):!contains(QT_CONFIG,qpa): LIBS += -lX11 -lXrandr - } - } - -Index: qt-mobility-opensource-src-1.2.0/tests/auto/auto.pro -=================================================================== ---- qt-mobility-opensource-src-1.2.0.orig/tests/auto/auto.pro 2013-09-19 10:34:40.884862884 +0200 -+++ qt-mobility-opensource-src-1.2.0/tests/auto/auto.pro 2013-09-19 10:35:22.844862550 +0200 -@@ -21,5 +21,5 @@ - # which require that the autotest is run on the same machine - # doing the build - i.e. cross-compilation is not allowed. - win32|mac|linux-g++* { -- !embedded:!maemo5:!maemo6:SUBDIRS+=host.pro -+ !contains(QT_CONFIG,embedded):!maemo5:!maemo6:SUBDIRS+=host.pro - } diff --git a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/0001-gstvideoconnector-fixed-buffers-allocation.patch b/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/0001-gstvideoconnector-fixed-buffers-allocation.patch deleted file mode 100644 index 2df76fc778..0000000000 --- a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/0001-gstvideoconnector-fixed-buffers-allocation.patch +++ /dev/null @@ -1,34 +0,0 @@ -Upstream-Status: Submitted [QTMOBILITY-1611] - -From b308508b49afa9a129b4e4589c57cd107d1320b8 Mon Sep 17 00:00:00 2001 -From: Dmytro Poplavskiy -Date: Fri, 6 May 2011 10:35:11 +1000 -Subject: [PATCH] gstvideoconnector: fixed buffers allocation - -It should not be necessary, but at least theora video decoder doesn't -iniatilize *buf, while gst_pad_alloc_buffer relies on buf being NULL. - -Task-number: QTMOBILITY-1611 -Reviewed-by: Michael Goddard ---- - plugins/multimedia/gstreamer/gstvideoconnector.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/plugins/multimedia/gstreamer/gstvideoconnector.c b/plugins/multimedia/gstreamer/gstvideoconnector.c -index ddf68e0..9f8ceae 100644 ---- a/plugins/multimedia/gstreamer/gstvideoconnector.c -+++ b/plugins/multimedia/gstreamer/gstvideoconnector.c -@@ -186,6 +186,10 @@ gst_video_connector_buffer_alloc (GstPad * pad, guint64 offset, guint size, - GstFlowReturn res = GST_FLOW_OK; - element = GST_VIDEO_CONNECTOR (GST_PAD_PARENT (pad)); - -+ if (!buf) -+ return GST_FLOW_ERROR; -+ *buf = NULL; -+ - GST_OBJECT_LOCK (element); - gst_object_ref(element->srcpad); - GST_OBJECT_UNLOCK (element); --- -1.7.4.1 - diff --git a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/0002-Remove-unnecessary-rpaths-from-qml_device-example.patch b/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/0002-Remove-unnecessary-rpaths-from-qml_device-example.patch deleted file mode 100644 index a411640b73..0000000000 --- a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/0002-Remove-unnecessary-rpaths-from-qml_device-example.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 92e0c611f4969c716616d64df64831387e5b1632 Mon Sep 17 00:00:00 2001 -From: Paul Eggleton -Date: Fri, 16 Mar 2012 10:24:00 +0000 -Subject: [PATCH] Remove unnecessary rpaths from qml_device example - -These can't be valid in any case. - -Upstream-Status: Pending - -Signed-off-by: Paul Eggleton ---- - examples/declarative-systeminfo/device/device.pro | 3 --- - 1 files changed, 0 insertions(+), 3 deletions(-) - -diff --git a/examples/declarative-systeminfo/device/device.pro b/examples/declarative-systeminfo/device/device.pro -index 698e5fb..05be9b7 100644 ---- a/examples/declarative-systeminfo/device/device.pro -+++ b/examples/declarative-systeminfo/device/device.pro -@@ -17,6 +17,3 @@ symbian { - } - RESOURCES += device.qrc - --QMAKE_LFLAGS_DEBUG += "-Wl,-rpath,/home/user/qt/lib" --QMAKE_LFLAGS_RPATH += "-Wl,-rpath,/home/user/qt/lib" --QMAKE_LFLAGS_RELEASE += "-Wl,-rpath,/home/user/qt/lib" --- -1.7.5.4 - diff --git a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/fix-compile-error-no-bluez.patch b/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/fix-compile-error-no-bluez.patch deleted file mode 100644 index 3f03cf7165..0000000000 --- a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/fix-compile-error-no-bluez.patch +++ /dev/null @@ -1,338 +0,0 @@ -From bb05733bd5a685b00f80ddc73a1b7a9a2ba0eb11 Mon Sep 17 00:00:00 2001 -From: Andrew Stanley-Jones -Date: Thu, 12 May 2011 13:07:13 +1000 -Subject: [PATCH] Fix compile error if bluez is not installed - -Upstream-Status: Backport - -Task-number: QTMOBILITY-1576 ---- - src/connectivity/bluetooth/bluetooth.pri | 1 + - .../bluetooth/qbluetoothdevicediscoveryagent.h | 2 +- - .../bluetooth/qbluetoothdevicediscoveryagent_p.cpp | 2 +- - .../bluetooth/qbluetoothdevicediscoveryagent_p.h | 6 +++--- - .../bluetooth/qbluetoothlocaldevice_p.h | 4 ++-- - .../bluetooth/qbluetoothservicediscoveryagent.h | 2 +- - .../bluetooth/qbluetoothservicediscoveryagent_p.h | 8 ++++---- - .../bluetooth/qbluetoothserviceinfo_p.cpp | 2 +- - .../bluetooth/qbluetoothserviceinfo_p.h | 4 ++-- - src/connectivity/bluetooth/ql2capserver.h | 2 +- - src/connectivity/bluetooth/ql2capserver_p.cpp | 2 +- - src/connectivity/bluetooth/ql2capserver_p.h | 6 +++--- - src/connectivity/bluetooth/qrfcommserver.h | 2 +- - src/connectivity/bluetooth/qrfcommserver_p.cpp | 2 +- - src/connectivity/bluetooth/qrfcommserver_p.h | 6 +++--- - tests/tests.pro | 4 +++- - 16 files changed, 29 insertions(+), 26 deletions(-) - -diff --git a/src/connectivity/bluetooth/bluetooth.pri b/src/connectivity/bluetooth/bluetooth.pri -index 717a1ad..4fa2c15 100644 ---- a/src/connectivity/bluetooth/bluetooth.pri -+++ b/src/connectivity/bluetooth/bluetooth.pri -@@ -103,6 +103,7 @@ symbian { - } - } else:contains(bluez_enabled, yes):contains(QT_CONFIG, dbus) { - QT *= dbus -+ DEFINES += QTM_BLUEZ_BLUETOOTH - - include(bluez/bluez.pri) - -diff --git a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.h b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.h -index a95c467..00cfd14 100644 ---- a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.h -+++ b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.h -@@ -101,7 +101,7 @@ private: - Q_DECLARE_PRIVATE(QBluetoothDeviceDiscoveryAgent) - QBluetoothDeviceDiscoveryAgentPrivate *d_ptr; - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - Q_PRIVATE_SLOT(d_func(), void _q_deviceFound(const QString &address, const QVariantMap &dict)); - Q_PRIVATE_SLOT(d_func(), void _q_propertyChanged(const QString &name, const QDBusVariant &value)); - #endif -diff --git a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.cpp b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.cpp -index 6edbd16..512002d 100644 ---- a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.cpp -+++ b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.cpp -@@ -69,7 +69,7 @@ void QBluetoothDeviceDiscoveryAgentPrivate::start() - void QBluetoothDeviceDiscoveryAgentPrivate::stop() - { - } --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - void QBluetoothDeviceDiscoveryAgentPrivate::_q_deviceFound(const QString &address, - const QVariantMap &dict) - { -diff --git a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.h b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.h -index 0e34e05..700e78d 100644 ---- a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.h -+++ b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.h -@@ -46,7 +46,7 @@ - - #include - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - class OrgBluezManagerInterface; - class OrgBluezAdapterInterface; - class QDBusVariant; -@@ -80,7 +80,7 @@ public: - QString errorDescription); - #endif - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - void _q_deviceFound(const QString &address, const QVariantMap &dict); - void _q_propertyChanged(const QString &name, const QDBusVariant &value); - #endif -@@ -100,7 +100,7 @@ private: - bool pendingCancel; - bool pendingStart; - --#if !defined(QT_NO_DBUS) -+#ifdef QTM_BLUEZ_BLUETOOTH - OrgBluezManagerInterface *manager; - OrgBluezAdapterInterface *adapter; - #endif -diff --git a/src/connectivity/bluetooth/qbluetoothlocaldevice_p.h b/src/connectivity/bluetooth/qbluetoothlocaldevice_p.h -index 750c286..381d6b5 100644 ---- a/src/connectivity/bluetooth/qbluetoothlocaldevice_p.h -+++ b/src/connectivity/bluetooth/qbluetoothlocaldevice_p.h -@@ -51,7 +51,7 @@ - #include - #endif - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - #include - #include - #include -@@ -68,7 +68,7 @@ QTM_BEGIN_NAMESPACE - - class QBluetoothAddress; - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - class QBluetoothLocalDevicePrivate : public QObject, - protected QDBusContext - { -diff --git a/src/connectivity/bluetooth/qbluetoothservicediscoveryagent.h b/src/connectivity/bluetooth/qbluetoothservicediscoveryagent.h -index 6279432..7eeccfc 100644 ---- a/src/connectivity/bluetooth/qbluetoothservicediscoveryagent.h -+++ b/src/connectivity/bluetooth/qbluetoothservicediscoveryagent.h -@@ -105,7 +105,7 @@ private: - Q_PRIVATE_SLOT(d_func(), void _q_deviceDiscovered(const QBluetoothDeviceInfo &info)) - Q_PRIVATE_SLOT(d_func(), void _q_deviceDiscoveryFinished()) - Q_PRIVATE_SLOT(d_func(), void _q_serviceDiscoveryFinished()) --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - Q_PRIVATE_SLOT(d_func(), void _q_discoveredServices(QDBusPendingCallWatcher*)) - Q_PRIVATE_SLOT(d_func(), void _q_createdDevice(QDBusPendingCallWatcher*)) - #endif -diff --git a/src/connectivity/bluetooth/qbluetoothservicediscoveryagent_p.h b/src/connectivity/bluetooth/qbluetoothservicediscoveryagent_p.h -index 5e7da43..f25c293 100644 ---- a/src/connectivity/bluetooth/qbluetoothservicediscoveryagent_p.h -+++ b/src/connectivity/bluetooth/qbluetoothservicediscoveryagent_p.h -@@ -53,7 +53,7 @@ - #include - #endif - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - class OrgBluezManagerInterface; - class OrgBluezAdapterInterface; - class OrgBluezDeviceInterface; -@@ -99,7 +99,7 @@ public: - void _q_deviceDiscoveryFinished(); - void _q_deviceDiscovered(const QBluetoothDeviceInfo &info); - void _q_serviceDiscoveryFinished(); --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - void _q_discoveredServices(QDBusPendingCallWatcher *watcher); - void _q_createdDevice(QDBusPendingCallWatcher *watcher); - #endif -@@ -123,7 +123,7 @@ private: - #ifdef QTM_SYMBIAN_BLUETOOTH - void startL(const QBluetoothAddress &address); - void initL(const QBluetoothAddress &address); --#elif !defined(QT_NO_DBUS) -+#elif defined(QTM_BLUEZ_BLUETOOTH) - QVariant readAttributeValue(QXmlStreamReader &xml); - #endif - -@@ -153,7 +153,7 @@ private: - TSdpAttributeID m_currentAttributeId; - - QStack m_stack; --#elif !defined(QT_NO_DBUS) -+#elif defined(QTM_BLUEZ_BLUETOOTH) - OrgBluezManagerInterface *manager; - OrgBluezAdapterInterface *adapter; - OrgBluezDeviceInterface *device; -diff --git a/src/connectivity/bluetooth/qbluetoothserviceinfo_p.cpp b/src/connectivity/bluetooth/qbluetoothserviceinfo_p.cpp -index 814458c..dd96dcc 100644 ---- a/src/connectivity/bluetooth/qbluetoothserviceinfo_p.cpp -+++ b/src/connectivity/bluetooth/qbluetoothserviceinfo_p.cpp -@@ -79,7 +79,7 @@ void QBluetoothServiceInfoPrivate::removeRegisteredAttribute(quint16 attributeId - Q_UNUSED(attributeId); - } - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - bool QBluetoothServiceInfoPrivate::registerService() const - { - return false; -diff --git a/src/connectivity/bluetooth/qbluetoothserviceinfo_p.h b/src/connectivity/bluetooth/qbluetoothserviceinfo_p.h -index 5be7341..8e4254c 100644 ---- a/src/connectivity/bluetooth/qbluetoothserviceinfo_p.h -+++ b/src/connectivity/bluetooth/qbluetoothserviceinfo_p.h -@@ -72,7 +72,7 @@ public: - - bool ensureSdpConnection() const; - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - bool registerService() const; - #endif - -@@ -89,7 +89,7 @@ public: - mutable TSdpServRecordHandle serviceRecord; - #endif - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - mutable OrgBluezServiceInterface *service; - mutable quint32 serviceRecord; - mutable bool registered; -diff --git a/src/connectivity/bluetooth/ql2capserver.h b/src/connectivity/bluetooth/ql2capserver.h -index 99c20a5..bed65a3 100644 ---- a/src/connectivity/bluetooth/ql2capserver.h -+++ b/src/connectivity/bluetooth/ql2capserver.h -@@ -97,7 +97,7 @@ private: - Q_PRIVATE_SLOT(d_func(), void _q_disconnected()) - #endif //QTM_SYMBIAN_BLUETOOTH - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - Q_PRIVATE_SLOT(d_func(), void _q_newConnection()) - #endif - -diff --git a/src/connectivity/bluetooth/ql2capserver_p.cpp b/src/connectivity/bluetooth/ql2capserver_p.cpp -index 3a2199f..f19977e 100644 ---- a/src/connectivity/bluetooth/ql2capserver_p.cpp -+++ b/src/connectivity/bluetooth/ql2capserver_p.cpp -@@ -101,7 +101,7 @@ QBluetooth::SecurityFlags QL2capServer::securityFlags() const - - - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - void QL2capServerPrivate::_q_newConnection() - { - } -diff --git a/src/connectivity/bluetooth/ql2capserver_p.h b/src/connectivity/bluetooth/ql2capserver_p.h -index b5e76d9..2823106 100644 ---- a/src/connectivity/bluetooth/ql2capserver_p.h -+++ b/src/connectivity/bluetooth/ql2capserver_p.h -@@ -50,7 +50,7 @@ - #include - #endif //QTM_SYMBIAN_BLUETOOTH - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - QT_FORWARD_DECLARE_CLASS(QSocketNotifier) - #endif - -@@ -82,7 +82,7 @@ public: - void _q_disconnected(); - #endif //QTM_SYMBIAN_BLUETOOTH - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - void _q_newConnection(); - #endif - -@@ -103,7 +103,7 @@ protected: - QL2capServer *q_ptr; - - private: --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - QSocketNotifier *socketNotifier; - #endif - }; -diff --git a/src/connectivity/bluetooth/qrfcommserver.h b/src/connectivity/bluetooth/qrfcommserver.h -index 3f348dd..7974ba6 100644 ---- a/src/connectivity/bluetooth/qrfcommserver.h -+++ b/src/connectivity/bluetooth/qrfcommserver.h -@@ -97,7 +97,7 @@ private: - Q_PRIVATE_SLOT(d_func(), void _q_disconnected()) - #endif //QTM_SYMBIAN_BLUETOOTH - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - Q_PRIVATE_SLOT(d_func(), void _q_newConnection()) - #endif - }; -diff --git a/src/connectivity/bluetooth/qrfcommserver_p.cpp b/src/connectivity/bluetooth/qrfcommserver_p.cpp -index f8145d9..eb14d64 100644 ---- a/src/connectivity/bluetooth/qrfcommserver_p.cpp -+++ b/src/connectivity/bluetooth/qrfcommserver_p.cpp -@@ -90,7 +90,7 @@ quint16 QRfcommServer::serverPort() const - } - - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - void QRfcommServerPrivate::_q_newConnection() - { - } -diff --git a/src/connectivity/bluetooth/qrfcommserver_p.h b/src/connectivity/bluetooth/qrfcommserver_p.h -index da6e28b..af40df7 100644 ---- a/src/connectivity/bluetooth/qrfcommserver_p.h -+++ b/src/connectivity/bluetooth/qrfcommserver_p.h -@@ -51,7 +51,7 @@ - #include - #endif - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - QT_FORWARD_DECLARE_CLASS(QSocketNotifier) - #endif - -@@ -83,7 +83,7 @@ public: - void _q_disconnected(); - #endif //QTM_SYMBIAN_BLUETOOTH - --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - void _q_newConnection(); - #endif - -@@ -102,7 +102,7 @@ protected: - QRfcommServer *q_ptr; - - private: --#ifndef QT_NO_DBUS -+#ifdef QTM_BLUEZ_BLUETOOTH - QSocketNotifier *socketNotifier; - #endif - }; -diff --git a/tests/tests.pro b/tests/tests.pro -index 2f2c355..4800e5e 100644 ---- a/tests/tests.pro -+++ b/tests/tests.pro -@@ -16,7 +16,9 @@ contains(mobility_modules,systeminfo): SUBDIRS += sysinfo-tester - contains(mobility_modules,connectivity) { - SUBDIRS += nfctestserver - -- linux*:!linux-armcc: SUBDIRS += btclient -+ linux*:!linux-armcc:contains(bluez_enabled, yes):contains(QT_CONFIG, dbus) { -+ SUBDIRS += btclient -+ } - } - - symbian { --- -1.7.1 - diff --git a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/fix_metaobjectbuilder_build_err.patch b/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/fix_metaobjectbuilder_build_err.patch deleted file mode 100644 index cffb06706f..0000000000 --- a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/fix_metaobjectbuilder_build_err.patch +++ /dev/null @@ -1,4707 +0,0 @@ -Fix metaobjectbuilder build errors against Qt 4.8 and 4.7 - -Error message: -ipc/qmetaobjectbuilder.cpp:803:65: error: invalid conversion from \ -'QMetaObjectExtraData::StaticMetacallFunction {aka void (*)(QObject*, \ -QMetaObject::Call, int, void**)}' to 'QtMobility::QMetaObjectBuilder:: \ -StaticMetacallFunction {aka int (*)(QMetaObject::Call, int, void**)} - -Upstream-commit: -http://qt.gitorious.org/qt-mobility/qt-mobility/commit/f102053b28009b3094b0e5777177208afa6097c5 - -Task-number: QTMOBILITY-1990 - -Upstream-Status: Backport - -Signed-off-by: Wenzong Fan ------------------------------------------------------- -diff --git a/plugins/declarative/common/dynamicproperties.pri b/plugins/declarative/common/dynamicproperties.pri -index 52737a3..4bd06de 100644 ---- a/plugins/declarative/common/dynamicproperties.pri -+++ b/plugins/declarative/common/dynamicproperties.pri -@@ -1,6 +1,8 @@ - INCLUDEPATH += ../../../plugins/declarative/common/dynamicproperties/ --HEADERS += ../../../plugins/declarative/common/dynamicproperties/qdeclarativeopenmetaobject_p.h \ -- ../../../plugins/declarative/common/dynamicproperties/qmetaobjectbuilder_p.h --SOURCES += ../../../plugins/declarative/common/dynamicproperties/qdeclarativeopenmetaobject.cpp \ -- ../../../src/serviceframework/ipc/qmetaobjectbuilder.cpp -- -+HEADERS += ../../../plugins/declarative/common/dynamicproperties/qdeclarativeopenmetaobject_p.h -+SOURCES += ../../../plugins/declarative/common/dynamicproperties/qdeclarativeopenmetaobject.cpp -+include(../../../src/serviceframework/ipc/metaobjectbuilder.pri) -+INCLUDEPATH += ../../../src/serviceframework/$$OBJECTBUILDER_INCLUDEPATH -+DEPENDPATH += ../../../src/serviceframework/$$OBJECTBUILDER_DEPENDPATH -+HEADERS += ../../../src/serviceframework/$$OBJECTBUILDER_HEADERS -+SOURCES += ../../../src/serviceframework/$$OBJECTBUILDER_SOURCES -diff --git a/plugins/declarative/common/dynamicproperties/qdeclarativeopenmetaobject.cpp b/plugins/declarative/common/dynamicproperties/qdeclarativeopenmetaobject.cpp -index 79a2064..9eb6810 100644 ---- a/plugins/declarative/common/dynamicproperties/qdeclarativeopenmetaobject.cpp -+++ b/plugins/declarative/common/dynamicproperties/qdeclarativeopenmetaobject.cpp -@@ -65,8 +65,7 @@ public: - { - int id = mob.propertyCount(); - mob.addSignal("__" + QByteArray::number(id) + "()"); -- QMetaPropertyBuilder build = mob.addProperty(name, type, id); -- build.setDynamic(true); -+ mob.addProperty(name, type, id); - qFree(mem); - mem = mob.toMetaObject(); - -diff --git a/plugins/declarative/common/dynamicproperties/qmetaobjectbuilder_p.h b/plugins/declarative/common/dynamicproperties/qmetaobjectbuilder_p.h -deleted file mode 100644 -index bd937e4..0000000 ---- a/plugins/declarative/common/dynamicproperties/qmetaobjectbuilder_p.h -+++ /dev/null -@@ -1,48 +0,0 @@ --/**************************************************************************** --** --** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). --** All rights reserved. --** Contact: Nokia Corporation (qt-info@nokia.com) --** --** This file is part of the Qt Mobility Components. --** --** $QT_BEGIN_LICENSE:LGPL$ --** No Commercial Usage --** This file contains pre-release code and may not be distributed. --** You may use this file in accordance with the terms and conditions --** contained in the Technology Preview License Agreement accompanying --** this package. --** --** GNU Lesser General Public License Usage --** Alternatively, this file may be used under the terms of the GNU Lesser --** General Public License version 2.1 as published by the Free Software --** Foundation and appearing in the file LICENSE.LGPL included in the --** packaging of this file. Please review the following information to --** ensure the GNU Lesser General Public License version 2.1 requirements --** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. --** --** In addition, as a special exception, Nokia gives you certain additional --** rights. These rights are described in the Nokia Qt LGPL Exception --** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. --** --** If you have questions regarding the use of this file, please contact --** Nokia at qt-info@nokia.com. --** --** --** --** --** --** --** --** --** $QT_END_LICENSE$ --** --****************************************************************************/ -- --/* --This header gets used in a number of different QML plugins --and also in the source tree of Mobility itself. -- --So this header is just a wrapper to grab it from there. --*/ --#include "../../../../src/serviceframework/ipc/qmetaobjectbuilder_p.h" -diff --git a/src/serviceframework/ipc/ipc.pri b/src/serviceframework/ipc/ipc.pri -index 28b910f..d809f59 100644 ---- a/src/serviceframework/ipc/ipc.pri -+++ b/src/serviceframework/ipc/ipc.pri -@@ -25,9 +25,14 @@ else { - } - } - -+include(metaobjectbuilder.pri) -+INCLUDEPATH += $$OBJECTBUILDER_INCLUDEPATH -+DEPENDPATH += $$OBJECTBUILDER_DEPENDPATH -+PRIVATE_HEADERS += $$OBJECTBUILDER_HEADERS -+SOURCES += $$OBJECTBUILDER_SOURCES -+ - PRIVATE_HEADERS += ipc/qslotinvoker_p.h \ - ipc/qsignalintercepter_p.h \ -- ipc/qmetaobjectbuilder_p.h \ - ipc/instancemanager_p.h \ - ipc/qservicepackage_p.h \ - ipc/proxyobject_p.h \ -@@ -37,7 +42,6 @@ PRIVATE_HEADERS += ipc/qslotinvoker_p.h \ - - SOURCES += ipc/qslotinvoker.cpp \ - ipc/qsignalintercepter.cpp \ -- ipc/qmetaobjectbuilder.cpp \ - ipc/instancemanager.cpp \ - ipc/qservicepackage.cpp \ - ipc/proxyobject.cpp \ -diff --git a/src/serviceframework/ipc/metaobjectbuilder.pri b/src/serviceframework/ipc/metaobjectbuilder.pri -new file mode 100644 -index 0000000..cc905f9 ---- /dev/null -+++ b/src/serviceframework/ipc/metaobjectbuilder.pri -@@ -0,0 +1,12 @@ -+#check version for 4.7 ... -+contains(QT_MAJOR_VERSION, 4):lessThan(QT_MINOR_VERSION, 8) { -+ OBJECTBUILDER_INCLUDEPATH += ipc -+ OBJECTBUILDER_DEPENDPATH += ipc -+ OBJECTBUILDER_HEADERS += ipc/qmetaobjectbuilder_47_p.h -+ OBJECTBUILDER_SOURCES += ipc/qmetaobjectbuilder_47.cpp -+} else { -+ OBJECTBUILDER_INCLUDEPATH += ipc -+ OBJECTBUILDER_DEPENDPATH += ipc -+ OBJECTBUILDER_HEADERS += ipc/qmetaobjectbuilder_p.h -+ OBJECTBUILDER_SOURCES += ipc/qmetaobjectbuilder.cpp -+} -diff --git a/src/serviceframework/ipc/qmetaobjectbuilder.cpp b/src/serviceframework/ipc/qmetaobjectbuilder.cpp -index b19eb1a..6ffaa20 100644 ---- a/src/serviceframework/ipc/qmetaobjectbuilder.cpp -+++ b/src/serviceframework/ipc/qmetaobjectbuilder.cpp -@@ -117,6 +117,8 @@ enum PropertyFlags { - EnumOrFlag = 0x00000008, - StdCppSet = 0x00000100, - // Override = 0x00000200, -+ Constant = 0x00000400, -+ Final = 0x00000800, - Designable = 0x00001000, - ResolveDesignable = 0x00002000, - Scriptable = 0x00004000, -@@ -128,7 +130,7 @@ enum PropertyFlags { - User = 0x00100000, - ResolveUser = 0x00200000, - Notify = 0x00400000, -- Dynamic = 0x00800000 -+ Revisioned = 0x00800000 - }; - - enum MethodFlags { -@@ -145,7 +147,8 @@ enum MethodFlags { - - MethodCompatibility = 0x10, - MethodCloned = 0x20, -- MethodScriptable = 0x40 -+ MethodScriptable = 0x40, -+ MethodRevisioned = 0x80 - }; - - struct QMetaObjectPrivate -@@ -623,6 +626,8 @@ QMetaPropertyBuilder QMetaObjectBuilder::addProperty(const QMetaProperty& protot - property.setUser(prototype.isUser()); - property.setStdCppSet(prototype.hasStdCppSet()); - property.setEnumOrFlag(prototype.isEnumType()); -+ property.setConstant(prototype.isConstant()); -+ property.setFinal(prototype.isFinal()); - if (prototype.hasNotifySignal()) { - // Find an existing method for the notify signal, or add a new one. - QMetaMethod method = prototype.notifySignal(); -@@ -796,7 +801,7 @@ void QMetaObjectBuilder::addMetaObject - } - - if ((members & StaticMetacall) != 0) { -- if (priv(prototype->d.data)->revision >= 2) { -+ if (priv(prototype->d.data)->revision >= 6) { - const QMetaObjectExtraData *extra = - (const QMetaObjectExtraData *)(prototype->d.extradata); - if (extra && extra->static_metacall) -@@ -1266,8 +1271,8 @@ static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf, - char *str = reinterpret_cast(buf + size); - if (buf) { - if (relocatable) { -- meta->d.stringdata = reinterpret_cast((intptr_t)size); -- meta->d.data = reinterpret_cast((intptr_t)pmetaSize); -+ meta->d.stringdata = reinterpret_cast((quintptr)size); -+ meta->d.data = reinterpret_cast((quintptr)pmetaSize); - } else { - meta->d.stringdata = str; - meta->d.data = reinterpret_cast(data); -@@ -1504,8 +1509,8 @@ void QMetaObjectBuilder::fromRelocatableData(QMetaObject *output, - const char *buf = data.constData(); - const QMetaObject *dataMo = reinterpret_cast(buf); - -- intptr_t stringdataOffset = (intptr_t)dataMo->d.stringdata; -- intptr_t dataOffset = (intptr_t)dataMo->d.data; -+ quintptr stringdataOffset = (quintptr)dataMo->d.stringdata; -+ quintptr dataOffset = (quintptr)dataMo->d.data; - - output->d.superdata = superclass; - output->d.stringdata = buf + stringdataOffset; -@@ -2289,16 +2294,27 @@ bool QMetaPropertyBuilder::isEnumOrFlag() const - } - - /*! -- Returns true if the property has the dynamic flag set; -- otherwise returns false. The default value is false. -+ Returns true if the property is constant; otherwise returns false. -+ The default value is false. -+*/ -+bool QMetaPropertyBuilder::isConstant() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(Constant); -+ else -+ return false; -+} - -- \sa setDynamic() -+/*! -+ Returns true if the property is final; otherwise returns false. -+ The default value is false. - */ --bool QMetaPropertyBuilder::isDynamic() const -+bool QMetaPropertyBuilder::isFinal() const - { - QMetaPropertyBuilderPrivate *d = d_func(); - if (d) -- return d->flag(Dynamic); -+ return d->flag(Final); - else - return false; - } -@@ -2427,16 +2443,27 @@ void QMetaPropertyBuilder::setEnumOrFlag(bool value) - } - - /*! -- Sets this property to have the dynamic flag if \a value is -- true. -+ Sets the \c CONSTANT flag on this property to \a value. -+ -+ \sa isConstant() -+*/ -+void QMetaPropertyBuilder::setConstant(bool value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ d->setFlag(Constant, value); -+} -+ -+/*! -+ Sets the \c FINAL flag on this property to \a value. - -- \sa isDynamic() -+ \sa isFinal() - */ --void QMetaPropertyBuilder::setDynamic(bool value) -+void QMetaPropertyBuilder::setFinal(bool value) - { - QMetaPropertyBuilderPrivate *d = d_func(); - if (d) -- d->setFlag(Dynamic, value); -+ d->setFlag(Final, value); - } - - /*! -diff --git a/src/serviceframework/ipc/qmetaobjectbuilder_47.cpp b/src/serviceframework/ipc/qmetaobjectbuilder_47.cpp -new file mode 100644 -index 0000000..509d6c6 ---- /dev/null -+++ b/src/serviceframework/ipc/qmetaobjectbuilder_47.cpp -@@ -0,0 +1,2583 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -+** All rights reserved. -+** Contact: Nokia Corporation (qt-info@nokia.com) -+** -+** This file is part of the QtDeclarative module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** No Commercial Usage -+** This file contains pre-release code and may not be distributed. -+** You may use this file in accordance with the terms and conditions -+** contained in the Technology Preview License Agreement accompanying -+** this package. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain additional -+** rights. These rights are described in the Nokia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** If you have questions regarding the use of this file, please contact -+** Nokia at qt-info@nokia.com. -+** -+** -+** -+** -+** -+** -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include "qmetaobjectbuilder_47_p.h" -+#include -+ -+#ifndef Q_OS_WIN -+#include -+#endif -+ -+QTM_BEGIN_NAMESPACE -+ -+/*! -+ \class QMetaObjectBuilder -+ \internal -+ \brief The QMetaObjectBuilder class supports building QMetaObject objects at runtime. -+ \since 1.1 -+ -+*/ -+ -+/*! -+ \enum QMetaObjectBuilder::AddMember -+ This enum defines which members of QMetaObject should be copied by QMetaObjectBuilder::addMetaObject() -+ -+ \value ClassName Add the class name. -+ \value SuperClass Add the super class. -+ \value Methods Add methods that aren't signals or slots. -+ \value Signals Add signals. -+ \value Slots Add slots. -+ \value Constructors Add constructors. -+ \value Properties Add properties. -+ \value Enumerators Add enumerators. -+ \value ClassInfos Add items of class information. -+ \value RelatedMetaObjects Add related meta objects. -+ \value StaticMetacall Add the static metacall function. -+ \value PublicMethods Add public methods (ignored for signals). -+ \value ProtectedMethods Add protected methods (ignored for signals). -+ \value PrivateMethods All private methods (ignored for signals). -+ \value AllMembers Add all members. -+ \value AllPrimaryMembers Add everything except the class name, super class, and static metacall function. -+*/ -+ -+// copied from moc's generator.cpp -+uint qvariant_nameToType(const char* name) -+{ -+ if (!name) -+ return 0; -+ -+ if (strcmp(name, "QVariant") == 0) -+ return 0xffffffff; -+ if (strcmp(name, "QCString") == 0) -+ return QMetaType::QByteArray; -+ if (strcmp(name, "Q_LLONG") == 0) -+ return QMetaType::LongLong; -+ if (strcmp(name, "Q_ULLONG") == 0) -+ return QMetaType::ULongLong; -+ if (strcmp(name, "QIconSet") == 0) -+ return QMetaType::QIcon; -+ -+ uint tp = QMetaType::type(name); -+ return tp < QMetaType::User ? tp : 0; -+} -+ -+/* -+ Returns true if the type is a QVariant types. -+*/ -+bool isVariantType(const char* type) -+{ -+ return qvariant_nameToType(type) != 0; -+} -+ -+// copied from qmetaobject.cpp -+// do not touch without touching the moc as well -+enum PropertyFlags { -+ Invalid = 0x00000000, -+ Readable = 0x00000001, -+ Writable = 0x00000002, -+ Resettable = 0x00000004, -+ EnumOrFlag = 0x00000008, -+ StdCppSet = 0x00000100, -+// Override = 0x00000200, -+ Designable = 0x00001000, -+ ResolveDesignable = 0x00002000, -+ Scriptable = 0x00004000, -+ ResolveScriptable = 0x00008000, -+ Stored = 0x00010000, -+ ResolveStored = 0x00020000, -+ Editable = 0x00040000, -+ ResolveEditable = 0x00080000, -+ User = 0x00100000, -+ ResolveUser = 0x00200000, -+ Notify = 0x00400000, -+ Dynamic = 0x00800000 -+}; -+ -+enum MethodFlags { -+ AccessPrivate = 0x00, -+ AccessProtected = 0x01, -+ AccessPublic = 0x02, -+ AccessMask = 0x03, //mask -+ -+ MethodMethod = 0x00, -+ MethodSignal = 0x04, -+ MethodSlot = 0x08, -+ MethodConstructor = 0x0c, -+ MethodTypeMask = 0x0c, -+ -+ MethodCompatibility = 0x10, -+ MethodCloned = 0x20, -+ MethodScriptable = 0x40 -+}; -+ -+struct QMetaObjectPrivate -+{ -+ int revision; -+ int className; -+ int classInfoCount, classInfoData; -+ int methodCount, methodData; -+ int propertyCount, propertyData; -+ int enumeratorCount, enumeratorData; -+ int constructorCount, constructorData; -+ int flags; -+}; -+ -+static inline const QMetaObjectPrivate *priv(const uint* data) -+{ return reinterpret_cast(data); } -+// end of copied lines from qmetaobject.cpp -+ -+class QMetaMethodBuilderPrivate -+{ -+public: -+ QMetaMethodBuilderPrivate -+ (QMetaMethod::MethodType _methodType, -+ const QByteArray& _signature, -+ const QByteArray& _returnType = QByteArray(), -+ QMetaMethod::Access _access = QMetaMethod::Public) -+ : signature(QMetaObject::normalizedSignature(_signature.constData())), -+ returnType(QMetaObject::normalizedType(_returnType)), -+ attributes(((int)_access) | (((int)_methodType) << 2)) -+ { -+ } -+ -+ QByteArray signature; -+ QByteArray returnType; -+ QList parameterNames; -+ QByteArray tag; -+ int attributes; -+ -+ QMetaMethod::MethodType methodType() const -+ { -+ return (QMetaMethod::MethodType)((attributes & MethodTypeMask) >> 2); -+ } -+ -+ QMetaMethod::Access access() const -+ { -+ return (QMetaMethod::Access)(attributes & AccessMask); -+ } -+ -+ void setAccess(QMetaMethod::Access value) -+ { -+ attributes = ((attributes & ~AccessMask) | (int)value); -+ } -+}; -+ -+class QMetaPropertyBuilderPrivate -+{ -+public: -+ QMetaPropertyBuilderPrivate -+ (const QByteArray& _name, const QByteArray& _type, int notifierIdx=-1) -+ : name(_name), -+ type(QMetaObject::normalizedType(_type.constData())), -+ flags(Readable | Writable | Scriptable), notifySignal(-1) -+ { -+ if (notifierIdx >= 0) { -+ flags |= Notify; -+ notifySignal = notifierIdx; -+ } -+ } -+ -+ QByteArray name; -+ QByteArray type; -+ int flags; -+ int notifySignal; -+ -+ bool flag(int f) const -+ { -+ return ((flags & f) != 0); -+ } -+ -+ void setFlag(int f, bool value) -+ { -+ if (value) -+ flags |= f; -+ else -+ flags &= ~f; -+ } -+}; -+ -+class QMetaEnumBuilderPrivate -+{ -+public: -+ QMetaEnumBuilderPrivate(const QByteArray& _name) -+ : name(_name), isFlag(false) -+ { -+ } -+ -+ QByteArray name; -+ bool isFlag; -+ QList keys; -+ QList values; -+}; -+ -+class QMetaObjectBuilderPrivate -+{ -+public: -+ QMetaObjectBuilderPrivate() -+ : flags(0) -+ { -+ superClass = &QObject::staticMetaObject; -+ staticMetacallFunction = 0; -+ } -+ -+ QByteArray className; -+ const QMetaObject *superClass; -+ QMetaObjectBuilder::StaticMetacallFunction staticMetacallFunction; -+ QList methods; -+ QList constructors; -+ QList properties; -+ QList classInfoNames; -+ QList classInfoValues; -+ QList enumerators; -+#ifdef Q_NO_DATA_RELOCATION -+ QList relatedMetaObjects; -+#else -+ QList relatedMetaObjects; -+#endif -+ int flags; -+}; -+ -+/*! -+ Constructs a new QMetaObjectBuilder. -+*/ -+QMetaObjectBuilder::QMetaObjectBuilder() -+{ -+ d = new QMetaObjectBuilderPrivate(); -+} -+ -+/*! -+ Constructs a new QMetaObjectBuilder which is a copy of the -+ meta object information in \a prototype. Note: the super class -+ contents for \a prototype are not copied, only the immediate -+ class that is defined by \a prototype. -+ -+ The \a members parameter indicates which members of \a prototype -+ should be added. The default is AllMembers. -+ -+ \sa addMetaObject() -+*/ -+QMetaObjectBuilder::QMetaObjectBuilder -+ (const QMetaObject *prototype, QMetaObjectBuilder::AddMembers members) -+{ -+ d = new QMetaObjectBuilderPrivate(); -+ addMetaObject(prototype, members); -+} -+ -+/*! -+ Destroys this meta object builder. -+*/ -+QMetaObjectBuilder::~QMetaObjectBuilder() -+{ -+ delete d; -+} -+ -+/*! -+ Returns the name of the class being constructed by this -+ meta object builder. The default value is an empty QByteArray. -+ -+ \sa setClassName(), superClass() -+*/ -+QByteArray QMetaObjectBuilder::className() const -+{ -+ return d->className; -+} -+ -+/*! -+ Sets the \a name of the class being constructed by this -+ meta object builder. -+ -+ \sa className(), setSuperClass() -+*/ -+void QMetaObjectBuilder::setClassName(const QByteArray& name) -+{ -+ d->className = name; -+} -+ -+/*! -+ Returns the superclass meta object of the class being constructed -+ by this meta object builder. The default value is the meta object -+ for QObject. -+ -+ \sa setSuperClass(), className() -+*/ -+const QMetaObject *QMetaObjectBuilder::superClass() const -+{ -+ return d->superClass; -+} -+ -+/*! -+ Sets the superclass meta object of the class being constructed -+ by this meta object builder to \a meta. The \a meta parameter -+ must not be null. -+ -+ \sa superClass(), setClassName() -+*/ -+void QMetaObjectBuilder::setSuperClass(const QMetaObject *meta) -+{ -+ Q_ASSERT(meta); -+ d->superClass = meta; -+} -+ -+/*! -+ Returns the flags of the class being constructed by this meta object -+ builder. -+ -+ \sa setFlags() -+*/ -+QMetaObjectBuilder::MetaObjectFlags QMetaObjectBuilder::flags() const -+{ -+ return (QMetaObjectBuilder::MetaObjectFlags)d->flags; -+} -+ -+/*! -+ Sets the \a flags of the class being constructed by this meta object -+ builder. -+ -+ \sa flags() -+*/ -+void QMetaObjectBuilder::setFlags(MetaObjectFlags flags) -+{ -+ d->flags = flags; -+} -+ -+/*! -+ Returns the number of methods in this class, excluding the number -+ of methods in the base class. These include signals and slots -+ as well as normal member functions. -+ -+ \sa addMethod(), method(), removeMethod(), indexOfMethod() -+*/ -+int QMetaObjectBuilder::methodCount() const -+{ -+ return d->methods.size(); -+} -+ -+/*! -+ Returns the number of constructors in this class. -+ -+ \sa addConstructor(), constructor(), removeConstructor(), indexOfConstructor() -+*/ -+int QMetaObjectBuilder::constructorCount() const -+{ -+ return d->constructors.size(); -+} -+ -+/*! -+ Returns the number of properties in this class, excluding the number -+ of properties in the base class. -+ -+ \sa addProperty(), property(), removeProperty(), indexOfProperty() -+*/ -+int QMetaObjectBuilder::propertyCount() const -+{ -+ return d->properties.size(); -+} -+ -+/*! -+ Returns the number of enumerators in this class, excluding the -+ number of enumerators in the base class. -+ -+ \sa addEnumerator(), enumerator(), removeEnumerator() -+ \sa indexOfEnumerator() -+*/ -+int QMetaObjectBuilder::enumeratorCount() const -+{ -+ return d->enumerators.size(); -+} -+ -+/*! -+ Returns the number of items of class information in this class, -+ exclusing the number of items of class information in the base class. -+ -+ \sa addClassInfo(), classInfoName(), classInfoValue(), removeClassInfo() -+ \sa indexOfClassInfo() -+*/ -+int QMetaObjectBuilder::classInfoCount() const -+{ -+ return d->classInfoNames.size(); -+} -+ -+/*! -+ Returns the number of related meta objects that are associated -+ with this class. -+ -+ Related meta objects are used when resolving the enumerated type -+ associated with a property, where the enumerated type is in a -+ different class from the property. -+ -+ \sa addRelatedMetaObject(), relatedMetaObject() -+ \sa removeRelatedMetaObject() -+*/ -+int QMetaObjectBuilder::relatedMetaObjectCount() const -+{ -+ return d->relatedMetaObjects.size(); -+} -+ -+/*! -+ Adds a new public method to this class with the specified \a signature. -+ Returns an object that can be used to adjust the other attributes -+ of the method. The \a signature will be normalized before it is -+ added to the class. -+ -+ \sa method(), methodCount(), removeMethod(), indexOfMethod() -+*/ -+QMetaMethodBuilder QMetaObjectBuilder::addMethod(const QByteArray& signature) -+{ -+ int index = d->methods.size(); -+ d->methods.append(QMetaMethodBuilderPrivate(QMetaMethod::Method, signature)); -+ return QMetaMethodBuilder(this, index); -+} -+ -+/*! -+ Adds a new public method to this class with the specified -+ \a signature and \a returnType. Returns an object that can be -+ used to adjust the other attributes of the method. The \a signature -+ and \a returnType will be normalized before they are added to -+ the class. If \a returnType is empty, then it indicates that -+ the method has \c{void} as its return type. -+ -+ \sa method(), methodCount(), removeMethod(), indexOfMethod() -+*/ -+QMetaMethodBuilder QMetaObjectBuilder::addMethod -+ (const QByteArray& signature, const QByteArray& returnType) -+{ -+ int index = d->methods.size(); -+ d->methods.append(QMetaMethodBuilderPrivate -+ (QMetaMethod::Method, signature, returnType)); -+ return QMetaMethodBuilder(this, index); -+} -+ -+/*! -+ Adds a new public method to this class that has the same information as -+ \a prototype. This is used to clone the methods of an existing -+ QMetaObject. Returns an object that can be used to adjust the -+ attributes of the method. -+ -+ This function will detect if \a prototype is an ordinary method, -+ signal, slot, or constructor and act accordingly. -+ -+ \sa method(), methodCount(), removeMethod(), indexOfMethod() -+*/ -+QMetaMethodBuilder QMetaObjectBuilder::addMethod(const QMetaMethod& prototype) -+{ -+ QMetaMethodBuilder method; -+ if (prototype.methodType() == QMetaMethod::Method) -+ method = addMethod(prototype.signature()); -+ else if (prototype.methodType() == QMetaMethod::Signal) -+ method = addSignal(prototype.signature()); -+ else if (prototype.methodType() == QMetaMethod::Slot) -+ method = addSlot(prototype.signature()); -+ else if (prototype.methodType() == QMetaMethod::Constructor) -+ method = addConstructor(prototype.signature()); -+ method.setReturnType(prototype.typeName()); -+ method.setParameterNames(prototype.parameterNames()); -+ method.setTag(prototype.tag()); -+ method.setAccess(prototype.access()); -+ method.setAttributes(prototype.attributes()); -+ return method; -+} -+ -+/*! -+ Adds a new public slot to this class with the specified \a signature. -+ Returns an object that can be used to adjust the other attributes -+ of the slot. The \a signature will be normalized before it is -+ added to the class. -+ -+ \sa addMethod(), addSignal(), indexOfSlot() -+*/ -+QMetaMethodBuilder QMetaObjectBuilder::addSlot(const QByteArray& signature) -+{ -+ int index = d->methods.size(); -+ d->methods.append(QMetaMethodBuilderPrivate(QMetaMethod::Slot, signature)); -+ return QMetaMethodBuilder(this, index); -+} -+ -+/*! -+ Adds a new signal to this class with the specified \a signature. -+ Returns an object that can be used to adjust the other attributes -+ of the signal. The \a signature will be normalized before it is -+ added to the class. -+ -+ \sa addMethod(), addSlot(), indexOfSignal() -+*/ -+QMetaMethodBuilder QMetaObjectBuilder::addSignal(const QByteArray& signature) -+{ -+ int index = d->methods.size(); -+ d->methods.append(QMetaMethodBuilderPrivate -+ (QMetaMethod::Signal, signature, QByteArray(), QMetaMethod::Protected)); -+ return QMetaMethodBuilder(this, index); -+} -+ -+/*! -+ Adds a new constructor to this class with the specified \a signature. -+ Returns an object that can be used to adjust the other attributes -+ of the constructor. The \a signature will be normalized before it is -+ added to the class. -+ -+ \sa constructor(), constructorCount(), removeConstructor() -+ \sa indexOfConstructor() -+*/ -+QMetaMethodBuilder QMetaObjectBuilder::addConstructor(const QByteArray& signature) -+{ -+ int index = d->constructors.size(); -+ d->constructors.append(QMetaMethodBuilderPrivate(QMetaMethod::Constructor, signature)); -+ return QMetaMethodBuilder(this, -(index + 1)); -+} -+ -+/*! -+ Adds a new constructor to this class that has the same information as -+ \a prototype. This is used to clone the constructors of an existing -+ QMetaObject. Returns an object that can be used to adjust the -+ attributes of the constructor. -+ -+ This function requires that \a prototype be a constructor. -+ -+ \sa constructor(), constructorCount(), removeConstructor() -+ \sa indexOfConstructor() -+*/ -+QMetaMethodBuilder QMetaObjectBuilder::addConstructor(const QMetaMethod& prototype) -+{ -+ Q_ASSERT(prototype.methodType() == QMetaMethod::Constructor); -+ QMetaMethodBuilder ctor = addConstructor(prototype.signature()); -+ ctor.setReturnType(prototype.typeName()); -+ ctor.setParameterNames(prototype.parameterNames()); -+ ctor.setTag(prototype.tag()); -+ ctor.setAccess(prototype.access()); -+ ctor.setAttributes(prototype.attributes()); -+ return ctor; -+} -+ -+/*! -+ Adds a new readable/writable property to this class with the -+ specified \a name and \a type. Returns an object that can be used -+ to adjust the other attributes of the property. The \a type will -+ be normalized before it is added to the class. \a notifierId will -+ be registered as the property's \e notify signal. -+ -+ \sa property(), propertyCount(), removeProperty(), indexOfProperty() -+*/ -+QMetaPropertyBuilder QMetaObjectBuilder::addProperty -+ (const QByteArray& name, const QByteArray& type, int notifierId) -+{ -+ int index = d->properties.size(); -+ d->properties.append(QMetaPropertyBuilderPrivate(name, type, notifierId)); -+ return QMetaPropertyBuilder(this, index); -+} -+ -+/*! -+ Adds a new property to this class that has the same information as -+ \a prototype. This is used to clone the properties of an existing -+ QMetaObject. Returns an object that can be used to adjust the -+ attributes of the property. -+ -+ \sa property(), propertyCount(), removeProperty(), indexOfProperty() -+*/ -+QMetaPropertyBuilder QMetaObjectBuilder::addProperty(const QMetaProperty& prototype) -+{ -+ QMetaPropertyBuilder property = addProperty(prototype.name(), prototype.typeName()); -+ property.setReadable(prototype.isReadable()); -+ property.setWritable(prototype.isWritable()); -+ property.setResettable(prototype.isResettable()); -+ property.setDesignable(prototype.isDesignable()); -+ property.setScriptable(prototype.isScriptable()); -+ property.setStored(prototype.isStored()); -+ property.setEditable(prototype.isEditable()); -+ property.setUser(prototype.isUser()); -+ property.setStdCppSet(prototype.hasStdCppSet()); -+ property.setEnumOrFlag(prototype.isEnumType()); -+ if (prototype.hasNotifySignal()) { -+ // Find an existing method for the notify signal, or add a new one. -+ QMetaMethod method = prototype.notifySignal(); -+ int index = indexOfMethod(method.signature()); -+ if (index == -1) -+ index = addMethod(method).index(); -+ d->properties[property._index].notifySignal = index; -+ d->properties[property._index].setFlag(Notify, true); -+ } -+ return property; -+} -+ -+/*! -+ Adds a new enumerator to this class with the specified -+ \a name. Returns an object that can be used to adjust -+ the other attributes of the enumerator. -+ -+ \sa enumerator(), enumeratorCount(), removeEnumerator(), -+ \sa indexOfEnumerator() -+*/ -+QMetaEnumBuilder QMetaObjectBuilder::addEnumerator(const QByteArray& name) -+{ -+ int index = d->enumerators.size(); -+ d->enumerators.append(QMetaEnumBuilderPrivate(name)); -+ return QMetaEnumBuilder(this, index); -+} -+ -+/*! -+ Adds a new enumerator to this class that has the same information as -+ \a prototype. This is used to clone the enumerators of an existing -+ QMetaObject. Returns an object that can be used to adjust the -+ attributes of the enumerator. -+ -+ \sa enumerator(), enumeratorCount(), removeEnumerator(), -+ \sa indexOfEnumerator() -+*/ -+QMetaEnumBuilder QMetaObjectBuilder::addEnumerator(const QMetaEnum& prototype) -+{ -+ QMetaEnumBuilder en = addEnumerator(prototype.name()); -+ en.setIsFlag(prototype.isFlag()); -+ int count = prototype.keyCount(); -+ for (int index = 0; index < count; ++index) -+ en.addKey(prototype.key(index), prototype.value(index)); -+ return en; -+} -+ -+/*! -+ Adds \a name and \a value as an item of class information to this class. -+ Returns the index of the new item of class information. -+ -+ \sa classInfoCount(), classInfoName(), classInfoValue(), removeClassInfo() -+ \sa indexOfClassInfo() -+*/ -+int QMetaObjectBuilder::addClassInfo(const QByteArray& name, const QByteArray& value) -+{ -+ int index = d->classInfoNames.size(); -+ d->classInfoNames += name; -+ d->classInfoValues += value; -+ return index; -+} -+ -+/*! -+ Adds \a meta to this class as a related meta object. Returns -+ the index of the new related meta object entry. -+ -+ Related meta objects are used when resolving the enumerated type -+ associated with a property, where the enumerated type is in a -+ different class from the property. -+ -+ \sa relatedMetaObjectCount(), relatedMetaObject() -+ \sa removeRelatedMetaObject() -+*/ -+#ifdef Q_NO_DATA_RELOCATION -+int QMetaObjectBuilder::addRelatedMetaObject(const QMetaObjectAccessor &meta) -+#else -+int QMetaObjectBuilder::addRelatedMetaObject(const QMetaObject *meta) -+#endif -+{ -+ Q_ASSERT(meta); -+ int index = d->relatedMetaObjects.size(); -+ d->relatedMetaObjects.append(meta); -+ return index; -+} -+ -+/*! -+ Adds the contents of \a prototype to this meta object builder. -+ This function is useful for cloning the contents of an existing QMetaObject. -+ -+ The \a members parameter indicates which members of \a prototype -+ should be added. The default is AllMembers. -+*/ -+void QMetaObjectBuilder::addMetaObject -+ (const QMetaObject *prototype, QMetaObjectBuilder::AddMembers members) -+{ -+ Q_ASSERT(prototype); -+ int index; -+ -+ if ((members & ClassName) != 0) -+ d->className = prototype->className(); -+ -+ if ((members & SuperClass) != 0) -+ d->superClass = prototype->superClass(); -+ -+ if ((members & (Methods | Signals | Slots)) != 0) { -+ for (index = prototype->methodOffset(); index < prototype->methodCount(); ++index) { -+ QMetaMethod method = prototype->method(index); -+ if (method.methodType() != QMetaMethod::Signal) { -+ if (method.access() == QMetaMethod::Public && (members & PublicMethods) == 0) -+ continue; -+ if (method.access() == QMetaMethod::Private && (members & PrivateMethods) == 0) -+ continue; -+ if (method.access() == QMetaMethod::Protected && (members & ProtectedMethods) == 0) -+ continue; -+ } -+ if (method.methodType() == QMetaMethod::Method && (members & Methods) != 0) { -+ addMethod(method); -+ } else if (method.methodType() == QMetaMethod::Signal && -+ (members & Signals) != 0) { -+ addMethod(method); -+ } else if (method.methodType() == QMetaMethod::Slot && -+ (members & Slots) != 0) { -+ addMethod(method); -+ } -+ } -+ } -+ -+ if ((members & Constructors) != 0) { -+ for (index = 0; index < prototype->constructorCount(); ++index) -+ addConstructor(prototype->constructor(index)); -+ } -+ -+ if ((members & Properties) != 0) { -+ for (index = prototype->propertyOffset(); index < prototype->propertyCount(); ++index) -+ addProperty(prototype->property(index)); -+ } -+ -+ if ((members & Enumerators) != 0) { -+ for (index = prototype->enumeratorOffset(); index < prototype->enumeratorCount(); ++index) -+ addEnumerator(prototype->enumerator(index)); -+ } -+ -+ if ((members & ClassInfos) != 0) { -+ for (index = prototype->classInfoOffset(); index < prototype->classInfoCount(); ++index) { -+ QMetaClassInfo ci = prototype->classInfo(index); -+ addClassInfo(ci.name(), ci.value()); -+ } -+ } -+ -+ if ((members & RelatedMetaObjects) != 0) { -+#ifdef Q_NO_DATA_RELOCATION -+ const QMetaObjectAccessor *objects = 0; -+#else -+ const QMetaObject **objects; -+ if (priv(prototype->d.data)->revision < 2) { -+ objects = (const QMetaObject **)(prototype->d.extradata); -+ } else -+#endif -+ { -+ const QMetaObjectExtraData *extra = (const QMetaObjectExtraData *)(prototype->d.extradata); -+ if (extra) -+ objects = extra->objects; -+ else -+ objects = 0; -+ } -+ if (objects) { -+ while (*objects != 0) { -+ addRelatedMetaObject(*objects); -+ ++objects; -+ } -+ } -+ } -+ -+ if ((members & StaticMetacall) != 0) { -+ if (priv(prototype->d.data)->revision >= 2) { -+ const QMetaObjectExtraData *extra = -+ (const QMetaObjectExtraData *)(prototype->d.extradata); -+ if (extra && extra->static_metacall) -+ setStaticMetacallFunction(extra->static_metacall); -+ } -+ } -+} -+ -+/*! -+ Returns the method at \a index in this class. -+ -+ \sa methodCount(), addMethod(), removeMethod(), indexOfMethod() -+*/ -+QMetaMethodBuilder QMetaObjectBuilder::method(int index) const -+{ -+ if (index >= 0 && index < d->methods.size()) -+ return QMetaMethodBuilder(this, index); -+ else -+ return QMetaMethodBuilder(); -+} -+ -+/*! -+ Returns the constructor at \a index in this class. -+ -+ \sa methodCount(), addMethod(), removeMethod(), indexOfConstructor() -+*/ -+QMetaMethodBuilder QMetaObjectBuilder::constructor(int index) const -+{ -+ if (index >= 0 && index < d->constructors.size()) -+ return QMetaMethodBuilder(this, -(index + 1)); -+ else -+ return QMetaMethodBuilder(); -+} -+ -+/*! -+ Returns the property at \a index in this class. -+ -+ \sa methodCount(), addMethod(), removeMethod(), indexOfProperty() -+*/ -+QMetaPropertyBuilder QMetaObjectBuilder::property(int index) const -+{ -+ if (index >= 0 && index < d->properties.size()) -+ return QMetaPropertyBuilder(this, index); -+ else -+ return QMetaPropertyBuilder(); -+} -+ -+/*! -+ Returns the enumerator at \a index in this class. -+ -+ \sa enumeratorCount(), addEnumerator(), removeEnumerator() -+ \sa indexOfEnumerator() -+*/ -+QMetaEnumBuilder QMetaObjectBuilder::enumerator(int index) const -+{ -+ if (index >= 0 && index < d->enumerators.size()) -+ return QMetaEnumBuilder(this, index); -+ else -+ return QMetaEnumBuilder(); -+} -+ -+/*! -+ Returns the related meta object at \a index in this class. -+ -+ Related meta objects are used when resolving the enumerated type -+ associated with a property, where the enumerated type is in a -+ different class from the property. -+ -+ \sa relatedMetaObjectCount(), addRelatedMetaObject() -+ \sa removeRelatedMetaObject() -+*/ -+const QMetaObject *QMetaObjectBuilder::relatedMetaObject(int index) const -+{ -+ if (index >= 0 && index < d->relatedMetaObjects.size()) -+#ifdef Q_NO_DATA_RELOCATION -+ return &((*(d->relatedMetaObjects[index]))()); -+#else -+ return d->relatedMetaObjects[index]; -+#endif -+ else -+ return 0; -+} -+ -+/*! -+ Returns the name of the item of class information at \a index -+ in this class. -+ -+ \sa classInfoCount(), addClassInfo(), classInfoValue(), removeClassInfo() -+ \sa indexOfClassInfo() -+*/ -+QByteArray QMetaObjectBuilder::classInfoName(int index) const -+{ -+ if (index >= 0 && index < d->classInfoNames.size()) -+ return d->classInfoNames[index]; -+ else -+ return QByteArray(); -+} -+ -+/*! -+ Returns the value of the item of class information at \a index -+ in this class. -+ -+ \sa classInfoCount(), addClassInfo(), classInfoName(), removeClassInfo() -+ \sa indexOfClassInfo() -+*/ -+QByteArray QMetaObjectBuilder::classInfoValue(int index) const -+{ -+ if (index >= 0 && index < d->classInfoValues.size()) -+ return d->classInfoValues[index]; -+ else -+ return QByteArray(); -+} -+ -+/*! -+ Removes the method at \a index from this class. The indices of -+ all following methods will be adjusted downwards by 1. If the -+ method is registered as a notify signal on a property, then the -+ notify signal will be removed from the property. -+ -+ \sa methodCount(), addMethod(), method(), indexOfMethod() -+*/ -+void QMetaObjectBuilder::removeMethod(int index) -+{ -+ if (index >= 0 && index < d->methods.size()) { -+ d->methods.removeAt(index); -+ for (int prop = 0; prop < d->properties.size(); ++prop) { -+ // Adjust the indices of property notify signal references. -+ if (d->properties[prop].notifySignal == index) { -+ d->properties[prop].notifySignal = -1; -+ d->properties[prop].setFlag(Notify, false); -+ } else if (d->properties[prop].notifySignal > index) -+ (d->properties[prop].notifySignal)--; -+ } -+ } -+} -+ -+/*! -+ Removes the constructor at \a index from this class. The indices of -+ all following constructors will be adjusted downwards by 1. -+ -+ \sa constructorCount(), addConstructor(), constructor() -+ \sa indexOfConstructor() -+*/ -+void QMetaObjectBuilder::removeConstructor(int index) -+{ -+ if (index >= 0 && index < d->constructors.size()) -+ d->constructors.removeAt(index); -+} -+ -+/*! -+ Removes the property at \a index from this class. The indices of -+ all following properties will be adjusted downwards by 1. -+ -+ \sa propertyCount(), addProperty(), property(), indexOfProperty() -+*/ -+void QMetaObjectBuilder::removeProperty(int index) -+{ -+ if (index >= 0 && index < d->properties.size()) -+ d->properties.removeAt(index); -+} -+ -+/*! -+ Removes the enumerator at \a index from this class. The indices of -+ all following enumerators will be adjusted downwards by 1. -+ -+ \sa enumertorCount(), addEnumerator(), enumerator() -+ \sa indexOfEnumerator() -+*/ -+void QMetaObjectBuilder::removeEnumerator(int index) -+{ -+ if (index >= 0 && index < d->enumerators.size()) -+ d->enumerators.removeAt(index); -+} -+ -+/*! -+ Removes the item of class information at \a index from this class. -+ The indices of all following items will be adjusted downwards by 1. -+ -+ \sa classInfoCount(), addClassInfo(), classInfoName(), classInfoValue() -+ \sa indexOfClassInfo() -+*/ -+void QMetaObjectBuilder::removeClassInfo(int index) -+{ -+ if (index >= 0 && index < d->classInfoNames.size()) { -+ d->classInfoNames.removeAt(index); -+ d->classInfoValues.removeAt(index); -+ } -+} -+ -+/*! -+ Removes the related meta object at \a index from this class. -+ The indices of all following related meta objects will be adjusted -+ downwards by 1. -+ -+ Related meta objects are used when resolving the enumerated type -+ associated with a property, where the enumerated type is in a -+ different class from the property. -+ -+ \sa relatedMetaObjectCount(), addRelatedMetaObject() -+ \sa relatedMetaObject() -+*/ -+void QMetaObjectBuilder::removeRelatedMetaObject(int index) -+{ -+ if (index >= 0 && index < d->relatedMetaObjects.size()) -+ d->relatedMetaObjects.removeAt(index); -+} -+ -+/*! -+ Finds a method with the specified \a signature and returns its index; -+ otherwise returns -1. The \a signature will be normalized by this method. -+ -+ \sa method(), methodCount(), addMethod(), removeMethod() -+*/ -+int QMetaObjectBuilder::indexOfMethod(const QByteArray& signature) -+{ -+ QByteArray sig = QMetaObject::normalizedSignature(signature); -+ for (int index = 0; index < d->methods.size(); ++index) { -+ if (sig == d->methods[index].signature) -+ return index; -+ } -+ return -1; -+} -+ -+/*! -+ Finds a signal with the specified \a signature and returns its index; -+ otherwise returns -1. The \a signature will be normalized by this method. -+ -+ \sa indexOfMethod(), indexOfSlot() -+*/ -+int QMetaObjectBuilder::indexOfSignal(const QByteArray& signature) -+{ -+ QByteArray sig = QMetaObject::normalizedSignature(signature); -+ for (int index = 0; index < d->methods.size(); ++index) { -+ if (sig == d->methods[index].signature && -+ d->methods[index].methodType() == QMetaMethod::Signal) -+ return index; -+ } -+ return -1; -+} -+ -+/*! -+ Finds a slot with the specified \a signature and returns its index; -+ otherwise returns -1. The \a signature will be normalized by this method. -+ -+ \sa indexOfMethod(), indexOfSignal() -+*/ -+int QMetaObjectBuilder::indexOfSlot(const QByteArray& signature) -+{ -+ QByteArray sig = QMetaObject::normalizedSignature(signature); -+ for (int index = 0; index < d->methods.size(); ++index) { -+ if (sig == d->methods[index].signature && -+ d->methods[index].methodType() == QMetaMethod::Slot) -+ return index; -+ } -+ return -1; -+} -+ -+/*! -+ Finds a constructor with the specified \a signature and returns its index; -+ otherwise returns -1. The \a signature will be normalized by this method. -+ -+ \sa constructor(), constructorCount(), addConstructor(), removeConstructor() -+*/ -+int QMetaObjectBuilder::indexOfConstructor(const QByteArray& signature) -+{ -+ QByteArray sig = QMetaObject::normalizedSignature(signature); -+ for (int index = 0; index < d->constructors.size(); ++index) { -+ if (sig == d->constructors[index].signature) -+ return index; -+ } -+ return -1; -+} -+ -+/*! -+ Finds a property with the specified \a name and returns its index; -+ otherwise returns -1. -+ -+ \sa property(), propertyCount(), addProperty(), removeProperty() -+*/ -+int QMetaObjectBuilder::indexOfProperty(const QByteArray& name) -+{ -+ for (int index = 0; index < d->properties.size(); ++index) { -+ if (name == d->properties[index].name) -+ return index; -+ } -+ return -1; -+} -+ -+/*! -+ Finds an enumerator with the specified \a name and returns its index; -+ otherwise returns -1. -+ -+ \sa enumertor(), enumeratorCount(), addEnumerator(), removeEnumerator() -+*/ -+int QMetaObjectBuilder::indexOfEnumerator(const QByteArray& name) -+{ -+ for (int index = 0; index < d->enumerators.size(); ++index) { -+ if (name == d->enumerators[index].name) -+ return index; -+ } -+ return -1; -+} -+ -+/*! -+ Finds an item of class information with the specified \a name and -+ returns its index; otherwise returns -1. -+ -+ \sa classInfoName(), classInfoValue(), classInfoCount(), addClassInfo() -+ \sa removeClassInfo() -+*/ -+int QMetaObjectBuilder::indexOfClassInfo(const QByteArray& name) -+{ -+ for (int index = 0; index < d->classInfoNames.size(); ++index) { -+ if (name == d->classInfoNames[index]) -+ return index; -+ } -+ return -1; -+} -+ -+// Align on a specific type boundary. -+#define ALIGN(size,type) \ -+ (size) = ((size) + sizeof(type) - 1) & ~(sizeof(type) - 1) -+ -+// Build a string into a QMetaObject representation. Returns the -+// position in the string table where the string was placed. -+static int buildString -+ (char *buf, char *str, int *offset, const QByteArray& value, int empty) -+{ -+ if (value.size() == 0 && empty >= 0) -+ return empty; -+ if (buf) { -+ memcpy(str + *offset, value.constData(), value.size()); -+ str[*offset + value.size()] = '\0'; -+ } -+ int posn = *offset; -+ *offset += value.size() + 1; -+ return posn; -+} -+ -+// Build the parameter array string for a method. -+static QByteArray buildParameterNames -+ (const QByteArray& signature, const QList& parameterNames) -+{ -+ // If the parameter name list is specified, then concatenate them. -+ if (!parameterNames.isEmpty()) { -+ QByteArray names; -+ bool first = true; -+ foreach (const QByteArray &name, parameterNames) { -+ if (first) -+ first = false; -+ else -+ names += (char)','; -+ names += name; -+ } -+ return names; -+ } -+ -+ // Count commas in the signature, excluding those inside template arguments. -+ int index = signature.indexOf('('); -+ if (index < 0) -+ return QByteArray(); -+ ++index; -+ if (index >= signature.size()) -+ return QByteArray(); -+ if (signature[index] == ')') -+ return QByteArray(); -+ int count = 1; -+ int brackets = 0; -+ while (index < signature.size() && signature[index] != ',') { -+ char ch = signature[index++]; -+ if (ch == '<') -+ ++brackets; -+ else if (ch == '>') -+ --brackets; -+ else if (ch == ',' && brackets <= 0) -+ ++count; -+ } -+ return QByteArray(count - 1, ','); -+} -+ -+// Build a QMetaObject in "buf" based on the information in "d". -+// If "buf" is null, then return the number of bytes needed to -+// build the QMetaObject. Returns -1 if the metaobject if -+// relocatable is set, but the metaobject contains extradata. -+static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf, -+ bool relocatable) -+{ -+ int size = 0; -+ int dataIndex; -+ int enumIndex; -+ int index; -+ bool hasNotifySignals = false; -+ -+ if (relocatable && -+ (d->relatedMetaObjects.size() > 0 || d->staticMetacallFunction)) -+ return -1; -+ -+ // Create the main QMetaObject structure at the start of the buffer. -+ QMetaObject *meta = reinterpret_cast(buf); -+ size += sizeof(QMetaObject); -+ ALIGN(size, int); -+ if (buf) { -+ if (!relocatable) meta->d.superdata = d->superClass; -+ meta->d.extradata = 0; -+ } -+ -+ // Populate the QMetaObjectPrivate structure. -+ QMetaObjectPrivate *pmeta -+ = reinterpret_cast(buf + size); -+ int pmetaSize = size; -+ dataIndex = 13; // Number of fields in the QMetaObjectPrivate. -+ for (index = 0; index < d->properties.size(); ++index) { -+ if (d->properties[index].notifySignal != -1) { -+ hasNotifySignals = true; -+ break; -+ } -+ } -+ if (buf) { -+ pmeta->revision = 3; -+ pmeta->flags = d->flags; -+ pmeta->className = 0; // Class name is always the first string. -+ -+ pmeta->classInfoCount = d->classInfoNames.size(); -+ pmeta->classInfoData = dataIndex; -+ dataIndex += 2 * d->classInfoNames.size(); -+ -+ pmeta->methodCount = d->methods.size(); -+ pmeta->methodData = dataIndex; -+ dataIndex += 5 * d->methods.size(); -+ -+ pmeta->propertyCount = d->properties.size(); -+ pmeta->propertyData = dataIndex; -+ dataIndex += 3 * d->properties.size(); -+ if (hasNotifySignals) -+ dataIndex += d->properties.size(); -+ -+ pmeta->enumeratorCount = d->enumerators.size(); -+ pmeta->enumeratorData = dataIndex; -+ dataIndex += 4 * d->enumerators.size(); -+ -+ pmeta->constructorCount = d->constructors.size(); -+ pmeta->constructorData = dataIndex; -+ dataIndex += 5 * d->constructors.size(); -+ } else { -+ dataIndex += 2 * d->classInfoNames.size(); -+ dataIndex += 5 * d->methods.size(); -+ dataIndex += 3 * d->properties.size(); -+ if (hasNotifySignals) -+ dataIndex += d->properties.size(); -+ dataIndex += 4 * d->enumerators.size(); -+ dataIndex += 5 * d->constructors.size(); -+ } -+ -+ // Allocate space for the enumerator key names and values. -+ enumIndex = dataIndex; -+ for (index = 0; index < d->enumerators.size(); ++index) { -+ QMetaEnumBuilderPrivate *enumerator = &(d->enumerators[index]); -+ dataIndex += 2 * enumerator->keys.size(); -+ } -+ -+ // Zero terminator at the end of the data offset table. -+ ++dataIndex; -+ -+ // Find the start of the data and string tables. -+ int *data = reinterpret_cast(pmeta); -+ size += dataIndex * sizeof(int); -+ char *str = reinterpret_cast(buf + size); -+ if (buf) { -+ if (relocatable) { -+ meta->d.stringdata = reinterpret_cast((intptr_t)size); -+ meta->d.data = reinterpret_cast((intptr_t)pmetaSize); -+ } else { -+ meta->d.stringdata = str; -+ meta->d.data = reinterpret_cast(data); -+ } -+ } -+ -+ // Reset the current data position to just past the QMetaObjectPrivate. -+ dataIndex = 13; -+ -+ // Add the class name to the string table. -+ int offset = 0; -+ buildString(buf, str, &offset, d->className, -1); -+ -+ // Add a common empty string, which is used to indicate "void" -+ // method returns, empty tag strings, etc. -+ int empty = buildString(buf, str, &offset, QByteArray(), -1); -+ -+ // Output the class infos, -+ for (index = 0; index < d->classInfoNames.size(); ++index) { -+ int name = buildString(buf, str, &offset, d->classInfoNames[index], empty); -+ int value = buildString(buf, str, &offset, d->classInfoValues[index], empty); -+ if (buf) { -+ data[dataIndex] = name; -+ data[dataIndex + 1] = value; -+ } -+ dataIndex += 2; -+ } -+ -+ // Output the methods in the class. -+ for (index = 0; index < d->methods.size(); ++index) { -+ QMetaMethodBuilderPrivate *method = &(d->methods[index]); -+ int sig = buildString(buf, str, &offset, method->signature, empty); -+ int params; -+ QByteArray names = buildParameterNames -+ (method->signature, method->parameterNames); -+ params = buildString(buf, str, &offset, names, empty); -+ int ret = buildString(buf, str, &offset, method->returnType, empty); -+ int tag = buildString(buf, str, &offset, method->tag, empty); -+ int attrs = method->attributes; -+ if (buf) { -+ data[dataIndex] = sig; -+ data[dataIndex + 1] = params; -+ data[dataIndex + 2] = ret; -+ data[dataIndex + 3] = tag; -+ data[dataIndex + 4] = attrs; -+ } -+ dataIndex += 5; -+ } -+ -+ // Output the properties in the class. -+ for (index = 0; index < d->properties.size(); ++index) { -+ QMetaPropertyBuilderPrivate *prop = &(d->properties[index]); -+ int name = buildString(buf, str, &offset, prop->name, empty); -+ int type = buildString(buf, str, &offset, prop->type, empty); -+ int flags = prop->flags; -+ -+ if (!isVariantType(prop->type)) { -+ flags |= EnumOrFlag; -+ } else { -+ flags |= qvariant_nameToType(prop->type) << 24; -+ } -+ -+ if (buf) { -+ data[dataIndex] = name; -+ data[dataIndex + 1] = type; -+ data[dataIndex + 2] = flags; -+ } -+ dataIndex += 3; -+ } -+ if (hasNotifySignals) { -+ for (index = 0; index < d->properties.size(); ++index) { -+ QMetaPropertyBuilderPrivate *prop = &(d->properties[index]); -+ if (buf) { -+ if (prop->notifySignal != -1) -+ data[dataIndex] = prop->notifySignal; -+ else -+ data[dataIndex] = 0; -+ } -+ ++dataIndex; -+ } -+ } -+ -+ // Output the enumerators in the class. -+ for (index = 0; index < d->enumerators.size(); ++index) { -+ QMetaEnumBuilderPrivate *enumerator = &(d->enumerators[index]); -+ int name = buildString(buf, str, &offset, enumerator->name, empty); -+ int isFlag = (int)(enumerator->isFlag); -+ int count = enumerator->keys.size(); -+ int enumOffset = enumIndex; -+ if (buf) { -+ data[dataIndex] = name; -+ data[dataIndex + 1] = isFlag; -+ data[dataIndex + 2] = count; -+ data[dataIndex + 3] = enumOffset; -+ } -+ for (int key = 0; key < count; ++key) { -+ int keyIndex = buildString(buf, str, &offset, enumerator->keys[key], empty); -+ if (buf) { -+ data[enumOffset++] = keyIndex; -+ data[enumOffset++] = enumerator->values[key]; -+ } -+ } -+ dataIndex += 4; -+ enumIndex += 2 * count; -+ } -+ -+ // Output the constructors in the class. -+ for (index = 0; index < d->constructors.size(); ++index) { -+ QMetaMethodBuilderPrivate *method = &(d->constructors[index]); -+ int sig = buildString(buf, str, &offset, method->signature, empty); -+ int params; -+ QByteArray names = buildParameterNames -+ (method->signature, method->parameterNames); -+ params = buildString(buf, str, &offset, names, empty); -+ int ret = buildString(buf, str, &offset, method->returnType, empty); -+ int tag = buildString(buf, str, &offset, method->tag, empty); -+ int attrs = method->attributes; -+ if (buf) { -+ data[dataIndex] = sig; -+ data[dataIndex + 1] = params; -+ data[dataIndex + 2] = ret; -+ data[dataIndex + 3] = tag; -+ data[dataIndex + 4] = attrs; -+ } -+ dataIndex += 5; -+ } -+ -+ // One more empty string to act as a terminator. -+ buildString(buf, str, &offset, QByteArray(), -1); -+ size += offset; -+ -+ // Output the zero terminator in the data array. -+ if (buf) -+ data[enumIndex] = 0; -+ -+ // Create the extradata block if we need one. -+ if (d->relatedMetaObjects.size() > 0 || d->staticMetacallFunction) { -+ ALIGN(size, QMetaObject **); -+ ALIGN(size, QMetaObjectBuilder::StaticMetacallFunction); -+ QMetaObjectExtraData *extra = -+ reinterpret_cast(buf + size); -+ size += sizeof(QMetaObjectExtraData); -+ ALIGN(size, QMetaObject *); -+#ifdef Q_NO_DATA_RELOCATION -+ QMetaObjectAccessor *objects = -+ reinterpret_cast(buf + size); -+#else -+ const QMetaObject **objects = -+ reinterpret_cast(buf + size); -+#endif -+ if (buf) { -+ if (d->relatedMetaObjects.size() > 0) { -+ extra->objects = objects; -+ for (index = 0; index < d->relatedMetaObjects.size(); ++index) -+ objects[index] = d->relatedMetaObjects[index]; -+ objects[index] = 0; -+ } else { -+ extra->objects = 0; -+ } -+ extra->static_metacall = d->staticMetacallFunction; -+ meta->d.extradata = reinterpret_cast(extra); -+ } -+ if (d->relatedMetaObjects.size() > 0) -+ size += sizeof(QMetaObject *) * (d->relatedMetaObjects.size() + 1); -+ } -+ -+ // Align the final size and return it. -+ ALIGN(size, void *); -+ return size; -+} -+ -+/*! -+ Converts this meta object builder into a concrete QMetaObject. -+ The return value should be deallocated using qFree() once it -+ is no longer needed. -+ -+ The returned meta object is a snapshot of the state of the -+ QMetaObjectBuilder. Any further modifications to the QMetaObjectBuilder -+ will not be reflected in previous meta objects returned by -+ this method. -+*/ -+QMetaObject *QMetaObjectBuilder::toMetaObject() const -+{ -+ int size = buildMetaObject(d, 0, false); -+ char *buf = reinterpret_cast(qMalloc(size)); -+ buildMetaObject(d, buf, false); -+ return reinterpret_cast(buf); -+} -+ -+/* -+ \internal -+ -+ Converts this meta object builder into relocatable data. This data can -+ be stored, copied and later passed to fromRelocatableData() to create a -+ concrete QMetaObject. -+ -+ The data is specific to the architecture on which it was created, but is not -+ specific to the process that created it. Not all meta object builder's can -+ be converted to data in this way. If \a ok is provided, it will be set to -+ true if the conversion succeeds, and false otherwise. If a -+ staticMetacallFunction() or any relatedMetaObject()'s are specified the -+ conversion to relocatable data will fail. -+*/ -+QByteArray QMetaObjectBuilder::toRelocatableData(bool *ok) const -+{ -+ int size = buildMetaObject(d, 0, true); -+ if (size == -1) { -+ if (ok) *ok = false; -+ return QByteArray(); -+ } -+ -+ QByteArray data; -+ data.resize(size); -+ char *buf = data.data(); -+ buildMetaObject(d, buf, true); -+ if (ok) *ok = true; -+ return data; -+} -+ -+/* -+ \internal -+ -+ Sets the \a data returned from toRelocatableData() onto a concrete -+ QMetaObject instance, \a output. As the meta object's super class is not -+ saved in the relocatable data, it must be passed as \a superClass. -+*/ -+void QMetaObjectBuilder::fromRelocatableData(QMetaObject *output, -+ const QMetaObject *superclass, -+ const QByteArray &data) -+{ -+ if (!output) -+ return; -+ -+ const char *buf = data.constData(); -+ const QMetaObject *dataMo = reinterpret_cast(buf); -+ -+ intptr_t stringdataOffset = (intptr_t)dataMo->d.stringdata; -+ intptr_t dataOffset = (intptr_t)dataMo->d.data; -+ -+ output->d.superdata = superclass; -+ output->d.stringdata = buf + stringdataOffset; -+ output->d.data = reinterpret_cast(buf + dataOffset); -+} -+ -+/*! -+ \typedef QMetaObjectBuilder::StaticMetacallFunction -+ -+ Typedef for static metacall functions. The three parameters are -+ the call type value, the constructor index, and the -+ array of parameters. -+*/ -+ -+/*! -+ Returns the static metacall function to use to construct objects -+ of this class. The default value is null. -+ -+ \sa setStaticMetacallFunction() -+*/ -+QMetaObjectBuilder::StaticMetacallFunction QMetaObjectBuilder::staticMetacallFunction() const -+{ -+ return d->staticMetacallFunction; -+} -+ -+/*! -+ Sets the static metacall function to use to construct objects -+ of this class to \a value. The default value is null. -+ -+ \sa staticMetacallFunction() -+*/ -+void QMetaObjectBuilder::setStaticMetacallFunction -+ (QMetaObjectBuilder::StaticMetacallFunction value) -+{ -+ d->staticMetacallFunction = value; -+} -+ -+#ifndef QT_NO_DATASTREAM -+ -+/*! -+ Serializes the contents of the meta object builder onto \a stream. -+ -+ \sa deserialize() -+*/ -+void QMetaObjectBuilder::serialize(QDataStream& stream) const -+{ -+ int index; -+ -+ // Write the class and super class names. -+ stream << d->className; -+ if (d->superClass) -+ stream << QByteArray(d->superClass->className()); -+ else -+ stream << QByteArray(); -+ -+ // Write the counts for each type of class member. -+ stream << d->classInfoNames.size(); -+ stream << d->methods.size(); -+ stream << d->properties.size(); -+ stream << d->enumerators.size(); -+ stream << d->constructors.size(); -+ stream << d->relatedMetaObjects.size(); -+ -+ // Write the items of class information. -+ for (index = 0; index < d->classInfoNames.size(); ++index) { -+ stream << d->classInfoNames[index]; -+ stream << d->classInfoValues[index]; -+ } -+ -+ // Write the methods. -+ for (index = 0; index < d->methods.size(); ++index) { -+ const QMetaMethodBuilderPrivate *method = &(d->methods[index]); -+ stream << method->signature; -+ stream << method->returnType; -+ stream << method->parameterNames; -+ stream << method->tag; -+ stream << method->attributes; -+ } -+ -+ // Write the properties. -+ for (index = 0; index < d->properties.size(); ++index) { -+ const QMetaPropertyBuilderPrivate *property = &(d->properties[index]); -+ stream << property->name; -+ stream << property->type; -+ stream << property->flags; -+ stream << property->notifySignal; -+ } -+ -+ // Write the enumerators. -+ for (index = 0; index < d->enumerators.size(); ++index) { -+ const QMetaEnumBuilderPrivate *enumerator = &(d->enumerators[index]); -+ stream << enumerator->name; -+ stream << enumerator->isFlag; -+ stream << enumerator->keys; -+ stream << enumerator->values; -+ } -+ -+ // Write the constructors. -+ for (index = 0; index < d->constructors.size(); ++index) { -+ const QMetaMethodBuilderPrivate *method = &(d->constructors[index]); -+ stream << method->signature; -+ stream << method->returnType; -+ stream << method->parameterNames; -+ stream << method->tag; -+ stream << method->attributes; -+ } -+ -+ // Write the related meta objects. -+#ifdef Q_NO_DATA_RELOCATION -+ //the related meta objects will be function pointers -+ //which you have to add to the builder manually. -+ //e.g. -+ //builder2.addRelatedMetaObject(QLocale::getStaticMetaObject); -+#else -+ for (index = 0; index < d->relatedMetaObjects.size(); ++index) { -+ const QMetaObject *meta = d->relatedMetaObjects[index]; -+ stream << QByteArray(meta->className()); -+ } -+#endif -+ -+ // Add an extra empty QByteArray for additional data in future versions. -+ // This should help maintain backwards compatibility, allowing older -+ // versions to read newer data. -+ stream << QByteArray(); -+} -+ -+// Resolve a class name using the name reference map. -+static const QMetaObject *resolveClassName -+ (const QMap& references, -+ const QByteArray& name) -+{ -+ if (name == QByteArray("QObject")) -+ return &QObject::staticMetaObject; -+ else -+ return references.value(name, 0); -+} -+ -+/*! -+ Deserializes a meta object builder from \a stream into -+ this meta object builder. -+ -+ The \a references parameter specifies a mapping from class names -+ to QMetaObject instances for resolving the super class name and -+ related meta objects in the object that is deserialized. -+ The meta object for QObject is implicitly added to \a references -+ and does not need to be supplied. -+ -+ The QDataStream::status() value on \a stream will be set to -+ QDataStream::ReadCorruptData if the input data is corrupt. -+ The status will be set to QDataStream::ReadPastEnd if the -+ input was exhausted before the full meta object was read. -+ -+ \sa serialize() -+*/ -+void QMetaObjectBuilder::deserialize -+ (QDataStream& stream, -+ const QMap& references) -+{ -+ QByteArray name; -+ const QMetaObject *cl; -+ int index; -+ -+ // Clear all members in the builder to their default states. -+ d->className.clear(); -+ d->superClass = &QObject::staticMetaObject; -+ d->classInfoNames.clear(); -+ d->classInfoValues.clear(); -+ d->methods.clear(); -+ d->properties.clear(); -+ d->enumerators.clear(); -+ d->constructors.clear(); -+ d->relatedMetaObjects.clear(); -+ d->staticMetacallFunction = 0; -+ -+ // Read the class and super class names. -+ stream >> d->className; -+ stream >> name; -+ if (name.isEmpty()) { -+ d->superClass = 0; -+ } else if ((cl = resolveClassName(references, name)) != 0) { -+ d->superClass = cl; -+ } else { -+ stream.setStatus(QDataStream::ReadCorruptData); -+ return; -+ } -+ -+ // Read the counts for each type of class member. -+ int classInfoCount, methodCount, propertyCount; -+ int enumeratorCount, constructorCount, relatedMetaObjectCount; -+ stream >> classInfoCount; -+ stream >> methodCount; -+ stream >> propertyCount; -+ stream >> enumeratorCount; -+ stream >> constructorCount; -+ stream >> relatedMetaObjectCount; -+ if (classInfoCount < 0 || methodCount < 0 || -+ propertyCount < 0 || enumeratorCount < 0 || -+ constructorCount < 0 || relatedMetaObjectCount < 0) { -+ stream.setStatus(QDataStream::ReadCorruptData); -+ return; -+ } -+ -+ // Read the items of class information. -+ for (index = 0; index < classInfoCount; ++index) { -+ if (stream.status() != QDataStream::Ok) -+ return; -+ QByteArray value; -+ stream >> name; -+ stream >> value; -+ addClassInfo(name, value); -+ } -+ -+ // Read the member methods. -+ for (index = 0; index < methodCount; ++index) { -+ if (stream.status() != QDataStream::Ok) -+ return; -+ stream >> name; -+ addMethod(name); -+ QMetaMethodBuilderPrivate *method = &(d->methods[index]); -+ stream >> method->returnType; -+ stream >> method->parameterNames; -+ stream >> method->tag; -+ stream >> method->attributes; -+ if (method->methodType() == QMetaMethod::Constructor) { -+ // Cannot add a constructor in this set of methods. -+ stream.setStatus(QDataStream::ReadCorruptData); -+ return; -+ } -+ } -+ -+ // Read the properties. -+ for (index = 0; index < propertyCount; ++index) { -+ if (stream.status() != QDataStream::Ok) -+ return; -+ QByteArray type; -+ stream >> name; -+ stream >> type; -+ addProperty(name, type); -+ QMetaPropertyBuilderPrivate *property = &(d->properties[index]); -+ stream >> property->flags; -+ stream >> property->notifySignal; -+ if (property->notifySignal < -1 || -+ property->notifySignal >= d->methods.size()) { -+ // Notify signal method index is out of range. -+ stream.setStatus(QDataStream::ReadCorruptData); -+ return; -+ } -+ if (property->notifySignal >= 0 && -+ d->methods[property->notifySignal].methodType() != QMetaMethod::Signal) { -+ // Notify signal method index does not refer to a signal. -+ stream.setStatus(QDataStream::ReadCorruptData); -+ return; -+ } -+ } -+ -+ // Read the enumerators. -+ for (index = 0; index < enumeratorCount; ++index) { -+ if (stream.status() != QDataStream::Ok) -+ return; -+ stream >> name; -+ addEnumerator(name); -+ QMetaEnumBuilderPrivate *enumerator = &(d->enumerators[index]); -+ stream >> enumerator->isFlag; -+ stream >> enumerator->keys; -+ stream >> enumerator->values; -+ if (enumerator->keys.size() != enumerator->values.size()) { -+ // Mismatch between number of keys and number of values. -+ stream.setStatus(QDataStream::ReadCorruptData); -+ return; -+ } -+ } -+ -+ // Read the constructor methods. -+ for (index = 0; index < constructorCount; ++index) { -+ if (stream.status() != QDataStream::Ok) -+ return; -+ stream >> name; -+ addConstructor(name); -+ QMetaMethodBuilderPrivate *method = &(d->constructors[index]); -+ stream >> method->returnType; -+ stream >> method->parameterNames; -+ stream >> method->tag; -+ stream >> method->attributes; -+ if (method->methodType() != QMetaMethod::Constructor) { -+ // The type must be Constructor. -+ stream.setStatus(QDataStream::ReadCorruptData); -+ return; -+ } -+ } -+ -+ // Read the related meta objects. -+#ifdef Q_NO_DATA_RELOCATION -+ //the related meta objects will be function pointers -+ //which you have to add to the builder manually. -+ //e.g. -+ //builder2.addRelatedMetaObject(QLocale::getStaticMetaObject); -+#else -+ for (index = 0; index < relatedMetaObjectCount; ++index) { -+ if (stream.status() != QDataStream::Ok) -+ return; -+ stream >> name; -+ cl = resolveClassName(references, name); -+ if (!cl) { -+ stream.setStatus(QDataStream::ReadCorruptData); -+ return; -+ } -+ addRelatedMetaObject(cl); -+ } -+#endif -+ -+ // Read the extra data block, which is reserved for future use. -+ stream >> name; -+} -+ -+#endif // !QT_NO_DATASTREAM -+ -+/*! -+ \class QMetaMethodBuilder -+ \internal -+ \brief The QMetaMethodBuilder class enables modifications to a method definition on a meta object builder. -+*/ -+ -+QMetaMethodBuilderPrivate *QMetaMethodBuilder::d_func() const -+{ -+ // Positive indices indicate methods, negative indices indicate constructors. -+ if (_mobj && _index >= 0 && _index < _mobj->d->methods.size()) -+ return &(_mobj->d->methods[_index]); -+ else if (_mobj && -_index >= 1 && -_index <= _mobj->d->constructors.size()) -+ return &(_mobj->d->constructors[(-_index) - 1]); -+ else -+ return 0; -+} -+ -+/*! -+ \fn QMetaMethodBuilder::QMetaMethodBuilder() -+ \internal -+*/ -+ -+/*! -+ Returns the index of this method within its QMetaObjectBuilder. -+*/ -+int QMetaMethodBuilder::index() const -+{ -+ if (_index >= 0) -+ return _index; // Method, signal, or slot -+ else -+ return (-_index) - 1; // Constructor -+} -+ -+/*! -+ Returns the type of this method (signal, slot, method, or constructor). -+*/ -+QMetaMethod::MethodType QMetaMethodBuilder::methodType() const -+{ -+ QMetaMethodBuilderPrivate *d = d_func(); -+ if (d) -+ return d->methodType(); -+ else -+ return QMetaMethod::Method; -+} -+ -+/*! -+ Returns the signature of this method. -+ -+ \sa parameterNames(), returnType() -+*/ -+QByteArray QMetaMethodBuilder::signature() const -+{ -+ QMetaMethodBuilderPrivate *d = d_func(); -+ if (d) -+ return d->signature; -+ else -+ return QByteArray(); -+} -+ -+/*! -+ Returns the return type for this method; empty if the method's -+ return type is \c{void}. -+ -+ \sa setReturnType(), signature() -+*/ -+QByteArray QMetaMethodBuilder::returnType() const -+{ -+ QMetaMethodBuilderPrivate *d = d_func(); -+ if (d) -+ return d->returnType; -+ else -+ return QByteArray(); -+} -+ -+/*! -+ Sets the return type for this method to \a value. If \a value -+ is empty, then the method's return type is \c{void}. The \a value -+ will be normalized before it is added to the method. -+ -+ \sa returnType(), signature() -+*/ -+void QMetaMethodBuilder::setReturnType(const QByteArray& value) -+{ -+ QMetaMethodBuilderPrivate *d = d_func(); -+ if (d) -+ d->returnType = QMetaObject::normalizedType(value); -+} -+ -+/*! -+ Returns the list of parameter names for this method. -+ -+ \sa setParameterNames() -+*/ -+QList QMetaMethodBuilder::parameterNames() const -+{ -+ QMetaMethodBuilderPrivate *d = d_func(); -+ if (d) -+ return d->parameterNames; -+ else -+ return QList(); -+} -+ -+/*! -+ Sets the list of parameter names for this method to \a value. -+ -+ \sa parameterNames() -+*/ -+void QMetaMethodBuilder::setParameterNames(const QList& value) -+{ -+ QMetaMethodBuilderPrivate *d = d_func(); -+ if (d) -+ d->parameterNames = value; -+} -+ -+/*! -+ Returns the tag associated with this method. -+ -+ \sa setTag() -+*/ -+QByteArray QMetaMethodBuilder::tag() const -+{ -+ QMetaMethodBuilderPrivate *d = d_func(); -+ if (d) -+ return d->tag; -+ else -+ return QByteArray(); -+} -+ -+/*! -+ Sets the tag associated with this method to \a value. -+ -+ \sa setTag() -+*/ -+void QMetaMethodBuilder::setTag(const QByteArray& value) -+{ -+ QMetaMethodBuilderPrivate *d = d_func(); -+ if (d) -+ d->tag = value; -+} -+ -+/*! -+ Returns the access specification of this method (private, protected, -+ or public). The default value is QMetaMethod::Public for methods, -+ slots, and constructors. The default value is QMetaMethod::Protected -+ for signals. -+ -+ \sa setAccess() -+*/ -+QMetaMethod::Access QMetaMethodBuilder::access() const -+{ -+ QMetaMethodBuilderPrivate *d = d_func(); -+ if (d) -+ return d->access(); -+ else -+ return QMetaMethod::Public; -+} -+ -+/*! -+ Sets the access specification of this method (private, protected, -+ or public) to \a value. If the method is a signal, this function -+ will be ignored. -+ -+ \sa access() -+*/ -+void QMetaMethodBuilder::setAccess(QMetaMethod::Access value) -+{ -+ QMetaMethodBuilderPrivate *d = d_func(); -+ if (d && d->methodType() != QMetaMethod::Signal) -+ d->setAccess(value); -+} -+ -+/*! -+ Returns the additional attributes for this method. -+ -+ \sa setAttributes() -+*/ -+int QMetaMethodBuilder::attributes() const -+{ -+ QMetaMethodBuilderPrivate *d = d_func(); -+ if (d) -+ return (d->attributes >> 4); -+ else -+ return 0; -+} -+ -+/*! -+ Sets the additional attributes for this method to \a value. -+ -+ \sa attributes() -+*/ -+void QMetaMethodBuilder::setAttributes(int value) -+{ -+ QMetaMethodBuilderPrivate *d = d_func(); -+ if (d) -+ d->attributes = ((d->attributes & 0x0f) | (value << 4)); -+} -+ -+/*! -+ \class QMetaPropertyBuilder -+ \internal -+ \brief The QMetaPropertyBuilder class enables modifications to a property definition on a meta object builder. -+*/ -+ -+QMetaPropertyBuilderPrivate *QMetaPropertyBuilder::d_func() const -+{ -+ if (_mobj && _index >= 0 && _index < _mobj->d->properties.size()) -+ return &(_mobj->d->properties[_index]); -+ else -+ return 0; -+} -+ -+/*! -+ \fn QMetaPropertyBuilder::QMetaPropertyBuilder() -+ \internal -+*/ -+ -+/*! -+ \fn int QMetaPropertyBuilder::index() const -+ -+ Returns the index of this property within its QMetaObjectBuilder. -+*/ -+ -+/*! -+ Returns the name associated with this property. -+ -+ \sa type() -+*/ -+QByteArray QMetaPropertyBuilder::name() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->name; -+ else -+ return QByteArray(); -+} -+ -+/*! -+ Returns the type associated with this property. -+ -+ \sa name() -+*/ -+QByteArray QMetaPropertyBuilder::type() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->type; -+ else -+ return QByteArray(); -+} -+ -+/*! -+ Returns true if this property has a notify signal; false otherwise. -+ -+ \sa notifySignal(), setNotifySignal(), removeNotifySignal() -+*/ -+bool QMetaPropertyBuilder::hasNotifySignal() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(Notify); -+ else -+ return false; -+} -+ -+/*! -+ Returns the notify signal associated with this property. -+ -+ \sa hasNotifySignal(), setNotifySignal(), removeNotifySignal() -+*/ -+QMetaMethodBuilder QMetaPropertyBuilder::notifySignal() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d && d->notifySignal >= 0) -+ return QMetaMethodBuilder(_mobj, d->notifySignal); -+ else -+ return QMetaMethodBuilder(); -+} -+ -+/*! -+ Sets the notify signal associated with this property to \a value. -+ -+ \sa hasNotifySignal(), notifySignal(), removeNotifySignal() -+*/ -+void QMetaPropertyBuilder::setNotifySignal(const QMetaMethodBuilder& value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) { -+ if (value._mobj) { -+ d->notifySignal = value._index; -+ d->setFlag(Notify, true); -+ } else { -+ d->notifySignal = -1; -+ d->setFlag(Notify, false); -+ } -+ } -+} -+ -+/*! -+ Removes the notify signal from this property. -+ -+ \sa hasNotifySignal(), notifySignal(), setNotifySignal() -+*/ -+void QMetaPropertyBuilder::removeNotifySignal() -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) { -+ d->notifySignal = -1; -+ d->setFlag(Notify, false); -+ } -+} -+ -+/*! -+ Returns true if this property is readable; otherwise returns false. -+ The default value is true. -+ -+ \sa setReadable(), isWritable() -+*/ -+bool QMetaPropertyBuilder::isReadable() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(Readable); -+ else -+ return false; -+} -+ -+/*! -+ Returns true if this property is writable; otherwise returns false. -+ The default value is true. -+ -+ \sa setWritable(), isReadable() -+*/ -+bool QMetaPropertyBuilder::isWritable() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(Writable); -+ else -+ return false; -+} -+ -+/*! -+ Returns true if this property can be reset to a default value; otherwise -+ returns false. The default value is false. -+ -+ \sa setResettable() -+*/ -+bool QMetaPropertyBuilder::isResettable() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(Resettable); -+ else -+ return false; -+} -+ -+/*! -+ Returns true if this property is designable; otherwise returns false. -+ This default value is false. -+ -+ \sa setDesignable(), isScriptable(), isStored() -+*/ -+bool QMetaPropertyBuilder::isDesignable() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(Designable); -+ else -+ return false; -+} -+ -+/*! -+ Returns true if the property is scriptable; otherwise returns false. -+ This default value is true. -+ -+ \sa setScriptable(), isDesignable(), isStored() -+*/ -+bool QMetaPropertyBuilder::isScriptable() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(Scriptable); -+ else -+ return false; -+} -+ -+/*! -+ Returns true if the property is stored; otherwise returns false. -+ This default value is false. -+ -+ \sa setStored(), isDesignable(), isScriptable() -+*/ -+bool QMetaPropertyBuilder::isStored() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(Stored); -+ else -+ return false; -+} -+ -+/*! -+ Returns true if the property is editable; otherwise returns false. -+ This default value is false. -+ -+ \sa setEditable(), isDesignable(), isScriptable(), isStored() -+*/ -+bool QMetaPropertyBuilder::isEditable() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(Editable); -+ else -+ return false; -+} -+ -+/*! -+ Returns true if this property is designated as the \c USER -+ property, i.e., the one that the user can edit or that is -+ significant in some other way. Otherwise it returns -+ false. This default value is false. -+ -+ \sa setUser(), isDesignable(), isScriptable() -+*/ -+bool QMetaPropertyBuilder::isUser() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(User); -+ else -+ return false; -+} -+ -+/*! -+ Returns true if the property has a C++ setter function that -+ follows Qt's standard "name" / "setName" pattern. Designer and uic -+ query hasStdCppSet() in order to avoid expensive -+ QObject::setProperty() calls. All properties in Qt [should] follow -+ this pattern. The default value is false. -+ -+ \sa setStdCppSet() -+*/ -+bool QMetaPropertyBuilder::hasStdCppSet() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(StdCppSet); -+ else -+ return false; -+} -+ -+/*! -+ Returns true if the property is an enumerator or flag type; -+ otherwise returns false. This default value is false. -+ -+ \sa setEnumOrFlag() -+*/ -+bool QMetaPropertyBuilder::isEnumOrFlag() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(EnumOrFlag); -+ else -+ return false; -+} -+ -+/*! -+ Returns true if the property has the dynamic flag set; -+ otherwise returns false. The default value is false. -+ -+ \sa setDynamic() -+*/ -+bool QMetaPropertyBuilder::isDynamic() const -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ return d->flag(Dynamic); -+ else -+ return false; -+} -+ -+/*! -+ Sets this property to readable if \a value is true. -+ -+ \sa isReadable(), setWritable() -+*/ -+void QMetaPropertyBuilder::setReadable(bool value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ d->setFlag(Readable, value); -+} -+ -+/*! -+ Sets this property to writable if \a value is true. -+ -+ \sa isWritable(), setReadable() -+*/ -+void QMetaPropertyBuilder::setWritable(bool value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ d->setFlag(Writable, value); -+} -+ -+/*! -+ Sets this property to resettable if \a value is true. -+ -+ \sa isResettable() -+*/ -+void QMetaPropertyBuilder::setResettable(bool value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ d->setFlag(Resettable, value); -+} -+ -+/*! -+ Sets this property to designable if \a value is true. -+ -+ \sa isDesignable(), setScriptable(), setStored() -+*/ -+void QMetaPropertyBuilder::setDesignable(bool value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ d->setFlag(Designable, value); -+} -+ -+/*! -+ Sets this property to scriptable if \a value is true. -+ -+ \sa isScriptable(), setDesignable(), setStored() -+*/ -+void QMetaPropertyBuilder::setScriptable(bool value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ d->setFlag(Scriptable, value); -+} -+ -+/*! -+ Sets this property to storable if \a value is true. -+ -+ \sa isStored(), setDesignable(), setScriptable() -+*/ -+void QMetaPropertyBuilder::setStored(bool value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ d->setFlag(Stored, value); -+} -+ -+/*! -+ Sets this property to editable if \a value is true. -+ -+ \sa isEditable(), setDesignable(), setScriptable(), setStored() -+*/ -+void QMetaPropertyBuilder::setEditable(bool value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ d->setFlag(Editable, value); -+} -+ -+/*! -+ Sets the \c USER flag on this property to \a value. -+ -+ \sa isUser(), setDesignable(), setScriptable() -+*/ -+void QMetaPropertyBuilder::setUser(bool value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ d->setFlag(User, value); -+} -+ -+/*! -+ Sets the C++ setter flag on this property to \a value, which is -+ true if the property has a C++ setter function that follows Qt's -+ standard "name" / "setName" pattern. -+ -+ \sa hasStdCppSet() -+*/ -+void QMetaPropertyBuilder::setStdCppSet(bool value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ d->setFlag(StdCppSet, value); -+} -+ -+/*! -+ Sets this property to be of an enumerator or flag type if -+ \a value is true. -+ -+ \sa isEnumOrFlag() -+*/ -+void QMetaPropertyBuilder::setEnumOrFlag(bool value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ d->setFlag(EnumOrFlag, value); -+} -+ -+/*! -+ Sets this property to have the dynamic flag if \a value is -+ true. -+ -+ \sa isDynamic() -+*/ -+void QMetaPropertyBuilder::setDynamic(bool value) -+{ -+ QMetaPropertyBuilderPrivate *d = d_func(); -+ if (d) -+ d->setFlag(Dynamic, value); -+} -+ -+/*! -+ \class QMetaEnumBuilder -+ \internal -+ \brief The QMetaEnumBuilder class enables modifications to an enumerator definition on a meta object builder. -+*/ -+ -+QMetaEnumBuilderPrivate *QMetaEnumBuilder::d_func() const -+{ -+ if (_mobj && _index >= 0 && _index < _mobj->d->enumerators.size()) -+ return &(_mobj->d->enumerators[_index]); -+ else -+ return 0; -+} -+ -+/*! -+ \fn QMetaEnumBuilder::QMetaEnumBuilder() -+ \internal -+*/ -+ -+/*! -+ \fn int QMetaEnumBuilder::index() const -+ -+ Returns the index of this enumerator within its QMetaObjectBuilder. -+*/ -+ -+/*! -+ Returns the name of the enumerator (without the scope). -+*/ -+QByteArray QMetaEnumBuilder::name() const -+{ -+ QMetaEnumBuilderPrivate *d = d_func(); -+ if (d) -+ return d->name; -+ else -+ return QByteArray(); -+} -+ -+/*! -+ Returns true if this enumerator is used as a flag; otherwise returns -+ false. -+ -+ \sa setIsFlag() -+*/ -+bool QMetaEnumBuilder::isFlag() const -+{ -+ QMetaEnumBuilderPrivate *d = d_func(); -+ if (d) -+ return d->isFlag; -+ else -+ return false; -+} -+ -+/*! -+ Sets this enumerator to be used as a flag if \a value is true. -+ -+ \sa isFlag() -+*/ -+void QMetaEnumBuilder::setIsFlag(bool value) -+{ -+ QMetaEnumBuilderPrivate *d = d_func(); -+ if (d) -+ d->isFlag = value; -+} -+ -+/*! -+ Returns the number of keys. -+ -+ \sa key(), addKey() -+*/ -+int QMetaEnumBuilder::keyCount() const -+{ -+ QMetaEnumBuilderPrivate *d = d_func(); -+ if (d) -+ return d->keys.size(); -+ else -+ return 0; -+} -+ -+/*! -+ Returns the key with the given \a index, or an empty QByteArray -+ if no such key exists. -+ -+ \sa keyCount(), addKey(), value() -+*/ -+QByteArray QMetaEnumBuilder::key(int index) const -+{ -+ QMetaEnumBuilderPrivate *d = d_func(); -+ if (d && index >= 0 && index < d->keys.size()) -+ return d->keys[index]; -+ else -+ return QByteArray(); -+} -+ -+/*! -+ Returns the value with the given \a index; or returns -1 if there -+ is no such value. -+ -+ \sa keyCount(), addKey(), key() -+*/ -+int QMetaEnumBuilder::value(int index) const -+{ -+ QMetaEnumBuilderPrivate *d = d_func(); -+ if (d && index >= 0 && index < d->keys.size()) -+ return d->values[index]; -+ else -+ return -1; -+} -+ -+/*! -+ Adds a new key called \a name to this enumerator, associated -+ with \a value. Returns the index of the new key. -+ -+ \sa keyCount(), key(), value(), removeKey() -+*/ -+int QMetaEnumBuilder::addKey(const QByteArray& name, int value) -+{ -+ QMetaEnumBuilderPrivate *d = d_func(); -+ if (d) { -+ int index = d->keys.size(); -+ d->keys += name; -+ d->values += value; -+ return index; -+ } else { -+ return -1; -+ } -+} -+ -+/*! -+ Removes the key at \a index from this enumerator. -+ -+ \sa addKey() -+*/ -+void QMetaEnumBuilder::removeKey(int index) -+{ -+ QMetaEnumBuilderPrivate *d = d_func(); -+ if (d && index >= 0 && index < d->keys.size()) { -+ d->keys.removeAt(index); -+ d->values.removeAt(index); -+ } -+} -+ -+QTM_END_NAMESPACE -diff --git a/src/serviceframework/ipc/qmetaobjectbuilder_47_p.h b/src/serviceframework/ipc/qmetaobjectbuilder_47_p.h -new file mode 100644 -index 0000000..5f25e0f ---- /dev/null -+++ b/src/serviceframework/ipc/qmetaobjectbuilder_47_p.h -@@ -0,0 +1,338 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -+** All rights reserved. -+** Contact: Nokia Corporation (qt-info@nokia.com) -+** -+** This file is part of the Qt Mobility Components. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** No Commercial Usage -+** This file contains pre-release code and may not be distributed. -+** You may use this file in accordance with the terms and conditions -+** contained in the Technology Preview License Agreement accompanying -+** this package. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain additional -+** rights. These rights are described in the Nokia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** If you have questions regarding the use of this file, please contact -+** Nokia at qt-info@nokia.com. -+** -+** -+** -+** -+** -+** -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QMETAOBJECTBUILDER_H -+#define QMETAOBJECTBUILDER_H -+ -+// -+// W A R N I N G -+// ------------- -+// -+// This file is not part of the Qt API. It exists for the convenience -+// of moc. This header file may change from version to version without notice, -+// or even be removed. -+// -+// We mean it. -+// -+ -+#include -+#include -+#include -+#include -+#include -+ -+QTM_BEGIN_NAMESPACE -+ -+class QMetaObjectBuilderPrivate; -+class QMetaMethodBuilder; -+class QMetaMethodBuilderPrivate; -+class QMetaPropertyBuilder; -+class QMetaPropertyBuilderPrivate; -+class QMetaEnumBuilder; -+class QMetaEnumBuilderPrivate; -+ -+#ifdef IGNORE_METAOBJECTBUILDER_EXPORT -+ class QMetaObjectBuilder -+#else -+ class QM_AUTOTEST_EXPORT QMetaObjectBuilder -+#endif -+{ -+public: -+ enum AddMember -+ { -+ ClassName = 0x00000001, -+ SuperClass = 0x00000002, -+ Methods = 0x00000004, -+ Signals = 0x00000008, -+ Slots = 0x00000010, -+ Constructors = 0x00000020, -+ Properties = 0x00000040, -+ Enumerators = 0x00000080, -+ ClassInfos = 0x00000100, -+ RelatedMetaObjects = 0x00000200, -+ StaticMetacall = 0x00000400, -+ PublicMethods = 0x00000800, -+ ProtectedMethods = 0x00001000, -+ PrivateMethods = 0x00002000, -+ AllMembers = 0x7FFFFFFF, -+ AllPrimaryMembers = 0x7FFFFBFC -+ }; -+ Q_DECLARE_FLAGS(AddMembers, AddMember) -+ -+ enum MetaObjectFlag { -+ DynamicMetaObject = 0x01 -+ }; -+ Q_DECLARE_FLAGS(MetaObjectFlags, MetaObjectFlag) -+ -+ QMetaObjectBuilder(); -+ explicit QMetaObjectBuilder(const QMetaObject *prototype, QMetaObjectBuilder::AddMembers members = AllMembers); -+ virtual ~QMetaObjectBuilder(); -+ -+ QByteArray className() const; -+ void setClassName(const QByteArray& name); -+ -+ const QMetaObject *superClass() const; -+ void setSuperClass(const QMetaObject *meta); -+ -+ MetaObjectFlags flags() const; -+ void setFlags(MetaObjectFlags); -+ -+ int methodCount() const; -+ int constructorCount() const; -+ int propertyCount() const; -+ int enumeratorCount() const; -+ int classInfoCount() const; -+ int relatedMetaObjectCount() const; -+ -+ QMetaMethodBuilder addMethod(const QByteArray& signature); -+ QMetaMethodBuilder addMethod(const QByteArray& signature, const QByteArray& returnType); -+ QMetaMethodBuilder addMethod(const QMetaMethod& prototype); -+ -+ QMetaMethodBuilder addSlot(const QByteArray& signature); -+ QMetaMethodBuilder addSignal(const QByteArray& signature); -+ -+ QMetaMethodBuilder addConstructor(const QByteArray& signature); -+ QMetaMethodBuilder addConstructor(const QMetaMethod& prototype); -+ -+ QMetaPropertyBuilder addProperty(const QByteArray& name, const QByteArray& type, int notifierId=-1); -+ QMetaPropertyBuilder addProperty(const QMetaProperty& prototype); -+ -+ QMetaEnumBuilder addEnumerator(const QByteArray& name); -+ QMetaEnumBuilder addEnumerator(const QMetaEnum& prototype); -+ -+ int addClassInfo(const QByteArray& name, const QByteArray& value); -+ -+#ifdef Q_NO_DATA_RELOCATION -+ int addRelatedMetaObject(const QMetaObjectAccessor &meta); -+#else -+ int addRelatedMetaObject(const QMetaObject *meta); -+#endif -+ -+ void addMetaObject(const QMetaObject *prototype, QMetaObjectBuilder::AddMembers members = AllMembers); -+ -+ QMetaMethodBuilder method(int index) const; -+ QMetaMethodBuilder constructor(int index) const; -+ QMetaPropertyBuilder property(int index) const; -+ QMetaEnumBuilder enumerator(int index) const; -+ const QMetaObject *relatedMetaObject(int index) const; -+ -+ QByteArray classInfoName(int index) const; -+ QByteArray classInfoValue(int index) const; -+ -+ void removeMethod(int index); -+ void removeConstructor(int index); -+ void removeProperty(int index); -+ void removeEnumerator(int index); -+ void removeClassInfo(int index); -+ void removeRelatedMetaObject(int index); -+ -+ int indexOfMethod(const QByteArray& signature); -+ int indexOfSignal(const QByteArray& signature); -+ int indexOfSlot(const QByteArray& signature); -+ int indexOfConstructor(const QByteArray& signature); -+ int indexOfProperty(const QByteArray& name); -+ int indexOfEnumerator(const QByteArray& name); -+ int indexOfClassInfo(const QByteArray& name); -+ -+ typedef int (*StaticMetacallFunction)(QMetaObject::Call, int, void **); -+ -+ QMetaObjectBuilder::StaticMetacallFunction staticMetacallFunction() const; -+ void setStaticMetacallFunction(QMetaObjectBuilder::StaticMetacallFunction value); -+ -+ QMetaObject *toMetaObject() const; -+ QByteArray toRelocatableData(bool * = 0) const; -+ static void fromRelocatableData(QMetaObject *, const QMetaObject *, const QByteArray &); -+ -+#ifndef QT_NO_DATASTREAM -+ void serialize(QDataStream& stream) const; -+ void deserialize -+ (QDataStream& stream, -+ const QMap& references); -+#endif -+ -+private: -+ Q_DISABLE_COPY(QMetaObjectBuilder) -+ -+ QMetaObjectBuilderPrivate *d; -+ -+ friend class QMetaMethodBuilder; -+ friend class QMetaPropertyBuilder; -+ friend class QMetaEnumBuilder; -+}; -+ -+#ifdef IGNORE_METAOBJECTBUILDER_EXPORT -+ class QMetaMethodBuilder -+#else -+ class QM_AUTOTEST_EXPORT QMetaMethodBuilder -+#endif -+{ -+public: -+ QMetaMethodBuilder() : _mobj(0), _index(0) {} -+ -+ int index() const; -+ -+ QMetaMethod::MethodType methodType() const; -+ QByteArray signature() const; -+ -+ QByteArray returnType() const; -+ void setReturnType(const QByteArray& value); -+ -+ QList parameterNames() const; -+ void setParameterNames(const QList& value); -+ -+ QByteArray tag() const; -+ void setTag(const QByteArray& value); -+ -+ QMetaMethod::Access access() const; -+ void setAccess(QMetaMethod::Access value); -+ -+ int attributes() const; -+ void setAttributes(int value); -+ -+private: -+ const QMetaObjectBuilder *_mobj; -+ int _index; -+ -+ friend class QMetaObjectBuilder; -+ friend class QMetaPropertyBuilder; -+ -+ QMetaMethodBuilder(const QMetaObjectBuilder *mobj, int index) -+ : _mobj(mobj), _index(index) {} -+ -+ QMetaMethodBuilderPrivate *d_func() const; -+}; -+ -+#ifdef IGNORE_METAOBJECTBUILDER_EXPORT -+ class QMetaPropertyBuilder -+#else -+ class QM_AUTOTEST_EXPORT QMetaPropertyBuilder -+#endif -+{ -+public: -+ QMetaPropertyBuilder() : _mobj(0), _index(0) {} -+ -+ int index() const { return _index; } -+ -+ QByteArray name() const; -+ QByteArray type() const; -+ -+ bool hasNotifySignal() const; -+ QMetaMethodBuilder notifySignal() const; -+ void setNotifySignal(const QMetaMethodBuilder& value); -+ void removeNotifySignal(); -+ -+ bool isReadable() const; -+ bool isWritable() const; -+ bool isResettable() const; -+ bool isDesignable() const; -+ bool isScriptable() const; -+ bool isStored() const; -+ bool isEditable() const; -+ bool isUser() const; -+ bool hasStdCppSet() const; -+ bool isEnumOrFlag() const; -+ bool isDynamic() const; -+ -+ void setReadable(bool value); -+ void setWritable(bool value); -+ void setResettable(bool value); -+ void setDesignable(bool value); -+ void setScriptable(bool value); -+ void setStored(bool value); -+ void setEditable(bool value); -+ void setUser(bool value); -+ void setStdCppSet(bool value); -+ void setEnumOrFlag(bool value); -+ void setDynamic(bool value); -+ -+private: -+ const QMetaObjectBuilder *_mobj; -+ int _index; -+ -+ friend class QMetaObjectBuilder; -+ -+ QMetaPropertyBuilder(const QMetaObjectBuilder *mobj, int index) -+ : _mobj(mobj), _index(index) {} -+ -+ QMetaPropertyBuilderPrivate *d_func() const; -+}; -+ -+#ifdef IGNORE_METAOBJECTBUILDER_EXPORT -+ class QMetaEnumBuilder -+#else -+ class QM_AUTOTEST_EXPORT QMetaEnumBuilder -+#endif -+{ -+public: -+ QMetaEnumBuilder() : _mobj(0), _index(0) {} -+ -+ int index() const { return _index; } -+ -+ QByteArray name() const; -+ -+ bool isFlag() const; -+ void setIsFlag(bool value); -+ -+ int keyCount() const; -+ QByteArray key(int index) const; -+ int value(int index) const; -+ -+ int addKey(const QByteArray& name, int value); -+ void removeKey(int index); -+ -+private: -+ const QMetaObjectBuilder *_mobj; -+ int _index; -+ -+ friend class QMetaObjectBuilder; -+ -+ QMetaEnumBuilder(const QMetaObjectBuilder *mobj, int index) -+ : _mobj(mobj), _index(index) {} -+ -+ QMetaEnumBuilderPrivate *d_func() const; -+}; -+ -+Q_DECLARE_OPERATORS_FOR_FLAGS(QMetaObjectBuilder::AddMembers) -+Q_DECLARE_OPERATORS_FOR_FLAGS(QMetaObjectBuilder::MetaObjectFlags) -+ -+QTM_END_NAMESPACE -+ -+#endif -diff --git a/src/serviceframework/ipc/qmetaobjectbuilder_p.h b/src/serviceframework/ipc/qmetaobjectbuilder_p.h -index 5f25e0f..7f29ddc 100644 ---- a/src/serviceframework/ipc/qmetaobjectbuilder_p.h -+++ b/src/serviceframework/ipc/qmetaobjectbuilder_p.h -@@ -69,6 +69,8 @@ class QMetaPropertyBuilderPrivate; - class QMetaEnumBuilder; - class QMetaEnumBuilderPrivate; - -+typedef const QMetaObject& (*QMetaObjectAccessor)(); -+ - #ifdef IGNORE_METAOBJECTBUILDER_EXPORT - class QMetaObjectBuilder - #else -@@ -172,7 +174,7 @@ public: - int indexOfEnumerator(const QByteArray& name); - int indexOfClassInfo(const QByteArray& name); - -- typedef int (*StaticMetacallFunction)(QMetaObject::Call, int, void **); -+ typedef QMetaObjectExtraData::StaticMetacallFunction StaticMetacallFunction; - - QMetaObjectBuilder::StaticMetacallFunction staticMetacallFunction() const; - void setStaticMetacallFunction(QMetaObjectBuilder::StaticMetacallFunction value); -@@ -269,7 +271,8 @@ public: - bool isUser() const; - bool hasStdCppSet() const; - bool isEnumOrFlag() const; -- bool isDynamic() const; -+ bool isConstant() const; -+ bool isFinal() const; - - void setReadable(bool value); - void setWritable(bool value); -@@ -281,7 +284,8 @@ public: - void setUser(bool value); - void setStdCppSet(bool value); - void setEnumOrFlag(bool value); -- void setDynamic(bool value); -+ void setConstant(bool value); -+ void setFinal(bool value); - - private: - const QMetaObjectBuilder *_mobj; -diff --git a/tests/auto/qmetaobjectbuilder/qmetaobjectbuilder.pro b/tests/auto/qmetaobjectbuilder/qmetaobjectbuilder.pro -index 4cbc03a..fa6123b 100644 ---- a/tests/auto/qmetaobjectbuilder/qmetaobjectbuilder.pro -+++ b/tests/auto/qmetaobjectbuilder/qmetaobjectbuilder.pro -@@ -9,7 +9,11 @@ QT = core - include(../../../common.pri) - - # Input --SOURCES += tst_qmetaobjectbuilder.cpp -+contains(QT_MAJOR_VERSION, 4):lessThan(QT_MINOR_VERSION, 8) { -+ SOURCES += tst_qmetaobjectbuilder_47.cpp -+} else { -+ SOURCES += tst_qmetaobjectbuilder.cpp -+} - - CONFIG += mobility - MOBILITY = serviceframework -diff --git a/tests/auto/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp b/tests/auto/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp -index 48ba43c..470d9e5 100644 ---- a/tests/auto/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp -+++ b/tests/auto/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp -@@ -149,9 +149,9 @@ void tst_QMetaObjectBuilder::mocVersionCheck() - // whenenver moc changes. Once QMetaObjectBuilder has been - // updated, this test can be changed to check for the next version. - int version = int(QObject::staticMetaObject.d.data[0]); -- QVERIFY(version == 4 || version == 5); -+ QVERIFY(version == 4 || version == 5 || version == 6); - version = int(staticMetaObject.d.data[0]); -- QVERIFY(version == 4 || version == 5); -+ QVERIFY(version == 4 || version == 5 || version == 6); - } - - void tst_QMetaObjectBuilder::create() -@@ -555,7 +555,8 @@ void tst_QMetaObjectBuilder::property() - QVERIFY(!nullProp.isUser()); - QVERIFY(!nullProp.hasStdCppSet()); - QVERIFY(!nullProp.isEnumOrFlag()); -- QVERIFY(!nullProp.isDynamic()); -+ QVERIFY(!nullProp.isConstant()); -+ QVERIFY(!nullProp.isFinal()); - QCOMPARE(nullProp.index(), 0); - - // Add a property and check its attributes. -@@ -573,7 +574,8 @@ void tst_QMetaObjectBuilder::property() - QVERIFY(!prop1.isUser()); - QVERIFY(!prop1.hasStdCppSet()); - QVERIFY(!prop1.isEnumOrFlag()); -- QVERIFY(!prop1.isDynamic()); -+ QVERIFY(!prop1.isConstant()); -+ QVERIFY(!prop1.isFinal()); - QCOMPARE(prop1.index(), 0); - QCOMPARE(builder.propertyCount(), 1); - -@@ -592,7 +594,8 @@ void tst_QMetaObjectBuilder::property() - QVERIFY(!prop2.isUser()); - QVERIFY(!prop2.hasStdCppSet()); - QVERIFY(!prop2.isEnumOrFlag()); -- QVERIFY(!prop2.isDynamic()); -+ QVERIFY(!prop2.isConstant()); -+ QVERIFY(!prop2.isFinal()); - QCOMPARE(prop2.index(), 1); - QCOMPARE(builder.propertyCount(), 2); - -@@ -614,7 +617,8 @@ void tst_QMetaObjectBuilder::property() - prop1.setUser(true); - prop1.setStdCppSet(true); - prop1.setEnumOrFlag(true); -- prop1.setDynamic(true); -+ prop1.setConstant(true); -+ prop1.setFinal(true); - - // Check that prop1 is changed, but prop2 is not. - QCOMPARE(prop1.name(), QByteArray("foo")); -@@ -629,7 +633,8 @@ void tst_QMetaObjectBuilder::property() - QVERIFY(prop1.isUser()); - QVERIFY(prop1.hasStdCppSet()); - QVERIFY(prop1.isEnumOrFlag()); -- QVERIFY(prop1.isDynamic()); -+ QVERIFY(prop1.isConstant()); -+ QVERIFY(prop1.isFinal()); - QVERIFY(prop2.isReadable()); - QVERIFY(prop2.isWritable()); - QCOMPARE(prop2.name(), QByteArray("bar")); -@@ -642,7 +647,8 @@ void tst_QMetaObjectBuilder::property() - QVERIFY(!prop2.isUser()); - QVERIFY(!prop2.hasStdCppSet()); - QVERIFY(!prop2.isEnumOrFlag()); -- QVERIFY(!prop2.isDynamic()); -+ QVERIFY(!prop2.isConstant()); -+ QVERIFY(!prop2.isFinal()); - - // Remove prop1 and check that prop2 becomes index 0. - builder.removeProperty(0); -@@ -658,7 +664,8 @@ void tst_QMetaObjectBuilder::property() - QVERIFY(!prop2.isUser()); - QVERIFY(!prop2.hasStdCppSet()); - QVERIFY(!prop2.isEnumOrFlag()); -- QVERIFY(!prop2.isDynamic()); -+ QVERIFY(!prop2.isConstant()); -+ QVERIFY(!prop2.isFinal()); - QCOMPARE(prop2.index(), 0); - - // Perform index-based lookup again. -@@ -682,7 +689,8 @@ void tst_QMetaObjectBuilder::property() - prop2.setUser(false); \ - prop2.setStdCppSet(false); \ - prop2.setEnumOrFlag(false); \ -- prop2.setDynamic(false); \ -+ prop2.setConstant(false); \ -+ prop2.setFinal(false); \ - } while (0) - #define COUNT_FLAGS() \ - ((prop2.isReadable() ? 1 : 0) + \ -@@ -695,7 +703,8 @@ void tst_QMetaObjectBuilder::property() - (prop2.isUser() ? 1 : 0) + \ - (prop2.hasStdCppSet() ? 1 : 0) + \ - (prop2.isEnumOrFlag() ? 1 : 0) + \ -- (prop2.isDynamic() ? 1 : 0)) -+ (prop2.isConstant() ? 1 : 0) + \ -+ (prop2.isFinal() ? 1 : 0)) - #define CHECK_FLAG(setFunc,isFunc) \ - do { \ - CLEAR_FLAGS(); \ -@@ -714,7 +723,8 @@ void tst_QMetaObjectBuilder::property() - CHECK_FLAG(setUser, isUser); - CHECK_FLAG(setStdCppSet, hasStdCppSet); - CHECK_FLAG(setEnumOrFlag, isEnumOrFlag); -- CHECK_FLAG(setDynamic, isDynamic); -+ CHECK_FLAG(setConstant, isConstant); -+ CHECK_FLAG(setFinal, isFinal); - - // Check that nothing else changed. - QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::Properties)); -@@ -958,9 +968,9 @@ void tst_QMetaObjectBuilder::relatedMetaObject() - QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::RelatedMetaObjects)); - } - --static int smetacall(QMetaObject::Call, int, void **) -+static void smetacall(QObject *, QMetaObject::Call, int, void **) - { -- return 0; -+ return; - } - - void tst_QMetaObjectBuilder::staticMetacall() -@@ -1263,8 +1273,8 @@ bool tst_QMetaObjectBuilder::sameMetaObject - if (extra1 && extra2) { - if (extra1->static_metacall != extra2->static_metacall) - return false; -- //objects1 = extra1->objects; -- //objects2 = extra1->objects; -+ objects1 = extra1->objects; -+ objects2 = extra1->objects; - } - } else if (meta1->d.data[0] == meta2->d.data[0] && meta1->d.data[0] == 1) { - objects1 = (const QMetaObject **)(meta1->d.extradata); -diff --git a/tests/auto/qmetaobjectbuilder/tst_qmetaobjectbuilder_47.cpp b/tests/auto/qmetaobjectbuilder/tst_qmetaobjectbuilder_47.cpp -new file mode 100644 -index 0000000..96a7eca ---- /dev/null -+++ b/tests/auto/qmetaobjectbuilder/tst_qmetaobjectbuilder_47.cpp -@@ -0,0 +1,1283 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -+** All rights reserved. -+** Contact: Nokia Corporation (qt-info@nokia.com) -+** -+** This file is part of the test suite of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** No Commercial Usage -+** This file contains pre-release code and may not be distributed. -+** You may use this file in accordance with the terms and conditions -+** contained in the Technology Preview License Agreement accompanying -+** this package. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain additional -+** rights. These rights are described in the Nokia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** If you have questions regarding the use of this file, please contact -+** Nokia at qt-info@nokia.com. -+** -+** -+** -+** -+** -+** -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+//TESTED_COMPONENT=src/serviceframework -+ -+#include -+#include -+#include -+#include -+ -+QTM_USE_NAMESPACE -+ -+class tst_QMetaObjectBuilder : public QObject -+{ -+ Q_OBJECT -+public: -+ tst_QMetaObjectBuilder() {} -+ ~tst_QMetaObjectBuilder() {} -+ -+private slots: -+ void mocVersionCheck(); -+ void create(); -+ void className(); -+ void superClass(); -+ void flags(); -+ void method(); -+ void slot(); -+ void signal(); -+ void constructor(); -+ void property(); -+ void notifySignal(); -+ void enumerator(); -+ void classInfo(); -+ void relatedMetaObject(); -+ void staticMetacall(); -+ void copyMetaObject(); -+ void serialize(); -+ void removeNotifySignal(); -+ -+private: -+ static bool checkForSideEffects -+ (const QMetaObjectBuilder& builder, -+ QMetaObjectBuilder::AddMembers members); -+ static bool sameMetaObject -+ (const QMetaObject *meta1, const QMetaObject *meta2); -+}; -+ -+#ifdef Q_NO_DATA_RELOCATION -+const QMetaObject *meta; -+#endif -+ -+// Dummy class that has something of every type of thing moc can generate. -+class SomethingOfEverything : public QObject -+{ -+ Q_OBJECT -+ Q_CLASSINFO("ci_foo", "ABC") -+ Q_CLASSINFO("ci_bar", "DEF") -+ Q_PROPERTY(QString prop READ prop WRITE setProp NOTIFY propChanged) -+ Q_PROPERTY(QString prop2 READ prop WRITE setProp) -+ Q_PROPERTY(SomethingEnum eprop READ eprop) -+ Q_PROPERTY(SomethingFlagEnum fprop READ fprop) -+ Q_PROPERTY(QLocale::Language language READ language) -+ Q_ENUMS(SomethingEnum) -+ Q_FLAGS(SomethingFlagEnum) -+public: -+ Q_INVOKABLE SomethingOfEverything() {} -+ ~SomethingOfEverything() {} -+ -+ enum SomethingEnum -+ { -+ GHI, -+ JKL = 10 -+ }; -+ -+ enum SomethingFlagEnum -+ { -+ XYZ = 1, -+ UVW = 8 -+ }; -+ -+ Q_INVOKABLE Q_SCRIPTABLE void method1() {} -+ -+ QString prop() const { return QString(); } -+ void setProp(const QString& v) { Q_UNUSED(v); } -+ -+ SomethingOfEverything::SomethingEnum eprop() const { return GHI; } -+ SomethingOfEverything::SomethingFlagEnum fprop() const { return XYZ; } -+ QLocale::Language language() const { return QLocale::English; } -+ -+public slots: -+ void slot1(const QString&) {} -+ void slot2(int, const QString&) {} -+ -+private slots: -+ void slot3() {} -+ -+protected slots: -+ Q_SCRIPTABLE void slot4(int) {} -+ void slot5(int a, const QString& b) { Q_UNUSED(a); Q_UNUSED(b); } -+ -+signals: -+ void sig1(); -+ void sig2(int x, const QString& y); -+ void propChanged(const QString&); -+}; -+ -+void tst_QMetaObjectBuilder::mocVersionCheck() -+{ -+ // This test will fail when the moc version number is changed. -+ // It is intended as a reminder to also update QMetaObjectBuilder -+ // whenenver moc changes. Once QMetaObjectBuilder has been -+ // updated, this test can be changed to check for the next version. -+ int version = int(QObject::staticMetaObject.d.data[0]); -+ QVERIFY(version == 4 || version == 5 || version == 6); -+ version = int(staticMetaObject.d.data[0]); -+ QVERIFY(version == 4 || version == 5 || version == 6); -+} -+ -+void tst_QMetaObjectBuilder::create() -+{ -+ QMetaObjectBuilder builder; -+ QVERIFY(builder.className().isEmpty()); -+ QVERIFY(builder.superClass() == &QObject::staticMetaObject); -+ QCOMPARE(builder.methodCount(), 0); -+ QCOMPARE(builder.constructorCount(), 0); -+ QCOMPARE(builder.propertyCount(), 0); -+ QCOMPARE(builder.enumeratorCount(), 0); -+ QCOMPARE(builder.classInfoCount(), 0); -+ QCOMPARE(builder.relatedMetaObjectCount(), 0); -+ QVERIFY(builder.staticMetacallFunction() == 0); -+} -+ -+void tst_QMetaObjectBuilder::className() -+{ -+ QMetaObjectBuilder builder; -+ -+ // Change the class name. -+ builder.setClassName("Foo"); -+ QCOMPARE(builder.className(), QByteArray("Foo")); -+ -+ // Change it again. -+ builder.setClassName("Bar"); -+ QCOMPARE(builder.className(), QByteArray("Bar")); -+ -+ // Clone the class name off a static QMetaObject. -+ builder.addMetaObject(&QObject::staticMetaObject, QMetaObjectBuilder::ClassName); -+ QCOMPARE(builder.className(), QByteArray("QObject")); -+ -+ // Check that nothing else changed. -+ QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::ClassName)); -+} -+ -+void tst_QMetaObjectBuilder::superClass() -+{ -+ QMetaObjectBuilder builder; -+ -+ // Change the super class. -+ builder.setSuperClass(&QObject::staticMetaObject); -+ QVERIFY(builder.superClass() == &QObject::staticMetaObject); -+ -+ // Change it again. -+ builder.setSuperClass(&staticMetaObject); -+ QVERIFY(builder.superClass() == &staticMetaObject); -+ -+ // Clone the super class off a static QMetaObject. -+ builder.addMetaObject(&QObject::staticMetaObject, QMetaObjectBuilder::SuperClass); -+ QVERIFY(builder.superClass() == 0); -+ builder.addMetaObject(&staticMetaObject, QMetaObjectBuilder::SuperClass); -+ QVERIFY(builder.superClass() == staticMetaObject.superClass()); -+ -+ // Check that nothing else changed. -+ QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::SuperClass)); -+} -+ -+void tst_QMetaObjectBuilder::flags() -+{ -+ QMetaObjectBuilder builder; -+ -+ // Check default -+ QVERIFY(builder.flags() == 0); -+ -+ // Set flags -+ builder.setFlags(QMetaObjectBuilder::DynamicMetaObject); -+ QVERIFY(builder.flags() == QMetaObjectBuilder::DynamicMetaObject); -+} -+ -+void tst_QMetaObjectBuilder::method() -+{ -+ QMetaObjectBuilder builder; -+ -+ // Check null method -+ QMetaMethodBuilder nullMethod; -+ QCOMPARE(nullMethod.signature(), QByteArray()); -+ QVERIFY(nullMethod.methodType() == QMetaMethod::Method); -+ QVERIFY(nullMethod.returnType().isEmpty()); -+ QVERIFY(nullMethod.parameterNames().isEmpty()); -+ QVERIFY(nullMethod.tag().isEmpty()); -+ QVERIFY(nullMethod.access() == QMetaMethod::Public); -+ QCOMPARE(nullMethod.attributes(), 0); -+ QCOMPARE(nullMethod.index(), 0); -+ -+ // Add a method and check its attributes. -+ QMetaMethodBuilder method1 = builder.addMethod("foo(const QString&, int)"); -+ QCOMPARE(method1.signature(), QByteArray("foo(QString,int)")); -+ QVERIFY(method1.methodType() == QMetaMethod::Method); -+ QVERIFY(method1.returnType().isEmpty()); -+ QVERIFY(method1.parameterNames().isEmpty()); -+ QVERIFY(method1.tag().isEmpty()); -+ QVERIFY(method1.access() == QMetaMethod::Public); -+ QCOMPARE(method1.attributes(), 0); -+ QCOMPARE(method1.index(), 0); -+ QCOMPARE(builder.methodCount(), 1); -+ -+ // Add another method and check again. -+ QMetaMethodBuilder method2 = builder.addMethod("bar(QString)", "int"); -+ QCOMPARE(method2.signature(), QByteArray("bar(QString)")); -+ QVERIFY(method2.methodType() == QMetaMethod::Method); -+ QCOMPARE(method2.returnType(), QByteArray("int")); -+ QVERIFY(method2.parameterNames().isEmpty()); -+ QVERIFY(method2.tag().isEmpty()); -+ QVERIFY(method2.access() == QMetaMethod::Public); -+ QCOMPARE(method2.attributes(), 0); -+ QCOMPARE(method2.index(), 1); -+ QCOMPARE(builder.methodCount(), 2); -+ -+ // Perform index-based lookup. -+ QCOMPARE(builder.indexOfMethod("foo(const QString&, int)"), 0); -+ QCOMPARE(builder.indexOfMethod("bar(QString)"), 1); -+ QCOMPARE(builder.indexOfMethod("baz()"), -1); -+ -+ // Modify the attributes on method1. -+ method1.setReturnType("int"); -+ method1.setParameterNames(QList() << "a" << "b"); -+ method1.setTag("tag"); -+ method1.setAccess(QMetaMethod::Private); -+ method1.setAttributes(42); -+ -+ // Check that method1 is changed, but method2 is not. -+ QCOMPARE(method1.signature(), QByteArray("foo(QString,int)")); -+ QVERIFY(method1.methodType() == QMetaMethod::Method); -+ QCOMPARE(method1.returnType(), QByteArray("int")); -+ QCOMPARE(method1.parameterNames(), QList() << "a" << "b"); -+ QCOMPARE(method1.tag(), QByteArray("tag")); -+ QVERIFY(method1.access() == QMetaMethod::Private); -+ QCOMPARE(method1.attributes(), 42); -+ QCOMPARE(method1.index(), 0); -+ QCOMPARE(method2.signature(), QByteArray("bar(QString)")); -+ QVERIFY(method2.methodType() == QMetaMethod::Method); -+ QCOMPARE(method2.returnType(), QByteArray("int")); -+ QVERIFY(method2.parameterNames().isEmpty()); -+ QVERIFY(method2.tag().isEmpty()); -+ QVERIFY(method2.access() == QMetaMethod::Public); -+ QCOMPARE(method2.attributes(), 0); -+ QCOMPARE(method2.index(), 1); -+ QCOMPARE(builder.methodCount(), 2); -+ -+ // Modify the attributes on method2. -+ method2.setReturnType("QString"); -+ method2.setParameterNames(QList() << "c"); -+ method2.setTag("Q_FOO"); -+ method2.setAccess(QMetaMethod::Protected); -+ method2.setAttributes(24); -+ -+ // This time check that only method2 changed. -+ QCOMPARE(method1.signature(), QByteArray("foo(QString,int)")); -+ QVERIFY(method1.methodType() == QMetaMethod::Method); -+ QCOMPARE(method1.returnType(), QByteArray("int")); -+ QCOMPARE(method1.parameterNames(), QList() << "a" << "b"); -+ QCOMPARE(method1.tag(), QByteArray("tag")); -+ QVERIFY(method1.access() == QMetaMethod::Private); -+ QCOMPARE(method1.attributes(), 42); -+ QCOMPARE(method1.index(), 0); -+ QCOMPARE(method2.signature(), QByteArray("bar(QString)")); -+ QVERIFY(method2.methodType() == QMetaMethod::Method); -+ QCOMPARE(method2.returnType(), QByteArray("QString")); -+ QCOMPARE(method2.parameterNames(), QList() << "c"); -+ QCOMPARE(method2.tag(), QByteArray("Q_FOO")); -+ QVERIFY(method2.access() == QMetaMethod::Protected); -+ QCOMPARE(method2.attributes(), 24); -+ QCOMPARE(method2.index(), 1); -+ QCOMPARE(builder.methodCount(), 2); -+ -+ // Remove method1 and check that method2 becomes index 0. -+ builder.removeMethod(0); -+ QCOMPARE(builder.methodCount(), 1); -+ method2 = builder.method(0); -+ QCOMPARE(method2.signature(), QByteArray("bar(QString)")); -+ QVERIFY(method2.methodType() == QMetaMethod::Method); -+ QCOMPARE(method2.returnType(), QByteArray("QString")); -+ QCOMPARE(method2.parameterNames(), QList() << "c"); -+ QCOMPARE(method2.tag(), QByteArray("Q_FOO")); -+ QVERIFY(method2.access() == QMetaMethod::Protected); -+ QCOMPARE(method2.attributes(), 24); -+ QCOMPARE(method2.index(), 0); -+ -+ // Perform index-based lookup again. -+ QCOMPARE(builder.indexOfMethod("foo(const QString&, int)"), -1); -+ QCOMPARE(builder.indexOfMethod("bar(QString)"), 0); -+ QCOMPARE(builder.indexOfMethod("baz()"), -1); -+ QCOMPARE(builder.method(0).signature(), QByteArray("bar(QString)")); -+ QCOMPARE(builder.method(9).signature(), QByteArray()); -+ -+ // Check that nothing else changed. -+ QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::Methods)); -+} -+ -+void tst_QMetaObjectBuilder::slot() -+{ -+ QMetaObjectBuilder builder; -+ -+ // Add a slot and check its attributes. -+ QMetaMethodBuilder method1 = builder.addSlot("foo(const QString&, int)"); -+ QCOMPARE(method1.signature(), QByteArray("foo(QString,int)")); -+ QVERIFY(method1.methodType() == QMetaMethod::Slot); -+ QVERIFY(method1.returnType().isEmpty()); -+ QVERIFY(method1.parameterNames().isEmpty()); -+ QVERIFY(method1.tag().isEmpty()); -+ QVERIFY(method1.access() == QMetaMethod::Public); -+ QCOMPARE(method1.attributes(), 0); -+ QCOMPARE(method1.index(), 0); -+ QCOMPARE(builder.methodCount(), 1); -+ -+ // Add another slot and check again. -+ QMetaMethodBuilder method2 = builder.addSlot("bar(QString)"); -+ QCOMPARE(method2.signature(), QByteArray("bar(QString)")); -+ QVERIFY(method2.methodType() == QMetaMethod::Slot); -+ QVERIFY(method2.returnType().isEmpty()); -+ QVERIFY(method2.parameterNames().isEmpty()); -+ QVERIFY(method2.tag().isEmpty()); -+ QVERIFY(method2.access() == QMetaMethod::Public); -+ QCOMPARE(method2.attributes(), 0); -+ QCOMPARE(method2.index(), 1); -+ QCOMPARE(builder.methodCount(), 2); -+ -+ // Perform index-based lookup -+ QCOMPARE(builder.indexOfSlot("foo(const QString &, int)"), 0); -+ QCOMPARE(builder.indexOfSlot("bar(QString)"), 1); -+ QCOMPARE(builder.indexOfSlot("baz()"), -1); -+ -+ // Check that nothing else changed. -+ QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::Methods)); -+} -+ -+void tst_QMetaObjectBuilder::signal() -+{ -+ QMetaObjectBuilder builder; -+ -+ // Add a signal and check its attributes. -+ QMetaMethodBuilder method1 = builder.addSignal("foo(const QString&, int)"); -+ QCOMPARE(method1.signature(), QByteArray("foo(QString,int)")); -+ QVERIFY(method1.methodType() == QMetaMethod::Signal); -+ QVERIFY(method1.returnType().isEmpty()); -+ QVERIFY(method1.parameterNames().isEmpty()); -+ QVERIFY(method1.tag().isEmpty()); -+ QVERIFY(method1.access() == QMetaMethod::Protected); -+ QCOMPARE(method1.attributes(), 0); -+ QCOMPARE(method1.index(), 0); -+ QCOMPARE(builder.methodCount(), 1); -+ -+ // Add another signal and check again. -+ QMetaMethodBuilder method2 = builder.addSignal("bar(QString)"); -+ QCOMPARE(method2.signature(), QByteArray("bar(QString)")); -+ QVERIFY(method2.methodType() == QMetaMethod::Signal); -+ QVERIFY(method2.returnType().isEmpty()); -+ QVERIFY(method2.parameterNames().isEmpty()); -+ QVERIFY(method2.tag().isEmpty()); -+ QVERIFY(method2.access() == QMetaMethod::Protected); -+ QCOMPARE(method2.attributes(), 0); -+ QCOMPARE(method2.index(), 1); -+ QCOMPARE(builder.methodCount(), 2); -+ -+ // Perform index-based lookup -+ QCOMPARE(builder.indexOfSignal("foo(const QString &, int)"), 0); -+ QCOMPARE(builder.indexOfSignal("bar(QString)"), 1); -+ QCOMPARE(builder.indexOfSignal("baz()"), -1); -+ -+ // Check that nothing else changed. -+ QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::Methods)); -+} -+ -+void tst_QMetaObjectBuilder::constructor() -+{ -+ QMetaObjectBuilder builder; -+ -+ // Add a constructor and check its attributes. -+ QMetaMethodBuilder ctor1 = builder.addConstructor("foo(const QString&, int)"); -+ QCOMPARE(ctor1.signature(), QByteArray("foo(QString,int)")); -+ QVERIFY(ctor1.methodType() == QMetaMethod::Constructor); -+ QVERIFY(ctor1.returnType().isEmpty()); -+ QVERIFY(ctor1.parameterNames().isEmpty()); -+ QVERIFY(ctor1.tag().isEmpty()); -+ QVERIFY(ctor1.access() == QMetaMethod::Public); -+ QCOMPARE(ctor1.attributes(), 0); -+ QCOMPARE(ctor1.index(), 0); -+ QCOMPARE(builder.constructorCount(), 1); -+ -+ // Add another constructor and check again. -+ QMetaMethodBuilder ctor2 = builder.addConstructor("bar(QString)"); -+ QCOMPARE(ctor2.signature(), QByteArray("bar(QString)")); -+ QVERIFY(ctor2.methodType() == QMetaMethod::Constructor); -+ QVERIFY(ctor2.returnType().isEmpty()); -+ QVERIFY(ctor2.parameterNames().isEmpty()); -+ QVERIFY(ctor2.tag().isEmpty()); -+ QVERIFY(ctor2.access() == QMetaMethod::Public); -+ QCOMPARE(ctor2.attributes(), 0); -+ QCOMPARE(ctor2.index(), 1); -+ QCOMPARE(builder.constructorCount(), 2); -+ -+ // Perform index-based lookup. -+ QCOMPARE(builder.indexOfConstructor("foo(const QString&, int)"), 0); -+ QCOMPARE(builder.indexOfConstructor("bar(QString)"), 1); -+ QCOMPARE(builder.indexOfConstructor("baz()"), -1); -+ QCOMPARE(builder.constructor(1).signature(), QByteArray("bar(QString)")); -+ QCOMPARE(builder.constructor(9).signature(), QByteArray()); -+ -+ // Modify the attributes on ctor1. -+ ctor1.setReturnType("int"); -+ ctor1.setParameterNames(QList() << "a" << "b"); -+ ctor1.setTag("tag"); -+ ctor1.setAccess(QMetaMethod::Private); -+ ctor1.setAttributes(42); -+ -+ // Check that ctor1 is changed, but ctor2 is not. -+ QCOMPARE(ctor1.signature(), QByteArray("foo(QString,int)")); -+ QVERIFY(ctor1.methodType() == QMetaMethod::Constructor); -+ QCOMPARE(ctor1.returnType(), QByteArray("int")); -+ QCOMPARE(ctor1.parameterNames(), QList() << "a" << "b"); -+ QCOMPARE(ctor1.tag(), QByteArray("tag")); -+ QVERIFY(ctor1.access() == QMetaMethod::Private); -+ QCOMPARE(ctor1.attributes(), 42); -+ QCOMPARE(ctor1.index(), 0); -+ QCOMPARE(ctor2.signature(), QByteArray("bar(QString)")); -+ QVERIFY(ctor2.methodType() == QMetaMethod::Constructor); -+ QVERIFY(ctor2.returnType().isEmpty()); -+ QVERIFY(ctor2.parameterNames().isEmpty()); -+ QVERIFY(ctor2.tag().isEmpty()); -+ QVERIFY(ctor2.access() == QMetaMethod::Public); -+ QCOMPARE(ctor2.attributes(), 0); -+ QCOMPARE(ctor2.index(), 1); -+ QCOMPARE(builder.constructorCount(), 2); -+ -+ // Modify the attributes on ctor2. -+ ctor2.setReturnType("QString"); -+ ctor2.setParameterNames(QList() << "c"); -+ ctor2.setTag("Q_FOO"); -+ ctor2.setAccess(QMetaMethod::Protected); -+ ctor2.setAttributes(24); -+ -+ // This time check that only ctor2 changed. -+ QCOMPARE(ctor1.signature(), QByteArray("foo(QString,int)")); -+ QVERIFY(ctor1.methodType() == QMetaMethod::Constructor); -+ QCOMPARE(ctor1.returnType(), QByteArray("int")); -+ QCOMPARE(ctor1.parameterNames(), QList() << "a" << "b"); -+ QCOMPARE(ctor1.tag(), QByteArray("tag")); -+ QVERIFY(ctor1.access() == QMetaMethod::Private); -+ QCOMPARE(ctor1.attributes(), 42); -+ QCOMPARE(ctor1.index(), 0); -+ QCOMPARE(ctor2.signature(), QByteArray("bar(QString)")); -+ QVERIFY(ctor2.methodType() == QMetaMethod::Constructor); -+ QCOMPARE(ctor2.returnType(), QByteArray("QString")); -+ QCOMPARE(ctor2.parameterNames(), QList() << "c"); -+ QCOMPARE(ctor2.tag(), QByteArray("Q_FOO")); -+ QVERIFY(ctor2.access() == QMetaMethod::Protected); -+ QCOMPARE(ctor2.attributes(), 24); -+ QCOMPARE(ctor2.index(), 1); -+ QCOMPARE(builder.constructorCount(), 2); -+ -+ // Remove ctor1 and check that ctor2 becomes index 0. -+ builder.removeConstructor(0); -+ QCOMPARE(builder.constructorCount(), 1); -+ ctor2 = builder.constructor(0); -+ QCOMPARE(ctor2.signature(), QByteArray("bar(QString)")); -+ QVERIFY(ctor2.methodType() == QMetaMethod::Constructor); -+ QCOMPARE(ctor2.returnType(), QByteArray("QString")); -+ QCOMPARE(ctor2.parameterNames(), QList() << "c"); -+ QCOMPARE(ctor2.tag(), QByteArray("Q_FOO")); -+ QVERIFY(ctor2.access() == QMetaMethod::Protected); -+ QCOMPARE(ctor2.attributes(), 24); -+ QCOMPARE(ctor2.index(), 0); -+ -+ // Perform index-based lookup again. -+ QCOMPARE(builder.indexOfConstructor("foo(const QString&, int)"), -1); -+ QCOMPARE(builder.indexOfConstructor("bar(QString)"), 0); -+ QCOMPARE(builder.indexOfConstructor("baz()"), -1); -+ -+ // Add constructor from prototype -+ QMetaMethod prototype = SomethingOfEverything::staticMetaObject.constructor(0); -+ QMetaMethodBuilder prototypeConstructor = builder.addMethod(prototype); -+ QCOMPARE(builder.constructorCount(), 2); -+ -+ QCOMPARE(prototypeConstructor.signature(), QByteArray("SomethingOfEverything()")); -+ QVERIFY(prototypeConstructor.methodType() == QMetaMethod::Constructor); -+ QCOMPARE(prototypeConstructor.returnType(), QByteArray()); -+ QVERIFY(prototypeConstructor.access() == QMetaMethod::Public); -+ QCOMPARE(prototypeConstructor.index(), 1); -+ -+ // Check that nothing else changed. -+ QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::Constructors)); -+} -+ -+void tst_QMetaObjectBuilder::property() -+{ -+ QMetaObjectBuilder builder; -+ -+ // Null property builder -+ QMetaPropertyBuilder nullProp; -+ QCOMPARE(nullProp.name(), QByteArray()); -+ QCOMPARE(nullProp.type(), QByteArray()); -+ QVERIFY(!nullProp.hasNotifySignal()); -+ QVERIFY(!nullProp.isReadable()); -+ QVERIFY(!nullProp.isWritable()); -+ QVERIFY(!nullProp.isResettable()); -+ QVERIFY(!nullProp.isDesignable()); -+ QVERIFY(!nullProp.isScriptable()); -+ QVERIFY(!nullProp.isStored()); -+ QVERIFY(!nullProp.isEditable()); -+ QVERIFY(!nullProp.isUser()); -+ QVERIFY(!nullProp.hasStdCppSet()); -+ QVERIFY(!nullProp.isEnumOrFlag()); -+ QCOMPARE(nullProp.index(), 0); -+ -+ // Add a property and check its attributes. -+ QMetaPropertyBuilder prop1 = builder.addProperty("foo", "const QString &"); -+ QCOMPARE(prop1.name(), QByteArray("foo")); -+ QCOMPARE(prop1.type(), QByteArray("QString")); -+ QVERIFY(!prop1.hasNotifySignal()); -+ QVERIFY(prop1.isReadable()); -+ QVERIFY(prop1.isWritable()); -+ QVERIFY(!prop1.isResettable()); -+ QVERIFY(!prop1.isDesignable()); -+ QVERIFY(prop1.isScriptable()); -+ QVERIFY(!prop1.isStored()); -+ QVERIFY(!prop1.isEditable()); -+ QVERIFY(!prop1.isUser()); -+ QVERIFY(!prop1.hasStdCppSet()); -+ QVERIFY(!prop1.isEnumOrFlag()); -+ -+ QCOMPARE(prop1.index(), 0); -+ QCOMPARE(builder.propertyCount(), 1); -+ -+ // Add another property and check again. -+ QMetaPropertyBuilder prop2 = builder.addProperty("bar", "int"); -+ QCOMPARE(prop2.name(), QByteArray("bar")); -+ QCOMPARE(prop2.type(), QByteArray("int")); -+ QVERIFY(!prop2.hasNotifySignal()); -+ QVERIFY(prop2.isReadable()); -+ QVERIFY(prop2.isWritable()); -+ QVERIFY(!prop2.isResettable()); -+ QVERIFY(!prop2.isDesignable()); -+ QVERIFY(prop2.isScriptable()); -+ QVERIFY(!prop2.isStored()); -+ QVERIFY(!prop2.isEditable()); -+ QVERIFY(!prop2.isUser()); -+ QVERIFY(!prop2.hasStdCppSet()); -+ QVERIFY(!prop2.isEnumOrFlag()); -+ -+ QCOMPARE(prop2.index(), 1); -+ QCOMPARE(builder.propertyCount(), 2); -+ -+ // Perform index-based lookup. -+ QCOMPARE(builder.indexOfProperty("foo"), 0); -+ QCOMPARE(builder.indexOfProperty("bar"), 1); -+ QCOMPARE(builder.indexOfProperty("baz"), -1); -+ QCOMPARE(builder.property(1).name(), QByteArray("bar")); -+ QCOMPARE(builder.property(9).name(), QByteArray()); -+ -+ // Modify the attributes on prop1. -+ prop1.setReadable(false); -+ prop1.setWritable(false); -+ prop1.setResettable(true); -+ prop1.setDesignable(true); -+ prop1.setScriptable(false); -+ prop1.setStored(true); -+ prop1.setEditable(true); -+ prop1.setUser(true); -+ prop1.setStdCppSet(true); -+ prop1.setEnumOrFlag(true); -+ -+ // Check that prop1 is changed, but prop2 is not. -+ QCOMPARE(prop1.name(), QByteArray("foo")); -+ QCOMPARE(prop1.type(), QByteArray("QString")); -+ QVERIFY(!prop1.isReadable()); -+ QVERIFY(!prop1.isWritable()); -+ QVERIFY(prop1.isResettable()); -+ QVERIFY(prop1.isDesignable()); -+ QVERIFY(!prop1.isScriptable()); -+ QVERIFY(prop1.isStored()); -+ QVERIFY(prop1.isEditable()); -+ QVERIFY(prop1.isUser()); -+ QVERIFY(prop1.hasStdCppSet()); -+ QVERIFY(prop1.isEnumOrFlag()); -+ QVERIFY(prop2.isReadable()); -+ QVERIFY(prop2.isWritable()); -+ QCOMPARE(prop2.name(), QByteArray("bar")); -+ QCOMPARE(prop2.type(), QByteArray("int")); -+ QVERIFY(!prop2.isResettable()); -+ QVERIFY(!prop2.isDesignable()); -+ QVERIFY(prop2.isScriptable()); -+ QVERIFY(!prop2.isStored()); -+ QVERIFY(!prop2.isEditable()); -+ QVERIFY(!prop2.isUser()); -+ QVERIFY(!prop2.hasStdCppSet()); -+ QVERIFY(!prop2.isEnumOrFlag()); -+ -+ // Remove prop1 and check that prop2 becomes index 0. -+ builder.removeProperty(0); -+ QCOMPARE(builder.propertyCount(), 1); -+ prop2 = builder.property(0); -+ QCOMPARE(prop2.name(), QByteArray("bar")); -+ QCOMPARE(prop2.type(), QByteArray("int")); -+ QVERIFY(!prop2.isResettable()); -+ QVERIFY(!prop2.isDesignable()); -+ QVERIFY(prop2.isScriptable()); -+ QVERIFY(!prop2.isStored()); -+ QVERIFY(!prop2.isEditable()); -+ QVERIFY(!prop2.isUser()); -+ QVERIFY(!prop2.hasStdCppSet()); -+ QVERIFY(!prop2.isEnumOrFlag()); -+ QCOMPARE(prop2.index(), 0); -+ -+ // Perform index-based lookup again. -+ QCOMPARE(builder.indexOfProperty("foo"), -1); -+ QCOMPARE(builder.indexOfProperty("bar"), 0); -+ QCOMPARE(builder.indexOfProperty("baz"), -1); -+ -+ // Check for side-effects between the flags on prop2. -+ // Setting a flag to true shouldn't set any of the others to true. -+ // This checks for cut-and-paste bugs in the implementation where -+ // the flag code was pasted but the flag name was not changed. -+#define CLEAR_FLAGS() \ -+ do { \ -+ prop2.setReadable(false); \ -+ prop2.setWritable(false); \ -+ prop2.setResettable(false); \ -+ prop2.setDesignable(false); \ -+ prop2.setScriptable(false); \ -+ prop2.setStored(false); \ -+ prop2.setEditable(false); \ -+ prop2.setUser(false); \ -+ prop2.setStdCppSet(false); \ -+ prop2.setEnumOrFlag(false); \ -+ } while (0) -+#define COUNT_FLAGS() \ -+ ((prop2.isReadable() ? 1 : 0) + \ -+ (prop2.isWritable() ? 1 : 0) + \ -+ (prop2.isResettable() ? 1 : 0) + \ -+ (prop2.isDesignable() ? 1 : 0) + \ -+ (prop2.isScriptable() ? 1 : 0) + \ -+ (prop2.isStored() ? 1 : 0) + \ -+ (prop2.isEditable() ? 1 : 0) + \ -+ (prop2.isUser() ? 1 : 0) + \ -+ (prop2.hasStdCppSet() ? 1 : 0) + \ -+ (prop2.isEnumOrFlag() ? 1 : 0)) -+#define CHECK_FLAG(setFunc,isFunc) \ -+ do { \ -+ CLEAR_FLAGS(); \ -+ QCOMPARE(COUNT_FLAGS(), 0); \ -+ prop2.setFunc(true); \ -+ QVERIFY(prop2.isFunc()); \ -+ QCOMPARE(COUNT_FLAGS(), 1); \ -+ } while (0) -+ CHECK_FLAG(setReadable, isReadable); -+ CHECK_FLAG(setWritable, isWritable); -+ CHECK_FLAG(setResettable, isResettable); -+ CHECK_FLAG(setDesignable, isDesignable); -+ CHECK_FLAG(setScriptable, isScriptable); -+ CHECK_FLAG(setStored, isStored); -+ CHECK_FLAG(setEditable, isEditable); -+ CHECK_FLAG(setUser, isUser); -+ CHECK_FLAG(setStdCppSet, hasStdCppSet); -+ CHECK_FLAG(setEnumOrFlag, isEnumOrFlag); -+ -+ // Check that nothing else changed. -+ QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::Properties)); -+ -+ // Add property from prototype -+ QMetaProperty prototype = SomethingOfEverything::staticMetaObject.property(1); -+ QVERIFY(prototype.name() == QByteArray("prop")); -+ QMetaPropertyBuilder prototypeProp = builder.addProperty(prototype); -+ QCOMPARE(prototypeProp.name(), QByteArray("prop")); -+ QVERIFY(prototypeProp.hasNotifySignal()); -+ QCOMPARE(prototypeProp.notifySignal().signature(), QByteArray("propChanged(QString)")); -+ QCOMPARE(builder.methodCount(), 1); -+ QCOMPARE(builder.method(0).signature(), QByteArray("propChanged(QString)")); -+} -+ -+void tst_QMetaObjectBuilder::notifySignal() -+{ -+ QMetaObjectBuilder builder; -+ -+ QMetaPropertyBuilder prop = builder.addProperty("foo", "const QString &"); -+ builder.addSlot("setFoo(QString)"); -+ QMetaMethodBuilder notify = builder.addSignal("fooChanged(QString)"); -+ -+ QVERIFY(!prop.hasNotifySignal()); -+ QCOMPARE(prop.notifySignal().index(), 0); -+ -+ prop.setNotifySignal(notify); -+ QVERIFY(prop.hasNotifySignal()); -+ QCOMPARE(prop.notifySignal().index(), 1); -+ -+ prop.setNotifySignal(QMetaMethodBuilder()); -+ QVERIFY(!prop.hasNotifySignal()); -+ QCOMPARE(prop.notifySignal().index(), 0); -+ -+ prop.setNotifySignal(notify); -+ prop.removeNotifySignal(); -+ QVERIFY(!prop.hasNotifySignal()); -+ QCOMPARE(prop.notifySignal().index(), 0); -+ -+ QCOMPARE(builder.methodCount(), 2); -+ QCOMPARE(builder.propertyCount(), 1); -+ -+ // Check that nothing else changed except methods and properties. -+ QVERIFY(checkForSideEffects -+ (builder, QMetaObjectBuilder::Methods | QMetaObjectBuilder::Properties)); -+} -+ -+void tst_QMetaObjectBuilder::enumerator() -+{ -+ QMetaObjectBuilder builder; -+ -+ // Add an enumerator and check its attributes. -+ QMetaEnumBuilder enum1 = builder.addEnumerator("foo"); -+ QCOMPARE(enum1.name(), QByteArray("foo")); -+ QVERIFY(!enum1.isFlag()); -+ QCOMPARE(enum1.keyCount(), 0); -+ QCOMPARE(enum1.index(), 0); -+ QCOMPARE(builder.enumeratorCount(), 1); -+ -+ // Add another enumerator and check again. -+ QMetaEnumBuilder enum2 = builder.addEnumerator("bar"); -+ QCOMPARE(enum2.name(), QByteArray("bar")); -+ QVERIFY(!enum2.isFlag()); -+ QCOMPARE(enum2.keyCount(), 0); -+ QCOMPARE(enum2.index(), 1); -+ QCOMPARE(builder.enumeratorCount(), 2); -+ -+ // Perform index-based lookup. -+ QCOMPARE(builder.indexOfEnumerator("foo"), 0); -+ QCOMPARE(builder.indexOfEnumerator("bar"), 1); -+ QCOMPARE(builder.indexOfEnumerator("baz"), -1); -+ QCOMPARE(builder.enumerator(1).name(), QByteArray("bar")); -+ QCOMPARE(builder.enumerator(9).name(), QByteArray()); -+ -+ // Modify the attributes on enum1. -+ enum1.setIsFlag(true); -+ QCOMPARE(enum1.addKey("ABC", 0), 0); -+ QCOMPARE(enum1.addKey("DEF", 1), 1); -+ QCOMPARE(enum1.addKey("GHI", -1), 2); -+ -+ // Check that enum1 is changed, but enum2 is not. -+ QCOMPARE(enum1.name(), QByteArray("foo")); -+ QVERIFY(enum1.isFlag()); -+ QCOMPARE(enum1.keyCount(), 3); -+ QCOMPARE(enum1.index(), 0); -+ QCOMPARE(enum1.key(0), QByteArray("ABC")); -+ QCOMPARE(enum1.key(1), QByteArray("DEF")); -+ QCOMPARE(enum1.key(2), QByteArray("GHI")); -+ QCOMPARE(enum1.key(3), QByteArray()); -+ QCOMPARE(enum1.value(0), 0); -+ QCOMPARE(enum1.value(1), 1); -+ QCOMPARE(enum1.value(2), -1); -+ QCOMPARE(enum2.name(), QByteArray("bar")); -+ QVERIFY(!enum2.isFlag()); -+ QCOMPARE(enum2.keyCount(), 0); -+ QCOMPARE(enum2.index(), 1); -+ -+ // Modify the attributes on enum2. -+ enum2.setIsFlag(true); -+ QCOMPARE(enum2.addKey("XYZ", 10), 0); -+ QCOMPARE(enum2.addKey("UVW", 19), 1); -+ -+ // This time check that only method2 changed. -+ QCOMPARE(enum1.name(), QByteArray("foo")); -+ QVERIFY(enum1.isFlag()); -+ QCOMPARE(enum1.keyCount(), 3); -+ QCOMPARE(enum1.index(), 0); -+ QCOMPARE(enum1.key(0), QByteArray("ABC")); -+ QCOMPARE(enum1.key(1), QByteArray("DEF")); -+ QCOMPARE(enum1.key(2), QByteArray("GHI")); -+ QCOMPARE(enum1.key(3), QByteArray()); -+ QCOMPARE(enum1.value(0), 0); -+ QCOMPARE(enum1.value(1), 1); -+ QCOMPARE(enum1.value(2), -1); -+ QCOMPARE(enum2.name(), QByteArray("bar")); -+ QVERIFY(enum2.isFlag()); -+ QCOMPARE(enum2.keyCount(), 2); -+ QCOMPARE(enum2.index(), 1); -+ QCOMPARE(enum2.key(0), QByteArray("XYZ")); -+ QCOMPARE(enum2.key(1), QByteArray("UVW")); -+ QCOMPARE(enum2.key(2), QByteArray()); -+ QCOMPARE(enum2.value(0), 10); -+ QCOMPARE(enum2.value(1), 19); -+ -+ // Remove enum1 key -+ enum1.removeKey(2); -+ QCOMPARE(enum1.name(), QByteArray("foo")); -+ QVERIFY(enum1.isFlag()); -+ QCOMPARE(enum1.keyCount(), 2); -+ QCOMPARE(enum1.index(), 0); -+ QCOMPARE(enum1.key(0), QByteArray("ABC")); -+ QCOMPARE(enum1.key(1), QByteArray("DEF")); -+ QCOMPARE(enum1.key(2), QByteArray()); -+ QCOMPARE(enum1.value(0), 0); -+ QCOMPARE(enum1.value(1), 1); -+ QCOMPARE(enum1.value(2), -1); -+ QCOMPARE(enum2.name(), QByteArray("bar")); -+ QVERIFY(enum2.isFlag()); -+ QCOMPARE(enum2.keyCount(), 2); -+ QCOMPARE(enum2.index(), 1); -+ QCOMPARE(enum2.key(0), QByteArray("XYZ")); -+ QCOMPARE(enum2.key(1), QByteArray("UVW")); -+ QCOMPARE(enum2.key(2), QByteArray()); -+ QCOMPARE(enum2.value(0), 10); -+ QCOMPARE(enum2.value(1), 19); -+ -+ // Remove enum1 and check that enum2 becomes index 0. -+ builder.removeEnumerator(0); -+ QCOMPARE(builder.enumeratorCount(), 1); -+ enum2 = builder.enumerator(0); -+ QCOMPARE(enum2.name(), QByteArray("bar")); -+ QVERIFY(enum2.isFlag()); -+ QCOMPARE(enum2.keyCount(), 2); -+ QCOMPARE(enum2.index(), 0); -+ QCOMPARE(enum2.key(0), QByteArray("XYZ")); -+ QCOMPARE(enum2.key(1), QByteArray("UVW")); -+ QCOMPARE(enum2.key(2), QByteArray()); -+ QCOMPARE(enum2.value(0), 10); -+ QCOMPARE(enum2.value(1), 19); -+ -+ // Perform index-based lookup again. -+ QCOMPARE(builder.indexOfEnumerator("foo"), -1); -+ QCOMPARE(builder.indexOfEnumerator("bar"), 0); -+ QCOMPARE(builder.indexOfEnumerator("baz"), -1); -+ -+ // Check that nothing else changed. -+ QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::Enumerators)); -+} -+ -+void tst_QMetaObjectBuilder::classInfo() -+{ -+ QMetaObjectBuilder builder; -+ -+ // Add two items of class information and check their attributes. -+ QCOMPARE(builder.addClassInfo("foo", "value1"), 0); -+ QCOMPARE(builder.addClassInfo("bar", "value2"), 1); -+ QCOMPARE(builder.classInfoName(0), QByteArray("foo")); -+ QCOMPARE(builder.classInfoValue(0), QByteArray("value1")); -+ QCOMPARE(builder.classInfoName(1), QByteArray("bar")); -+ QCOMPARE(builder.classInfoValue(1), QByteArray("value2")); -+ QCOMPARE(builder.classInfoName(9), QByteArray()); -+ QCOMPARE(builder.classInfoValue(9), QByteArray()); -+ QCOMPARE(builder.classInfoCount(), 2); -+ -+ // Perform index-based lookup. -+ QCOMPARE(builder.indexOfClassInfo("foo"), 0); -+ QCOMPARE(builder.indexOfClassInfo("bar"), 1); -+ QCOMPARE(builder.indexOfClassInfo("baz"), -1); -+ -+ // Remove the first one and check again. -+ builder.removeClassInfo(0); -+ QCOMPARE(builder.classInfoName(0), QByteArray("bar")); -+ QCOMPARE(builder.classInfoValue(0), QByteArray("value2")); -+ QCOMPARE(builder.classInfoCount(), 1); -+ -+ // Perform index-based lookup again. -+ QCOMPARE(builder.indexOfClassInfo("foo"), -1); -+ QCOMPARE(builder.indexOfClassInfo("bar"), 0); -+ QCOMPARE(builder.indexOfClassInfo("baz"), -1); -+ -+ // Check that nothing else changed. -+ QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::ClassInfos)); -+} -+ -+#ifdef Q_NO_DATA_RELOCATION -+const QMetaObject& staticMetaObjectGlobal() -+{ -+ return QObject::staticMetaObject; -+} -+ -+const QMetaObject& staticMetaObjectLocal() -+{ -+ return *meta; -+} -+#endif -+ -+ -+void tst_QMetaObjectBuilder::relatedMetaObject() -+{ -+ QMetaObjectBuilder builder; -+ -+ // Add two related meta objects and check their attributes. -+#ifdef Q_NO_DATA_RELOCATION -+ meta = &staticMetaObject; -+ QCOMPARE(builder.addRelatedMetaObject(&staticMetaObjectGlobal), 0); -+ QCOMPARE(builder.addRelatedMetaObject(&staticMetaObjectLocal), 1); -+#else -+ QCOMPARE(builder.addRelatedMetaObject(&QObject::staticMetaObject), 0); -+ QCOMPARE(builder.addRelatedMetaObject(&staticMetaObject), 1); -+#endif -+ QVERIFY(builder.relatedMetaObject(0) == &QObject::staticMetaObject); -+ QVERIFY(builder.relatedMetaObject(1) == &staticMetaObject); -+ QCOMPARE(builder.relatedMetaObjectCount(), 2); -+ -+ // Remove the first one and check again. -+ builder.removeRelatedMetaObject(0); -+ QVERIFY(builder.relatedMetaObject(0) == &staticMetaObject); -+ QCOMPARE(builder.relatedMetaObjectCount(), 1); -+ -+ // Check that nothing else changed. -+ QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::RelatedMetaObjects)); -+} -+ -+static int smetacall(QMetaObject::Call, int, void **) -+{ -+ return 0; -+} -+ -+void tst_QMetaObjectBuilder::staticMetacall() -+{ -+ QMetaObjectBuilder builder; -+ QVERIFY(!builder.staticMetacallFunction()); -+ builder.setStaticMetacallFunction(smetacall); -+ QVERIFY(builder.staticMetacallFunction() == smetacall); -+ QVERIFY(checkForSideEffects(builder, QMetaObjectBuilder::StaticMetacall)); -+} -+ -+// Copy the entire contents of a static QMetaObject and then check -+// that QMetaObjectBuilder will produce an exact copy as output. -+void tst_QMetaObjectBuilder::copyMetaObject() -+{ -+ QMetaObjectBuilder builder(&QObject::staticMetaObject); -+ QMetaObject *meta = builder.toMetaObject(); -+ QVERIFY(sameMetaObject(meta, &QObject::staticMetaObject)); -+ qFree(meta); -+ -+ QMetaObjectBuilder builder2(&staticMetaObject); -+ meta = builder2.toMetaObject(); -+ QVERIFY(sameMetaObject(meta, &staticMetaObject)); -+ qFree(meta); -+ -+ QMetaObjectBuilder builder3(&SomethingOfEverything::staticMetaObject); -+ meta = builder3.toMetaObject(); -+ QVERIFY(sameMetaObject(meta, &SomethingOfEverything::staticMetaObject)); -+ qFree(meta); -+} -+ -+// Serialize and deserialize a meta object and check that -+// it round-trips to the exact same value. -+void tst_QMetaObjectBuilder::serialize() -+{ -+ // Full QMetaObjectBuilder -+ { -+ QMetaObjectBuilder builder(&SomethingOfEverything::staticMetaObject); -+ QMetaObject *meta = builder.toMetaObject(); -+ -+ QByteArray data; -+ QDataStream stream(&data, QIODevice::WriteOnly | QIODevice::Append); -+ builder.serialize(stream); -+ -+ QMetaObjectBuilder builder2; -+ QDataStream stream2(data); -+ QMap references; -+ references.insert(QByteArray("QLocale"), &QLocale::staticMetaObject); -+ builder2.deserialize(stream2, references); -+#ifdef Q_NO_DATA_RELOCATION -+ //the related meta objects will be function pointers -+ //which you have to add to the builder manually. -+ builder2.addRelatedMetaObject(QLocale::getStaticMetaObject); -+#endif -+ builder2.setStaticMetacallFunction(builder.staticMetacallFunction()); -+ QMetaObject *meta2 = builder2.toMetaObject(); -+ -+ QVERIFY(sameMetaObject(meta, meta2)); -+ qFree(meta); -+ qFree(meta2); -+ } -+ -+ // Partial QMetaObjectBuilder -+ { -+ QMetaObjectBuilder builder; -+ builder.setClassName("Test"); -+ builder.addProperty("foo", "int"); -+ -+ QByteArray data; -+ QDataStream stream(&data, QIODevice::WriteOnly | QIODevice::Append); -+ builder.serialize(stream); -+ -+ QMetaObjectBuilder builder2; -+ QDataStream stream2(data); -+ builder2.deserialize(stream2, QMap()); -+ -+ QCOMPARE(builder.superClass(), builder2.superClass()); -+ QCOMPARE(builder.className(), builder2.className()); -+ QCOMPARE(builder.propertyCount(), builder2.propertyCount()); -+ QCOMPARE(builder.property(0).name(), builder2.property(0).name()); -+ QCOMPARE(builder.property(0).type(), builder2.property(0).type()); -+ } -+} -+ -+// Check that removing a method updates notify signals appropriately -+void tst_QMetaObjectBuilder::removeNotifySignal() -+{ -+ QMetaObjectBuilder builder; -+ -+ QMetaMethodBuilder method1 = builder.addSignal("foo(const QString&, int)"); -+ QMetaMethodBuilder method2 = builder.addSignal("bar(QString)"); -+ -+ // Setup property -+ QMetaPropertyBuilder prop = builder.addProperty("prop", "const QString &"); -+ prop.setNotifySignal(method2); -+ QVERIFY(prop.hasNotifySignal()); -+ QCOMPARE(prop.notifySignal().index(), 1); -+ -+ // Remove non-notify signal -+ builder.removeMethod(0); -+ QVERIFY(prop.hasNotifySignal()); -+ QCOMPARE(prop.notifySignal().index(), 0); -+ -+ // Remove notify signal -+ builder.removeMethod(0); -+ QVERIFY(!prop.hasNotifySignal()); -+} -+ -+// Check that the only changes to a "builder" relative to the default -+// state is specified by "members". -+bool tst_QMetaObjectBuilder::checkForSideEffects -+ (const QMetaObjectBuilder& builder, -+ QMetaObjectBuilder::AddMembers members) -+{ -+ if ((members & QMetaObjectBuilder::ClassName) == 0) { -+ if (!builder.className().isEmpty()) -+ return false; -+ } -+ -+ if ((members & QMetaObjectBuilder::SuperClass) == 0) { -+ if (builder.superClass() != &QObject::staticMetaObject) -+ return false; -+ } -+ -+ if ((members & QMetaObjectBuilder::Methods) == 0) { -+ if (builder.methodCount() != 0) -+ return false; -+ } -+ -+ if ((members & QMetaObjectBuilder::Constructors) == 0) { -+ if (builder.constructorCount() != 0) -+ return false; -+ } -+ -+ if ((members & QMetaObjectBuilder::Properties) == 0) { -+ if (builder.propertyCount() != 0) -+ return false; -+ } -+ -+ if ((members & QMetaObjectBuilder::Enumerators) == 0) { -+ if (builder.enumeratorCount() != 0) -+ return false; -+ } -+ -+ if ((members & QMetaObjectBuilder::ClassInfos) == 0) { -+ if (builder.classInfoCount() != 0) -+ return false; -+ } -+ -+ if ((members & QMetaObjectBuilder::RelatedMetaObjects) == 0) { -+ if (builder.relatedMetaObjectCount() != 0) -+ return false; -+ } -+ -+ if ((members & QMetaObjectBuilder::StaticMetacall) == 0) { -+ if (builder.staticMetacallFunction() != 0) -+ return false; -+ } -+ -+ return true; -+} -+ -+static bool sameMethod(const QMetaMethod& method1, const QMetaMethod& method2) -+{ -+ if (QByteArray(method1.signature()) != QByteArray(method2.signature())) -+ return false; -+ -+ if (QByteArray(method1.typeName()) != QByteArray(method2.typeName())) -+ return false; -+ -+ if (method1.parameterNames() != method2.parameterNames()) -+ return false; -+ -+ if (QByteArray(method1.tag()) != QByteArray(method2.tag())) -+ return false; -+ -+ if (method1.access() != method2.access()) -+ return false; -+ -+ if (method1.methodType() != method2.methodType()) -+ return false; -+ -+ if (method1.attributes() != method2.attributes()) -+ return false; -+ -+ return true; -+} -+ -+static bool sameProperty(const QMetaProperty& prop1, const QMetaProperty& prop2) -+{ -+ if (QByteArray(prop1.name()) != QByteArray(prop2.name())) -+ return false; -+ -+ if (QByteArray(prop1.typeName()) != QByteArray(prop2.typeName())) -+ return false; -+ -+ if (prop1.isReadable() != prop2.isReadable() || -+ prop1.isWritable() != prop2.isWritable() || -+ prop1.isResettable() != prop2.isResettable() || -+ prop1.isDesignable() != prop2.isDesignable() || -+ prop1.isScriptable() != prop2.isScriptable() || -+ prop1.isStored() != prop2.isStored() || -+ prop1.isEditable() != prop2.isEditable() || -+ prop1.isUser() != prop2.isUser() || -+ prop1.isFlagType() != prop2.isFlagType() || -+ prop1.isEnumType() != prop2.isEnumType() || -+ prop1.hasNotifySignal() != prop2.hasNotifySignal() || -+ prop1.hasStdCppSet() != prop2.hasStdCppSet()) -+ return false; -+ -+ if (prop1.hasNotifySignal()) { -+ if (prop1.notifySignalIndex() != prop2.notifySignalIndex()) -+ return false; -+ } -+ -+ return true; -+} -+ -+static bool sameEnumerator(const QMetaEnum& enum1, const QMetaEnum& enum2) -+{ -+ if (QByteArray(enum1.name()) != QByteArray(enum2.name())) -+ return false; -+ -+ if (enum1.isFlag() != enum2.isFlag()) -+ return false; -+ -+ if (enum1.keyCount() != enum2.keyCount()) -+ return false; -+ -+ for (int index = 0; index < enum1.keyCount(); ++index) { -+ if (QByteArray(enum1.key(index)) != QByteArray(enum2.key(index))) -+ return false; -+ if (enum1.value(index) != enum2.value(index)) -+ return false; -+ } -+ -+ if (QByteArray(enum1.scope()) != QByteArray(enum2.scope())) -+ return false; -+ -+ return true; -+} -+ -+// Determine if two meta objects are identical. -+bool tst_QMetaObjectBuilder::sameMetaObject -+ (const QMetaObject *meta1, const QMetaObject *meta2) -+{ -+ int index; -+ -+ if (strcmp(meta1->className(), meta2->className()) != 0) -+ return false; -+ -+ if (meta1->superClass() != meta2->superClass()) -+ return false; -+ -+ if (meta1->constructorCount() != meta2->constructorCount() || -+ meta1->methodCount() != meta2->methodCount() || -+ meta1->enumeratorCount() != meta2->enumeratorCount() || -+ meta1->propertyCount() != meta2->propertyCount() || -+ meta1->classInfoCount() != meta2->classInfoCount()) -+ return false; -+ -+ for (index = 0; index < meta1->constructorCount(); ++index) { -+ if (!sameMethod(meta1->constructor(index), meta2->constructor(index))) -+ return false; -+ } -+ -+ for (index = 0; index < meta1->methodCount(); ++index) { -+ if (!sameMethod(meta1->method(index), meta2->method(index))) -+ return false; -+ } -+ -+ for (index = 0; index < meta1->propertyCount(); ++index) { -+ if (!sameProperty(meta1->property(index), meta2->property(index))) -+ return false; -+ } -+ -+ for (index = 0; index < meta1->enumeratorCount(); ++index) { -+ if (!sameEnumerator(meta1->enumerator(index), meta2->enumerator(index))) -+ return false; -+ } -+ -+ for (index = 0; index < meta1->classInfoCount(); ++index) { -+ if (QByteArray(meta1->classInfo(index).name()) != -+ QByteArray(meta2->classInfo(index).name())) -+ return false; -+ if (QByteArray(meta1->classInfo(index).value()) != -+ QByteArray(meta2->classInfo(index).value())) -+ return false; -+ } -+ -+ const QMetaObject **objects1 = 0; -+ const QMetaObject **objects2 = 0; -+ if (meta1->d.data[0] == meta2->d.data[0] && meta1->d.data[0] >= 2) { -+ QMetaObjectExtraData *extra1 = (QMetaObjectExtraData *)(meta1->d.extradata); -+ QMetaObjectExtraData *extra2 = (QMetaObjectExtraData *)(meta2->d.extradata); -+ if (extra1 && !extra2) -+ return false; -+ if (extra2 && !extra1) -+ return false; -+ if (extra1 && extra2) { -+ if (extra1->static_metacall != extra2->static_metacall) -+ return false; -+ //objects1 = extra1->objects; -+ //objects2 = extra1->objects; -+ } -+ } else if (meta1->d.data[0] == meta2->d.data[0] && meta1->d.data[0] == 1) { -+ objects1 = (const QMetaObject **)(meta1->d.extradata); -+ objects2 = (const QMetaObject **)(meta2->d.extradata); -+ } -+ if (objects1 && !objects2) -+ return false; -+ if (objects2 && !objects1) -+ return false; -+ if (objects1 && objects2) { -+ while (*objects1 != 0 && *objects2 != 0) { -+ if (*objects1 != *objects2) -+ return false; -+ ++objects1; -+ ++objects2; -+ } -+ } -+ -+ return true; -+} -+ -+QTEST_MAIN(tst_QMetaObjectBuilder) -+ -+#include "tst_qmetaobjectbuilder_47.moc" diff --git a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/gcc-scope.patch b/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/gcc-scope.patch deleted file mode 100644 index f01ee9f4df..0000000000 --- a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/gcc-scope.patch +++ /dev/null @@ -1,48 +0,0 @@ - -Fixes issues like below - -| qaudiooutput_pulse.cpp: In member function 'bool QPulseAudioOutput::open()': -| qaudiooutput_pulse.cpp:255:75: error: '::getpid' has not been declared -| make[3]: *** [../../../build/Debug/qtmedia_pulse/qaudiooutput_pulse.o] Error 1 - -Signed-off-by: Khem Raj - -Upstream-Status: Pending - -Index: qt-mobility-opensource-src-1.2.0/plugins/multimedia/pulseaudio/qaudiooutput_pulse.cpp -=================================================================== ---- qt-mobility-opensource-src-1.2.0.orig/plugins/multimedia/pulseaudio/qaudiooutput_pulse.cpp 2012-03-31 07:26:24.457018348 -0700 -+++ qt-mobility-opensource-src-1.2.0/plugins/multimedia/pulseaudio/qaudiooutput_pulse.cpp 2012-03-31 07:27:53.309022654 -0700 -@@ -46,7 +46,7 @@ - #include "qaudiodeviceinfo_pulse.h" - #include "qpulseaudioengine.h" - #include "qpulsehelpers.h" -- -+#include - QT_BEGIN_NAMESPACE - - const int PeriodTimeMs = 20; -Index: qt-mobility-opensource-src-1.2.0/plugins/multimedia/pulseaudio/qaudioinput_pulse.cpp -=================================================================== ---- qt-mobility-opensource-src-1.2.0.orig/plugins/multimedia/pulseaudio/qaudioinput_pulse.cpp 2012-03-31 07:29:19.997026831 -0700 -+++ qt-mobility-opensource-src-1.2.0/plugins/multimedia/pulseaudio/qaudioinput_pulse.cpp 2012-03-31 07:29:39.541027625 -0700 -@@ -46,6 +46,7 @@ - #include "qaudiodeviceinfo_pulse.h" - #include "qpulseaudioengine.h" - #include "qpulsehelpers.h" -+#include - - QT_BEGIN_NAMESPACE - -Index: qt-mobility-opensource-src-1.2.0/plugins/multimedia/pulseaudio/qpulseaudioengine.cpp -=================================================================== ---- qt-mobility-opensource-src-1.2.0.orig/plugins/multimedia/pulseaudio/qpulseaudioengine.cpp 2012-03-31 07:33:24.805038719 -0700 -+++ qt-mobility-opensource-src-1.2.0/plugins/multimedia/pulseaudio/qpulseaudioengine.cpp 2012-03-31 07:33:46.889039783 -0700 -@@ -46,6 +46,7 @@ - #include "qaudiodeviceinfo_pulse.h" - #include "qaudiooutput_pulse.h" - #include "qpulsehelpers.h" -+#include - - QT_BEGIN_NAMESPACE - diff --git a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/qt-mobility-configure.patch b/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/qt-mobility-configure.patch deleted file mode 100644 index d61ec03341..0000000000 --- a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/qt-mobility-configure.patch +++ /dev/null @@ -1,17 +0,0 @@ -When building qt-mobility, the qa_configure stage failed because the catalogue /usr/lib -is used in some Makefiles within configure tests. We manually removed this catalogue. - -Upstream-Status: Inappropriate [embedded] -Signed-off-by: Dmitry Cherukhin - ---- qt-mobility-opensource-src-1.2.0/configure.orig 2011-05-10 10:06:01.000000000 +0200 -+++ qt-mobility-opensource-src-1.2.0/configure 2011-11-08 12:34:56.347645968 +0100 -@@ -583,6 +583,8 @@ - fi - - $QMAKE_EXEC $QMKSPEC "$relpath/config.tests/$2/$2.pro" 2>> "$CONFIG_LOG" >> "$CONFIG_LOG" -+ cp Makefile Makefile.old -+ sed -e 's@-L/usr/lib@@' Makefile - printf " ." - "$MAKE" clean >> "$CONFIG_LOG" - printf "." diff --git a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/qt-mobility-no-opengl.patch b/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/qt-mobility-no-opengl.patch deleted file mode 100644 index 1724995072..0000000000 --- a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/qt-mobility-no-opengl.patch +++ /dev/null @@ -1,38 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -diff --git a/examples/declarative-camera/declarative-camera.pro b/examples/declarative-camera/declarative-camera.pro -index 8164fbc..54fd8ad 100644 ---- a/examples/declarative-camera/declarative-camera.pro -+++ b/examples/declarative-camera/declarative-camera.pro -@@ -5,10 +5,10 @@ TEMPLATE=app - - QT += declarative network - --!maemo5 { -- contains(QT_CONFIG, opengl) { -- QT += opengl -- } -+contains(QT_CONFIG, opengl): !maemo5 { -+ QT += opengl -+} else { -+ DEFINES += QT_NO_OPENGL - } - - win32 { -diff --git a/examples/videographicsitem/videographicsitem.pro b/examples/videographicsitem/videographicsitem.pro -index 8461beb..eedee2f 100644 ---- a/examples/videographicsitem/videographicsitem.pro -+++ b/examples/videographicsitem/videographicsitem.pro -@@ -9,7 +9,11 @@ MOBILITY = multimedia - - QMAKE_RPATHDIR += $$DESTDIR - --!symbian:contains(QT_CONFIG, opengl): QT += opengl -+contains(QT_CONFIG, opengl): !symbian { -+ QT += opengl -+} else { -+ DEFINES += QT_NO_OPENGL -+} - - HEADERS += videoplayer.h \ - videoitem.h diff --git a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/qt-mobility-no-xvideo.patch b/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/qt-mobility-no-xvideo.patch deleted file mode 100644 index 6046752aa7..0000000000 --- a/meta-oe/recipes-qt/qt-mobility/qt-mobility-1.2.0/qt-mobility-no-xvideo.patch +++ /dev/null @@ -1,26 +0,0 @@ -QMake pro files don't explicitly define QT_NO_XVIDEO if the -configuration lacks xvideo, but plugins code relies on this define. - -Signed-off-by: Hongxu Jia -Upstream-Status: Inappropriate [configuration] ---- - plugins/multimedia/gstreamer/gstreamer.pro | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/plugins/multimedia/gstreamer/gstreamer.pro b/plugins/multimedia/gstreamer/gstreamer.pro ---- a/plugins/multimedia/gstreamer/gstreamer.pro -+++ b/plugins/multimedia/gstreamer/gstreamer.pro -@@ -19,6 +19,10 @@ LIBS += \ - -lasound - } - -+unix:!contains(QT_CONFIG, xvideo) { -+ DEFINES += QT_NO_XVIDEO -+} -+ - CONFIG += link_pkgconfig - - PKGCONFIG += \ --- -1.8.1.2 - diff --git a/meta-oe/recipes-qt/qt-mobility/qt-mobility-embedded_1.2.0.bb b/meta-oe/recipes-qt/qt-mobility/qt-mobility-embedded_1.2.0.bb deleted file mode 100644 index 355f183b87..0000000000 --- a/meta-oe/recipes-qt/qt-mobility/qt-mobility-embedded_1.2.0.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "Mobile device API extensions for Qt/Embedded 4.x" -SECTION = "libs" -qtm_embedded := "embedded" -qtm_dir = "qtopia" -qtm_glflags := "-=opengl" -qtm_extra_config := "gstreamer-photography_enabled = no" - -inherit qt4e -require qt-mobility_${PV}.inc - diff --git a/meta-oe/recipes-qt/qt-mobility/qt-mobility-x11_1.2.0.bb b/meta-oe/recipes-qt/qt-mobility/qt-mobility-x11_1.2.0.bb deleted file mode 100644 index 380e3cb794..0000000000 --- a/meta-oe/recipes-qt/qt-mobility/qt-mobility-x11_1.2.0.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "Mobile device API extensions for Qt/X11 4.x" -DEPENDS = "libxv libxext" -SECTION = "x11/libs" -qtm_embedded := "" -qtm_dir = "qt4" -qtm_glflags := "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '+=opengl', '-=opengl', d)} " -qtm_extra_config := "" - -inherit qt4x11 -require qt-mobility_${PV}.inc diff --git a/meta-oe/recipes-qt/qt-mobility/qt-mobility_1.2.0.inc b/meta-oe/recipes-qt/qt-mobility/qt-mobility_1.2.0.inc deleted file mode 100644 index 377d9c7be5..0000000000 --- a/meta-oe/recipes-qt/qt-mobility/qt-mobility_1.2.0.inc +++ /dev/null @@ -1,121 +0,0 @@ -HOMEPAGE = "http://qt-project.org/" - -# This creates the dependency on meta-multimedia, which is wrong, but hopefully -# this will be moved to separate meta-qt4 soon -DEPENDS += "gstreamer util-linux alsa-lib gst-plugins-base" - -inherit bluetooth - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}" -# This is all wrong, but nobody cares about qt-mobility anymore -# add bluez5 just to silence: -# qt-mobility-embedded-1.2.0: qt-mobility-embedded: invalid PACKAGECONFIG: bluez5 [invalid-packageconfig] -# qt-mobility-x11-1.2.0: qt-mobility-x11: invalid PACKAGECONFIG: bluez5 [invalid-packageconfig] -# but without --disable options it still autodetects bluez and pulseaudio from sysroot -PACKAGECONFIG[bluez4] = ",,bluez4" -PACKAGECONFIG[bluez5] = ",,bluez5" -PACKAGECONFIG[pulseaudio] = ",,pulseaudio" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=fbc093901857fcd118f065f900982c24 \ - file://LGPL_EXCEPTION.txt;md5=411080a56ff917a5a1aa08c98acae354" - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/qt-mobility-${PV}:" -SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/qt-mobility/qt-mobility-opensource-src-${PV}.tar.gz/ea5db5a8d3dd4709c2926dceda646bd8/qt-mobility-opensource-src-${PV}.tar.gz \ - file://qt-mobility-configure.patch \ - file://0001-gstvideoconnector-fixed-buffers-allocation.patch \ - file://0002-Remove-unnecessary-rpaths-from-qml_device-example.patch \ - file://qt-mobility-no-opengl.patch \ - file://gcc-scope.patch \ - file://qt-mobility-no-xvideo.patch \ - file://fix_metaobjectbuilder_build_err.patch \ - file://0001-fix-embedded-usage-doesn-t-work-outside-of-Qt.patch \ - file://fix-compile-error-no-bluez.patch \ - " - -SRC_URI[md5sum]="ea5db5a8d3dd4709c2926dceda646bd8" -SRC_URI[sha256sum]="ee3c88975e04139ac9589f76d4be646d44fcbc4c8c1cf2db621abc154cf0ba44" - -PR = "r8" - -S = "${WORKDIR}/qt-mobility-opensource-src-${PV}" - -qtm_bin := "/usr/bin/${qtm_dir}" -qtm_lib := "/usr/lib" -qtm_include := "/usr/include/${qtm_dir}" -qtm_examples := "/usr/bin/${qtm_dir}/examples/QtMobility" -qtm_demos := "/usr/bin/${qtm_dir}/demos/QtMobility" -qtm_plugins := "/usr/lib/${qtm_dir}/plugins/QtMobility" -qtm_data := "/usr/share/${qtm_dir}" -qtm_imports := "/usr/lib/${qtm_dir}/imports" - -QTM_MODULES_LIST ?= "bearer contacts gallery location publishsubscribe messaging multimedia \ -systeminfo serviceframework sensors versit organizer feedback connectivity" - -do_configure_prepend() { - cp qtmobility.pro qtmobility.pro.old - sed -e 's@...QT_INSTALL_DATA.@${qtm_data}@' qtmobility.pro - for NAME in plugins/declarative/*/*.pro - do - cp $NAME $NAME.old - sed -e 's@...QT_INSTALL_IMPORTS.@${qtm_imports}@' <$NAME.old >$NAME - done - cp staticconfig.pri staticconfig.pri.old - echo "include(${STAGING_DATADIR}/${qtm_dir}/mkspecs/qconfig.pri)" >staticconfig.pri - cat staticconfig.pri.old >>staticconfig.pri - - cat > features/platformconfig/oe.pri <>./config.pri - echo QT_MOBILITY_LIB = ${qtm_lib} >>./config.pri - echo QT_MOBILITY_INCLUDE = ${qtm_include} >>./config.pri - echo QT_MOBILITY_PLUGINS = ${qtm_plugins} >>./config.pri - echo QT_MOBILITY_EXAMPLES = ${qtm_examples} >>./config.pri - echo QT_MOBILITY_DEMOS = ${qtm_demos} >>./config.pri - echo QT_CONFIG ${qtm_glflags} >>./config.pri - echo CONFIG += ${qtm_embedded} >>./config.pri -} - -do_install() { - for NAME in */*.prf - do - cp $NAME $NAME.old - sed -e 's@/usr@${STAGING_BINDIR}/..@' <$NAME.old >$NAME - done - oe_runmake install INSTALL_ROOT=${D} -} - -PACKAGES = "${PN}-dbg ${PN} ${PN}-dev" - -FILES_${PN}-dbg = "${qtm_bin}/.debug ${qtm_examples}/.debug ${qtm_demos}/.debug \ - ${qtm_lib}/.debug ${qtm_plugins}/*/.debug ${qtm_imports}/*/.debug \ - ${qtm_imports}/*/*/.debug ${bindir}/.debug /usr/src/debug" -FILES_${PN} = "${qtm_bin} ${qtm_examples} ${qtm_demos} ${qtm_lib}/*.so.1* ${qtm_plugins} ${qtm_imports}" -FILES_${PN}-dev = "${exec_prefix}" diff --git a/meta-oe/recipes-qt/qtserialport/qtserialport-e_5.1.0.bb b/meta-oe/recipes-qt/qtserialport/qtserialport-e_5.1.0.bb deleted file mode 100644 index c466562bbf..0000000000 --- a/meta-oe/recipes-qt/qtserialport/qtserialport-e_5.1.0.bb +++ /dev/null @@ -1,5 +0,0 @@ -inherit qt4e - -require qtserialport.inc - -SRCREV = "22e45f0b0f956c025339d72ad53dca57ef684858" diff --git a/meta-oe/recipes-qt/qwt/files/qwt6-fix-linking-with-ld-gold.patch b/meta-oe/recipes-qt/qwt/files/qwt6-fix-linking-with-ld-gold.patch deleted file mode 100644 index 1fdd9cf4b3..0000000000 --- a/meta-oe/recipes-qt/qwt/files/qwt6-fix-linking-with-ld-gold.patch +++ /dev/null @@ -1,34 +0,0 @@ -Upstream-Status: Pending - -diff -urpN qwt-6.0.1_orig/qwtbuild.pri qwt-6.0.1/qwtbuild.pri ---- qwt-6.0.1_orig/qwtbuild.pri 2011-08-02 00:33:53.000000000 +1000 -+++ qwt-6.0.1/qwtbuild.pri 2012-08-21 10:27:30.721990849 +1000 -@@ -67,3 +67,13 @@ unix { - error( "local build will conflict with $${QMAKE_LIBDIR_QT}/libqwt.*" ) - } - } -+ -+###################################################################### -+# libs for building qwt -+###################################################################### -+ -+unix { -+ # Some linkers require explicit linking with librt (eg ld.gold) -+ LIBS += -lrt -+} -+ -diff -urpN qwt-6.0.1_orig/qwt.prf qwt-6.0.1/qwt.prf ---- qwt-6.0.1_orig/qwt.prf 2011-08-02 00:33:51.000000000 +1000 -+++ qwt-6.0.1/qwt.prf 2012-08-21 11:19:49.435240439 +1000 -@@ -9,6 +9,11 @@ - - include ( ./qwtconfig.pri ) - -+unix { -+ -+ LIBS += -lrt -+} -+ - contains(QWT_CONFIG, QwtDll) { - - DEFINES *= QWT_DLL diff --git a/meta-oe/recipes-qt/qwt/files/qwt6.patch b/meta-oe/recipes-qt/qwt/files/qwt6.patch deleted file mode 100644 index 4fb1a9bdf8..0000000000 --- a/meta-oe/recipes-qt/qwt/files/qwt6.patch +++ /dev/null @@ -1,86 +0,0 @@ -- add support for SUFFIX_STR ---- -diff --git a/examples/examples.pri b/examples/examples.pri -index a6911c8..854ce89 100644 ---- a/examples/examples.pri -+++ b/examples/examples.pri -@@ -13,9 +13,17 @@ include( $${QWT_ROOT}/qwtbuild.pri ) - - TEMPLATE = app - -+SUFFIX_STR = -+CONFIG(debug, debug|release) { -+ SUFFIX_STR = $${DEBUG_SUFFIX} -+} -+else { -+ SUFFIX_STR = $${RELEASE_SUFFIX} -+} -+ - INCLUDEPATH += $${QWT_ROOT}/src - DEPENDPATH += $${QWT_ROOT}/src --DESTDIR = $${QWT_ROOT}/examples/bin -+DESTDIR = $${QWT_ROOT}/examples/bin$${SUFFIX_STR} - - QMAKE_RPATHDIR *= $${QWT_ROOT}/lib - -diff --git a/qwtconfig.pri b/qwtconfig.pri -index b0d2110..be119b7 100644 ---- a/qwtconfig.pri -+++ b/qwtconfig.pri -@@ -30,6 +30,13 @@ QWT_INSTALL_DOCS = $${QWT_INSTALL_PREFIX}/doc - QWT_INSTALL_HEADERS = $${QWT_INSTALL_PREFIX}/include - QWT_INSTALL_LIBS = $${QWT_INSTALL_PREFIX}/lib - -+DEBUG_SUFFIX = -+RELEASE_SUFFIX = -+ -+win32 { -+ DEBUG_SUFFIX = d -+} -+ - ###################################################################### - # Designer plugin - ###################################################################### -diff --git a/src/src.pro b/src/src.pro -index beb7125..ebf8ea6 100644 ---- a/src/src.pro -+++ b/src/src.pro -@@ -13,8 +13,16 @@ QWT_ROOT = $${PWD}/.. - include( $${QWT_ROOT}/qwtconfig.pri ) - include( $${QWT_ROOT}/qwtbuild.pri ) - -+SUFFIX_STR = -+CONFIG(debug, debug|release) { -+ SUFFIX_STR = $${DEBUG_SUFFIX} -+} -+else { -+ SUFFIX_STR = $${RELEASE_SUFFIX} -+} -+ - TEMPLATE = lib --TARGET = $$qtLibraryTarget(qwt) -+TARGET = $$qtLibraryTarget(qwt)$${SUFFIX_STR} - - DESTDIR = $${QWT_ROOT}/lib - -diff --git a/textengines/mathml/mathml.pro b/textengines/mathml/mathml.pro -index b0ed9f9..403828b 100644 ---- a/textengines/mathml/mathml.pro -+++ b/textengines/mathml/mathml.pro -@@ -12,7 +12,15 @@ message(Beside the Qwt license you also have to take care of its license. ) - - include( $${PWD}/../textengines.pri ) - --TARGET = $$qtLibraryTarget(qwtmathml) -+SUFFIX_STR = -+CONFIG(debug, debug|release) { -+ SUFFIX_STR = $${DEBUG_SUFFIX} -+} -+else { -+ SUFFIX_STR = $${RELEASE_SUFFIX} -+} -+ -+TARGET = $$qtLibraryTarget(qwtmathml$${SUFFIX_STR}) - QT += xml - - HEADERS = \ diff --git a/meta-oe/recipes-qt/qwt/qwt-e_6.0.1.bb b/meta-oe/recipes-qt/qwt/qwt-e_6.0.1.bb deleted file mode 100644 index c801309132..0000000000 --- a/meta-oe/recipes-qt/qwt/qwt-e_6.0.1.bb +++ /dev/null @@ -1,14 +0,0 @@ -inherit qt4e - -require qwt.inc - -PR = "r1" - -SRC_URI[qwt.md5sum] = "ace68558eab873e2da7e641179c4ef0c" -SRC_URI[qwt.sha256sum] = "3fe19dd5962d705632fc2ef616b009299de6cf1e702538296924dbfdc8003cb2" - -RPROVIDES_${PN}-dev = "libqwt-dev" - -# Conflicts with qwt, only one qwt* can be built in world -# | Project ERROR: local build will conflict with sysroots/qemuarm/usr/lib/libqwt.* -EXCLUDE_FROM_WORLD = "1" diff --git a/meta-oe/recipes-qt/qwt/qwt.inc b/meta-oe/recipes-qt/qwt/qwt.inc deleted file mode 100644 index 60f73a6576..0000000000 --- a/meta-oe/recipes-qt/qwt/qwt.inc +++ /dev/null @@ -1,40 +0,0 @@ -DESCRIPTION = "Qt Widget Extension for Technical Applications" -SECTION = "libs" - -# LGPLv2.1 + some exceptions -LICENSE = "QWTv1.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=dac2743472b0462ff3cfb4af42051c88" - -SRC_URI = "${SOURCEFORGE_MIRROR}/qwt/qwt-${PV}.tar.bz2;name=qwt \ - file://qwt6.patch \ - file://qwt6-fix-linking-with-ld-gold.patch" - -S = "${WORKDIR}/qwt-${PV}" - -do_configure_prepend() { - sed -i -e 's:RELEASE_SUFFIX = :RELEASE_SUFFIX = ${QT_LIBINFIX}:' *.pri - sed -i -e 's:qtAddLibrary(qwt:qtAddLibrary(qwt)${QT_LIBINFIX}:g' *.prf - sed -e 's/# QWT_CONFIG += QwtExamples/QWT_CONFIG += QwtExamples/g' -i qwtconfig.pri - sed -i -e 's:/usr/local/qwt-$$QWT_VERSION:${D}${prefix}:g' ${S}/*.pri -} - -do_install() { - oe_runmake -e install - install -d ${D}${datadir}/doc/${PN} - mv ${D}${prefix}/doc/* ${D}${datadir}/doc/${PN}/ - rmdir ${D}${prefix}/doc - cd ${S}/examples - install -d ${D}/${bindir} - cd bin${QT_LIBINFIX}/ - for i in * ; do - cp -pPR ${i} ${D}/${bindir}/${i}${QT_LIBINFIX} - done - install -d ${D}${libdir}/${QT_DIR_NAME} - mv ${D}${prefix}/plugins ${D}${libdir}/${QT_DIR_NAME} -} - -PACKAGES_prepend = "${PN}-examples ${PN}-features ${PN}-plugins " -FILES_${PN}-examples = "${bindir}/*" -FILES_${PN}-features = "${prefix}/features" -FILES_${PN}-plugins = "${libdir}/${QT_DIR_NAME}/plugins/designer/*.so" -FILES_${PN}-dbg += "${libdir}/${QT_DIR_NAME}/plugins/designer/.debug" diff --git a/meta-oe/recipes-qt/qwt/qwt_6.0.1.bb b/meta-oe/recipes-qt/qwt/qwt_6.0.1.bb deleted file mode 100644 index f38816a901..0000000000 --- a/meta-oe/recipes-qt/qwt/qwt_6.0.1.bb +++ /dev/null @@ -1,10 +0,0 @@ -inherit qt4x11 - -require qwt.inc - -PR = "r1" - -SRC_URI[qwt.md5sum] = "ace68558eab873e2da7e641179c4ef0c" -SRC_URI[qwt.sha256sum] = "3fe19dd5962d705632fc2ef616b009299de6cf1e702538296924dbfdc8003cb2" - -RPROVIDES_${PN}-dev = "libqwt-dev" diff --git a/meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch b/meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch deleted file mode 100644 index acd9a57a57..0000000000 --- a/meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 33554f9b3fd493c7e28617fd01466ffa87251f27 Mon Sep 17 00:00:00 2001 -From: Samuel Stirtzel -Date: Wed, 1 Aug 2012 13:21:51 +0200 -Subject: [PATCH] Fix MALIIT_INSTALL_PRF to allow the build with openembedded - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Samuel Stirtzel ---- - config.pri | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/config.pri b/config.pri -index b037b8c..43409f3 100644 ---- a/config.pri -+++ b/config.pri -@@ -161,9 +161,11 @@ contains(QT_MAJOR_VERSION, 4) { - QT_WIDGETS = gui widgets - } - --MALIIT_INSTALL_PRF = $$[QT_INSTALL_DATA]/mkspecs/features --local-install { -- MALIIT_INSTALL_PRF = $$replace(MALIIT_INSTALL_PRF, $$[QT_INSTALL_PREFIX], $$PREFIX) -+isEmpty(MALIIT_INSTALL_PRF) { -+ MALIIT_INSTALL_PRF = $$[QT_INSTALL_DATA]/mkspecs/features -+ local-install { -+ MALIIT_INSTALL_PRF = $$replace(MALIIT_INSTALL_PRF, $$[QT_INSTALL_PREFIX], $$PREFIX) -+ } - } - - defineTest(outputFile) { --- -1.7.9.5 - diff --git a/meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-QT_IM_PLUGIN_PATH-to-allow-openembedded-to-build.patch b/meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-QT_IM_PLUGIN_PATH-to-allow-openembedded-to-build.patch deleted file mode 100644 index 830e6deb4e..0000000000 --- a/meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-QT_IM_PLUGIN_PATH-to-allow-openembedded-to-build.patch +++ /dev/null @@ -1,34 +0,0 @@ -From fb6acbd2af9ed288c1c4f4200fc73d8d9955486a Mon Sep 17 00:00:00 2001 -From: Samuel Stirtzel -Date: Wed, 1 Aug 2012 13:33:10 +0200 -Subject: [PATCH] Fix QT_IM_PLUGIN_PATH to allow openembedded to build Maliit - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Samuel Stirtzel ---- - input-context/input-context.pri | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/input-context/input-context.pri b/input-context/input-context.pri -index d94e6a3..d460e70 100644 ---- a/input-context/input-context.pri -+++ b/input-context/input-context.pri -@@ -25,8 +25,10 @@ for(OPTION,$$list($$lower($$COV_OPTION))){ - - QMAKE_CLEAN += $$OBJECTS_DIR/*.gcno $$OBJECTS_DIR/*.gcda - --QT_IM_PLUGIN_PATH = $$[QT_INSTALL_PLUGINS]/inputmethods --QT_PREFIX = $$[QT_INSTALL_PREFIX] --local-install { -- QT_IM_PLUGIN_PATH = $$replace(QT_IM_PLUGIN_PATH, $$QT_PREFIX, $$PREFIX) -+isEmpty(QT_IM_PLUGIN_PATH) { -+ QT_IM_PLUGIN_PATH = $$[QT_INSTALL_PLUGINS]/inputmethods -+ QT_PREFIX = $$[QT_INSTALL_PREFIX] -+ local-install { -+ QT_IM_PLUGIN_PATH = $$replace(QT_IM_PLUGIN_PATH, $$QT_PREFIX, $$PREFIX) -+ } - } --- -1.7.9.5 - diff --git a/meta-oe/recipes-support/maliit/maliit-framework/0001-Link-to-libmaliit-1-0-in-inputcontext-plugin.patch b/meta-oe/recipes-support/maliit/maliit-framework/0001-Link-to-libmaliit-1-0-in-inputcontext-plugin.patch deleted file mode 100644 index c2291c6b7b..0000000000 --- a/meta-oe/recipes-support/maliit/maliit-framework/0001-Link-to-libmaliit-1-0-in-inputcontext-plugin.patch +++ /dev/null @@ -1,23 +0,0 @@ -From cc33efdedbec9e9a55e9a0c6756516fd84d42e53 Mon Sep 17 00:00:00 2001 -From: Samuel Stirtzel -Date: Fri, 1 Mar 2013 11:31:41 +0100 -Subject: [PATCH] Link to libmaliit-1,0 in inputcontext plugin - -Signed-off-by: Samuel Stirtzel ---- - .../input-context-plugin/input-context-plugin.pro | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/input-context/input-context-plugin/input-context-plugin.pro b/input-context/input-context-plugin/input-context-plugin.pro -index eefbe93..296e2fa 100644 ---- a/input-context/input-context-plugin/input-context-plugin.pro -+++ b/input-context/input-context-plugin/input-context-plugin.pro -@@ -15,3 +15,5 @@ CONFIG += plugin - - INSTALLS += target - target.path += $$QT_IM_PLUGIN_PATH -+ -+LIBS += -L../../lib -l"maliit-1.0" --- -1.7.9.5 - diff --git a/meta-oe/recipes-support/maliit/maliit-framework/0002-ut_maliit_glib_settings-fix-build-for-glib-2.36.patch b/meta-oe/recipes-support/maliit/maliit-framework/0002-ut_maliit_glib_settings-fix-build-for-glib-2.36.patch deleted file mode 100644 index df4f1794e3..0000000000 --- a/meta-oe/recipes-support/maliit/maliit-framework/0002-ut_maliit_glib_settings-fix-build-for-glib-2.36.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 839e0933f09309a0374aa58cc58439c3a1f157b2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Tue, 14 May 2013 10:24:48 +0200 -Subject: [PATCH] ut_maliit_glib_settings: fix build for glib 2.36 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Inappropriate [code removed upstream] - -Signed-off-by: Andreas Müller ---- - .../ut_maliit_glib_settings.c | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/tests/ut_maliit_glib_settings/ut_maliit_glib_settings.c b/tests/ut_maliit_glib_settings/ut_maliit_glib_settings.c -index 476ba33..09b6261 100644 ---- a/tests/ut_maliit_glib_settings/ut_maliit_glib_settings.c -+++ b/tests/ut_maliit_glib_settings/ut_maliit_glib_settings.c -@@ -188,8 +188,9 @@ test_settings_manager_emits_disconnected(void) - int - main (int argc, char **argv) { - g_test_init(&argc, &argv, NULL); -+#if !GLIB_CHECK_VERSION (2, 36, 0) - g_type_init(); -- -+#endif - g_test_add_func("/ut_maliit_glib_settings/MaliitSettingsManager/preferred_description_locale/default", - test_preferred_description_locale_default); - g_test_add_func("/ut_maliit_glib_settings/MaliitSettingsManager/preferred_description_locale/set-get-roundtrip", --- -1.7.6.5 - diff --git a/meta-oe/recipes-support/maliit/maliit-framework/maliit-server.desktop b/meta-oe/recipes-support/maliit/maliit-framework/maliit-server.desktop deleted file mode 100644 index 24bdf9b525..0000000000 --- a/meta-oe/recipes-support/maliit/maliit-framework/maliit-server.desktop +++ /dev/null @@ -1,6 +0,0 @@ -[Desktop Entry] -Name=Maliit server -Exec=/usr/bin/maliit-server -Icon= -Type=Application -Categories=Utility; diff --git a/meta-oe/recipes-support/maliit/maliit-framework_git.bb b/meta-oe/recipes-support/maliit/maliit-framework_git.bb deleted file mode 100644 index 3eb7f30dfc..0000000000 --- a/meta-oe/recipes-support/maliit/maliit-framework_git.bb +++ /dev/null @@ -1,101 +0,0 @@ -SUMMARY = "A virtual keyboard for touch-screen based user interfaces" -HOMEPAGE = "https://wiki.maliit.org/Main_Page" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=5c917f6ce94ceb8d8d5e16e2fca5b9ad" - -inherit autotools qt4x11 gtk-immodules-cache - -PNBLACKLIST[maliit-framework] ?= "BROKEN: Wasn't updated to work with B!=S, maybe incorrectly inherits autotools" - -DEPENDS = "libxcomposite dbus gtk+3 gtk+" - -SRC_URI = "git://github.com/maliit/framework.git;branch=master \ - file://0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch \ - file://0001-Fix-QT_IM_PLUGIN_PATH-to-allow-openembedded-to-build.patch \ - file://0001-Link-to-libmaliit-1-0-in-inputcontext-plugin.patch \ - file://0002-ut_maliit_glib_settings-fix-build-for-glib-2.36.patch \ - file://maliit-server.desktop \ -" - -SRCREV = "750842dec74a9b17dca91ef779c4fc5a43c4d9dc" -PV = "0.92.3+git${SRCPV}" -PR = "r1" - - -PACKAGES =+ "${PN}-gtk" -GTKIMMODULES_PACKAGES = "${PN}-gtk" - -RDEPENDS_${PN} = "qt4-plugin-inputmethod-imsw-multi libqtsvg4" - -RRECOMMENDS_${PN} = "maliit-plugins" - - -FILES_${PN} += "\ - ${libdir}/maliit/plugins-*/factories/libmaliit-plugins-quick-factory-*.so \ - ${libdir}/qt4/plugins/inputmethods/*.so \ - ${datadir}/applications/maliit-server.desktop \ -" - -FILES_${PN}-dbg += "\ - ${libdir}/maliit-framework-tests \ - ${libdir}/gtk-*/*/immodules/.debug \ - ${libdir}/maliit/plugins-*/factories/.debug \ - ${libdir}/qt4/plugins/.debug \ - ${libdir}/qt4/plugins/inputmethods/.debug \ -" - -FILES_${PN}-dev += "${datadir}/qt4" - -FILES_${PN}-gtk +="\ - ${bindir}/maliit-exampleapp-gtk* \ - \ - ${libdir}/gtk-*/*/immodules/libim-maliit.so\ -" - -EXTRA_QMAKEVARS_PRE = "\ - PREFIX=${prefix} \ - LIBDIR=${libdir} \ - QT_IM_PLUGIN_PATH=${libdir}/qt4/plugins/inputmethods \ - MALIIT_INSTALL_PRF=${datadir}/qt4/mkspecs/features \ - SCHEMADIR=${sysconfdir}/gconf/schemas \ - CONFIG+=disable-gconf \ - CONFIG+=disable-gtk-cache-update \ - CONFIG+=local-install \ - CONFIG+=nosdk \ -" - -EXTRA_OEMAKE += "INSTALL_ROOT=${D}" - -do_install_append() { - #Fix absolute paths - sed -i -e "s|/usr|${STAGING_DIR_TARGET}${prefix}|" ${D}/${datadir}/qt4/mkspecs/features/maliit-framework.prf - sed -i -e "s|/usr|${STAGING_DIR_TARGET}${prefix}|" ${D}/${datadir}/qt4/mkspecs/features/maliit-plugins.prf - - install -d ${D}${datadir}/applications - install -m 644 ${WORKDIR}/maliit-server.desktop ${D}${datadir}/applications -} - -pkg_postinst_${PN} () { -#!/bin/sh -# should run online -if [ "x$D" != "x" ]; then - exit 1 -fi -echo "export QT_IM_MODULE=Maliit" >> /etc/xprofile -ln -s /usr/share/applications/maliit-server.desktop /etc/xdg/autostart/maliit-server.desktop -} - -pkg_postrm_${PN} () { -#!/bin/sh -# should run online -if [ "x$D" = "x" ]; then - exit 1 -fi -if [ -e "/etc/xprofile" ]; then - sed -i -e "g|export QT_IM_MODULE=Maliit|d" /etc/xprofile -fi -rm -f /etc/xdg/autostart/maliit-server.desktop -} - -S = "${WORKDIR}/git" diff --git a/meta-oe/recipes-support/maliit/maliit-plugins_git.bb b/meta-oe/recipes-support/maliit/maliit-plugins_git.bb deleted file mode 100644 index 3c040d87a7..0000000000 --- a/meta-oe/recipes-support/maliit/maliit-plugins_git.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Plugins for a virtual keyboard for touch-screen based user interfaces" -HOMEPAGE = "https://wiki.maliit.org/Main_Page" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=f29b21caa8e460097bfad9c026a33621" - -inherit autotools qt4x11 - -PNBLACKLIST[maliit-plugins] ?= "BROKEN: depends on broken maliit-framework" - -DEPENDS = "maliit-framework" - -RDEPENDS_${PN} += "qt4-plugin-iconengine-svgicon qt4-plugin-imageformat-svg" - -SRC_URI = "git://github.com/maliit/plugins.git;branch=master" - -SRCREV = "0760e585df494b394df1b887e5138ffef19c481f" -PV = "0.92.3+git${SRCPV}" - -EXTRA_QMAKEVARS_PRE = "\ - PREFIX=${prefix} \ - LIBDIR=${libdir} \ - CONFIG+=nodoc \ -" - -FILES_${PN} += "\ - ${libdir}/maliit \ - ${datadir} \ -" - -FILES_${PN}-dbg += "${libdir}/maliit/plugins-*/.debug" - -S= "${WORKDIR}/git" - -EXTRA_OEMAKE += "INSTALL_ROOT=${D}" -- cgit 1.2.3-korg