aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquickvisualdatamodel/data
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/quick/qquickvisualdatamodel/data')
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/create.qml22
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/datalist-package.qml20
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/datalist.qml18
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/groups-invalid.qml14
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/groups-package.qml52
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/groups.qml46
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_listView.qml13
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_package.qml42
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_pathView.qml18
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_repeater.qml15
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/listmodelproperties-package.qml51
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/listmodelproperties.qml45
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/modelproperties.qml21
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/modelproperties2.qml21
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/multipleroleproperties-package.qml46
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/multipleroleproperties.qml41
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/objectlist.qml19
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/objectlistproperties-package.qml48
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/objectlistproperties.qml43
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/onChanged.qml87
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/packageView.qml63
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/singlerole1.qml10
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/singlerole2.qml10
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/singleroleproperties-package.qml45
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/singleroleproperties.qml39
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/stringlistproperties-package.qml45
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/stringlistproperties.qml40
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/visualdatamodel.qml12
28 files changed, 946 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/create.qml b/tests/auto/quick/qquickvisualdatamodel/data/create.qml
new file mode 100644
index 0000000000..9f4b754552
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/create.qml
@@ -0,0 +1,22 @@
+import QtQuick 2.0
+
+ListView {
+ width: 200
+ height: 200
+
+ property var persistentHandle
+
+ model: VisualDataModel {
+ id: visualModel
+
+ persistedItems.includeByDefault: true
+
+ model: myModel
+ delegate: Item {
+ id: delegate
+ objectName: "delegate"
+ width: 200
+ height: 20
+ }
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/datalist-package.qml b/tests/auto/quick/qquickvisualdatamodel/data/datalist-package.qml
new file mode 100644
index 0000000000..ae3bd81d91
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/datalist-package.qml
@@ -0,0 +1,20 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+ model: visualModel.parts.package
+ VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+ model: myModel
+ delegate: Package {
+ Rectangle {
+ height: 25
+ width: 100
+ Package.name: "package"
+ Text { objectName: "display"; text: display }
+ }
+ }
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/datalist.qml b/tests/auto/quick/qquickvisualdatamodel/data/datalist.qml
new file mode 100644
index 0000000000..8ce59caddc
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/datalist.qml
@@ -0,0 +1,18 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+ model: VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+ model: myModel
+ delegate: Component {
+ Rectangle {
+ height: 25
+ width: 100
+ Text { objectName: "display"; text: display }
+ }
+ }
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/groups-invalid.qml b/tests/auto/quick/qquickvisualdatamodel/data/groups-invalid.qml
new file mode 100644
index 0000000000..70c6f9f995
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/groups-invalid.qml
@@ -0,0 +1,14 @@
+import QtQuick 2.0
+
+VisualDataModel {
+ id: visualModel
+
+ objectName: "visualModel"
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" },
+ VisualDataGroup { id: unnamed; objectName: "unnamed" },
+ VisualDataGroup { id: capitalised; objectName: "capitalised"; name: "Capitalised" }
+ ]
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/groups-package.qml b/tests/auto/quick/qquickvisualdatamodel/data/groups-package.qml
new file mode 100644
index 0000000000..ea5ad5d3bd
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/groups-package.qml
@@ -0,0 +1,52 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+
+ function contains(array, value) {
+ for (var i = 0; i < array.length; ++i)
+ if (array[i] == value)
+ return true
+ return false
+ }
+ model: visualModel.parts.package
+
+ VisualDataModel {
+ id: visualModel
+
+ objectName: "visualModel"
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" }
+ ]
+
+ model: myModel
+ delegate: Package {
+ id: delegate
+
+ property variant test1: name
+ property variant test2: index
+ property variant test3: VisualDataModel.itemsIndex
+ property variant test4: VisualDataModel.inItems
+ property variant test5: VisualDataModel.visibleIndex
+ property variant test6: VisualDataModel.inVisible
+ property variant test7: VisualDataModel.selectedIndex
+ property variant test8: VisualDataModel.inSelected
+ property variant test9: VisualDataModel.groups
+
+ function hide() { VisualDataModel.inVisible = false }
+ function select() { VisualDataModel.inSelected = true }
+
+ Item {
+ Package.name: "package"
+
+ objectName: "delegate"
+ width: 100
+ height: 2
+ }
+ }
+ }
+
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/groups.qml b/tests/auto/quick/qquickvisualdatamodel/data/groups.qml
new file mode 100644
index 0000000000..7502dd2502
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/groups.qml
@@ -0,0 +1,46 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+
+ function contains(array, value) {
+ for (var i = 0; i < array.length; ++i)
+ if (array[i] == value)
+ return true
+ return false
+ }
+
+ model: visualModel
+ VisualDataModel {
+ id: visualModel
+
+ objectName: "visualModel"
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" }
+ ]
+
+ model: myModel
+ delegate: Item {
+ id: delegate
+
+ objectName: "delegate"
+ width: 100
+ height: 2
+ property variant test1: name
+ property variant test2: index
+ property variant test3: VisualDataModel.itemsIndex
+ property variant test4: VisualDataModel.inItems
+ property variant test5: VisualDataModel.visibleIndex
+ property variant test6: VisualDataModel.inVisible
+ property variant test7: VisualDataModel.selectedIndex
+ property variant test8: VisualDataModel.inSelected
+ property variant test9: VisualDataModel.groups
+
+ function hide() { VisualDataModel.inVisible = false }
+ function select() { VisualDataModel.inSelected = true }
+ }
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_listView.qml b/tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_listView.qml
new file mode 100644
index 0000000000..103c4d2eb6
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_listView.qml
@@ -0,0 +1,13 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+
+ model: myModel
+ delegate: Item {
+ objectName: "delegate"
+ width: 100
+ height: 20
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_package.qml b/tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_package.qml
new file mode 100644
index 0000000000..b47f22dc34
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_package.qml
@@ -0,0 +1,42 @@
+import QtQuick 2.0
+
+Item {
+ width: 100
+ height: 100
+
+ ListView {
+ anchors.fill: parent
+
+ model: visualModel.parts.list
+ }
+ VisualDataModel {
+ id: visualModel
+
+ model: myModel
+ delegate: Package {
+ Item {
+ Package.name: "list"
+ width: 100
+ height: 20
+ }
+
+ Item {
+ id: gridItem
+ Package.name: "grid"
+ width: 50
+ height: 50
+ }
+ Rectangle {
+ objectName: "delegate"
+ parent: gridItem
+ width: 20
+ height: 20
+ }
+ }
+ }
+ GridView {
+ anchors.fill: parent
+
+ model: visualModel.parts.grid
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_pathView.qml b/tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_pathView.qml
new file mode 100644
index 0000000000..bc619124fd
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_pathView.qml
@@ -0,0 +1,18 @@
+import QtQuick 2.0
+
+PathView {
+ width: 100
+ height: 100
+
+ model: myModel
+ delegate: Item {
+ objectName: "delegate"
+ width: 100
+ height: 20
+ }
+
+ path: Path {
+ startX: 50; startY: 0
+ PathLine { x: 50; y: 100 }
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_repeater.qml b/tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_repeater.qml
new file mode 100644
index 0000000000..e97e0dad2e
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/itemsDestroyed_repeater.qml
@@ -0,0 +1,15 @@
+import QtQuick 2.0
+
+Grid {
+ Repeater {
+ width: 100
+ height: 100
+
+ model: myModel
+ delegate: Item {
+ objectName: "delegate"
+ width: 50
+ height: 50
+ }
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/listmodelproperties-package.qml b/tests/auto/quick/qquickvisualdatamodel/data/listmodelproperties-package.qml
new file mode 100644
index 0000000000..b6b56727e8
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/listmodelproperties-package.qml
@@ -0,0 +1,51 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+ model: visualModel.parts.package
+
+ VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" }
+ ]
+
+ model: ListModel {
+ id: listModel
+
+ ListElement { number: "one" }
+ ListElement { number: "two" }
+ ListElement { number: "three" }
+ ListElement { number: "four" }
+ }
+
+ delegate: Package {
+ id: delegate
+
+ property variant test1: index
+ property variant test2: model.index
+ property variant test3: number
+ property variant test4: model.number
+ property variant test5: modelData
+ property variant test6: model.modelData
+
+ function setTest3(arg) { number = arg }
+ function setTest4(arg) { model.number = arg }
+ function setTest5(arg) { modelData = arg }
+ function setTest6(arg) { model.modelData = arg }
+
+ Item {
+ objectName: "delegate"
+
+ Package.name: "package"
+
+ width: 100
+ height: 2
+ }
+ }
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/listmodelproperties.qml b/tests/auto/quick/qquickvisualdatamodel/data/listmodelproperties.qml
new file mode 100644
index 0000000000..d2dfc37e07
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/listmodelproperties.qml
@@ -0,0 +1,45 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+ model: VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" }
+ ]
+
+ model: ListModel {
+ id: listModel
+
+ ListElement { number: "one" }
+ ListElement { number: "two" }
+ ListElement { number: "three" }
+ ListElement { number: "four" }
+ }
+
+ delegate: Item {
+ id: delegate
+
+ objectName: "delegate"
+
+ property variant test1: index
+ property variant test2: model.index
+ property variant test3: number
+ property variant test4: model.number
+ property variant test5: modelData
+ property variant test6: model.modelData
+
+ function setTest3(arg) { number = arg }
+ function setTest4(arg) { model.number = arg }
+ function setTest5(arg) { modelData = arg }
+ function setTest6(arg) { model.modelData = arg }
+
+ width: 100
+ height: 2
+ }
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/modelproperties.qml b/tests/auto/quick/qquickvisualdatamodel/data/modelproperties.qml
new file mode 100644
index 0000000000..73b766f1af
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/modelproperties.qml
@@ -0,0 +1,21 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+ model: myModel
+ delegate: Item {
+ objectName: "delegate"
+ width: 100
+ height: 2
+ property variant test1: name
+ property variant test2: model.name
+ property variant test3: modelData
+ property variant test4: model.modelData
+ property variant test5: modelData.name
+ property variant test6: model
+ property variant test7: index
+ property variant test8: model.index
+ property variant test9: model.modelData.name
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/modelproperties2.qml b/tests/auto/quick/qquickvisualdatamodel/data/modelproperties2.qml
new file mode 100644
index 0000000000..ea5c240b29
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/modelproperties2.qml
@@ -0,0 +1,21 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+ model: myModel
+ delegate: Item {
+ objectName: "delegate"
+ property variant test1: display
+ property variant test2: model.display
+ property variant test3: modelData
+ property variant test4: model.modelData
+ property variant test5: modelData.display
+ property variant test6: model
+ property variant test7: index
+ property variant test8: model.index
+ property variant test9: model.modelData.display
+ width: 100
+ height: 2
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/multipleroleproperties-package.qml b/tests/auto/quick/qquickvisualdatamodel/data/multipleroleproperties-package.qml
new file mode 100644
index 0000000000..964ac426f8
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/multipleroleproperties-package.qml
@@ -0,0 +1,46 @@
+import QtQuick 2.0
+import tst_qquickvisualdatamodel 1.0
+
+ListView {
+ width: 100
+ height: 100
+ model: visualModel.parts.package
+ VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" }
+ ]
+
+ model: StandardItemModel {
+ StandardItem { text: "Row 1 Item" }
+ StandardItem { text: "Row 2 Item" }
+ StandardItem { text: "Row 3 Item" }
+ StandardItem { text: "Row 4 Item" }
+ }
+
+ delegate: Package {
+ id: delegate
+
+ property variant test1: index
+ property variant test2: model.index
+ property variant test3: display
+ property variant test4: model.display
+
+ function setTest3(arg) { display = arg }
+ function setTest4(arg) { model.display = arg }
+
+ Item {
+ objectName: "delegate"
+
+ width: 100
+ height: 2
+
+ Package.name: "package"
+ }
+ }
+ }
+}
+
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/multipleroleproperties.qml b/tests/auto/quick/qquickvisualdatamodel/data/multipleroleproperties.qml
new file mode 100644
index 0000000000..77e30b69b9
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/multipleroleproperties.qml
@@ -0,0 +1,41 @@
+import QtQuick 2.0
+import tst_qquickvisualdatamodel 1.0
+
+ListView {
+ width: 100
+ height: 100
+ model: VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" }
+ ]
+
+ model: StandardItemModel {
+ StandardItem { text: "Row 1 Item" }
+ StandardItem { text: "Row 2 Item" }
+ StandardItem { text: "Row 3 Item" }
+ StandardItem { text: "Row 4 Item" }
+ }
+
+ delegate: Item {
+ id: delegate
+
+ objectName: "delegate"
+
+ property variant test1: index
+ property variant test2: model.index
+ property variant test3: display
+ property variant test4: model.display
+
+ function setTest3(arg) { display = arg }
+ function setTest4(arg) { model.display = arg }
+
+ width: 100
+ height: 2
+ }
+ }
+}
+
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/objectlist.qml b/tests/auto/quick/qquickvisualdatamodel/data/objectlist.qml
new file mode 100644
index 0000000000..b3952a8a4d
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/objectlist.qml
@@ -0,0 +1,19 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+ anchors.fill: parent
+ model: myModel
+ delegate: Component {
+ Rectangle {
+ height: 25
+ width: 100
+ color: model.modelData.color
+ Text { objectName: "name"; text: name; function getText() { return name } }
+ Text { objectName: "section"; text: parent.ListView.section }
+ }
+ }
+ section.property: "name"
+ section.criteria: ViewSection.FullString
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/objectlistproperties-package.qml b/tests/auto/quick/qquickvisualdatamodel/data/objectlistproperties-package.qml
new file mode 100644
index 0000000000..c69e54c2f8
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/objectlistproperties-package.qml
@@ -0,0 +1,48 @@
+import QtQuick 2.0
+import tst_qquickvisualdatamodel 1.0
+
+ListView {
+ width: 100
+ height: 100
+ model: visualModel.parts.package
+
+ VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+
+ property list<DataObject> objects: [
+ DataObject { name: "Item 1"; color: "red" },
+ DataObject { name: "Item 2"; color: "green" },
+ DataObject { name: "Item 3"; color: "blue"},
+ DataObject { name: "Item 4"; color: "yellow" }
+ ]
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" }
+ ]
+
+ model: objects
+
+ delegate: Package {
+ id: delegate
+
+ property variant test1: index
+ property variant test2: model.index
+ property variant test3: name
+ property variant test4: model.name
+
+ function setTest3(arg) { name = arg }
+ function setTest4(arg) { model.name = arg }
+
+ Item {
+ objectName: "delegate"
+
+ width: 100
+ height: 2
+ Package.name: "package"
+ }
+ }
+ }
+}
+
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/objectlistproperties.qml b/tests/auto/quick/qquickvisualdatamodel/data/objectlistproperties.qml
new file mode 100644
index 0000000000..0dbe2f5459
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/objectlistproperties.qml
@@ -0,0 +1,43 @@
+import QtQuick 2.0
+import tst_qquickvisualdatamodel 1.0
+
+ListView {
+ width: 100
+ height: 100
+ model: VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+
+ property list<DataObject> objects: [
+ DataObject { name: "Item 1"; color: "red" },
+ DataObject { name: "Item 2"; color: "green" },
+ DataObject { name: "Item 3"; color: "blue"},
+ DataObject { name: "Item 4"; color: "yellow" }
+ ]
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" }
+ ]
+
+ model: objects
+
+ delegate: Item {
+ id: delegate
+
+ objectName: "delegate"
+
+ property variant test1: index
+ property variant test2: model.index
+ property variant test3: name
+ property variant test4: model.name
+
+ function setTest3(arg) { name = arg }
+ function setTest4(arg) { model.name = arg }
+
+ width: 100
+ height: 2
+ }
+ }
+}
+
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/onChanged.qml b/tests/auto/quick/qquickvisualdatamodel/data/onChanged.qml
new file mode 100644
index 0000000000..71dc7d72d7
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/onChanged.qml
@@ -0,0 +1,87 @@
+import QtQuick 2.0
+
+VisualDataModel {
+ id: vm
+
+ property var inserted
+ property var removed
+
+ Component.onCompleted: {
+ vm.inserted = []
+ vm.removed = []
+ vi.inserted = []
+ vi.removed = []
+ si.inserted = []
+ si.removed = []
+ }
+
+ function verify(changes, indexes, counts, moveIds) {
+ if (changes.length != indexes.length
+ || changes.length != counts.length
+ || changes.length != moveIds.length) {
+ console.log("invalid length", changes.length, indexes.length, counts.length, moveIds.length)
+ return false
+ }
+
+ var valid = true;
+ for (var i = 0; i < changes.length; ++i) {
+ if (changes[i].index != indexes[i]) {
+ console.log(i, "incorrect index. actual:", changes[i].index, "expected:", indexes[i])
+ valid = false;
+ }
+ if (changes[i].count != counts[i]) {
+ console.log(i, "incorrect count. actual:", changes[i].count, "expected:", counts[i])
+ valid = false;
+ }
+ if (changes[i].moveId != moveIds[i]) {
+ console.log(i, "incorrect moveId. actual:", changes[i].moveId, "expected:", moveIds[i])
+ valid = false;
+ }
+ }
+ return valid
+ }
+
+ groups: [
+ VisualDataGroup {
+ id: vi;
+
+ property var inserted
+ property var removed
+
+ name: "visible"
+ includeByDefault: true
+
+ onChanged: {
+ vi.inserted = inserted
+ vi.removed = removed
+ }
+ },
+ VisualDataGroup {
+ id: si;
+
+ property var inserted
+ property var removed
+
+ name: "selected"
+ onChanged: {
+ si.inserted = inserted
+ si.removed = removed
+ }
+ }
+ ]
+
+ model: ListModel {
+ id: listModel
+ ListElement { number: "one" }
+ ListElement { number: "two" }
+ ListElement { number: "three" }
+ ListElement { number: "four" }
+ }
+
+ delegate: Item {}
+
+ items.onChanged: {
+ vm.inserted = inserted
+ vm.removed = removed
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/packageView.qml b/tests/auto/quick/qquickvisualdatamodel/data/packageView.qml
new file mode 100644
index 0000000000..682f3833d1
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/packageView.qml
@@ -0,0 +1,63 @@
+import QtQuick 2.0
+
+Item {
+ width: 240
+ height: 320
+
+ Component {
+ id: myDelegate
+
+ Package {
+ Rectangle {
+ id: leftWrapper
+ objectName: "wrapper"
+ Package.name: "left"
+ height: 20
+ width: 120
+ Text {
+ text: index
+ }
+ color: ListView.isCurrentItem ? "lightsteelblue" : "white"
+ }
+ Rectangle {
+ id: rightWrapper
+ objectName: "wrapper"
+ Package.name: "right"
+ height: 20
+ width: 120
+ Text {
+ text: index
+ }
+ color: ListView.isCurrentItem ? "lightsteelblue" : "white"
+ }
+ }
+
+ }
+
+ VisualDataModel {
+ id: visualModel
+
+ delegate: myDelegate
+ model: testModel
+ }
+
+ ListView {
+ id: leftList
+ objectName: "leftList"
+ anchors {
+ left: parent.left; top: parent.top;
+ right: parent.horizontalCenter; bottom: parent.bottom
+ }
+ model: visualModel.parts.left
+ }
+
+ ListView {
+ id: rightList
+ objectName: "rightList"
+ anchors {
+ left: parent.horizontalCenter; top: parent.top;
+ right: parent.right; bottom: parent.bottom
+ }
+ model: visualModel.parts.right
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/singlerole1.qml b/tests/auto/quick/qquickvisualdatamodel/data/singlerole1.qml
new file mode 100644
index 0000000000..c471893e1d
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/singlerole1.qml
@@ -0,0 +1,10 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+ model: myModel
+ delegate: Component {
+ Text { objectName: "name"; text: name; function getText() { return name; } }
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/singlerole2.qml b/tests/auto/quick/qquickvisualdatamodel/data/singlerole2.qml
new file mode 100644
index 0000000000..ab1798999d
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/singlerole2.qml
@@ -0,0 +1,10 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+ model: myModel
+ delegate: Component {
+ Text { objectName: "name"; text: modelData; function getText() { return modelData } }
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/singleroleproperties-package.qml b/tests/auto/quick/qquickvisualdatamodel/data/singleroleproperties-package.qml
new file mode 100644
index 0000000000..910df816f3
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/singleroleproperties-package.qml
@@ -0,0 +1,45 @@
+import QtQuick 2.0
+import tst_qquickvisualdatamodel 1.0
+
+ListView {
+ width: 100
+ height: 100
+ model: visualModel.parts.package
+
+ VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" }
+ ]
+
+ model: SingleRoleModel {}
+
+ delegate: Package {
+ id: delegate
+
+ property variant test1: index
+ property variant test2: model.index
+ property variant test3: name
+ property variant test4: model.name
+ property variant test5: modelData
+ property variant test6: model.modelData
+
+
+ function setTest3(arg) { name = arg }
+ function setTest4(arg) { model.name = arg }
+ function setTest5(arg) { modelData = arg }
+ function setTest6(arg) { model.modelData = arg }
+
+ Item {
+ objectName: "delegate"
+ width: 100
+ height: 2
+ Package.name: "package"
+ }
+ }
+
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/singleroleproperties.qml b/tests/auto/quick/qquickvisualdatamodel/data/singleroleproperties.qml
new file mode 100644
index 0000000000..6133c61bc5
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/singleroleproperties.qml
@@ -0,0 +1,39 @@
+import QtQuick 2.0
+import tst_qquickvisualdatamodel 1.0
+
+ListView {
+ width: 100
+ height: 100
+ model: VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" }
+ ]
+
+ model: SingleRoleModel {}
+
+ delegate: Item {
+ id: delegate
+
+ objectName: "delegate"
+ width: 100
+ height: 2
+ property variant test1: index
+ property variant test2: model.index
+ property variant test3: name
+ property variant test4: model.name
+ property variant test5: modelData
+ property variant test6: model.modelData
+
+
+ function setTest3(arg) { name = arg }
+ function setTest4(arg) { model.name = arg }
+ function setTest5(arg) { modelData = arg }
+ function setTest6(arg) { model.modelData = arg }
+ }
+
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/stringlistproperties-package.qml b/tests/auto/quick/qquickvisualdatamodel/data/stringlistproperties-package.qml
new file mode 100644
index 0000000000..d1a4604b77
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/stringlistproperties-package.qml
@@ -0,0 +1,45 @@
+import QtQuick 2.0
+import tst_qquickvisualdatamodel 1.0
+
+ListView {
+ width: 100
+ height: 100
+ model: visualModel.parts.package
+ VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" }
+ ]
+
+ model: [
+ "one",
+ "two",
+ "three",
+ "four"
+ ]
+
+ delegate: Package {
+ id: delegate
+
+ property variant test1: index
+ property variant test2: model.index
+ property variant test3: modelData
+ property variant test4: model.modelData
+
+ function setTest3(arg) { modelData = arg }
+ function setTest4(arg) { model.modelData = arg }
+
+ Item {
+ objectName: "delegate"
+
+ width: 100
+ height: 2
+
+ Package.name: "package"
+ }
+ }
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/stringlistproperties.qml b/tests/auto/quick/qquickvisualdatamodel/data/stringlistproperties.qml
new file mode 100644
index 0000000000..a075ccb4d9
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/stringlistproperties.qml
@@ -0,0 +1,40 @@
+import QtQuick 2.0
+import tst_qquickvisualdatamodel 1.0
+
+ListView {
+ width: 100
+ height: 100
+ model: VisualDataModel {
+ id: visualModel
+ objectName: "visualModel"
+
+ groups: [
+ VisualDataGroup { id: visibleItems; objectName: "visibleItems"; name: "visible"; includeByDefault: true },
+ VisualDataGroup { id: selectedItems; objectName: "selectedItems"; name: "selected" }
+ ]
+
+ model: [
+ "one",
+ "two",
+ "three",
+ "four"
+ ]
+
+ delegate: Item {
+ id: delegate
+
+ objectName: "delegate"
+
+ property variant test1: index
+ property variant test2: model.index
+ property variant test3: modelData
+ property variant test4: model.modelData
+
+ function setTest3(arg) { modelData = arg }
+ function setTest4(arg) { model.modelData = arg }
+
+ width: 100
+ height: 2
+ }
+ }
+}
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/visualdatamodel.qml b/tests/auto/quick/qquickvisualdatamodel/data/visualdatamodel.qml
new file mode 100644
index 0000000000..0d4d9e2e46
--- /dev/null
+++ b/tests/auto/quick/qquickvisualdatamodel/data/visualdatamodel.qml
@@ -0,0 +1,12 @@
+import QtQuick 2.0
+
+VisualDataModel {
+ function setRoot() {
+ rootIndex = modelIndex(0);
+ }
+ function setRootToParent() {
+ rootIndex = parentModelIndex();
+ }
+ model: myModel
+ delegate: Item {}
+}