diff options
Diffstat (limited to 'tests/auto/qml/qquicklistmodel/data')
12 files changed, 239 insertions, 0 deletions
diff --git a/tests/auto/qml/qquicklistmodel/data/enumerate.qml b/tests/auto/qml/qquicklistmodel/data/enumerate.qml new file mode 100644 index 0000000000..f73d66b318 --- /dev/null +++ b/tests/auto/qml/qquicklistmodel/data/enumerate.qml @@ -0,0 +1,24 @@ +import QtQuick 2.0 + +Item { + property string result + + ListModel { + id: model + + ListElement { + val1: 1 + val2: 2 + val3: "str" + val4: false + val5: true + } + } + + Component.onCompleted: { + var element = model.get(0); + + for (var i in element) + result += i+"="+element[i]+(element[i] ? "Y" : "N")+":"; + } +} diff --git a/tests/auto/qml/qquicklistmodel/data/model.qml b/tests/auto/qml/qquicklistmodel/data/model.qml new file mode 100644 index 0000000000..5973ea8adf --- /dev/null +++ b/tests/auto/qml/qquicklistmodel/data/model.qml @@ -0,0 +1,26 @@ +import QtQuick 2.0 + +Item { + id: item + property variant model + property bool done: false + property variant result + + function evalExpressionViaWorker(commands) { + done = false + worker.sendMessage({'commands': commands, 'model': model}) + } + + WorkerScript { + id: worker + source: "script.js" + onMessage: { + item.result = messageObject.result + item.done = true + } + } + + function runEval(js) { + eval(js); + } +} diff --git a/tests/auto/qml/qquicklistmodel/data/multipleroles.qml b/tests/auto/qml/qquicklistmodel/data/multipleroles.qml new file mode 100644 index 0000000000..4a331e2b3e --- /dev/null +++ b/tests/auto/qml/qquicklistmodel/data/multipleroles.qml @@ -0,0 +1,25 @@ +import QtQuick 2.0 +ListView { + width: 100 + height: 250 + delegate: Rectangle { + width: 100 + height: 50 + color: black ? "black": "white" + } + model: ListModel { + objectName: "listModel" + ListElement { + black: false + rounded: false + } + ListElement { + black: true + rounded: false + } + ListElement { + black: true + rounded: false + } + } +} diff --git a/tests/auto/qml/qquicklistmodel/data/script.js b/tests/auto/qml/qquicklistmodel/data/script.js new file mode 100644 index 0000000000..66a4acb8a8 --- /dev/null +++ b/tests/auto/qml/qquicklistmodel/data/script.js @@ -0,0 +1,13 @@ +WorkerScript.onMessage = function(msg) { + var result = null + try { + for (var i=0; i<msg.commands.length; i++) { + var c = 'msg.model.' + msg.commands[i] + result = eval(c) + } + msg.model.sync() + } catch(e) { } + WorkerScript.sendMessage({'done': true, 'result': result}) +} + + diff --git a/tests/auto/qml/qquicklistmodel/data/setmodelcachelist.qml b/tests/auto/qml/qquicklistmodel/data/setmodelcachelist.qml new file mode 100644 index 0000000000..58bf1ccd04 --- /dev/null +++ b/tests/auto/qml/qquicklistmodel/data/setmodelcachelist.qml @@ -0,0 +1,20 @@ +import QtQuick 2.0 + +ListModel { + id: model + property bool ok : false + + Component.onCompleted: { + model.append({"attrs": []}) + model.get(0) + model.set(0, {"attrs": [{'abc': 123, 'def': 456}] } ) + ok = ( model.get(0).attrs.get(0).abc == 123 + && model.get(0).attrs.get(0).def == 456 ) + + model.set(0, {"attrs": [{'abc': 789, 'def': 101}] } ) + ok = ( model.get(0).attrs.get(0).abc == 789 + && model.get(0).attrs.get(0).def == 101 ) + + } +} + diff --git a/tests/auto/qml/qquicklistmodel/data/signalhandlers.qml b/tests/auto/qml/qquicklistmodel/data/signalhandlers.qml new file mode 100644 index 0000000000..750d99c5a3 --- /dev/null +++ b/tests/auto/qml/qquicklistmodel/data/signalhandlers.qml @@ -0,0 +1,8 @@ +import QtQuick 2.0 + +ListModel{ + property bool ok: false + property int foo: 5 + onFooChanged: ok = true + Component.onCompleted: foo = 6 +} diff --git a/tests/auto/qml/qquicklistmodel/data/workerremoveelement.js b/tests/auto/qml/qquicklistmodel/data/workerremoveelement.js new file mode 100644 index 0000000000..cb9dfa66aa --- /dev/null +++ b/tests/auto/qml/qquicklistmodel/data/workerremoveelement.js @@ -0,0 +1,8 @@ +WorkerScript.onMessage = function(msg) { + if (msg.action == 'removeItem') { + msg.model.remove(0); + } else if (msg.action == 'dosync') { + msg.model.sync(); + } + WorkerScript.sendMessage({'done': true}) +} diff --git a/tests/auto/qml/qquicklistmodel/data/workerremoveelement.qml b/tests/auto/qml/qquicklistmodel/data/workerremoveelement.qml new file mode 100644 index 0000000000..e2361acf6b --- /dev/null +++ b/tests/auto/qml/qquicklistmodel/data/workerremoveelement.qml @@ -0,0 +1,33 @@ +import QtQuick 2.0 + +Item { + id: item + property variant model + property bool done: false + + WorkerScript { + id: worker + source: "workerremoveelement.js" + onMessage: { + item.done = true + } + } + + function addItem() { + model.append({ 'data': 1 }); + + var element = model.get(0); + } + + function removeItemViaWorker() { + done = false + var msg = { 'action': 'removeItem', 'model': model } + worker.sendMessage(msg); + } + + function doSync() { + done = false + var msg = { 'action': 'dosync', 'model': model } + worker.sendMessage(msg); + } +} diff --git a/tests/auto/qml/qquicklistmodel/data/workerremovelist.js b/tests/auto/qml/qquicklistmodel/data/workerremovelist.js new file mode 100644 index 0000000000..f63dd68839 --- /dev/null +++ b/tests/auto/qml/qquicklistmodel/data/workerremovelist.js @@ -0,0 +1,9 @@ +WorkerScript.onMessage = function(msg) { + if (msg.action == 'removeList') { + msg.model.remove(0); + } else if (msg.action == 'dosync') { + msg.model.sync(); + } + WorkerScript.sendMessage({'done': true}) +} + diff --git a/tests/auto/qml/qquicklistmodel/data/workerremovelist.qml b/tests/auto/qml/qquicklistmodel/data/workerremovelist.qml new file mode 100644 index 0000000000..bdb5e024d8 --- /dev/null +++ b/tests/auto/qml/qquicklistmodel/data/workerremovelist.qml @@ -0,0 +1,33 @@ +import QtQuick 2.0 + +Item { + id: item + property variant model + property bool done: false + + WorkerScript { + id: worker + source: "workerremovelist.js" + onMessage: { + item.done = true + } + } + + function addList() { + model.append({ 'data': [ { 'subData': 1 } ] }); + + var element = model.get(0); + } + + function removeListViaWorker() { + done = false + var msg = { 'action': 'removeList', 'model': model } + worker.sendMessage(msg); + } + + function doSync() { + done = false + var msg = { 'action': 'dosync', 'model': model } + worker.sendMessage(msg); + } +} diff --git a/tests/auto/qml/qquicklistmodel/data/workersync.js b/tests/auto/qml/qquicklistmodel/data/workersync.js new file mode 100644 index 0000000000..9b8d8fa7f3 --- /dev/null +++ b/tests/auto/qml/qquicklistmodel/data/workersync.js @@ -0,0 +1,8 @@ +WorkerScript.onMessage = function(msg) { + if (msg.action == 'addItem') { + msg.model.get(0).level0.append({ 'level1': 33 }); + } else if (msg.action == 'dosync') { + msg.model.sync(); + } + WorkerScript.sendMessage({'done': true}) +} diff --git a/tests/auto/qml/qquicklistmodel/data/workersync.qml b/tests/auto/qml/qquicklistmodel/data/workersync.qml new file mode 100644 index 0000000000..c21cd43e7e --- /dev/null +++ b/tests/auto/qml/qquicklistmodel/data/workersync.qml @@ -0,0 +1,32 @@ +import QtQuick 2.0 + +Item { + id: item + property variant model + property bool done: false + + WorkerScript { + id: worker + source: "workersync.js" + onMessage: { + item.done = true + } + } + + function addItem0() { + model.append({ 'level0': [ { 'level1': 29 } ] }); + model.append({ 'level0': [ { 'level1': 37 } ] }); + } + + function addItemViaWorker() { + done = false + var msg = { 'action': 'addItem', 'model': model } + worker.sendMessage(msg); + } + + function doSync() { + done = false + var msg = { 'action': 'dosync', 'model': model } + worker.sendMessage(msg); + } +} |