mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 09:48:44 +02:00
Show "displayname" in correct position
Show "displayname" when on mouse hover Persistant displayname data
This commit is contained in:
parent
319d1f6795
commit
b899834c54
8 changed files with 43 additions and 28 deletions
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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&);
|
||||||
|
|
Loading…
Reference in a new issue