History

Merge pull request #4642 from ZappoMan/avatarUI

New Avatar UI

Clément Brisset committed 11 years ago

Commit d6ee1c72 parents 6d6b66f ae16bab15 files · +1037 −216Browse files

Showing the changes to interface/src/Application.cpp (1 of 15 files). Show all

Unified · Split

interface/src/Application.cpp+14−40
@@ -3719,17 +3719,7 @@ bool Application::askToSetAvatarUrl(const QString& url) { · 3718 unmodified lines
37193719 }
37203720
37213721 // Download the FST file, to attempt to determine its model type
3722− QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
3723− QNetworkRequest networkRequest = QNetworkRequest(url);
3724− networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
3725− QNetworkReply* reply = networkAccessManager.get(networkRequest);
3726− qCDebug(interfaceapp) << "Downloading avatar file at " << url;
3727− QEventLoop loop;
3728− QObject::connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
3729− loop.exec();
3730− QByteArray fstContents = reply->readAll();
3731− delete reply;
3732− QVariantHash fstMapping = FSTReader::readMapping(fstContents);
3722+ QVariantHash fstMapping = FSTReader::downloadMapping(url);
37333723
37343724 FSTReader::ModelType modelType = FSTReader::predictModelType(fstMapping);
37353725
@@ -3740,26 +3730,27 @@ bool Application::askToSetAvatarUrl(const QString& url) { · 4 unmodified lines
37403730 QPushButton* bodyButton = NULL;
37413731 QPushButton* bodyAndHeadButton = NULL;
37423732
3733+ QString modelName = fstMapping["name"].toString();
37433734 QString message;
37443735 QString typeInfo;
37453736 switch (modelType) {
37463737 case FSTReader::HEAD_MODEL:
3747− message = QString("Would you like to use '") + fstMapping["name"].toString() + QString("' for your avatar head?");
3738+ message = QString("Would you like to use '") + modelName + QString("' for your avatar head?");
37483739 headButton = msgBox.addButton(tr("Yes"), QMessageBox::ActionRole);
37493740 break;
37503741
37513742 case FSTReader::BODY_ONLY_MODEL:
3752− message = QString("Would you like to use '") + fstMapping["name"].toString() + QString("' for your avatar body?");
3743+ message = QString("Would you like to use '") + modelName + QString("' for your avatar body?");
37533744 bodyButton = msgBox.addButton(tr("Yes"), QMessageBox::ActionRole);
37543745 break;
37553746
37563747 case FSTReader::HEAD_AND_BODY_MODEL:
3757− message = QString("Would you like to use '") + fstMapping["name"].toString() + QString("' for your avatar?");
3748+ message = QString("Would you like to use '") + modelName + QString("' for your avatar?");
37583749 bodyAndHeadButton = msgBox.addButton(tr("Yes"), QMessageBox::ActionRole);
37593750 break;
37603751
37613752 default:
3762− message = QString("Would you like to use '") + fstMapping["name"].toString() + QString("' for some part of your avatar head?");
3753+ message = QString("Would you like to use '") + modelName + QString("' for some part of your avatar head?");
37633754 headButton = msgBox.addButton(tr("Use for Head"), QMessageBox::ActionRole);
37643755 bodyButton = msgBox.addButton(tr("Use for Body"), QMessageBox::ActionRole);
37653756 bodyAndHeadButton = msgBox.addButton(tr("Use for Body and Head"), QMessageBox::ActionRole);
@@ -3772,34 +3763,18 @@ bool Application::askToSetAvatarUrl(const QString& url) { · 6 unmodified lines
37723763 msgBox.exec();
37733764
37743765 if (msgBox.clickedButton() == headButton) {
3775− qCDebug(interfaceapp) << "Chose to use for head: " << url;
3776− _myAvatar->setFaceModelURL(url);
3777− UserActivityLogger::getInstance().changedModel("head", url);
3778− _myAvatar->sendIdentityPacket();
3779− emit faceURLChanged(url);
3766+ _myAvatar->useHeadURL(url, modelName);
3767+ emit headURLChanged(url, modelName);
37803768 } else if (msgBox.clickedButton() == bodyButton) {
3781− qCDebug(interfaceapp) << "Chose to use for body: " << url;
3782− _myAvatar->setSkeletonModelURL(url);
3783− // if the head is empty, reset it to the default head.
3784− if (_myAvatar->getFaceModelURLString().isEmpty()) {
3785− _myAvatar->setFaceModelURL(DEFAULT_HEAD_MODEL_URL);
3786− emit faceURLChanged(DEFAULT_HEAD_MODEL_URL.toString());
3787− UserActivityLogger::getInstance().changedModel("head", DEFAULT_HEAD_MODEL_URL.toString());
3788− }
3789− UserActivityLogger::getInstance().changedModel("skeleton", url);
3790− _myAvatar->sendIdentityPacket();
3791− emit skeletonURLChanged(url);
3769+ _myAvatar->useBodyURL(url, modelName);
3770+ emit bodyURLChanged(url, modelName);
37923771 } else if (msgBox.clickedButton() == bodyAndHeadButton) {
3793− qCDebug(interfaceapp) << "Chose to use for body + head: " << url;
3794− _myAvatar->setFaceModelURL(QString());
3795− _myAvatar->setSkeletonModelURL(url);
3796− UserActivityLogger::getInstance().changedModel("skeleton", url);
3797− _myAvatar->sendIdentityPacket();
3798− emit faceURLChanged(QString());
3799− emit skeletonURLChanged(url);
3772+ _myAvatar->useFullAvatarURL(url, modelName);
3773+ emit fullAvatarURLChanged(url, modelName);
38003774 } else {
38013775 qCDebug(interfaceapp) << "Declined to use the avatar: " << url;
38023776 }
3777+
38033778 return true;
38043779 }
38053780
@@ -4311,8 +4286,7 @@ void Application::checkSkeleton() { · 505 unmodified lines
43114286 msgBox.setIcon(QMessageBox::Warning);
43124287 msgBox.exec();
43134288
4314− _myAvatar->setSkeletonModelURL(DEFAULT_BODY_MODEL_URL);
4315− _myAvatar->sendIdentityPacket();
4289+ _myAvatar->useBodyURL(DEFAULT_BODY_MODEL_URL, "Default");
43164290 } else {
43174291 _myAvatar->updateCharacterController();
43184292 _physicsEngine.setCharacterController(_myAvatar->getCharacterController());