Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
5bbb313d
Unverified
Commit
5bbb313d
authored
Sep 08, 2019
by
Don Gagne
Committed by
GitHub
Sep 08, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #7794 from DonLakeFlyer/QGCOptionsComboBox
New QGCOptionsComboBox control
parents
cb294031
8689f586
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
238 additions
and
46 deletions
+238
-46
qgroundcontrol.qrc
qgroundcontrol.qrc
+1
-0
FactCheckBox.qml
src/FactSystem/FactControls/FactCheckBox.qml
+11
-5
MavCmdInfoCommon.json
src/FirmwarePlugin/APM/MavCmdInfoCommon.json
+1
-0
TransectStyleComplexItem.cc
src/MissionManager/TransectStyleComplexItem.cc
+10
-0
TransectStyleComplexItem.h
src/MissionManager/TransectStyleComplexItem.h
+1
-0
PlanView.qml
src/PlanView/PlanView.qml
+2
-0
SurveyItemEditor.qml
src/PlanView/SurveyItemEditor.qml
+42
-41
QGCOptionsComboBox.qml
src/QmlControls/QGCOptionsComboBox.qml
+169
-0
qmldir
src/QmlControls/QGroundControl/Controls/qmldir
+1
-0
No files found.
qgroundcontrol.qrc
View file @
5bbb313d
...
...
@@ -123,6 +123,7 @@
<file alias="QGroundControl/Controls/QGCMenuSeparator.qml">src/QmlControls/QGCMenuSeparator.qml</file>
<file alias="QGroundControl/Controls/QGCMouseArea.qml">src/QmlControls/QGCMouseArea.qml</file>
<file alias="QGroundControl/Controls/QGCMovableItem.qml">src/QmlControls/QGCMovableItem.qml</file>
<file alias="QGroundControl/Controls/QGCOptionsComboBox.qml">src/QmlControls/QGCOptionsComboBox.qml</file>
<file alias="QGroundControl/Controls/QGCPipable.qml">src/QmlControls/QGCPipable.qml</file>
<file alias="QGroundControl/Controls/QGCRadioButton.qml">src/QmlControls/QGCRadioButton.qml</file>
<file alias="QGroundControl/Controls/QGCSlider.qml">src/QmlControls/QGCSlider.qml</file>
...
...
src/FactSystem/FactControls/FactCheckBox.qml
View file @
5bbb313d
...
...
@@ -7,14 +7,20 @@ import QGroundControl.Palette 1.0
import
QGroundControl
.
Controls
1.0
QGCCheckBox
{
checkedState
:
isFactChecked
()
property
Fact
fact
:
Fact
{
}
property
variant
checkedValue
:
1
property
variant
uncheckedValue
:
0
checkedState
:
fact
?
(
fact
.
typeIsBool
?
(
fact
.
value
===
false
?
Qt
.
Unchecked
:
Qt
.
Checked
)
:
(
fact
.
value
===
0
?
Qt
.
Unchecked
:
Qt
.
Checked
))
:
Qt
.
Unchecked
Binding
on
checkedState
{
value
:
fact
?
(
fact
.
typeIsBool
?
(
fact
.
value
===
false
?
Qt
.
Unchecked
:
Qt
.
Checked
)
:
(
fact
.
value
===
0
?
Qt
.
Unchecked
:
Qt
.
Checked
))
:
Qt
.
Unchecked
}
onClicked
:
fact
.
value
=
(
checked
?
checkedValue
:
uncheckedValue
)
}
src/FirmwarePlugin/APM/MavCmdInfoCommon.json
View file @
5bbb313d
...
...
@@ -42,6 +42,7 @@
{
"id"
:
22
,
"comment"
:
"MAV_CMD_NAV_TAKEOFF"
,
"description"
:
"Take off from the ground and ascend to specified altitude."
,
"specifiesCoordinate"
:
false
,
"specifiesAltitudeOnly"
:
true
},
...
...
src/MissionManager/TransectStyleComplexItem.cc
View file @
5bbb313d
...
...
@@ -102,6 +102,8 @@ TransectStyleComplexItem::TransectStyleComplexItem(Vehicle* vehicle, bool flyVie
connect
(
&
_cameraCalc
,
&
CameraCalc
::
distanceToSurfaceRelativeChanged
,
this
,
&
TransectStyleComplexItem
::
coordinateHasRelativeAltitudeChanged
);
connect
(
&
_cameraCalc
,
&
CameraCalc
::
distanceToSurfaceRelativeChanged
,
this
,
&
TransectStyleComplexItem
::
exitCoordinateHasRelativeAltitudeChanged
);
connect
(
&
_hoverAndCaptureFact
,
&
Fact
::
rawValueChanged
,
this
,
&
TransectStyleComplexItem
::
_handleHoverAndCaptureEnabled
);
connect
(
this
,
&
TransectStyleComplexItem
::
visualTransectPointsChanged
,
this
,
&
TransectStyleComplexItem
::
complexDistanceChanged
);
connect
(
this
,
&
TransectStyleComplexItem
::
visualTransectPointsChanged
,
this
,
&
TransectStyleComplexItem
::
greatestDistanceToChanged
);
...
...
@@ -769,3 +771,11 @@ void TransectStyleComplexItem::_followTerrainChanged(bool followTerrain)
_hoverAndCaptureFact
.
setRawValue
(
false
);
}
}
void
TransectStyleComplexItem
::
_handleHoverAndCaptureEnabled
(
QVariant
enabled
)
{
if
(
enabled
.
toBool
()
&&
_cameraTriggerInTurnAroundFact
.
rawValue
().
toBool
())
{
qDebug
()
<<
"_handleHoverAndCaptureEnabled"
;
_cameraTriggerInTurnAroundFact
.
setRawValue
(
false
);
}
}
src/MissionManager/TransectStyleComplexItem.h
View file @
5bbb313d
...
...
@@ -205,6 +205,7 @@ protected:
private
slots
:
void
_reallyQueryTransectsPathHeightInfo
(
void
);
void
_followTerrainChanged
(
bool
followTerrain
);
void
_handleHoverAndCaptureEnabled
(
QVariant
enabled
);
private:
void
_queryTransectsPathHeightInfo
(
void
);
...
...
src/PlanView/PlanView.qml
View file @
5bbb313d
...
...
@@ -916,6 +916,7 @@ Item {
}
else
{
_planMasterController
.
removeAllFromVehicle
()
}
_missionController
.
setCurrentPlanViewIndex
(
0
,
true
)
hideDialog
()
}
}
...
...
@@ -927,6 +928,7 @@ Item {
message
:
qsTr
(
"
Are you sure you want to remove all mission items and clear the mission from the vehicle?
"
)
function
accept
()
{
_planMasterController
.
removeAllFromVehicle
()
_missionController
.
setCurrentPlanViewIndex
(
0
,
true
)
hideDialog
()
}
}
...
...
src/PlanView/SurveyItemEditor.qml
View file @
5bbb313d
...
...
@@ -162,7 +162,9 @@ Rectangle {
cameraCalc
:
missionItem
.
cameraCalc
vehicleFlightIsFrontal
:
true
distanceToSurfaceLabel
:
qsTr
(
"
Altitude
"
)
distanceToSurfaceAltitudeMode
:
missionItem
.
followTerrain
?
QGroundControl
.
AltitudeModeAboveTerrain
:
QGroundControl
.
AltitudeModeRelative
distanceToSurfaceAltitudeMode
:
missionItem
.
followTerrain
?
QGroundControl
.
AltitudeModeAboveTerrain
:
missionItem
.
cameraCalc
.
distanceToSurfaceRelative
frontalDistanceLabel
:
qsTr
(
"
Trigger Dist
"
)
sideDistanceLabel
:
qsTr
(
"
Spacing
"
)
usingPreset
:
_usingPreset
...
...
@@ -235,48 +237,47 @@ Rectangle {
}
*/
FactCheckBox
{
text
:
qsTr
(
"
Hover and capture image
"
)
fact
:
missionItem
.
hoverAndCapture
visible
:
missionItem
.
hoverAndCaptureAllowed
enabled
:
!
missionItem
.
followTerrain
onClicked
:
{
if
(
checked
)
{
missionItem
.
cameraTriggerInTurnAround
.
rawValue
=
false
QGCOptionsComboBox
{
Layout.fillWidth
:
true
model
:
[
{
text
:
qsTr
(
"
Hover and capture image
"
),
fact
:
missionItem
.
hoverAndCapture
,
enabled
:
!
missionItem
.
followTerrain
,
visible
:
missionItem
.
hoverAndCaptureAllowed
},
{
text
:
qsTr
(
"
Refly at 90 deg offset
"
),
fact
:
missionItem
.
refly90Degrees
,
enabled
:
!
missionItem
.
followTerrain
,
visible
:
true
},
{
text
:
qsTr
(
"
Images in turnarounds
"
),
fact
:
missionItem
.
cameraTriggerInTurnAround
,
enabled
:
missionItem
.
hoverAndCaptureAllowed
?
!
missionItem
.
hoverAndCapture
.
rawValue
:
true
,
visible
:
true
},
{
text
:
qsTr
(
"
Fly alternate transects
"
),
fact
:
missionItem
.
flyAlternateTransects
,
enabled
:
true
,
visible
:
_vehicle
?
(
_vehicle
.
fixedWing
||
_vehicle
.
vtol
)
:
false
},
{
text
:
qsTr
(
"
Relative altitude
"
),
enabled
:
missionItem
.
cameraCalc
.
isManualCamera
&&
!
missionItem
.
followTerrain
,
visible
:
QGroundControl
.
corePlugin
.
options
.
showMissionAbsoluteAltitude
||
(
!
missionItem
.
cameraCalc
.
distanceToSurfaceRelative
&&
!
missionItem
.
followTerrain
),
checked
:
missionItem
.
cameraCalc
.
distanceToSurfaceRelative
}
}
}
FactCheckBox
{
text
:
qsTr
(
"
Refly at 90 deg offset
"
)
fact
:
missionItem
.
refly90Degrees
enabled
:
!
missionItem
.
followTerrain
}
FactCheckBox
{
text
:
qsTr
(
"
Images in turnarounds
"
)
fact
:
missionItem
.
cameraTriggerInTurnAround
enabled
:
missionItem
.
hoverAndCaptureAllowed
?
!
missionItem
.
hoverAndCapture
.
rawValue
:
true
}
]
FactCheckBox
{
text
:
qsTr
(
"
Fly alternate transects
"
)
fact
:
missionItem
.
flyAlternateTransects
visible
:
_vehicle
?
(
_vehicle
.
fixedWing
||
_vehicle
.
vtol
)
:
false
}
QGCCheckBox
{
id
:
relAlt
Layout.alignment
:
Qt
.
AlignLeft
text
:
qsTr
(
"
Relative altitude
"
)
checked
:
missionItem
.
cameraCalc
.
distanceToSurfaceRelative
enabled
:
missionItem
.
cameraCalc
.
isManualCamera
&&
!
missionItem
.
followTerrain
visible
:
QGroundControl
.
corePlugin
.
options
.
showMissionAbsoluteAltitude
||
(
!
missionItem
.
cameraCalc
.
distanceToSurfaceRelative
&&
!
missionItem
.
followTerrain
)
onClicked
:
missionItem
.
cameraCalc
.
distanceToSurfaceRelative
=
checked
Connections
{
target
:
missionItem
.
cameraCalc
onDistanceToSurfaceRelativeChanged
:
relAlt
.
checked
=
missionItem
.
cameraCalc
.
distanceToSurfaceRelative
onItemClicked
:
{
if
(
index
==
4
)
{
missionItem
.
cameraCalc
.
distanceToSurfaceRelative
=
!
missionItem
.
cameraCalc
.
distanceToSurfaceRelative
console
.
log
(
missionItem
.
cameraCalc
.
distanceToSurfaceRelative
)
}
}
}
}
...
...
src/QmlControls/QGCOptionsComboBox.qml
0 → 100644
View file @
5bbb313d
/****************************************************************************
*
* (c) 2009-2019 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.
*
* @file
* @author Gus Grubba <gus@auterion.com>
*/
import
QtQuick
2.11
import
QtQuick
.
Controls
2.4
import
QtQuick
.
Layouts
1.11
import
QGroundControl
.
Controls
1.0
import
QGroundControl
.
Palette
1.0
import
QGroundControl
.
ScreenTools
1.0
ComboBox
{
id
:
control
padding
:
ScreenTools
.
comboBoxPadding
property
string
labelText
:
qsTr
(
"
Options
"
)
signal
itemClicked
(
int
index
)
property
var
_controlQGCPal
:
QGCPalette
{
colorGroupEnabled
:
enabled
}
property
bool
_flashChecked
property
string
_flashText
property
bool
_showFlash
:
false
background
:
Rectangle
{
implicitWidth
:
ScreenTools
.
implicitComboBoxWidth
implicitHeight
:
ScreenTools
.
implicitComboBoxHeight
color
:
_controlQGCPal
.
window
border.width
:
enabled
?
1
:
0
border.color
:
"
#999
"
}
/*! Adding the Combobox list item to the theme. */
delegate
:
ItemDelegate
{
implicitHeight
:
modelData
.
visible
?
(
Math
.
max
(
background
?
background
.
implicitHeight
:
0
,
Math
.
max
(
contentItem
.
implicitHeight
,
indicator
?
indicator
.
implicitHeight
:
0
)
+
topPadding
+
bottomPadding
))
:
0
width
:
control
.
width
checkable
:
true
enabled
:
modelData
.
enabled
text
:
modelData
.
text
property
var
_checkedValue
:
1
property
var
_uncheckedValue
:
0
property
var
_itemQGCPal
:
QGCPalette
{
colorGroupEnabled
:
enabled
}
property
var
_control
:
control
Binding
on
checked
{
value
:
modelData
.
fact
?
(
modelData
.
fact
.
typeIsBool
?
(
modelData
.
fact
.
value
===
false
?
Qt
.
Unchecked
:
Qt
.
Checked
)
:
(
modelData
.
fact
.
value
===
0
?
Qt
.
Unchecked
:
Qt
.
Checked
))
:
modelData
.
checked
}
contentItem
:
RowLayout
{
spacing
:
ScreenTools
.
defaultFontPixelWidth
Rectangle
{
height
:
ScreenTools
.
defaultFontPixelHeight
width
:
height
border.color
:
_itemQGCPal
.
buttonText
border.width
:
1
color
:
_itemQGCPal
.
button
QGCColoredImage
{
anchors.centerIn
:
parent
width
:
parent
.
width
*
0.75
height
:
width
source
:
"
/qmlimages/checkbox-check.svg
"
color
:
_itemQGCPal
.
buttonText
mipmap
:
true
fillMode
:
Image
.
PreserveAspectFit
sourceSize.height
:
height
visible
:
checked
}
}
Text
{
text
:
modelData
.
text
color
:
_itemQGCPal
.
buttonText
}
}
background
:
Rectangle
{
color
:
_controlQGCPal
.
button
}
onClicked
:
{
if
(
modelData
.
fact
)
{
modelData
.
fact
.
value
=
(
checked
?
_checkedValue
:
_uncheckedValue
)
}
else
{
itemClicked
(
index
)
}
_control
.
_flashChecked
=
checked
_control
.
_flashText
=
text
_control
.
_showFlash
=
true
_control
.
popup
.
close
()
}
}
/*! This defines the label of the button. */
contentItem
:
Item
{
implicitWidth
:
_showFlash
?
flash
.
implicitWidth
:
text
.
implicitWidth
implicitHeight
:
_showFlash
?
flash
.
implicitHeight
:
text
.
implicitHeight
QGCLabel
{
id
:
text
anchors.verticalCenter
:
parent
.
verticalCenter
text
:
labelText
color
:
_controlQGCPal
.
text
visible
:
!
_showFlash
}
RowLayout
{
id
:
flash
anchors.verticalCenter
:
parent
.
verticalCenter
spacing
:
ScreenTools
.
defaultFontPixelWidth
visible
:
_showFlash
onVisibleChanged
:
{
if
(
visible
)
{
flashTimer
.
restart
()
}
}
Timer
{
id
:
flashTimer
interval
:
1500
repeat
:
false
running
:
false
onTriggered
:
_showFlash
=
false
}
Rectangle
{
height
:
ScreenTools
.
defaultFontPixelHeight
width
:
height
border.color
:
_controlQGCPal
.
buttonText
border.width
:
1
color
:
_controlQGCPal
.
window
QGCColoredImage
{
anchors.centerIn
:
parent
width
:
parent
.
width
*
0.75
height
:
width
source
:
"
/qmlimages/checkbox-check.svg
"
color
:
_controlQGCPal
.
text
mipmap
:
true
fillMode
:
Image
.
PreserveAspectFit
sourceSize.height
:
height
visible
:
_flashChecked
}
}
Text
{
text
:
_flashText
color
:
_controlQGCPal
.
buttonText
}
}
}
}
src/QmlControls/QGroundControl/Controls/qmldir
View file @
5bbb313d
...
...
@@ -58,6 +58,7 @@ QGCMenuItem 1.0 QGCMenuItem.qml
QGCMenuSeparator 1.0 QGCMenuSeparator.qml
QGCMouseArea 1.0 QGCMouseArea.qml
QGCMovableItem 1.0 QGCMovableItem.qml
QGCOptionsComboBox 1.0 QGCOptionsComboBox.qml
QGCPipable 1.0 QGCPipable.qml
QGCRadioButton 1.0 QGCRadioButton.qml
QGCSlider 1.0 QGCSlider.qml
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment