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 }