Warning, /network/kdeconnect-kde/app/qml/Main.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2015 Aleix Pol Gonzalez <aleixpol@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 import QtQuick 0008 import QtQuick.Controls as QQC2 0009 import QtQuick.Layouts 0010 import org.kde.kirigami as Kirigami 0011 import org.kde.kdeconnect 0012 0013 Kirigami.ApplicationWindow { 0014 id: root 0015 property int columnWidth: Kirigami.Units.gridUnit * 13 0016 minimumWidth: Kirigami.Units.gridUnit * 15 0017 minimumHeight: Kirigami.Units.gridUnit * 15 0018 wideScreen: width > columnWidth * 5 0019 pageStack.globalToolBar.canContainHandles: true 0020 pageStack.globalToolBar.showNavigationButtons: applicationWindow().pageStack.currentIndex > 0 ? Kirigami.ApplicationHeaderStyle.ShowBackButton : 0 0021 0022 globalDrawer: Kirigami.OverlayDrawer { 0023 id: drawer 0024 edge: Qt.application.layoutDirection === Qt.RightToLeft ? Qt.RightEdge : Qt.LeftEdge 0025 modal: Kirigami.Settings.isMobile || (applicationWindow().width < Kirigami.Units.gridUnit * 50 && !collapsed) // Only modal when not collapsed, otherwise collapsed won't show. 0026 width: Kirigami.Units.gridUnit * 16 0027 onModalChanged: drawerOpen = !modal 0028 0029 Behavior on width { 0030 NumberAnimation { 0031 duration: Kirigami.Units.longDuration 0032 easing.type: Easing.InOutQuad 0033 } 0034 } 0035 Kirigami.Theme.colorSet: Kirigami.Theme.Window 0036 0037 handleClosedIcon.source: modal ? null : "sidebar-expand-left" 0038 handleOpenIcon.source: modal ? null : "sidebar-collapse-left" 0039 handleVisible: modal 0040 0041 leftPadding: 0 0042 rightPadding: 0 0043 topPadding: 0 0044 bottomPadding: 0 0045 0046 contentItem: ColumnLayout { 0047 spacing: 0 0048 0049 QQC2.ToolBar { 0050 Layout.fillWidth: true 0051 Layout.preferredHeight: pageStack.globalToolBar.preferredHeight 0052 0053 leftPadding: Kirigami.Units.largeSpacing 0054 rightPadding: Kirigami.Units.largeSpacing 0055 topPadding: Kirigami.Units.smallSpacing 0056 bottomPadding: Kirigami.Units.smallSpacing 0057 0058 contentItem: Kirigami.Heading { 0059 text: announcedNameProperty.value 0060 elide: Qt.ElideRight 0061 0062 DBusProperty { 0063 id: announcedNameProperty 0064 object: DaemonDbusInterface 0065 read: "announcedName" 0066 defaultValue: "" 0067 } 0068 } 0069 } 0070 0071 QQC2.ItemDelegate { 0072 id: findDevicesAction 0073 text: i18nd("kdeconnect-app", "Find devices...") 0074 icon.name: "list-add" 0075 checked: pageStack.currentItem && pageStack.currentItem.objectName == "FindDevices" 0076 Layout.fillWidth: true 0077 0078 onClicked: { 0079 root.pageStack.clear() 0080 root.pageStack.push(Qt.resolvedUrl("FindDevicesPage.qml")); 0081 } 0082 } 0083 0084 Kirigami.Separator { 0085 Layout.fillWidth: true 0086 } 0087 0088 Repeater { 0089 model: DevicesSortProxyModel { 0090 sourceModel: DevicesModel { 0091 displayFilter: DevicesModel.Paired | DevicesModel.Reachable 0092 } 0093 } 0094 0095 QQC2.ItemDelegate { 0096 Layout.fillWidth: true 0097 contentItem: Kirigami.IconTitleSubtitle { 0098 icon.name: model.iconName 0099 icon.width: Kirigami.Units.iconSizes.smallMedium 0100 title: model.name 0101 subtitle: model.toolTip 0102 } 0103 0104 enabled: status & DevicesModel.Reachable 0105 checked: pageStack.currentItem && pageStack.currentItem.currentDevice == device 0106 onClicked: { 0107 root.pageStack.clear() 0108 root.pageStack.push( 0109 Qt.resolvedUrl("DevicePage.qml"), 0110 {currentDevice: device} 0111 ); 0112 } 0113 } 0114 } 0115 0116 Item { 0117 Layout.fillHeight: true 0118 Layout.fillWidth: true 0119 } 0120 0121 QQC2.ItemDelegate { 0122 text: i18n("Settings") 0123 icon.name: "settings-configure" 0124 Layout.fillWidth: true 0125 onClicked: pageStack.pushDialogLayer(Qt.resolvedUrl("Settings.qml"), {}, { 0126 title: i18n("Settings"), 0127 }); 0128 } 0129 } 0130 } 0131 0132 contextDrawer: Kirigami.ContextDrawer { 0133 id: contextDrawer 0134 } 0135 0136 pageStack.initialPage: Qt.resolvedUrl("FindDevicesPage.qml") 0137 }