133 lines
3.7 KiB
QML
133 lines
3.7 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import QtQuick.Controls
|
|
import RibbonUI
|
|
import ProtocolParser
|
|
|
|
Item {
|
|
id:obj
|
|
property var header_items: ["序号","密钥"]
|
|
property var header_items_width: [100,300]
|
|
property var data_source: []
|
|
implicitHeight: list_layout.height
|
|
implicitWidth: list_layout.width
|
|
|
|
onData_sourceChanged: {
|
|
list.data_model.clear()
|
|
list.data_model.append(data_source)
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
var data = []
|
|
for (var i = 0; i < ZigBeeParser.pre_hmac_verify_key.length; i++)
|
|
{
|
|
data.push({"序号":i+1,"密钥":key_format(ZigBeeParser.pre_hmac_verify_key[i])})
|
|
}
|
|
data_source = data
|
|
}
|
|
|
|
Connections{
|
|
target: ZigBeeParser
|
|
function onPre_hmac_verify_keyChanged(){
|
|
var data = []
|
|
for (var i = 0; i < ZigBeeParser.pre_hmac_verify_key.length; i++)
|
|
{
|
|
data.push({"序号":i+1,"密钥":key_format(ZigBeeParser.pre_hmac_verify_key[i])})
|
|
}
|
|
data_source = data
|
|
}
|
|
}
|
|
|
|
RibbonButton{
|
|
anchors{
|
|
top:parent.top
|
|
margins: 4
|
|
right:parent.right
|
|
}
|
|
show_bg: false
|
|
show_hovered_bg: false
|
|
icon_source: RibbonIcons.Dismiss
|
|
onClicked: window_popup.close()
|
|
}
|
|
|
|
ColumnLayout{
|
|
id:list_layout
|
|
anchors{
|
|
bottom: parent.bottom
|
|
horizontalCenter: parent.horizontalCenter
|
|
}
|
|
|
|
RibbonText{
|
|
id: title_text
|
|
Layout.topMargin: 30
|
|
Layout.alignment: Qt.AlignHCenter
|
|
text: "密钥列表"
|
|
view_only: true
|
|
font.pixelSize: 15
|
|
}
|
|
|
|
RowLayout{
|
|
Layout.preferredWidth: list.implicitWidth
|
|
Layout.leftMargin: 30
|
|
Layout.topMargin: 15
|
|
RibbonText{
|
|
id: c_key_text
|
|
text: "当前密钥:"
|
|
view_only: true
|
|
}
|
|
RibbonText{
|
|
Layout.preferredWidth: implicitWidth > (parent.width - c_key_text.width) ? parent.width - c_key_text.width : implicitWidth
|
|
text: key_format(ZigBeeParser.hmac_verify_key)
|
|
font.bold: true
|
|
wrapMode: RibbonText.WordWrap
|
|
}
|
|
}
|
|
|
|
RibbonText{
|
|
text: `历史密钥(共${ZigBeeParser.pre_hmac_verify_key.length}个)`
|
|
Layout.leftMargin: 30
|
|
view_only: true
|
|
}
|
|
|
|
ListTable {
|
|
id: list
|
|
header_items: obj.header_items
|
|
header_items_width: obj.header_items_width
|
|
margins: 0
|
|
Layout.topMargin: 10
|
|
Layout.leftMargin: 30
|
|
Layout.rightMargin: Layout.leftMargin
|
|
Layout.bottomMargin: Layout.leftMargin
|
|
Layout.preferredHeight: implicitHeight > 250 ? 250 : implicitHeight
|
|
}
|
|
|
|
RowLayout{
|
|
spacing: 30
|
|
Layout.alignment: Qt.AlignHCenter
|
|
Layout.bottomMargin: 30
|
|
RibbonButton{
|
|
show_tooltip: false
|
|
icon_source: RibbonIcons.Delete
|
|
text: qsTr("删除")
|
|
enabled: list.has_selected
|
|
onClicked: {
|
|
let data = ZigBeeParser.pre_hmac_verify_key
|
|
data.splice(list.current_index,1)
|
|
ZigBeeParser.pre_hmac_verify_key = data
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function key_format(key)
|
|
{
|
|
let str = '0x'
|
|
for (let i = 0; i < key.length; i++)
|
|
{
|
|
str += key[i]
|
|
if ((i + 1) % 2 === 0 && (i + 1) !== key.length)
|
|
str += ' 0x'
|
|
}
|
|
return str
|
|
}
|
|
}
|