mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-20 13:18:06 +00:00
85 lines
No EOL
2.4 KiB
QML
85 lines
No EOL
2.4 KiB
QML
import QtQuick
|
|
import Linphone
|
|
import UtilsCpp 1.0
|
|
|
|
ComboBox {
|
|
id: mainItem
|
|
property var selectedDateTime
|
|
readonly property string selectedTimeString: Qt.formatDateTime(selectedDateTime, "hh:mm")
|
|
property int selectedHour: input.hour*1
|
|
property int selectedMin: input.min*1
|
|
property alias contentText: input
|
|
popup.width: 73 * DefaultStyle.dp
|
|
listView.model: 48
|
|
listView.implicitHeight: 204 * DefaultStyle.dp
|
|
editable: true
|
|
popup.closePolicy: Popup.PressOutsideParent | Popup.CloseOnPressOutside
|
|
onCurrentTextChanged: input.text = currentText
|
|
popup.onOpened: {
|
|
input.forceActiveFocus()
|
|
}
|
|
contentItem: TextInput {
|
|
id: input
|
|
anchors.right: indicator.left
|
|
validator: IntValidator{}
|
|
// activeFocusOnPress: false
|
|
inputMask: "00:00"
|
|
verticalAlignment: TextInput.AlignVCenter
|
|
horizontalAlignment: TextInput.AlignHCenter
|
|
property string hour: text.split(":")[0]
|
|
property string min: text.split(":")[1]
|
|
color: DefaultStyle.main2_600
|
|
onActiveFocusChanged: {
|
|
if (activeFocus) {
|
|
selectAll()
|
|
mainItem.popup.open()
|
|
} else {
|
|
listView.currentIndex = -1
|
|
mainItem.selectedDateTime = UtilsCpp.createDateTime(mainItem.selectedDateTime, hour, min)
|
|
}
|
|
}
|
|
font {
|
|
pixelSize: 14 * DefaultStyle.dp
|
|
weight: 700 * DefaultStyle.dp
|
|
}
|
|
text: mainItem.selectedTimeString
|
|
Keys.onPressed: (event) => {
|
|
if (event.key == Qt.Key_Enter || event.key == Qt.Key_Return) {
|
|
focus = false
|
|
}
|
|
}
|
|
onEditingFinished: {
|
|
console.log("set time", hour, min)
|
|
mainItem.selectedDateTime = UtilsCpp.createDateTime(mainItem.selectedDateTime, hour, min)
|
|
}
|
|
}
|
|
listView.delegate: Text {
|
|
id: hourDelegate
|
|
property int hour: modelData /2
|
|
property int min: modelData%2 === 0 ? 0 : 30
|
|
text: Qt.formatDateTime(UtilsCpp.createDateTime(new Date(), hour, min), "hh:mm")
|
|
width: mainItem.width
|
|
height: 25 * DefaultStyle.dp
|
|
verticalAlignment: TextInput.AlignVCenter
|
|
horizontalAlignment: TextInput.AlignHCenter
|
|
font {
|
|
pixelSize: 14 * DefaultStyle.dp
|
|
weight: 400 * DefaultStyle.dp
|
|
}
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
cursorShape: containsMouse ? Qt.PointingHandCursor : Qt.ArrowCursor
|
|
onClicked: {
|
|
// mainItem.text = parent.text
|
|
mainItem.listView.currentIndex = index
|
|
mainItem.selectedDateTime = UtilsCpp.createDateTime(mainItem.selectedDateTime, hour, min)
|
|
mainItem.popup.close()
|
|
}
|
|
Rectangle {
|
|
visible: parent.containsMouse
|
|
color: DefaultStyle.main2_200
|
|
}
|
|
}
|
|
}
|
|
} |