summaryrefslogtreecommitdiff
path: root/features
diff options
context:
space:
mode:
authorꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2019-09-25 10:57:33 +0800
committerꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2019-09-25 11:00:17 +0800
commit9cfffd5b6ea437fef61512728472999158a084b7 (patch)
tree88d675cc556b659007a8cd413294f44d45fc4706 /features
parent15aa7f7118ee297f3492586a591303323c056828 (diff)
Profile presentation code from Kelakon
Diffstat (limited to 'features')
-rw-r--r--features/ProfileForm.ui.qml354
1 files 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
+ }
+ }
+ }
}
-##^##*/
-