Let's say I have a ListView of clickable delegate components (or GridView or Repeater). These delegate components need to emit a signal along with custom data when triggered that can be picked up by the parent of the ListView. How can this signal binding be achieved?
e.g. The following code is my attempt but I don't know how to bind the trigger signal of the delegate component to the componentTriggered signal in the root item?
Item { id: root anchors.fill: parent signal componentTriggered(string name) onComponentTriggered: { console.log(name + ' component was triggered') } ListModel { id: myModel ListElement { name: "alpha" } ListElement { name: "beta" } ListElement { name: "gamma" } ListElement { name: "delta" } } ListView { id: myListView width: 100 height: 600 model: myModel delegate: TheDelegate { name: model.name } } } which accesses TheDelegate.qml
import QtQuick 2.0 Rectangle { id: root width: 100 height: 50 color: "steelblue" border.color: "white" border.width: 2 property string name signal trigger(string name) Text { anchors.centerIn: parent text: model.name } MouseArea { anchors.fill: parent onClicked: { console.log(root.name + ' clicked') root.trigger(root.name) } } }