Warning, /education/khangman/src/qml/Settings/SettingsPage.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2012 Laszlo Papp <lpapp@kde.org> 0002 // SPDX-FileCopyrightText: 2014 Rahul Chowdhury <rahul.chowdhury@kdemail.net> 0003 // SPDX-License-Identifier: LGPL-2.1-or-later 0004 0005 import QtQuick 0006 import QtQuick.Controls as QQC2 0007 import QtQuick.Layouts 0008 import QtQuick.Dialogs 0009 import QtQuick.Window 0010 import org.kde.kirigami as Kirigami 0011 import org.kde.kirigamiaddons.formcard as FormCard 0012 import org.kde.khangman 0013 0014 FormCard.FormCardPage { 0015 id: mainSettingsDialog 0016 0017 signal okClicked() 0018 signal cancelClicked() 0019 0020 title: i18n("KHangMan Settings") 0021 0022 function saveSettings(): void { 0023 KHangMan.resolveTime = resolveTimeSlider.value; 0024 KHangMan.soundEnabled = soundsSwitch.checked; 0025 KHangMan.scoreMultiplyingFactor = scoreMultiplyingFactor.value; 0026 } 0027 0028 function resetSettings(): void { 0029 resolveTimeSlider.value = KHangMan.resolveTime; 0030 soundsSwitch.checked = KHangMan.soundEnabled; 0031 scoreMultiplyingFactor.value = KHangMan.scoreMultiplyingFactor; 0032 } 0033 0034 Component.onCompleted: { 0035 resolveTimeSlider.value = KHangMan.resolveTime; 0036 soundsSwitch.checked = KHangMan.soundEnabled; 0037 } 0038 0039 topPadding: Kirigami.Units.gridUnit 0040 0041 FormCard.FormCard { 0042 FormCard.AbstractFormDelegate { 0043 background: null 0044 contentItem: ColumnLayout { 0045 QQC2.Label { 0046 id: resolveTimeLabel; 0047 text: i18n("Word resolve time in seconds"); 0048 wrapMode: Text.WordWrap 0049 } 0050 0051 RowLayout { 0052 Layout.fillWidth: true 0053 QQC2.Slider { 0054 id: resolveTimeSlider; 0055 stepSize: 15; 0056 from: 0; 0057 to: 300; 0058 Layout.fillWidth: true 0059 } 0060 0061 QQC2.Label { 0062 text: i18n(resolveTimeSlider.value + (resolveTimeSlider.value == 1 ? " second" : " seconds")) 0063 wrapMode: Text.WordWrap 0064 } 0065 } 0066 0067 QQC2.Label { 0068 text: i18n("The duration for showing the hint for the actual word") 0069 color: Kirigami.Theme.disabledTextColor 0070 wrapMode: Text.WordWrap 0071 Layout.fillWidth: true 0072 } 0073 } 0074 } 0075 0076 FormCard.FormDelegateSeparator {} 0077 0078 FormCard.FormSpinBoxDelegate { 0079 id: scoreMultiplyingFactor 0080 0081 label: i18n("Score Multiplying Factor:") 0082 value: KHangMan.scoreMultiplyingFactor 0083 0084 contentItem.data: QQC2.Label { 0085 text: i18n("Determine the factor by which the scores will be multiplied.") 0086 color: Kirigami.Theme.disabledTextColor 0087 wrapMode: Text.WordWrap 0088 Layout.fillWidth: true 0089 } 0090 } 0091 0092 FormCard.FormDelegateSeparator {} 0093 0094 FormCard.FormSwitchDelegate { 0095 id: soundsSwitch 0096 text: i18nc("@option:check", "Enable sounds") 0097 } 0098 } 0099 0100 footer: QQC2.ToolBar { 0101 contentItem: RowLayout { 0102 Item { 0103 Layout.fillWidth: true 0104 } 0105 0106 QQC2.Button { 0107 text: i18nc("@action:button", "Save") 0108 icon.name: "document-save" 0109 onClicked: { 0110 // save the current settings 0111 mainSettingsRectangle.saveSettings() 0112 mainSettingsDialog.okClicked() 0113 } 0114 } 0115 0116 QQC2.Button { 0117 text: i18nc("@action:button", "Cancel") 0118 icon.name: "dialog-cancel" 0119 onClicked: { 0120 // ignore the changes made to the settings 0121 mainSettingsRectangle.resetSettings() 0122 mainSettingsDialog.cancelClicked() 0123 } 0124 } 0125 } 0126 } 0127 }