Commit de4f9cac authored by Don Gagne's avatar Don Gagne

Toolbar/Instruments respect palette

Map control use different border color based on map type
parent fd9e128e
...@@ -11,8 +11,6 @@ QGCCheckBox { ...@@ -11,8 +11,6 @@ QGCCheckBox {
property variant checkedValue: 1 property variant checkedValue: 1
property variant uncheckedValue: 0 property variant uncheckedValue: 0
property var __qgcpal: QGCPalette { colorGroupEnabled: true }
partiallyCheckedEnabled: fact.value != checkedValue && fact.value != uncheckedValue partiallyCheckedEnabled: fact.value != checkedValue && fact.value != uncheckedValue
checkedState: fact.value == checkedValue ? Qt.Checked : (fact.value == uncheckedValue ? Qt.Unchecked : Qt.PartiallyChecked) checkedState: fact.value == checkedValue ? Qt.Checked : (fact.value == uncheckedValue ? Qt.Unchecked : Qt.PartiallyChecked)
......
...@@ -40,12 +40,14 @@ Item { ...@@ -40,12 +40,14 @@ Item {
property alias guidedModeBar: _guidedModeBar property alias guidedModeBar: _guidedModeBar
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
property bool _isSatellite: _mainIsMap ? _flightMap ? _flightMap.isSatelliteMap : true : true property bool _isSatellite: _mainIsMap ? (_flightMap ? _flightMap.isSatelliteMap : true) : true
property bool _lightWidgetBorders: _mainIsMap ? (_flightMap ? _flightMap.isSatelliteMap : true) : true
readonly property real _margins: ScreenTools.defaultFontPixelHeight / 2 readonly property real _margins: ScreenTools.defaultFontPixelHeight / 2
QGCMapPalette { id: mapPal; lightColors: !isBackgroundDark } QGCMapPalette { id: mapPal; lightColors: !isBackgroundDark }
QGCPalette { id: qgcPal }
function getGadgetWidth() { function getGadgetWidth() {
if(ScreenTools.isMobile) { if(ScreenTools.isMobile) {
...@@ -111,7 +113,7 @@ Item { ...@@ -111,7 +113,7 @@ Item {
pitchAngle: _pitch pitchAngle: _pitch
groundSpeedFact: _groundSpeedFact groundSpeedFact: _groundSpeedFact
airSpeedFact: _airSpeedFact airSpeedFact: _airSpeedFact
isSatellite: _isSatellite lightBorders: _lightWidgetBorders
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
qgcView: parent.parent.qgcView qgcView: parent.parent.qgcView
maxHeight: parent.height - (anchors.margins * 2) maxHeight: parent.height - (anchors.margins * 2)
...@@ -156,12 +158,13 @@ Item { ...@@ -156,12 +158,13 @@ Item {
//-- Map Center Control //-- Map Center Control
DropButton { DropButton {
id: centerMapDropButton id: centerMapDropButton
dropDirection: dropRight dropDirection: dropRight
buttonImage: "/qmlimages/MapCenter.svg" buttonImage: "/qmlimages/MapCenter.svg"
viewportMargins: ScreenTools.defaultFontPixelWidth / 2 viewportMargins: ScreenTools.defaultFontPixelWidth / 2
exclusiveGroup: _dropButtonsExclusiveGroup exclusiveGroup: _dropButtonsExclusiveGroup
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
lightBorders: _lightWidgetBorders
dropDownComponent: Component { dropDownComponent: Component {
Row { Row {
...@@ -197,12 +200,13 @@ Item { ...@@ -197,12 +200,13 @@ Item {
//-- Map Type Control //-- Map Type Control
DropButton { DropButton {
id: mapTypeButton id: mapTypeButton
dropDirection: dropRight dropDirection: dropRight
buttonImage: "/qmlimages/MapType.svg" buttonImage: "/qmlimages/MapType.svg"
viewportMargins: ScreenTools.defaultFontPixelWidth / 2 viewportMargins: ScreenTools.defaultFontPixelWidth / 2
exclusiveGroup: _dropButtonsExclusiveGroup exclusiveGroup: _dropButtonsExclusiveGroup
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
lightBorders: _lightWidgetBorders
dropDownComponent: Component { dropDownComponent: Component {
Column { Column {
...@@ -247,6 +251,8 @@ Item { ...@@ -247,6 +251,8 @@ Item {
buttonImage: "/qmlimages/ZoomPlus.svg" buttonImage: "/qmlimages/ZoomPlus.svg"
exclusiveGroup: _dropButtonsExclusiveGroup exclusiveGroup: _dropButtonsExclusiveGroup
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
lightBorders: _lightWidgetBorders
onClicked: { onClicked: {
if(_flightMap) if(_flightMap)
_flightMap.zoomLevel += 0.5 _flightMap.zoomLevel += 0.5
...@@ -261,6 +267,8 @@ Item { ...@@ -261,6 +267,8 @@ Item {
buttonImage: "/qmlimages/ZoomMinus.svg" buttonImage: "/qmlimages/ZoomMinus.svg"
exclusiveGroup: _dropButtonsExclusiveGroup exclusiveGroup: _dropButtonsExclusiveGroup
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
lightBorders: _lightWidgetBorders
onClicked: { onClicked: {
if(_flightMap) if(_flightMap)
_flightMap.zoomLevel -= 0.5 _flightMap.zoomLevel -= 0.5
...@@ -278,7 +286,7 @@ Item { ...@@ -278,7 +286,7 @@ Item {
width: guidedModeColumn.width + (_margins * 2) width: guidedModeColumn.width + (_margins * 2)
height: guidedModeColumn.height + (_margins * 2) height: guidedModeColumn.height + (_margins * 2)
radius: _margins radius: _margins
color: qgcPal.window color: _lightWidgetBorders ? qgcPal.mapWidgetBorderLight : qgcPal.mapWidgetBorderDark
visible: _activeVehicle visible: _activeVehicle
opacity: 0.9 opacity: 0.9
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
......
...@@ -34,6 +34,7 @@ import QGroundControl.Controls 1.0 ...@@ -34,6 +34,7 @@ import QGroundControl.Controls 1.0
import QGroundControl.ScreenTools 1.0 import QGroundControl.ScreenTools 1.0
import QGroundControl.FactSystem 1.0 import QGroundControl.FactSystem 1.0
import QGroundControl.FlightMap 1.0 import QGroundControl.FlightMap 1.0
import QGroundControl.Palette 1.0
Item { Item {
id: instrumentPanel id: instrumentPanel
...@@ -44,7 +45,7 @@ Item { ...@@ -44,7 +45,7 @@ Item {
property alias rollAngle: attitudeWidget.rollAngle property alias rollAngle: attitudeWidget.rollAngle
property alias pitchAngle: attitudeWidget.pitchAngle property alias pitchAngle: attitudeWidget.pitchAngle
property real size: _defaultSize property real size: _defaultSize
property bool isSatellite: false property bool lightBorders: true
property bool active: false property bool active: false
property var qgcView property var qgcView
property real maxHeight property real maxHeight
...@@ -55,7 +56,7 @@ Item { ...@@ -55,7 +56,7 @@ Item {
property real _defaultSize: ScreenTools.defaultFontPixelSize * (9) property real _defaultSize: ScreenTools.defaultFontPixelSize * (9)
property color _backgroundColor: isSatellite ? Qt.rgba(1,1,1,0.75) : Qt.rgba(0,0,0,0.75) property color _backgroundColor: qgcPal.window
property real _spacing: ScreenTools.defaultFontPixelSize * 0.33 property real _spacing: ScreenTools.defaultFontPixelSize * 0.33
property real _topBottomMargin: (size * 0.05) / 2 property real _topBottomMargin: (size * 0.05) / 2
property real _availableValueHeight: maxHeight - (attitudeWidget.height + _spacer1.height + _spacer2.height + (_spacing * 4)) - (_showCompass ? compass.height : 0) property real _availableValueHeight: maxHeight - (attitudeWidget.height + _spacer1.height + _spacer2.height + (_spacing * 4)) - (_showCompass ? compass.height : 0)
...@@ -63,12 +64,16 @@ Item { ...@@ -63,12 +64,16 @@ Item {
readonly property bool _showCompass: !ScreenTools.isShortScreen readonly property bool _showCompass: !ScreenTools.isShortScreen
QGCPalette { id: qgcPal }
Rectangle { Rectangle {
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
height: (_showCompass ? instrumentColumn.height : attitudeWidget.height) + (_topBottomMargin * 2) height: (_showCompass ? instrumentColumn.height : attitudeWidget.height) + (_topBottomMargin * 2)
radius: size / 2 radius: size / 2
color: _backgroundColor color: _backgroundColor
border.width: 1
border.color: lightBorders ? qgcPal.mapWidgetBorderLight : qgcPal.mapWidgetBorderDark
} }
MouseArea { MouseArea {
...@@ -104,7 +109,6 @@ Item { ...@@ -104,7 +109,6 @@ Item {
opacity: 0.5 opacity: 0.5
width: attitudeWidget.width * 0.15 width: attitudeWidget.width * 0.15
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
visible: _activeVehicle
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
...@@ -120,7 +124,7 @@ Item { ...@@ -120,7 +124,7 @@ Item {
id: _spacer1 id: _spacer1
height: 1 height: 1
width: parent.width * 0.9 width: parent.width * 0.9
color: isSatellite ? Qt.rgba(0,0,0,0.25) : Qt.rgba(1,1,1,0.25) color: qgcPal.text
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
} }
...@@ -139,7 +143,7 @@ Item { ...@@ -139,7 +143,7 @@ Item {
id: _valuesWidget id: _valuesWidget
width: parent.width width: parent.width
qgcView: instrumentPanel.qgcView qgcView: instrumentPanel.qgcView
textColor: isSatellite ? "black" : "white" textColor: qgcPal.text
backgroundColor: _backgroundColor backgroundColor: _backgroundColor
maxHeight: _availableValueHeight maxHeight: _availableValueHeight
} }
...@@ -149,7 +153,7 @@ Item { ...@@ -149,7 +153,7 @@ Item {
id: _spacer2 id: _spacer2
height: 1 height: 1
width: parent.width * 0.9 width: parent.width * 0.9
color: isSatellite ? Qt.rgba(0,0,0,0.25) : Qt.rgba(1,1,1,0.25) color: qgcPal.text
visible: _showCompass visible: _showCompass
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
} }
......
...@@ -64,6 +64,7 @@ QGCView { ...@@ -64,6 +64,7 @@ QGCView {
property var _currentMissionItem property var _currentMissionItem
property bool _firstVehiclePosition: true property bool _firstVehiclePosition: true
property var activeVehiclePosition: _activeVehicle ? _activeVehicle.coordinate : QtPositioning.coordinate() property var activeVehiclePosition: _activeVehicle ? _activeVehicle.coordinate : QtPositioning.coordinate()
property bool _lightWidgetBorders: editorMap.isSatelliteMap
onActiveVehiclePositionChanged: updateMapToVehiclePosition() onActiveVehiclePositionChanged: updateMapToVehiclePosition()
...@@ -524,16 +525,18 @@ QGCView { ...@@ -524,16 +525,18 @@ QGCView {
spacing: ScreenTools.defaultFontPixelHeight spacing: ScreenTools.defaultFontPixelHeight
RoundButton { RoundButton {
id: addMissionItemsButton id: addMissionItemsButton
buttonImage: "/qmlimages/MapAddMission.svg" buttonImage: "/qmlimages/MapAddMission.svg"
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
lightBorders: _lightWidgetBorders
} }
RoundButton { RoundButton {
id: addShapeButton id: addShapeButton
buttonImage: "/qmlimages/MapDrawShape.svg" buttonImage: "/qmlimages/MapDrawShape.svg"
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
visible: QGroundControl.experimentalSurvey visible: QGroundControl.experimentalSurvey
lightBorders: _lightWidgetBorders
onClicked: { onClicked: {
var coordinate = editorMap.center var coordinate = editorMap.center
...@@ -557,6 +560,7 @@ QGCView { ...@@ -557,6 +560,7 @@ QGCView {
dropDownComponent: syncDropDownComponent dropDownComponent: syncDropDownComponent
enabled: !controller.syncInProgress enabled: !controller.syncInProgress
rotateImage: controller.syncInProgress rotateImage: controller.syncInProgress
lightBorders: _lightWidgetBorders
} }
DropButton { DropButton {
...@@ -566,6 +570,7 @@ QGCView { ...@@ -566,6 +570,7 @@ QGCView {
viewportMargins: ScreenTools.defaultFontPixelWidth / 2 viewportMargins: ScreenTools.defaultFontPixelWidth / 2
exclusiveGroup: _dropButtonsExclusiveGroup exclusiveGroup: _dropButtonsExclusiveGroup
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
lightBorders: _lightWidgetBorders
dropDownComponent: Component { dropDownComponent: Component {
Column { Column {
...@@ -615,6 +620,7 @@ QGCView { ...@@ -615,6 +620,7 @@ QGCView {
viewportMargins: ScreenTools.defaultFontPixelWidth / 2 viewportMargins: ScreenTools.defaultFontPixelWidth / 2
exclusiveGroup: _dropButtonsExclusiveGroup exclusiveGroup: _dropButtonsExclusiveGroup
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
lightBorders: _lightWidgetBorders
dropDownComponent: Component { dropDownComponent: Component {
Column { Column {
...@@ -646,10 +652,12 @@ QGCView { ...@@ -646,10 +652,12 @@ QGCView {
//-- Zoom Map In //-- Zoom Map In
RoundButton { RoundButton {
id: mapZoomPlus id: mapZoomPlus
visible: !ScreenTools.isTinyScreen && !ScreenTools.isShortScreen visible: !ScreenTools.isTinyScreen && !ScreenTools.isShortScreen
buttonImage: "/qmlimages/ZoomPlus.svg" buttonImage: "/qmlimages/ZoomPlus.svg"
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
lightBorders: _lightWidgetBorders
onClicked: { onClicked: {
if(editorMap) if(editorMap)
editorMap.zoomLevel += 0.5 editorMap.zoomLevel += 0.5
...@@ -659,10 +667,12 @@ QGCView { ...@@ -659,10 +667,12 @@ QGCView {
//-- Zoom Map Out //-- Zoom Map Out
RoundButton { RoundButton {
id: mapZoomMinus id: mapZoomMinus
visible: !ScreenTools.isTinyScreen && !ScreenTools.isShortScreen visible: !ScreenTools.isTinyScreen && !ScreenTools.isShortScreen
buttonImage: "/qmlimages/ZoomMinus.svg" buttonImage: "/qmlimages/ZoomMinus.svg"
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
lightBorders: _lightWidgetBorders
onClicked: { onClicked: {
if(editorMap) if(editorMap)
editorMap.zoomLevel -= 0.5 editorMap.zoomLevel -= 0.5
......
...@@ -656,13 +656,12 @@ void QGCApplication::_loadCurrentStyle(void) ...@@ -656,13 +656,12 @@ void QGCApplication::_loadCurrentStyle(void)
} }
if (success && !_styleIsDark) { if (success && !_styleIsDark) {
qDebug() << "LOADING LIGHT";
// Load the slave light stylesheet. // Load the slave light stylesheet.
QFile styleSheet(_lightStyleFile); QFile styleSheet(_lightStyleFile);
if (styleSheet.open(QIODevice::ReadOnly | QIODevice::Text)) { if (styleSheet.open(QIODevice::ReadOnly | QIODevice::Text)) {
styles += styleSheet.readAll(); styles += styleSheet.readAll();
} else { } else {
qDebug() << "Unable to load slave light sheet:"; qWarning() << "Unable to load slave light sheet:";
success = false; success = false;
} }
} }
......
...@@ -59,7 +59,7 @@ QColor QGCPalette::_warningText[QGCPalette::_cThemes][QGCPalette::_cColorGroups] ...@@ -59,7 +59,7 @@ QColor QGCPalette::_warningText[QGCPalette::_cThemes][QGCPalette::_cColorGroups]
}; };
QColor QGCPalette::_button[QGCPalette::_cThemes][QGCPalette::_cColorGroups] = { QColor QGCPalette::_button[QGCPalette::_cThemes][QGCPalette::_cColorGroups] = {
{ QColor("#ffffff"), QColor("#ffffff") }, { QColor("#ffffff"), QColor("#91d1e4") },
{ QColor(0x58, 0x58, 0x58), QColor(98, 98, 100) }, { QColor(0x58, 0x58, 0x58), QColor(98, 98, 100) },
}; };
...@@ -69,7 +69,7 @@ QColor QGCPalette::_buttonText[QGCPalette::_cThemes][QGCPalette::_cColorGroups] ...@@ -69,7 +69,7 @@ QColor QGCPalette::_buttonText[QGCPalette::_cThemes][QGCPalette::_cColorGroups]
}; };
QColor QGCPalette::_buttonHighlight[QGCPalette::_cThemes][QGCPalette::_cColorGroups] = { QColor QGCPalette::_buttonHighlight[QGCPalette::_cThemes][QGCPalette::_cColorGroups] = {
{ QColor("#e4e4e4"), QColor("#91d1e4") }, { QColor("#e4e4e4"), QColor("#33b5e5") },
{ QColor(0x58, 0x58, 0x58), QColor(237, 235, 51) }, { QColor(0x58, 0x58, 0x58), QColor(237, 235, 51) },
}; };
...@@ -108,6 +108,17 @@ QColor QGCPalette::_mapButtonHighlight[QGCPalette::_cThemes][QGCPalette::_cColor ...@@ -108,6 +108,17 @@ QColor QGCPalette::_mapButtonHighlight[QGCPalette::_cThemes][QGCPalette::_cColor
{ QColor(0x58, 0x58, 0x58), QColor(190, 120, 28) }, { QColor(0x58, 0x58, 0x58), QColor(190, 120, 28) },
}; };
// Map widget colors are not affecting by theming
QColor QGCPalette::_mapWidgetBorderLight[QGCPalette::_cThemes][QGCPalette::_cColorGroups] = {
{ QColor(255, 255, 255), QColor(255, 255, 255) },
{ QColor(255, 255, 255), QColor(255, 255, 255) },
};
QColor QGCPalette::_mapWidgetBorderDark[QGCPalette::_cThemes][QGCPalette::_cColorGroups] = {
{ QColor(0, 0, 0), QColor(0, 0, 0) },
{ QColor(0, 0, 0), QColor(0, 0, 0) },
};
QGCPalette::QGCPalette(QObject* parent) : QGCPalette::QGCPalette(QObject* parent) :
QObject(parent), QObject(parent),
_colorGroupEnabled(true) _colorGroupEnabled(true)
......
...@@ -80,6 +80,8 @@ class QGCPalette : public QObject ...@@ -80,6 +80,8 @@ class QGCPalette : public QObject
Q_PROPERTY(QColor textFieldText READ textFieldText WRITE setTextFieldText NOTIFY paletteChanged) Q_PROPERTY(QColor textFieldText READ textFieldText WRITE setTextFieldText NOTIFY paletteChanged)
Q_PROPERTY(QColor mapButton READ mapButton WRITE setMapButton NOTIFY paletteChanged) Q_PROPERTY(QColor mapButton READ mapButton WRITE setMapButton NOTIFY paletteChanged)
Q_PROPERTY(QColor mapButtonHighlight READ mapButtonHighlight WRITE setMapButtonHighlight NOTIFY paletteChanged) Q_PROPERTY(QColor mapButtonHighlight READ mapButtonHighlight WRITE setMapButtonHighlight NOTIFY paletteChanged)
Q_PROPERTY(QColor mapWidgetBorderLight READ mapWidgetBorderLight WRITE setMapWidgetBorderLight NOTIFY paletteChanged)
Q_PROPERTY(QColor mapWidgetBorderDark READ mapWidgetBorderDark WRITE setMapWidgetBorderDark NOTIFY paletteChanged)
public: public:
enum ColorGroup { enum ColorGroup {
...@@ -113,6 +115,8 @@ public: ...@@ -113,6 +115,8 @@ public:
QColor textFieldText(void) const { return _textFieldText[_theme][_colorGroupEnabled ? 1 : 0]; } QColor textFieldText(void) const { return _textFieldText[_theme][_colorGroupEnabled ? 1 : 0]; }
QColor mapButton(void) const { return _mapButton[_theme][_colorGroupEnabled ? 1 : 0]; } QColor mapButton(void) const { return _mapButton[_theme][_colorGroupEnabled ? 1 : 0]; }
QColor mapButtonHighlight(void) const { return _mapButtonHighlight[_theme][_colorGroupEnabled ? 1 : 0]; } QColor mapButtonHighlight(void) const { return _mapButtonHighlight[_theme][_colorGroupEnabled ? 1 : 0]; }
QColor mapWidgetBorderLight(void) const { return _mapWidgetBorderLight[_theme][_colorGroupEnabled ? 1 : 0]; }
QColor mapWidgetBorderDark(void) const { return _mapWidgetBorderDark[_theme][_colorGroupEnabled ? 1 : 0]; }
void setWindow(QColor& color) { _window[_theme][_colorGroupEnabled ? 1 : 0] = color; _signalPaletteChangeToAll(); } void setWindow(QColor& color) { _window[_theme][_colorGroupEnabled ? 1 : 0] = color; _signalPaletteChangeToAll(); }
void setWindowShade(QColor& color) { _windowShade[_theme][_colorGroupEnabled ? 1 : 0] = color; _signalPaletteChangeToAll(); } void setWindowShade(QColor& color) { _windowShade[_theme][_colorGroupEnabled ? 1 : 0] = color; _signalPaletteChangeToAll(); }
...@@ -129,6 +133,8 @@ public: ...@@ -129,6 +133,8 @@ public:
void setTextFieldText(QColor& color) { _textFieldText[_theme][_colorGroupEnabled ? 1 : 0] = color; _signalPaletteChangeToAll(); } void setTextFieldText(QColor& color) { _textFieldText[_theme][_colorGroupEnabled ? 1 : 0] = color; _signalPaletteChangeToAll(); }
void setMapButton(QColor& color) { _mapButton[_theme][_colorGroupEnabled ? 1 : 0] = color; _signalPaletteChangeToAll(); } void setMapButton(QColor& color) { _mapButton[_theme][_colorGroupEnabled ? 1 : 0] = color; _signalPaletteChangeToAll(); }
void setMapButtonHighlight(QColor& color) { _mapButtonHighlight[_theme][_colorGroupEnabled ? 1 : 0] = color; _signalPaletteChangeToAll(); } void setMapButtonHighlight(QColor& color) { _mapButtonHighlight[_theme][_colorGroupEnabled ? 1 : 0] = color; _signalPaletteChangeToAll(); }
void setMapWidgetBorderLight(QColor& color) { _mapWidgetBorderLight[_theme][_colorGroupEnabled ? 1 : 0] = color; _signalPaletteChangeToAll(); }
void setMapWidgetBorderDark(QColor& color) { _mapWidgetBorderDark[_theme][_colorGroupEnabled ? 1 : 0] = color; _signalPaletteChangeToAll(); }
static Theme globalTheme(void) { return _theme; } static Theme globalTheme(void) { return _theme; }
static void setGlobalTheme(Theme newTheme); static void setGlobalTheme(Theme newTheme);
...@@ -169,6 +175,9 @@ private: ...@@ -169,6 +175,9 @@ private:
static QColor _mapButton[_cThemes][_cColorGroups]; static QColor _mapButton[_cThemes][_cColorGroups];
static QColor _mapButtonHighlight[_cThemes][_cColorGroups]; static QColor _mapButtonHighlight[_cThemes][_cColorGroups];
static QColor _mapWidgetBorderLight[_cThemes][_cColorGroups];
static QColor _mapWidgetBorderDark[_cThemes][_cColorGroups];
void _themeChanged(void); void _themeChanged(void);
static QList<QGCPalette*> _paletteObjects; ///< List of all active QGCPalette objects static QList<QGCPalette*> _paletteObjects; ///< List of all active QGCPalette objects
......
...@@ -15,6 +15,7 @@ Item { ...@@ -15,6 +15,7 @@ Item {
property int dropDirection: dropDown property int dropDirection: dropDown
property alias dropDownComponent: dropDownLoader.sourceComponent property alias dropDownComponent: dropDownLoader.sourceComponent
property real viewportMargins: 0 property real viewportMargins: 0
property alias lightBorders: roundButton.lightBorders
width: radius * 2 width: radius * 2
height: radius * 2 height: radius * 2
......
import QtQuick 2.4 /*=====================================================================
QGroundControl Open Source Ground Control Station
(c) 2009, 2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
This file is part of the QGROUNDCONTROL project
QGROUNDCONTROL is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
QGROUNDCONTROL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
======================================================================*/
import QtQuick 2.4
import QtQuick.Controls 1.2 import QtQuick.Controls 1.2
import QtGraphicalEffects 1.0
import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0
Item { Item {
id: _root id: _root
...@@ -12,28 +36,28 @@ Item { ...@@ -12,28 +36,28 @@ Item {
signal clicked() signal clicked()
QGCPalette { id: qgcPal }
onExclusiveGroupChanged: { onExclusiveGroupChanged: {
if (exclusiveGroup) { if (exclusiveGroup) {
exclusiveGroup.bindCheckable(_root) exclusiveGroup.bindCheckable(_root)
} }
} }
Image { Rectangle {
id: icon anchors.fill: parent
width: parent.height * 0.9 color: qgcPal.buttonHighlight
height: parent.height * 0.9 visible: checked
mipmap: true
fillMode: Image.PreserveAspectFit
visible: false
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
} }
ColorOverlay { QGCColoredImage {
id: iconOverlay id: icon
anchors.fill: icon width: parent.height * 0.9
source: icon height: parent.height * 0.9
color: (checked ? "#e4e428" : "#ffffff") fillMode: Image.PreserveAspectFit
color: checked ? qgcPal.buttonHighlightText : qgcPal.buttonText
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
} }
MouseArea { MouseArea {
...@@ -44,62 +68,3 @@ Item { ...@@ -44,62 +68,3 @@ Item {
} }
} }
} }
/*
QGCButton {
id: button
property bool repaintChevron: false
property var __qgcPal: QGCPalette { colorGroupEnabled: enabled }
property bool showHighlight: __showHighlight
style: ButtonStyle {
background: Item {
anchors.margins: height * 0.1 // 3
Canvas {
id: chevron
anchors.fill: parent
antialiasing: true
Connections {
target: button
onHoveredChanged: chevron.requestPaint()
onPressedChanged: chevron.requestPaint()
onCheckedChanged: chevron.requestPaint()
onShowHighlightChanged: chevron.requestPaint()
onRepaintChevronChanged: {
if(repaintChevron) {
chevron.requestPaint()
repaintChevron = false;
}
}
}
onPaint: {
var vMiddle = height / 2;
var context = getContext("2d");
var w12 = button.height * 0.4 // 12
var w3 = button.height * 0.1 // 3
var w15 = w12 + w3
context.reset();
context.beginPath();
context.lineWidth = button.height * 0.2; // 6
context.beginPath();
context.moveTo(0, 0);
context.lineTo(width - w15, 0);
context.lineTo(width - w3, vMiddle);
context.lineTo(width - w15, height);
context.lineTo(0, height);
context.closePath();
context.strokeStyle = __qgcPal.windowShade
context.fillStyle = showHighlight ? __qgcPal.buttonHighlight : (button.checked ? __qgcPal.buttonHighlight : __qgcPal.button);
context.stroke();
context.fill();
}
}
}
label: QGCLabel {
text: button.text
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
color: showHighlight ? __qgcPal.buttonHighlightText : (button.checked ? __qgcPal.primaryButtonText : __qgcPal.buttonText)
}
}
}
*/
...@@ -9,9 +9,10 @@ Item { ...@@ -9,9 +9,10 @@ Item {
id: _root id: _root
signal clicked() signal clicked()
property alias buttonImage: button.source property alias buttonImage: button.source
property real radius: ScreenTools.defaultFontPixelHeight * 1.5 property real radius: ScreenTools.defaultFontPixelHeight * 1.5
property bool rotateImage: false property bool rotateImage: false
property bool lightBorders: true
width: radius * 2 width: radius * 2
height: radius * 2 height: radius * 2
...@@ -40,15 +41,17 @@ Item { ...@@ -40,15 +41,17 @@ Item {
anchors.fill: parent anchors.fill: parent
radius: width / 2 radius: width / 2
border.width: ScreenTools.defaultFontPixelHeight * 0.0625 border.width: ScreenTools.defaultFontPixelHeight * 0.0625
border.color: "white" border.color: lightBorders ? qgcPal.mapWidgetBorderLight : qgcPal.mapWidgetBorderDark
color: checked ? qgcPal.mapButtonHighlight : qgcPal.mapButton color: checked ? qgcPal.buttonHighlight : qgcPal.button
Image { QGCColoredImage {
id: button id: button
anchors.fill: parent anchors.fill: parent
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
mipmap: true mipmap: true
smooth: true smooth: true
color: checked ? qgcPal.buttonHighlightText : qgcPal.buttonText
RotationAnimation on rotation { RotationAnimation on rotation {
id: imageRotation id: imageRotation
loops: Animation.Infinite loops: Animation.Infinite
......
...@@ -42,7 +42,7 @@ Item { ...@@ -42,7 +42,7 @@ Item {
readonly property string _planViewSource: "MissionEditor.qml" readonly property string _planViewSource: "MissionEditor.qml"
readonly property string _setupViewSource: "SetupView.qml" readonly property string _setupViewSource: "SetupView.qml"
QGCPalette { id: __qgcPal; colorGroupEnabled: true } QGCPalette { id: qgcPal; colorGroupEnabled: true }
property real tbHeight: ScreenTools.isMobile ? (ScreenTools.isTinyScreen ? (mainWindow.width * 0.0666) : (mainWindow.width * 0.05)) : ScreenTools.defaultFontPixelSize * 4 property real tbHeight: ScreenTools.isMobile ? (ScreenTools.isTinyScreen ? (mainWindow.width * 0.0666) : (mainWindow.width * 0.05)) : ScreenTools.defaultFontPixelSize * 4
property int tbCellHeight: tbHeight * 0.75 property int tbCellHeight: tbHeight * 0.75
...@@ -381,7 +381,7 @@ Item { ...@@ -381,7 +381,7 @@ Item {
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
//-- Critical Message Area //-- Critical Message Area
Rectangle { Rectangle {
id: criticalMmessageArea id: criticalMmessageArea
function close() { function close() {
//-- Are there messages in the waiting queue? //-- Are there messages in the waiting queue?
...@@ -401,7 +401,7 @@ Item { ...@@ -401,7 +401,7 @@ Item {
width: mainWindow.width * 0.55 width: mainWindow.width * 0.55
height: ScreenTools.defaultFontPixelHeight * ScreenTools.fontHRatio * 6 height: ScreenTools.defaultFontPixelHeight * ScreenTools.fontHRatio * 6
color: Qt.rgba(0,0,0,0.8) color: qgcPal.window
visible: false visible: false
radius: ScreenTools.defaultFontPixelHeight * 0.5 radius: ScreenTools.defaultFontPixelHeight * 0.5
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
...@@ -425,6 +425,7 @@ Item { ...@@ -425,6 +425,7 @@ Item {
boundsBehavior: Flickable.StopAtBounds boundsBehavior: Flickable.StopAtBounds
pixelAligned: true pixelAligned: true
clip: true clip: true
TextEdit { TextEdit {
id: criticalMessageText id: criticalMessageText
width: criticalMmessageArea.width - criticalClose.width - (ScreenTools.defaultFontPixelHeight * 2) width: criticalMmessageArea.width - criticalClose.width - (ScreenTools.defaultFontPixelHeight * 2)
...@@ -433,12 +434,12 @@ Item { ...@@ -433,12 +434,12 @@ Item {
textFormat: TextEdit.RichText textFormat: TextEdit.RichText
font.weight: Font.DemiBold font.weight: Font.DemiBold
wrapMode: TextEdit.WordWrap wrapMode: TextEdit.WordWrap
color: "#fdfd3b" color: qgcPal.warningText
} }
} }
//-- Dismiss Critical Message //-- Dismiss Critical Message
Image { QGCColoredImage {
id: criticalClose id: criticalClose
anchors.margins: ScreenTools.defaultFontPixelHeight anchors.margins: ScreenTools.defaultFontPixelHeight
anchors.top: parent.top anchors.top: parent.top
...@@ -447,8 +448,8 @@ Item { ...@@ -447,8 +448,8 @@ Item {
height: ScreenTools.defaultFontPixelHeight * 1.5 height: ScreenTools.defaultFontPixelHeight * 1.5
source: "/res/XDelete.svg" source: "/res/XDelete.svg"
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
mipmap: true color: qgcPal.warningText
smooth: true
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
onClicked: { onClicked: {
...@@ -458,7 +459,7 @@ Item { ...@@ -458,7 +459,7 @@ Item {
} }
//-- More text below indicator //-- More text below indicator
Image { QGCColoredImage {
anchors.margins: ScreenTools.defaultFontPixelHeight anchors.margins: ScreenTools.defaultFontPixelHeight
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.right: parent.right anchors.right: parent.right
...@@ -466,9 +467,9 @@ Item { ...@@ -466,9 +467,9 @@ Item {
height: ScreenTools.defaultFontPixelHeight * 1.5 height: ScreenTools.defaultFontPixelHeight * 1.5
source: "/res/ArrowDown.svg" source: "/res/ArrowDown.svg"
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
mipmap: true
smooth: true
visible: criticalMessageText.lineCount > 5 visible: criticalMessageText.lineCount > 5
color: qgcPal.warningText
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
onClicked: { onClicked: {
......
...@@ -44,6 +44,8 @@ Item { ...@@ -44,6 +44,8 @@ Item {
readonly property real __closeButtonSize: ScreenTools.defaultFontPixelHeight * 2 readonly property real __closeButtonSize: ScreenTools.defaultFontPixelHeight * 2
readonly property real _margins: ScreenTools.defaultFontPixelHeight / 2 readonly property real _margins: ScreenTools.defaultFontPixelHeight / 2
QGCPalette { id: qgcPal }
onVisibleChanged: { onVisibleChanged: {
//-- Unselect any selected button //-- Unselect any selected button
panelActionGroup.current = null panelActionGroup.current = null
...@@ -106,7 +108,7 @@ Item { ...@@ -106,7 +108,7 @@ Item {
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.left: parent.left anchors.left: parent.left
opacity: 0.0 opacity: 0.0
color: __qgcPal.window color: qgcPal.window
visible: __rightPanel.source == "" visible: __rightPanel.source == ""
// Dismiss if clicked outside menu area // Dismiss if clicked outside menu area
MouseArea { MouseArea {
...@@ -134,7 +136,7 @@ Item { ...@@ -134,7 +136,7 @@ Item {
anchors.left: parent.left anchors.left: parent.left
anchors.top: __topSeparator.bottom anchors.top: __topSeparator.bottom
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
color: __qgcPal.windowShadeDark color: qgcPal.windowShadeDark
QGCFlickable { QGCFlickable {
anchors.fill: parent anchors.fill: parent
...@@ -270,7 +272,7 @@ Item { ...@@ -270,7 +272,7 @@ Item {
height: parent.height - toolBar.height - __topSeparator.height height: parent.height - toolBar.height - __topSeparator.height
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
visible: __rightPanel.source != "" visible: __rightPanel.source != ""
color: __qgcPal.window color: qgcPal.window
//-- Panel Contents //-- Panel Contents
Loader { Loader {
id: __rightPanel id: __rightPanel
...@@ -288,7 +290,7 @@ Item { ...@@ -288,7 +290,7 @@ Item {
source: "/res/XDelete.svg" source: "/res/XDelete.svg"
mipmap: true mipmap: true
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
color: __qgcPal.text color: qgcPal.text
width: parent.width * 0.75 width: parent.width * 0.75
height: parent.height * 0.75 height: parent.height * 0.75
anchors.centerIn: parent anchors.centerIn: parent
......
...@@ -36,16 +36,13 @@ import QGroundControl.Palette 1.0 ...@@ -36,16 +36,13 @@ import QGroundControl.Palette 1.0
Rectangle { Rectangle {
id: _generalRoot id: _generalRoot
color: __qgcPal.window color: qgcPal.window
anchors.fill: parent anchors.fill: parent
anchors.margins: ScreenTools.defaultFontPixelWidth anchors.margins: ScreenTools.defaultFontPixelWidth
property Fact _percentRemainingAnnounce: QGroundControl.multiVehicleManager.disconnectedVehicle.battery.percentRemainingAnnounce property Fact _percentRemainingAnnounce: QGroundControl.multiVehicleManager.disconnectedVehicle.battery.percentRemainingAnnounce
QGCPalette { QGCPalette { id: qgcPal }
id: qgcPal
colorGroupEnabled: enabled
}
QGCFlickable { QGCFlickable {
clip: true clip: true
...@@ -115,7 +112,7 @@ Rectangle { ...@@ -115,7 +112,7 @@ Rectangle {
} }
QGCLabel { QGCLabel {
anchors.baseline: distanceUnitsCombo.baseline anchors.baseline: speedUnitsCombo.baseline
text: "(requires reboot to take affect)" text: "(requires reboot to take affect)"
} }
} }
...@@ -250,12 +247,11 @@ Rectangle { ...@@ -250,12 +247,11 @@ Rectangle {
QGCComboBox { QGCComboBox {
id: paletteCombo id: paletteCombo
width: ScreenTools.defaultFontPixelWidth * 16 width: ScreenTools.defaultFontPixelWidth * 16
model: [ "Dark", "Light" ] model: [ "Indoor", "Outdoor" ]
currentIndex: QGroundControl.isDarkStyle ? 0 : 1 currentIndex: QGroundControl.isDarkStyle ? 0 : 1
onActivated: { onActivated: {
if (index != -1) { if (index != -1) {
currentIndex = index currentIndex = index
console.log((index === 0) ? "Now it's Dark" : "Now it's Light")
QGroundControl.isDarkStyle = index === 0 ? true : false QGroundControl.isDarkStyle = index === 0 ? true : false
} }
} }
......
...@@ -35,13 +35,10 @@ import QGroundControl.Palette 1.0 ...@@ -35,13 +35,10 @@ import QGroundControl.Palette 1.0
Rectangle { Rectangle {
id: __mavlinkRoot id: __mavlinkRoot
color: __qgcPal.window color: qgcPal.window
anchors.fill: parent anchors.fill: parent
QGCPalette { QGCPalette { id: qgcPal }
id: qgcPal
colorGroupEnabled: enabled
}
QGCFlickable { QGCFlickable {
clip: true clip: true
......
...@@ -40,8 +40,8 @@ import QGroundControl.ScreenTools 1.0 ...@@ -40,8 +40,8 @@ import QGroundControl.ScreenTools 1.0
import QGroundControl.Controllers 1.0 import QGroundControl.Controllers 1.0
Rectangle { Rectangle {
id: toolBar id: toolBar
color: opaqueBackground ? "#404040" : Qt.rgba(0,0,0,0.75) color: qgcPal.window
QGCPalette { id: qgcPal; colorGroupEnabled: true } QGCPalette { id: qgcPal; colorGroupEnabled: true }
...@@ -197,24 +197,27 @@ Rectangle { ...@@ -197,24 +197,27 @@ Rectangle {
// GPS Info // GPS Info
Component { Component {
id: gpsInfo id: gpsInfo
Rectangle { Rectangle {
color: Qt.rgba(0,0,0,0.75) width: gpsCol.width + ScreenTools.defaultFontPixelWidth * 3
width: gpsCol.width + ScreenTools.defaultFontPixelWidth * 3 height: gpsCol.height + ScreenTools.defaultFontPixelHeight * 2
height: gpsCol.height + ScreenTools.defaultFontPixelHeight * 2 radius: ScreenTools.defaultFontPixelHeight * 0.5
radius: ScreenTools.defaultFontPixelHeight * 0.5 color: qgcPal.window
Column { Column {
id: gpsCol id: gpsCol
spacing: ScreenTools.defaultFontPixelHeight * 0.5 spacing: ScreenTools.defaultFontPixelHeight * 0.5
width: Math.max(gpsGrid.width, gpsLabel.width) width: Math.max(gpsGrid.width, gpsLabel.width)
anchors.margins: ScreenTools.defaultFontPixelHeight anchors.margins: ScreenTools.defaultFontPixelHeight
anchors.centerIn: parent anchors.centerIn: parent
QGCLabel { QGCLabel {
id: gpsLabel id: gpsLabel
text: (activeVehicle && activeVehicle.gps.count.value >= 0) ? "GPS Status" : "GPS Data Unavailable" text: (activeVehicle && activeVehicle.gps.count.value >= 0) ? "GPS Status" : "GPS Data Unavailable"
font.weight:Font.DemiBold font.weight:Font.DemiBold
color: colorWhite
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
} }
GridLayout { GridLayout {
id: gpsGrid id: gpsGrid
visible: (activeVehicle && activeVehicle.gps.count.value >= 0) visible: (activeVehicle && activeVehicle.gps.count.value >= 0)
...@@ -222,48 +225,20 @@ Rectangle { ...@@ -222,48 +225,20 @@ Rectangle {
columnSpacing: ScreenTools.defaultFontPixelWidth columnSpacing: ScreenTools.defaultFontPixelWidth
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
columns: 2 columns: 2
QGCLabel {
text: "GPS Count:" QGCLabel { text: "GPS Count:" }
color: colorWhite QGCLabel { text: activeVehicle ? activeVehicle.gps.count.valueString : "N/A" }
} QGCLabel { text: "GPS Lock:" }
QGCLabel { QGCLabel { text: activeVehicle ? activeVehicle.gps.lock.enumStringValue : "N/A" }
text: activeVehicle ? activeVehicle.gps.count.valueString : "N/A" QGCLabel { text: "HDOP:" }
color: colorWhite QGCLabel { text: activeVehicle ? activeVehicle.gps.hdop.valueString : "--.--" }
} QGCLabel { text: "VDOP:" }
QGCLabel { QGCLabel { text: activeVehicle ? activeVehicle.gps.vdop.valueString : "--.--" }
text: "GPS Lock:" QGCLabel { text: "Course Over Ground:" }
color: colorWhite QGCLabel { text: activeVehicle ? activeVehicle.gps.courseOverGround.valueString : "--.--" }
}
QGCLabel {
text: activeVehicle ? activeVehicle.gps.lock.enumStringValue : "N/A"
color: colorWhite
}
QGCLabel {
text: "HDOP:"
color: colorWhite
}
QGCLabel {
text: activeVehicle ? activeVehicle.gps.hdop.valueString : "--.--"
color: colorWhite
}
QGCLabel {
text: "VDOP:"
color: colorWhite
}
QGCLabel {
text: activeVehicle ? activeVehicle.gps.vdop.valueString : "--.--"
color: colorWhite
}
QGCLabel {
text: "Course Over Ground:"
color: colorWhite
}
QGCLabel {
text: activeVehicle ? activeVehicle.gps.courseOverGround.valueString : "--.--"
color: colorWhite
}
} }
} }
Component.onCompleted: { Component.onCompleted: {
var pos = mapFromItem(toolBar, centerX - (width / 2), toolBar.height) var pos = mapFromItem(toolBar, centerX - (width / 2), toolBar.height)
x = pos.x x = pos.x
...@@ -278,10 +253,10 @@ Rectangle { ...@@ -278,10 +253,10 @@ Rectangle {
id: batteryInfo id: batteryInfo
Rectangle { Rectangle {
color: Qt.rgba(0,0,0,0.75) width: battCol.width + ScreenTools.defaultFontPixelWidth * 3
width: battCol.width + ScreenTools.defaultFontPixelWidth * 3 height: battCol.height + ScreenTools.defaultFontPixelHeight * 2
height: battCol.height + ScreenTools.defaultFontPixelHeight * 2 radius: ScreenTools.defaultFontPixelHeight * 0.5
radius: ScreenTools.defaultFontPixelHeight * 0.5 color: qgcPal.window
Column { Column {
id: battCol id: battCol
...@@ -293,32 +268,21 @@ Rectangle { ...@@ -293,32 +268,21 @@ Rectangle {
QGCLabel { QGCLabel {
id: battLabel id: battLabel
text: "Battery Status" text: "Battery Status"
color: colorWhite
font.weight:Font.DemiBold font.weight:Font.DemiBold
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
} }
GridLayout { GridLayout {
id: battGrid id: battGrid
anchors.margins: ScreenTools.defaultFontPixelHeight anchors.margins: ScreenTools.defaultFontPixelHeight
columnSpacing: ScreenTools.defaultFontPixelWidth columnSpacing: ScreenTools.defaultFontPixelWidth
columns: 2
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
columns: 2
QGCLabel { QGCLabel { text: "Voltage:" }
text: "Voltage:" QGCLabel { text: (activeVehicle && activeVehicle.battery.voltage.value != -1) ? (activeVehicle.battery.voltage.valueString + " " + activeVehicle.battery.voltage.units) : "N/A" }
color: colorWhite QGCLabel { text: "Accumulated Consumption:" }
} QGCLabel { text: (activeVehicle && activeVehicle.battery.mahConsumed.value != -1) ? (activeVehicle.battery.mahConsumed.valueString + " " + activeVehicle.battery.mahConsumed.units) : "N/A" }
QGCLabel {
text: (activeVehicle && activeVehicle.battery.voltage.value != -1) ? (activeVehicle.battery.voltage.valueString + " " + activeVehicle.battery.voltage.units) : "N/A"
color: getBatteryColor()
}
QGCLabel {
text: "Accumulated Consumption:"
color: colorWhite
}
QGCLabel {
text: (activeVehicle && activeVehicle.battery.mahConsumed.value != -1) ? (activeVehicle.battery.mahConsumed.valueString + " " + activeVehicle.battery.mahConsumed.units) : "N/A"
color: getBatteryColor()
}
} }
} }
...@@ -334,41 +298,40 @@ Rectangle { ...@@ -334,41 +298,40 @@ Rectangle {
// RC RSSI Info // RC RSSI Info
Component { Component {
id: rcRSSIInfo id: rcRSSIInfo
Rectangle { Rectangle {
color: Qt.rgba(0,0,0,0.75) width: rcrssiCol.width + ScreenTools.defaultFontPixelWidth * 3
width: rcrssiCol.width + ScreenTools.defaultFontPixelWidth * 3 height: rcrssiCol.height + ScreenTools.defaultFontPixelHeight * 2
height: rcrssiCol.height + ScreenTools.defaultFontPixelHeight * 2 radius: ScreenTools.defaultFontPixelHeight * 0.5
radius: ScreenTools.defaultFontPixelHeight * 0.5 color: qgcPal.window
Column { Column {
id: rcrssiCol id: rcrssiCol
spacing: ScreenTools.defaultFontPixelHeight * 0.5 spacing: ScreenTools.defaultFontPixelHeight * 0.5
width: Math.max(rcrssiGrid.width, rssiLabel.width) width: Math.max(rcrssiGrid.width, rssiLabel.width)
anchors.margins: ScreenTools.defaultFontPixelHeight anchors.margins: ScreenTools.defaultFontPixelHeight
anchors.centerIn: parent anchors.centerIn: parent
QGCLabel { QGCLabel {
id: rssiLabel id: rssiLabel
text: activeVehicle ? (activeVehicle.rcRSSI > 0 ? "RC RSSI Status" : "RC RSSI Data Unavailable") : "N/A" text: activeVehicle ? (activeVehicle.rcRSSI > 0 ? "RC RSSI Status" : "RC RSSI Data Unavailable") : "N/A"
color: colorWhite
font.weight:Font.DemiBold font.weight:Font.DemiBold
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
} }
GridLayout { GridLayout {
id: rcrssiGrid id: rcrssiGrid
visible: activeVehicle && activeVehicle.rcRSSI > 0 visible: activeVehicle && activeVehicle.rcRSSI > 0
anchors.margins: ScreenTools.defaultFontPixelHeight anchors.margins: ScreenTools.defaultFontPixelHeight
columnSpacing: ScreenTools.defaultFontPixelWidth columnSpacing: ScreenTools.defaultFontPixelWidth
columns: 2
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
columns: 2
QGCLabel { QGCLabel { text: "RSSI:" }
text: "RSSI:" QGCLabel { text: activeVehicle ? (activeVehicle.rcRSSI + "%") : 0 }
color: colorWhite
}
QGCLabel {
text: activeVehicle ? (activeVehicle.rcRSSI + "%") : 0
color: colorWhite
}
} }
} }
Component.onCompleted: { Component.onCompleted: {
var pos = mapFromItem(toolBar, centerX - (width / 2), toolBar.height) var pos = mapFromItem(toolBar, centerX - (width / 2), toolBar.height)
x = pos.x x = pos.x
...@@ -381,88 +344,51 @@ Rectangle { ...@@ -381,88 +344,51 @@ Rectangle {
// Telemetry RSSI Info // Telemetry RSSI Info
Component { Component {
id: telemRSSIInfo id: telemRSSIInfo
Rectangle { Rectangle {
color: Qt.rgba(0,0,0,0.75) width: telemCol.width + ScreenTools.defaultFontPixelWidth * 3
width: telemCol.width + ScreenTools.defaultFontPixelWidth * 3 height: telemCol.height + ScreenTools.defaultFontPixelHeight * 2
height: telemCol.height + ScreenTools.defaultFontPixelHeight * 2 radius: ScreenTools.defaultFontPixelHeight * 0.5
radius: ScreenTools.defaultFontPixelHeight * 0.5 color: qgcPal.window
Column { Column {
id: telemCol id: telemCol
spacing: ScreenTools.defaultFontPixelHeight * 0.5 spacing: ScreenTools.defaultFontPixelHeight * 0.5
width: Math.max(telemGrid.width, telemLabel.width) width: Math.max(telemGrid.width, telemLabel.width)
anchors.margins: ScreenTools.defaultFontPixelHeight anchors.margins: ScreenTools.defaultFontPixelHeight
anchors.centerIn: parent anchors.centerIn: parent
QGCLabel { QGCLabel {
id: telemLabel id: telemLabel
text: "Telemetry RSSI Status" text: "Telemetry RSSI Status"
color: colorWhite font.weight: Font.DemiBold
font.weight:Font.DemiBold
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
} }
GridLayout { GridLayout {
id: telemGrid id: telemGrid
anchors.margins: ScreenTools.defaultFontPixelHeight anchors.margins: ScreenTools.defaultFontPixelHeight
columnSpacing: ScreenTools.defaultFontPixelWidth columnSpacing: ScreenTools.defaultFontPixelWidth
columns: 2
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
columns: 2
QGCLabel { QGCLabel { text: "Local RSSI:" }
text: "Local RSSI:" QGCLabel { text: _controller.telemetryLRSSI + " dBm" }
color: colorWhite QGCLabel { text: "Remote RSSI:" }
} QGCLabel { text: _controller.telemetryRRSSI + " dBm" }
QGCLabel { QGCLabel { text: "RX Errors:" }
text: _controller.telemetryLRSSI + " dBm" QGCLabel { text: _controller.telemetryRXErrors }
color: colorWhite QGCLabel { text: "Errors Fixed:" }
} QGCLabel { text: _controller.telemetryFixed }
QGCLabel { QGCLabel { text: "TX Buffer:" }
text: "Remote RSSI:" QGCLabel { text: _controller.telemetryTXBuffer }
color: colorWhite QGCLabel { text: "Local Noise:" }
} QGCLabel { text: _controller.telemetryLNoise }
QGCLabel { QGCLabel { text: "Remote Noise:" }
text: _controller.telemetryRRSSI + " dBm" QGCLabel { text: _controller.telemetryRNoise }
color: colorWhite
}
QGCLabel {
text: "RX Errors:"
color: colorWhite
}
QGCLabel {
text: _controller.telemetryRXErrors
color: colorWhite
}
QGCLabel {
text: "Errors Fixed:"
color: colorWhite
}
QGCLabel {
text: _controller.telemetryFixed
color: colorWhite
}
QGCLabel {
text: "TX Buffer:"
color: colorWhite
}
QGCLabel {
text: _controller.telemetryTXBuffer
color: colorWhite
}
QGCLabel {
text: "Local Noise:"
color: colorWhite
}
QGCLabel {
text: _controller.telemetryLNoise
color: colorWhite
}
QGCLabel {
text: "Remote Noise:"
color: colorWhite
}
QGCLabel {
text: _controller.telemetryRNoise
color: colorWhite
}
} }
} }
Component.onCompleted: { Component.onCompleted: {
var pos = mapFromItem(toolBar, centerX - (width / 2), toolBar.height) var pos = mapFromItem(toolBar, centerX - (width / 2), toolBar.height)
x = pos.x x = pos.x
...@@ -494,12 +420,6 @@ Rectangle { ...@@ -494,12 +420,6 @@ Rectangle {
} }
} }
Rectangle {
height: mainWindow.tbCellHeight
width: 1
color: Qt.rgba(1,1,1,0.45)
}
QGCToolBarButton { QGCToolBarButton {
id: setupButton id: setupButton
width: mainWindow.tbButtonWidth width: mainWindow.tbButtonWidth
...@@ -509,12 +429,6 @@ Rectangle { ...@@ -509,12 +429,6 @@ Rectangle {
onClicked: toolBar.showSetupView() onClicked: toolBar.showSetupView()
} }
Rectangle {
height: mainWindow.tbCellHeight
width: 1
color: Qt.rgba(1,1,1,0.45)
}
QGCToolBarButton { QGCToolBarButton {
id: planButton id: planButton
width: mainWindow.tbButtonWidth width: mainWindow.tbButtonWidth
...@@ -524,12 +438,6 @@ Rectangle { ...@@ -524,12 +438,6 @@ Rectangle {
onClicked: toolBar.showPlanView() onClicked: toolBar.showPlanView()
} }
Rectangle {
height: mainWindow.tbCellHeight
width: 1
color: Qt.rgba(1,1,1,0.45)
}
QGCToolBarButton { QGCToolBarButton {
id: flyButton id: flyButton
width: mainWindow.tbButtonWidth width: mainWindow.tbButtonWidth
...@@ -538,13 +446,6 @@ Rectangle { ...@@ -538,13 +446,6 @@ Rectangle {
source: "/qmlimages/PaperPlane.svg" source: "/qmlimages/PaperPlane.svg"
onClicked: toolBar.showFlyView() onClicked: toolBar.showFlyView()
} }
Rectangle {
height: mainWindow.tbCellHeight
width: 1
color: Qt.rgba(1,1,1,0.45)
}
} }
Item { Item {
......
...@@ -21,19 +21,22 @@ This file is part of the QGROUNDCONTROL project ...@@ -21,19 +21,22 @@ This file is part of the QGROUNDCONTROL project
======================================================================*/ ======================================================================*/
import QtQuick 2.5 import QtQuick 2.5
import QtQuick.Controls 1.2 import QtQuick.Controls 1.2
import QtGraphicalEffects 1.0 import QtGraphicalEffects 1.0
import QtQuick.Controls.Styles 1.2 import QtQuick.Controls.Styles 1.2
import QtQuick.Dialogs 1.1 import QtQuick.Dialogs 1.1
import QGroundControl 1.0 import QGroundControl 1.0
import QGroundControl.Controls 1.0 import QGroundControl.Controls 1.0
import QGroundControl.ScreenTools 1.0 import QGroundControl.ScreenTools 1.0
import QGroundControl.Palette 1.0
Row { Row {
spacing: tbSpacing * 2 spacing: tbSpacing * 2
QGCPalette { id: qgcPal }
function getSatStrength(hdop) { function getSatStrength(hdop) {
if (hdop <= 1.0) if (hdop <= 1.0)
return 100 return 100
...@@ -99,23 +102,24 @@ Row { ...@@ -99,23 +102,24 @@ Row {
id: criticalMessage id: criticalMessage
anchors.fill: parent anchors.fill: parent
visible: activeVehicle ? (activeVehicle.messageCount > 0 && isMessageImportant) : false visible: activeVehicle ? (activeVehicle.messageCount > 0 && isMessageImportant) : false
Image { Image {
source: "/qmlimages/Yield.svg" source: "/qmlimages/Yield.svg"
height: mainWindow.tbCellHeight * 0.75 height: mainWindow.tbCellHeight * 0.75
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
mipmap: true
smooth: true
cache: false cache: false
visible: isMessageImportant visible: isMessageImportant
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
} }
SequentialAnimation { SequentialAnimation {
id: loopAnimation id: loopAnimation
loops: Animation.Infinite loops: Animation.Infinite
NumberAnimation { target: criticalMessage; property: "opacity"; duration: 1000; from: 0.25; to: 1 } NumberAnimation { target: criticalMessage; property: "opacity"; duration: 1000; from: 0.25; to: 1 }
NumberAnimation { target: criticalMessage; property: "opacity"; duration: 1000; from: 1; to: 0.25 } NumberAnimation { target: criticalMessage; property: "opacity"; duration: 1000; from: 1; to: 0.25 }
} }
onVisibleChanged: { onVisibleChanged: {
if(messages.visible) { if(messages.visible) {
loopAnimation.start() loopAnimation.start()
...@@ -128,22 +132,16 @@ Row { ...@@ -128,22 +132,16 @@ Row {
Item { Item {
anchors.fill: parent anchors.fill: parent
visible: !criticalMessage.visible visible: !criticalMessage.visible
Image {
id: messageIcon QGCColoredImage {
source: "/qmlimages/Megaphone.svg" id: messageIcon
height: mainWindow.tbCellHeight * 0.5 source: "/qmlimages/Megaphone.svg"
fillMode: Image.PreserveAspectFit height: mainWindow.tbCellHeight * 0.5
mipmap: true fillMode: Image.PreserveAspectFit
smooth: true color: getMessageColor()
visible: false
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
} }
ColorOverlay {
anchors.fill: messageIcon
source: messageIcon
color: getMessageColor()
}
} }
MouseArea { MouseArea {
...@@ -163,32 +161,35 @@ Row { ...@@ -163,32 +161,35 @@ Row {
Row { Row {
id: gpsRow id: gpsRow
height: parent.height height: parent.height
Image {
QGCColoredImage {
id: gpsIcon id: gpsIcon
source: "/qmlimages/Gps.svg" source: "/qmlimages/Gps.svg"
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
mipmap: true
smooth: true
width: mainWindow.tbCellHeight * 0.65 width: mainWindow.tbCellHeight * 0.65
height: mainWindow.tbCellHeight * 0.5 height: mainWindow.tbCellHeight * 0.5
opacity: (activeVehicle && activeVehicle.gps.count.value >= 0) ? 1 : 0.5 opacity: (activeVehicle && activeVehicle.gps.count.value >= 0) ? 1 : 0.5
color: qgcPal.buttonText
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
} }
SignalStrength { SignalStrength {
size: mainWindow.tbCellHeight * 0.5 size: mainWindow.tbCellHeight * 0.5
percent: activeVehicle ? getSatStrength(activeVehicle.gps.hdop.value) : "" percent: activeVehicle ? getSatStrength(activeVehicle.gps.hdop.value) : ""
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
} }
} }
QGCLabel { QGCLabel {
text: activeVehicle ? activeVehicle.gps.hdop.valueString : "" anchors.top: parent.top
visible: activeVehicle && !isNaN(activeVehicle.gps.hdop.value)
font.pixelSize: tbFontSmall
color: colorWhite
anchors.top: parent.top
anchors.leftMargin: gpsIcon.width anchors.leftMargin: gpsIcon.width
anchors.left: parent.left anchors.left: parent.left
visible: activeVehicle && !isNaN(activeVehicle.gps.hdop.value)
font.pixelSize: tbFontSmall
color: qgcPal.buttonText
text: activeVehicle ? activeVehicle.gps.hdop.valueString : ""
} }
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
onClicked: { onClicked: {
...@@ -204,25 +205,28 @@ Row { ...@@ -204,25 +205,28 @@ Row {
id: rcRssi id: rcRssi
width: rssiRow.width * 1.1 width: rssiRow.width * 1.1
height: mainWindow.tbCellHeight height: mainWindow.tbCellHeight
Row { Row {
id: rssiRow id: rssiRow
height: parent.height height: parent.height
Image {
source: "/qmlimages/RC.svg" QGCColoredImage {
fillMode: Image.PreserveAspectFit
mipmap: true
smooth: true
width: mainWindow.tbCellHeight * 0.65 width: mainWindow.tbCellHeight * 0.65
height: mainWindow.tbCellHeight * 0.5 height: mainWindow.tbCellHeight * 0.5
source: "/qmlimages/RC.svg"
fillMode: Image.PreserveAspectFit
opacity: activeVehicle ? (activeVehicle.rcRSSI < 1 ? 0.5 : 1) : 0.5 opacity: activeVehicle ? (activeVehicle.rcRSSI < 1 ? 0.5 : 1) : 0.5
color: qgcPal.buttonText
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
} }
SignalStrength { SignalStrength {
size: mainWindow.tbCellHeight * 0.5 size: mainWindow.tbCellHeight * 0.5
percent: activeVehicle ? activeVehicle.rcRSSI : 0 percent: activeVehicle ? activeVehicle.rcRSSI : 0
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
} }
} }
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
onClicked: { onClicked: {
...@@ -239,23 +243,17 @@ Row { ...@@ -239,23 +243,17 @@ Row {
width: telemIcon.width width: telemIcon.width
height: mainWindow.tbCellHeight height: mainWindow.tbCellHeight
visible: _controller.telemetryLRSSI < 0 visible: _controller.telemetryLRSSI < 0
Image {
id: telemIcon QGCColoredImage {
source: "/qmlimages/TelemRSSI.svg" id: telemIcon
fillMode: Image.PreserveAspectFit height: parent.height * 0.5
mipmap: true width: height * 1.5
smooth: true source: "/qmlimages/TelemRSSI.svg"
height: parent.height * 0.5 fillMode: Image.PreserveAspectFit
width: height * 1.5 color: qgcPal.buttonText
visible: false
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
} }
ColorOverlay {
id: telemOverlay
anchors.fill: telemIcon
source: telemIcon
color: getRSSIColor(_controller.telemetryLRSSI)
}
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
onClicked: { onClicked: {
...@@ -268,22 +266,24 @@ Row { ...@@ -268,22 +266,24 @@ Row {
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
//-- Battery Indicator //-- Battery Indicator
Item { Item {
id: batteryStatus id: batteryStatus
width: battRow.width * 1.1 width: battRow.width * 1.1
height: mainWindow.tbCellHeight height: mainWindow.tbCellHeight
opacity: (activeVehicle && activeVehicle.battery.voltage.value >= 0) ? 1 : 0.5 opacity: (activeVehicle && activeVehicle.battery.voltage.value >= 0) ? 1 : 0.5
Row { Row {
id: battRow id: battRow
height: mainWindow.tbCellHeight height: mainWindow.tbCellHeight
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
Image {
source: "/qmlimages/Battery.svg" QGCColoredImage {
fillMode: Image.PreserveAspectFit height: mainWindow.tbCellHeight * 0.65
mipmap: true source: "/qmlimages/Battery.svg"
smooth: true fillMode: Image.PreserveAspectFit
height: mainWindow.tbCellHeight * 0.65 color: qgcPal.buttonText
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
} }
QGCLabel { QGCLabel {
text: getBatteryPercentageText() text: getBatteryPercentageText()
font.pixelSize: tbFontLarge font.pixelSize: tbFontLarge
...@@ -291,6 +291,7 @@ Row { ...@@ -291,6 +291,7 @@ Row {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
} }
} }
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
onClicked: { onClicked: {
...@@ -363,24 +364,26 @@ Row { ...@@ -363,24 +364,26 @@ Row {
width: selectorRow.width * 1.1 width: selectorRow.width * 1.1
height: mainWindow.tbCellHeight height: mainWindow.tbCellHeight
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
Row { Row {
id: selectorRow id: selectorRow
spacing: tbSpacing spacing: tbSpacing
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
Image {
width: mainWindow.tbCellHeight * 0.65 QGCColoredImage {
height: mainWindow.tbCellHeight * 0.65 width: mainWindow.tbCellHeight * 0.65
fillMode: Image.PreserveAspectFit height: mainWindow.tbCellHeight * 0.65
mipmap: true fillMode: Image.PreserveAspectFit
smooth: true source: "/qmlimages/Quad.svg"
source: "/qmlimages/Quad.svg" color: qgcPal.buttonText
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
} }
QGCLabel { QGCLabel {
text: activeVehicle ? activeVehicle.flightMode : "N/A" text: activeVehicle ? activeVehicle.flightMode : "N/A"
font.pixelSize: tbFontLarge font.pixelSize: tbFontLarge
color: colorWhite color: qgcPal.buttonText
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
} }
} }
......
...@@ -28,14 +28,20 @@ This file is part of the QGROUNDCONTROL project ...@@ -28,14 +28,20 @@ This file is part of the QGROUNDCONTROL project
*/ */
import QtQuick 2.4 import QtQuick 2.4
import QGroundControl.Controls 1.0
import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0
Item { Item {
id: signalRoot id: signalRoot
property real size: 50
property real percent: 0
width: size width: size
height: size height: size
property real size: 50
property real percent: 0
QGCPalette { id: qgcPal }
function getIcon() { function getIcon() {
if (percent < 20) if (percent < 20)
return "/qmlimages/Signal0.svg" return "/qmlimages/Signal0.svg"
...@@ -49,11 +55,11 @@ Item { ...@@ -49,11 +55,11 @@ Item {
return "/qmlimages/Signal80.svg" return "/qmlimages/Signal80.svg"
return "/qmlimages/Signal100.svg" return "/qmlimages/Signal100.svg"
} }
Image {
QGCColoredImage {
source: getIcon() source: getIcon()
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
mipmap: true
smooth: true
anchors.fill: parent anchors.fill: parent
color: qgcPal.buttonText
} }
} }
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