diff options
author | Matthew Vogt <matthew.vogt@nokia.com> | 2012-05-04 08:32:45 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-17 08:58:45 +0200 |
commit | 43a6cc75886c662e63db440dd191cefa1fe956f3 (patch) | |
tree | cd3247453a0c2a59e0c5d3af11434d18761c2de4 /tests/auto/qml/qqmlengine/data/testTransientComponent.2.qml | |
parent | 9af1a7d0aee4f9ed48b2519779388830a8dd03e9 (diff) |
Add QQmlEngine::trimComponentCache()
Allow unused data in the engine's component cache to be safely discarded
so that the memory can be freed for other purposes.
Unloading of scripts that are no longer required after trimming unused
components is not yet supported.
Task-number: QTBUG-25653
Change-Id: I37bc9d5592eeb5edceeb34d010a555dcffd11cea
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'tests/auto/qml/qqmlengine/data/testTransientComponent.2.qml')
-rw-r--r-- | tests/auto/qml/qqmlengine/data/testTransientComponent.2.qml | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlengine/data/testTransientComponent.2.qml b/tests/auto/qml/qqmlengine/data/testTransientComponent.2.qml new file mode 100644 index 0000000000..acb0113e61 --- /dev/null +++ b/tests/auto/qml/qqmlengine/data/testTransientComponent.2.qml @@ -0,0 +1,36 @@ +import QtQuick 2.0 + +Item { + property bool success: false + + function reportError(s) { console.warn(s) } + + Component.onCompleted: { + componentCache.trim() + if (!componentCache.isTypeLoaded('testTransientComponent.2.qml')) return reportError('Test component not loaded') + if (componentCache.isTypeLoaded('VMEExtendVMEComponent.qml')) return reportError('Transient component already loaded') + + var comp = Qt.createComponent('VMEExtendVMEComponent.qml') + componentCache.trim() + if (!componentCache.isTypeLoaded('testTransientComponent.2.qml')) return reportError('Test component not loaded 2') + if (!componentCache.isTypeLoaded('VMEExtendVMEComponent.qml')) return reportError('Transient component not loaded') + + var obj = comp.createObject() + if (!obj) return + if (obj.foo != 'bar') return reportError('Invalid object') + if (obj.bar != 'baz') return reportError('Invalid object 2') + + comp.destroy() + if (!componentCache.isTypeLoaded('testTransientComponent.2.qml')) return reportError('Test component not loaded 3') + if (!componentCache.isTypeLoaded('VMEExtendVMEComponent.qml')) return reportError('Transient component already unloaded') + if (obj.foo != 'bar') return reportError('Invalid object 3') + if (obj.bar != 'baz') return reportError('Invalid object 4') + + obj.destroy() + componentCache.trim() + if (!componentCache.isTypeLoaded('testTransientComponent.2.qml')) return reportError('Test component not loaded 4') + if (componentCache.isTypeLoaded('VMEExtendVMEComponent.qml')) return reportError('Transient component not unloaded') + + success = true + } +} |