Warning, /system/mycroft-gui/application/RemoteStt.qml is written in an unsupported language. File is not indexed.
0001 import QtQuick 2.15 0002 import QtQuick.Layouts 1.15 0003 import QtQuick.Controls 2.15 0004 import org.kde.kirigami 2.19 as Kirigami 0005 import Mycroft 1.0 as Mycroft 0006 import Qt5Compat.GraphicalEffects 0007 0008 Item { 0009 id: root 0010 anchors.fill: parent 0011 property alias record: audrectimer.running 0012 0013 Timer { 0014 id: audrectimer 0015 interval: 10000 0016 running: false 0017 onRunningChanged: { 0018 if(running){ 0019 Mycroft.AudioRec.recordTStart() 0020 numAnim.start() 0021 } else { 0022 Mycroft.AudioRec.recordTStop() 0023 numAnim.stop() 0024 } 0025 } 0026 } 0027 0028 function sendAudioClip() { 0029 Mycroft.AudioRec.returnStream() 0030 } 0031 0032 Connections { 0033 target: Mycroft.AudioRec 0034 0035 function onMicAudioLevelChanged(micLevel) { 0036 animatedCircle.width = Kirigami.Units.iconSizes.large + (Kirigami.Units.iconSizes.smallMedium * micLevel) 0037 } 0038 0039 function onRecordTStatus(recStatus) { 0040 switch(recStatus){ 0041 case "Completed": 0042 console.log("In Completed") 0043 Mycroft.AudioRec.readStream() 0044 sendAudioClip() 0045 audioRecorder.close() 0046 break; 0047 case "Error": 0048 console.log("inError") 0049 break; 0050 } 0051 } 0052 } 0053 0054 ColumnLayout { 0055 id: closebar 0056 anchors.fill: parent 0057 spacing: 0 0058 0059 Kirigami.Heading { 0060 id: lbl1 0061 text: "Listening" 0062 Kirigami.Theme.colorSet: nightSwitch.checked ? Kirigami.Theme.Complementary : Kirigami.Theme.View 0063 level: 2 0064 font.bold: true 0065 Layout.alignment: Qt.AlignTop | Qt.AlignHCenter 0066 } 0067 0068 Kirigami.Separator { 0069 Layout.fillWidth: true 0070 Layout.preferredHeight: 1 0071 color: Kirigami.Theme.disabledTextColor 0072 } 0073 0074 Item { 0075 Layout.fillHeight: true 0076 Layout.fillWidth: true 0077 0078 Rectangle { 0079 id: animatedCircle 0080 anchors.centerIn: parent 0081 width: Kirigami.Units.iconSizes.large 0082 height: width 0083 radius: 1000 0084 color: Qt.rgba(Kirigami.Theme.linkColor.r, Kirigami.Theme.linkColor.g, Kirigami.Theme.linkColor.b, 0.7) 0085 0086 Image { 0087 source: "images/microphone.svg" 0088 anchors.centerIn: parent 0089 width: Kirigami.Units.iconSizes.large 0090 height: width 0091 0092 } 0093 } 0094 } 0095 0096 Kirigami.Heading { 0097 Layout.fillWidth: true 0098 Layout.topMargin: Kirigami.Units.smallSpacing 0099 Layout.bottomMargin: Kirigami.Units.smallSpacing 0100 Layout.preferredHeight: paintedHeight 0101 Kirigami.Theme.colorSet: nightSwitch.checked ? Kirigami.Theme.Complementary : Kirigami.Theme.View 0102 wrapMode: Text.WordWrap 0103 maximumLineCount: 2 0104 level: 3 0105 horizontalAlignment: Text.AlignHCenter 0106 text: "Say something to Mycroft" 0107 } 0108 0109 Item { 0110 Layout.fillWidth: true 0111 Layout.preferredHeight: Kirigami.Units.smallSpacing * 0.15 0112 0113 ProgressBar { 0114 id: bar 0115 to: 100 0116 from: 0 0117 anchors.fill: parent 0118 0119 background: Rectangle { 0120 implicitWidth: parent.width 0121 implicitHeight: parent.height 0122 color: Kirigami.Theme.disabledTextColor 0123 } 0124 0125 contentItem: Item { 0126 implicitWidth: parent.width 0127 implicitHeight: parent.height 0128 0129 Rectangle { 0130 width: bar.visualPosition * parent.width 0131 height: parent.height 0132 radius: 2 0133 gradient: Gradient { 0134 GradientStop { position: 0.0; color: Kirigami.Theme.linkColor } 0135 GradientStop { position: 1.0; color: Kirigami.Theme.linkColor } 0136 } 0137 } 0138 } 0139 0140 NumberAnimation { 0141 id: numAnim 0142 target: bar 0143 property: "value" 0144 from: 0 0145 to: 100 0146 duration: 10000 0147 } 0148 } 0149 } 0150 0151 Rectangle { 0152 Kirigami.Theme.colorSet: nightSwitch.checked ? Kirigami.Theme.Complementary : Kirigami.Theme.View 0153 color: Kirigami.Theme.hoverColor 0154 Layout.fillWidth: true 0155 Layout.topMargin: Kirigami.Units.smallSpacing 0156 Layout.preferredHeight: Kirigami.Units.gridUnit * 1.5 0157 0158 Kirigami.Heading { 0159 level: 2 0160 text: "Close" 0161 anchors.centerIn: parent 0162 anchors.margins: Kirigami.Units.largeSpacing 0163 } 0164 0165 MouseArea { 0166 anchors.fill: parent 0167 onClicked: (mouse)=> { 0168 audioRecorder.close() 0169 } 0170 } 0171 } 0172 } 0173 } 0174