Implement strict mode for qmldir modules
authorMatthew Vogt <matthew.vogt@nokia.com>
Wed, 25 Jul 2012 06:59:17 +0000 (16:59 +1000)
committerQt by Nokia <qt-info@nokia.com>
Mon, 30 Jul 2012 22:22:36 +0000 (00:22 +0200)
commitc9b7582a2e7ad9fcd03dd999c3b7a16b72803238
treed1ffdb193576fef0c243600f46c69b180d2ad2a8
parent2e6accbbbb9783ff6e5ad171f179d5021b0761af
Implement strict mode for qmldir modules

Allow a module's qmldir to contain a module directive, which when
present specifies 'strict mode' import processing.  In strict mode,
type registrations are only permitted into the namespace identified
in the qmldir file's module directive.  In addition, any type
registrations to that namespace originating from other modules are
treated as error conditions.

Task-number: QTBUG-26551

Change-Id: I081bde2d3b83d3f28524440177fb2cd1ccee34ad
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
60 files changed:
src/imports/folderlistmodel/qmldir
src/imports/localstorage/qmldir
src/imports/particles/qmldir
src/imports/qtquick2/qmldir
src/imports/testlib/qmldir
src/imports/window/qmldir
src/imports/xmllistmodel/qmldir
src/qml/qml/qqmldirparser.cpp
src/qml/qml/qqmldirparser_p.h
src/qml/qml/qqmlengine.cpp
src/qml/qml/qqmlimport.cpp
src/qml/qml/qqmlimport_p.h
src/qml/qml/qqmlmetatype.cpp
src/qml/qml/qqmlmetatype_p.h
src/qml/qml/qqmltypeloader.cpp
src/qml/qml/qqmltypeloader_p.h
tests/auto/qml/qqmlbundle/data/imports/bundletest/bundledata/qmldir
tests/auto/qml/qqmldirparser/data/empty/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/excessive-module/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/excessive-plugin/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/four-sections/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/incomplete-module/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/incomplete-plugin/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/invalid-versioned-component/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/multiple/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/name-path-plugin/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/name-plugin/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/no-content/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/non-first-module/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/one-section/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/repeated-module/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/unversioned-component/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/versioned-component/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/data/versioned-script/qmldir [new file with mode: 0644]
tests/auto/qml/qqmldirparser/qqmldirparser.pro [new file with mode: 0644]
tests/auto/qml/qqmldirparser/tst_qqmldirparser.cpp [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/data/implicit2/implicitQmldir.2.errors.txt
tests/auto/qml/qqmlmoduleplugin/invalidNamespaceModule/invalidNamespaceModule.pro [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/invalidNamespaceModule/plugin.cpp [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/invalidNamespaceModule/qmldir [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/invalidStrictModule/invalidStrictModule.pro [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/invalidStrictModule/plugin.cpp [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/invalidStrictModule/qmldir [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/nonstrictModule/nonstrictModule.pro [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/nonstrictModule/plugin.cpp [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/nonstrictModule/qmldir [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/preemptedStrictModule/plugin.cpp [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/preemptedStrictModule/preemptedStrictModule.pro [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/preemptedStrictModule/qmldir [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/preemptiveModule/plugin.cpp [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/preemptiveModule/preemptiveModule.pro [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/preemptiveModule/qmldir [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/qqmlmoduleplugin.pro
tests/auto/qml/qqmlmoduleplugin/strictModule/plugin.cpp [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/strictModule/qmldir [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/strictModule/strictModule.pro [new file with mode: 0644]
tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.cpp
tests/auto/quick/qquickanimations/tst_qquickanimations.cpp
tests/auto/quick/qquickwindow/data/ownershipRootItem.qml
tests/auto/quick/qquickwindow/tst_qquickwindow.cpp