status-desktop/ui/imports/shared/popups/NicknamePopup.qml

90 lines
2.4 KiB
QML
Raw Normal View History

2020-09-16 16:00:21 +00:00
import QtQuick 2.13
import QtQuick.Controls 2.13
import DotherSide 0.1
import utils 1.0
import shared.controls 1.0
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import StatusQ.Controls 0.1
import StatusQ.Controls.Validators 0.1
import StatusQ.Popups 0.1
StatusModal {
2020-09-16 16:00:21 +00:00
id: popup
width: 400
height: 340
anchors.centerIn: parent
header.title: qsTr("Nickname")
2022-09-27 21:26:26 +00:00
header.subTitleElide: Text.ElideMiddle
/*required*/ property string publicKey
property string nickname
2020-09-16 16:00:21 +00:00
readonly property int nicknameLength: nicknameInput.text.length
readonly property int maxNicknameLength: 32
signal editDone(string newNickname)
onOpened: {
2022-09-27 21:26:26 +00:00
nicknameInput.input.edit.forceActiveFocus()
}
contentItem: Item {
width: popup.width
height: childrenRect.height
2020-09-16 16:00:21 +00:00
Column {
anchors.top: parent.top
anchors.topMargin: 16
anchors.horizontalCenter: parent.horizontalCenter
width: parent.width - 32
spacing: 16
StatusBaseText {
id: descriptionText
text: qsTr("Nicknames help you identify others in Status. Only you can see the nicknames youve added")
wrapMode: Text.WordWrap
color: Theme.palette.baseColor1
width: parent.width
}
2020-09-16 16:00:21 +00:00
StatusInput {
id: nicknameInput
placeholderText: qsTr("Nickname")
2022-09-27 21:26:26 +00:00
input.clearable: true
width: parent.width
2022-09-27 21:26:26 +00:00
text: popup.nickname
charLimit: maxNicknameLength
validationMode: StatusInput.ValidationMode.IgnoreInvalidInput
validators: [
StatusRegularExpressionValidator {
validatorObj: RXValidator { regularExpression: /^[\w\d_-]*$/u }
validate: function (value) {
return validatorObj.test(value)
}
}
]
Keys.onReleased: {
if (event.key === Qt.Key_Return) {
editDone(nicknameInput.text)
}
}
}
}
2020-09-16 16:00:21 +00:00
}
rightButtons: [
StatusButton {
id: doneBtn
text: qsTr("Done")
enabled: nicknameInput.valid
onClicked: editDone(nicknameInput.text)
2020-09-16 16:00:21 +00:00
}
]
2020-09-16 16:00:21 +00:00
}