diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc
index 7abcf7d1c5ff284b543ed784cbfd556fd33bc26b..f765d57604b63ca93b058c98644ee951e75982a4 100644
--- a/qgroundcontrol.qrc
+++ b/qgroundcontrol.qrc
@@ -111,6 +111,9 @@
src/QmlControls/QGCMapLabel.qml
src/MissionManager/QGCMapPolygonVisuals.qml
src/MissionManager/QGCMapPolylineVisuals.qml
+ src/QmlControls/QGCMenu.qml
+ src/QmlControls/QGCMenuItem.qml
+ src/QmlControls/QGCMenuSeparator.qml
src/QmlControls/QGCMouseArea.qml
src/QmlControls/QGCMovableItem.qml
src/QmlControls/QGCPipable.qml
diff --git a/src/FlightDisplay/FlightDisplayViewMap.qml b/src/FlightDisplay/FlightDisplayViewMap.qml
index 7518731a58d96243664bf0e82d63c0209b63a2a4..77e5f548988906b0af30e25ea49d8dd711b29635 100644
--- a/src/FlightDisplay/FlightDisplayViewMap.qml
+++ b/src/FlightDisplay/FlightDisplayViewMap.qml
@@ -415,12 +415,12 @@ FlightMap {
MouseArea {
anchors.fill: parent
- Menu {
+ QGCMenu {
id: clickMenu
property var coord
- MenuItem {
+ QGCMenuItem {
text: qsTr("Go to location")
visible: guidedActionsController.showGotoLocation
@@ -431,7 +431,7 @@ FlightMap {
}
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Orbit at location")
visible: guidedActionsController.showOrbit
diff --git a/src/MissionManager/QGCMapPolygonVisuals.qml b/src/MissionManager/QGCMapPolygonVisuals.qml
index e0ffa378a4d9bb8714c060e8fff0ac1cf9832263..6355eec98db4ad6cbf486b4140c3b6f5da8a308b 100644
--- a/src/MissionManager/QGCMapPolygonVisuals.qml
+++ b/src/MissionManager/QGCMapPolygonVisuals.qml
@@ -186,7 +186,7 @@ Item {
}
}
- Menu {
+ QGCMenu {
id: menu
property int _editingVertexIndex: -1
@@ -201,7 +201,7 @@ Item {
menu.popup()
}
- MenuItem {
+ QGCMenuItem {
id: removeVertexItem
visible: !_circle
text: qsTr("Remove vertex")
@@ -212,39 +212,39 @@ Item {
}
}
- MenuSeparator {
+ QGCMenuSeparator {
visible: removeVertexItem.visible
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Circle" )
onTriggered: resetCircle()
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Polygon")
onTriggered: resetPolygon()
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Set radius..." )
visible: _circle
onTriggered: _editCircleRadius = true
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Edit position..." )
visible: _circle
onTriggered: mainWindow.showComponentDialog(editCenterPositionDialog, qsTr("Edit Center Position"), mainWindow.showDialogDefaultWidth, StandardButton.Close)
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Edit position..." )
visible: !_circle && menu._editingVertexIndex >= 0
onTriggered: mainWindow.showComponentDialog(editVertexPositionDialog, qsTr("Edit Vertex Position"), mainWindow.showDialogDefaultWidth, StandardButton.Close)
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Load KML/SHP...")
onTriggered: kmlOrSHPLoadDialog.openForLoad()
}
diff --git a/src/MissionManager/QGCMapPolylineVisuals.qml b/src/MissionManager/QGCMapPolylineVisuals.qml
index 57381b8d143d73aaab93a562a50eb5610f5a41ea..20e1fc7778b74f9ec9ea2c2c54d827a561a81617 100644
--- a/src/MissionManager/QGCMapPolylineVisuals.qml
+++ b/src/MissionManager/QGCMapPolylineVisuals.qml
@@ -126,7 +126,7 @@ Item {
}
}
- Menu {
+ QGCMenu {
id: menu
property int _removeVertexIndex
@@ -136,22 +136,22 @@ Item {
menu.popup()
}
- MenuItem {
+ QGCMenuItem {
id: removeVertexItem
text: qsTr("Remove vertex" )
onTriggered: mapPolyline.removeVertex(menu._removeVertexIndex)
}
- MenuSeparator {
+ QGCMenuSeparator {
visible: removeVertexItem.visible
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Edit position..." )
onTriggered: mainWindow.showComponentDialog(editPositionDialog, qsTr("Edit Position"), mainWindow.showDialogDefaultWidth, StandardButton.Cancel)
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Load KML...")
onTriggered: kmlLoadDialog.openForLoad()
}
diff --git a/src/PlanView/MissionItemEditor.qml b/src/PlanView/MissionItemEditor.qml
index 3685121eb874a152530e1a9b809437419ae74eab..8dd718d4a0102c912d8d607937f358f514d387d2 100644
--- a/src/PlanView/MissionItemEditor.qml
+++ b/src/PlanView/MissionItemEditor.qml
@@ -100,15 +100,15 @@ Rectangle {
hamburgerMenu.popup()
}
- Menu {
+ QGCMenu {
id: hamburgerMenu
- MenuItem {
+ QGCMenuItem {
text: qsTr("Insert waypoint")
onTriggered: insertWaypoint()
}
- Menu {
+ QGCMenu {
id: patternMenu
title: qsTr("Insert pattern")
visible: !_singleComplexItem
@@ -119,41 +119,41 @@ Rectangle {
onObjectAdded: patternMenu.insertItem(index, object)
onObjectRemoved: patternMenu.removeItem(object)
- MenuItem {
+ QGCMenuItem {
text: modelData
onTriggered: insertComplexItem(modelData)
}
}
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Insert ") + _missionController.complexMissionItemNames[0]
visible: _singleComplexItem
onTriggered: insertComplexItem(_missionController.complexMissionItemNames[0])
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Delete")
onTriggered: remove()
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Change command...")
onTriggered: commandPicker.clicked()
visible: missionItem.isSimpleItem && !_waypointsOnlyMode
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Edit position...")
visible: missionItem.specifiesCoordinate
onTriggered: mainWindow.showComponentDialog(editPositionDialog, qsTr("Edit Position"), mainWindow.showDialogDefaultWidth, StandardButton.Close)
}
- MenuSeparator {
+ QGCMenuSeparator {
visible: missionItem.isSimpleItem && !_waypointsOnlyMode
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Show all values")
checkable: true
checked: missionItem.isSimpleItem ? missionItem.rawEdit : false
diff --git a/src/PlanView/PlanView.qml b/src/PlanView/PlanView.qml
index dbc8d402d0bfa46f6c18abb368a27ec3b47b8ae0..70c66ef3528fb228364666b5f2ad5f682a14eb65 100644
--- a/src/PlanView/PlanView.qml
+++ b/src/PlanView/PlanView.qml
@@ -180,7 +180,7 @@ Item {
id: _planMasterController
Component.onCompleted: {
- start(false /* flyView */)
+ _planMasterController.start(false /* flyView */)
_missionController.setCurrentPlanViewIndex(0, true)
mainWindow.planMasterControllerPlan = _planMasterController
}
diff --git a/src/PlanView/RallyPointItemEditor.qml b/src/PlanView/RallyPointItemEditor.qml
index 2aab07c5353f30c387e7b4a3fbe9027680383498..5d68bc5e287533b931ee9d139b78a1eefccc9446 100644
--- a/src/PlanView/RallyPointItemEditor.qml
+++ b/src/PlanView/RallyPointItemEditor.qml
@@ -65,10 +65,10 @@ Rectangle {
anchors.fill: parent
onClicked: hamburgerMenu.popup()
- Menu {
+ QGCMenu {
id: hamburgerMenu
- MenuItem {
+ QGCMenuItem {
text: qsTr("Delete")
onTriggered: controller.removePoint(rallyPoint)
}
diff --git a/src/PlanView/SimpleItemEditor.qml b/src/PlanView/SimpleItemEditor.qml
index 070fd4d4b13fd6c0352c54f35697598364afb160..9ed35707a6f6493b959bd7b2e71001f4aeab560f 100644
--- a/src/PlanView/SimpleItemEditor.qml
+++ b/src/PlanView/SimpleItemEditor.qml
@@ -137,17 +137,17 @@ Rectangle {
onClicked: altHamburgerMenu.popup()
}
- Menu {
+ QGCMenu {
id: altHamburgerMenu
- MenuItem {
+ QGCMenuItem {
text: qsTr("Altitude Relative To Home")
checkable: true
checked: missionItem.altitudeMode === QGroundControl.AltitudeModeRelative
onTriggered: missionItem.altitudeMode = QGroundControl.AltitudeModeRelative
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Altitude Above Mean Sea Level")
checkable: true
checked: missionItem.altitudeMode === QGroundControl.AltitudeModeAbsolute
@@ -155,7 +155,7 @@ Rectangle {
onTriggered: missionItem.altitudeMode = QGroundControl.AltitudeModeAbsolute
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Altitude Above Terrain")
checkable: true
checked: missionItem.altitudeMode === QGroundControl.AltitudeModeAboveTerrain
@@ -163,7 +163,7 @@ Rectangle {
visible: missionItem.specifiesCoordinate
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Terrain Frame")
checkable: true
checked: missionItem.altitudeMode === QGroundControl.AltitudeModeTerrainFrame
diff --git a/src/QmlControls/FlightModeMenu.qml b/src/QmlControls/FlightModeMenu.qml
index a1d3635336e47dce54dfc225ac33a8253b39b895..b088e4724dc648762576af0df2e9aac103919fa6 100644
--- a/src/QmlControls/FlightModeMenu.qml
+++ b/src/QmlControls/FlightModeMenu.qml
@@ -21,14 +21,14 @@ QGCLabel {
property var currentVehicle: QGroundControl.multiVehicleManager.activeVehicle
- Menu {
+ QGCMenu {
id: flightModesMenu
}
Component {
id: flightModeMenuItemComponent
- MenuItem {
+ QGCMenuItem {
onTriggered: currentVehicle.flightMode = text
}
}
diff --git a/src/QmlControls/ParameterEditor.qml b/src/QmlControls/ParameterEditor.qml
index 68ab12633f06090c5f4e2cd4164f647fb438c325..dfeffa60f48c578e80d7155bfac35d42796d20fd 100644
--- a/src/QmlControls/ParameterEditor.qml
+++ b/src/QmlControls/ParameterEditor.qml
@@ -101,24 +101,24 @@ Item {
onClicked: toolsMenu.popup()
}
- Menu {
+ QGCMenu {
id: toolsMenu
- MenuItem {
+ QGCMenuItem {
text: qsTr("Refresh")
onTriggered: controller.refresh()
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Reset all to firmware's defaults")
visible: !activeVehicle.apmFirmware
onTriggered: mainWindow.showComponentDialog(resetToDefaultConfirmComponent, qsTr("Reset All"), mainWindow.showDialogDefaultWidth, StandardButton.Cancel | StandardButton.Reset)
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Reset to vehicle's configuration defaults")
visible: !activeVehicle.apmFirmware
onTriggered: mainWindow.showComponentDialog(resetToVehicleConfigurationConfirmComponent, qsTr("Reset All"), mainWindow.showDialogDefaultWidth, StandardButton.Cancel | StandardButton.Reset)
}
- MenuSeparator { }
- MenuItem {
+ QGCMenuSeparator { }
+ QGCMenuItem {
text: qsTr("Load from file...")
onTriggered: {
fileDialog.title = qsTr("Load Parameters")
@@ -126,7 +126,7 @@ Item {
fileDialog.openForLoad()
}
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Save to file...")
onTriggered: {
fileDialog.title = qsTr("Save Parameters")
@@ -134,14 +134,14 @@ Item {
fileDialog.openForSave()
}
}
- MenuSeparator { visible: _showRCToParam }
- MenuItem {
+ QGCMenuSeparator { visible: _showRCToParam }
+ QGCMenuItem {
text: qsTr("Clear RC to Param")
onTriggered: controller.clearRCToParam()
visible: _showRCToParam
}
- MenuSeparator { }
- MenuItem {
+ QGCMenuSeparator { }
+ QGCMenuItem {
text: qsTr("Reboot Vehicle")
onTriggered: mainWindow.showComponentDialog(rebootVehicleConfirmComponent, qsTr("Reboot Vehicle"), mainWindow.showDialogDefaultWidth, StandardButton.Cancel | StandardButton.Ok)
}
diff --git a/src/QmlControls/QGCComboBox.qml b/src/QmlControls/QGCComboBox.qml
index 05c5f4fb7a10bd58cfcd603ab4780b0a39d4835f..e9bc748b8139a03659b15129078fca5ba1153715 100644
--- a/src/QmlControls/QGCComboBox.qml
+++ b/src/QmlControls/QGCComboBox.qml
@@ -104,7 +104,7 @@ Button {
ExclusiveGroup { id: eg }
- Menu {
+ QGCMenu {
id: popup
__minimumWidth: combo.width
__visualItem: combo
@@ -233,7 +233,7 @@ Button {
onObjectRemoved: popup.removeItem(object)
- MenuItem {
+ QGCMenuItem {
text: popup.textRole === '' ? modelData : ((popup._modelIsArray ? modelData[popup.textRole] : model[popup.textRole]) || '')
checked: index == currentIndex
checkable: true
diff --git a/src/QmlControls/QGCFileDialog.qml b/src/QmlControls/QGCFileDialog.qml
index 0a0723f71adc5d8da90b528d3348e5a60cacb335..fedb66e15db2108296d13f3d8602b48bfb9591cc 100644
--- a/src/QmlControls/QGCFileDialog.qml
+++ b/src/QmlControls/QGCFileDialog.qml
@@ -126,14 +126,14 @@ Item {
hamburgerMenu.popup()
}
- Menu {
+ QGCMenu {
id: hamburgerMenu
property string fileToDelete
onAboutToHide: fileButton.highlight = false
- MenuItem {
+ QGCMenuItem {
text: qsTr("Delete")
onTriggered: {
controller.deleteFile(hamburgerMenu.fileToDelete)
@@ -239,14 +239,14 @@ Item {
hamburgerMenu.popup()
}
- Menu {
+ QGCMenu {
id: hamburgerMenu
property string fileToDelete
onAboutToHide: fileButton.highlight = false
- MenuItem {
+ QGCMenuItem {
text: qsTr("Delete")
onTriggered: {
controller.deleteFile(hamburgerMenu.fileToDelete)
diff --git a/src/QmlControls/QGCMenu.qml b/src/QmlControls/QGCMenu.qml
new file mode 100644
index 0000000000000000000000000000000000000000..546effbc452965950f888369eacb74973a38fe92
--- /dev/null
+++ b/src/QmlControls/QGCMenu.qml
@@ -0,0 +1,8 @@
+// QtQuick.Control 1.x Menu
+
+import QtQuick 2.6
+import QtQuick.Controls 1.4
+
+Menu {
+
+}
diff --git a/src/QmlControls/QGCMenuItem.qml b/src/QmlControls/QGCMenuItem.qml
new file mode 100644
index 0000000000000000000000000000000000000000..2415b9085b1aba511aeeaddd2fb11d9ad9cf474b
--- /dev/null
+++ b/src/QmlControls/QGCMenuItem.qml
@@ -0,0 +1,8 @@
+// QtQuick.Control 1.x Menu
+
+import QtQuick 2.6
+import QtQuick.Controls 1.4
+
+MenuItem {
+
+}
diff --git a/src/QmlControls/QGCMenuSeparator.qml b/src/QmlControls/QGCMenuSeparator.qml
new file mode 100644
index 0000000000000000000000000000000000000000..a8c872375e4526ad807ae5da367e094c2631aaa1
--- /dev/null
+++ b/src/QmlControls/QGCMenuSeparator.qml
@@ -0,0 +1,8 @@
+// QtQuick.Control 1.x Menu
+
+import QtQuick 2.6
+import QtQuick.Controls 1.4
+
+MenuSeparator {
+
+}
diff --git a/src/QmlControls/QGroundControl/Controls/qmldir b/src/QmlControls/QGroundControl/Controls/qmldir
index 6a7e1b25174ae5b9193ea274be4644ab28eaccfa..6fe4e3ce1aee6d8ec486152c92f9fb1c0b4af904 100644
--- a/src/QmlControls/QGroundControl/Controls/qmldir
+++ b/src/QmlControls/QGroundControl/Controls/qmldir
@@ -50,6 +50,9 @@ QGCMapCircleVisuals 1.0 QGCMapCircleVisuals.qml
QGCMapLabel 1.0 QGCMapLabel.qml
QGCMapPolygonVisuals 1.0 QGCMapPolygonVisuals.qml
QGCMapPolylineVisuals 1.0 QGCMapPolylineVisuals.qml
+QGCMenu 1.0 QGCMenu.qml
+QGCMenuItem 1.0 QGCMenuItem.qml
+QGCMenuSeparator 1.0 QGCMenuSeparator.qml
QGCMouseArea 1.0 QGCMouseArea.qml
QGCMovableItem 1.0 QGCMovableItem.qml
QGCPipable 1.0 QGCPipable.qml
diff --git a/src/QmlControls/QmlTest.qml b/src/QmlControls/QmlTest.qml
index c075f33b271203c9cfe13d916c228c496cd2fe41..2d4419d09c079a0bf932be9856aa41461e245c21 100644
--- a/src/QmlControls/QmlTest.qml
+++ b/src/QmlControls/QmlTest.qml
@@ -491,13 +491,13 @@ Rectangle {
}
Menu {
id: buttonMenu
- MenuItem {
+ QGCMenuItem {
text: qsTr("Item 1")
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Item 2")
}
- MenuItem {
+ QGCMenuItem {
text: qsTr("Item 3")
}
}
diff --git a/src/ui/toolbar/LinkIndicator.qml b/src/ui/toolbar/LinkIndicator.qml
index 6c739fdba34a6b64795f1609c7bbb7e57b35b2b6..01144f56641e7ba725aa889348ccb6b2f8038e44 100644
--- a/src/ui/toolbar/LinkIndicator.qml
+++ b/src/ui/toolbar/LinkIndicator.qml
@@ -34,12 +34,12 @@ Item {
font.pointSize: ScreenTools.mediumFontPointSize
color: qgcPal.buttonText
anchors.verticalCenter: parent.verticalCenter
- Menu {
+ QGCMenu {
id: linkSelectionMenu
}
Component {
id: linkSelectionMenuItemComponent
- MenuItem {
+ QGCMenuItem {
onTriggered: activeVehicle.priorityLinkName = text
}
}
diff --git a/src/ui/toolbar/ModeIndicator.qml b/src/ui/toolbar/ModeIndicator.qml
index 74f764190d8e081e039cfd425078570b18e522ed..720a994c46302529d48ae1c54addc0adb500c848 100644
--- a/src/ui/toolbar/ModeIndicator.qml
+++ b/src/ui/toolbar/ModeIndicator.qml
@@ -34,12 +34,12 @@ Item {
font.pointSize: ScreenTools.mediumFontPointSize
color: qgcPal.buttonText
anchors.verticalCenter: parent.verticalCenter
- Menu {
+ QGCMenu {
id: flightModesMenu
}
Component {
id: flightModeMenuItemComponent
- MenuItem {
+ QGCMenuItem {
onTriggered: activeVehicle.flightMode = text
}
}
diff --git a/src/ui/toolbar/MultiVehicleSelector.qml b/src/ui/toolbar/MultiVehicleSelector.qml
index 3360d597fdb9f5f327a9e1a32ee1c0581c8dc1d4..5937e9f62b9e8887ca10d57e8ccded0d6e9609de 100644
--- a/src/ui/toolbar/MultiVehicleSelector.qml
+++ b/src/ui/toolbar/MultiVehicleSelector.qml
@@ -38,12 +38,12 @@ Item {
font.pointSize: ScreenTools.mediumFontPointSize
color: qgcPal.buttonText
anchors.verticalCenter: parent.verticalCenter
- Menu {
+ QGCMenu {
id: multiVehiclesMenu
}
Component {
id: multiVehicleMenuItemComponent
- MenuItem {
+ QGCMenuItem {
onTriggered: QGroundControl.multiVehicleManager.activeVehicle = vehicle
property int vehicleId: Number(text.split(" ")[1])
property var vehicle: QGroundControl.multiVehicleManager.getVehicleById(vehicleId)