2023-02-07 14:21:32 +00:00
|
|
|
|
import QtQuick 2.14
|
2021-09-28 15:04:06 +00:00
|
|
|
|
|
|
|
|
|
import utils 1.0
|
2021-10-27 21:27:49 +00:00
|
|
|
|
import shared.controls 1.0
|
2021-10-19 09:17:20 +00:00
|
|
|
|
|
2023-02-06 13:37:25 +00:00
|
|
|
|
import StatusQ 0.1
|
2021-10-19 09:17:20 +00:00
|
|
|
|
import StatusQ.Core 0.1
|
|
|
|
|
import StatusQ.Core.Theme 0.1
|
|
|
|
|
import StatusQ.Controls 0.1
|
2022-03-10 19:41:59 +00:00
|
|
|
|
import StatusQ.Controls.Validators 0.1
|
2021-10-19 09:17:20 +00:00
|
|
|
|
import StatusQ.Popups 0.1
|
|
|
|
|
|
|
|
|
|
StatusModal {
|
2020-09-16 16:00:21 +00:00
|
|
|
|
id: popup
|
2022-07-20 10:48:44 +00:00
|
|
|
|
|
2020-09-24 18:12:50 +00:00
|
|
|
|
width: 400
|
2022-03-10 19:41:59 +00:00
|
|
|
|
height: 340
|
2022-07-20 10:48:44 +00:00
|
|
|
|
anchors.centerIn: parent
|
|
|
|
|
|
2023-05-23 12:46:16 +00:00
|
|
|
|
headerSettings.title: qsTr("Nickname")
|
|
|
|
|
headerSettings.subTitleElide: Text.ElideMiddle
|
2022-09-27 21:26:26 +00:00
|
|
|
|
|
|
|
|
|
/*required*/ property string publicKey
|
|
|
|
|
property string nickname
|
2020-09-16 16:00:21 +00:00
|
|
|
|
|
2022-07-20 10:48:44 +00:00
|
|
|
|
readonly property int nicknameLength: nicknameInput.text.length
|
2021-10-22 20:49:47 +00:00
|
|
|
|
readonly property int maxNicknameLength: 32
|
2022-07-20 10:48:44 +00:00
|
|
|
|
|
2022-03-08 11:01:57 +00:00
|
|
|
|
signal editDone(string newNickname)
|
2021-10-22 20:49:47 +00:00
|
|
|
|
|
|
|
|
|
onOpened: {
|
2022-09-27 21:26:26 +00:00
|
|
|
|
nicknameInput.input.edit.forceActiveFocus()
|
2021-10-22 20:49:47 +00:00
|
|
|
|
}
|
|
|
|
|
|
2021-10-19 09:17:20 +00:00
|
|
|
|
contentItem: Item {
|
|
|
|
|
width: popup.width
|
|
|
|
|
height: childrenRect.height
|
2020-09-16 16:00:21 +00:00
|
|
|
|
|
2021-10-19 09:17:20 +00:00
|
|
|
|
Column {
|
|
|
|
|
anchors.top: parent.top
|
|
|
|
|
anchors.topMargin: 16
|
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
|
width: parent.width - 32
|
|
|
|
|
spacing: 16
|
2021-01-12 20:51:00 +00:00
|
|
|
|
|
2021-10-19 09:17:20 +00:00
|
|
|
|
StatusBaseText {
|
|
|
|
|
id: descriptionText
|
2022-04-04 11:26:30 +00:00
|
|
|
|
text: qsTr("Nicknames help you identify others in Status. Only you can see the nicknames you’ve added")
|
2021-10-19 09:17:20 +00:00
|
|
|
|
wrapMode: Text.WordWrap
|
|
|
|
|
color: Theme.palette.baseColor1
|
|
|
|
|
width: parent.width
|
|
|
|
|
}
|
2020-09-16 16:00:21 +00:00
|
|
|
|
|
2022-03-10 19:41:59 +00:00
|
|
|
|
StatusInput {
|
2021-10-19 09:17:20 +00:00
|
|
|
|
id: nicknameInput
|
2022-07-22 10:28:04 +00:00
|
|
|
|
placeholderText: qsTr("Nickname")
|
2022-09-27 21:26:26 +00:00
|
|
|
|
input.clearable: true
|
2022-03-10 19:41:59 +00:00
|
|
|
|
width: parent.width
|
2022-09-27 21:26:26 +00:00
|
|
|
|
text: popup.nickname
|
2022-03-10 19:41:59 +00:00
|
|
|
|
charLimit: maxNicknameLength
|
|
|
|
|
validationMode: StatusInput.ValidationMode.IgnoreInvalidInput
|
|
|
|
|
validators: [
|
2023-02-07 14:21:32 +00:00
|
|
|
|
StatusValidator {
|
2022-12-05 12:26:06 +00:00
|
|
|
|
validatorObj: RXValidator { regularExpression: /^[\w\d_ -]*$/u }
|
2023-02-07 14:21:32 +00:00
|
|
|
|
validate: (value) => validatorObj.test(value)
|
2022-03-10 19:41:59 +00:00
|
|
|
|
}
|
|
|
|
|
]
|
2021-10-19 09:17:20 +00:00
|
|
|
|
Keys.onReleased: {
|
2024-02-07 14:56:45 +00:00
|
|
|
|
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
|
2022-03-10 19:41:59 +00:00
|
|
|
|
editDone(nicknameInput.text)
|
2021-10-19 09:17:20 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2021-01-13 00:31:26 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2020-09-16 16:00:21 +00:00
|
|
|
|
}
|
|
|
|
|
|
2021-10-19 09:17:20 +00:00
|
|
|
|
rightButtons: [
|
|
|
|
|
StatusButton {
|
|
|
|
|
id: doneBtn
|
2022-04-04 11:26:30 +00:00
|
|
|
|
text: qsTr("Done")
|
2022-07-20 10:48:44 +00:00
|
|
|
|
enabled: nicknameInput.valid
|
2022-03-10 19:41:59 +00:00
|
|
|
|
onClicked: editDone(nicknameInput.text)
|
2020-09-16 16:00:21 +00:00
|
|
|
|
}
|
2021-10-19 09:17:20 +00:00
|
|
|
|
]
|
2020-09-16 16:00:21 +00:00
|
|
|
|
}
|