Warning, /maui/index-fm/src/widgets/views/home/SystemInfo.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 Slike 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
0011 import Qt.labs.platform 1.1
0012 import QtGraphicalEffects 1.0
0013
0014 import org.mauikit.controls 1.3 as Maui
0015
0016 import org.mauikit.filebrowsing 1.0 as FB
0017
0018 import org.maui.index 1.0 as Index
0019
0020 Maui.ListBrowser
0021 {
0022 id: control
0023
0024 signal itemClicked(url url)
0025
0026 orientation: ListView.Horizontal
0027 implicitHeight: 220
0028 // verticalScrollBarPolicy: ScrollBar.AlwaysOff
0029 // horizontalScrollBarPolicy: ScrollBar.AlwaysOff
0030
0031 model: [StandardPaths.writableLocation(StandardPaths.MusicLocation), StandardPaths.writableLocation(StandardPaths.DownloadLocation), StandardPaths.writableLocation(StandardPaths.MoviesLocation), StandardPaths.writableLocation(StandardPaths.DocumentsLocation)]
0032
0033 delegate: Maui.ItemDelegate
0034 {
0035 id: _delegate
0036 property bool isCurrentItem : ListView.isCurrentItem
0037 anchors.verticalCenter: parent.verticalCenter
0038 width: 320
0039 height: 180
0040 // color: Maui.Theme.backgroundColor
0041 // radius: Maui.Style.radiusV
0042
0043 property var info : FB.FM.getFileInfo(modelData)
0044
0045 background: Item {}
0046
0047 onClicked:
0048 {
0049 control.currentIndex = index
0050 control.itemClicked(modelData)
0051 }
0052
0053 // Index.DirInfo
0054 // {
0055 // id: _dirInfo
0056 // url: modelData
0057 // }
0058
0059 Rectangle
0060 {
0061 id: _iconRec
0062 opacity: 0.3
0063 anchors.fill: parent
0064 color: Maui.Theme.backgroundColor
0065 clip: true
0066
0067 FastBlur
0068 {
0069 id: fastBlur
0070 height: parent.height * 2
0071 width: parent.width * 2
0072 anchors.centerIn: parent
0073 source: _icon
0074 radius: 64
0075 transparentBorder: true
0076 cached: true
0077 }
0078
0079 Rectangle
0080 {
0081 anchors.fill: parent
0082 opacity: 0.5
0083 color: Qt.tint(control.Maui.Theme.textColor, Qt.rgba(control.Maui.Theme.backgroundColor.r, control.Maui.Theme.backgroundColor.g, control.Maui.Theme.backgroundColor.b, 0.9))
0084 }
0085 }
0086
0087 OpacityMask
0088 {
0089 source: mask
0090 maskSource: _iconRec
0091 }
0092
0093 LinearGradient
0094 {
0095 id: mask
0096 anchors.fill: parent
0097 gradient: Gradient {
0098 GradientStop { position: 0.2; color: "transparent"}
0099 GradientStop { position: 0.5; color: _iconRec.color}
0100 }
0101
0102 start: Qt.point(0, 0)
0103 end: Qt.point(_iconRec.width, _iconRec.height)
0104 }
0105
0106 ColumnLayout
0107 {
0108 anchors.fill: parent
0109 anchors.margins: Maui.Style.space.big
0110 id: _layout
0111
0112 Maui.Icon
0113 {
0114 id: _icon
0115 Layout.leftMargin: Maui.Style.space.medium
0116 implicitHeight: Maui.Style.iconSizes.large
0117 implicitWidth: height
0118 source: info.icon
0119 }
0120
0121 Maui.FlexListItem
0122 {
0123 Layout.fillWidth: true
0124 label1.font.pointSize: Maui.Style.fontSizes.huge
0125 label1.font.weight: Font.Bold
0126 label1.font.bold: true
0127 label1.text: info.label
0128 // label2.text: i18n("%1 Directories - %2 Files", _dirInfo.dirCount, _dirInfo.filesCount)
0129
0130 onClicked:
0131 {
0132 control.currentIndex = index
0133 control.itemClicked(modelData)
0134 }
0135
0136 Rectangle
0137 {
0138 radius: Maui.Style.radiusV
0139 color: "#333"
0140 Layout.preferredWidth: _sizeLabel.implicitWidth + Maui.Style.space.big
0141 implicitHeight: 36
0142
0143 Label
0144 {
0145 id: _sizeLabel
0146 font.pointSize: Maui.Style.fontSizes.huge
0147 font.bold: true
0148 font.weight: Font.Bold
0149 anchors.centerIn: parent
0150 // text: _dirInfo.sizeString
0151 color: "#fafafa"
0152 }
0153 }
0154 }
0155
0156 ProgressBar
0157 {
0158 Layout.fillWidth: true
0159 Layout.margins: Maui.Style.space.medium
0160 // value: Math.round((_dirInfo.size * 100) / _dirInfo.totalSpace)
0161 from: 0
0162 to : 100
0163 }
0164 }
0165
0166 layer.enabled: true
0167 layer.effect: OpacityMask
0168 {
0169 maskSource: Item
0170 {
0171 width: _delegate.width
0172 height: _delegate.height
0173
0174 Rectangle
0175 {
0176 anchors.fill: parent
0177 radius: Maui.Style.radiusV
0178 }
0179 }
0180 }
0181 }
0182 }