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

141 lines
4.2 KiB
QML
Raw Normal View History

2020-08-06 18:19:26 +00:00
import QtQuick 2.12
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
import QtQml.Models 2.3
import StatusQ.Core 0.1
import utils 1.0
import shared 1.0
import shared.panels 1.0
import shared.popups 1.0
2020-08-06 18:19:26 +00:00
// TODO: replace with StatusModal
2020-08-06 18:19:26 +00:00
ModalPopup {
id: popup
title: qsTr("Primary username")
2020-08-06 18:19:26 +00:00
property var ensUsernamesStore
2020-08-06 18:19:26 +00:00
property string newUsername: ""
onOpened: {
for(var i in ensNames.contentItem.children){
ensNames.contentItem.children[i].checked = ensNames.contentItem.children[i].text === popup.ensUsernamesStore.preferredUsername
2020-08-06 18:19:26 +00:00
}
}
StyledText {
id: lbl1
text: popup.ensUsernamesStore.preferredUsername ?
qsTr("Your messages are displayed to others with this username:")
:
qsTr("Once you select a username, you wont be able to disable it afterwards. You will only be able choose a different username to display.")
2020-08-06 18:19:26 +00:00
font.pixelSize: 15
2020-09-29 11:04:14 +00:00
wrapMode: Text.WordWrap
width: parent.width
2020-08-06 18:19:26 +00:00
}
StyledText {
id: lbl2
anchors.top: lbl1.bottom
anchors.topMargin: Style.current.padding
text: popup.ensUsernamesStore.preferredUsername
2020-08-06 18:19:26 +00:00
font.pixelSize: 17
font.weight: Font.Bold
}
2022-02-09 09:43:23 +00:00
StatusScrollView {
2020-08-06 18:19:26 +00:00
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
StatusListView {
2020-08-06 18:19:26 +00:00
anchors.fill: parent
model: root.ensUsernamesStore.ensUsernamesModel
2020-08-06 18:19:26 +00:00
spacing: 0
id: ensNames
delegate: RadioDelegate {
id: radioDelegate
text: ensUsername
checked: popup.ensUsernamesStore.preferredUsername === ensUsername
2020-09-29 11:04:14 +00:00
2020-09-29 11:36:31 +00:00
contentItem: StyledText {
2020-09-29 11:04:14 +00:00
color: Style.current.textColor
text: radioDelegate.text
rightPadding: radioDelegate.indicator.width + radioDelegate.spacing
topPadding: Style.current.halfPadding
}
2020-08-06 18:19:26 +00:00
MouseArea {
anchors.fill: parent
onClicked: {
parent.checked = true
newUsername = ensUsername;
2020-08-06 18:19:26 +00:00
}
}
}
}
}
onNewUsernameChanged: {
btnSelectPreferred.state = newUsername === popup.ensUsernamesStore.preferredUsername ? "inactive" : "active"
2020-08-06 18:19:26 +00:00
}
2022-02-09 09:43:23 +00:00
2020-08-06 18:19:26 +00:00
footer: Item {
width: parent.width
height: btnSelectPreferred.height
2020-08-06 18:19:26 +00:00
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")
2020-08-06 18:19:26 +00:00
}
},
State {
name: "active"
PropertyChanges {
target: btnContinue
source: Style.svg("arrow-right-btn-active")
2020-08-06 18:19:26 +00:00
}
}
]
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"){
popup.ensUsernamesStore.setPrefferedEnsUsername(newUsername);
newUsername = "";
popup.close();
2020-08-06 18:19:26 +00:00
}
}
}
}
}
}