From 9cfffd5b6ea437fef61512728472999158a084b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=20=EA=A6=AB=EA=A6=B6=20=EA=A6=8F=EA=A7=80?= =?UTF-8?q?=EA=A6=A6=EA=A6=BF=20=EA=A6=A7=20=EA=A6=AE=20=EA=A6=91=20?= =?UTF-8?q?=EA=A6=A9=20=EA=A6=AD=EA=A7=80?= Date: Wed, 25 Sep 2019 10:57:33 +0800 Subject: Profile presentation code from Kelakon --- features/ProfileForm.ui.qml | 354 ++++++++++++++++++++++++-------------------- 1 file changed, 197 insertions(+), 157 deletions(-) diff --git a/features/ProfileForm.ui.qml b/features/ProfileForm.ui.qml index 74cb183..452a895 100644 --- a/features/ProfileForm.ui.qml +++ b/features/ProfileForm.ui.qml @@ -4,172 +4,212 @@ import QtQuick.Controls.Material 2.12 import QtQuick.Layouts 1.12 Page { - id: page - title: qsTr("Profile") - background: Rectangle { - color: "#FFFFFF" - } + property alias backButton: backButton + property alias editToolButton: editToolButton + property alias fullnameLabel: fullnameLabel + property alias usernameLabel: usernameLabel + property alias userEmailLabel: userEmailLabel - property alias usernameLabel: usernameLabel - property alias fullnameLabel: fullnameLabel - property alias userEmailLabel: userEmailLabel + header: ToolBar{ + background: Rectangle { + color: "#FAFFFFFF" + } + RowLayout { + anchors.fill: parent + spacing: 0 + ToolButton { + id: backButton + icon.name: "back-button" + icon.source: "/components/icons/arrow-back-24px.svg" + highlighted: true + } + Label { + text: contentView.currentItem.title + Layout.leftMargin: 16 + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignLeft + wrapMode: Text.WordWrap + font.family: "Work Sans" + font.weight: Font.Medium + font.pointSize: 20 + color: "#000000" + Layout.fillWidth: true + } + ToolButton { + id: editToolButton + text: qsTr("Edit") + font.weight: Font.Medium + display: AbstractButton.TextOnly + font.family: "Work Sans" + font.capitalization: Font.MixedCase + flat: false + highlighted: true + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + } + } + } - Rectangle { - id: avatarLayout - width: 80 - height: 80 - color: "#196d22e9" - radius: 100 - anchors.top: parent.top - anchors.topMargin: 32 - anchors.horizontalCenter: parent.horizontalCenter - border.width: 0 - } - RowLayout { - id: fullnameRowLayout - height: 56 - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: avatarLayout.bottom - anchors.topMargin: 32 - width: parent.width + StackView { + id: contentView + anchors.fill: parent + initialItem: Page { + id: page + title: qsTr("Profile") + background: Rectangle { + color: "#FFFFFF" + } - Image { - width: 24 - height: 24 - opacity: 0.54 - sourceSize.height: 24 - sourceSize.width: 24 - Layout.leftMargin: 16 - Layout.alignment: Qt.AlignVCenter - fillMode: Image.PreserveAspectFit - source: "/components/icons/profile-24px.svg" - antialiasing: true - } + Rectangle { + id: avatarLayout + width: 80 + height: 80 + color: "#196d22e9" + radius: 100 + anchors.top: parent.top + anchors.topMargin: 32 + anchors.horizontalCenter: parent.horizontalCenter + border.width: 0 + } + RowLayout { + id: fullnameRowLayout + height: 56 + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: avatarLayout.bottom + anchors.topMargin: 32 + width: parent.width - Label { - id: fullnameLabel - Layout.rightMargin: 16 - Layout.leftMargin: 24 - font.pointSize: 16 - font.family: "Work Sans" - Layout.fillWidth: true - text: qsTr("Full name") - Layout.alignment: Qt.AlignVCenter - } - } - RowLayout { - id: usernameRowLayout - anchors.horizontalCenter: parent.horizontalCenter - width: parent.width - height: 56 - Layout.alignment: Qt.AlignVCenter - anchors.top: fullnameRowLayout.bottom - anchors.topMargin: 16 + Image { + width: 24 + height: 24 + opacity: 0.54 + sourceSize.height: 24 + sourceSize.width: 24 + Layout.leftMargin: 16 + Layout.alignment: Qt.AlignVCenter + fillMode: Image.PreserveAspectFit + source: "/components/icons/profile-24px.svg" + antialiasing: true + } - Image { - width: 24 - height: 24 - opacity: 0.54 - sourceSize.height: 24 - sourceSize.width: 24 - Layout.leftMargin: 16 - Layout.alignment: Qt.AlignVCenter - fillMode: Image.PreserveAspectFit - source: "/components/icons/user-24px.svg" - antialiasing: true - } + Label { + id: fullnameLabel + Layout.rightMargin: 16 + Layout.leftMargin: 24 + font.pointSize: 16 + font.family: "Work Sans" + Layout.fillWidth: true + text: qsTr("Full name") + Layout.alignment: Qt.AlignVCenter + } + } + RowLayout { + id: usernameRowLayout + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width + height: 56 + Layout.alignment: Qt.AlignVCenter + anchors.top: fullnameRowLayout.bottom + anchors.topMargin: 16 - Label { - id: usernameLabel - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - Layout.rightMargin: 16 - Layout.leftMargin: 24 - font.pointSize: 16 - font.family: "Work Sans" - Layout.fillWidth: true - text: qsTr("Username") - } - } + Image { + width: 24 + height: 24 + opacity: 0.54 + sourceSize.height: 24 + sourceSize.width: 24 + Layout.leftMargin: 16 + Layout.alignment: Qt.AlignVCenter + fillMode: Image.PreserveAspectFit + source: "/components/icons/user-24px.svg" + antialiasing: true + } - RowLayout { - id: userEmail - height: 56 - anchors.topMargin: 16 - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: usernameRowLayout.bottom - width: parent.width - spacing: 8 + Label { + id: usernameLabel + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + Layout.rightMargin: 16 + Layout.leftMargin: 24 + font.pointSize: 16 + font.family: "Work Sans" + Layout.fillWidth: true + text: qsTr("Username") + } + } - Image { - width: 24 - height: 24 - opacity: 0.54 - sourceSize.height: 24 - sourceSize.width: 24 - Layout.leftMargin: 16 - Layout.alignment: Qt.AlignVCenter - fillMode: Image.PreserveAspectFit - source: "/components/icons/email-24px.svg" - antialiasing: true - } + RowLayout { + id: userEmail + height: 56 + anchors.topMargin: 16 + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: usernameRowLayout.bottom + width: parent.width + spacing: 8 - Label { - id: userEmailLabel - Layout.fillWidth: true - text: qsTr("Your@email.com") - Layout.rightMargin: 16 - Layout.leftMargin: 24 - verticalAlignment: Text.AlignVCenter - font.family: "Work Sans" - font.pointSize: 16 - } - } + Image { + width: 24 + height: 24 + opacity: 0.54 + sourceSize.height: 24 + sourceSize.width: 24 + Layout.leftMargin: 16 + Layout.alignment: Qt.AlignVCenter + fillMode: Image.PreserveAspectFit + source: "/components/icons/email-24px.svg" + antialiasing: true + } - ItemDelegate { - id: profileSettings - height: 56 - anchors.bottom: profileLogout.top - anchors.bottomMargin: 8 - Layout.fillWidth: true - text: qsTr("Settings") - display: AbstractButton.TextOnly - anchors.right: parent.right - anchors.rightMargin: 0 - anchors.left: parent.left - anchors.leftMargin: 0 - font.weight: Font.Medium - font.family: "Work Sans" - font.pointSize: 16 - } - ItemDelegate { - id: profileLogout - height: 56 - anchors.bottom: parent.bottom - anchors.bottomMargin: 8 - Layout.fillWidth: true - Text { - text: qsTr("Log out") - anchors.left: parent.left - anchors.leftMargin: 16 - anchors.verticalCenter: parent.verticalCenter - verticalAlignment: Text.AlignVCenter - wrapMode: Text.WordWrap - font.weight: Font.Medium - font.family: "Work Sans" - font.pointSize: 16 - color: "#f44336" - } - display: AbstractButton.TextOnly - anchors.right: parent.right - anchors.rightMargin: 0 - anchors.left: parent.left - anchors.leftMargin: 0 - } -} + Label { + id: userEmailLabel + Layout.fillWidth: true + text: qsTr("Your@email.com") + Layout.rightMargin: 16 + Layout.leftMargin: 24 + verticalAlignment: Text.AlignVCenter + font.family: "Work Sans" + font.pointSize: 16 + } + } -/*##^## -Designer { - D{i:0;autoSize:true;height:480;width:640} + ItemDelegate { + id: profileSettings + height: 56 + anchors.bottom: profileLogout.top + anchors.bottomMargin: 8 + Layout.fillWidth: true + text: qsTr("Settings") + display: AbstractButton.TextOnly + anchors.right: parent.right + anchors.rightMargin: 0 + anchors.left: parent.left + anchors.leftMargin: 0 + font.weight: Font.Medium + font.family: "Work Sans" + font.pointSize: 16 + } + ItemDelegate { + id: profileLogout + height: 56 + anchors.bottom: parent.bottom + anchors.bottomMargin: 8 + Layout.fillWidth: true + Text { + text: qsTr("Log out") + anchors.left: parent.left + anchors.leftMargin: 16 + anchors.verticalCenter: parent.verticalCenter + verticalAlignment: Text.AlignVCenter + wrapMode: Text.WordWrap + font.weight: Font.Medium + font.family: "Work Sans" + font.pointSize: 16 + color: "#f44336" + } + display: AbstractButton.TextOnly + anchors.right: parent.right + anchors.rightMargin: 0 + anchors.left: parent.left + anchors.leftMargin: 0 + } + } + } } -##^##*/ - -- cgit v1.2.3