bound 'displayName' to backend, adjust font

This commit is contained in:
Alexander Ivash 2018-05-14 22:16:23 +03:00
parent 10f2fe5fe6
commit 3baa1a588f
3 changed files with 66 additions and 41 deletions

View file

@ -118,6 +118,7 @@ Rectangle {
var getAvatarsReply = message.reply; var getAvatarsReply = message.reply;
allAvatars.populate(getAvatarsReply.bookmarks); allAvatars.populate(getAvatarsReply.bookmarks);
setCurrentAvatar(getAvatarsReply.currentAvatar, ''); setCurrentAvatar(getAvatarsReply.currentAvatar, '');
displayNameInput.text = getAvatarsReply.displayName;
console.debug('currentAvatar: ', JSON.stringify(currentAvatar, null, '\t')); console.debug('currentAvatar: ', JSON.stringify(currentAvatar, null, '\t'));
updateCurrentAvatarInBookmarks(currentAvatar); updateCurrentAvatarInBookmarks(currentAvatar);
@ -246,8 +247,10 @@ Rectangle {
text: 'Display Name' text: 'Display Name'
} }
TextField { InputField {
id: displayNameInput id: displayNameInput
font.pixelSize: 18
anchors.left: displayNameLabel.right anchors.left: displayNameLabel.right
anchors.leftMargin: 30 anchors.leftMargin: 30
anchors.verticalCenter: displayNameLabel.verticalCenter anchors.verticalCenter: displayNameLabel.verticalCenter
@ -255,44 +258,11 @@ Rectangle {
anchors.rightMargin: 30 anchors.rightMargin: 30
width: 232 width: 232
property bool error: text === '';
text: 'ThisIsDisplayName' text: 'ThisIsDisplayName'
states: [ onEditingFinished: {
State { emitSendToScript({'method' : 'changeDisplayName', 'displayName' : text})
name: "hovered" focus = false;
when: displayNameInput.hovered && !displayNameInput.focus && !displayNameInput.error;
PropertyChanges { target: displayNameInputBackground; color: '#afafaf' }
},
State {
name: "focused"
when: displayNameInput.focus && !displayNameInput.error
PropertyChanges { target: displayNameInputBackground; color: '#f2f2f2' }
PropertyChanges { target: displayNameInputBackground; border.color: '#00b4ef' }
},
State {
name: "error"
when: displayNameInput.error
PropertyChanges { target: displayNameInputBackground; color: '#f2f2f2' }
PropertyChanges { target: displayNameInputBackground; border.color: '#e84e62' }
}
]
background: Rectangle {
id: displayNameInputBackground
implicitWidth: 200
implicitHeight: 40
color: '#d4d4d4'
border.color: '#afafaf'
border.width: 1
radius: 2
}
HiFiGlyphs {
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
size: 36
text: "\ue00d"
} }
} }

View file

@ -0,0 +1,48 @@
import QtQuick 2.5
import QtQuick.Controls 2.2
import "../../styles-uit"
import "../../controls-uit" as HifiControlsUit
TextField {
id: textField
property bool error: text === '';
text: 'ThisIsDisplayName'
states: [
State {
name: "hovered"
when: textField.hovered && !textField.focus && !textField.error;
PropertyChanges { target: background; color: '#afafaf' }
},
State {
name: "focused"
when: textField.focus && !textField.error
PropertyChanges { target: background; color: '#f2f2f2' }
PropertyChanges { target: background; border.color: '#00b4ef' }
},
State {
name: "error"
when: textField.error
PropertyChanges { target: background; color: '#f2f2f2' }
PropertyChanges { target: background; border.color: '#e84e62' }
}
]
background: Rectangle {
id: background
implicitWidth: 200
implicitHeight: 40
color: '#d4d4d4'
border.color: '#afafaf'
border.width: 1
radius: 2
}
HiFiGlyphs {
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
size: 36
text: "\ue00d"
}
}

View file

@ -110,7 +110,7 @@ var adjustWearables = {
} }
var currentAvatarWearablesBackup = null; var currentAvatarWearablesBackup = null;
var currentAvatar = getMyAvatar(); var currentAvatar = null;
var selectedAvatarEntityGrabbable = false; var selectedAvatarEntityGrabbable = false;
var selectedAvatarEntity = null; var selectedAvatarEntity = null;
@ -119,12 +119,12 @@ function fromQml(message) { // messages are {method, params}, like json-rpc. See
switch (message.method) { switch (message.method) {
case 'getAvatars': case 'getAvatars':
currentAvatar = getMyAvatar();
message.reply = { message.reply = {
'bookmarks' : AvatarBookmarks.getBookmarks(), 'bookmarks' : AvatarBookmarks.getBookmarks(),
'currentAvatar' : currentAvatar 'currentAvatar' : currentAvatar,
'displayName' : MyAvatar.displayName
}; };
console.debug('avatarapp.js: currentAvatar: ', JSON.stringify(message.reply.currentAvatar, null, '\t')) console.debug('avatarapp.js: currentAvatar: ', JSON.stringify(message.reply.currentAvatar, null, '\t'))
sendToQml(message) sendToQml(message)
break; break;
@ -183,6 +183,13 @@ function fromQml(message) { // messages are {method, params}, like json-rpc. See
Entities.deleteEntity(message.entityID); Entities.deleteEntity(message.entityID);
updateAvatarWearables(currentAvatar, message.avatarName); updateAvatarWearables(currentAvatar, message.avatarName);
break; break;
case 'changeDisplayName':
console.debug('avatarapp.js: changeDisplayName: ', message.displayName);
if (MyAvatar.displayName !== message.displayName) {
MyAvatar.displayName = message.displayName;
UserActivityLogger.palAction("display_name_change", message.displayName);
}
break;
default: default:
print('Unrecognized message from AvatarApp.qml:', JSON.stringify(message)); print('Unrecognized message from AvatarApp.qml:', JSON.stringify(message));
} }