diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc
index e5bc994..d032df6 100644
--- a/qgroundcontrol.qrc
+++ b/qgroundcontrol.qrc
@@ -70,6 +70,7 @@
src/QmlControls/QGCFlickableVerticalIndicator.qml
src/QmlControls/QGCLabel.qml
src/QmlControls/QGCListView.qml
+ src/QmlControls/QGCMapLabel.qml
src/QmlControls/QGCMobileFileOpenDialog.qml
src/QmlControls/QGCMobileFileSaveDialog.qml
src/QmlControls/QGCMovableItem.qml
diff --git a/src/FlightDisplay/FlightDisplayViewMap.qml b/src/FlightDisplay/FlightDisplayViewMap.qml
index 3ccdeb5..c7a2258 100644
--- a/src/FlightDisplay/FlightDisplayViewMap.qml
+++ b/src/FlightDisplay/FlightDisplayViewMap.qml
@@ -71,10 +71,10 @@ FlightMap {
Component.onCompleted: start(false /* editMode */)
}
- QGCLabel {
+ QGCMapLabel {
id: flyLabel
+ map: flightMap
text: qsTr("Fly")
- color: mapPal.text
visible: !ScreenTools.isShortScreen
anchors.topMargin: _toolButtonTopMargin
anchors.horizontalCenter: centerMapDropButton.horizontalCenter
diff --git a/src/FlightMap/FlightMap.qml b/src/FlightMap/FlightMap.qml
index 8d9830e..ed80428 100644
--- a/src/FlightMap/FlightMap.qml
+++ b/src/FlightMap/FlightMap.qml
@@ -161,13 +161,14 @@ Map {
// Not sure why this is needed, but trying to reference polygonDrawer directly from other code doesn't work
property alias polygonDraw: polygonDrawer
- QGCLabel {
- id: polygonHelp
+ QGCMapLabel {
+ id: polygonHelp
anchors.topMargin: parent.height - ScreenTools.availableHeight
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
horizontalAlignment: Text.AlignHCenter
+ map: _map
text: qsTr("Click to add point %1").arg(ScreenTools.isMobile || !polygonDrawer.polygonReady ? "" : qsTr("- Right Click to end polygon"))
visible: polygonDrawer.drawingPolygon
diff --git a/src/FlightMap/MapScale.qml b/src/FlightMap/MapScale.qml
index 7c0d878..26a5dfb 100644
--- a/src/FlightMap/MapScale.qml
+++ b/src/FlightMap/MapScale.qml
@@ -138,9 +138,9 @@ Item {
onTriggered: calculateScale()
}
- QGCLabel {
+ QGCMapLabel {
id: scaleText
- color: _color
+ map: mapControl
font.family: ScreenTools.demiboldFontFamily
anchors.left: parent.left
anchors.right: parent.right
diff --git a/src/MissionEditor/MissionEditor.qml b/src/MissionEditor/MissionEditor.qml
index 738a986..0b180e9 100644
--- a/src/MissionEditor/MissionEditor.qml
+++ b/src/MissionEditor/MissionEditor.qml
@@ -584,6 +584,8 @@ QGCView {
text: qsTr("Mission")
checked: true
color: mapPal.text
+ textStyle: Text.Outline
+ textStyleColor: mapPal.textOutline
}
Item { height: 1; width: 1 }
@@ -593,6 +595,8 @@ QGCView {
exclusiveGroup: planElementSelectorGroup
text: qsTr("Fence")
color: mapPal.text
+ textStyle: Text.Outline
+ textStyleColor: mapPal.textOutline
}
Item { height: 1; width: 1 }
@@ -602,6 +606,8 @@ QGCView {
exclusiveGroup: planElementSelectorGroup
text: qsTr("Rally")
color: mapPal.text
+ textStyle: Text.Outline
+ textStyleColor: mapPal.textOutline
}
} // Row - Plan Element Selector
@@ -770,10 +776,10 @@ QGCView {
}
}
- QGCLabel {
+ QGCMapLabel {
id: planLabel
+ map: editorMap
text: qsTr("Plan")
- color: mapPal.text
visible: !ScreenTools.isShortScreen
anchors.topMargin: _toolButtonTopMargin
anchors.horizontalCenter: addMissionItemsButton.horizontalCenter
diff --git a/src/QGCMapPalette.cc b/src/QGCMapPalette.cc
index 5779dff..0bdd60f 100644
--- a/src/QGCMapPalette.cc
+++ b/src/QGCMapPalette.cc
@@ -15,6 +15,7 @@
QColor QGCMapPalette::_thumbJoystick[QGCMapPalette::_cColorGroups] = { QColor(255,255,255,127), QColor(0,0,0,127) };
QColor QGCMapPalette::_text [QGCMapPalette::_cColorGroups] = { QColor(255,255,255), QColor(0,0,0) };
+QColor QGCMapPalette::_textOutline [QGCMapPalette::_cColorGroups] = { QColor(0,0,0), QColor(255,255,255) };
QGCMapPalette::QGCMapPalette(QObject* parent) :
QObject(parent)
diff --git a/src/QGCMapPalette.h b/src/QGCMapPalette.h
index 14698c0..7896c67 100644
--- a/src/QGCMapPalette.h
+++ b/src/QGCMapPalette.h
@@ -43,6 +43,7 @@ class QGCMapPalette : public QObject
Q_PROPERTY(bool lightColors READ lightColors WRITE setLightColors NOTIFY paletteChanged)
Q_PROPERTY(QColor text READ text NOTIFY paletteChanged)
+ Q_PROPERTY(QColor textOutline READ textOutline NOTIFY paletteChanged)
Q_PROPERTY(QColor thumbJoystick READ thumbJoystick NOTIFY paletteChanged)
public:
@@ -50,6 +51,7 @@ public:
/// Text color
QColor text(void) const { return _text[_lightColors ? 0 : 1]; }
+ QColor textOutline(void) const { return _textOutline[_lightColors ? 0 : 1]; }
/// Thumb joystick indicator
QColor thumbJoystick(void) const { return _thumbJoystick[_lightColors ? 0 : 1]; }
@@ -68,6 +70,7 @@ private:
static QColor _thumbJoystick[_cColorGroups];
static QColor _text[_cColorGroups];
+ static QColor _textOutline[_cColorGroups];
};
#endif
diff --git a/src/QmlControls/QGCMapLabel.qml b/src/QmlControls/QGCMapLabel.qml
new file mode 100644
index 0000000..ebc4922
--- /dev/null
+++ b/src/QmlControls/QGCMapLabel.qml
@@ -0,0 +1,16 @@
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+
+import QGroundControl.Controls 1.0
+import QGroundControl.Palette 1.0
+
+/// Text control used for displaying text of Maps
+QGCLabel {
+ property var map
+
+ QGCMapPalette { id: mapPal; lightColors: map.isSatelliteMap }
+
+ color: mapPal.text
+ style: Text.Outline
+ styleColor: mapPal.textOutline
+}
diff --git a/src/QmlControls/QGCRadioButton.qml b/src/QmlControls/QGCRadioButton.qml
index 4747e3d..cfcb507 100644
--- a/src/QmlControls/QGCRadioButton.qml
+++ b/src/QmlControls/QGCRadioButton.qml
@@ -1,20 +1,23 @@
-import QtQuick 2.2
-import QtQuick.Controls 1.2
-import QtQuick.Controls.Styles 1.2
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Styles 1.2
-import QGroundControl.Palette 1.0
-import QGroundControl.ScreenTools 1.0
+import QGroundControl.Palette 1.0
+import QGroundControl.ScreenTools 1.0
RadioButton {
- property var color: _qgcPal.text ///< Text color
+ property var color: qgcPal.text ///< Text color
+ property int textStyle: Text.Normal
+ property color textStyleColor: qgcPal.text
- property var _qgcPal: QGCPalette { colorGroupEnabled: enabled }
+ QGCPalette { id: qgcPal; colorGroupEnabled: enabled }
style: RadioButtonStyle {
label: Item {
implicitWidth: text.implicitWidth + ScreenTools.defaultFontPixelWidth * 0.25
implicitHeight: text.implicitHeight
baselineOffset: text.y + text.baselineOffset
+
Rectangle {
anchors.fill: text
anchors.margins: -1
@@ -27,6 +30,7 @@ RadioButton {
border.color: "#47b"
opacity: 0.6
}
+
Text {
id: text
text: control.text
@@ -34,6 +38,8 @@ RadioButton {
font.family: ScreenTools.normalFontFamily
antialiasing: true
color: control.color
+ style: control.textStyle
+ styleColor: control.textStyleColor
anchors.centerIn: parent
}
}
diff --git a/src/QmlControls/QGroundControl.Controls.qmldir b/src/QmlControls/QGroundControl.Controls.qmldir
index c3d9009..f1a1caf 100644
--- a/src/QmlControls/QGroundControl.Controls.qmldir
+++ b/src/QmlControls/QGroundControl.Controls.qmldir
@@ -30,6 +30,7 @@ QGCComboBox 1.0 QGCComboBox.qml
QGCFlickable 1.0 QGCFlickable.qml
QGCLabel 1.0 QGCLabel.qml
QGCListView 1.0 QGCListView.qml
+QGCMapLabel 1.0 QGCMapLabel.qml
QGCMobileFileOpenDialog 1.0 QGCMobileFileOpenDialog.qml
QGCMobileFileSaveDialog 1.0 QGCMobileFileSaveDialog.qml
QGCMovableItem 1.0 QGCMovableItem.qml
diff --git a/src/QtLocationPlugin/QMLControl/OfflineMap.qml b/src/QtLocationPlugin/QMLControl/OfflineMap.qml
index 450a510..985afec 100644
--- a/src/QtLocationPlugin/QMLControl/OfflineMap.qml
+++ b/src/QtLocationPlugin/QMLControl/OfflineMap.qml
@@ -508,6 +508,8 @@ QGCView {
gesture.enabled: false
visible: _showPreview
+ property bool isSatelliteMap: activeMapType.name.indexOf("Satellite") > -1 || activeMapType.name.indexOf("Hybrid") > -1
+
plugin: Plugin { name: "QGroundControl" }
MapScale {
@@ -523,9 +525,9 @@ QGCView {
border.color: _mapAdjustedColor
color: "transparent"
- QGCLabel {
+ QGCMapLabel {
anchors.centerIn: parent
- color: _mapAdjustedColor
+ map: minZoomPreview
text: qsTr("Min Zoom: %1").arg(sliderMinZoom.value)
}
MouseArea {
@@ -545,6 +547,8 @@ QGCView {
gesture.enabled: false
visible: _showPreview
+ property bool isSatelliteMap: activeMapType.name.indexOf("Satellite") > -1 || activeMapType.name.indexOf("Hybrid") > -1
+
plugin: Plugin { name: "QGroundControl" }
MapScale {
@@ -560,9 +564,9 @@ QGCView {
border.color: _mapAdjustedColor
color: "transparent"
- QGCLabel {
+ QGCMapLabel {
anchors.centerIn: parent
- color: _mapAdjustedColor
+ map: maxZoomPreview
text: qsTr("Max Zoom: %1").arg(sliderMaxZoom.value)
}
MouseArea {