Browse Source

Merge pull request #3196 from tcanabrava/bitmask_values_v2

Parameter Edit: Handle bitfields as ComboBoxes
QGC4.4
Don Gagne 9 years ago
parent
commit
420454390c
  1. 28
      src/QmlControls/ParameterEditorDialog.qml

28
src/QmlControls/ParameterEditorDialog.qml

@ -47,7 +47,18 @@ QGCViewDialog { @@ -47,7 +47,18 @@ QGCViewDialog {
QGCPalette { id: qgcPal; colorGroupEnabled: true }
function accept() {
if (factCombo.visible) {
if (bitmaskEditor.visible) {
var value = 0;
for (var i = 0; i < fact.bitmaskValues.length; ++i) {
var checkbox = bitmaskEditor.itemAt(i)
if (checkbox.checked) {
value |= fact.bitmaskValues[i];
}
}
fact.value = value;
fact.valueChanged(fact.value)
}
else if (factCombo.visible) {
fact.enumIndex = factCombo.currentIndex
hideDialog()
} else {
@ -127,7 +138,7 @@ QGCViewDialog { @@ -127,7 +138,7 @@ QGCViewDialog {
visible: _showCombo
model: fact.enumStrings
property bool _showCombo: fact.enumStrings.length != 0 && !validate
property bool _showCombo: fact.enumStrings.length != 0 && fact.bitmaskStrings.length == 0 && !validate
Component.onCompleted: {
// We can't bind directly to fact.enumIndex since that would add an unknown value
@ -138,6 +149,19 @@ QGCViewDialog { @@ -138,6 +149,19 @@ QGCViewDialog {
}
}
Column {
spacing: ScreenTools.defaultFontPixelHeight / 2
Repeater {
id: bitmaskEditor
model: fact.bitmaskStrings
delegate : QGCCheckBox {
text : modelData
checked : fact.value & fact.bitmaskValues[index]
}
}
}
QGCLabel { text: fact.name }
Row {

Loading…
Cancel
Save