You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
6.4 KiB
169 lines
6.4 KiB
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
|
|
|