6import QGroundControl.Controls
10 Layout.preferredWidth: ScreenTools.defaultFontPixelWidth * 50
13 textFormat: TextEdit.RichText
15 placeholderText: qsTr("No Messages")
16 placeholderTextColor: qgcPal.text
18 wrapMode: TextEdit.Wrap
20 property bool noMessages: messageText.length === 0
22 property var _fact: null
24 function formatMessage(message) {
25 message = message.replace(new RegExp("<#E>", "g"), "color: " + qgcPal.warningText + "; font: " + (ScreenTools.defaultFontPointSize.toFixed(0) - 1) + "pt monospace;");
26 message = message.replace(new RegExp("<#I>", "g"), "color: " + qgcPal.colorOrange + "; font: " + (ScreenTools.defaultFontPointSize.toFixed(0) - 1) + "pt monospace;");
27 message = message.replace(new RegExp("<#N>", "g"), "color: " + qgcPal.text + "; font: " + (ScreenTools.defaultFontPointSize.toFixed(0) - 1) + "pt monospace;");
31 Component.onCompleted: {
32 messageText.text = formatMessage(_activeVehicle.formattedMessages)
36 target: _activeVehicle
37 function onNewFormattedMessage(formattedMessage) { messageText.insert(0, formatMessage(formattedMessage)) }
44 onLinkActivated: (link) => {
45 if (link.startsWith('param://')) {
46 var paramName = link.substr(8);
47 _fact = controller.getParameterFact(-1, paramName, true)
49 paramEditorDialogFactory.open()
52 Qt.openUrlExternally(link);
56 QGCPopupDialogFactory {
57 id: paramEditorDialogFactory
59 dialogComponent: paramEditorDialogComponent
63 id: paramEditorDialogComponent
65 ParameterEditorDialog {
66 title: qsTr("Edit Parameter")
67 fact: messageText._fact
73 anchors.right: parent.right
74 anchors.top: parent.top
75 width: ScreenTools.defaultFontPixelHeight * 1.25
78 color: QGroundControl.globalPalette.button
79 border.color: QGroundControl.globalPalette.buttonText
83 anchors.margins: ScreenTools.defaultFontPixelHeight * 0.25
84 anchors.centerIn: parent
86 sourceSize.height: height
87 source: "/res/TrashDelete.svg"
88 fillMode: Image.PreserveAspectFit
97 _activeVehicle.clearMessages()
98 mainWindow.closeIndicatorDrawer()