Commit b95217d1 authored by Gus Grubba's avatar Gus Grubba Committed by Gus Grubba

Allow plugin to override pixel ratio and density

parent aeae385a
...@@ -53,12 +53,15 @@ Item { ...@@ -53,12 +53,15 @@ Item {
readonly property real mediumFontPointRatio: 1.25 readonly property real mediumFontPointRatio: 1.25
readonly property real largeFontPointRatio: 1.5 readonly property real largeFontPointRatio: 1.5
property real realPixelDensity: QGroundControl.corePlugin.options.devicePixelDensity != 0 ? QGroundControl.corePlugin.options.devicePixelDensity : Screen.pixelDensity
property real realPixelRatio: QGroundControl.corePlugin.options.devicePixelRatio != 0 ? QGroundControl.corePlugin.options.devicePixelRatio : Screen.devicePixelRatio
property bool isAndroid: ScreenToolsController.isAndroid property bool isAndroid: ScreenToolsController.isAndroid
property bool isiOS: ScreenToolsController.isiOS property bool isiOS: ScreenToolsController.isiOS
property bool isMobile: ScreenToolsController.isMobile property bool isMobile: ScreenToolsController.isMobile
property bool isWindows: ScreenToolsController.isWindows property bool isWindows: ScreenToolsController.isWindows
property bool isDebug: ScreenToolsController.isDebug property bool isDebug: ScreenToolsController.isDebug
property bool isTinyScreen: (Screen.width / Screen.pixelDensity) < 120 // 120mm property bool isTinyScreen: (Screen.width / realPixelDensity) < 120 // 120mm
property bool isShortScreen: ScreenToolsController.isMobile && ((Screen.height / Screen.width) < 0.6) // Nexus 7 for example property bool isShortScreen: ScreenToolsController.isMobile && ((Screen.height / Screen.width) < 0.6) // Nexus 7 for example
property bool isHugeScreen: Screen.width >= 1920*2 property bool isHugeScreen: Screen.width >= 1920*2
...@@ -91,6 +94,14 @@ Item { ...@@ -91,6 +94,14 @@ Item {
} }
} }
onRealPixelDensityChanged: {
_setBasePointSize(defaultFontPointSize)
}
onRealPixelRatioChanged: {
_setBasePointSize(defaultFontPointSize)
}
function printScreenStats() { function printScreenStats() {
console.log('ScreenTools: Screen.width: ' + Screen.width + ' Screen.height: ' + Screen.height + ' Screen.pixelDensity: ' + Screen.pixelDensity) console.log('ScreenTools: Screen.width: ' + Screen.width + ' Screen.height: ' + Screen.height + ' Screen.pixelDensity: ' + Screen.pixelDensity)
} }
...@@ -114,13 +125,11 @@ Item { ...@@ -114,13 +125,11 @@ Item {
smallFontPointSize = defaultFontPointSize * _screenTools.smallFontPointRatio smallFontPointSize = defaultFontPointSize * _screenTools.smallFontPointRatio
mediumFontPointSize = defaultFontPointSize * _screenTools.mediumFontPointRatio mediumFontPointSize = defaultFontPointSize * _screenTools.mediumFontPointRatio
largeFontPointSize = defaultFontPointSize * _screenTools.largeFontPointRatio largeFontPointSize = defaultFontPointSize * _screenTools.largeFontPointRatio
minTouchPixels = Math.round(minTouchMillimeters * Screen.pixelDensity) minTouchPixels = Math.round(minTouchMillimeters * realPixelDensity * realPixelRatio)
if (minTouchPixels / Screen.height > 0.15) { if (minTouchPixels / Screen.height > 0.15) {
// If using physical sizing takes up too much o fthe vertical real estate fall back to font based sizing // If using physical sizing takes up too much of the vertical real estate fall back to font based sizing
minTouchPixels = defaultFontPixelHeight * 3 minTouchPixels = defaultFontPixelHeight * 3
} }
//console.log(minTouchPixels / Screen.height)
toolbarHeight = isMobile ? minTouchPixels : defaultFontPixelHeight * 3 toolbarHeight = isMobile ? minTouchPixels : defaultFontPixelHeight * 3
} }
...@@ -151,7 +160,7 @@ Item { ...@@ -151,7 +160,7 @@ Item {
} else { } else {
baseSize = 14; baseSize = 14;
} }
} else if((Screen.width / Screen.pixelDensity) < 120) { } else if((Screen.width / realPixelDensity) < 120) {
baseSize = 11; baseSize = 11;
// Other Android // Other Android
} else { } else {
......
...@@ -50,6 +50,8 @@ public: ...@@ -50,6 +50,8 @@ public:
Q_PROPERTY(bool showMissionAbsoluteAltitude READ showMissionAbsoluteAltitude NOTIFY showMissionAbsoluteAltitudeChanged) Q_PROPERTY(bool showMissionAbsoluteAltitude READ showMissionAbsoluteAltitude NOTIFY showMissionAbsoluteAltitudeChanged)
Q_PROPERTY(bool showSimpleMissionStart READ showSimpleMissionStart NOTIFY showSimpleMissionStartChanged) Q_PROPERTY(bool showSimpleMissionStart READ showSimpleMissionStart NOTIFY showSimpleMissionStartChanged)
Q_PROPERTY(bool disableVehicleConnection READ disableVehicleConnection CONSTANT) Q_PROPERTY(bool disableVehicleConnection READ disableVehicleConnection CONSTANT)
Q_PROPERTY(float devicePixelRatio READ devicePixelRatio NOTIFY devicePixelRatioChanged)
Q_PROPERTY(float devicePixelDensity READ devicePixelDensity NOTIFY devicePixelDensityChanged)
/// Should QGC hide its settings menu and colapse it into one single menu (Settings and Vehicle Setup)? /// Should QGC hide its settings menu and colapse it into one single menu (Settings and Vehicle Setup)?
/// @return true if QGC should consolidate both menus into one. /// @return true if QGC should consolidate both menus into one.
...@@ -104,6 +106,10 @@ public: ...@@ -104,6 +106,10 @@ public:
/// the Advanced options. /// the Advanced options.
virtual QString firmwareUpgradeSingleURL () const { return QString(); } virtual QString firmwareUpgradeSingleURL () const { return QString(); }
/// Device specific pixel ratio/density (for when Qt doesn't properly read it from the hardware)
virtual float devicePixelRatio () const { return 0.0f; }
virtual float devicePixelDensity () const { return 0.0f; }
signals: signals:
void showSensorCalibrationCompassChanged (bool show); void showSensorCalibrationCompassChanged (bool show);
void showSensorCalibrationGyroChanged (bool show); void showSensorCalibrationGyroChanged (bool show);
...@@ -119,6 +125,8 @@ signals: ...@@ -119,6 +125,8 @@ signals:
void showOfflineMapImportChanged (); void showOfflineMapImportChanged ();
void showMissionAbsoluteAltitudeChanged (); void showMissionAbsoluteAltitudeChanged ();
void showSimpleMissionStartChanged (); void showSimpleMissionStartChanged ();
void devicePixelRatioChanged ();
void devicePixelDensityChanged ();
private: private:
CustomInstrumentWidget* _defaultInstrumentWidget; CustomInstrumentWidget* _defaultInstrumentWidget;
......
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