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)