KOSMIndoorMap

RoutingProfileSheet.qml
1/*
2 SPDX-FileCopyrightText: 2024 Volker Krause <vkrause@kde.org>
3 SPDX-License-Identifier: LGPL-2.0-or-later
4*/
5
6import QtQuick
7import QtQuick.Layouts
8import QtQuick.Controls as QQC2
9import org.kde.kirigami as Kirigami
10import org.kde.kosmindoorrouting
11
12Kirigami.Dialog {
13 id: root
14
15 property var routingProfile
16 signal applyRoutingProfile()
17
18 title: i18n("Configure Routing Profile")
19
20 contentItem: Kirigami.FormLayout {
21 Layout.preferredWidth: Kirigami.Units.gridUnit * 25
23 Kirigami.FormData.isSection: true
24 Kirigami.FormData.label: "Flags"
25 }
26
27 QQC2.CheckBox {
28 id: stairFlag
29 Kirigami.FormData.label: i18n("Use stairs")
30 checked: routingProfile.flags & AreaFlag.Stairs
31 }
32 QQC2.CheckBox {
33 id: escalatorFlag
34 Kirigami.FormData.label: i18n("Use escalators")
35 checked: routingProfile.flags & AreaFlag.Escalator
36 }
37 QQC2.CheckBox {
38 id: elevatorFlag
39 Kirigami.FormData.label: i18n("Use elevators")
40 checked: routingProfile.flags & AreaFlag.Elevator
41 }
42
44 Kirigami.FormData.isSection: true
45 Kirigami.FormData.label: "Cost factors"
46 }
47
48 QQC2.TextField {
49 id: stairCost
50 Kirigami.FormData.label: i18n("Stairs")
51 text: routingProfile.cost(AreaType.Stairs)
52 }
53 QQC2.TextField {
54 id: elevatorCost
55 Kirigami.FormData.label: i18n("Elevator")
56 text: routingProfile.cost(AreaType.Elevator)
57 }
58 QQC2.TextField {
59 id: escalatorCost
60 Kirigami.FormData.label: i18n("Escalator")
61 text: routingProfile.cost(AreaType.Escalator)
62 }
63 QQC2.TextField {
64 id: movingWalkwayCost
65 Kirigami.FormData.label: i18n("Moving Walkways")
66 text: routingProfile.cost(AreaType.MovingWalkway)
67 }
68 QQC2.TextField {
69 id: tactilePavingCost
70 Kirigami.FormData.label: i18n("Tactile Paving")
71 text: routingProfile.cost(AreaType.TactilePaving)
72 }
73 QQC2.TextField {
74 id: streetCrossingCost
75 Kirigami.FormData.label: i18n("Street Crossing")
76 text: routingProfile.cost(AreaType.StreetCrossing)
77 }
78 QQC2.TextField {
79 id: rampCost
80 Kirigami.FormData.label: i18n("Ramp")
81 text: routingProfile.cost(AreaType.Ramp)
82 }
83 QQC2.TextField {
84 id: roomCost
85 Kirigami.FormData.label: i18n("Room")
86 text: routingProfile.cost(AreaType.Room)
87 }
88 QQC2.TextField {
89 id: walkingCost
90 Kirigami.FormData.label: i18n("Walking")
91 text: routingProfile.cost(AreaType.Walkable)
92 }
93 }
94
95 customFooterActions: [
97 text: i18n("Apply")
98 icon.name: "dialog-ok-apply"
99 onTriggered: {
100 root.routingProfile.flags = AreaFlag.Walkable;
101 if (stairFlag.checked)
102 root.routingProfile.flags |= AreaFlag.Stairs;
103 if (escalatorFlag.checked)
104 root.routingProfile.flags |= AreaFlag.Escalator;
105 if (elevatorFlag.checked)
106 root.routingProfile.flags |= AreaFlag.Elevator;
107
108 root.routingProfile.setCost(AreaType.Stairs, stairCost.text);
109 root.routingProfile.setCost(AreaType.Elevator, elevatorCost.text);
110 root.routingProfile.setCost(AreaType.Escalator, escalatorCost.text);
111 root.routingProfile.setCost(AreaType.MovingWalkway, movingWalkwayCost.text);
112 root.routingProfile.setCost(AreaType.TactilePaving, tactilePavingCost.text);
113 root.routingProfile.setCost(AreaType.StreetCrossing, streetCrossingCost.text);
114 root.routingProfile.setCost(AreaType.Ramp, rampCost.text);
115 root.routingProfile.setCost(AreaType.Room, roomCost.text);
116 root.routingProfile.setCost(AreaType.Walkable, walkingCost.text);
117
118 root.close()
119 root.applyRoutingProfile()
120 }
121 }
122 ]
123}
QString i18n(const char *text, const TYPE &arg...)
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Jul 26 2024 11:57:46 by doxygen 1.11.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.