114 lines
3.0 KiB
QML
114 lines
3.0 KiB
QML
import QtCore
|
|
import QtQuick
|
|
import QtQuick.Controls
|
|
import QtQuick.Layouts
|
|
import QtQuick.Dialogs
|
|
import Analyser
|
|
|
|
Popup {
|
|
id: root
|
|
parent: Overlay.overlay
|
|
anchors.centerIn: Overlay.overlay
|
|
width: 500
|
|
height: 200
|
|
modal: true
|
|
focus: true
|
|
closePolicy: Popup.CloseOnEscape
|
|
property var onClose
|
|
|
|
ColumnLayout {
|
|
anchors.fill: parent
|
|
anchors.margins: 10
|
|
spacing: 10
|
|
|
|
RowLayout {
|
|
Layout.alignment: Qt.AlignRight
|
|
Button {
|
|
text: "关闭"
|
|
onClicked: root.close()
|
|
}
|
|
}
|
|
|
|
RowLayout {
|
|
spacing: 10
|
|
TextField {
|
|
id: otaFile
|
|
Layout.fillWidth: true
|
|
placeholderText: "请选择升级文件或将文件拖入工具中"
|
|
}
|
|
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"
|
|
enabled = !App.startOta(otaFile.text)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
onClosed: {
|
|
if (onClose)
|
|
onClose()
|
|
}
|
|
|
|
FileDialog {
|
|
id: fileDialog
|
|
nameFilters: ["OTA文件 (*.Pkg)"]
|
|
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 onUpdateFinished() {
|
|
otaMessage.text = "OTA升级完成"
|
|
otaMessage.color = "green"
|
|
}
|
|
function onOtaMessage(message) {
|
|
otaMessage.text = message
|
|
}
|
|
function onOtaProgressChanged(progress) {
|
|
progressBar.value = progress
|
|
progressText.text = `${progress}%`
|
|
}
|
|
}
|
|
}
|