Warning, /utilities/skanpage/src/qml/OptionsPanel.qml is written in an unsupported language. File is not indexed.
0001 /** 0002 * SPDX-FileCopyrightText: 2021 by Alexander Stippich <a.stippich@gmx.net> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 import QtQuick 2.15 0008 import QtQuick.Controls 2.15 0009 import QtQuick.Layouts 1.1 0010 0011 import org.kde.kirigami 2.5 as Kirigami 0012 import org.kde.skanpage 1.0 0013 0014 ColumnLayout { 0015 id: optionPanel 0016 0017 property int targetWidth: Math.max(_maxChildrenWidth + optionsList.ScrollBar.vertical.width, 0018 optionsConfiguration.implicitWidth) 0019 property int _maxChildrenWidth: 0 0020 0021 property alias allOptionsAction: allOptionsAction 0022 property alias reselectDevicesAction: reselectDevicesAction 0023 property alias configureVisibilityAction: configureVisibilityAction 0024 0025 property bool editMode: false 0026 0027 Label { 0028 Layout.alignment: Qt.AlignHCenter 0029 Layout.preferredHeight: Kirigami.Units.gridUnit * 2 0030 text: i18n("Select options for quick access:") 0031 visible: editMode 0032 } 0033 0034 ScrollView { 0035 id: optionsList 0036 0037 Layout.fillWidth: true 0038 Layout.fillHeight: true 0039 0040 ScrollBar.horizontal.policy: ScrollBar.AlwaysOff 0041 0042 ListView { 0043 model: skanpage.optionsModel 0044 0045 enabled: skanpage.applicationState === Skanpage.ReadyForScan 0046 0047 clip: true 0048 0049 delegate: OptionDelegate { 0050 modelItem: model 0051 0052 width: optionsList.width - optionsList.ScrollBar.vertical.width 0053 0054 editMode: optionPanel.editMode 0055 onImplicitWidthChanged: { 0056 if (optionPanel._maxChildrenWidth < implicitWidth) { 0057 optionPanel._maxChildrenWidth = implicitWidth 0058 } 0059 } 0060 } 0061 } 0062 } 0063 0064 Label { 0065 horizontalAlignment: Qt.AlignHCenter 0066 Layout.fillWidth: true 0067 Layout.margins: Kirigami.Units.smallSpacing 0068 wrapMode: Text.WordWrap 0069 text: skanpage.deviceVendor && skanpage.deviceModel ? 0070 i18nc("scanner device vendor and model", "%1 %2", skanpage.deviceVendor, skanpage.deviceModel) : "" 0071 } 0072 0073 Kirigami.ActionToolBar { 0074 id: optionsConfiguration 0075 flat: false 0076 Layout.preferredHeight: Kirigami.Units.gridUnit * 2 0077 alignment: Qt.AlignCenter 0078 display: Button.IconOnly 0079 actions: [ 0080 ShortcutsAction { 0081 id: allOptionsAction 0082 icon.name: "view-more-symbolic" 0083 text: i18n("Show More") 0084 shortcut: "CTRL+SPACE" 0085 checkable: true 0086 checked: skanpage.stateConfiguration.showAllOptions 0087 onTriggered: skanpage.optionsModel.showAllOptions(checked) 0088 }, 0089 0090 ShortcutsAction { 0091 id: configureVisibilityAction 0092 icon.name: "settings-configure" 0093 text: i18n("Configure Visibility") 0094 checkable: true 0095 onTriggered: { 0096 optionPanel.editMode = checked 0097 if (checked) { 0098 skanpage.optionsModel.showAllOptions(checked) 0099 } else { 0100 skanpage.optionsModel.showAllOptions(allOptionsAction.checked) 0101 } 0102 } 0103 }, 0104 0105 ShortcutsAction { 0106 id: reselectDevicesAction 0107 icon.name: "view-refresh" 0108 text: i18n("Reselect Scanner") 0109 onTriggered: skanpage.reloadDevicesList() 0110 enabled: skanpage.applicationState === Skanpage.ReadyForScan 0111 } 0112 ] 0113 } 0114 }