tst_expressionrole.qml
1 import QtQuick 2.0 2 import QtQml 2.2 3 import QtTest 1.1 4 import SortFilterProxyModel 0.2 5 import QtQml 2.2 6 7 Item { 8 property int c: 0 9 ListModel { 10 id: listModel 11 ListElement { a: 1; b: 2 } 12 } 13 14 SortFilterProxyModel { 15 id: testModel 16 sourceModel: listModel 17 18 proxyRoles: ExpressionRole { 19 name: "expressionRole" 20 expression: a + model.b + c 21 } 22 } 23 24 Instantiator { 25 id: instantiator 26 model: testModel 27 QtObject { 28 property string expressionRole: model.expressionRole 29 } 30 } 31 32 TestCase { 33 name: "ExpressionRole" 34 35 function test_expressionRole() { 36 fuzzyCompare(instantiator.object.expressionRole, 3, 1e-7); 37 listModel.setProperty(0, "b", 9); 38 fuzzyCompare(instantiator.object.expressionRole, 10, 1e-7); 39 c = 1327; 40 fuzzyCompare(instantiator.object.expressionRole, 1337, 1e-7); 41 } 42 } 43 }