122 lines
3.3 KiB
QML
122 lines
3.3 KiB
QML
import QtCore
|
|
import QtQuick
|
|
import QtQuick.Controls
|
|
import QtQuick.Layouts
|
|
import QtQuick.Dialogs
|
|
import AntiClipSettings
|
|
|
|
Popup {
|
|
id: root
|
|
parent: Overlay.overlay
|
|
anchors.centerIn: Overlay.overlay
|
|
width: 540
|
|
height: 260
|
|
modal: true
|
|
focus: true
|
|
closePolicy: Popup.CloseOnEscape
|
|
property bool otaFinished: true
|
|
property var onClose
|
|
|
|
ColumnLayout {
|
|
anchors.fill: parent
|
|
anchors.margins: 10
|
|
spacing: 10
|
|
|
|
RowLayout {
|
|
Layout.alignment: Qt.AlignRight
|
|
IconButton {
|
|
source: "../resources/popup_close.svg"
|
|
onClicked: {
|
|
if(otaFinished){
|
|
root.close()
|
|
}else{
|
|
showMessageDialog(2,"OTA升级","设备正在升级中,请耐心等待...")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
RowLayout {
|
|
spacing: 10
|
|
TextField {
|
|
id: otaFile
|
|
Layout.fillWidth: true
|
|
readOnly: true
|
|
placeholderText: "请选择升级bin文件"
|
|
}
|
|
Button {
|
|
text: "选择"
|
|
onClicked: fileDialog.open()
|
|
}
|
|
}
|
|
|
|
RowLayout {
|
|
spacing: 10
|
|
ProgressBar {
|
|
id: progressBar
|
|
Layout.fillWidth: true
|
|
from: 0
|
|
to: 100
|
|
value: 0.0
|
|
}
|
|
Text {
|
|
id: progressText
|
|
text: "0%"
|
|
verticalAlignment: Text.AlignVCenter
|
|
}
|
|
}
|
|
|
|
RowLayout {
|
|
Text {
|
|
id: otaMessage
|
|
text: "请选择升级文件,点击开始按钮升级模组"
|
|
wrapMode: Text.Wrap
|
|
horizontalAlignment: Text.AlignHCenter
|
|
verticalAlignment: Text.AlignVCenter
|
|
Layout.fillWidth: true
|
|
}
|
|
Button {
|
|
text: "开始"
|
|
Layout.alignment: Qt.AlignRight
|
|
onClicked: {
|
|
otaMessage.color = "black"
|
|
App.upgradeDevice(otaFile.text)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
onClosed: {
|
|
if (onClose)
|
|
onClose()
|
|
}
|
|
|
|
FileDialog {
|
|
id: fileDialog
|
|
nameFilters: ["OTA文件 (*.bin)"]
|
|
currentFolder: StandardPaths.standardLocations(
|
|
StandardPaths.DesktopLocation)[0]
|
|
onAccepted: {
|
|
var fileUrl = fileDialog.selectedFile.toString()
|
|
var localFilePath = fileUrl.startsWith(
|
|
"file:///") ? fileUrl.substring(8) : fileUrl
|
|
otaFile.text = localFilePath
|
|
}
|
|
}
|
|
|
|
Connections {
|
|
target: App
|
|
function onCurrentDeviceOtaProgressChanged (status, progress, message) {
|
|
otaFinished = !status || (progress>=100)
|
|
progressBar.value = progress
|
|
progressText.text = `${progress}%`
|
|
if(progress>=100){
|
|
otaMessage.text = "OTA升级完成"
|
|
otaMessage.color = "green"
|
|
}else {
|
|
otaMessage.text = message
|
|
}
|
|
}
|
|
}
|
|
}
|