Warning, /libraries/kirigami-addons/src/dateandtime/TimePopup.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2023 Carl Schwan <carl@carlschwan.eu>
0002 // SPDX-License-Identifier: LGPL-2.0-or-later
0003 
0004 import QtQuick 2.15
0005 import QtQuick.Layouts 1.15
0006 import QtQuick.Controls 2.15 as QQC2
0007 import org.kde.kirigami 2.20 as Kirigami
0008 import org.kde.kirigamiaddons.components 1.0 as Components
0009 
0010 QQC2.Dialog {
0011     id: root
0012 
0013     /**
0014      * @brief The current date and time selected by the user.
0015      */
0016     property date value: new Date()
0017 
0018     /**
0019      * Emitted when the user accepts the dialog.
0020      * The selected date is available from the selectedDate property.
0021      */
0022     signal accepted()
0023 
0024     /**
0025      * Emitted when the user cancells the popup
0026      */
0027     signal cancelled()
0028 
0029     property date _value: new Date()
0030 
0031     modal: true
0032 
0033     contentItem: TimePicker {
0034         id: popupContent
0035         implicitWidth: applicationWindow().width
0036         minutes: root.value.getMinutes()
0037         hours: root.value.getHours()
0038         onMinutesChanged: {
0039             root._value.setHours(hours, minutes);
0040         }
0041         onHoursChanged: {
0042             root._value.setHours(hours, minutes);
0043         }
0044     }
0045 
0046     background: Components.DialogRoundedBackground {}
0047 
0048     footer: Components.MessageDialogButtonBox {
0049         id: box
0050 
0051         Components.MessageDialogButton {
0052             text: i18ndc("kirigami-addons6", "@action:button", "Cancel")
0053             icon.name: "dialog-cancel"
0054             buttonBox: box
0055             onClicked: {
0056                 root.cancelled()
0057                 root.close()
0058             }
0059 
0060             QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.RejectRole
0061         }
0062 
0063         Components.MessageDialogButton {
0064             text: i18ndc("kirigami-addons6", "@action:button", "Select")
0065             icon.name: "dialog-ok-apply"
0066             buttonBox: box
0067             onClicked: {
0068                 root.value = root._value;
0069                 root.accepted()
0070                 root.close()
0071             }
0072 
0073             QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.AcceptRole
0074         }
0075     }
0076 
0077     // black background, fades in and out
0078     QQC2.Overlay.modal: Rectangle {
0079         color: Qt.rgba(0, 0, 0, 0.3)
0080 
0081         // the opacity of the item is changed internally by QQuickPopup on open/close
0082         Behavior on opacity {
0083             OpacityAnimator {
0084                 duration: Kirigami.Units.longDuration
0085                 easing.type: Easing.InOutQuad
0086             }
0087         }
0088     }
0089 }