aboutsummaryrefslogtreecommitdiffstats
path: root/mobile-widgets/qml/main.qml
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2020-02-08 11:11:45 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-02-08 13:58:54 -0800
commit3bb9b08f330f2657f09e71b8ff495c788a773436 (patch)
tree9b3e83cd5ce1b78bd481bbb9f03058547e67a7fb /mobile-widgets/qml/main.qml
parent96a56cf04d2260919c517e6dd80d61619c9ac096 (diff)
downloadsubsurface-3bb9b08f330f2657f09e71b8ff495c788a773436.tar.gz
mobile UI: correctly determine the number of columns when screen size changes
This also deals with a bug we had before where we didn't re-start the calculation for the various sizes from the assumption of 'at least 21 grid units'. Now you can rotate the device and the right thing will happen. Small warning - this checks the orientation of the screen, which is exactly what you want it to do on your device. When running mobile on desktop this may not be what you expect. Even if the window has a portrait aspect ratio, your screen is likely still landscape... so testing this feature in mobile on desktop mode is a bit harder... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'mobile-widgets/qml/main.qml')
-rw-r--r--mobile-widgets/qml/main.qml8
1 files changed, 7 insertions, 1 deletions
diff --git a/mobile-widgets/qml/main.qml b/mobile-widgets/qml/main.qml
index 752fc0c56..679e54131 100644
--- a/mobile-widgets/qml/main.qml
+++ b/mobile-widgets/qml/main.qml
@@ -571,7 +571,12 @@ if you have network connectivity and want to sync your data to cloud storage."),
function setupUnits() {
// some screens are too narrow for Subsurface-mobile to render well
// try to hack around that by making sure that we can fit at least 21 gridUnits in a row
- var numColumns = Math.floor(rootItem.width/pageStack.defaultColumnWidth)
+ var numColumns = Math.max(Math.floor(rootItem.width / (21 * Kirigami.Units.gridUnit)), 1)
+ if (Screen.primaryOrientation === Qt.PortraitOrientation && PrefDisplay.singleColumnPortrait) {
+ manager.appendTextToLog("show only one column in portrait mode");
+ numColumns = 1;
+ }
+
rootItem.colWidth = numColumns > 1 ? Math.floor(rootItem.width / numColumns) : rootItem.width;
var kirigamiGridUnit = Kirigami.Units.gridUnit
var widthInGridUnits = Math.floor(rootItem.colWidth / kirigamiGridUnit)
@@ -587,6 +592,7 @@ if you have network connectivity and want to sync your data to cloud storage."),
// change our glabal grid unit
Kirigami.Units.gridUnit = kirigamiGridUnit
}
+ pageStack.defaultColumnWidth = rootItem.colWidth
manager.appendTextToLog("Done setting up sizes")
}