Commit 0ac27416 authored by Don Gagne's avatar Don Gagne

Use new QGCPalette::dpiAdjustedDefaultFontPointSize

Use default font wherever possible. Where that doesn’t work, use
ScreenTools::dpiAdjustPointSize.
parent ff56426e
...@@ -197,12 +197,10 @@ Rectangle { ...@@ -197,12 +197,10 @@ Rectangle {
text: "Battery Max:" text: "Battery Max:"
color: palette.text color: palette.text
width: 80 width: 80
font.pointSize: screenTools.dpiAdjustedPointSize(12);
} }
QGCLabel { QGCLabel {
text: (battNumCells.value * battHighVolt.value).toFixed(1) + ' V' text: (battNumCells.value * battHighVolt.value).toFixed(1) + ' V'
color: palette.text color: palette.text
font.pointSize: screenTools.dpiAdjustedPointSize(12);
} }
} }
Row { Row {
...@@ -211,12 +209,10 @@ Rectangle { ...@@ -211,12 +209,10 @@ Rectangle {
text: "Battery Min:" text: "Battery Min:"
color: palette.text color: palette.text
width: 80 width: 80
font.pointSize: screenTools.dpiAdjustedPointSize(12);
} }
QGCLabel { QGCLabel {
text: (battNumCells.value * battLowVolt.value).toFixed(1) + ' V' text: (battNumCells.value * battLowVolt.value).toFixed(1) + ' V'
color: palette.text color: palette.text
font.pointSize: screenTools.dpiAdjustedPointSize(12);
} }
} }
} }
......
...@@ -103,10 +103,13 @@ Button { ...@@ -103,10 +103,13 @@ Button {
} }
Text { Text {
id: text id: text
renderType: Text.NativeRendering renderType: Text.NativeRendering
text: control.text
font.pointSize: __qgcPal.dpiAdjustedDefaultFontPointSize
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: control.text
color: __showHighlight ? color: __showHighlight ?
control.__qgcPal.buttonHighlightText : control.__qgcPal.buttonHighlightText :
(primary ? control.__qgcPal.primaryButtonText : control.__qgcPal.buttonText) (primary ? control.__qgcPal.primaryButtonText : control.__qgcPal.buttonText)
......
...@@ -25,9 +25,12 @@ CheckBox { ...@@ -25,9 +25,12 @@ CheckBox {
opacity: 0.6 opacity: 0.6
} }
Text { Text {
id: text id: text
text: control.text text: control.text
font.pointSize: __qgcPal.dpiAdjustedDefaultFontPointSize
anchors.centerIn: parent anchors.centerIn: parent
color: control.__qgcPal.text color: control.__qgcPal.text
} }
} }
......
...@@ -11,6 +11,7 @@ ComboBox { ...@@ -11,6 +11,7 @@ ComboBox {
property bool __showHighlight: pressed | hovered property bool __showHighlight: pressed | hovered
style: ComboBoxStyle { style: ComboBoxStyle {
font.pointSize: __qgcPal.dpiAdjustedDefaultFontPointSize
textColor: __showHighlight ? textColor: __showHighlight ?
control.__qgcPal.buttonHighlightText : control.__qgcPal.buttonHighlightText :
control.__qgcPal.buttonText control.__qgcPal.buttonText
......
...@@ -5,8 +5,10 @@ import QtQuick.Controls.Styles 1.2 ...@@ -5,8 +5,10 @@ import QtQuick.Controls.Styles 1.2
import QGroundControl.Palette 1.0 import QGroundControl.Palette 1.0
Text { Text {
property var __palette: QGCPalette { colorGroupEnabled: enabled } QGCPalette { id: __qgcPal; colorGroupEnabled: enabled }
property bool enabled: true property bool enabled: true
color: __palette.text font.pointSize: __qgcPal.dpiAdjustedDefaultFontPointSize
color: __qgcPal.text
} }
...@@ -25,9 +25,12 @@ RadioButton { ...@@ -25,9 +25,12 @@ RadioButton {
opacity: 0.6 opacity: 0.6
} }
Text { Text {
id: text id: text
text: control.text text: control.text
font.pointSize: __qgcPal.dpiAdjustedDefaultFontPointSize
anchors.centerIn: parent anchors.centerIn: parent
color: control.__qgcPal.text color: control.__qgcPal.text
} }
} }
......
...@@ -49,6 +49,8 @@ TextField { ...@@ -49,6 +49,8 @@ TextField {
width: unitsLabelWidthGenerator.width width: unitsLabelWidthGenerator.width
text: control.unitsLabel text: control.unitsLabel
font.pointSize: __qgcPal.dpiAdjustedDefaultFontPointSize
color: control.textColor color: control.textColor
visible: control.showUnits visible: control.showUnits
} }
......
...@@ -53,6 +53,7 @@ QGCButton { ...@@ -53,6 +53,7 @@ QGCButton {
} }
label: Label { label: Label {
text: button.text text: button.text
font.pointSize: __qgcPal.dpiAdjustedDefaultFontPointSize
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
color: showHighlight ? __qgcPal.buttonHighlightText : (button.checked ? __qgcPal.primaryButtonText : __qgcPal.buttonText) color: showHighlight ? __qgcPal.buttonHighlightText : (button.checked ? __qgcPal.primaryButtonText : __qgcPal.buttonText)
......
...@@ -27,26 +27,45 @@ ...@@ -27,26 +27,45 @@
#include "ScreenTools.h" #include "ScreenTools.h"
#include "MainWindow.h" #include "MainWindow.h"
#include <QFont>
#include <QFontMetrics>
bool ScreenTools::_dpiFactorSet = false;
double ScreenTools::_dotsPerInch = 96.0;
double ScreenTools::_dpiFactor = 72.0 / 96.0;
ScreenTools::ScreenTools() ScreenTools::ScreenTools()
: _dotsPerInch(96.0)
, _dpiFactor( 72.0 / 96.0)
{ {
// Get screen DPI to manage font sizes on different platforms
QScreen *srn = QGuiApplication::primaryScreen();
if(srn && srn->logicalDotsPerInch() > 50.0) {
_dotsPerInch = (double)srn->logicalDotsPerInch(); // Font point sizes are based on Mac 72dpi
_dpiFactor = 72.0 / _dotsPerInch;
} else {
qWarning() << "System not reporting logical DPI, which is used to compute the appropriate font size. The default being used is 96dpi. If the text within buttons and UI elements are too big or too small, that's the reason.";
}
connect(MainWindow::instance(), &MainWindow::repaintCanvas, this, &ScreenTools::_updateCanvas); connect(MainWindow::instance(), &MainWindow::repaintCanvas, this, &ScreenTools::_updateCanvas);
} }
qreal ScreenTools::dpiAdjustedPointSize(qreal pointSize) qreal ScreenTools::dpiAdjustedPointSize(qreal pointSize)
{ {
return dpiAdjustedPointSize_s(pointSize);
}
qreal ScreenTools::dpiAdjustedPointSize_s(qreal pointSize)
{
_setDpiFactor();
return pointSize * _dpiFactor; return pointSize * _dpiFactor;
} }
void ScreenTools::_setDpiFactor(void)
{
if (!_dpiFactorSet) {
_dpiFactorSet = true;
// Get screen DPI to manage font sizes on different platforms
QScreen *srn = QGuiApplication::primaryScreen();
if(srn && srn->logicalDotsPerInch() > 50.0) {
_dotsPerInch = (double)srn->logicalDotsPerInch(); // Font point sizes are based on Mac 72dpi
_dpiFactor = 72.0 / _dotsPerInch;
} else {
qWarning() << "System not reporting logical DPI, which is used to compute the appropriate font size. The default being used is 96dpi. If the text within buttons and UI elements are too big or too small, that's the reason.";
}
}
}
void ScreenTools::_updateCanvas() void ScreenTools::_updateCanvas()
{ {
emit repaintRequestedChanged(); emit repaintRequestedChanged();
......
...@@ -116,6 +116,9 @@ public: ...@@ -116,6 +116,9 @@ public:
*/ */
Q_INVOKABLE qreal dpiAdjustedPointSize(qreal pointSize); Q_INVOKABLE qreal dpiAdjustedPointSize(qreal pointSize);
/// Static version of dpiAdjustedPointSize of use in C++ code
static qreal dpiAdjustedPointSize_s(qreal pointSize);
double screenDPI () { return _dotsPerInch; } double screenDPI () { return _dotsPerInch; }
double dpiFactor () { return _dpiFactor; } double dpiFactor () { return _dpiFactor; }
int mouseX () { return QCursor::pos().x(); } int mouseX () { return QCursor::pos().x(); }
...@@ -129,9 +132,11 @@ private slots: ...@@ -129,9 +132,11 @@ private slots:
void _updateCanvas(); void _updateCanvas();
private: private:
double _dotsPerInch; static void _setDpiFactor(void);
double _dpiFactor;
static bool _dpiFactorSet;
static double _dotsPerInch;
static double _dpiFactor;
}; };
#endif #endif
...@@ -39,7 +39,7 @@ Button { ...@@ -39,7 +39,7 @@ Button {
horizontalAlignment: TextEdit.AlignHCenter horizontalAlignment: TextEdit.AlignHCenter
text: control.text text: control.text
font.pixelSize: 12 font.pointSize: __qgcPal.dpiAdjustedDefaultFontPointSize
color: __showHighlight ? __qgcPal.buttonHighlightText : __qgcPal.buttonText color: __showHighlight ? __qgcPal.buttonHighlightText : __qgcPal.buttonText
Rectangle { Rectangle {
......
...@@ -30,7 +30,7 @@ import QGroundControl.ScreenTools 1.0 ...@@ -30,7 +30,7 @@ import QGroundControl.ScreenTools 1.0
Rectangle { Rectangle {
property var __qgcPal: QGCPalette { colorGroupEnabled: enabled } property var __qgcPal: QGCPalette { colorGroupEnabled: enabled }
property ScreenTools screenTools: ScreenTools { } property ScreenTools __screenTools: ScreenTools { }
// Indicates whether calibration is valid for this control // Indicates whether calibration is valid for this control
property bool calValid: false property bool calValid: false
...@@ -63,23 +63,23 @@ Rectangle { ...@@ -63,23 +63,23 @@ Rectangle {
smooth: true smooth: true
} }
Label { QGCLabel {
width: parent.width width: parent.width
height: parent.height height: parent.height
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignBottom verticalAlignment: Text.AlignBottom
font.pointSize: screenTools.dpiAdjustedPointSize(25); font.pointSize: __screenTools.dpiAdjustedPointSize(25);
font.bold: true font.bold: true
color: "black" color: "black"
text: parent.calText text: parent.calText
} }
Label { QGCLabel {
width: parent.width width: parent.width
height: parent.height height: parent.height
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignBottom verticalAlignment: Text.AlignBottom
font.pointSize: screenTools.dpiAdjustedPointSize(25); font.pointSize: __screenTools.dpiAdjustedPointSize(25);
color: calInProgress ? "yellow" : "white" color: calInProgress ? "yellow" : "white"
text: parent.calText text: parent.calText
......
...@@ -114,11 +114,15 @@ Rectangle { ...@@ -114,11 +114,15 @@ Rectangle {
TextArea { TextArea {
id: statusTextArea id: statusTextArea
width: parent.width
height: 300 width: parent.width
readOnly: true height: 300
frameVisible: false readOnly: true
text: qsTr("Please disconnect all connections and unplug board from USB before selecting Upgrade.") frameVisible: false
font.pointSize: qgcPal.dpiAdjustedDefaultFontPointSize
text: qsTr("Please disconnect all connections and unplug board from USB before selecting Upgrade.")
style: TextAreaStyle { style: TextAreaStyle {
textColor: qgcPal.text textColor: qgcPal.text
backgroundColor: qgcPal.windowShade backgroundColor: qgcPal.windowShade
......
...@@ -90,11 +90,10 @@ Rectangle { ...@@ -90,11 +90,10 @@ Rectangle {
color: qgcPal.windowShadeDark color: qgcPal.windowShadeDark
// Title text // Title text
Text { QGCLabel {
anchors.fill: parent anchors.fill: parent
color: qgcPal.buttonText color: qgcPal.buttonText
font.pixelSize: 12
text: modelData.name.toUpperCase() text: modelData.name.toUpperCase()
verticalAlignment: TextEdit.AlignVCenter verticalAlignment: TextEdit.AlignVCenter
......
...@@ -238,7 +238,7 @@ Rectangle { ...@@ -238,7 +238,7 @@ Rectangle {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right anchors.right: parent.right
width: messages.width - messageIcon.width width: messages.width - messageIcon.width
Text { QGCLabel {
id: messageText id: messageText
text: (mainToolBar.messageCount > 0) ? mainToolBar.messageCount : '' text: (mainToolBar.messageCount > 0) ? mainToolBar.messageCount : ''
font.pointSize: screenTools.dpiAdjustedPointSize(14); font.pointSize: screenTools.dpiAdjustedPointSize(14);
...@@ -326,7 +326,7 @@ Rectangle { ...@@ -326,7 +326,7 @@ Rectangle {
smooth: true smooth: true
} }
Text { QGCLabel {
id: satelitteText id: satelitteText
text: (mainToolBar.satelliteCount > 0) ? mainToolBar.satelliteCount : '' text: (mainToolBar.satelliteCount > 0) ? mainToolBar.satelliteCount : ''
font.pointSize: screenTools.dpiAdjustedPointSize(14); font.pointSize: screenTools.dpiAdjustedPointSize(14);
...@@ -361,7 +361,7 @@ Rectangle { ...@@ -361,7 +361,7 @@ Rectangle {
smooth: true smooth: true
} }
Text { QGCLabel {
id: batteryText id: batteryText
text: mainToolBar.batteryVoltage.toFixed(1) + ' V'; text: mainToolBar.batteryVoltage.toFixed(1) + ' V';
font.pointSize: screenTools.dpiAdjustedPointSize(14); font.pointSize: screenTools.dpiAdjustedPointSize(14);
...@@ -389,7 +389,7 @@ Rectangle { ...@@ -389,7 +389,7 @@ Rectangle {
border.color: "#00000000" border.color: "#00000000"
border.width: 0 border.width: 0
Text { QGCLabel {
id: armedStatusText id: armedStatusText
text: (mainToolBar.systemArmed) ? qsTr("ARMED") : qsTr("DISARMED") text: (mainToolBar.systemArmed) ? qsTr("ARMED") : qsTr("DISARMED")
font.pointSize: screenTools.dpiAdjustedPointSize(12); font.pointSize: screenTools.dpiAdjustedPointSize(12);
...@@ -408,7 +408,7 @@ Rectangle { ...@@ -408,7 +408,7 @@ Rectangle {
border.color: "#00000000" border.color: "#00000000"
border.width: 0 border.width: 0
Text { QGCLabel {
id: stateStatusText id: stateStatusText
text: mainToolBar.currentState text: mainToolBar.currentState
font.pointSize: screenTools.dpiAdjustedPointSize(12); font.pointSize: screenTools.dpiAdjustedPointSize(12);
...@@ -429,7 +429,7 @@ Rectangle { ...@@ -429,7 +429,7 @@ Rectangle {
border.color: "#00000000" border.color: "#00000000"
border.width: 0 border.width: 0
Text { QGCLabel {
id: modeStatusText id: modeStatusText
text: mainToolBar.currentMode text: mainToolBar.currentMode
font.pointSize: screenTools.dpiAdjustedPointSize(12); font.pointSize: screenTools.dpiAdjustedPointSize(12);
...@@ -450,7 +450,7 @@ Rectangle { ...@@ -450,7 +450,7 @@ Rectangle {
border.color: "#00000000" border.color: "#00000000"
border.width: 0 border.width: 0
Text { QGCLabel {
id: connectionStatusText id: connectionStatusText
text: qsTr("CONNECTION LOST") text: qsTr("CONNECTION LOST")
font.pointSize: screenTools.dpiAdjustedPointSize(14); font.pointSize: screenTools.dpiAdjustedPointSize(14);
......
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