Commit 9967011d authored by dogmaphobic's avatar dogmaphobic

Adding a RoundButton element.

Also moving the Plan View tool bar buttons into a Row element.
parent 70a09b88
...@@ -114,6 +114,7 @@ ...@@ -114,6 +114,7 @@
<file alias="QGroundControl/Controls/MissionItemSummary.qml">src/QmlControls/MissionItemSummary.qml</file> <file alias="QGroundControl/Controls/MissionItemSummary.qml">src/QmlControls/MissionItemSummary.qml</file>
<file alias="QGroundControl/Controls/MissionItemEditor.qml">src/QmlControls/MissionItemEditor.qml</file> <file alias="QGroundControl/Controls/MissionItemEditor.qml">src/QmlControls/MissionItemEditor.qml</file>
<file alias="QGroundControl/Controls/DropButton.qml">src/QmlControls/DropButton.qml</file> <file alias="QGroundControl/Controls/DropButton.qml">src/QmlControls/DropButton.qml</file>
<file alias="QGroundControl/Controls/RoundButton.qml">src/QmlControls/RoundButton.qml</file>
<file alias="QGroundControl/Controls/QGCCanvas.qml">src/QmlControls/QGCCanvas.qml</file> <file alias="QGroundControl/Controls/QGCCanvas.qml">src/QmlControls/QGCCanvas.qml</file>
<!-- Vehicle Setup --> <!-- Vehicle Setup -->
......
...@@ -130,204 +130,182 @@ QGCView { ...@@ -130,204 +130,182 @@ QGCView {
} }
} }
Image { Row {
id: addMissionItemsButton spacing: ScreenTools.defaultFontPixelWidth
anchors.rightMargin: ScreenTools.defaultFontPixelHeight anchors.top: parent.top
anchors.right: homePositionManagerButton.left anchors.right: parent.right
anchors.top: homePositionManagerButton.top anchors.margins: ScreenTools.defaultFontPixelWidth
width: ScreenTools.defaultFontPixelHeight * 3
fillMode: Image.PreserveAspectFit RoundButton {
mipmap: true id: addMissionItemsButton
smooth: true buttonImage: "/qmlimages/MapAddMission.svg"
source: "/qmlimages/MapAddMission.svg" opacity: _addMissionItems ? 1.0 : 0.75
opacity: _addMissionItems ? 1.0 : 0.75
MouseArea {
anchors.fill: parent
onClicked: { onClicked: {
_addMissionItems = !_addMissionItems _addMissionItems = !_addMissionItems
_showHomePositionManager = false _showHomePositionManager = false
} }
} }
}
Image { RoundButton {
id: homePositionManagerButton id: homePositionManagerButton
anchors.rightMargin: ScreenTools.defaultFontPixelHeight buttonImage: "/qmlimages/MapHome.svg"
anchors.right: centerMapButton.left opacity: _showHomePositionManager ? 1.0 : 0.75
anchors.top: centerMapButton.top
width: ScreenTools.defaultFontPixelHeight * 3
fillMode: Image.PreserveAspectFit
mipmap: true
smooth: true
source: "/qmlimages/MapHome.svg"
opacity: _showHomePositionManager ? 1.0 : 0.75
MouseArea {
anchors.fill: parent
onClicked: { onClicked: {
_showHomePositionManager = !_showHomePositionManager _showHomePositionManager = !_showHomePositionManager
_addMissionItems = false _addMissionItems = false
} }
} }
}
DropButton { DropButton {
id: centerMapButton id: centerMapButton
anchors.rightMargin: ScreenTools.defaultFontPixelHeight dropDirection: dropDown
anchors.right: syncButton.left buttonImage: "/qmlimages/MapCenter.svg"
anchors.top: syncButton.top viewportMargins: ScreenTools.defaultFontPixelWidth / 2
dropDirection: dropDown exclusiveGroup: _dropButtonsExclusiveGroup
buttonImage: "/qmlimages/MapCenter.svg"
viewportMargins: ScreenTools.defaultFontPixelWidth / 2 dropDownComponent: Component {
exclusiveGroup: _dropButtonsExclusiveGroup Row {
spacing: ScreenTools.defaultFontPixelWidth
dropDownComponent: Component {
Row { QGCButton {
spacing: ScreenTools.defaultFontPixelWidth text: "Home"
QGCButton { onClicked: {
text: "Home" centerMapButton.hideDropDown()
editorMap.center = QtPositioning.coordinate(_homePositionCoordinate.latitude, _homePositionCoordinate.longitude)
onClicked: { _showHomePositionManager = true
centerMapButton.hideDropDown() }
editorMap.center = QtPositioning.coordinate(_homePositionCoordinate.latitude, _homePositionCoordinate.longitude)
_showHomePositionManager = true
} }
}
QGCButton { QGCButton {
text: "Vehicle" text: "Vehicle"
enabled: activeVehicle && activeVehicle.latitude != 0 && activeVehicle.longitude != 0 enabled: activeVehicle && activeVehicle.latitude != 0 && activeVehicle.longitude != 0
property var activeVehicle: multiVehicleManager.activeVehicle property var activeVehicle: multiVehicleManager.activeVehicle
onClicked: { onClicked: {
centerMapButton.hideDropDown() centerMapButton.hideDropDown()
editorMap.latitude = activeVehicle.latitude editorMap.latitude = activeVehicle.latitude
editorMap.longitude = activeVehicle.longitude editorMap.longitude = activeVehicle.longitude
}
} }
}
/* /*
This code will need to wait for Qml 5.5 support since Map.visibleRegion is only in Qt 5.5 This code will need to wait for Qml 5.5 support since Map.visibleRegion is only in Qt 5.5
QGCButton { QGCButton {
text: "All Items" text: "All Items"
onClicked: { onClicked: {
centerMapButton.hideDropDown() centerMapButton.hideDropDown()
// Begin with only the home position in the region // Begin with only the home position in the region
var region = QtPositioning.rectangle(QtPositioning.coordinate(_homePositionCoordinate.latitude, _homePositionCoordinate.longitude), var region = QtPositioning.rectangle(QtPositioning.coordinate(_homePositionCoordinate.latitude, _homePositionCoordinate.longitude),
QtPositioning.coordinate(_homePositionCoordinate.latitude, _homePositionCoordinate.longitude)) QtPositioning.coordinate(_homePositionCoordinate.latitude, _homePositionCoordinate.longitude))
// Now expand the region to include all mission items // Now expand the region to include all mission items
for (var i=0; i<_missionItems.count; i++) { for (var i=0; i<_missionItems.count; i++) {
var missionItem = _missionItems.get(i) var missionItem = _missionItems.get(i)
region.topLeft.latitude = Math.max(missionItem.coordinate.latitude, region.topLeft.latitude) region.topLeft.latitude = Math.max(missionItem.coordinate.latitude, region.topLeft.latitude)
region.topLeft.longitude = Math.min(missionItem.coordinate.longitude, region.topLeft.longitude) region.topLeft.longitude = Math.min(missionItem.coordinate.longitude, region.topLeft.longitude)
region.topRight.latitude = Math.max(missionItem.coordinate.latitude, region.topRight.latitude) region.topRight.latitude = Math.max(missionItem.coordinate.latitude, region.topRight.latitude)
region.topRight.longitude = Math.max(missionItem.coordinate.longitude, region.topRight.longitude) region.topRight.longitude = Math.max(missionItem.coordinate.longitude, region.topRight.longitude)
region.bottomLeft.latitude = Math.min(missionItem.coordinate.latitude, region.bottomLeft.latitude) region.bottomLeft.latitude = Math.min(missionItem.coordinate.latitude, region.bottomLeft.latitude)
region.bottomLeft.longitude = Math.min(missionItem.coordinate.longitude, region.bottomLeft.longitude) region.bottomLeft.longitude = Math.min(missionItem.coordinate.longitude, region.bottomLeft.longitude)
region.bottomRight.latitude = Math.min(missionItem.coordinate.latitude, region.bottomRight.latitude) region.bottomRight.latitude = Math.min(missionItem.coordinate.latitude, region.bottomRight.latitude)
region.bottomRight.longitude = Math.max(missionItem.coordinate.longitude, region.bottomRight.longitude) region.bottomRight.longitude = Math.max(missionItem.coordinate.longitude, region.bottomRight.longitude)
} }
editorMap.visibleRegion = region editorMap.visibleRegion = region
}
} }
*/
} }
*/
} }
} }
}
DropButton { DropButton {
id: syncButton id: syncButton
anchors.rightMargin: ScreenTools.defaultFontPixelHeight dropDirection: dropDown
anchors.right: mapTypeButton.left buttonImage: "/qmlimages/MapSync.svg"
anchors.top: mapTypeButton.top viewportMargins: ScreenTools.defaultFontPixelWidth / 2
dropDirection: dropDown exclusiveGroup: _dropButtonsExclusiveGroup
buttonImage: "/qmlimages/MapSync.svg"
viewportMargins: ScreenTools.defaultFontPixelWidth / 2 dropDownComponent: Component {
exclusiveGroup: _dropButtonsExclusiveGroup Row {
spacing: ScreenTools.defaultFontPixelWidth
dropDownComponent: Component {
Row { QGCButton {
spacing: ScreenTools.defaultFontPixelWidth text: "Load from vehicle"
enabled: _activeVehicle && !_activeVehicle.missionManager.inProgress
QGCButton {
text: "Load from vehicle" onClicked: {
enabled: _activeVehicle && !_activeVehicle.missionManager.inProgress syncButton.hideDropDown()
controller.getMissionItems()
onClicked: { }
syncButton.hideDropDown()
controller.getMissionItems()
} }
}
QGCButton { QGCButton {
text: "Save to vehicle" text: "Save to vehicle"
enabled: _activeVehicle && !_activeVehicle.missionManager.inProgress enabled: _activeVehicle && !_activeVehicle.missionManager.inProgress
onClicked: { onClicked: {
syncButton.hideDropDown() syncButton.hideDropDown()
controller.setMissionItems() controller.setMissionItems()
}
} }
}
QGCButton { QGCButton {
text: "Load from file..." text: "Load from file..."
onClicked: { onClicked: {
syncButton.hideDropDown() syncButton.hideDropDown()
controller.loadMissionFromFile() controller.loadMissionFromFile()
}
} }
}
QGCButton { QGCButton {
text: "Save to file..." text: "Save to file..."
onClicked: { onClicked: {
syncButton.hideDropDown() syncButton.hideDropDown()
controller.saveMissionToFile() controller.saveMissionToFile()
}
} }
} }
} }
} }
}
DropButton { DropButton {
id: mapTypeButton id: mapTypeButton
anchors.margins: ScreenTools.defaultFontPixelHeight dropDirection: dropDown
anchors.top: parent.top buttonImage: "/qmlimages/MapType.svg"
anchors.right: parent.right viewportMargins: ScreenTools.defaultFontPixelWidth / 2
dropDirection: dropDown exclusiveGroup: _dropButtonsExclusiveGroup
buttonImage: "/qmlimages/MapType.svg"
viewportMargins: ScreenTools.defaultFontPixelWidth / 2
exclusiveGroup: _dropButtonsExclusiveGroup
dropDownComponent: Component { dropDownComponent: Component {
Row { Row {
spacing: ScreenTools.defaultFontPixelWidth spacing: ScreenTools.defaultFontPixelWidth
Repeater { Repeater {
model: QGroundControl.flightMapSettings.mapTypes model: QGroundControl.flightMapSettings.mapTypes
QGCButton { QGCButton {
checkable: true checkable: true
checked: editorMap.mapType == text checked: editorMap.mapType == text
text: modelData text: modelData
exclusiveGroup: _mapTypeButtonsExclusiveGroup exclusiveGroup: _mapTypeButtonsExclusiveGroup
onClicked: { onClicked: {
editorMap.mapType = text editorMap.mapType = text
checked = true checked = true
mapTypeButton.hideDropDown() mapTypeButton.hideDropDown()
}
} }
} }
} }
......
...@@ -14,6 +14,7 @@ QGCCanvas 1.0 QGCCanvas.qml ...@@ -14,6 +14,7 @@ QGCCanvas 1.0 QGCCanvas.qml
SubMenuButton 1.0 SubMenuButton.qml SubMenuButton 1.0 SubMenuButton.qml
IndicatorButton 1.0 IndicatorButton.qml IndicatorButton 1.0 IndicatorButton.qml
DropButton 1.0 DropButton.qml DropButton 1.0 DropButton.qml
RoundButton 1.0 RoundButton.qml
VehicleRotationCal 1.0 VehicleRotationCal.qml VehicleRotationCal 1.0 VehicleRotationCal.qml
VehicleSummaryRow 1.0 VehicleSummaryRow.qml VehicleSummaryRow 1.0 VehicleSummaryRow.qml
ViewWidget 1.0 ViewWidget.qml ViewWidget 1.0 ViewWidget.qml
......
import QtQuick 2.4
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QGroundControl.ScreenTools 1.0
Item {
id: _root
signal clicked()
property alias buttonImage: button.source
property real radius: (ScreenTools.defaultFontPixelHeight * 3) / 2
width: radius * 2
height: radius * 2
Rectangle {
anchors.fill: parent
radius: width / 2
border.width: 2
border.color: "white"
color: "transparent"
Image {
id: button
anchors.fill: parent
fillMode: Image.PreserveAspectFit
mipmap: true
smooth: true
MouseArea {
anchors.fill: parent
onClicked: _root.clicked()
}
}
}
}
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