The output is as follows:
ubuntu@xenial1:~/dev/ubuntu-ui-toolkit/m/qt56fixes2sections$ qmlscene modelInst.qml
qml: root.objectList changed to undefined undefined undefined
qml: root.objectList changed to QObject(0x118abf0, "one") undefined undefined
qml: root.objectList changed to QObject(0x118abf0, "one") QObject(0x118a110, "two") undefined
qml: root.objectList changed to QObject(0x118abf0, "one") QObject(0x118a110, "two") QObject(0x1182f80, "three")
qml: LV model changed to QObject(0x118abf0, "one") QObject(0x118a110, "two") QObject(0x1182f80, "three") undefined
qml: LV model changed to QObject(0x118abf0, "one") QObject(0x118a110, "two") QObject(0x1182f80, "three") undefined
qml: root item completed.
qml: ListView completed.
qml: LV model changed to QObject(0x118abf0, "one") QObject(0x118a110, "two") QObject(0x1182f80, "three") undefined
qml: LV model changed to QObject(0x118abf0, "one") QObject(0x118a110, "two") QObject(0x1182f80, "three") undefined
so the model ic changed AFTER the ListView and root item are completed.
When the Ubuntu.Components import is removed, the output is correct, like this:
ubuntu@xenial1:~/dev/ubuntu-ui-toolkit/m/qt56fixes2sections$ qmlscene modelInst.qml
qml: root.objectList changed to undefined undefined undefined
qml: root.objectList changed to QObject(0x171c8d0, "one") undefined undefined
qml: root.objectList changed to QObject(0x171c8d0, "one") QObject(0x171d290, "two") undefined
qml: root.objectList changed to QObject(0x171c8d0, "one") QObject(0x171d290, "two") QObject(0x171d420, "three")
qml: LV model changed to QObject(0x171c8d0, "one") QObject(0x171d290, "two") QObject(0x171d420, "three") undefined
qml: LV model changed to QObject(0x171c8d0, "one") QObject(0x171d290, "two") QObject(0x171d420, "three") undefined
qml: root item completed.
qml: ListView completed.
Also, if there is no ListView inside ModelTest.qml, then nothing is updated after the items are completed. So I suspect the issue is in our ListView extension.
This is the cause for the Sections index resetting after initialization, see bug https:/ /bugs.launchpad .net/ubuntu/ +source/ ubuntu- ui-toolkit/ +bug/1610231
Create the file ModelTest.qml:
import QtQuick 2.4
Item {
id: root
width: 800
height: 600
ListView {
onModelChanged : print("LV model changed to "+model[0]+" "+model[1]+" "+model[2]+" "+model[3])
Component. onCompleted: print("ListView completed.") onCompleted: print("root item completed.")
model: root.model
}
Component.
property list<QtObject> objectList tChanged: print(" root.objectList changed to "+objectList[0]+" "+objectList[1]+" "+objectList[2])
onObjectLis
property var model: objectList
}
and run this program modelInst.qml:
import QtQuick 2.4
import Ubuntu.Components 1.3
ModelTest {
QtObject {
objectName: "one"
id: objectOne
}
QtObject {
objectName: "two"
id: objectTwo
}
QtObject{
objectName: "three"
id: objectThree
}
objectList: [objectOne, objectTwo, objectThree]
}
The output is as follows: xenial1: ~/dev/ubuntu- ui-toolkit/ m/qt56fixes2sec tions$ qmlscene modelInst.qml
ubuntu@
qml: root.objectList changed to undefined undefined undefined
qml: root.objectList changed to QObject(0x118abf0, "one") undefined undefined
qml: root.objectList changed to QObject(0x118abf0, "one") QObject(0x118a110, "two") undefined
qml: root.objectList changed to QObject(0x118abf0, "one") QObject(0x118a110, "two") QObject(0x1182f80, "three")
qml: LV model changed to QObject(0x118abf0, "one") QObject(0x118a110, "two") QObject(0x1182f80, "three") undefined
qml: LV model changed to QObject(0x118abf0, "one") QObject(0x118a110, "two") QObject(0x1182f80, "three") undefined
qml: root item completed.
qml: ListView completed.
qml: LV model changed to QObject(0x118abf0, "one") QObject(0x118a110, "two") QObject(0x1182f80, "three") undefined
qml: LV model changed to QObject(0x118abf0, "one") QObject(0x118a110, "two") QObject(0x1182f80, "three") undefined
so the model ic changed AFTER the ListView and root item are completed.
When the Ubuntu.Components import is removed, the output is correct, like this: xenial1: ~/dev/ubuntu- ui-toolkit/ m/qt56fixes2sec tions$ qmlscene modelInst.qml
ubuntu@
qml: root.objectList changed to undefined undefined undefined
qml: root.objectList changed to QObject(0x171c8d0, "one") undefined undefined
qml: root.objectList changed to QObject(0x171c8d0, "one") QObject(0x171d290, "two") undefined
qml: root.objectList changed to QObject(0x171c8d0, "one") QObject(0x171d290, "two") QObject(0x171d420, "three")
qml: LV model changed to QObject(0x171c8d0, "one") QObject(0x171d290, "two") QObject(0x171d420, "three") undefined
qml: LV model changed to QObject(0x171c8d0, "one") QObject(0x171d290, "two") QObject(0x171d420, "three") undefined
qml: root item completed.
qml: ListView completed.
Also, if there is no ListView inside ModelTest.qml, then nothing is updated after the items are completed. So I suspect the issue is in our ListView extension.