Show "displayname" in correct position

Show "displayname" when on mouse hover
Persistant displayname data
This commit is contained in:
Jose Carlos 2014-02-14 00:23:21 +01:00
parent 319d1f6795
commit b899834c54
8 changed files with 43 additions and 28 deletions

View file

@ -781,7 +781,7 @@ void Menu::editPreferences() {
skeletonURLEdit->setMinimumWidth(QLINE_MINIMUM_WIDTH); skeletonURLEdit->setMinimumWidth(QLINE_MINIMUM_WIDTH);
form->addRow("Skeleton URL:", skeletonURLEdit); form->addRow("Skeleton URL:", skeletonURLEdit);
QString displayNameString = applicationInstance->getProfile()->getDisplayName(); QString displayNameString = applicationInstance->getAvatar()->getDisplayNameStr();
QLineEdit* displayNameEdit = new QLineEdit(displayNameString); QLineEdit* displayNameEdit = new QLineEdit(displayNameString);
displayNameEdit->setMinimumWidth(QLINE_MINIMUM_WIDTH); displayNameEdit->setMinimumWidth(QLINE_MINIMUM_WIDTH);
form->addRow("Display name:", displayNameEdit); form->addRow("Display name:", displayNameEdit);

View file

@ -76,7 +76,8 @@ Avatar::Avatar() :
_moving(false), _moving(false),
_owningAvatarMixer(), _owningAvatarMixer(),
_initialized(false), _initialized(false),
_displayNameWidth(0) _displayNameWidth(0),
_isShowDisplayName(false)
{ {
// we may have been created in the network thread, but we live in the main thread // we may have been created in the network thread, but we live in the main thread
moveToThread(Application::getInstance()->thread()); moveToThread(Application::getInstance()->thread());
@ -187,7 +188,9 @@ void Avatar::render(bool forceRenderHead) {
} }
// render display name // render display name
renderDisplayName(); if (_isShowDisplayName) {
renderDisplayName();
}
if (!_chatMessage.empty()) { if (!_chatMessage.empty()) {
int width = 0; int width = 0;
@ -261,11 +264,14 @@ void Avatar::renderBody(bool forceRenderHead) {
void Avatar::renderDisplayName() { void Avatar::renderDisplayName() {
if (_displayNameStr.isEmpty()) { QString displayName;
return; if (_displayName.isEmpty()) {
displayName = "test string";
} else {
displayName = _displayName;
} }
glm::vec3 textPosition = _head.getPosition(); //+ glm::vec3(0,50,0); glm::vec3 textPosition = getPosition() + getBodyUpDirection() * getHeight(); // Scale is already considered in getHeight
glPushMatrix(); glPushMatrix();
glDepthMask(false); glDepthMask(false);
@ -318,11 +324,11 @@ void Avatar::renderDisplayName() {
glScalef(scaleFactor, scaleFactor, 1.0); glScalef(scaleFactor, scaleFactor, 1.0);
glColor3f(0.93, 0.93, 0.93); glColor3f((GLfloat)0.93, (GLfloat)0.93, (GLfloat)0.93);
// TextRenderer, based on QT opengl text rendering functions // TextRenderer, based on QT opengl text rendering functions
QByteArray ba = _displayNameStr.toLocal8Bit(); QByteArray ba = displayName.toLocal8Bit();
const char *text = ba.data(); const char *text = ba.data();
displayNameTextRenderer()->draw(-_displayNameWidth/2.0, 0, text); displayNameTextRenderer()->draw(-_displayNameWidth/2.0, 0, text);
} }
@ -429,7 +435,7 @@ void Avatar::setSkeletonModelURL(const QUrl &skeletonModelURL) {
} }
void Avatar::setDisplayName(const QString& displayName) { void Avatar::setDisplayName(const QString& displayName) {
AvatarData::setDisplayNameStr(displayName); AvatarData::setDisplayName(displayName);
int width = 0; int width = 0;
for (int i = 0; i < displayName.size(); i++) { for (int i = 0; i < displayName.size(); i++) {
width += (displayNameTextRenderer()->computeWidth(displayName[i].toLatin1())); width += (displayNameTextRenderer()->computeWidth(displayName[i].toLatin1()));
@ -519,3 +525,7 @@ float Avatar::getPelvisToHeadLength() const {
return glm::distance(_position, _head.getPosition()); return glm::distance(_position, _head.getPosition());
} }
void Avatar::setShowDisplayName(bool showDisplayName) {
_isShowDisplayName = showDisplayName;
}

View file

@ -116,6 +116,8 @@ public:
virtual void setFaceModelURL(const QUrl& faceModelURL); virtual void setFaceModelURL(const QUrl& faceModelURL);
virtual void setSkeletonModelURL(const QUrl& skeletonModelURL); virtual void setSkeletonModelURL(const QUrl& skeletonModelURL);
virtual void setDisplayName(const QString& displayName); virtual void setDisplayName(const QString& displayName);
void setShowDisplayName(bool showDisplayName);
int parseData(const QByteArray& packet); int parseData(const QByteArray& packet);
@ -150,11 +152,15 @@ protected:
float getPelvisFloatingHeight() const; float getPelvisFloatingHeight() const;
float getPelvisToHeadLength() const; float getPelvisToHeadLength() const;
private: private:
bool _initialized; bool _initialized;
int _displayNameWidth; int _displayNameWidth;
bool _isShowDisplayName;

View file

@ -63,6 +63,7 @@ MyAvatar::MyAvatar() :
for (int i = 0; i < MAX_DRIVE_KEYS; i++) { for (int i = 0; i < MAX_DRIVE_KEYS; i++) {
_driveKeys[i] = 0.0f; _driveKeys[i] = 0.0f;
} }
setShowDisplayName(true);
} }
MyAvatar::~MyAvatar() { MyAvatar::~MyAvatar() {
@ -611,6 +612,7 @@ void MyAvatar::saveData(QSettings* settings) {
settings->setValue("faceModelURL", _faceModelURL); settings->setValue("faceModelURL", _faceModelURL);
settings->setValue("skeletonModelURL", _skeletonModelURL); settings->setValue("skeletonModelURL", _skeletonModelURL);
settings->setValue("displayName", _displayName);
settings->endGroup(); settings->endGroup();
} }
@ -638,6 +640,7 @@ void MyAvatar::loadData(QSettings* settings) {
setFaceModelURL(settings->value("faceModelURL").toUrl()); setFaceModelURL(settings->value("faceModelURL").toUrl());
setSkeletonModelURL(settings->value("skeletonModelURL").toUrl()); setSkeletonModelURL(settings->value("skeletonModelURL").toUrl());
setDisplayName(settings->value("displayName").toString());
settings->endGroup(); settings->endGroup();
} }
@ -689,8 +692,12 @@ void MyAvatar::updateLookAtTargetAvatar(glm::vec3 &eyePosition) {
eyePosition = (avatar->getHead().calculateAverageEyePosition() - avatar->getHead().getScalePivot()) * eyePosition = (avatar->getHead().calculateAverageEyePosition() - avatar->getHead().getScalePivot()) *
(avatar->getScale() / avatar->getHead().getScale()) + avatar->getHead().getScalePivot(); (avatar->getScale() / avatar->getHead().getScale()) + avatar->getHead().getScalePivot();
_lookAtTargetAvatar = avatarPointer; _lookAtTargetAvatar = avatarPointer;
avatar->setShowDisplayName(true);
return; return;
} else {
avatar->setShowDisplayName(false);
} }
} }
_lookAtTargetAvatar.clear(); _lookAtTargetAvatar.clear();
} }

View file

@ -17,7 +17,6 @@
Profile::Profile(const QString &username) : Profile::Profile(const QString &username) :
_username(), _username(),
_displayName(),
_uuid(), _uuid(),
_lastDomain(), _lastDomain(),
_lastPosition(0.0, 0.0, 0.0), _lastPosition(0.0, 0.0, 0.0),
@ -166,7 +165,3 @@ void Profile::processDataServerResponse(const QString& userString, const QString
void Profile::setUsername(const QString& username) { void Profile::setUsername(const QString& username) {
_username = username; _username = username;
} }
void Profile::setDisplayName(const QString& displayName) {
_displayName = displayName;
}

View file

@ -28,8 +28,6 @@ public:
const QString& getUsername() const { return _username; } const QString& getUsername() const { return _username; }
const QString& getDisplayName() const { return _displayName; }
void setUUID(const QUuid& uuid) { _uuid = uuid; } void setUUID(const QUuid& uuid) { _uuid = uuid; }
const QUuid& getUUID() { return _uuid; } const QUuid& getUUID() { return _uuid; }
@ -51,7 +49,6 @@ private:
void setDisplayName(const QString& displaName); void setDisplayName(const QString& displaName);
QString _username; QString _username;
QString _displayName;
QUuid _uuid; QUuid _uuid;
QString _lastDomain; QString _lastDomain;
glm::vec3 _lastPosition; glm::vec3 _lastPosition;

View file

@ -274,8 +274,8 @@ bool AvatarData::hasIdentityChangedAfterParsing(const QByteArray &packet) {
QUuid avatarUUID; QUuid avatarUUID;
QUrl faceModelURL, skeletonModelURL; QUrl faceModelURL, skeletonModelURL;
QString displayNameStr; QString displayName;
packetStream >> avatarUUID >> faceModelURL >> skeletonModelURL >> displayNameStr; packetStream >> avatarUUID >> faceModelURL >> skeletonModelURL >> displayName;
bool hasIdentityChanged = false; bool hasIdentityChanged = false;
@ -289,8 +289,8 @@ bool AvatarData::hasIdentityChangedAfterParsing(const QByteArray &packet) {
hasIdentityChanged = true; hasIdentityChanged = true;
} }
if (displayNameStr != _displayNameStr) { if (displayName != _displayName) {
setDisplayNameStr(displayNameStr); setDisplayName(displayName);
hasIdentityChanged = true; hasIdentityChanged = true;
} }
@ -301,7 +301,7 @@ QByteArray AvatarData::identityByteArray() {
QByteArray identityData; QByteArray identityData;
QDataStream identityStream(&identityData, QIODevice::Append); QDataStream identityStream(&identityData, QIODevice::Append);
identityStream << QUuid() << _faceModelURL << _skeletonModelURL << _displayNameStr; identityStream << QUuid() << _faceModelURL << _skeletonModelURL << _displayName;
return identityData; return identityData;
} }
@ -316,9 +316,9 @@ void AvatarData::setSkeletonModelURL(const QUrl& skeletonModelURL) {
_skeletonModelURL = skeletonModelURL; _skeletonModelURL = skeletonModelURL;
} }
void AvatarData::setDisplayNameStr(const QString& displayName) { void AvatarData::setDisplayName(const QString& displayName) {
qDebug() << "Changing display name for avatar to" << displayName; qDebug() << "Changing display name for avatar to" << displayName;
_displayNameStr = displayName; _displayName = displayName;
} }

