From 4d2048c6f6779a8e917f158b542586f24ec2ed63 Mon Sep 17 00:00:00 2001 From: Howard Stearns Date: Sun, 20 Sep 2015 13:12:13 -0700 Subject: [PATCH 1/2] Let other users see your default avatar. Fixes https://app.asana.com/0/26225263936266/51001490412567 --- libraries/avatars/src/AvatarData.cpp | 5 +++-- libraries/avatars/src/AvatarData.h | 2 +- libraries/avatars/src/AvatarHashMap.cpp | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index e1bb6ae8a0..104b592c1a 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -73,7 +73,7 @@ AvatarData::~AvatarData() { // We cannot have a file-level variable (const or otherwise) in the header if it uses PathUtils, because that references Application, which will not yet initialized. // Thus we have a static class getter, referencing a static class var. QUrl AvatarData::_defaultFullAvatarModelUrl = {}; // In C++, if this initialization were in the header, every file would have it's own copy, even for class vars. -const QUrl AvatarData::defaultFullAvatarModelUrl() { +const QUrl& AvatarData::defaultFullAvatarModelUrl() { if (_defaultFullAvatarModelUrl.isEmpty()) { _defaultFullAvatarModelUrl = QUrl::fromLocalFile(PathUtils::resourcesPath() + "meshes/defaultAvatar_full.fst"); } @@ -966,8 +966,9 @@ bool AvatarData::hasIdentityChangedAfterParsing(NLPacket& packet) { QByteArray AvatarData::identityByteArray() { QByteArray identityData; QDataStream identityStream(&identityData, QIODevice::Append); + const QUrl& urlToSend = (_skeletonModelURL == AvatarData::defaultFullAvatarModelUrl()) ? QUrl("") : _skeletonModelURL; - identityStream << QUuid() << _faceModelURL << _skeletonModelURL << _attachmentData << _displayName; + identityStream << QUuid() << _faceModelURL << urlToSend << _attachmentData << _displayName; return identityData; } diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 81d252c622..a934b98037 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -166,7 +166,7 @@ public: AvatarData(); virtual ~AvatarData(); - static const QUrl defaultFullAvatarModelUrl(); + static const QUrl& defaultFullAvatarModelUrl(); virtual bool isMyAvatar() const { return false; } diff --git a/libraries/avatars/src/AvatarHashMap.cpp b/libraries/avatars/src/AvatarHashMap.cpp index 4378e818ec..520bb34887 100644 --- a/libraries/avatars/src/AvatarHashMap.cpp +++ b/libraries/avatars/src/AvatarHashMap.cpp @@ -99,8 +99,8 @@ void AvatarHashMap::processAvatarIdentityPacket(QSharedPointer packet, avatar->setFaceModelURL(faceMeshURL); } - if (avatar->getSkeletonModelURL() != skeletonURL) { - avatar->setSkeletonModelURL(skeletonURL); + if (avatar->getSkeletonModelURL().isEmpty() || (avatar->getSkeletonModelURL() != skeletonURL)) { + avatar->setSkeletonModelURL(skeletonURL); // Will expand "" to default and so will not continuously fire } if (avatar->getAttachmentData() != attachmentData) { From 5ebc8d603644f2d21748fce7be97573ebb08ab21 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Mon, 21 Sep 2015 10:24:11 -0700 Subject: [PATCH 2/2] fix for file upload to ATP on Windows --- interface/src/ui/AssetUploadDialogFactory.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/src/ui/AssetUploadDialogFactory.cpp b/interface/src/ui/AssetUploadDialogFactory.cpp index 175fc9a12d..a4426d0c1a 100644 --- a/interface/src/ui/AssetUploadDialogFactory.cpp +++ b/interface/src/ui/AssetUploadDialogFactory.cpp @@ -39,13 +39,13 @@ void AssetUploadDialogFactory::showDialog() { auto nodeList = DependencyManager::get(); if (nodeList->getThisNodeCanRez()) { - auto filename = QFileDialog::getOpenFileUrl(_dialogParent, "Select a file to upload"); + auto filename = QFileDialog::getOpenFileName(_dialogParent, "Select a file to upload"); if (!filename.isEmpty()) { qDebug() << "Selected filename for upload to asset-server: " << filename; auto assetClient = DependencyManager::get(); - auto upload = assetClient->createUpload(filename.path()); + auto upload = assetClient->createUpload(filename); if (upload) { // connect to the finished signal so we know when the AssetUpload is done @@ -56,7 +56,7 @@ void AssetUploadDialogFactory::showDialog() { } else { // show a QMessageBox to say that there is no local asset server QString messageBoxText = QString("Could not upload \n\n%1\n\nbecause you are currently not connected" \ - " to a local asset-server.").arg(QFileInfo(filename.toString()).fileName()); + " to a local asset-server.").arg(QFileInfo(filename).fileName()); QMessageBox::information(_dialogParent, "Failed to Upload", messageBoxText); }