1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-04-21 13:42:05 +02:00
jami-client-qt/src/app/commoncomponents/JamiSwitch.qml
ovari123 5540001e7a copyright: happy new year!
Cf. https://review.jami.net/c/jami-daemon/+/29901

Change-Id: I46a0d1297c2e60ca43dc5524fd6e8a192bc45139
2025-02-12 09:47:26 -05:00

75 lines
2.2 KiB
QML

/*
* Copyright (C) 2021-2025 Savoir-faire Linux Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import QtQuick
import QtQuick.Controls
import net.jami.Constants 1.1
Switch {
id: root
property alias toolTipText: toolTip.text
property alias radius: handleBackground.radius
hoverEnabled: true
focusPolicy: Qt.StrongFocus
useSystemFocusVisuals: false
MaterialToolTip {
id: toolTip
parent: root
visible: hovered && (toolTipText.length > 0)
delay: Qt.styleHints.mousePressAndHoldInterval
}
indicator: Rectangle {
id: handleBackground
implicitWidth: JamiTheme.switchPreferredWidth
implicitHeight: JamiTheme.switchPreferredHeight
x: root.leftPadding
y: parent.height / 2 - height / 2
radius: JamiTheme.switchIndicatorRadius
color: JamiTheme.switchBackgroundColor
border.color: handleBackground.color
Rectangle {
id: handle
x: root.checked ? parent.width - width : 0
y: parent.height / 2 - height / 2
width: JamiTheme.switchIndicatorPreferredWidth
height: JamiTheme.switchPreferredHeight
radius: JamiTheme.switchIndicatorRadius
color: root.checked ? JamiTheme.switchHandleCheckedColor : JamiTheme.switchHandleColor
border.color: JamiTheme.switchHandleBorderColor
}
}
Keys.onPressed: function (keyEvent) {
if (keyEvent.key === Qt.Key_Enter || keyEvent.key === Qt.Key_Return) {
checked = !checked;
keyEvent.accepted = true;
}
}
}