Warning, /utilities/skanpage/src/qml/SettingsWindow.qml is written in an unsupported language. File is not indexed.

0001 /**
0002  * SPDX-FileCopyrightText: 2022 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
0008 import QtQuick.Controls
0009 import QtQuick.Layouts
0010 import QtQuick.Window
0011 import QtQuick.Dialogs
0012 
0013 import org.kde.kirigami as Kirigami
0014 
0015 import org.kde.skanpage
0016 
0017 Window {
0018     id: settingsWindow
0019 
0020     title: i18n("Configure")
0021     color: Kirigami.Theme.backgroundColor
0022 
0023     flags: Qt.Dialog | Qt.CustomizeWindowHint | Qt.WindowTitleHint
0024         | Qt.WindowCloseButtonHint | Qt.WindowMinimizeButtonHint | Qt.WindowMaximizeButtonHint
0025 
0026     minimumWidth: Kirigami.Units.gridUnit * 30
0027     minimumHeight: Kirigami.Units.gridUnit * 15
0028 
0029     Kirigami.FormLayout {
0030         anchors.fill: parent
0031         anchors.leftMargin: Kirigami.Units.gridUnit
0032         anchors.rightMargin: Kirigami.Units.gridUnit
0033 
0034         ButtonGroup { id: allDevicesGroup }
0035 
0036         RadioButton {
0037             Layout.fillWidth: true
0038             Kirigami.FormData.label: i18n("Devices to show:")
0039             text: i18nc("@option:radio Devices to show for scanning", "Scanners only")
0040             ButtonGroup.group: allDevicesGroup
0041             checked: !skanpage.configuration.showAllDevices
0042         }
0043 
0044         RadioButton {
0045             Layout.fillWidth: true
0046             text: i18nc("@option:radio Devices to show for scanning", "Scanners, cameras, and virtual devices")
0047             ButtonGroup.group: allDevicesGroup
0048             checked: skanpage.configuration.showAllDevices
0049             onCheckedChanged: skanpage.configuration.showAllDevices = checked
0050         }
0051 
0052         ComboBox {
0053             Kirigami.FormData.label: i18n("Default file format:")
0054 
0055             model: skanpage.formatModel
0056             textRole: "comment"
0057             valueRole: "nameFilter"
0058 
0059             onActivated: skanpage.configuration.defaultNameFilterIndex = index
0060             Component.onCompleted: {
0061                 const index = skanpage.configuration.defaultNameFilterIndex
0062                 currentIndex = index >= 0 ? index : 0
0063             }
0064         }
0065 
0066 
0067         RowLayout {
0068             Kirigami.FormData.label: i18n("Default save location:")
0069 
0070             Kirigami.ActionTextField {
0071                 id: folderLabel
0072                 text: skanpage.configuration.defaultFolder
0073                 readOnly: true
0074             }
0075 
0076             Button {
0077                 icon.name: "document-open-folder"
0078                 onClicked: selectFolderDialog.open()
0079             }
0080         }
0081 
0082     }
0083 
0084     RowLayout {
0085         id: buttonRow
0086 
0087         anchors {
0088             bottom: parent.bottom
0089             right: parent.right
0090             margins: Kirigami.Units.smallSpacing
0091         }
0092 
0093         Button {
0094             action: closeAction
0095         }
0096     }
0097 
0098     Action {
0099         id: closeAction
0100         icon.name: "dialog-close"
0101         text: i18n("Close")
0102         shortcut: "Esc"
0103         onTriggered: settingsWindow.close()
0104     }
0105 
0106     FolderDialog {
0107         id: selectFolderDialog
0108 
0109         currentFolder: skanpage.configuration.defaultFolder
0110         onAccepted: skanpage.configuration.defaultFolder = selectedFile
0111     }
0112 }