ProtocolParser/app_source/qml/components/ZigBeeFrame.qml

366 lines
12 KiB
QML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import QtQuick
import QtQuick.Layouts
import RibbonUI
/* 仅适用于DL-LN3X系列 */
Flow{
id: control
property alias text: label.text
property bool show_text: true
property bool dark_mode: RibbonTheme.dark_mode
property bool show_tooltip: true
property bool is_recieved: false
property int font_size: 13
property double component_width: 300
property int data_width: component_width - (show_text ? label.width : 0) - z_head.width - z_length.width - z_src_port.width -
z_des_port.width - z_address.width - z_tail.width - spacing*(show_text ? 13 : 12) - 6
property var data_list
padding: 5
RibbonText {
id: label
height: z_data.height + control.padding * 2
color: control.dark_mode ? "white" : control.is_recieved ? "black" : "white"
font.pixelSize: control.font_size
visible: control.show_text
horizontalAlignment: RibbonText.AlignHCenter
verticalAlignment: RibbonText.AlignVCenter
}
RibbonRectangle{
radius: 5
topRightRadius: 0
bottomRightRadius: topRightRadius
implicitWidth: z_head.contentWidth + control.padding * 2
implicitHeight: z_data.height + control.padding * 2
color: z_head_hh.hovered ? control.is_recieved ? control.dark_mode ? "#262626" : "#F0F0F0" : control.dark_mode ? "#313131" : "#6099AA" : "transparent"
RibbonText {
id: z_head
anchors.centerIn: parent
color: control.dark_mode ? "white" : control.is_recieved ? "black" : "white"
text: typeof(data_list[0]) !== "undefined" ? data_list[0] : ""
font.pixelSize: control.font_size
horizontalAlignment: RibbonText.AlignHCenter
verticalAlignment: RibbonText.AlignVCenter
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
RibbonToolTip{
text: "ZigBee帧 头"
visible: z_head_hh.hovered && control.show_tooltip
}
HoverHandler{
id: z_head_hh
}
}
Item {
height: z_data.height + control.padding * 2
width: 1
Rectangle{
anchors.verticalCenter: parent.verticalCenter
width: 1
height: z_data.height - control.padding * 2
color: control.dark_mode ? "#525252" : "#D4D4D4"
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
}
RibbonRectangle{
radius: 0
color: z_length_hh.hovered ? control.is_recieved ? control.dark_mode ? "#262626" : "#F0F0F0" : control.dark_mode ? "#313131" : "#6099AA" : "transparent"
implicitWidth: z_length.contentWidth + control.padding * 2
implicitHeight: z_data.height + control.padding * 2
RibbonText {
id: z_length
anchors.centerIn: parent
color: control.dark_mode ? "white" : control.is_recieved ? "black" : "white"
text: typeof(data_list[0]) !== "undefined" ? data_list[1] : ""
font.pixelSize: control.font_size
horizontalAlignment: RibbonText.AlignHCenter
verticalAlignment: RibbonText.AlignVCenter
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
RibbonToolTip{
text: "ZigBee帧 长"
visible: z_length_hh.hovered && control.show_tooltip
}
HoverHandler{
id: z_length_hh
}
}
Item {
height: z_data.height + control.padding * 2
width: 1
Rectangle{
anchors.verticalCenter: parent.verticalCenter
width: 1
height: z_data.height - control.padding * 2
color: control.dark_mode ? "#525252" : "#D4D4D4"
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
}
RibbonRectangle{
radius: 0
color: z_src_port_hh.hovered ? control.is_recieved ? control.dark_mode ? "#262626" : "#F0F0F0" : control.dark_mode ? "#313131" : "#6099AA" : "transparent"
implicitWidth: z_src_port.contentWidth + control.padding * 2
implicitHeight: z_data.height + control.padding * 2
RibbonText {
id: z_src_port
anchors.centerIn: parent
color: control.dark_mode ? "white" : control.is_recieved ? "black" : "white"
text: typeof(data_list[0]) !== "undefined" ? data_list[2] : ""
font.pixelSize: control.font_size
horizontalAlignment: RibbonText.AlignHCenter
verticalAlignment: RibbonText.AlignVCenter
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
RibbonToolTip{
text: "ZigBee帧 源端口"
visible: z_src_port_hh.hovered && control.show_tooltip
}
HoverHandler{
id: z_src_port_hh
}
}
Item {
height: z_data.height + control.padding * 2
width: 1
Rectangle{
anchors.verticalCenter: parent.verticalCenter
width: 1
height: z_data.height - control.padding * 2
color: control.dark_mode ? "#525252" : "#D4D4D4"
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
}
RibbonRectangle{
radius: 0
color: z_des_port_hh.hovered ? control.is_recieved ? control.dark_mode ? "#262626" : "#F0F0F0" : control.dark_mode ? "#313131" : "#6099AA" : "transparent"
implicitWidth: z_des_port.contentWidth + control.padding * 2
implicitHeight: z_data.height + control.padding * 2
RibbonText {
id: z_des_port
anchors.centerIn: parent
color: control.dark_mode ? "white" : control.is_recieved ? "black" : "white"
text: typeof(data_list[0]) !== "undefined" ? data_list[3] : ""
font.pixelSize: control.font_size
horizontalAlignment: RibbonText.AlignHCenter
verticalAlignment: RibbonText.AlignVCenter
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
RibbonToolTip{
text: "ZigBee帧 目的端口"
visible: z_des_port_hh.hovered && control.show_tooltip
}
HoverHandler{
id: z_des_port_hh
}
}
Item {
height: z_data.height + control.padding * 2
width: 1
Rectangle{
anchors.verticalCenter: parent.verticalCenter
width: 1
height: z_data.height - control.padding * 2
color: control.dark_mode ? "#525252" : "#D4D4D4"
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
}
RibbonRectangle{
radius: 0
color: z_address_hh.hovered ? control.is_recieved ? control.dark_mode ? "#262626" : "#F0F0F0" : control.dark_mode ? "#313131" : "#6099AA" : "transparent"
implicitWidth: z_address.contentWidth + control.padding * 2
implicitHeight: z_data.height + control.padding * 2
RibbonText {
id: z_address
anchors.centerIn: parent
color: control.dark_mode ? "white" : control.is_recieved ? "black" : "white"
text: typeof(data_list[0]) !== "undefined" ? data_list.slice(4,6).join(" ") : ""
font.pixelSize: control.font_size
horizontalAlignment: RibbonText.AlignHCenter
verticalAlignment: RibbonText.AlignVCenter
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
RibbonToolTip{
text: `ZigBee帧 , 0x${data_list[5]}${data_list[4]}`
visible: z_address_hh.hovered && control.show_tooltip
}
HoverHandler{
id: z_address_hh
}
}
Item {
height: z_data.height + control.padding * 2
width: 1
Rectangle{
anchors.verticalCenter: parent.verticalCenter
width: 1
height: z_data.height - control.padding * 2
color: control.dark_mode ? "#525252" : "#D4D4D4"
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
}
RibbonRectangle{
radius: 0
color: z_data_hh.hovered ? control.is_recieved ? control.dark_mode ? "#262626" : "#F0F0F0" : control.dark_mode ? "#313131" : "#6099AA" : "transparent"
implicitWidth: z_data.width + control.padding * 2
implicitHeight: z_data.height + control.padding * 2
RibbonText {
id: z_data
anchors.centerIn: parent
color: control.dark_mode ? "white" : control.is_recieved ? "black" : "white"
width: implicitWidth < control.data_width ? implicitWidth : control.data_width
wrapMode: RibbonText.Wrap
text: typeof(data_list[0]) !== "undefined" ? data_list.slice(6,data_list.length-1).join(" ") : ""
font.pixelSize: control.font_size
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
RibbonToolTip{
text: "ZigBee帧 数据"
visible: z_data_hh.hovered && control.show_tooltip
}
HoverHandler{
id: z_data_hh
}
}
Item {
height: z_data.height + control.padding * 2
width: 1
Rectangle{
anchors.verticalCenter: parent.verticalCenter
width: 1
height: z_data.height - control.padding * 2
color: control.dark_mode ? "#525252" : "#D4D4D4"
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
}
RibbonRectangle{
radius: parent.radius ? parent.radius / 2 : 5
color: z_tail_hh.hovered ? control.is_recieved ? control.dark_mode ? "#262626" : "#F0F0F0" : control.dark_mode ? "#313131" : "#6099AA" : "transparent"
topLeftRadius: 0
bottomLeftRadius: topLeftRadius
implicitWidth: z_tail.contentWidth + control.padding * 2
implicitHeight: z_data.height + control.padding * 2
RibbonText {
id: z_tail
anchors.centerIn: parent
color: control.dark_mode ? "white" : control.is_recieved ? "black" : "white"
text: typeof(data_list[0]) !== "undefined" ? data_list[data_list.length-1] : ""
font.pixelSize: control.font_size
horizontalAlignment: RibbonText.AlignHCenter
verticalAlignment: RibbonText.AlignVCenter
Behavior on color {
ColorAnimation {
duration: 60
easing.type: Easing.OutSine
}
}
}
RibbonToolTip{
text: "ZigBee帧 尾"
visible: z_tail_hh.hovered && control.show_tooltip
}
HoverHandler{
id: z_tail_hh
}
}
}