mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-25 21:35:04 +02:00
Improve robustness of display name focus in PAL
This commit is contained in:
parent
e446d0f8c9
commit
b9ddc3b19f
1 changed files with 50 additions and 48 deletions
|
@ -132,62 +132,16 @@ Item {
|
||||||
color: hifi.colors.textFieldLightBackground
|
color: hifi.colors.textFieldLightBackground
|
||||||
border.color: hifi.colors.blueHighlight
|
border.color: hifi.colors.blueHighlight
|
||||||
border.width: 0
|
border.width: 0
|
||||||
TextInput {
|
|
||||||
id: myDisplayNameText
|
|
||||||
// Properties
|
|
||||||
text: thisNameCard.displayName
|
|
||||||
maximumLength: 256
|
|
||||||
clip: true
|
|
||||||
// Size
|
|
||||||
width: parent.width
|
|
||||||
height: parent.height
|
|
||||||
// Anchors
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: 10
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.rightMargin: editGlyph.width + editGlyph.anchors.rightMargin
|
|
||||||
// Style
|
|
||||||
color: hifi.colors.darkGray
|
|
||||||
FontLoader { id: firaSansSemiBold; source: "../../fonts/FiraSans-SemiBold.ttf"; }
|
|
||||||
font.family: firaSansSemiBold.name
|
|
||||||
font.pixelSize: displayNameTextPixelSize
|
|
||||||
selectionColor: hifi.colors.blueAccent
|
|
||||||
selectedTextColor: "black"
|
|
||||||
// Text Positioning
|
|
||||||
verticalAlignment: TextInput.AlignVCenter
|
|
||||||
horizontalAlignment: TextInput.AlignLeft
|
|
||||||
autoScroll: false;
|
|
||||||
// Signals
|
|
||||||
onEditingFinished: {
|
|
||||||
if (MyAvatar.displayName !== text) {
|
|
||||||
MyAvatar.displayName = text;
|
|
||||||
UserActivityLogger.palAction("display_name_change", text);
|
|
||||||
}
|
|
||||||
cursorPosition = 0
|
|
||||||
focus = false
|
|
||||||
myDisplayName.border.width = 0
|
|
||||||
color = hifi.colors.darkGray
|
|
||||||
pal.currentlyEditingDisplayName = false
|
|
||||||
autoScroll = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
onClicked: {
|
onClicked: {
|
||||||
myDisplayName.border.width = 1
|
myDisplayNameText.focus = true;
|
||||||
myDisplayNameText.focus ? myDisplayNameText.cursorPosition = myDisplayNameText.positionAt(mouseX, mouseY, TextInput.CursorOnCharacter) : myDisplayNameText.selectAll();
|
myDisplayNameText.cursorPosition = myDisplayNameText.positionAt(mouseX - myDisplayNameText.anchors.leftMargin, mouseY, TextInput.CursorOnCharacter);
|
||||||
myDisplayNameText.focus = true
|
|
||||||
myDisplayNameText.color = "black"
|
|
||||||
pal.currentlyEditingDisplayName = true
|
|
||||||
myDisplayNameText.autoScroll = true;
|
|
||||||
}
|
}
|
||||||
onDoubleClicked: {
|
onDoubleClicked: {
|
||||||
myDisplayNameText.selectAll();
|
myDisplayNameText.selectAll();
|
||||||
myDisplayNameText.focus = true;
|
myDisplayNameText.focus = true;
|
||||||
pal.currentlyEditingDisplayName = true
|
|
||||||
myDisplayNameText.autoScroll = true;
|
|
||||||
}
|
}
|
||||||
onEntered: myDisplayName.color = hifi.colors.lightGrayText;
|
onEntered: myDisplayName.color = hifi.colors.lightGrayText;
|
||||||
onExited: myDisplayName.color = hifi.colors.textFieldLightBackground;
|
onExited: myDisplayName.color = hifi.colors.textFieldLightBackground;
|
||||||
|
@ -207,6 +161,54 @@ Item {
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
color: hifi.colors.baseGray
|
color: hifi.colors.baseGray
|
||||||
}
|
}
|
||||||
|
TextInput {
|
||||||
|
id: myDisplayNameText
|
||||||
|
// Properties
|
||||||
|
text: thisNameCard.displayName
|
||||||
|
maximumLength: 256
|
||||||
|
clip: true
|
||||||
|
// Size
|
||||||
|
width: parent.width
|
||||||
|
height: parent.height
|
||||||
|
// Anchors
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: 10
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: editGlyph.width + editGlyph.anchors.rightMargin
|
||||||
|
// Style
|
||||||
|
FontLoader { id: firaSansSemiBold; source: "../../fonts/FiraSans-SemiBold.ttf"; }
|
||||||
|
font.family: firaSansSemiBold.name
|
||||||
|
font.pixelSize: displayNameTextPixelSize
|
||||||
|
selectionColor: hifi.colors.blueAccent
|
||||||
|
selectedTextColor: "black"
|
||||||
|
// Text Positioning
|
||||||
|
verticalAlignment: TextInput.AlignVCenter
|
||||||
|
horizontalAlignment: TextInput.AlignLeft
|
||||||
|
autoScroll: false;
|
||||||
|
// Signals
|
||||||
|
onEditingFinished: {
|
||||||
|
if (MyAvatar.displayName !== text) {
|
||||||
|
MyAvatar.displayName = text;
|
||||||
|
UserActivityLogger.palAction("display_name_change", text);
|
||||||
|
}
|
||||||
|
focus = false;
|
||||||
|
}
|
||||||
|
onFocusChanged: {
|
||||||
|
if (focus === true) {
|
||||||
|
myDisplayName.border.width = 1
|
||||||
|
color = "black"
|
||||||
|
autoScroll = true;
|
||||||
|
pal.currentlyEditingDisplayName = true
|
||||||
|
} else {
|
||||||
|
myDisplayName.border.width = 0
|
||||||
|
color: hifi.colors.darkGray
|
||||||
|
cursorPosition = 0;
|
||||||
|
autoScroll = false;
|
||||||
|
pal.currentlyEditingDisplayName = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// DisplayName container for others' cards
|
// DisplayName container for others' cards
|
||||||
Item {
|
Item {
|
||||||
|
|
Loading…
Reference in a new issue