fix(ExclusiveButtons): supports unlimited buttons

This commit is contained in:
Ronan Abhamon 2016-09-13 13:15:54 +02:00
parent 23aa037670
commit b286809ea5
2 changed files with 23 additions and 35 deletions

View file

@ -3,45 +3,31 @@ import QtQuick 2.7
// ===================================================================
Row {
property alias text1: button1.text
property alias text2: button2.text
property bool button1IsSelected: true
property int selectedButton: 0
property variant texts
signal buttonChanged (int button)
spacing: 8
SmallButton {
anchors.verticalCenter: parent.verticalCenter
backgroundColor: button1IsSelected
? '#8E8E8E'
: (button1.down
? '#FE5E00'
: '#D1D1D1'
)
id: button1
onClicked: {
if (!button1IsSelected) {
button1IsSelected = true
buttonChanged(1)
}
}
}
Repeater {
model: texts
SmallButton {
anchors.verticalCenter: parent.verticalCenter
backgroundColor: selectedButton === index
? '#8E8E8E'
: (button.down
? '#FE5E00'
: '#D1D1D1'
)
id: button
text: modelData
SmallButton {
anchors.verticalCenter: parent.verticalCenter
backgroundColor: !button1IsSelected
? '#8E8E8E'
: (button2.down
? '#FE5E00'
: '#D1D1D1'
)
id: button2
onClicked: {
if (button1IsSelected) {
button1IsSelected = false
buttonChanged(2)
onClicked: {
if (selectedButton !== index) {
selectedButton = index
buttonChanged(index)
}
}
}
}

View file

@ -35,8 +35,10 @@ ColumnLayout {
ExclusiveButtons {
Layout.preferredHeight: parent.height
text1: qsTr('selectAllContacts')
text2: qsTr('selectConnectedContacts')
texts: [
qsTr('selectAllContacts'),
qsTr('selectConnectedContacts')
]
}
LightButton {