Newer
Older
/****************************************************************************
*
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.2
import QGroundControl 1.0
import QGroundControl.Palette 1.0
import QGroundControl.FactSystem 1.0
import QGroundControl.FactControls 1.0
import QGroundControl.Controls 1.0
import QGroundControl.ScreenTools 1.0
import QGroundControl.Controllers 1.0
AnalyzePage {
id: mavlinkConsolePage
pageComponent: pageComponent
pageName: qsTr("Mavlink Console")
pageDescription: qsTr("Mavlink Console provides a connection to the vehicle's system shell.")
MavlinkConsoleController {
id: conController
}
Component {
id: pageComponent
ColumnLayout {
id: consoleColumn
height: availableHeight
width: availableWidth
Connections {
target: conController
onDataChanged: {
// Keep the view in sync if the button is checked
if (followTail.checked) {
listview.positionViewAtEnd();
}
}
}
}
Component {
id: delegateItem
Rectangle {
color: qgcPal.windowShade
height: Math.round(ScreenTools.defaultFontPixelHeight * 0.1 + field.height)
width: listview.width
QGCLabel {
id: field
text: display
width: parent.width
wrapMode: Text.NoWrap
font.family: ScreenTools.fixedFontFamily
anchors.verticalCenter: parent.verticalCenter
}
}
}
QGCListView {
Component.onCompleted: {
clip: true
id: listview
model: conController
delegate: delegateItem
// Unsync the view if the user interacts
onMovementStarted: {
followTail.checked = false
}
QGCTextField {
id: command
Layout.fillWidth: true
placeholderText: "Enter Commands here..."
function sendCommand() {
conController.sendCommand(text)
text = ""
}
onAccepted: sendCommand()
text = conController.historyUp(text);
event.accepted = true;
text = conController.historyDown(text);
event.accepted = true;
}
}
QGCButton {
id: sendButton
text: qsTr("Send")
visible: ScreenTools.isMobile
onClicked: command.sendCommand()
}
QGCButton {
id: followTail
text: qsTr("Show Latest")
checkable: true
checked: true
onCheckedChanged: {
listview.positionViewAtEnd();
}
}
}
}
}
} // Component
} // AnalyzePage