Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.5.0
-
None
-
c1600b568 (dev), 937751f42 (dev), 8529d537a (6.6), b9bfdea0e (dev)
Description
I believe there is a problematic behaviour in case of creation QGadget based class that holds:
Q_PROPERTY(QStringList gadgetStringList READ gadgetStringList WRITE setGadgetStringList)
There is no possibility in QML context to change elements of gadgetStringList by index gadgetStringList[i]:
Window { property myTestGadget gadget Component.onCompleted: { gadget.gadgetStringList = ["Element1", "Element2", "Element3"] obj.qobjectStringList = ["Element1", "Element2", "Element3"] console.log("Gadget List: " + gadget.gadgetStringList) console.log("Object List: " + obj.qobjectStringList) gadget.gadgetStringList[0] = "Completely new Element" obj.qobjectStringList[0] = "Completely new Element" console.log("Gadget List: " + gadget.gadgetStringList) console.log("Object List: " + obj.qobjectStringList) gadget.gadgetStringList = ["Element4", "Element5"] console.log("Gadget List: " + gadget.gadgetStringList) } }
Note: The same functionality for QObgect classes works correctly.
obj.qobjectStringList - QObject based list
gadget.gadgetStringList - QGadget based list{}
Actual result:
qml: Gadget List: Element1,Element2,Element3 qml: Object List: Element1,Element2,Element3 qml: Gadget List: Element1,Element2,Element3 qml: Object List: Completely new Element,Element2,Element3
Expected result:
qml: Gadget List: Element1,Element2,Element3 qml: Object List: Element1,Element2,Element3 qml: Gadget List: Completely new Element,Element2,Element3 qml: Object List: Completely new Element,Element2,Element3
Please, find full code version in attach.
Another important problem for QGadgets:
Q_PROPERTY(QByteArrayList gadgetArrayList READ gadgetArrayList WRITE setGadgetArrayList)
gadget.gadgetArrayList[0] is not recognised in QML
Note:
Again for QObjects everything works.
Attachments
For Gerrit Dashboard: QTBUG-113690 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
481494,8 | ListProperty: Document faulty index-assignment on gadget list properties | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
486087,9 | QML: Un-specialcase QStringList and QVariantList conversion | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
486187,3 | QMetaContainer: Allow retrieving the d pointer | dev | qt/qtbase | Status: MERGED | +2 | 0 |
486686,2 | QMetaContainer: Allow retrieving the d pointer | 6.6 | qt/qtbase | Status: MERGED | +2 | 0 |