lockscreen: Use more loaders to improve load times

This commit is contained in:
Devin Lin 2022-04-10 13:44:37 -04:00
parent 2deea1b4d0
commit 6a31709897
2 changed files with 46 additions and 32 deletions

View file

@ -23,7 +23,6 @@ Loader {
signal passwordRequested() signal passwordRequested()
active: true
asynchronous: true asynchronous: true
sourceComponent: Item { sourceComponent: Item {

View file

@ -12,6 +12,11 @@ import QtQuick.Layouts 1.1
import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.notificationmanager 1.1 as Notifications import org.kde.notificationmanager 1.1 as Notifications
/**
* Lockscreen component that is loaded after the device is locked.
*
* Special attention must be paid to ensuring the GUI loads as fast as possible.
*/
PlasmaCore.ColorScope { PlasmaCore.ColorScope {
id: root id: root
@ -95,7 +100,7 @@ PlasmaCore.ColorScope {
onPasswordRequested: root.askPassword() onPasswordRequested: root.askPassword()
anchors.top: parent.top anchors.top: parent.top
anchors.bottom: scrollUpIcon.top anchors.bottom: scrollUpIconLoader.top
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
@ -116,7 +121,7 @@ PlasmaCore.ColorScope {
anchors.topMargin: headerBar.statusBarHeight anchors.topMargin: headerBar.statusBarHeight
anchors.top: parent.top anchors.top: parent.top
anchors.bottom: scrollUpIcon.top anchors.bottom: scrollUpIconLoader.top
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
@ -125,45 +130,55 @@ PlasmaCore.ColorScope {
} }
// scroll up icon // scroll up icon
PlasmaCore.IconItem { Loader {
id: scrollUpIcon id: scrollUpIconLoader
asynchronous: true
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.bottomMargin: PlasmaCore.Units.gridUnit + flickable.position * 0.5 anchors.bottomMargin: PlasmaCore.Units.gridUnit + flickable.position * 0.5
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
implicitWidth: PlasmaCore.Units.iconSizes.smallMedium
implicitHeight: PlasmaCore.Units.iconSizes.smallMedium
opacity: 1 - flickable.openFactor
colorGroup: PlasmaCore.Theme.ComplementaryColorGroup sourceComponent: PlasmaCore.IconItem {
source: "arrow-up" id: scrollUpIcon
implicitWidth: PlasmaCore.Units.iconSizes.smallMedium
implicitHeight: PlasmaCore.Units.iconSizes.smallMedium
opacity: 1 - flickable.openFactor
colorGroup: PlasmaCore.Theme.ComplementaryColorGroup
source: "arrow-up"
}
} }
// password keypad // password keypad
ColumnLayout { Loader {
id: passwordLayout
anchors.bottom: parent.bottom
transform: Translate { y: flickable.keypadHeight - flickable.position }
width: parent.width width: parent.width
spacing: PlasmaCore.Units.gridUnit asynchronous: true
// scroll down icon anchors.bottom: parent.bottom
PlasmaCore.IconItem {
Layout.alignment: Qt.AlignHCenter sourceComponent: ColumnLayout {
implicitWidth: PlasmaCore.Units.iconSizes.smallMedium transform: Translate { y: flickable.keypadHeight - flickable.position }
implicitHeight: PlasmaCore.Units.iconSizes.smallMedium
colorGroup: PlasmaCore.Theme.ComplementaryColorGroup
source: "arrow-down"
opacity: Math.sin((Math.PI / 2) * flickable.openFactor + 1.5 * Math.PI) + 1
}
Keypad {
id: keypad
Layout.fillWidth: true
focus: true spacing: PlasmaCore.Units.gridUnit
swipeProgress: flickable.openFactor
onPasswordChanged: flickable.goToOpenPosition() // scroll down icon
PlasmaCore.IconItem {
Layout.alignment: Qt.AlignHCenter
implicitWidth: PlasmaCore.Units.iconSizes.smallMedium
implicitHeight: PlasmaCore.Units.iconSizes.smallMedium
colorGroup: PlasmaCore.Theme.ComplementaryColorGroup
source: "arrow-down"
opacity: Math.sin((Math.PI / 2) * flickable.openFactor + 1.5 * Math.PI) + 1
}
Keypad {
id: keypad
Layout.fillWidth: true
focus: true
swipeProgress: flickable.openFactor
onPasswordChanged: flickable.goToOpenPosition()
}
} }
} }
} }