status-desktop/ui/app/AppLayouts/Profile/popups/ENSPopup.qml

142 lines
4.3 KiB
QML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import QtQuick 2.12
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
import QtQml.Models 2.3
import utils 1.0
import shared 1.0
import shared.panels 1.0
import shared.popups 1.0
// TODO: replace with StatusModal
ModalPopup {
id: popup
//% "Primary username"
title: qsTrId("ens-primary-username")
property string newUsername: ""
onOpened: {
for(var i in ensNames.contentItem.children){
ensNames.contentItem.children[i].checked = ensNames.contentItem.children[i].text === profileModel.ens.preferredUsername
}
}
StyledText {
id: lbl1
text: profileModel.ens.preferredUsername ?
//% "Your messages are displayed to others with this username:"
qsTrId("your-messages-are-displayed-to-others-with-this-username-")
:
//% "Once you select a username, you wont be able to disable it afterwards. You will only be able choose a different username to display."
qsTrId("once-you-select-a-username--you-won-t-be-able-to-disable-it-afterwards--you-will-only-be-able-choose-a-different-username-to-display-")
font.pixelSize: 15
wrapMode: Text.WordWrap
width: parent.width
}
StyledText {
id: lbl2
anchors.top: lbl1.bottom
anchors.topMargin: Style.current.padding
text: profileModel.ens.preferredUsername
font.pixelSize: 17
font.weight: Font.Bold
}
ScrollView {
anchors.fill: parent
anchors.top: lbl2.bottom
anchors.topMargin: 70
Layout.fillWidth: true
Layout.fillHeight: true
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
ScrollBar.vertical.policy: ensNames.contentHeight > ensNames.height ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff
ListView {
anchors.fill: parent
model: profileModel.ens
spacing: 0
clip: true
id: ensNames
delegate: RadioDelegate {
id: radioDelegate
text: username
checked: profileModel.ens.preferredUsername === username
contentItem: StyledText {
color: Style.current.textColor
text: radioDelegate.text
rightPadding: radioDelegate.indicator.width + radioDelegate.spacing
topPadding: Style.current.halfPadding
}
MouseArea {
anchors.fill: parent
onClicked: {
parent.checked = true
newUsername = username;
}
}
}
}
}
onNewUsernameChanged: {
btnSelectPreferred.state = newUsername === profileModel.ens.preferredUsername ? "inactive" : "active"
}
footer: Item {
width: parent.width
height: btnSelectPreferred.height
Button {
id: btnSelectPreferred
width: 44
height: 44
anchors.bottom: parent.bottom
anchors.right: parent.right
state: "inactive"
states: [
State {
name: "inactive"
PropertyChanges {
target: btnContinue
source: Style.svg("arrow-right-btn-inactive")
}
},
State {
name: "active"
PropertyChanges {
target: btnContinue
source: Style.svg("arrow-right-btn-active")
}
}
]
SVGImage {
id: btnContinue
width: 50
height: 50
}
background: Rectangle {
color: "transparent"
}
MouseArea {
cursorShape: btnSelectPreferred.state === "active" ? Qt.PointingHandCursor : Qt.ArrowCursor
anchors.fill: parent
onClicked : {
if(btnSelectPreferred.state === "active"){
profileModel.ens.preferredUsername = newUsername;
newUsername = "";
popup.close();
}
}
}
}
}
}