Commit e627805a authored by DonLakeFlyer's avatar DonLakeFlyer

Add support for QGCOptions::waypointsOnlyMode

Also added insert pattern support to hamburger
parent 7bf0dc2d
......@@ -2,7 +2,9 @@ import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.4
import QtQuick.Dialogs 1.2
import QtQml 2.2
import QGroundControl 1.0
import QGroundControl.ScreenTools 1.0
import QGroundControl.Vehicle 1.0
import QGroundControl.Controls 1.0
......@@ -24,7 +26,8 @@ Rectangle {
signal clicked
signal remove
signal insert
signal insertWaypoint
signal insertComplexItem(string complexItemName)
property bool _currentItem: missionItem.isCurrentItem
property color _outerTextColor: _currentItem ? qgcPal.primaryButtonText : qgcPal.text
......@@ -35,6 +38,7 @@ Rectangle {
readonly property real _margin: ScreenTools.defaultFontPixelWidth / 2
readonly property real _radius: ScreenTools.defaultFontPixelWidth / 2
readonly property real _hamburgerSize: commandPicker.height * 0.75
readonly property bool _waypointsOnlyMode: QGroundControl.corePlugin.options.missionWaypointsOnly
QGCPalette {
id: qgcPal
......@@ -72,13 +76,13 @@ Rectangle {
QGCMouseArea {
fillItem: hamburger
visible: hamburger.visible
onClicked: hamburgerMenu.popup()
onClicked: _waypointsOnlyMode ? waypointsOnlyMenu.popup() : normalMenu.popup()
Menu {
id: hamburgerMenu
id: normalMenu
MenuItem {
text: qsTr("Insert")
text: qsTr("Insert waypoint")
onTriggered: insert()
}
......@@ -87,8 +91,25 @@ Rectangle {
onTriggered: remove()
}
Menu {
id: normalPatternMenu
title: qsTr("Insert pattern")
Instantiator {
model: missionController.complexMissionItemNames
onObjectAdded: normalPatternMenu.insertItem(index, object)
onObjectRemoved: normalPatternMenu.removeItem(object)
MenuItem {
text: modelData
onTriggered: insertComplexItem(modelData)
}
}
}
MenuItem {
text: "Change command..."
text: qsTr("Change command...")
onTriggered: commandPicker.clicked()
}
......@@ -116,6 +137,38 @@ Rectangle {
}
}
}
Menu {
id: waypointsOnlyMenu
MenuItem {
text: qsTr("Insert waypoint")
onTriggered: insertWaypoint()
}
MenuItem {
text: qsTr("Delete")
onTriggered: remove()
}
Menu {
id: waypointsOnlyPatternMenu
title: qsTr("Insert pattern")
Instantiator {
model: missionController.complexMissionItemNames
onObjectAdded: waypointsOnlyPatternMenu.insertItem(index, object)
onObjectRemoved: waypointsOnlyPatternMenu.removeItem(object)
MenuItem {
text: modelData
onTriggered: insertComplexItem(modelData)
}
}
}
}
}
QGCButton {
......@@ -125,7 +178,7 @@ Rectangle {
anchors.rightMargin: ScreenTools.defaultFontPixelWidth
anchors.left: label.right
anchors.top: parent.top
visible: missionItem.isCurrentItem && !missionItem.rawEdit && missionItem.isSimpleItem
visible: !commandLabel.visible
text: missionItem.commandName
Component {
......@@ -140,8 +193,9 @@ Rectangle {
}
QGCLabel {
id: commandLabel
anchors.fill: commandPicker
visible: !missionItem.isCurrentItem || !missionItem.isSimpleItem
visible: !missionItem.isCurrentItem || !missionItem.isSimpleItem || _waypointsOnlyMode
verticalAlignment: Text.AlignVCenter
text: missionItem.commandName
color: _outerTextColor
......
......@@ -70,7 +70,11 @@ QGCView {
coordinate.latitude = coordinate.latitude.toFixed(_decimalPlaces)
coordinate.longitude = coordinate.longitude.toFixed(_decimalPlaces)
coordinate.altitude = coordinate.altitude.toFixed(_decimalPlaces)
var sequenceNumber = missionController.insertComplexMissionItem(complexItemName, coordinate, missionController.visualItems.count)
insertComplexItem(complexItemName, coordinate, missionController.visualItems.count)
}
function insertComplexMissionItem(complexItemName, coordinate, index) {
var sequenceNumber = missionController.insertComplexMissionItem(complexItemName, coordinate, index)
setCurrentItem(sequenceNumber)
}
......@@ -747,10 +751,12 @@ QGCView {
if (removeIndex >= missionController.visualItems.count) {
removeIndex--
}
setCurrentItem(removeIndex)
_currentMissionIndex = -1
rootQgcView.setCurrentItem(removeIndex)
}
onInsert: insertSimpleMissionItem(editorMap.center, index)
onInsertWaypoint: insertSimpleMissionItem(editorMap.center, index)
onInsertComplexItem: insertComplexMissionItem(complexItemName, editorMap.center, index)
}
} // QGCListView
} // Item - Mission Item editor
......
......@@ -40,6 +40,7 @@ public:
Q_PROPERTY(QString firmwareUpgradeSingleURL READ firmwareUpgradeSingleURL CONSTANT)
Q_PROPERTY(bool guidedBarShowEmergencyStop READ guidedBarShowEmergencyStop NOTIFY guidedBarShowEmergencyStopChanged)
Q_PROPERTY(bool guidedBarShowOrbit READ guidedBarShowOrbit NOTIFY guidedBarShowOrbitChanged)
Q_PROPERTY(bool missionWaypointsOnly READ missionWaypointsOnly NOTIFY missionWaypointsOnlyChanged)
/// Should QGC hide its settings menu and colapse it into one single menu (Settings and Vehicle Setup)?
/// @return true if QGC should consolidate both menus into one.
......@@ -73,6 +74,8 @@ public:
virtual bool guidedBarShowEmergencyStop () const { return true; }
virtual bool guidedBarShowOrbit () const { return true; }
virtual bool missionWaypointsOnly () const { return true; } ///< true: Only allow waypoints and complex items in Plan
/// If returned QString in non-empty it means that firmware upgrade will run in a mode which only
/// supports downloading a single firmware file from the URL. It also supports custom install through
/// the Advanced options.
......@@ -87,6 +90,7 @@ signals:
void showFirmwareUpgradeChanged (bool show);
void guidedBarShowEmergencyStopChanged (bool show);
void guidedBarShowOrbitChanged (bool show);
void missionWaypointsOnlyChanged (bool missionWaypointsOnly);
private:
CustomInstrumentWidget* _defaultInstrumentWidget;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment