KOSMIndoorMap

FloorLevelSelector.qml
1/*
2 SPDX-FileCopyrightText: 2020 Volker Krause <vkrause@kde.org>
3 SPDX-License-Identifier: LGPL-2.0-or-later
4*/
5
6import QtQuick
7import QtQuick.Controls as QQC2
8import org.kde.kirigami as Kirigami
9import org.kde.kosmindoormap
10
11/** Floor level selection popup, e.g. for elevators. */
12Kirigami.Dialog {
13 id: root
14
15 /** Instance of a FloorLevelChangeModel. */
16 property alias model: listView.model
17
18 /** Emitted when a floor level has been selected. */
19 signal floorLevelSelected(level: int)
20
21 title: root.model.title
22
23 width: Math.min(applicationWindow().width, Kirigami.Units.gridUnit * 10)
24 height: Math.min(applicationWindow().height, listView.contentHeight + root.header.implicitHeight + Kirigami.Units.largeSpacing)
25
26 contentItem: ListView {
27 id: listView
28 clip: true
29 keyNavigationEnabled: true
30
31 delegate: QQC2.ItemDelegate {
32 width: ListView.view.width
33 contentItem: Kirigami.TitleSubtitle {
34 title: model.display
35 font.bold: model.isCurrentFloor
36 }
37 onClicked: {
38 root.close();
39 root.floorLevelSelected(model.floorLevel);
40 }
41 Keys.onPressed: (event) => {
42 if (event.key === Qt.Key_Enter || event.key == Qt.Key_Return) {
43 event.accepted = true;
44 root.close();
45 root.floorLevelSelected(model.floorLevel);
46 }
47 }
48 }
49 }
50
51 onOpened: {
52 listView.forceActiveFocus();
53 listView.currentIndex = root.model.currentFloorLevelRow;
54 }
55}
AKONADI_CALENDAR_EXPORT KCalendarCore::Event::Ptr event(const Akonadi::Item &item)
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.