From 373245491a4bf51d529a18db98b71eb40dbbbcdf Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Sat, 7 Jan 2017 20:57:55 -0800 Subject: [PATCH] New QGCMapLabel using outline font This makes text show up better on map images --- qgroundcontrol.qrc | 1 + src/FlightDisplay/FlightDisplayViewMap.qml | 4 ++-- src/FlightMap/FlightMap.qml | 5 +++-- src/FlightMap/MapScale.qml | 4 ++-- src/MissionEditor/MissionEditor.qml | 10 ++++++++-- src/QGCMapPalette.cc | 1 + src/QGCMapPalette.h | 3 +++ src/QmlControls/QGCMapLabel.qml | 16 +++++++++++++++ src/QmlControls/QGCRadioButton.qml | 20 ++++++++++++------- .../QGroundControl.Controls.qmldir | 1 + .../QMLControl/OfflineMap.qml | 12 +++++++---- 11 files changed, 58 insertions(+), 19 deletions(-) create mode 100644 src/QmlControls/QGCMapLabel.qml diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index e5bc99415..d032df6f2 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 3ccdeb548..c7a2258c4 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 8d9830e43..ed8042802 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 7c0d878be..26a5dfb6f 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 738a9864c..0b180e910 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 5779dfff8..0bdd60f77 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 14698c06b..7896c6746 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 000000000..ebc49222c --- /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 4747e3d41..cfcb5072c 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 c3d900910..f1a1caf12 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 450a51058..985afec75 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 { -- 2.22.0