mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 21:03:23 +00:00
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>
This commit is contained in:
parent
96a56cf04d
commit
3bb9b08f33
2 changed files with 8 additions and 1 deletions
|
@ -1,3 +1,4 @@
|
|||
Mobile: add option to only show one column in portrait mode
|
||||
Mobile: fix potential crash when adding / editing dives
|
||||
Mobile: automatically scroll the dive edit screen so that the notes edit cursor stays visible
|
||||
Desktop: ignore dive sites without location in proximity search
|
||||
|
|
|
@ -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")
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue