import QtQuick import QtQuick.Controls.Basic import QtQuick.Layouts import Linphone RowLayout { id:mainItem property string titleText property string subTitleText property string propertyName property var propertyOwner property var propertyOwnerGui property bool enabled: true spacing : 20 * DefaultStyle.dp signal checkedChanged(bool checked) function setChecked(value) { switchButton.checked = value } ColumnLayout { Layout.minimumHeight: 32 * DefaultStyle.dp spacing: 4 * DefaultStyle.dp Text { text: titleText font: Typography.p2l wrapMode: Text.WordWrap color: DefaultStyle.main2_600 Layout.fillWidth: true } Text { text: subTitleText font: Typography.p1 wrapMode: Text.WordWrap visible: subTitleText.length > 0 color: DefaultStyle.main2_600 Layout.fillWidth: true } } Switch { id: switchButton Layout.alignment: Qt.AlignRight | Qt.AlignVCenter checked: propertyOwnerGui ? propertyOwnerGui.core[mainItem.propertyName] : propertyOwner ? propertyOwner[mainItem.propertyName] : false enabled: mainItem.enabled onCheckedChanged: mainItem.checkedChanged(checked) onToggled: binding.when = true } Binding { id: binding target: propertyOwnerGui ? propertyOwnerGui.core : propertyOwner ? propertyOwner : null property: mainItem.propertyName value: switchButton.checked when: false } }