tst_regexprole.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 { dummyRole: false; compoundRole: "0 - zero"; unusedRole: "" } 11 ListElement { dummyRole: false; compoundRole: "1 - one"; unusedRole: "" } 12 ListElement { dummyRole: false; compoundRole: "2 - two"; unusedRole: "" } 13 ListElement { dummyRole: false; compoundRole: "3 - three"; unusedRole: "" } 14 ListElement { dummyRole: false; compoundRole: "four"; unusedRole: "" } 15 } 16 17 SortFilterProxyModel { 18 id: testModel 19 sourceModel: listModel 20 21 proxyRoles: [ 22 RegExpRole { 23 id: regExpRole 24 roleName: "compoundRole" 25 pattern: "(?<id>\\d+) - (?<name>.+)" 26 }, 27 RegExpRole { 28 id: caseSensitiveRole 29 roleName: "compoundRole" 30 pattern: "\\d+ - (?<nameCS>[A-Z]+)" 31 caseSensitivity: Qt.CaseSensitive 32 }, 33 RegExpRole { 34 id: caseInsensitiveRole 35 roleName: "compoundRole" 36 pattern: "\\d+ - (?<nameCIS>[A-Z]+)" 37 caseSensitivity: Qt.CaseInsensitive 38 } 39 ] 40 } 41 42 TestCase { 43 name: "RegExpRole" 44 45 function test_regExpRole() { 46 compare(testModel.get(0, "id"), "0"); 47 compare(testModel.get(1, "id"), "1"); 48 compare(testModel.get(0, "name"), "zero"); 49 compare(testModel.get(4, "id"), undefined); 50 compare(testModel.get(0, "nameCS"), undefined); 51 compare(testModel.get(0, "nameCIS"), "zero"); 52 } 53 } 54 }