2020-05-19 19:44:45 +00:00
|
|
|
import QtGraphicalEffects 1.12
|
|
|
|
import QtQuick 2.3
|
|
|
|
import QtQuick.Controls 1.3
|
|
|
|
import QtQuick.Controls 2.3
|
|
|
|
import QtQuick.Layouts 1.3
|
|
|
|
import Qt.labs.platform 1.1
|
|
|
|
import "../../../imports"
|
|
|
|
import "../../../shared"
|
|
|
|
|
|
|
|
ColumnLayout {
|
|
|
|
readonly property int w: 340
|
|
|
|
property alias currentTab: profileScreenButtons.currentIndex
|
|
|
|
|
|
|
|
id: profileInfoContainer
|
|
|
|
width: w
|
|
|
|
spacing: 0
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 0
|
|
|
|
anchors.top: parent.top
|
|
|
|
anchors.topMargin: 0
|
|
|
|
anchors.bottom: parent.bottom
|
|
|
|
anchors.bottomMargin: 0
|
|
|
|
|
|
|
|
RowLayout {
|
|
|
|
id: profileHeader
|
|
|
|
height: 240
|
|
|
|
Layout.fillWidth: true
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
|
|
|
|
Rectangle {
|
|
|
|
id: profileHeaderContent
|
|
|
|
height: parent.height
|
|
|
|
Layout.fillWidth: true
|
|
|
|
|
|
|
|
Item {
|
|
|
|
id: profileImgNameContainer
|
|
|
|
width: profileHeaderContent.width
|
|
|
|
height: profileHeaderContent.height
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
anchors.top: parent.top
|
|
|
|
|
|
|
|
Image {
|
|
|
|
id: profileImg
|
2020-05-22 23:33:36 +00:00
|
|
|
source: profileModel.profile.identicon
|
2020-05-19 19:44:45 +00:00
|
|
|
width: 80
|
|
|
|
height: 80
|
|
|
|
fillMode: Image.PreserveAspectCrop
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
|
|
|
|
property bool rounded: true
|
|
|
|
property bool adapt: false
|
|
|
|
y: 78
|
|
|
|
|
|
|
|
layer.enabled: rounded
|
|
|
|
layer.effect: OpacityMask {
|
|
|
|
maskSource: Item {
|
|
|
|
width: profileImg.width
|
|
|
|
height: profileImg.height
|
|
|
|
Rectangle {
|
|
|
|
anchors.centerIn: parent
|
|
|
|
width: profileImg.adapt ? profileImg.width : Math.min(profileImg.width, profileImg.height)
|
|
|
|
height: profileImg.adapt ? profileImg.height : width
|
|
|
|
radius: Math.min(width, height)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Text {
|
|
|
|
id: profileName
|
2020-05-22 23:33:36 +00:00
|
|
|
text: profileModel.profile.username
|
2020-05-19 19:44:45 +00:00
|
|
|
anchors.top: profileImg.bottom
|
|
|
|
anchors.topMargin: 10
|
|
|
|
anchors.horizontalCenterOffset: 0
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
font.weight: Font.Medium
|
|
|
|
font.pixelSize: 20
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
RowLayout {
|
|
|
|
readonly property int btnheight: 42
|
|
|
|
|
|
|
|
id: profileTabBar
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
height: btnheight * 10
|
|
|
|
Layout.fillHeight: true
|
|
|
|
Layout.fillWidth: true
|
|
|
|
|
|
|
|
Rectangle {
|
|
|
|
id: profileTabBarBg
|
|
|
|
color: "#ffffff"
|
|
|
|
height: parent.height
|
|
|
|
Layout.fillHeight: true
|
|
|
|
Layout.fillWidth: true
|
|
|
|
|
|
|
|
TabBar {
|
|
|
|
id: profileScreenButtons
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
height: parent.height
|
|
|
|
anchors.bottom: parent.bottom
|
|
|
|
anchors.bottomMargin: 0
|
|
|
|
currentIndex: 0
|
|
|
|
spacing: 0
|
|
|
|
background: Rectangle {
|
|
|
|
color: "#00000000"
|
|
|
|
}
|
|
|
|
|
|
|
|
TabButton {
|
|
|
|
id: ensTabButton
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
height: profileTabBar.btnheight
|
|
|
|
text: ""
|
|
|
|
anchors.top: parent.top
|
|
|
|
anchors.topMargin: 0
|
|
|
|
background: Rectangle {
|
|
|
|
color: Theme.transparent
|
|
|
|
}
|
|
|
|
|
|
|
|
Text {
|
|
|
|
id: element1
|
|
|
|
color: "#000000"
|
|
|
|
text: qsTr("ENS usernames")
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 72
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
font.weight: Font.Medium
|
|
|
|
font.pixelSize: 14
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TabButton {
|
|
|
|
id: contactsTabButton
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
height: profileTabBar.btnheight
|
|
|
|
text: ""
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 0
|
|
|
|
anchors.top: ensTabButton.bottom
|
|
|
|
anchors.topMargin: 0
|
|
|
|
background: Rectangle {
|
|
|
|
color: Theme.transparent
|
|
|
|
}
|
|
|
|
|
|
|
|
Text {
|
|
|
|
id: element2
|
|
|
|
color: "#000000"
|
|
|
|
text: qsTr("Contacts")
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 72
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
font.weight: Font.Medium
|
|
|
|
font.pixelSize: 14
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TabButton {
|
|
|
|
id: privacyTabButton
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
height: profileTabBar.btnheight
|
|
|
|
text: ""
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 0
|
|
|
|
anchors.top: contactsTabButton.bottom
|
|
|
|
anchors.topMargin: 0
|
|
|
|
background: Rectangle {
|
|
|
|
color: Theme.transparent
|
|
|
|
}
|
|
|
|
|
|
|
|
Text {
|
|
|
|
id: element3
|
|
|
|
color: "#000000"
|
|
|
|
text: qsTr("Privacy and security")
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 72
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
font.weight: Font.Medium
|
|
|
|
font.pixelSize: 14
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TabButton {
|
|
|
|
id: syncTabButton
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
height: profileTabBar.btnheight
|
|
|
|
text: ""
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 0
|
|
|
|
anchors.top: privacyTabButton.bottom
|
|
|
|
anchors.topMargin: 0
|
|
|
|
background: Rectangle {
|
|
|
|
color: Theme.transparent
|
|
|
|
}
|
|
|
|
|
|
|
|
Text {
|
|
|
|
id: element4
|
|
|
|
color: "#000000"
|
|
|
|
text: qsTr("Sync settings")
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 72
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
font.weight: Font.Medium
|
|
|
|
font.pixelSize: 14
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TabButton {
|
|
|
|
id: languageTabButton
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
height: profileTabBar.btnheight
|
|
|
|
text: ""
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 0
|
|
|
|
anchors.top: syncTabButton.bottom
|
|
|
|
anchors.topMargin: 0
|
|
|
|
background: Rectangle {
|
|
|
|
color: Theme.transparent
|
|
|
|
}
|
|
|
|
|
|
|
|
Text {
|
|
|
|
id: element5
|
|
|
|
color: "#000000"
|
|
|
|
text: qsTr("Language settings")
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 72
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
font.weight: Font.Medium
|
|
|
|
font.pixelSize: 14
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TabButton {
|
|
|
|
id: notificationsTabButton
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
height: profileTabBar.btnheight
|
|
|
|
text: ""
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 0
|
|
|
|
anchors.top: languageTabButton.bottom
|
|
|
|
anchors.topMargin: 0
|
|
|
|
background: Rectangle {
|
|
|
|
color: Theme.transparent
|
|
|
|
}
|
|
|
|
|
|
|
|
Text {
|
|
|
|
id: element6
|
|
|
|
color: "#000000"
|
|
|
|
text: qsTr("Notifications settings")
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 72
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
font.weight: Font.Medium
|
|
|
|
font.pixelSize: 14
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TabButton {
|
|
|
|
id: advancedTabButton
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
height: profileTabBar.btnheight
|
|
|
|
text: ""
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 0
|
|
|
|
anchors.top: notificationsTabButton.bottom
|
|
|
|
anchors.topMargin: 0
|
|
|
|
background: Rectangle {
|
|
|
|
color: Theme.transparent
|
|
|
|
}
|
|
|
|
|
|
|
|
Text {
|
|
|
|
id: element7
|
|
|
|
color: "#000000"
|
|
|
|
text: qsTr("Advanced settings")
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 72
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
font.weight: Font.Medium
|
|
|
|
font.pixelSize: 14
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TabButton {
|
|
|
|
id: helpTabButton
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
height: profileTabBar.btnheight
|
|
|
|
text: ""
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 0
|
|
|
|
anchors.top: advancedTabButton.bottom
|
|
|
|
anchors.topMargin: 0
|
|
|
|
background: Rectangle {
|
|
|
|
color: Theme.transparent
|
|
|
|
}
|
|
|
|
|
|
|
|
Text {
|
|
|
|
id: element8
|
|
|
|
color: "#000000"
|
|
|
|
text: qsTr("Need help?")
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 72
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
font.weight: Font.Medium
|
|
|
|
font.pixelSize: 14
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TabButton {
|
|
|
|
id: aboutTabButton
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
height: profileTabBar.btnheight
|
|
|
|
text: ""
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 0
|
|
|
|
anchors.top: helpTabButton.bottom
|
|
|
|
anchors.topMargin: 0
|
|
|
|
background: Rectangle {
|
|
|
|
color: Theme.transparent
|
|
|
|
}
|
|
|
|
|
|
|
|
Text {
|
|
|
|
id: element9
|
|
|
|
color: "#000000"
|
|
|
|
text: qsTr("About")
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 72
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
font.weight: Font.Medium
|
|
|
|
font.pixelSize: 14
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TabButton {
|
|
|
|
id: signoutTabButton
|
|
|
|
width: profileInfoContainer.w
|
|
|
|
height: profileTabBar.btnheight
|
|
|
|
text: ""
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 0
|
|
|
|
anchors.top: aboutTabButton.bottom
|
|
|
|
anchors.topMargin: 0
|
|
|
|
background: Rectangle {
|
|
|
|
color: Theme.transparent
|
|
|
|
}
|
|
|
|
|
|
|
|
Text {
|
|
|
|
id: element10
|
|
|
|
color: "#000000"
|
|
|
|
text: qsTr("Sign out")
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: 72
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
font.weight: Font.Medium
|
|
|
|
font.pixelSize: 14
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*##^##
|
|
|
|
Designer {
|
|
|
|
D{i:15;anchors_height:56}
|
|
|
|
}
|
|
|
|
##^##*/
|