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 ...@@ -2,7 +2,9 @@ import QtQuick 2.3
import QtQuick.Controls 1.2 import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.4 import QtQuick.Controls.Styles 1.4
import QtQuick.Dialogs 1.2 import QtQuick.Dialogs 1.2
import QtQml 2.2
import QGroundControl 1.0
import QGroundControl.ScreenTools 1.0 import QGroundControl.ScreenTools 1.0
import QGroundControl.Vehicle 1.0 import QGroundControl.Vehicle 1.0
import QGroundControl.Controls 1.0 import QGroundControl.Controls 1.0
...@@ -24,7 +26,8 @@ Rectangle { ...@@ -24,7 +26,8 @@ Rectangle {
signal clicked signal clicked
signal remove signal remove
signal insert signal insertWaypoint
signal insertComplexItem(string complexItemName)
property bool _currentItem: missionItem.isCurrentItem property bool _currentItem: missionItem.isCurrentItem
property color _outerTextColor: _currentItem ? qgcPal.primaryButtonText : qgcPal.text property color _outerTextColor: _currentItem ? qgcPal.primaryButtonText : qgcPal.text
...@@ -35,6 +38,7 @@ Rectangle { ...@@ -35,6 +38,7 @@ Rectangle {
readonly property real _margin: ScreenTools.defaultFontPixelWidth / 2 readonly property real _margin: ScreenTools.defaultFontPixelWidth / 2
readonly property real _radius: ScreenTools.defaultFontPixelWidth / 2 readonly property real _radius: ScreenTools.defaultFontPixelWidth / 2
readonly property real _hamburgerSize: commandPicker.height * 0.75 readonly property real _hamburgerSize: commandPicker.height * 0.75
readonly property bool _waypointsOnlyMode: QGroundControl.corePlugin.options.missionWaypointsOnly
QGCPalette { QGCPalette {
id: qgcPal id: qgcPal
...@@ -72,13 +76,13 @@ Rectangle { ...@@ -72,13 +76,13 @@ Rectangle {
QGCMouseArea { QGCMouseArea {
fillItem: hamburger fillItem: hamburger
visible: hamburger.visible visible: hamburger.visible
onClicked: hamburgerMenu.popup() onClicked: _waypointsOnlyMode ? waypointsOnlyMenu.popup() : normalMenu.popup()
Menu { Menu {
id: hamburgerMenu id: normalMenu
MenuItem { MenuItem {
text: qsTr("Insert") text: qsTr("Insert waypoint")
onTriggered: insert() onTriggered: insert()
} }
...@@ -87,8 +91,25 @@ Rectangle { ...@@ -87,8 +91,25 @@ Rectangle {
onTriggered: remove() 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 { MenuItem {
text: "Change command..." text: qsTr("Change command...")
onTriggered: commandPicker.clicked() onTriggered: commandPicker.clicked()
} }
...@@ -116,6 +137,38 @@ Rectangle { ...@@ -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 { QGCButton {
...@@ -125,7 +178,7 @@ Rectangle { ...@@ -125,7 +178,7 @@ Rectangle {
anchors.rightMargin: ScreenTools.defaultFontPixelWidth anchors.rightMargin: ScreenTools.defaultFontPixelWidth
anchors.left: label.right anchors.left: label.right
anchors.top: parent.top anchors.top: parent.top
visible: missionItem.isCurrentItem && !missionItem.rawEdit && missionItem.isSimpleItem visible: !commandLabel.visible
text: missionItem.commandName text: missionItem.commandName
Component { Component {
...@@ -140,8 +193,9 @@ Rectangle { ...@@ -140,8 +193,9 @@ Rectangle {
} }
QGCLabel { QGCLabel {
id: commandLabel
anchors.fill: commandPicker anchors.fill: commandPicker
visible: !missionItem.isCurrentItem || !missionItem.isSimpleItem visible: !missionItem.isCurrentItem || !missionItem.isSimpleItem || _waypointsOnlyMode
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
text: missionItem.commandName text: missionItem.commandName
color: _outerTextColor color: _outerTextColor
......
...@@ -70,7 +70,11 @@ QGCView { ...@@ -70,7 +70,11 @@ QGCView {
coordinate.latitude = coordinate.latitude.toFixed(_decimalPlaces) coordinate.latitude = coordinate.latitude.toFixed(_decimalPlaces)
coordinate.longitude = coordinate.longitude.toFixed(_decimalPlaces) coordinate.longitude = coordinate.longitude.toFixed(_decimalPlaces)
coordinate.altitude = coordinate.altitude.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) setCurrentItem(sequenceNumber)
} }
...@@ -747,10 +751,12 @@ QGCView { ...@@ -747,10 +751,12 @@ QGCView {
if (removeIndex >= missionController.visualItems.count) { if (removeIndex >= missionController.visualItems.count) {
removeIndex-- 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 } // QGCListView
} // Item - Mission Item editor } // Item - Mission Item editor
......
...@@ -40,6 +40,7 @@ public: ...@@ -40,6 +40,7 @@ public:
Q_PROPERTY(QString firmwareUpgradeSingleURL READ firmwareUpgradeSingleURL CONSTANT) Q_PROPERTY(QString firmwareUpgradeSingleURL READ firmwareUpgradeSingleURL CONSTANT)
Q_PROPERTY(bool guidedBarShowEmergencyStop READ guidedBarShowEmergencyStop NOTIFY guidedBarShowEmergencyStopChanged) Q_PROPERTY(bool guidedBarShowEmergencyStop READ guidedBarShowEmergencyStop NOTIFY guidedBarShowEmergencyStopChanged)
Q_PROPERTY(bool guidedBarShowOrbit READ guidedBarShowOrbit NOTIFY guidedBarShowOrbitChanged) 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)? /// 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. /// @return true if QGC should consolidate both menus into one.
...@@ -73,6 +74,8 @@ public: ...@@ -73,6 +74,8 @@ public:
virtual bool guidedBarShowEmergencyStop () const { return true; } virtual bool guidedBarShowEmergencyStop () const { return true; }
virtual bool guidedBarShowOrbit () 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 /// 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 /// supports downloading a single firmware file from the URL. It also supports custom install through
/// the Advanced options. /// the Advanced options.
...@@ -87,6 +90,7 @@ signals: ...@@ -87,6 +90,7 @@ signals:
void showFirmwareUpgradeChanged (bool show); void showFirmwareUpgradeChanged (bool show);
void guidedBarShowEmergencyStopChanged (bool show); void guidedBarShowEmergencyStopChanged (bool show);
void guidedBarShowOrbitChanged (bool show); void guidedBarShowOrbitChanged (bool show);
void missionWaypointsOnlyChanged (bool missionWaypointsOnly);
private: private:
CustomInstrumentWidget* _defaultInstrumentWidget; 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