Warning, /maui/booth/src/widgets/views/PlacesSideBar.qml is written in an unsupported language. File is not indexed.
0001 // Copyright 2018-2020 Camilo Higuita <milo.h@aol.com> 0002 // Copyright 2018-2020 Nitrux Latinoamericana S.C. 0003 // 0004 // SPDX-License-Identifier: GPL-3.0-or-later 0005 0006 0007 import QtQuick 2.14 0008 import QtQuick.Controls 2.14 0009 import QtQuick.Layouts 1.3 0010 import org.kde.mauikit 1.2 as Maui 0011 import org.kde.kirigami 2.6 as Kirigami 0012 0013 Maui.SideBar 0014 { 0015 id: control 0016 0017 property alias list : placesList 0018 0019 signal placeClicked (string path) 0020 0021 collapsible: true 0022 collapsedSize: stick ? Maui.Style.iconSizes.medium + (Maui.Style.space.medium*4) - Maui.Style.space.tiny : 0 0023 collapsed : !root.isWide 0024 stick: Maui.FM.loadSettings("STICK_SIDEBAR", "UI", true) 0025 preferredWidth: Math.min(Kirigami.Units.gridUnit * (Maui.Handy.isWindows ? 15 : 11), root.width) 0026 iconSize: privateProperties.isCollapsed && stick ? Maui.Style.iconSizes.medium : Maui.Style.iconSizes.small 0027 0028 Behavior on iconSize 0029 { 0030 NumberAnimation 0031 { 0032 duration: Kirigami.Units.shortDuration 0033 easing.type: Easing.InOutQuad 0034 } 0035 } 0036 0037 onPlaceClicked: 0038 { 0039 currentBrowser.openFolder(path) 0040 if(placesSidebar.modal) 0041 placesSidebar.collapse() 0042 } 0043 0044 model: Maui.BaseModel 0045 { 0046 list: Maui.PlacesList 0047 { 0048 id: placesList 0049 0050 groups: [ 0051 Maui.FMList.QUICK_PATH, 0052 Maui.FMList.PLACES_PATH, 0053 Maui.FMList.REMOTE_PATH, 0054 Maui.FMList.REMOVABLE_PATH, 0055 Maui.FMList.DRIVES_PATH] 0056 0057 onBookmarksChanged: 0058 { 0059 syncSidebar(currentPath) 0060 } 0061 } 0062 } 0063 0064 delegate: Maui.ListDelegate 0065 { 0066 id: itemDelegate 0067 width: ListView.view.width 0068 iconSize: control.iconSize 0069 labelVisible: control.showLabels 0070 label: model.label 0071 count: model.count > 0 ? model.count : "" 0072 iconName: model.icon + (Qt.platform.os == "android" || Qt.platform.os == "osx" ? ("-sidebar") : "") 0073 iconVisible: true 0074 // template.leftMargin: privateProperties.isCollapsed && stick ? 0 : Maui.Style.space.medium 0075 0076 onClicked: 0077 { 0078 control.currentIndex = index 0079 placesList.clearBadgeCount(index) 0080 0081 placeClicked(model.path) 0082 if(control.collapsed) 0083 control.collapse() 0084 } 0085 0086 onRightClicked: 0087 { 0088 control.currentIndex = index 0089 _menu.popup() 0090 } 0091 0092 onPressAndHold: 0093 { 0094 control.currentIndex = index 0095 _menu.popup() 0096 } 0097 } 0098 0099 section.property: !showLabels ? "" : "type" 0100 section.criteria: ViewSection.FullString 0101 section.delegate: Maui.LabelDelegate 0102 { 0103 id: delegate 0104 width: control.width 0105 label: section 0106 labelTxt.font.pointSize: Maui.Style.fontSizes.big 0107 isSection: true 0108 height: Maui.Style.toolBarHeightAlt 0109 0110 onClicked: 0111 { 0112 placesList.toggleSection(Maui.FMList.QUICK_PATH) 0113 } 0114 } 0115 0116 onContentDropped: 0117 { 0118 placesList.addPlace(drop.text) 0119 } 0120 0121 Menu 0122 { 0123 id: _menu 0124 0125 MenuItem 0126 { 0127 text: i18n("Open in new tab") 0128 icon.name: "tab-new" 0129 onTriggered: openTab(control.model.get(placesSidebar.currentIndex).path) 0130 } 0131 0132 MenuItem 0133 { 0134 visible: root.currentTab.count === 1 && root.supportSplit 0135 text: i18n("Open in split view") 0136 icon.name: "view-split-left-right" 0137 onTriggered: currentTab.split(control.model.get(placesSidebar.currentIndex).path, Qt.Horizontal) 0138 } 0139 0140 MenuSeparator{} 0141 0142 MenuItem 0143 { 0144 text: i18n("Remove") 0145 Kirigami.Theme.textColor: Kirigami.Theme.negativeTextColor 0146 onTriggered: list.removePlace(control.currentIndex) 0147 } 0148 } 0149 }