tst_filterrole.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 ListModel { 9 id: listModel 10 ListElement { name: "1"; age: 18 } 11 ListElement { name: "2"; age: 22 } 12 ListElement { name: "3"; age: 45 } 13 ListElement { name: "4"; age: 10 } 14 } 15 16 SortFilterProxyModel { 17 id: testModel 18 sourceModel: listModel 19 20 proxyRoles: FilterRole { 21 name: "isOldEnough" 22 RangeFilter { 23 id: ageFilter 24 roleName: "age" 25 minimumInclusive: true 26 minimumValue: 18 27 } 28 } 29 } 30 TestCase { 31 name: "FilterRole" 32 33 function test_filterRole() { 34 compare(testModel.get(0, "isOldEnough"), true); 35 compare(testModel.get(1, "isOldEnough"), true); 36 compare(testModel.get(2, "isOldEnough"), true); 37 compare(testModel.get(3, "isOldEnough"), false); 38 39 ageFilter.minimumValue = 21; 40 41 compare(testModel.get(0, "isOldEnough"), false); 42 compare(testModel.get(1, "isOldEnough"), true); 43 compare(testModel.get(2, "isOldEnough"), true); 44 compare(testModel.get(3, "isOldEnough"), false); 45 } 46 } 47 }