Warning, /system/mycroft-gui/application/SettingsPage.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 * Copyright 2018 Marco Martin <mart@kde.org>
0003 * Copyright 2018 by Aditya Mehra <aix.m@outlook.com>
0004 *
0005 * Licensed under the Apache License, Version 2.0 (the "License");
0006 * you may not use this file except in compliance with the License.
0007 * You may obtain a copy of the License at
0008 *
0009 * http://www.apache.org/licenses/LICENSE-2.0
0010 *
0011 * Unless required by applicable law or agreed to in writing, software
0012 * distributed under the License is distributed on an "AS IS" BASIS,
0013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0014 * See the License for the specific language governing permissions and
0015 * limitations under the License.
0016 *
0017 */
0018
0019 import QtQuick 2.15
0020 import QtQuick.Layouts 1.15
0021 import QtQuick.Controls 2.15 as Controls
0022 import org.kde.kirigami 2.19 as Kirigami
0023 import Mycroft 1.0 as Mycroft
0024
0025 Kirigami.ScrollablePage {
0026 title: "Settings"
0027 objectName: "Settings"
0028
0029 globalToolBarStyle: Kirigami.ApplicationHeaderStyle.Titles
0030 Kirigami.Theme.colorSet: nightSwitch.checked ? Kirigami.Theme.Complementary : Kirigami.Theme.Window
0031
0032 ColumnLayout {
0033 id: settingsLayout
0034 width: parent.width
0035 implicitHeight: childrenRect.height
0036 spacing: Kirigami.Units.largeSpacing
0037
0038 Kirigami.Heading {
0039 id: websocketLabel
0040 level: 2
0041 font.bold: true
0042 color: Kirigami.Theme.textColor;
0043 Layout.fillWidth: true
0044 text: "Mycroft Core Address"
0045 }
0046
0047 Controls.Label {
0048 id: exampleLabel
0049 text: "Example: <tt>ws://192.168.1.1</tt>"
0050 Layout.fillWidth: true
0051 }
0052
0053 Controls.Control {
0054 Layout.fillWidth: true
0055 Layout.preferredHeight: Kirigami.Units.gridUnit * 3
0056 leftPadding: Kirigami.Units.largeSpacing
0057 rightPadding: Kirigami.Units.largeSpacing
0058
0059 background: Rectangle {
0060 Kirigami.Theme.colorSet: nightSwitch.checked ? Kirigami.Theme.Complementary : Kirigami.Theme.Window
0061 color: Kirigami.Theme.backgroundColor
0062 radius: 5
0063 }
0064
0065 contentItem: Controls.TextField {
0066 id: webSocketAddressField
0067 Kirigami.Theme.colorSet: nightSwitch.checked ? Kirigami.Theme.Complementary : Kirigami.Theme.Window
0068
0069 Component.onCompleted: {
0070 webSocketAddressField.text = Mycroft.GlobalSettings.webSocketAddress
0071 }
0072 }
0073 }
0074
0075 RowLayout {
0076 Layout.fillWidth: true
0077 Layout.preferredHeight: Kirigami.Units.gridUnit * 4
0078
0079 Controls.Button {
0080 id: applySettings
0081 Kirigami.Theme.colorSet: nightSwitch.checked ? Kirigami.Theme.Complementary : Kirigami.Theme.Window
0082 Layout.fillWidth: true
0083 Layout.preferredHeight: Kirigami.Units.gridUnit * 3
0084 text: "Apply"
0085
0086 onClicked:(mouse)=> {
0087 Mycroft.GlobalSettings.webSocketAddress = webSocketAddressField.text
0088 Mycroft.MycroftController.reconnect()
0089 }
0090 }
0091
0092 Controls.Button{
0093 id: reverSettings
0094 Kirigami.Theme.colorSet: nightSwitch.checked ? Kirigami.Theme.Complementary : Kirigami.Theme.Window
0095 Layout.fillWidth: true
0096 Layout.preferredHeight: Kirigami.Units.gridUnit * 3
0097 text: "Revert"
0098
0099 onClicked:(mouse)=> {
0100 webSocketAddressField.text = "ws://0.0.0.0"
0101 Mycroft.GlobalSettings.webSocketAddress = webSocketAddressField.text
0102 Mycroft.MycroftController.reconnect()
0103 }
0104 }
0105 }
0106
0107 Item {
0108 Layout.preferredHeight: Kirigami.Units.largeSpacing * 2
0109 }
0110
0111 Controls.Switch {
0112 text: "Connect Automatically"
0113 checked: Mycroft.GlobalSettings.autoConnect
0114 onCheckedChanged: Mycroft.GlobalSettings.autoConnect = checked
0115 }
0116
0117 Controls.Switch {
0118 id: remoteSTTSwitch
0119 text: "Remote STT"
0120 checked: applicationSettings.usesRemoteSTT
0121 onCheckedChanged: applicationSettings.usesRemoteSTT = checked
0122 visible: Mycroft.GlobalSettings.displayRemoteConfig
0123 }
0124
0125 Controls.Switch {
0126 text: "Remote TTS"
0127 checked: Mycroft.GlobalSettings.usesRemoteTTS
0128 onCheckedChanged: Mycroft.GlobalSettings.usesRemoteTTS = checked
0129 visible: Mycroft.GlobalSettings.displayRemoteConfig
0130 }
0131
0132 Controls.Switch {
0133 text: "Bus Isolation"
0134 checked: Mycroft.GlobalSettings.useHivemindProtocol
0135 onCheckedChanged: Mycroft.GlobalSettings.useHivemindProtocol = checked
0136 }
0137 }
0138 }