Hello wysota,
thanks again for helping me out! I finally got it working. The problem was not assigning the index but binding the TextSwitch checked property to the selected index. Here is my final working code:
SilicaListView {
id: myListView
width: parent.width
height: parent.height - header.height
anchors.top: header.bottom
spacing: Theme.paddingLarge
VerticalScrollDecorator {}
model: playlistModel
property int selected: -1
delegate: TextSwitch {
id: playlistSwitch
height: 50
width: parent.width
property string tempUrl: url.slice(7)
property bool isChecked: (index === myListView.selected? playlistSwitch.checked = true:playlistSwitch.checked = false)
text: playlistName
onClicked: {
if(playlistSwitch.checked){
m_url = tempUrl
m_playlistName = playlistName
myListView.selected = index
}else{
tempUrl = ""
m_playlistName = ""
}
}
}
}
SilicaListView {
id: myListView
width: parent.width
height: parent.height - header.height
anchors.top: header.bottom
spacing: Theme.paddingLarge
VerticalScrollDecorator {}
model: playlistModel
property int selected: -1
delegate: TextSwitch {
id: playlistSwitch
height: 50
width: parent.width
property string tempUrl: url.slice(7)
property bool isChecked: (index === myListView.selected? playlistSwitch.checked = true:playlistSwitch.checked = false)
text: playlistName
onClicked: {
if(playlistSwitch.checked){
m_url = tempUrl
m_playlistName = playlistName
myListView.selected = index
}else{
tempUrl = ""
m_playlistName = ""
}
}
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks