|
|
|
import QtQuick 2.3
|
|
|
|
import QtQuick.Controls 1.2
|
|
|
|
import QtQuick.Layouts 1.2
|
|
|
|
|
|
|
|
import QGroundControl 1.0
|
|
|
|
import QGroundControl.ScreenTools 1.0
|
|
|
|
import QGroundControl.Controls 1.0
|
|
|
|
import QGroundControl.FactControls 1.0
|
|
|
|
import QGroundControl.Palette 1.0
|
|
|
|
|
|
|
|
// Camera calculator "Camera" section for mission item editors
|
|
|
|
Column {
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.right: parent.right
|
|
|
|
spacing: _margin
|
|
|
|
|
|
|
|
property var cameraCalc
|
|
|
|
|
|
|
|
property real _margin: ScreenTools.defaultFontPixelWidth / 2
|
|
|
|
property real _fieldWidth: ScreenTools.defaultFontPixelWidth * 10.5
|
|
|
|
property var _vehicle: QGroundControl.multiVehicleManager.activeVehicle ? QGroundControl.multiVehicleManager.activeVehicle : QGroundControl.multiVehicleManager.offlineEditingVehicle
|
|
|
|
property var _vehicleCameraList: _vehicle ? _vehicle.staticCameraList : []
|
|
|
|
|
|
|
|
Component.onCompleted:{
|
|
|
|
cameraBrandCombo.selectCurrentBrand()
|
|
|
|
cameraModelCombo.selectCurrentModel()
|
|
|
|
}
|
|
|
|
|
|
|
|
QGCPalette { id: qgcPal; colorGroupEnabled: true }
|
|
|
|
|
|
|
|
Column {
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.right: parent.right
|
|
|
|
spacing: _margin
|
|
|
|
|
|
|
|
QGCComboBox {
|
|
|
|
id: cameraBrandCombo
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.right: parent.right
|
|
|
|
model: cameraCalc.cameraBrandList
|
|
|
|
onModelChanged: selectCurrentBrand()
|
|
|
|
onActivated: cameraCalc.cameraBrand = currentText
|
|
|
|
|
|
|
|
Connections {
|
|
|
|
target: cameraCalc
|
|
|
|
onCameraBrandChanged: cameraBrandCombo.selectCurrentBrand()
|
|
|
|
}
|
|
|
|
|
|
|
|
function selectCurrentBrand() {
|
|
|
|
currentIndex = cameraBrandCombo.find(cameraCalc.cameraBrand)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
QGCComboBox {
|
|
|
|
id: cameraModelCombo
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.right: parent.right
|
|
|
|
model: cameraCalc.cameraModelList
|
|
|
|
visible: !cameraCalc.isManualCamera && !cameraCalc.isCustomCamera
|
|
|
|
onModelChanged: selectCurrentModel()
|
|
|
|
onActivated: cameraCalc.cameraModel = currentText
|
|
|
|
|
|
|
|
Connections {
|
|
|
|
target: cameraCalc
|
|
|
|
onCameraModelChanged: cameraModelCombo.selectCurrentModel()
|
|
|
|
}
|
|
|
|
|
|
|
|
function selectCurrentModel() {
|
|
|
|
currentIndex = cameraModelCombo.find(cameraCalc.cameraModel)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Camera based grid ui
|
|
|
|
Column {
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.right: parent.right
|
|
|
|
spacing: _margin
|
|
|
|
visible: !cameraCalc.isManualCamera
|
|
|
|
|
|
|
|
Row {
|
|
|
|
spacing: _margin
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
visible: !cameraCalc.fixedOrientation.value
|
|
|
|
|
|
|
|
QGCRadioButton {
|
|
|
|
width: _editFieldWidth
|
|
|
|
text: "Landscape"
|
|
|
|
checked: !!cameraCalc.landscape.value
|
|
|
|
onClicked: cameraCalc.landscape.value = 1
|
|
|
|
}
|
|
|
|
|
|
|
|
QGCRadioButton {
|
|
|
|
id: cameraOrientationPortrait
|
|
|
|
text: "Portrait"
|
|
|
|
checked: !cameraCalc.landscape.value
|
|
|
|
onClicked: cameraCalc.landscape.value = 0
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Custom camera specs
|
|
|
|
Column {
|
|
|
|
id: custCameraCol
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.right: parent.right
|
|
|
|
spacing: _margin
|
|
|
|
enabled: cameraCalc.isCustomCamera
|
|
|
|
|
|
|
|
RowLayout {
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.right: parent.right
|
|
|
|
spacing: _margin
|
|
|
|
Item { Layout.fillWidth: true }
|
|
|
|
QGCLabel {
|
|
|
|
Layout.preferredWidth: _root._fieldWidth
|
|
|
|
text: qsTr("Width")
|
|
|
|
}
|
|
|
|
QGCLabel {
|
|
|
|
Layout.preferredWidth: _root._fieldWidth
|
|
|
|
text: qsTr("Height")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
RowLayout {
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.right: parent.right
|
|
|
|
spacing: _margin
|
|
|
|
QGCLabel { text: qsTr("Sensor"); Layout.fillWidth: true }
|
|
|
|
FactTextField {
|
|
|
|
Layout.preferredWidth: _root._fieldWidth
|
|
|
|
fact: cameraCalc.sensorWidth
|
|
|
|
}
|
|
|
|
FactTextField {
|
|
|
|
Layout.preferredWidth: _root._fieldWidth
|
|
|
|
fact: cameraCalc.sensorHeight
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
RowLayout {
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.right: parent.right
|
|
|
|
spacing: _margin
|
|
|
|
QGCLabel { text: qsTr("Image"); Layout.fillWidth: true }
|
|
|
|
FactTextField {
|
|
|
|
Layout.preferredWidth: _root._fieldWidth
|
|
|
|
fact: cameraCalc.imageWidth
|
|
|
|
}
|
|
|
|
FactTextField {
|
|
|
|
Layout.preferredWidth: _root._fieldWidth
|
|
|
|
fact: cameraCalc.imageHeight
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
RowLayout {
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.right: parent.right
|
|
|
|
spacing: _margin
|
|
|
|
QGCLabel {
|
|
|
|
text: qsTr("Focal length")
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
FactTextField {
|
|
|
|
Layout.preferredWidth: _root._fieldWidth
|
|
|
|
fact: cameraCalc.focalLength
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} // Column - custom camera specs
|
|
|
|
} // Column - Camera spec based ui
|
|
|
|
} // Column - Camera Section
|
|
|
|
} // Column
|