View file

@ -149,10 +149,10 @@ public:
const QUrl& getFaceModelURL() const { return _faceModelURL; } const QUrl& getFaceModelURL() const { return _faceModelURL; }
const QUrl& getSkeletonModelURL() const { return _skeletonModelURL; } const QUrl& getSkeletonModelURL() const { return _skeletonModelURL; }
const QString& getDisplayNameStr() const { return _displayNameStr; } const QString& getDisplayNameStr() const { return _displayName; }
virtual void setFaceModelURL(const QUrl& faceModelURL); virtual void setFaceModelURL(const QUrl& faceModelURL);
virtual void setSkeletonModelURL(const QUrl& skeletonModelURL); virtual void setSkeletonModelURL(const QUrl& skeletonModelURL);
virtual void setDisplayNameStr(const QString& displayName); virtual void setDisplayName(const QString& displayName);
protected: protected:
glm::vec3 _position; glm::vec3 _position;
@ -182,7 +182,7 @@ protected:
QUrl _faceModelURL; QUrl _faceModelURL;
QUrl _skeletonModelURL; QUrl _skeletonModelURL;
QString _displayNameStr; QString _displayName;
private: private:
// privatize the copy constructor and assignment operator so they cannot be called // privatize the copy constructor and assignment operator so they cannot be called
AvatarData(const AvatarData&); AvatarData(const AvatarData&);