Warning, /pim/itinerary/src/app/EditorPage.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2018 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 import QtQuick 0008 import QtQuick.Layouts 0009 import QtQuick.Controls as QQC2 0010 import QtQuick.Templates as T 0011 import org.kde.kirigami as Kirigami 0012 import org.kde.kirigamiaddons.components 0013 import org.kde.kitinerary 0014 import org.kde.itinerary 0015 0016 Kirigami.ScrollablePage { 0017 id: root 0018 0019 property var batchId: controller ? controller.batchId : undefined 0020 property QtObject controller: null 0021 property var reservation: ReservationManager.reservation(root.batchId); 0022 0023 property T.Action saveAction: QQC2.Action { 0024 text: i18nc("@action:button", "Save") 0025 icon.name: "document-save" 0026 enabled: root.isValidInput 0027 onTriggered: { 0028 const newRes = root.apply(root.reservation); 0029 if (root.batchId) { // update to an existing element 0030 ReservationManager.updateReservation(root.batchId, newRes); 0031 } else { // newly added element 0032 ReservationManager.importReservation(newRes); 0033 } 0034 pageStack.pop(); 0035 } 0036 } 0037 0038 /** Input validation for derived pages. */ 0039 property bool isValidInput: true 0040 0041 /** Returns the city/region/country we are assumed to be in at the given time. */ 0042 function cityAtTime(dt) { 0043 let city = Factory.makePlace(); 0044 let addr = city.address; 0045 const loc = TimelineModel.locationAtTime(dt); 0046 if (loc && !loc.address.isEmpty) { 0047 addr.addressLocality = loc.address.addressLocality; 0048 addr.addressRegion = loc.address.addressRegion; 0049 addr.addressCountry = loc.address.addressCountry; 0050 } else { 0051 addr.addressCountry = Settings.homeCountryIsoCode; 0052 } 0053 city.address = addr; 0054 return city; 0055 } 0056 0057 leftPadding: 0 0058 rightPadding: 0 0059 0060 data: FloatingButton { 0061 anchors { 0062 right: parent.right 0063 rightMargin: Kirigami.Units.largeSpacing + (root.contentItem.QQC2.ScrollBar && root.contentItem.QQC2.ScrollBar.vertical ? root.contentItem.QQC2.ScrollBar.vertical.width : 0) 0064 bottom: parent.bottom 0065 bottomMargin: Kirigami.Units.largeSpacing 0066 } 0067 action: root.saveAction 0068 } 0069 }