aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmldelegatemodel/data/universalModelData.qml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qml/qqmldelegatemodel/data/universalModelData.qml')
-rw-r--r--tests/auto/qml/qqmldelegatemodel/data/universalModelData.qml72
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmldelegatemodel/data/universalModelData.qml b/tests/auto/qml/qqmldelegatemodel/data/universalModelData.qml
new file mode 100644
index 0000000000..f24009f873
--- /dev/null
+++ b/tests/auto/qml/qqmldelegatemodel/data/universalModelData.qml
@@ -0,0 +1,72 @@
+import QtQml
+
+DelegateModel {
+ id: root
+
+ // useful object as model, string as modelData
+ property ListModel singularModel: ListModel {
+ ListElement {
+ a: "a"
+ }
+ ListElement {
+ a: "b"
+ }
+ }
+
+ // same, useful, object as model and modelData
+ property ListModel listModel: ListModel {
+ ListElement {
+ a: "a"
+ b: "a"
+ }
+ ListElement {
+ a: "b"
+ b: "b"
+ }
+ }
+
+ // useful but different objects as modelData and model
+ // This is how the array accessor works. We can live with it.
+ property var array: [
+ {a: "a", b: "a"}, {a: "b", b: "a"}
+ ]
+
+ // string as modelData
+ // object with anonymous string property as model.
+ property var stringList: ["a", "b"]
+
+ // useful but different objects as modelData and model
+ // This is how the object accessor works. We can live with it.
+ property QtObject object: QtObject {
+ property string a: "a"
+ property string b: "a"
+ }
+
+ // number as modelData
+ // object with anonymous number property as model
+ property int n: -1
+
+ model: {
+ switch (n) {
+ case 0: return singularModel
+ case 1: return listModel
+ case 2: return array
+ case 3: return stringList
+ case 4: return object
+ case 5: return n
+ }
+ return undefined;
+ }
+
+ delegate: QtObject {
+ required property var modelData
+ required property var model
+
+ property var modelA: model.a
+ property var modelDataA: modelData.a
+ property var modelSelf: model
+ property var modelDataSelf: modelData
+ property var modelModelData: model.modelData
+ property var modelAnonymous: model[""]
+ }
+}