Warning, /maui/pix/src/widgets/Sidebar.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 QtQml 2.14 0009 0010 import QtQuick.Controls 2.14 0011 import QtQuick.Layouts 1.12 0012 0013 import org.mauikit.controls 1.3 as Maui 0014 import org.mauikit.filebrowsing 1.0 as FB 0015 0016 import org.maui.pix 1.0 as Pix 0017 0018 Loader 0019 { 0020 id: control 0021 asynchronous: true 0022 active: (control.enabled && control.visible) || item 0023 0024 readonly property alias list : placesList 0025 0026 Pix.PlacesList 0027 { 0028 id: placesList 0029 } 0030 0031 sourceComponent: Maui.ListBrowser 0032 { 0033 id: _listBrowser 0034 topPadding: 0 0035 bottomPadding: 0 0036 verticalScrollBarPolicy: ScrollBar.AlwaysOff 0037 0038 signal placeClicked (string path, string filters, var mouse) 0039 0040 holder.visible: count === 0 0041 holder.title: i18n("Bookmarks!") 0042 holder.body: i18n("Your bookmarks will be listed here") 0043 0044 onPlaceClicked: (path, filters, mouse) => 0045 { 0046 root.openFolder(path, filters.split(",")) 0047 0048 if(sideBar.collapsed) 0049 sideBar.close() 0050 } 0051 0052 0053 flickable.topMargin: Maui.Style.contentMargins 0054 flickable.bottomMargin: Maui.Style.contentMargins 0055 flickable.header: Loader 0056 { 0057 asynchronous: true 0058 width: parent.width 0059 visible: active 0060 0061 sourceComponent: Item 0062 { 0063 implicitHeight: _quickSection.implicitHeight 0064 0065 GridLayout 0066 { 0067 id: _quickSection 0068 width: Math.min(parent.width, 180) 0069 anchors.centerIn: parent 0070 rows: 3 0071 columns: 3 0072 columnSpacing: Maui.Style.space.small 0073 rowSpacing: Maui.Style.space.small 0074 0075 Repeater 0076 { 0077 model: placesList.quickPlaces 0078 0079 delegate: Maui.GridBrowserDelegate 0080 { 0081 Layout.preferredHeight: Math.min(50, width) 0082 Layout.preferredWidth: 50 0083 Layout.fillWidth: true 0084 Layout.fillHeight: true 0085 Layout.columnSpan: modelData.path === "tags:///fav" ? 2 : (modelData.path === "collection:///" ? 3 : 1) 0086 0087 0088 isCurrentItem: currentFolder === modelData.path 0089 iconSource: modelData.icon + (Qt.platform.os == "android" || Qt.platform.os == "osx" ? ("-sidebar") : "") 0090 iconSizeHint: Maui.Style.iconSize 0091 template.isMask: true 0092 label1.text: modelData.label 0093 labelsVisible: false 0094 tooltipText: modelData.label 0095 flat: false 0096 0097 onClicked: 0098 { 0099 _listBrowser.placeClicked(modelData.path, modelData.filters, mouse) 0100 if(sideBar.collapsed) 0101 sideBar.close() 0102 } 0103 } 0104 0105 } 0106 } 0107 } 0108 } 0109 0110 model: Maui.BaseModel 0111 { 0112 id: placesModel 0113 list: placesList 0114 } 0115 0116 Component.onCompleted: 0117 { 0118 _listBrowser.flickable.positionViewAtBeginning() 0119 } 0120 0121 delegate: Maui.ListDelegate 0122 { 0123 isCurrentItem: currentFolder === model.path 0124 width: ListView.view.width 0125 0126 iconSize: Maui.Style.iconSize 0127 label: model.name 0128 iconName: model.icon + (Qt.platform.os == "android" || Qt.platform.os == "osx" ? ("-sidebar") : "") 0129 iconVisible: true 0130 template.isMask: iconSize <= Maui.Style.iconSizes.medium 0131 0132 onClicked: 0133 { 0134 _listBrowser.placeClicked(model.path, model.key, mouse) 0135 if(sideBar.collapsed) 0136 sideBar.close() 0137 } 0138 } 0139 0140 section.property: "type" 0141 section.criteria: ViewSection.FullString 0142 section.delegate: Maui.LabelDelegate 0143 { 0144 width: ListView.view.width 0145 label: section 0146 isSection: true 0147 } 0148 } 0149 } 0150 0151