Warning, /plasma/kdeplasma-addons/applets/fifteenPuzzle/package/contents/ui/configAppearance.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  * SPDX-FileCopyrightText: 2013 Bhushan Shah <bhush94@gmail.com>
0003  * SPDX-FileCopyrightText: 2013 Sebastian Kügler <sebas@kde.org>
0004  * SPDX-FileCopyrightText: 2014 Kai Uwe Broulik <kde@privat.broulik.de>
0005  * SPDX-FileCopyrightText: 2014 Jeremy Whiting <jpwhiting@kde.org>
0006  *
0007  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0008  */
0009 
0010 import QtQuick 2.15
0011 import QtCore
0012 import QtQuick.Controls 2.15 as QtControls
0013 import QtQuick.Layouts 1.15
0014 import QtQuick.Dialogs as QtDialogs
0015 
0016 import org.kde.kquickcontrols 2.0 as KQC
0017 import org.kde.kirigami 2.20 as Kirigami
0018 import org.kde.kcmutils as KCM
0019 
0020 KCM.SimpleKCM {
0021     property alias cfg_boardSize: sizeSpinBox.value
0022     property alias cfg_boardColor: pieceColorPicker.color
0023     property alias cfg_numberColor: numberColorPicker.color
0024     property alias cfg_showNumerals: showNumeralsCheckBox.checked
0025 
0026     property alias cfg_useImage: imageBackgroundRadioButton.checked
0027     property alias cfg_imagePath: imagePathTextField.text
0028 
0029     Kirigami.FormLayout {
0030 
0031         QtControls.ButtonGroup {
0032             id: radioGroup
0033         }
0034 
0035         // Need to manually set checked state for the color button based on the
0036         // other onebecause it's not aliased to a saved property
0037         Component.onCompleted: {
0038             colorBackgroundRadioButton.checked = !imageBackgroundRadioButton.checked;
0039         }
0040 
0041         QtControls.SpinBox {
0042             id: sizeSpinBox
0043             Kirigami.FormData.label: i18nc("@label:spinbox", "Grid size:")
0044         }
0045 
0046         Item {
0047             Kirigami.FormData.isSection: true
0048         }
0049 
0050         // Color background
0051         RowLayout {
0052             Kirigami.FormData.label: i18n("Background:")
0053 
0054             QtControls.RadioButton {
0055                 id: colorBackgroundRadioButton
0056                 QtControls.ButtonGroup.group: radioGroup
0057 
0058                 text: i18n("Color:")
0059             }
0060 
0061             KQC.ColorButton {
0062                 id: pieceColorPicker
0063                 enabled: colorBackgroundRadioButton.checked
0064             }
0065         }
0066 
0067         // Image background
0068         RowLayout {
0069             QtControls.RadioButton {
0070                 id: imageBackgroundRadioButton
0071                 QtControls.ButtonGroup.group: radioGroup
0072 
0073                 text: i18n("Image:")
0074             }
0075 
0076             Kirigami.ActionTextField {
0077                 id: imagePathTextField
0078                 enabled: imageBackgroundRadioButton.checked
0079 
0080                 Layout.fillWidth: true
0081                 placeholderText: i18nc("@info:placeholder", "Path to custom image…")
0082 
0083                 rightActions: [
0084                     Kirigami.Action {
0085                         icon.name: "edit-clear"
0086                         visible: imagePathTextField.text.length !== 0
0087                         onTriggered: imagePathTextField.text = "";
0088                     }
0089                 ]
0090             }
0091 
0092             QtControls.Button {
0093                 id: imageButton
0094                 enabled: imageBackgroundRadioButton.checked
0095 
0096                 icon.name: "document-open"
0097 
0098                 QtControls.ToolTip {
0099                     visible: imageButton.hovered
0100                     text: i18nc("@info:tooltip", "Choose image…")
0101                 }
0102 
0103                 onClicked: imagePicker.open()
0104 
0105                 QtDialogs.FileDialog {
0106                     id: imagePicker
0107 
0108                     title: i18nc("@title:window", "Choose an Image")
0109 
0110                     currentFolder: StandardPaths.standardLocations(StandardPaths.PicturesLocation)[0]
0111 
0112                     // TODO ask QImageReader for supported formats
0113                     nameFilters: [ i18n("Image Files (*.png *.jpg *.jpeg *.bmp *.svg *.svgz)") ]
0114 
0115                     onAccepted: {
0116                         imagePathTextField.text = selectedFile.toString().replace("file://", "")
0117                     }
0118                 }
0119             }
0120         }
0121 
0122         Item {
0123             Kirigami.FormData.isSection: true
0124         }
0125 
0126         RowLayout {
0127             Kirigami.FormData.label: i18n("Tiles:")
0128 
0129             QtControls.CheckBox {
0130                 id: showNumeralsCheckBox
0131                 text: i18n("Colored numbers:")
0132             }
0133 
0134             KQC.ColorButton {
0135                 id: numberColorPicker
0136                 enabled: showNumeralsCheckBox.checked
0137             }
0138         }
0139     }
0140 }