Warning, /pim/itinerary/src/app/SheetDrawer.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2024 Mathis BrĂ¼chert <mbb@kaidan.im>
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 org.kde.kirigami as Kirigami
0011 import org.kde.kirigamiaddons.components as Components
0012
0013
0014 Item {
0015 id: root
0016
0017 property Component contentItem
0018 property Component headerItem
0019 property Component footerItem
0020
0021 signal closed()
0022 Component.onCompleted: {
0023 sheet.closed.connect(root.closed)
0024 drawer.closed.connect(root.closed)
0025
0026 }
0027
0028 function open() {
0029 if (Kirigami.Settings.isMobile) {
0030 drawer.open()
0031 drawer.drawerContentItem = contentItem.createObject(drawer)
0032 drawer.headerContentItem = headerItem.createObject(drawer)
0033 } else {
0034 sheet.open()
0035 sheet.contentItem = contentItem.createObject(sheet)
0036 sheet.header.contentItem = headerItem.createObject(sheet)
0037 if (root.footerItem)
0038 sheet.footer.contentItem = footerItem.createObject(sheet)
0039 }
0040 }
0041
0042 function close() {
0043 drawer.close()
0044 sheet.close()
0045 }
0046
0047 Components.BottomDrawer {
0048 id: drawer
0049 parent: applicationWindow().overlay
0050 }
0051
0052
0053 QQC2.Dialog {
0054 id: sheet
0055 parent: applicationWindow().overlay
0056 background: Components.DialogRoundedBackground {}
0057 header: QQC2.Control {
0058 leftPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing
0059 rightPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing
0060 topPadding: Kirigami.Units.largeSpacing
0061 bottomPadding: 0
0062 }
0063 footer: QQC2.Control {
0064 leftPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing
0065 rightPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing
0066 topPadding: Kirigami.Units.largeSpacing
0067 bottomPadding: 0
0068 }
0069
0070 x: Math.round((parent.width - width) / 2)
0071 y: Math.round((parent.height - height) / 2)
0072
0073 width: Math.min(parent.width - Kirigami.Units.gridUnit * 4, Kirigami.Units.gridUnit * 30)
0074 height: Math.min(parent.height - Kirigami.Units.gridUnit * 4, implicitHeight)
0075
0076 rightPadding: 0
0077 leftPadding: 0
0078 bottomPadding: 0
0079
0080 }
0081
0082 }