Make edit account UI more scalable

Put content in flickable, reduce avatar height as needed.
The minimum supported resolution of the app should now be 240x120.
This commit is contained in:
miruka 2019-07-15 17:43:53 -04:00
parent 62056b6124
commit 503252f1c7
4 changed files with 44 additions and 29 deletions

View File

@ -9,11 +9,8 @@ import "../../utils.js" as Utils
Page { Page {
id: editAccount id: editAccount
padding: currentSpacing < 8 ? 0 : currentSpacing
Behavior on padding { HNumberAnimation {} }
property bool wide: width > 414 + padding * 2 property bool wide: width > 414 + padding * 2
property int thinMaxWidth: 240
property int normalSpacing: 8 property int normalSpacing: 8
property int currentSpacing: property int currentSpacing:
Math.min(normalSpacing * width / 400, normalSpacing * 2) Math.min(normalSpacing * width / 400, normalSpacing * 2)
@ -47,9 +44,21 @@ Page {
background: null background: null
HColumnLayout { padding: currentSpacing < 8 ? 0 : currentSpacing
Behavior on padding { HNumberAnimation {} }
Flickable {
id: flickable
anchors.fill: parent anchors.fill: parent
clip: true
contentWidth: parent.width
contentHeight: boxColumn.childrenRect.height
HColumnLayout {
id: boxColumn
spacing: 16 spacing: 16
width: flickable.width
height: flickable.height
HRectangle { HRectangle {
color: theme.box.background color: theme.box.background
@ -57,11 +66,11 @@ Page {
Layout.alignment: Qt.AlignCenter Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: wide ? parent.width : thinMaxWidth
Layout.maximumWidth: Math.min(parent.width, 640) Layout.maximumWidth: Math.min(parent.width, 640)
Layout.preferredWidth:
wide ? parent.width : theme.minimumSupportedWidth
Layout.preferredHeight: childrenRect.height Layout.preferredHeight: childrenRect.height
Layout.maximumHeight: parent.height
Profile { width: parent.width } Profile { width: parent.width }
} }
@ -79,3 +88,4 @@ Page {
// } // }
} }
} }
}

View File

@ -47,9 +47,9 @@ HGridLayout {
toolTipImageUrl: null toolTipImageUrl: null
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
Layout.topMargin: wide ? 0 : currentSpacing
Layout.preferredWidth: thinMaxWidth Layout.preferredWidth:
Math.min(flickable.height, theme.minimumSupportedWidth)
Layout.preferredHeight: Layout.preferredWidth Layout.preferredHeight: Layout.preferredWidth
HFileDialogOpener { HFileDialogOpener {

View File

@ -8,6 +8,9 @@ QtObject {
property int animationDuration: 100 property int animationDuration: 100
property int minimumSupportedWidth: 240
property int minimumSupportedHeight: 120
property QtObject fontSize: QtObject { property QtObject fontSize: QtObject {
property int smallest: 6 property int smallest: 6
property int smaller: 8 property int smaller: 8

View File

@ -8,11 +8,13 @@ import "Models"
ApplicationWindow { ApplicationWindow {
id: window id: window
minimumWidth: theme.minimumSupportedWidth
minimumHeight: theme.minimumSupportedHeight
width: 640 width: 640
height: 480 height: 480
visible: true visible: true
color: "black"
title: "Harmony QML" title: "Harmony QML"
color: "black"
property bool debug: false property bool debug: false
property bool ready: false property bool ready: false