Warning, /utilities/filelight/src/qml/SettingsPageScanning.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0002 // SPDX-FileCopyrightText: 2022 Harald Sitter <sitter@kde.org> 0003 0004 pragma ComponentBehavior: Bound 0005 0006 import QtQuick 2.15 0007 import QtQuick.Layouts 1.15 0008 import QtQuick.Controls 2.15 as QQC2 0009 import org.kde.kirigami 2.19 as Kirigami 0010 import org.kde.kirigami.delegates as KD 0011 0012 import org.kde.filelight 1.0 0013 0014 Kirigami.Page { 0015 Timer { 0016 id: cacheResetTimer 0017 running: false 0018 interval: 1000 0019 repeat: false 0020 onTriggered: ScanManager.emptyCache() 0021 } 0022 0023 ColumnLayout { 0024 anchors.fill: parent 0025 spacing: Kirigami.Units.smallSpacing 0026 0027 RowLayout { 0028 spacing: Kirigami.Units.smallSpacing 0029 Layout.fillWidth: true 0030 0031 QQC2.Label { 0032 Layout.fillWidth: true 0033 text: i18nc("@label", "Do not scan these folders:") 0034 wrapMode: Text.Wrap 0035 verticalAlignment: Text.AlignBottom 0036 } 0037 0038 QQC2.Button { 0039 Layout.alignment: Qt.AlignBottom 0040 action: Kirigami.Action { 0041 text: i18nc("@action:button remove list entry", "Add…") 0042 icon.name: "folder-open" 0043 onTriggered: Config.addFolder() 0044 } 0045 } 0046 } 0047 0048 QQC2.ScrollView { 0049 Layout.fillWidth: true 0050 Layout.fillHeight: true 0051 Kirigami.Theme.colorSet: Kirigami.Theme.View 0052 Kirigami.Theme.inherit: false 0053 Component.onCompleted: background.visible = true 0054 0055 ListView { 0056 id: skipView 0057 clip: true 0058 reuseItems: true 0059 activeFocusOnTab: true 0060 keyNavigationEnabled: true 0061 keyNavigationWraps: true 0062 model: Config.skipList 0063 delegate: Kirigami.SwipeListItem { 0064 id: delegate 0065 0066 required property string modelData 0067 0068 text: modelData 0069 0070 QQC2.ToolTip.text: text 0071 QQC2.ToolTip.visible: (Kirigami.Settings.tabletMode ? down : hovered) && (contentItem?.truncated ?? false) 0072 QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay 0073 0074 contentItem: KD.TitleSubtitle { 0075 title: delegate.text 0076 selected: delegate.highlighted 0077 font: delegate.font 0078 elide: Text.ElideMiddle 0079 } 0080 0081 actions: [ 0082 Kirigami.Action { 0083 text: i18nc("@action:button remove list entry", "Remove") 0084 icon.name: "list-remove" 0085 onTriggered: { 0086 Config.removeFolder(delegate.modelData) 0087 } 0088 } 0089 ] 0090 0091 onClicked: { 0092 // Do not let auto-resolver prepend "qrc:" 0093 const url = Qt.url(`file://${modelData}`); 0094 Qt.openUrlExternally(url); 0095 } 0096 } 0097 } 0098 } 0099 0100 QQC2.CheckBox { 0101 id: scanAcrossMountsBox 0102 Layout.fillWidth: true 0103 text: i18nc("@checkbox", "Scan across filesystem boundaries") 0104 checked: Config.scanAcrossMounts 0105 onToggled: { 0106 if (Config.scanAcrossMounts === checked) { 0107 return 0108 } 0109 Config.scanAcrossMounts = checked 0110 cacheResetTimer.restart() 0111 } 0112 } 0113 QQC2.CheckBox { 0114 Layout.fillWidth: true 0115 text: i18nc("@checkbox", "Exclude remote filesystems") 0116 checked: !Config.scanRemoteMounts 0117 enabled: scanAcrossMountsBox.checked 0118 onToggled: { 0119 if (Config.scanRemoteMounts === !checked) { 0120 return 0121 } 0122 Config.scanRemoteMounts = !checked 0123 cacheResetTimer.restart() 0124 } 0125 } 0126 } 0127 }