mobile-widgets/qml: secure subsurfaceTheme.initial*

move initialWidth/initialHeight out of subsurfaceTheme to placeHolder,
this secures no change in behaviour.

Signed-off-by: jan Iversen <jan@casacondor.com>
This commit is contained in:
jan Iversen 2020-01-15 09:22:33 +01:00 committed by Dirk Hohndel
parent c3be85fbd9
commit 38120d555f

View file

@ -590,6 +590,23 @@ if you have network connectivity and want to sync your data to cloud storage."),
manager.appendTextToLog("Done setting up sizes")
}
QtObject {
id: placeHolder
property int initialWidth: rootItem.width
property int initialHeight: rootItem.height
Component.onCompleted: {
// break the binding
initialWidth = initialWidth * 1
manager.appendTextToLog("SubsufaceTheme constructor completed, initial width " + initialWidth)
if (rootItem.firstChange) // only run the setup if we haven't seen a change, yet
setupUnits() // but don't count this as a change (after all, it's not)
else
manager.appendTextToLog("Already adjusted size, ignoring this")
}
}
QtObject {
id: subsurfaceTheme
@ -612,28 +629,16 @@ if you have network connectivity and want to sync your data to cloud storage."),
property color contrastAccentColor: ThemeNew.contrastAccentColor
property color lightDrawerColor: ThemeNew.lightDrawerColor
property int initialWidth: rootItem.width
property int initialHeight: rootItem.height
Component.onCompleted: {
// break the binding
initialWidth = initialWidth * 1
manager.appendTextToLog("SubsufaceTheme constructor completed, initial width " + initialWidth)
if (rootItem.firstChange) // only run the setup if we haven't seen a change, yet
setupUnits() // but don't count this as a change (after all, it's not)
else
manager.appendTextToLog("Already adjusted size, ignoring this")
}
}
onWidthChanged: {
manager.appendTextToLog("Window width changed to " + width + " orientation " + Screen.primaryOrientation)
if (subsurfaceTheme.initialWidth !== undefined) {
if (width !== subsurfaceTheme.initialWidth && rootItem.firstChange) {
if (placeHolder.initialWidth !== undefined) {
if (width !== placeHolder.initialWidth && rootItem.firstChange) {
rootItem.firstChange = false
rootItem.lastOrientation = Screen.primaryOrientation
subsurfaceTheme.initialWidth = width
subsurfaceTheme.initialHeight = height
placeHolder.initialWidth = width
placeHolder.initialHeight = height
manager.appendTextToLog("first real change, so recalculating units and recording size as " + width + " x " + height)
setupUnits()
} else if (rootItem.lastOrientation !== undefined && rootItem.lastOrientation !== Screen.primaryOrientation) {
@ -642,10 +647,10 @@ if you have network connectivity and want to sync your data to cloud storage."),
setupUnits()
} else {
manager.appendTextToLog("size change without rotation to " + width + " x " + height)
if (width > subsurfaceTheme.initialWidth) {
manager.appendTextToLog("resetting to initial width " + subsurfaceTheme.initialWidth + " and height " + subsurfaceTheme.initialHeight)
rootItem.width = subsurfaceTheme.initialWidth
rootItem.height = subsurfaceTheme.initialHeight
if (width > placeHolder.initialWidth) {
manager.appendTextToLog("resetting to initial width " + placeHolder.initialWidth + " and height " + placeHolder.initialHeight)
rootItem.width = placeHolder.initialWidth
rootItem.height = placeHolder.initialHeight
}
}
} else {