Warning, /plasma-mobile/calindori/src/contents/ui/RecurrencePickerSheet.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 * SPDX-FileCopyrightText: 2019 Dimitris Kardarakos <dimkard@posteo.net>
0003 *
0004 * SPDX-License-Identifier: GPL-3.0-or-later
0005 */
0006
0007 import QtQuick 2.7
0008 import org.kde.kirigami 2.3 as Kirigami
0009 import QtQuick.Controls 2.0 as Controls
0010 import QtQuick.Layouts 1.3
0011 import org.kde.calindori 0.1 as Calindori
0012
0013 Kirigami.OverlaySheet {
0014 id: root
0015
0016 property int selectedRepeatType
0017 property alias selectedRepeatEvery: repeatEverySpin.value
0018 property alias selectedStopAfter: stopAfterSpin.value
0019
0020 signal recurrencePicked
0021
0022 function init(eventRepeatType, eventRepeatEvery, eventStopAfter) {
0023 selectedRepeatType = eventRepeatType;
0024 selectedRepeatEvery = eventRepeatEvery;
0025 selectedStopAfter = eventStopAfter;
0026 root.open();
0027 }
0028
0029 header: Kirigami.Heading {
0030 level:1
0031 text: i18n("Repeat")
0032 }
0033
0034 Kirigami.FormLayout {
0035 Layout.preferredWidth: Kirigami.Units.gridUnit * 15
0036
0037 Repeater {
0038 id: repeatTypesList
0039
0040 model: _repeatModel
0041
0042 delegate: Controls.RadioButton {
0043
0044 text: model.repeatDescription
0045 checked: model.repeatCode === selectedRepeatType
0046
0047 onClicked: {selectedRepeatType = model.repeatCode}
0048 }
0049
0050 Layout.fillWidth: true
0051 }
0052
0053 RowLayout {
0054 Kirigami.FormData.label: i18n("Every:")
0055
0056 Controls.SpinBox {
0057 id: repeatEverySpin
0058
0059 enabled: repeatTypesList && repeatTypesList.model && selectedRepeatType !== repeatTypesList.model.noRepeat
0060 from: 1
0061 }
0062
0063 Controls.Label {
0064 text: (selectedRepeatType === repeatTypesList.model.repeatYearlyMonth || selectedRepeatType === repeatTypesList.model.repeatYearlyDay || selectedRepeatType === repeatTypesList.model.repeatYearlyPos) ? i18np("year", "years", repeatEverySpin.value) :
0065 (selectedRepeatType === repeatTypesList.model.repeatMonthlyDay || selectedRepeatType === repeatTypesList.model.repeatMonthlyPos) ? i18np("month", "months",repeatEverySpin.value) :
0066 (selectedRepeatType === repeatTypesList.model.repeatWeekly) ? i18np("week", "weeks",repeatEverySpin.value) :
0067 (selectedRepeatType === repeatTypesList.model.repeatDaily) ? i18np("day", "days",repeatEverySpin.value) : ""
0068 }
0069 }
0070
0071 RowLayout {
0072 Kirigami.FormData.label: i18n("Stop After:")
0073
0074 Controls.SpinBox {
0075 id: stopAfterSpin
0076
0077 enabled: repeatTypesList && repeatTypesList.model && selectedRepeatType !== repeatTypesList.model.noRepeat
0078 from: 0
0079 }
0080
0081 Controls.Label {
0082 text: stopAfterSpin.value > 0 ? i18np("repeat", "repeats", stopAfterSpin.value) : i18n("Never stop")
0083 }
0084 }
0085 }
0086
0087 footer: RowLayout {
0088 Item {
0089 Layout.fillWidth: true
0090 }
0091
0092 Controls.ToolButton {
0093 text: i18n("Save")
0094
0095 onClicked: {
0096 root.recurrencePicked();
0097 root.close();
0098 }
0099 }
0100
0101 Controls.ToolButton {
0102 text: i18n("Cancel")
0103
0104 onClicked: root.close()
0105 }
0106 }
0107 }